java怎么拦截某个对象
272
2022-11-02
基于CAN总线与RS485的DSP通信接口设计
1.概述
现场总线是一种开放式、数字化、多点通信的控制系统局域网络,是当今自动化领域中最具有应用前景的技术之一 ,CAN总线是现场总线中的应用热点。由于CAN总线具有通信速率高、开放性好、报文短、纠错能力强以及控制简单、扩展能力强、系统成本低等特点,越来越受到人们的关注。
2.TMS320LF2407的RS-485通信设计
初始化TMS320LF2407的SCI模块
3.上位机PC串行通信软件设计
上位机PC采用高级语言VB的通信控件,实现串行通信。在VB5.0及以上版本中,提供了一个名为MSComm的通信控件,它为应用程序提供基本的串行通信功能,可以通过串行接口发送和接收数据。
PC串行口发送器输出端和接收器输入端的数据格式为帧信息格式,与TMS320LF2407的SCI格式相同。通信时,双方预先约定通信数据传输格式、传输速率及各自工作方式等。本文设计中双方约定:波特率为9600bps。1帧信息格式为1个起始位、8个数据位和1个停止位。传送方式:PC机采用查询方式接收数据,TMS320F240采用中断方式接收数据。
4.TMS320LF2407的CAN通信设计
TMS320LF2407 内嵌的CAN模块,是一个16 位的外围器件,其通信特性有:(1)完全支持CAN2.0B协议;(2)具有6个邮箱,其中mailbox2与mailbox3可按工程需求配置为接收或发送邮箱,数据长度为0—8字节;(3)当发送出错或仲裁过程中数据丢失时,该控制器具有自动重发功能;(4)能够通过软件编程实现自检测功能。
4.1硬件设计
4.2.1初始化CAN模块
CAN模块的初始化包括初始化位时间和初始化邮箱。
初始化位时间可按如下步骤进行(如图3所示):
(1)在MCR寄存器中设置改变配置请求位:CANMCR=1000H;
(2)配置BCR寄存器:CANBCR2=0000H; CANBCR1=0157H;
(3)请求正常模式:CANMCR=0000H;
初始化邮箱可以按照如下步骤配置邮箱(如图4所示):
(1)禁止邮箱写0到CANMDER:CANMDER=0000H;
(2)在CANMCR中设置改变数据域请求:CANMCR=0100H;
(3)改变邮箱内容:数据可以只在发送邮箱中设置;
(4)返回正常模式:CANMCR=0000H;
(5)使能邮箱:CANMDER=0004H;
4.2.2 发送消息
为了实现CAN模块的消息发送,需要按照以下步骤配置发送过程:
(1)对发送邮箱进行初始化
禁止邮箱对CANMDER写0:CANMDER=0000H;
在CANMCR中设置改变数据域请求:CANMCR=0100H;
对发送邮箱设置消息ID: CANMSGIDnH="0E00H";CANMSGIDnL=000FH;
设置消息控制域,即对CANMSGCTRLn进行写操作: CANMSGCTRLn="0008H";
创建消息并写到CANMBXnA、CANMBXnB、CANMBXnC和CANMBXnD中:
CANMBXnA=0ABCDH;CANMBXnB=0123H;CANMBXnC=0EF32H;CANMBXnD=6789H;
重新设置CANMCR的第8位,请求正常操作:CANMCR=0000H;
允许邮箱对CANMDER寄存器进行写操作:CANMDER=0004H;
(2)设置TCR寄存器的TRS位,请求发送消息:TCR=0010H;
(3)等待发送确认(TCR寄存器的TA=1);
(4)重新设置TA和发送标志:TCR=1000H;
4.2.3 接收消息
应用CAN模块接收外界消息时,需要对CAN控制器进行如下设置:
(1)设置局部接收屏蔽寄存器。 LAM1H=8000H;
(2)设置邮箱标识符和控制。
禁止邮箱对MDER写0:CANMDER=0000H;
写MCR寄存器申请改变数据域请求:CANMCR=0100H;
对发送邮箱设置消息ID: CANMSGIDnH="0E00H";CANMSGIDnL=000EH;
设置消息控制域:CANMSGCTRLn=0008H;
重置MCR第8位,请求正常操作:CANMCR=0000H;
允许邮箱写MDER寄存器:CANMDER=0044H;
(4)重置RMP和接收标志,必须对RMP写1: CANRCR="0040H";
图3 初始化位时间编程流程图
5.结论
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~