新闻中心

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

基于ATmega16的CAN总线转RS232设计

作者:时间:2013-09-13来源:网络收藏

3.3 CAN控制器电路设计

选用Phi l ip公司的SJAl000芯片实现CAN控制器和驱动器。SJAl000控制器与单片机硬件连接电路设计,如图2、3所示。

为使SJAl000正确复位,CAN控制器必须连接一个稳定的振荡器时钟,这里选择16MHz的晶振。

3.4收发器电路设计

收发器是协议控制器和物理传输线路之间的接口,这里由MCP2551实现。协议控制器通过串行数据输出线(Tx)和串行数据输入线(RX)连接到收发器,收发器通过有差动发送和接收功能的两个总线终端CANH和CANI。连接到总线电缆,实现的数据通信。如图4所示。


四、主程序设计

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

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

五、结束语

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


上一页 1 2 下一页

关键词: ATmega16 CAN总线 RS232

评论


相关推荐

技术专区

关闭