基于CAN总线技术在车站信号系统中的应用
频率而设定。初始化程序的流程图如图4所示[4]。
4.2 数据发送和接收程序
信息从CAN控制器发送到CAN总线是由CAN控制器自动完成的。发送程序只需把发送的信息帧送到CAN的发送缓冲区,启动发送命令即可。需要注意的是,发送中断不是由于发送完成而产生,而是由于发送缓冲区再次可用而产生的。
信息从CAN总线到CAN接收缓冲区是由CAN控制器自动完成的。接收程序只需从接收缓冲区读取要接收的信息即可。需要注意的是,读取接收缓存器(RBF0或 RBF1)的内容后,CPU必须通过置位释放接收缓存位来释放缓存器,使得另一个报文立即变得有效。数据发送和接收中断流程图如图5所示。
4.3 总线出错和异常处理
CAN总线作为一种优良的串行通信局域网络,它自身的查错和排错能力相当强大,因此在设计时必须充分利用这一点,提高通信系统的可靠性。CAN协议规定网络上的任何一个节点,根据其错误计数器中的数值,可能处于下列3种状态之一:“错误—激活”状态、“错误—认可”状态、“总线脱离”状态。处于前两种状态时节点都可以参与总线通信,而当处于“总线脱离”状态时节点既不发送,也不接收任何数据帧。同时CAN协议还对脱离总线节点重新参与总线通信有严格规定。
由于节点自身的原因或是其它原因,节点脱离总线,不参与通信,出现这种情况程序要做到及时发现,并且迅速做出有效处理,使之恢复参与总线通信。判断节点是否脱离总线同样既可通过查询方式,又可通过中断方式。而处于“总线脱离”状态的节点通信功能的恢复,必须严格依照CAN协议规定的流程做,否则节点将一直处于“总线脱离”状态。
5、总结
在车站信号系统中,用CAN总线代替RS-485总线,其数据通信具有突出的可靠性、实时性和灵活性,而且通信距离也有了很大的提高,这些都在现场运行中得到了证实,具有较强的实用价值。
本文作者创新点:用CAN总线代替车站信号系统所使用的RS-485总线,在软/硬件设计中均采用了模块化的方案,具有更高的灵活性和广泛的适用性;同时,用Atmega128单片机代替车站信号系统中所使用的Atmel8535单片机,使运行的速度也得到了提高。
参考文献:
[1].RS-485datasheethttp://www.dzsc.com/datasheet/RS-485_584821.html.
[2].2.0datasheethttp://www.dzsc.com/datasheet/2.0_1758666.html.
[3].SJA1000datasheethttp://www.dzsc.com/datasheet/SJA1000_609075.html.
[4].PCA82C200datasheethttp://www.dzsc.com/datasheet/PCA82C200_.html.
[5].Atmega128datasheethttp://www.dzsc.com/datasheet/Atmega128_.
[6].TJA1050datasheethttp://www.dzsc.com/datasheet/TJA1050_649182.html.
CAN总线技术 车站信号系统 用Atmega128 相关文章:
- CAN总线技术在汽车ECU中的开发(12-16)
- CAN总线技术概况(12-14)
- 关于如何让初学者形象理解CAN总线技术关键点的思考(12-14)
- CAN总线技术的应用与发展(12-12)
- 基于CAN总线技术的汽车仪表软件实现方案(09-26)
- CAN总线技术运用于接口电路设计注意事项(图)(08-17)