STM32的CAN总线中继器设计及应用
摘要:CAN中继器是系统组网的关键,通过中继器可以扩展节点的数量和实现不同波特率之间的通信。本文充分利用STM32F105内部集成双bx CAN控制器的特性,设计出一款基于STM32的单芯片CAN总线中继器,并将其应用到齐玛印花机上。实践证明该方法有效可行,不仅实现了齐玛印花机的改造,还降低了系统设备的成本。
关键词:CAN总线;中继器;STM32F105;齐玛印花机
引言
CAN总线是一种多主方式的串行通信总线,具有优良的稳定性、实时性、远程通信能力以及超强的硬件CRC纠错等特性;CAN总线技术的应用不再仅限于汽车行业,而是扩展到了机械、纺织、控制等行业,并被公认为是最有前途的现场总线之一。然而由于受制于CAN收发器,CAN总线通信距离和网络中节点数被分别限制在10 km和110个之内。但是在稍大型的CAN总线系统中,这往往是不够的,这时就需要用CAN总线中继器对CAN总线网络进行扩展。
CAN中继器是系统组网的关键技术设备之一,使用中继器可以提高网络设计的灵活性,并且通过中继器还可以连接两个不同波特率的CAN总线网络;在两个网络间进行数据转发,极大地扩展其使用范围。基于此,本文设计出一款基于STM32的CAN总线中继器,并将其应用到齐玛印花机上,完成圆网印花机通信系统的工程改造。
1 系统整体方案及硬件实现
以往的CAN中继器设计大多采用MCU加CAN控制器的双芯片或多芯片解决方案。例如,参考文献使用1片MCU加2路CAN控制器的结构实现中继器;参考文献使用双MCU结构设计CAN总线中继器;参考文献使用独立双CAN控制器作为2路CAN接口的控制器来设计CAN中继器。上述方案电路复杂,MCU与CAN控制器通过外部总线连接,数据吞吐速度慢,整体可靠性也比较差。
意法半导体的STM32是以ARM Cortex-M3为内核的32位微处理器,主频可高达72 MHz,内置Flash和SRAM,其容量可分别高达512 KB和64 KB;内部集成双bxCAN控制器。它支持CAN协议V2.0A和V2.OB,波特率最高可达1 Mb/s,具有3个发送邮箱和2个3级深度的FIFO,能够以最小的CPU负荷来高效处理大量收到的报文。基于此,选用STM32F105作为主控制器,设计出一款基于STM32的CAN总线中继器。其整体方案如
图1所示。
由于STM32F105内部集成了双路CAN控制器,CAN中继器的节点电路变得十分简单,其硬件电路如图2所示。
以往的节点电路,为了降低生产现场的抗干扰能力,保证中继器工作的可靠性,都采用多重的抗干扰措施。例如,大部分的节点电路都是采用在CAN控制器和收发器之间加入光电隔离器6N137来实现CAN节点之间的电气隔离,采用外加DC/DC电源模块的方法切断系统电源的干扰。同样着眼于提高系统的抗干扰能力和可靠性的问题,本设计中一反常规的设计方法,直接采用广州致远电子有限公司生产的CAN通用收发器CTM8251。
CTM8251是一款带隔离的通用CAN收发器芯片,该芯片内部集成了所有必需的CAN隔离及CAN收发器件,这些都被集成在不到3 cm2的芯片上。芯片的主要功能是将CAN控制器的逻辑电平转换为CAN总线的差分电平,并且具有DC 2500 V的隔离功能。该芯片符合ISO11898标准,因此,它可以和其他遵从ISO11898标准的CAN收发器产品互操作。
实践证明采用CTM8251不仅使系统真正与外接隔离开,抑制了干扰的串入提高系统的可靠性,简化了CAN节点外围电路的复杂度,还降低了成本,有较高的性价比。
图2中120 Ω为可选用的终端匹配电阻,如果网络中已经有一对匹配电阻,则不使用该电阻。另外,电路中设计有相应的拨码开关电路用于CAN网络的ID标志和设置相应的波特率。
2 中继器的软件实现
CAN中继器的主要任务是在两个网络中进行数据的过滤和转发。其软件主要包括以下模块:初始化模块、数据发送模块和接收模块等。
2.1 初始化模块
CAN初始化直接关系到CAN控制器能否正常工作,在很多情况下,软件不能正常工作并不是CAN的收发程序有问题,往往是初始化配置不正确造成的。STM32的CAN初始化主要包括CAN寄存器初始化、CAN单元初始化(包括CAN模式和波特率的设置)、CAN过滤器的初始化。由于STM32开发商提供了大量的固件库函数,所以只需在调用的时间作出相应的设置即可。初始化子程序如下所示:
①CAN单元初始化子程序。
在该初始化子程序中最关键的环节是怎么设置CAN的波特率,STM32数据手册给出了波特率的计算公式:
其中tq为CAN时钟周期。如上述CAN单元初始化子程序中:SJW=tq,BS1=8tq,BS2=7tq,STM32的CAN时钟有APB1提供。假设系统时钟为72 MHz,APB1为系统时钟的9分频,结合初始化子程序,CAN_Prescaler=1,带入波特率计算公式即可求的其波特率为500 kb/s。
②CAN过滤器的初始化子程序。
- 浅析ICS直放站的应用(08-07)
- 基站应用中功放的分立控制和集成控制(04-25)
- 电子标签:RFID技术应用与七大特点(05-12)
- 射频/微波器件面向太空应用可靠性是关键(12-17)
- 以软件为核心的无线测试平台的设计(03-18)
- 高频和微波功率基准及其应用研究(04-12)