其中SJA1000的数据帧格式为:

利用TL16C554和SJA1000芯片实现4路UART总线与CAN总线的通讯设计

2、系统设计

系统总体电路图如图1所示,主要有3个部分组成,UART模块、CAN模块和微控制处理器。UART模块采用TI公司的TL16C554,它是一个4路通用异步收发器,每路均能从外围设备或MODEM接收串行数据,实现串一并转换;同时,它也可以从CPU端接收数据,实现并一串转换。

利用TL16C554和SJA1000芯片实现4路UART总线与CAN总线的通讯设计

CAN模块采用PHILIPS公司的SJA1000,它是一种独立的CAN控制器兼容CAN2.0A和CAN2.0B两种技术规范。微控制器采用8位单片机AT89S 51,主要对UART模块和CAN模块进行初始化控制,并产生串行数据输送给UART模块。

2.1 UART模块通讯设计

UART模块通讯设计主要利用单片机控制4路异步收发器TL16C554。单片机首先通过数据线D7~D0、地址线A2~A0初始化TL16C554,配置好串行传输波特率、字符格式以及中断控制信号等寄存器,并通过4路通道的片选信号CSA,CSB,CSC和CSD选通其中的一路。利用单片机自身的串行接口发送串行数据,送入TL16C554,UART模块接收到串行数据后,将其转换成并行数据存入FIFO中,并通知单片机数据转换完成,单片机从UART模块的FIFO中读取数据,并准备好发送给CAN模块。通讯流程图如图2所示。

利用TL16C554和SJA1000芯片实现4路UART总线与CAN总线的通讯设计

如果要实现多路UART总线与CAN总线通讯,利用通道各自的片选信号进行控制,在一路通道转换结束后再进行选通另一路通道,相互之间必须进行分时操作,协调处理。

2.2 CAN模块通讯设计

CAN模块通讯设计主要利用单片机控制SJA1000控制器。单片机首选通过地址数据复用线AD7~AD0对SJA1000进行初始化设置,包括时钟分频寄存器、输出控制寄存器、总线定时寄存器和验收滤波器等,通过这些寄存器可以设置选择工作模式为BasicCAN或是PeliCAN,CLKOUT引脚的频率、以及通信波特率等。设置好寄存器,就等待单片机将从UART模块读取的数据发送给SJA1000的发送缓冲器,CAN模块将这些数据转换成CAN总线形式并通过收发器发送到网络节点中去。通讯流程图如图3所示。

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查