新闻中心

EEPW首页>嵌入式系统>设计应用> 基于ATmega16单片机的CAN总线转RS232设计

基于ATmega16单片机的CAN总线转RS232设计

作者: 时间:2013-02-20 来源:网络 收藏

四、主程序

在微处理控制下,RS-232和进行数据交换时,采用查询方式和串口发送可提高工作效率。其主程序流程图如图5所示。SJA1000的初始化在复位模式下才可以进行,主要包括工作方式的设置、时钟分频和验收滤波寄存器的设置、波特率参数的设置以及中断允许寄存器的设置等。数据能否准确传递还取决于波特率和流量控制,这也是软件时不可忽略的地方。

串口波特率采用9600 bit/s,系统上电初始化后控制器查询发送标志位,一旦发送缓冲区空就发送数据。同时也检测状态寄存器的接收标志位,当有数据接收时读取接收缓冲区,然后判断接收数据帧,当接收帧为错误帧就丢掉数据并将CAN控制器复位,如果数据帧是正确帧就将该帧打包成符合协议的帧结构,通过串口发送出去。

五、结束语

本文采用ATMega16、SJAl000、MCP2551和MAX232,开发了CAN转232的接口,完成了两种协议的转换,实现了CAN通信接口设备之间的通信。测试和实际使用表明该接口运行稳定、可靠,达到了设计要求。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭