张虎
摘 要:针对某型号客车轴温报警器的通讯模块故障率偏高、检修工作量大的问题,文章设计了基于STM32的程序实现通讯模块的数据收发功能测试。介绍了采用调制解调器实现RS232串口的远距离传输数据,详细介绍了通过设计实现客车轴温报警器各自独立对等的工作,软件采用IAR编译环境。试验结果表明,该方案可以有效解决客运列车轴温报警器通讯模块故障率偏高的问题。
关键词:轴温报警器;STM32;独立对等
中图分类号:TP274.2 文献标识码:A 文章编号:1006-8937(2015)36-0009-01
1 概 述
铁路运输是现代交通运输中的重要手段,为了确保高速运行下列车安全运行,列车上都安装了超速防护和集中式客车轴温报警器等安全装置。客车轴温报警器在轴温达到警戒值以后会自动报警,提醒有关人员及时采取防范措施,确保列车运行安全[1]。我国铁路干线密布,客运列车数量多,一列客车可以挂20多节车厢,运行时每节车厢都要配备一个轴温报警器。因此,轴温报警器的数量需求庞大。
某型号轴温报警器主要由单片机控制器、液晶显示器、直流开关电源和调制解调器等组成。该型号轴温报警器在数模兼容、数字滤波、抗干扰和可靠性等方面的优势使其很快在客运列车轴报器的使用中占据了市场。由于各种原因,此型轴报器的通讯模块故障率偏高,检修工作量大,故需设计程序实现通讯模块的数据收发功能测试。
2 系统硬件设计
测试时将待测轴温报警器报与标准轴温报警器用广播线对接(不分主从),两者通过Modem(调制解调器)相连接,待测机通过J-Link JTAG连接到PC机,通过IAR编译器调试程序,若数据收发正常则设备内通讯模块的软硬件合格,测试结果显示在PC机屏幕上。根据设计要求,设计选用Cortex-M3内核的STM32F107VCT6单片机,该处理器资源丰富能对多个操作并行执行,满足设计的要求[2]。
根据EIA-RS-232C 接口标准:远距离通信采用Modem时,需要9根信号线;近距离只需要3根信号线。这些信号线由接口电路提供,以便与Modem或终端进行联络与控制。测试系统提供了2个标准RS232串口,连接STM32中的异步串行收发器。工作中Modem还需经过了一个变压器获得更大的输出功率后与另一个Modem相连接。Modem的外接变压器的原理图,如图1所示。
3 系统软件设计
3.1 多主机网络
一般的分主从模式的通讯中主机需要不停的询问从机是否需要发送数据,从机之间不能相互通信,需通过主机作为中间中转站。而当主机需要处理某个紧急问题时,不得不等待问询丛机结束后再处理,即浪费了主机和从机的时间,又容易在处理紧急情况时出现系统的崩溃。该型号轴温报警系统中,每一台控制显示器既是主机,也是从机。它是通过顺序发送的方式来完成信息交换的。当某一台仪器发送信息时,其它机器都处于接收状态,发送完成后就转变成接收状态,克服了主从模式主机轮询的缺点,各个终端轴温报警器也由被动变为了主动。这种方式的优点是所有的信息全部共享,速度快,即使某一台仪器发生故障,也不会使网络瘫痪。这种通讯模式也称之为多主机网络模式[3]。
3.2 主程序编写
通信协议的设计是软件设计的重点。在实际应用中,很多时候单机片之间的通信环境都是比较好的,协议不是很复杂。测试通信程序流程图,如图2所示。
①数据双方均使用9 600 kbps的速率传输数据,A机和B机不分主从通信,使用查询方式互相接收和发送信息,下面以A机发送数据时B机接收数据为例。
②双机开始数据传输时,A机发送呼叫信号11H启动握手过程,询问B机是否可以接收数据。
③B机接收到握手信号后,如果同意接收数据则应当信号01H,表示等待接收,否则发应答信号00H,表示暂时不能接收数据。
④A机在发送呼叫信号后等待,直接接收B机的应答信号00H,才确认完成握手协议过程,开始发送数据,否则,A机继续发送呼叫信号。
⑤B机在接收完数据后,将根据最后的检验结果判断接收是否正确,正确就向主机发送AAH,表示接收成功,发送FFH,表示错误,要求重发。
⑥A机接收到AAH字节,则表示通信结束,否则A机重发这组数据。根据流程图进行了通信主体程序的编写。
4 结 語
串行通信具有结构简单、可靠性高等优点,而且串行通信有一定的纠错力,并且成本比较低。实验结果在串口调试助手的调试界面运行得到了通过,结果表明该程序与设计思想可以有效解决此型轴报器的通讯模块故障率偏高的问题,该通讯模块已经运用于实际产品。
参考文献:
[1] 张家栋,田宏萍.关于列车安全状态监测和诊断系统的研究[J].内燃机 车,2000,(11).
[2] 李宁.基于MDK的STM32处理器开发应用[M].北京:北京航空航天大
学出版社,2008.
[3] 胡明飞,杨艳,漆静群,等.基于RS485的多主机通信协议的设计[J].自动 化仪表,2015,(7).