微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > 基于CAN总线与RS485的DSP通信接口设计

基于CAN总线与RS485的DSP通信接口设计

时间:11-28 来源:互联网 点击:
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;

(3)等待接收确认和CANIFR的邮箱中断标志。

(4)重置RMP和接收标志,必须对RMP写1: CANRCR="0040H";


图3 初始化位时间编程流程图



5.结论

本文作者的创新点是:在工业控制领域中,往往是由一台主机控制多台从机,上位机和下位机的远距离通信通过串行通信实现。本设计综合实现了PC主机与DSP从机的RS-485远距离通信接口和DSP从机与CAN现场总线的数据传输接口设计,同时具备主从机的远距离通信和CAN现场总线设备的实时通信功能,具有广泛的应用前景。在设计中充分发挥了DSP的CAN模块和SCI模块的作用,使得接口设计简单,工作更加可靠。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top