新闻中心

EEPW首页>手机与无线通信>设计应用> STM32的CAN总线中继器设计及应用

STM32的CAN总线中继器设计及应用

作者: 时间:2011-03-11 来源:网络 收藏

2 中继器的软件实现
中继器的主要任务是在两个网络中进行数据的过滤和转发。其软件主要包括以下模块:初始化模块、数据发送模块和接收模块等。
2.1 初始化模块
初始化直接关系到控制器能否正常工作,在很多情况下,软件不能正常工作并不是CAN的收发程序有问题,往往是初始化配置不正确造成的。的CAN初始化主要包括CAN寄存器初始化、CAN单元初始化(包括CAN模式和波特率的设置)、CAN过滤器的初始化。由于开发商提供了大量的固件库函数,所以只需在调用的时间作出相应的设置即可。初始化子程序如下所示:
①CAN单元初始化子程序。

c.JPG
在该初始化子程序中最关键的环节是怎么设置CAN的波特率,数据手册给出了波特率的计算公式:
d.JPG
其中tq为CAN时钟周期。如上述CAN单元初始化子程序中:SJW=tq,BS1=8tq,BS2=7tq,STM32的CAN时钟有APB1提供。假设系统时钟为72 MHz,APB1为系统时钟的9分频,结合初始化子程序,CAN_Prescaler=1,带入波特率计算公式即可求的其波特率为500 kb/s。
②CAN过滤器的初始化子程序。

f.JPG
CAN过滤器设置的得当与否是CAN是否能够成功接收信息的关键,尤其在过滤器组位宽和模式上,如何将节点的ID号准确地映射到过滤器组位宽设置寄存器上是过滤器的核心。为了过滤出一组标识符,设置过滤器工作在屏蔽位模式下,对标识符的任何一位采用“必须匹配”或“不用关心”的原则处理。



评论


相关推荐

技术专区

关闭