温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
2023
基于
Linux
操作系统
机车
信号
主机
记录
应用程序
开发
基于Linux操作系统的机车信号主机记录板应用程序的开发
翻开文本图片集
摘 要:文章较系统地介绍了机车信号主机记录板应用程序的开发,主要内容包括机车信号主机的功能概要、记录板插件的软件结构和核心模块以及Linux操作系统优势特点,并对记录板可扩展的功能进行了展望。
关键词:JT-CR-2000;记录板;Linux
1 JT-CR-2000型机车信号车载系统概述
机车信号是指在司机室内指示列车前方运行条件的信号。在地面信号机为主体信号的前提下,机车信号为辅助信号,它能自动地反映列车运行前方地面信号机的显示状态和运行条件,指示列车运行,并与列车自动停车装置结合,确保列车的平安运行。
JT-CR-2000型机车信号车载系统是山西润泽丰科技开发最新研制开发的新一代机车信号产品。该设备采用新工艺、新标准的一体化机箱设计,技术指标满足原铁道部中华人民共和国铁路行业标准TB/T3287-2023機车信号车载系统设备要求。该系统通过了原铁道部的技术审查并获得了国家铁路局运输平安设备生产的行政许可及中铁检验认证中心的中国铁道建筑总公司〔China Railway Construction Corporation,CRCC〕产品认证证书。
JT-CR-2000型机车信号系统采用超大规模集成电路器件和数字信号处理技术,利用先进的频谱分析技术和时域处理技术,能够适用的轨道电路制式:ZPW-2000系列〔包括UM系列〕、移频〔18信息、8信息、4信息〕以及交流计数和微电子交流计数〔25 Hz,50 Hz〕,并可以根据用户需求适用其他轨道电路制式。系统结构设计上采用“〔3取2〕×2〞的设计理念,信号的采集输入采用了2×2双路输入信号平安组合连接法,大大提高了系统的平安性和可靠性。
2 主机原理
JT-CR-2000型机车信号主机是通过安装在机车第一轮对前面的接收线圈接收到轨面上表示机车前方运行条件的信号信息,经模数〔Analog to Digital,A/D〕转换将接收到的模拟信号转换成计算机可识别的“0〞“1〞数字信号,数字信号处理器〔Digital Signal Processor,DSP〕芯片通过一系列的软件处理程序,将接收到的信号“翻译〞成点灯结果和超速防护信息,主机再将其输出至机车信号机和列车运行监控装置。不同点在于JT-CR-2000型机车信号主机由于要满足更高的要求,要增加更多的平安和可靠性冗余措施,包括双路接收线圈、多CPU和主机板、双套热备结构、双电源热备结构等,增加对机车信号运行中有关动态数据和信号波形的记录。图1给出了JT-CR-2000型机车信号主机结构原理。
系统中设有A,B两个主机板和一个记录板,两主机板完全相同,且都能够采集两路接收线圈信号进行解码。两主机板同时工作,互为备份关系。板间采用RS-485和控制器局域网络总线进行通信,同时,将解码数据发送给记录板记录。两主机板通过连接板进行切换,工作板将结果送至信号机进行显示输出。
记录板接收并记录当前信号波形、解码数据、TAX箱信息,同时,还能通过通用分组无线效劳〔General Packet Radio Service,GPRS〕无线网络实时发送给地面。
3 记录板主要功能
〔1〕记录板记录数据由3局部组成:信号波形、解码数据、TAX箱信息;数据存储使用容量为8 GB的eMMC Flash芯片,数据可连续记录200 h左右,波形可记录72 h左右。
〔2〕记录板采集当前工作主机板使用接收线圈的信号波形,采样频率8 192 Hz,波形采样精度为14位;具有“关键波形记录〞和“全程波形记录〞两种方式。在“关键波形记录〞方式下,记录关键处前后各6 s的波形数据,可记录最近250处的关键波形。
〔3〕记录数据可使用通用U盘转储,转储的数据由地面数据处理系统进行显示、分析和统计处理。
〔4〕记录板具备工作温度和电压检测记录功能。
〔5〕记录板具备故障记录、报警和传输功能。
〔6〕记录板具备GPRS信息传输功能的接口以及通过局部均值分解〔Local Mean Decomposition,LMD〕系统信息传输功能的接口。
3.1 记录板软件架构
图2可以表示出每个模块相互的联系以及通信数据的流向,按照功能将记录板软件划分为RS485总线程序、采样程序、输入/输出〔Input/Output,I/O〕控制程序、串行口通信程序、实时时钟程序、U盘读写程序。
STM32F407芯片采集线圈感应信号和模拟量、开关量,接收RS485数据,通过串行外设接口〔Serial Peripheral Interface,SPI〕总线发送感应信号的波形数据,通过通用异步收发传输器〔Universal Asynchronous Receiver Transmitter,UART〕发送模拟量和开关量、解码板的485数据。Cortex-A8接收SPI总线数据和UART数据,经过数据处理和逻辑分析之后分别记录成标准格式文件,插入U盘后自动执行转出操作。RS_422通信接口可以外接GPRS通信模块,也可以外接Lais转接盒,对外透传记录板有效数据[1]。
3.2 记录板软件关键技术实现
记录板软件主要由两局部组成,一局部面向STM32F407芯片的嵌入式应用,一局部是面向Cortex-A8芯片基于Linux操作系统的嵌入式应用。
基于Linux系统开发应用程序可以利用系统自带应用程序编程接口〔Application Programming Interface,API〕进行编程,这种开发方式流程简单,代码结构清晰,可移植和继承的特性明显。基于操作系统编制多线程的应用程序可以把多任务的管理工作交于操作系统处理,充分发挥系统级时间片管理的优势。
Cortex-A8芯片上运行的程序由多个进程组成,分别为监控程序、实时时钟〔Real-Time Clock,RTC〕程序、记录主程序、SPI程序,进程间的通信选用共享内存和消息队列实现。监控程序负责监测其他进程的运行状态和Flash的内存空间,必要时重启其他进程;RTC程序上电后不会自动运行,其他进程在需要取时间时,会调用该程序,运行一次后自动销毁进程;SPI程序读取和记录串行口的波形數据;记录主程序负责执行串口通信、数据记录、U盘转储、网络通信等主要功能[2]。
程序任务中有很多功能是需要等待的,如标准输入输出、I/O控制、U盘读写,如果选用多线程编程可以有效地分配计算资源,提高程序的运行效率,所以记录主程序和SPI程序都选用了多线程编程技术。
SPI总线波形接受程序的整套程序由3个线程组成:两个SPI接收线程,一个记录线程。依照系统需求,SPI总线每秒需要接收16 K的数据,此种程序结构可以并发SPI接收线程,提升程序的运行速度,一定程度降低了CPU的负载。
程序中使用了信号量控制每个线程间的时序关系,rx_buf1_semr和rx_buf2_semr循环累加16次,完成16 K数据的接收,之后信号量semx原子加1,将波形数据写入Flash中。
记录板程序除了记录每秒的感应线圈的波形信息之外,还要有条件地记录关键变灯处前后6 s共计12 s的波形信息,在记录关键波形的1 s周期里,程序需要记录208 K的波形信息。Cortex-A8芯片主频600 M,如果要求在1 s的周期内将208 K的波形信息写入Flash中,CPU的任务负载会出现溢出,几秒之内便会出现系统异常。程序经过优化设计,将208 K的波形数据分4个周期写入Flash中,关键变灯的触发周期至少6 s以上,防止出现数据堆叠进而丢包的现象。
4 结语
机车信号主机记录板负责记录机车信号系统正常运行过程中全部相关数据,并负责转发到远程效劳器,对于实时监测机车信号系统的运行状态,分析机车信号系统的运行故障有很重要的参考意义。参考现有的功能和现场客户的需求,未来考虑增加网络通信功能传输记录数据,进而减少上车读取数据的次数,同时,考虑增加U盘更新程序的功能。
[参考文献]
[1]佚名.数据手册:STM32F407 ARM Cortex-M4处理器[EB/OL].〔2022-10-31〕[2023-07-25].://dl.21ic/download/ic-273116.html.
[2]喻金钱,喻斌.STM32F系列ARMCortex-M3核微控制器开发与应用[M].北京:清华大学出版社,2023.