关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 基于STM32F1O5的CAN总线中继器的设计与实现

基于STM32F1O5的CAN总线中继器的设计与实现

作者:时间:2011-04-14来源:网络收藏

1.5 波特率设置及ID设置电路
波特率设置电路由两个4位拨码开关构成,STM32F105通过读取每个波特率拨码开关的编码值确定每一路接口的波特率,每一路接口可以选择16种不同的波特率。由于两个接口是通过内部进行通信,因此它们的ID可设置为相同的值,ID设置电路由4位编码的旋转编码开关构成,ID的值为编码开关的编码值加上0x190。

2 CAN中继器软件的
CAN中继器的主要作用是对接收到的CAN报文进行过滤转发。中继器的工作流程为:中继器上电时通过读取波特率设置电路和ID设置电路的状态,设置好波特率和ID值。初始化完成后,STM32F105通过监听两个CAN接口的中断完成数据的存储转发。当CAN接口A收到上的数据包时产生中断,中断处理程序根据标准标识符(StdId)和扩展标识符(ExtId)判断该数据包是标准帧还是扩展帧,同时将该ID值和ID过滤表中的值进行对比,若符合过滤条件则不转发,否则将数据包通过CAN接口B转发出去。
系统的主程序流程如图4所示。系统上电时先初始化时钟和端口,根据配置波特率设置电路和ID设置电路的状态配置好CAN接口的参数,打开CAN1和CAN2接口的接收中断。系统在主程序中不断扫描波特率设置电路和ID设置电路的状态是否有变化,若当前的读取值和上次的读取值不一样,则重新配置波特率和ID。CAN数据包的存储转发在中断服务程序中完成。为了避免系统若受到干扰死机后不能重启,因此需打开STM32F105的内置看门狗,看门狗的复位由芯片内部的滴答时钟每50ms喂狗一次。

本文引用地址:http://www.eepw.com.cn/article/162174.htm

d.JPG



3 结束语
本文采用了采用双CAN接口的高性能的ARM处理器STMF105作为CAN中继器的主控CPU,可以很好地解决两个CAN接口的主从状态转换,具有结构简单、性能稳定、实时性高等特点,有一定的社会效益和广泛的推广价值。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭