CAN控制器模块的智能总线接口设计

发布者:admin 发布时间:2019-10-26 16:29 浏览次数:

  公司最新发布的ADM3053芯片作为ECAN接口驱动,该芯片集成了CAN供电隔离,达到了接口小型化、低功耗、低成本的目的。给出了ECAN模块系统架构和总线接口硬件和邮箱结构,给出了软件初始化、消息发送、消息接收流程,最后给出了CAN总线消息过载的处理方法。经实测表明,该智能总线接口模块工作稳定,信号品质良好,满足工业控制需求。

  TI公司最具代表性的低成本、低功耗和高性能的定点DSP芯片,具有强大的事件管理能力和嵌入式控制能力。其内嵌的增强型CAN 总线控制器(ECAN)模块,完全兼容CAN 2.0B 协议,邮箱数量增加至32 个,并增加了时间戳、消息过滤和超时发送功能,提高了应用CAN通信的灵活性。ADM3053是ADI公司2011年推出一款集成信号和电源隔离功能的CAN 收发器。本文采用集成ECAN 模块的TMS320F2812 和ADM3053 来设计CAN 节点。该设计将内嵌ECAN模块的DSP作为节点主控制器,同时采用ADM3053芯片有效替代了传统CAN收发器、信号隔离、供电隔离三部分电路,有效实现了模块小型化、低功耗、低成本。

  示波器CANScope对该接口的数据包、电平特性、眼图进行分析,结果显示信号品质良好。1 硬件设计

  典型的工业控制中CAN总线接口模块硬件原理框图如图1所示,它由智能处理器、CAN协议控制器、信号隔离、收发器及供电隔离组成。智能处理器负责总线数据收发,CAN协议数据的解析和管理,响应上位机命令并反馈接口健康状态;CAN 总线控制器功能是实现数据链路层功能,包括位时序逻辑、错误管理逻辑、验收

  、CAN控制器、收发器及隔离电路搭建,这种方法占用板面积大、接口逻辑复杂、成本高。本设计应用了ADI 公司最新发布的ADM3053 芯片,该芯片集成了CAN 收发器、信号隔离及供电隔离三部分功能,见图1中虚线)功耗低体积小。采用了基于电磁隔离原理的iCouple信号隔离专利技术。功耗相当于同数据传输率下传统光电

  元器件数量减少,节约电路空间,简化了接口设计,降低了设计复杂度;(2)性能更高。在时序精度、瞬态共模抑制力、通道间匹配性能均优于传统光电隔离器;(3)产品成本更低。每个通道成本相当于传统光电隔离器的40%.1.2 ECAN模块结构

  检验消息的状态、标识符和消息对象的屏蔽来决定邮箱的位置。接收的消息经过滤波后存放到第一个邮箱中。如果接收控制单元不能找到任何一个存储接收消息的邮箱,则消息被丢弃。一个消息有11位或29为标识符、一个控制域和最多8个字节的数据构成。当要发送一个消息时,消息控制器把这个消息发送到CPK 的发送缓冲区中,以便在下一个总线空闲状态时开始发送消息。当多于一个消息要被发送时,最高优先级的消息将被消息控制器发送到CPK中,如果两个消息的优先级相同,则大序号的邮箱首先发送。1.3 接口电路设计

  映射ECAN的寄存器被映射到片内存储器的外设帧1区域,CPU 用这些寄存对CAN 的消息对象进行配置和控制,控制和状态寄存器只允许32 位存取。ECAN 提供了32个消息邮箱,每个邮箱可以配置为发送或接收邮箱。消息是一块RAM 区域,映射到DSP 的RAM 存储器,每个邮箱RAM 的地址分配如图4 所示。消息邮箱用来存储接收到的CAN消息或存放等待发送的CAN消息。当邮箱不用于存储CAN 消息时,CPU 可以将消息邮箱RAM 空间当成通用存储器使用。ECAN模块寄存器和消息RAM空间如图4所示。

  ECAN模块初始化在初始化模式下才能进行,初始化模式和正常操作模式之间的转换时通过CAN网络同步实现的,也就是说,CAN 控制器在改变模式之前,要检测总线个接收位),如果产生支配总线错误,CAN控制器将不能检测到总线空闲状态,因此也不能完成模式切换。将CCR寄存器置1,使CAN模块工作于初始化模式,而且只有CCE寄存器设置为1时,才能执行初始化操作。完成上述设置后,才能操作ECAN模块配置寄存器。ECAN模块的初始化流程如图5所示。

  根据系统初始配置,将待发送的数据写入ECAN模块相应消息邮箱的数据区,这里需要注意数据字节顺序DBO 寄存器的设置。当DBO=0 时,数据读写从CAN-MDL寄存器的最低有效位开始,到CANMDH 寄存器的最高有效位结束。当DBO=1 时,数据读写从CANMDL寄存器的最高有效位开始,到CANMDH 寄存器的最低有效位结束。置发送命令字CANTRS

  如果CPU 的速度不能快速地处理重要消息,出现消息过载情况,这种情况可以通过增加备份邮箱来解决,即配置多个相同标识符的邮箱。对于ECAN 模块,每个消息对象有自己的屏蔽LAM(n)。为了保证不会丢失消息,将备份消息对象的覆盖保护寄存器OPC 标志位置位,从而防止未读取的消息被覆盖。如果ECAN模块需要存储接收到的消息,则先查看备份邮箱,如果备份邮箱为空则存储消息。如果备份邮箱的RMP标志被置位,说明消息未被读取。由于备份邮箱数据无法被覆盖,故将消息数据存储在原始邮箱,此时产生的一个中断可以用来读取备份邮箱的重要数据。


上一篇:所有电压轨都需要使用低静态电流(Low Iq)吗?    下一篇:CAN总线上的电压是怎么算的