linux怎么查看本机内存大小
390
2022-11-21
工业控制中的CAN总线接口模块硬件设计原理解析
0 引言
ADM3053是ADI公司2011年推出一款集成信号和电源隔离功能的CAN 收发器。本文采用集成ECAN 模块的TMS320F2812 和ADM3053 来设计CAN 节点。该设计将内嵌ECAN模块的DSP作为节点主控制器,同时采用ADM3053芯片有效替代了传统CAN收发器、信号隔离、供电隔离三部分电路,有效实现了模块小型化、低功耗、低成本。
1 硬件设计
1.1 硬件系统设计
(2)性能更高。在时序精度、瞬态共模抑制力、通道间匹配性能均优于传统光电隔离器;(3)产品成本更低。每个通道成本相当于传统光电隔离器的40%.
1.2 ECAN模块结构
ECAN的接口与结构电路如图2所示。ECAN具有32位内部结构,包括协议内核(CPK)和消息控制器。
一个消息有11位或29为标识符、一个控制域和最多8个字节的数据构成。当要发送一个消息时,消息控制器把这个消息发送到CPK 的发送缓冲区中,以便在下一个总线空闲状态时开始发送消息。当多于一个消息要被发送时,最高优先级的消息将被消息控制器发送到CPK中,如果两个消息的优先级相同,则大序号的邮箱首先发送。
1.3 接口电路设计
本文使用的接口管理CPU 为TMS320F2812,使用其内部集成的ECAN模块,因此只需要连接CAN总线收发器模块和隔离器件即可实现CAN总线接口功能。
ECAN接口电路图如图3所示。
ADM3053的左侧为逻辑端,逻辑端管脚接线如下:
(1)RXD 和TXD 分别接DSP 的ECANRX 和ECANTX引脚;
(2)VCC接逻辑端VCC(+5 V)电源;
(3)VIO接DSP的IO供电电压VIO;
(4)GND管脚接逻辑端地线端GND_LOG.
ADM3053 的右侧为总线端,总线端的管脚接线如下:
(1)CANH 和CANL 之间与CAN 物理总线相连,且确保总线两端并联120 Ω端接电阻;
2 软件设计
2.2 通信软件
2.2.1 系统初始化
ECAN模块初始化在初始化模式下才能进行,初始化模式和正常操作模式之间的转换时通过CAN网络同步实现的,也就是说,CAN 控制器在改变模式之前,要检测总线空闲状态(等于11个接收位),如果产生支配总线错误,CAN控制器将不能检测到总线空闲状态,因此也不能完成模式切换。将CCR寄存器置1,使CAN模块工作于初始化模式,而且只有CCE寄存器设置为1时,才能执行初始化操作。完成上述设置后,才能操作ECAN模块配置寄存器。ECAN模块的初始化流程如图5所示。
2.2.2 消息发送
根据系统初始配置,将待发送的数据写入ECAN模块相应消息邮箱的数据区,这里需要注意数据字节顺序DBO 寄存器的设置。当DBO=0 时,数据读写从CAN-MDL寄存器的最低有效位开始,到CANMDH 寄存器的最高有效位结束。当DBO=1 时,数据读写从CANMDL寄存器的最高有效位开始,到CANMDH 寄存器的最低有效位结束。置发送命令字CANTRS.n=1,启动发送操作,ECAN模块将自动置响应命令字CANTA.n=1.最后手动清发送命令字和响应命令字。消息发送流程如图6所示。
2.2.3 消息接收
根据系统初始配置,ECAN模块接收邮箱中接收到总线上的消息时,相应的接收消息等待寄存器CAN-RMP.n被置位,此时CPU应该核对消息丢弃标志寄存器RML.如果RML 为1,说明邮箱中的消息已被覆盖,CPU可以选择向源节点请求重发,本次接收流程结束。
当RML为0时,CPU可以从邮箱数据区读取数据,同时清RMP.n,然后进入等待接收状态(RMP=0,RML=0)。
消息接收流程如图7所示。
2.2.4 过载处理
如果CPU 的速度不能快速地处理重要消息,出现消息过载情况,这种情况可以通过增加备份邮箱来解决,即配置多个相同标识符的邮箱。对于ECAN 模块,每个消息对象有自己的屏蔽LAM(n)。为了保证不会丢失消息,将备份消息对象的覆盖保护寄存器OPC 标志位置位,从而防止未读取的消息被覆盖。如果ECAN模块需要存储接收到的消息,则先查看备份邮箱,如果备份邮箱为空则存储消息。如果备份邮箱的RMP标志被置位,说明消息未被读取。由于备份邮箱数据无法被覆盖,故将消息数据存储在原始邮箱,此时产生的一个中断可以用来读取备份邮箱的重要数据。
由图8 可以看出总线信号(CANH,CANL)规整,差分后信号波形平滑,眼图显示接口通信品质良好。
3 结论
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~