微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于CAN总线技术在车站信号系统中的应用

基于CAN总线技术在车站信号系统中的应用

时间:09-06 来源:互联网 点击:

频率而设定。初始化程序的流程图如图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.

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top