嵌入式系统的CAN总线设计
存器时,首先往总线的一个地址写数据,作为地址,读写信号无效,ALE变化产生锁存信号;然后写另外一个地址,读写信号有效,作为数据。上述逻辑完全通过GAL产生。此外,CAN总线需要在两线问加一个120欧电阻。
3 系统软件的设计
CAN控制器对于主控制器(CPU)来讲是一个存储器映象的I/O设备,SJA1000的功能配置和行为由主控制器的程序执行,主控制器和SJA1000之间的数据交换经过一组寄存器(控制段)和一个RAM(报文缓存器)完成。RAM部分的寄存器和地址窗口组成了发送缓存器和接收缓存器,其中控制段由CPU在初始化时设置,需要发送的数据由CPU填入发送缓存器中。接收缓存器有两个,对于CPU而言两者地址是相同的,当CPU读取一个缓存器时,另一个可同时在接收数据,两者替工作。SJA1000初始化程序图3所示。
SJA1000控制段寄存器包括控制寄存器CR、命令寄存器CMR、状态寄存器SR、中断寄存器IR、接收代码寄存器ACR、接收屏蔽寄存器AMR、总线定时寄存器BTR0及BTRl、输出控制寄存器OCR、测试寄存器TR。控制寄存器用来控制中断、复位和同步方式。命令寄存器用来控制发送、终止发送、缓冲区释放、清除过载状态、睡眠、唤醒和接收方式。状态寄存器用于指示CAN控制器的当前工作状态,包括接收缓冲区状态、数据是否超载、发送缓冲区状态、发送是否结束、接收是否正在进行、发送是否正在进行、错误状态和总线是否关闭。中断寄存器用来指示各中断源状态,包括接收中断、发送中断、出错中断、超载中断和唤醒中断。接收代码寄存器存放用于接收帧识别的代码。接收屏蔽寄存器说明对应于接收代码的哪些位参与接收帧识别。总线定时寄存器用来设定总线通信速率。输出控制寄存器用来控制输出驱动器的输出方式。测试寄存器仅用于芯片内部测试。
控制CAN总线时首先初始化各寄存器,以设定通信参数(如:模式、位速率、验收码、屏蔽码、字段长、总线定时、输出模式等),BASIC CAN方式控制段共10个字节。发送数据时首先置位命令寄存器,然后将被发送的报文写入发送缓冲区,最后置位请求发送,由SJAl000完成发送。接收通过查询状态寄存器,读取接收缓冲区获得信息,然后释放接收缓冲器。
- 另类传感器观念:汽车传感器(3)(11-30)
- 如何解决汽车车身控制设计的三大挑战 (09-29)
- 基于LIN总线的车灯控制系统(07-10)
- 一种汽车电动式转向器的电控系统设计(02-21)
- 现代电动车辆中电控技术应用(03-01)
- 汽车汽油机电子控制技术发展趋势分析(06-06)