基于QNX操作系统的中央控制单元软件结构设计

2016-02-15 09:57:08田学文
铁路计算机应用 2016年1期
关键词:板卡线程进程

田学文

(青岛四方车辆研究所有限公司, 青岛 266031)

基于QNX操作系统的中央控制单元软件结构设计

田学文

(青岛四方车辆研究所有限公司, 青岛 266031)

在对CRH3A型城际动车组中央控制单元功能需求分析的基础上,提出一种基于QNX操作系统的应用软件结构设计。该结构将软件按功能划分为多个进程和线程,通过信号量机制实现线程间的数据传输和管理,提高软件的执行效率和可靠性。

列车网络控制系统;QNX操作系统;中央控制单元;信号量

列车网络监控系统(TCMS)是一套分布式计算机控制系统,通过贯穿列车的通信总线将TCMS设备和各子系统的车载设备连接到一起,是联系轨道车辆各分系统的神经中枢,是协调各车载设备协同工作的基础平台。CRH3A型城际动车组的TCMS按照IEC61375-1标准规定的列车通信网络组建,TCMS的总线采用绞线式列车总线(WTB)和多功能车辆总线(MVB)相结合的形式,WTB采用双绞线进行数据传输,MVB的电气接口采用电气中距离(EMD)介质。

中央控制单元是TCMS的重要组成部分,主要负责轨道车辆中列车网络控制系统的总线管理、列车控制、监视和故障诊断的功能。中央控制单元通过MVB与所有TCMS的子系统进行通信,实现对牵引、辅助、制动等车载子系统的控制和诊断。作为高速列车的网络核心部件,CRH3A型动车组的中央控制单元以Intel处理器作为主CPU,采用了嵌入式实时操作系统QNX,本文在对CRH3A型动车组中央控制单元功能需求分析的基础上,针对QNX系统多任务多线程机制特点,提出了一种可提高软件运行的实时性和可靠性的中央控制单元软件结构设计。

1 中央控制单元构成

中央控制单元(CCU)是列车网络监控系统的主要控制单元,包含以下功能:实现与挂接在网络上的各子系统的MVB 设备通信;管理本牵引单元内车辆总线;完成本牵引单元或车辆的控制和监视;支持车辆运行状态等关键变量和故障数据的存储,用于故障分析和定位;提供调试接口,配合调试软件实现在线调试和离线分析功能;可通过列车级以太网或车辆级以太网完成 CCU 应用软件更新和故障下载,便于系统维护;应支持两 CCU 设备间冗余功能;支持实时时钟(RTC) 。

1.1 硬件概述

CCU在硬件设计上采用模块化设计思想,从功能上分成几个独立的板卡,如电源模块、CPU 模块、通信模块、I/O 模块等。其中CPU模块是基于Intel处理器的嵌入式平台,主频1.6 GHz,内存1 G,固态硬盘4 G,集成有串口、CAN、USB、以太网等功能,硬件如图1所示。

图1 中央控制单元硬件图

1.2 软件概述

1.2.1 系统软件

系统软件应用于QNX操作系统上,在QNX Momentics IDE的开发平台上设计和硬件相关的接口驱动软件、网络配置组件、图形化编程相关的接口软件、TCN协议栈通讯功能相关的接口软件,与数据实时存储相关接口软件等。

开发平台界面如图2所示。

图2 系统软件开发平台界面

1.2.2 应用软件

列车控制应用软件采用MATLAB图形化编程软件,通过采用图形化编程功能,可以将应用软件的功能控制部分进行图形化设计和编写。

控制系统的软件设计采用模块化结构,功能控制部分采用图形语言编写,以保证应用软件的开发、验证及维护,界面如图3所示。

CCU软件总体分为系统层和应用层,其结构如图4所示。

图3 应用软件开发平台界面

图4 软件结构图

2 QNX操作系统的特点

CCU是CRH3A型动车组TCMS的核心部件,在它基础上开发的软件应具备实时性、多任务和高稳定性。因此选择了目前广泛应用于控制系统、自动化系统和通信系统的QNX嵌入式实时操作系统,QNX实时操作系统的特点如下。

2.1 采用微内核体系结构

QNX实时操作系统只在内核里实现最根本的服务,如信号、定时器、调度。其他所有组件,如文件系统、驱动、协议栈、应用程序等,都运行在安全、有内存保护的用户空间,并内置了容错性。

2.2 提供完全的地址保护

QNX操作系统采用软件总线结构,所以QNX的系统进程和用户所写的程序没有区别,各进程的地址空间是完全保护的,无论哪个程序发生异常都不会对系统造成影响。

2.3 实时性强

QNX提供符合POSIX.1b标准的进程调度机制,具有多任务、多线程、基于优先级的抢占式调度方式,共有32个调度优先级(0~31递增),采用抢占式、基于优先级的上下文切换和可选调度策略(FFIO、RR、自适应),以保证等待CPU时间满足要求;同时QNX的线程切换时间很短。在普通PC机上可以达到微秒级。

2.4 具有广泛的硬件支持能力

QNX支持X86、MIPS、ARM、PowerPC等多种硬件平台。且能够支持ISA、CPCI、VME等多种总线,支持SCSI、IDE、PCMCIA、USB等各种外设及连接方式。其中对X86具有全面和可靠的硬件支持。

3 基于QNX操作系统的软件结构设计

针对QNX多任务、多线程的应用软件体系,将软件按需求划分为多个线程,各线程之间通过信号量机制实现信息通信,使软件在效率和可靠性方面具备优势。

3.1 软件功能需求

中央控制单元软件需要实现的功能如下。

(1)板卡初始化:通过编写MVB、CAN板卡驱动函数,完成板卡的初始化任务。

(2)MVB数据收发:通过对MVB板卡读写操作,获取列车网络实时数据。

(3)CAN数据收发:通过背板CAN总线获取DI模块数值,控制DO模块动作。

(4)以太网数据收发:通过以太网接口与服务软件通信,实现在线调试和离线分析、程序/故障下载功能。

(5)逻辑运算:对输入信号进行判断、逻辑操作给出输出信号,实现对列车通信网络子系统的控制、监控和保护,完成列车整车控制逻辑及故障诊断等各项管理工作。

(6)故障存储:支持车辆运行状态等关键变量和故障数据的存储,用于故障分析和定位。

(7)冗余管理:CCU应采用热备冗余方式,提高TCMS系统的可靠性。正常情况下,一个CCU为主,负责对本单元或车辆的管理;另一个CCU为从,负责监视主CCU的状态。当主CCU故障或主CCU所在的网段故障时,从CCU自动切换为主控,使列车继续运行或导向安全。

(8)TCN网关通信协议栈:通过初运行信号、钥匙插拔信号,建立CCU与TCN网关的主从状态转换,完成对列车级报文数据(R1/R2/R3)的正确传送以及对网络消息数据的处理。

3.2 进程、线程的划分

综合分析中央控制单元的功能需求和QNX多任务、多线程的结构特点,将软件划分为如下进程和线程。

(1)主进程:通过MVB总线实现与单元内部设备之间信息传递;通过MVB总线实现与列车单元设备之间以及与重联列车单元设备之间信息传递。完成网络控制系统的总线管理、列车控制、监视和故障诊断的功能。

(2)辅助进程:通过共享内存完成与主进程之间的信息交互;通过以太网接口实现与服务软件交互。完成与列车网络变量相关的在线监控/强制、列车运行配置文件的修改、上传、下载以及程序的在线更新等功能。

(3)MVB初始化线程:完成CPU上电后对MVB板卡的复位、端口配置和总线管理工作。

(4)MVB数据读写线程:完成对MVB板卡端口数据的读写工作。

(5)过程数据变量与逻辑运算变量更新线程:完成 MVB数据与逻辑运算数据的交互工作。

(6)MVB任务调度线程,通过信号量获取与释放完成(3)、(4)、(5)线程之间的协调与同步。提供与TCN网关的协议栈及CCU间的冗余切换任务。

(7)逻辑运算线程:通过实时获取的MVB网络数据,对输入信号进行判断和逻辑操作,给出输出信号,负责实现对列车通信网络子系统的控制、监控和保护,完成列车整车控制逻辑及故障诊断等各项管理工作。

中央控制单元软件结构如图5所示。

3.3 软件结构的特点

主进程与辅助进程作为独立运行的两个任务,其内存空间是完全受保护的,某一个进程发生异常退出后不影响另一个进程的运行。主进程和辅助进程相对独立,可以独立编译、运行、升级,为今后程序维护提供方便;主进程内根据功能设置的各个线程可以并发运行,线程间通过信号量相互协调,提高软件的执行效率和运行的实时性。

Design of software structure for central control unit based on QNX OS

TIAN Xuewen
( Qingdao Sifang Rolling Stock Research Institute Co.Ltd.,Qingdao 266031,China)

With the analysis of function requirements for central control unit of CRH3A EMU,a software design structure was proposed based on QNX OS.The design structure divided software into several processes and threads.The data transmission and management between threads were implemented by the semaphore mechanism to optimize effciency and reliability of the software.

Train Network Control System;QNX Operation System;Central Control Unit (CCU);semaphore

U266.2∶TP39

A

1005-8451(2016)01-0041-04

2015-04-22

田学文,工程师。

猜你喜欢
板卡线程进程
债券市场对外开放的进程与展望
中国外汇(2019年20期)2019-11-25 09:54:58
基于PCI9054的多总线通信板卡的研制
测控技术(2018年3期)2018-11-25 09:45:46
基于FPGA的多通道模拟量采集/输出PCI板卡的研制
测控技术(2018年12期)2018-11-25 09:37:42
浅谈linux多线程协作
环球市场(2017年36期)2017-03-09 15:48:21
一种基于光纤数据传输的多板卡软件程序烧写技术
一种通用模拟量及开关量信号采集板卡的设计
社会进程中的新闻学探寻
民主与科学(2014年3期)2014-02-28 11:23:03
我国高等教育改革进程与反思
教育与职业(2014年7期)2014-01-21 02:35:04
Linux僵死进程的产生与避免
Linux线程实现技术研究