结合CAN总线的特点和列车这个特定的环境,在本列车运行信号监测系统中,CAN总线是用作通信子网。主要是充分利用CAN总线在数据采集系统方面,尤其是在数据通信的可靠性、数据通信实时性以及数据通信的灵活性方面的优势,从而大量减少司机台的控制信号线,使司机台设计更简单、合理。本文主要结合通讯可靠性介绍CAN通讯“死机”时的处理方法。
CAN总线协议通过两层机制来保证总线数据的安全可靠传输。第一层是从总线角度考虑的。CAN协议根据每个节点的出错情况,将节点分为三种类型并为每种类型定义了相应的总线行为。这些总线行为对总线的影响是不同的。出错特别严重的节点会自动退出总线,不再参与总线活动。第二层是从单个节点角度考虑的。CAN控制器从硬件上提供了对自身出错情况的监视。错误捕捉寄存器提供了最近一次错误的种类和位置信息。发送错误寄存器和接收错误寄存器保存了发送或接收过程中发生的错误次数。错误报警极限寄存器设定发出报警信号时的错误次数。
CAN总线的“死机”问题,即部分CAN节点由于出错严重自动退出总线而引起的采集数据丢失情况。解决这个问题,需要保证CAN节点不长久脱离总线。首先,CAN节点在收到错误报警信号时,一方面要进行错误诊断,另一方面要将出错情况通过总线通知监测总线的上位计算机;CAN节点在收到总线错误信号时,进行完错误处理后要清除复位状态位。其次,监测总线的上位计算机要实时记录各个节点的状况,能够引入外部干预。对于单个节点来说,由于硬件损坏引起的脱离总线是无法自我修复的,必须增加冗余的通讯线路和CAN接口。
我们曾在CAN总线的防“死机”方面作过多次实验。比如,用导线短接CAN总线。研究发现,通过在程序中加入CAN控制器的状态检测处理指令,可显著提高CAN系统的抗干扰性。指令如下:
while(SR_CAN&&0x80)MOD_CAN=MOD_CAN&&0Xfe;
注:SR_CAN 状态寄存器;
MOD_CAN 工作模式寄存器。
4 磁浮车测速、定位与鉴向
常规列车是靠运动的车轮来测速的。由于磁悬浮列车是浮在轨道之上的,列车与轨道之间无接触,所以测速不能用常规办法进行。考虑磁悬浮列车线路上的枕是钢材料,每隔1.2米安装,为了测得列车的车速,可以通过检测单位时间内通过的枕木数,检测用的传感器只要能检测有无枕木,即采用接近开关就可测出。接近开关有光电的、超声波的、电磁的,由于枕木是安装在野外,所以检测枕木所用传感器必须具有响应速度快、工作温度范围宽、环境适应性好等特点,所以在综合性能上电磁式接近开关较好。
接近开关输出的信号是开关信号,比如高电平表示检测到对象,低电平表示没有检测到对象,这样难免会受到一些干扰。干扰主要表现为尖峰,这些尖峰会影响测速的精度,还会引起速度的跳变,所以在测速时要尽量排除这些干扰。首先对开关输出信号进行预处理,包括高频滤波、整形、隔离,经过处理后的信号再进入单片机进行软件滤波,可消除干扰的影响。
检测单位时间内通过的枕木数的测速方法在列车行驶速度较慢时会响应很慢,用测频方法测






