APP下载

基于RTLinux-Linux的计算机联锁系统执行层设计

2022-07-12冯国良

微型电脑应用 2022年5期
关键词:任务调度铁路信号中断

冯国良

(西安铁路职业技术学院, 电子信息学院, 陕西, 西安 710014)

0 引言

随着铁路运输技术的高速发展,对铁路信号的联锁控制系统的安全性以及容错性都提出了更高的要求。铁路信号控制系统历经机械联锁、机电联锁、电气联锁之后已经发展到计算机联锁阶段,计算机联锁作为新兴技术其安全性直接关系到铁路行车安全甚至是乘客的人身财产安全。因此,无论是硬件设备驱动的开发还是软件系统的设计都需以系统稳定为前提,具备高效可行的容错机制,确保为铁路信号控制系统提供安全可靠的运行环境。

1 系统需求分析

1.1 基本需求

铁路信号是列车运行与调度中的命令,是确保行车安全、提升运输效率的基础保障。计算机联锁系统是利用计算机技术实现的实时控制调度系统,在设计过程中,系统在设备结构上需要包括上位机、联锁机、指标机。在功能需求上需要包括硬件设备驱动确保数据的输入输出,软件平台要确保联锁计算以及数据同步,并且确保实时性。在非功能需求上主要是确保安全性、可靠性。

1.2 系统实时性实现

鉴于铁路信号控制的特殊性,系统必须具备高实时性。Linux操作系统是支持定制裁剪的开源系统,可以有效管理系统资源并实现相关模块动态加载,在嵌入式开发中具有广泛应用。但由于Linux自身不是实时的操作系统,在任务调度、管理内存等方面无法满足联锁控制系统的实时性要求,而RTLinux正是可实现实时需求的扩展,因此在Linux的中断控制与内核之间增加一个RTLinux内核用以实现实时性要求。Linux接收到的控制信号先交RTLinux处理,Linux利用“sti”“cli”宏指令实现中断的开与关,RTLinux进行了优化,采用S_STI、S_CLI,引入虚拟层,将中断区分为Linux中断和实时中断,为实时任务提供最小延迟及最优先的处理器使用权[1]。

2 硬件设备驱动程序实现

2.1 CPU板驱动

在计算机联锁系统中,硬件驱动是底层运行的基础,它与软件系统的协同需要依赖驱动程序将软件系统指令准确传输至硬件。其中,CPU板的核心由A、B两个模块构成,为主从关系,主CPU实现同步控制。采用PC/104,网络、串口以及USB口均互联,如图1所示。

图1 CPU板逻辑示意图

在此,CPU板与其他通信单元间采用FPGA和中断操作实现数据交互,有数据输出时首先从ISA总线传递至FPGA,经过分析后确定目标通信板并保存至RAM中,然后CPU利用中断通知目标通信板发出;有数据到达时,通信板整理后同步传送至CPU的FPGA,也保存在RAM中。因此,双口RAM可以实现联锁主机的数据共享以及数据存储,并注意实现写操作、读写操作互斥。利用系统的内核函数_copy_from_user、_copy_to_user实现数据拷贝,利用读写锁rw_lock实现互斥,应用程序在读写之间利用dpram_wait_unlock获取操作权限,开始操作前dpram_lock实现加锁,操作结束之后dpram_unlock进行锁释放[2]。

2.2 I/O通信板驱动

在联锁控制主机中,各个I/O通信板的结构基本一致,主控单元选择2片XC6SLX9的FPGA,每片再扩展一个SRAM。A、B两路独立电源,FPGA不可以向网络发送命令,主要实现CPUA、CPUB的数据传输。逻辑结构如图2所示。

图2 I/O通信板逻辑示意图

对于驱动程序来说,I/O通信板实现数据交互的关键在于将映射地址中的数据进行读取及发送,主要操作步骤如下。

(1) 写操作:判断总线是否空闲,空闲时选通通信板写数,完成后设置结束标志后释放总线,将地址进行重置[3]。

(2) 读操作:收到数据后,为了A、B均可以收到数据,建立双口RAM存储区并同时发送,选通通信板后判断数据是否有效,有效时检测FPGA是否正在写入此块,设置PC/104读标志为真,读数完成之后设置标志位为假,释放总线,将地址进行重置。

2.3 设备安全性

系统实际应用于铁路时还需考虑环境因素,雨雪天气及雷电都会对系统有所影响,因此,硬件芯片需要具备较好的防腐蚀防雷击性能,对于采用的各类元器件结合工作环境、设备类别、元器件质量以及电应力比进行失效率计算,确保硬件部分安全,为软件系统提供底层基础支撑。

3 软件执行层详细设计

3.1 框架结构

完成硬件设备驱动程序之后,结合计算机联锁系统的功能需求设计软件系统的整体框架结构,将系统划分为初始化处理模块、联锁任务调度模块、双CPU控制模块,整体结构如图3所示。

图3 计算机联锁软件系统框架结构

(1) 初始化处理模块主要实现上电之后软硬件配置参数的初始化。软件类初始化操作包括全局变量、数据区域等;硬件类初始化操作包括内存、信道、通信板、输出信号等。参数类初始化操作包括系统配置文件、站场配置读取、变量赋值等。

(2) 联锁任务调度模块主要实现整个软件的任务控制以及各个模块的调度。判断联锁周期是否开始或结束,实现双CPU的数据同步,校正系统时钟,监控CPU是否稳定。

(3) 双CPU控制模块主要实现双CPU之间数据通信的逻辑控制、状态管理。

3.2. 核心模块实现

3.2.1 联锁任务调度模块

联锁任务调度模块是整个系统的核心,包括周期管理、任务调度2个部分。其中,周期管理主要是利用定时器判断上一周期是否结束并设置新周期的开始标志。定时器每10 ms产生一次中断,判断调度周期是否达到,超时时长设置为250 ms,超时信号达到之后如果联锁机还未完成则需申请延长周期并记录操作过程。

在初始化处理之后,根据配置文件确定主从CPU,并根据各自状态执行联锁任务。首先,同步新周期,同步联锁运算的数据;其次,通过比较判断数据的准确性,对每类数据处理之后,根据比较结果重置平台数据状态;最后,接收切换命令判断是否切换,再将结果进行输出。

3.2.2 双CPU控制模块

双CPU控制模块是“二乘二取二”逻辑中的“取二”,主要包括双CPU的同步、比较以及状态管理3个部分。

(1) 同步子模块。在联锁任务周期内双CPU为独立处理运行的模块,由于系统为实时系统,因此2个CPU在处理任务时的时间需保持一致性,任务中设立包括新周期开始、联锁输入、结果输出在内的多个同步点,利用CPU板中的双口RAM传递至另一块CPU。

(2) 比较子模块。双击进行比较时,首先需确保序列号、时间戳一致,保证比较数据来自同一周期同一点。其次,对于不同类型的数据采用不同的策略。

① 对于输入数据,当主从不一致时,若CRC校验码正确则以主CPU为准;若CRC码错误,则转至错故障诊断模块[5]。

② 对于输出结果,主从必须一致,否则不输出。不一致时转至故障诊断模块。

(3) 状态管理子模块。通过互相之间收发“心跳”消息实现状态判断,每过50 ms发送包含自身ID、时间戳等信息的心跳信号,若在200 ms内仍未接收到应答消息则判定对端CPU停止运行,标记故障位。

3.3 容错机制

为了缩短计算机联锁系统的故障潜伏期,在采集数据之后利用同步控制器实现实时监测,双机利用RTLinux的实时时钟按照任务周期进行数据同步,在运算结果不一致时调用执行自检程序以便过滤到瞬时故障,在联机A、B经过运算获取2*2结果之后,将最终一致的2结果送至执行主机,若比较结果一致则发送确认命令发送信号,否则给B发送重复计算信号,修改本机响应标志再次进行比较,如果超出预设次数仍不一致,则判断可能产生故障[6]。

3.4 双机热备切换

设置A为主控机,B为备用机,主机定时发送控制命令,备机与自身命令比较,一致时采用双机热备同步,若比较结果不一致并且备机命令多于主机,则代表主机出现故障,由备机发起切换,原来的主机转为脱机状态待查。为了避免由于备机脱机导致无机可换,设置全局变量work_cpu,每次比较之后均需读取该全局变量,该变量为A则联锁主机向A传递并将B发送的进程封锁。利用信号实现控制的切换,做到无缝衔接。

3.5 系统安全性

除了系统自身的双CPU控制、容错以及双击热备切换,软件系统还应注意网络安全、数据安全,具备病毒查杀、预防恶意代码植入等能力,通过防火墙策略+系统容灾机制双重保障联锁系统的软件部分保障安稳可靠运行。另外,通过定期备份、应急机制、定期清理等措施保证系统性能以及数据完整。

4 系统测试

4.1 环境准备

为了验证系统功能,在实验室环境利用2台工控机、1台联锁主机、2台交换机、控显软件搭建了测试平台进行仿真测试,在2台工控机上运行控显软件,在联锁主机上安装本研究设计的计算机联锁系统,通过以太网接入交换机实现数据通信,并利用PCI监测每个CPU的数据通信情况[7],系统结构如图4所示。

图4 测试平台框架

4.2 联锁测试

PCI与以太网连接之后,联锁系统每次进行同步任务时均会给监测程序发送信息,记录联锁周期、输入输出数据、心跳信号等数据,并可计算同步数据耗时,测试结果如图5所示,以此可证明基于RTLinux-Linux的计算机联锁软件系统功能得到实现且系统稳定。

图5 联锁测试结果

5 总结

本文以铁路信号计算机联锁系统作为应用背景,基于RTLinux-Linux内核设计了硬件设备驱动的移植与设计,并详细设计了计算机联锁的软件架构及核心模块,实现了双CPU控制、联锁同步、数据比较、状态管理等功能,经过实验平台测试满足铁路信号联锁系统需求。但也存在一些不足之处,对于硬件芯片的防腐蚀、通信协议的抗扰动性能还需进一步测试以及择优,另外对软件系统的可扩展性、可维护性的评估还需深入探索。

猜你喜欢

任务调度铁路信号中断
基于生产函数的云计算QoS任务调度算法
铁路信号设备电路原理仿真教学系统设计及应用研究
基于动态能量感知的云计算任务调度模型
TMS320F28335外部中断分析与研究
多级中断屏蔽技术分析
无线通信系统铁路信号安全传输分析
一种考虑GPS信号中断的导航滤波算法
跟踪导练(二)(5)
浅谈铁路信号信停与信号电路导通施工
铁路信号设备维护与安全机制分析