田學(xué)文
(青島四方車輛研究所有限公司, 青島 266031)
基于QNX操作系統(tǒng)的中央控制單元軟件結(jié)構(gòu)設(shè)計
田學(xué)文
(青島四方車輛研究所有限公司, 青島 266031)
在對CRH3A型城際動車組中央控制單元功能需求分析的基礎(chǔ)上,提出一種基于QNX操作系統(tǒng)的應(yīng)用軟件結(jié)構(gòu)設(shè)計。該結(jié)構(gòu)將軟件按功能劃分為多個進程和線程,通過信號量機制實現(xiàn)線程間的數(shù)據(jù)傳輸和管理,提高軟件的執(zhí)行效率和可靠性。
列車網(wǎng)絡(luò)控制系統(tǒng);QNX操作系統(tǒng);中央控制單元;信號量
列車網(wǎng)絡(luò)監(jiān)控系統(tǒng)(TCMS)是一套分布式計算機控制系統(tǒng),通過貫穿列車的通信總線將TCMS設(shè)備和各子系統(tǒng)的車載設(shè)備連接到一起,是聯(lián)系軌道車輛各分系統(tǒng)的神經(jīng)中樞,是協(xié)調(diào)各車載設(shè)備協(xié)同工作的基礎(chǔ)平臺。CRH3A型城際動車組的TCMS按照IEC61375-1標(biāo)準(zhǔn)規(guī)定的列車通信網(wǎng)絡(luò)組建,TCMS的總線采用絞線式列車總線(WTB)和多功能車輛總線(MVB)相結(jié)合的形式,WTB采用雙絞線進行數(shù)據(jù)傳輸,MVB的電氣接口采用電氣中距離(EMD)介質(zhì)。
中央控制單元是TCMS的重要組成部分,主要負(fù)責(zé)軌道車輛中列車網(wǎng)絡(luò)控制系統(tǒng)的總線管理、列車控制、監(jiān)視和故障診斷的功能。中央控制單元通過MVB與所有TCMS的子系統(tǒng)進行通信,實現(xiàn)對牽引、輔助、制動等車載子系統(tǒng)的控制和診斷。作為高速列車的網(wǎng)絡(luò)核心部件,CRH3A型動車組的中央控制單元以Intel處理器作為主CPU,采用了嵌入式實時操作系統(tǒng)QNX,本文在對CRH3A型動車組中央控制單元功能需求分析的基礎(chǔ)上,針對QNX系統(tǒng)多任務(wù)多線程機制特點,提出了一種可提高軟件運行的實時性和可靠性的中央控制單元軟件結(jié)構(gòu)設(shè)計。
中央控制單元(CCU)是列車網(wǎng)絡(luò)監(jiān)控系統(tǒng)的主要控制單元,包含以下功能:實現(xiàn)與掛接在網(wǎng)絡(luò)上的各子系統(tǒng)的MVB 設(shè)備通信;管理本牽引單元內(nèi)車輛總線;完成本牽引單元或車輛的控制和監(jiān)視;支持車輛運行狀態(tài)等關(guān)鍵變量和故障數(shù)據(jù)的存儲,用于故障分析和定位;提供調(diào)試接口,配合調(diào)試軟件實現(xiàn)在線調(diào)試和離線分析功能;可通過列車級以太網(wǎng)或車輛級以太網(wǎng)完成 CCU 應(yīng)用軟件更新和故障下載,便于系統(tǒng)維護;應(yīng)支持兩 CCU 設(shè)備間冗余功能;支持實時時鐘(RTC) 。
1.1 硬件概述
CCU在硬件設(shè)計上采用模塊化設(shè)計思想,從功能上分成幾個獨立的板卡,如電源模塊、CPU 模塊、通信模塊、I/O 模塊等。其中CPU模塊是基于Intel處理器的嵌入式平臺,主頻1.6 GHz,內(nèi)存1 G,固態(tài)硬盤4 G,集成有串口、CAN、USB、以太網(wǎng)等功能,硬件如圖1所示。
圖1 中央控制單元硬件圖
1.2 軟件概述
1.2.1 系統(tǒng)軟件
系統(tǒng)軟件應(yīng)用于QNX操作系統(tǒng)上,在QNX Momentics IDE的開發(fā)平臺上設(shè)計和硬件相關(guān)的接口驅(qū)動軟件、網(wǎng)絡(luò)配置組件、圖形化編程相關(guān)的接口軟件、TCN協(xié)議棧通訊功能相關(guān)的接口軟件,與數(shù)據(jù)實時存儲相關(guān)接口軟件等。
開發(fā)平臺界面如圖2所示。
圖2 系統(tǒng)軟件開發(fā)平臺界面
1.2.2 應(yīng)用軟件
列車控制應(yīng)用軟件采用MATLAB圖形化編程軟件,通過采用圖形化編程功能,可以將應(yīng)用軟件的功能控制部分進行圖形化設(shè)計和編寫。
控制系統(tǒng)的軟件設(shè)計采用模塊化結(jié)構(gòu),功能控制部分采用圖形語言編寫,以保證應(yīng)用軟件的開發(fā)、驗證及維護,界面如圖3所示。
CCU軟件總體分為系統(tǒng)層和應(yīng)用層,其結(jié)構(gòu)如圖4所示。
圖3 應(yīng)用軟件開發(fā)平臺界面
圖4 軟件結(jié)構(gòu)圖
CCU是CRH3A型動車組TCMS的核心部件,在它基礎(chǔ)上開發(fā)的軟件應(yīng)具備實時性、多任務(wù)和高穩(wěn)定性。因此選擇了目前廣泛應(yīng)用于控制系統(tǒng)、自動化系統(tǒng)和通信系統(tǒng)的QNX嵌入式實時操作系統(tǒng),QNX實時操作系統(tǒng)的特點如下。
2.1 采用微內(nèi)核體系結(jié)構(gòu)
QNX實時操作系統(tǒng)只在內(nèi)核里實現(xiàn)最根本的服務(wù),如信號、定時器、調(diào)度。其他所有組件,如文件系統(tǒng)、驅(qū)動、協(xié)議棧、應(yīng)用程序等,都運行在安全、有內(nèi)存保護的用戶空間,并內(nèi)置了容錯性。
2.2 提供完全的地址保護
QNX操作系統(tǒng)采用軟件總線結(jié)構(gòu),所以QNX的系統(tǒng)進程和用戶所寫的程序沒有區(qū)別,各進程的地址空間是完全保護的,無論哪個程序發(fā)生異常都不會對系統(tǒng)造成影響。
2.3 實時性強
QNX提供符合POSIX.1b標(biāo)準(zhǔn)的進程調(diào)度機制,具有多任務(wù)、多線程、基于優(yōu)先級的搶占式調(diào)度方式,共有32個調(diào)度優(yōu)先級(0~31遞增),采用搶占式、基于優(yōu)先級的上下文切換和可選調(diào)度策略(FFIO、RR、自適應(yīng)),以保證等待CPU時間滿足要求;同時QNX的線程切換時間很短。在普通PC機上可以達(dá)到微秒級。
2.4 具有廣泛的硬件支持能力
QNX支持X86、MIPS、ARM、PowerPC等多種硬件平臺。且能夠支持ISA、CPCI、VME等多種總線,支持SCSI、IDE、PCMCIA、USB等各種外設(shè)及連接方式。其中對X86具有全面和可靠的硬件支持。
針對QNX多任務(wù)、多線程的應(yīng)用軟件體系,將軟件按需求劃分為多個線程,各線程之間通過信號量機制實現(xiàn)信息通信,使軟件在效率和可靠性方面具備優(yōu)勢。
3.1 軟件功能需求
中央控制單元軟件需要實現(xiàn)的功能如下。
(1)板卡初始化:通過編寫MVB、CAN板卡驅(qū)動函數(shù),完成板卡的初始化任務(wù)。
(2)MVB數(shù)據(jù)收發(fā):通過對MVB板卡讀寫操作,獲取列車網(wǎng)絡(luò)實時數(shù)據(jù)。
(3)CAN數(shù)據(jù)收發(fā):通過背板CAN總線獲取DI模塊數(shù)值,控制DO模塊動作。
(4)以太網(wǎng)數(shù)據(jù)收發(fā):通過以太網(wǎng)接口與服務(wù)軟件通信,實現(xiàn)在線調(diào)試和離線分析、程序/故障下載功能。
(5)邏輯運算:對輸入信號進行判斷、邏輯操作給出輸出信號,實現(xiàn)對列車通信網(wǎng)絡(luò)子系統(tǒng)的控制、監(jiān)控和保護,完成列車整車控制邏輯及故障診斷等各項管理工作。
(6)故障存儲:支持車輛運行狀態(tài)等關(guān)鍵變量和故障數(shù)據(jù)的存儲,用于故障分析和定位。
(7)冗余管理:CCU應(yīng)采用熱備冗余方式,提高TCMS系統(tǒng)的可靠性。正常情況下,一個CCU為主,負(fù)責(zé)對本單元或車輛的管理;另一個CCU為從,負(fù)責(zé)監(jiān)視主CCU的狀態(tài)。當(dāng)主CCU故障或主CCU所在的網(wǎng)段故障時,從CCU自動切換為主控,使列車?yán)^續(xù)運行或?qū)虬踩?/p>
(8)TCN網(wǎng)關(guān)通信協(xié)議棧:通過初運行信號、鑰匙插拔信號,建立CCU與TCN網(wǎng)關(guān)的主從狀態(tài)轉(zhuǎn)換,完成對列車級報文數(shù)據(jù)(R1/R2/R3)的正確傳送以及對網(wǎng)絡(luò)消息數(shù)據(jù)的處理。
3.2 進程、線程的劃分
綜合分析中央控制單元的功能需求和QNX多任務(wù)、多線程的結(jié)構(gòu)特點,將軟件劃分為如下進程和線程。
(1)主進程:通過MVB總線實現(xiàn)與單元內(nèi)部設(shè)備之間信息傳遞;通過MVB總線實現(xiàn)與列車單元設(shè)備之間以及與重聯(lián)列車單元設(shè)備之間信息傳遞。完成網(wǎng)絡(luò)控制系統(tǒng)的總線管理、列車控制、監(jiān)視和故障診斷的功能。
(2)輔助進程:通過共享內(nèi)存完成與主進程之間的信息交互;通過以太網(wǎng)接口實現(xiàn)與服務(wù)軟件交互。完成與列車網(wǎng)絡(luò)變量相關(guān)的在線監(jiān)控/強制、列車運行配置文件的修改、上傳、下載以及程序的在線更新等功能。
(3)MVB初始化線程:完成CPU上電后對MVB板卡的復(fù)位、端口配置和總線管理工作。
(4)MVB數(shù)據(jù)讀寫線程:完成對MVB板卡端口數(shù)據(jù)的讀寫工作。
(5)過程數(shù)據(jù)變量與邏輯運算變量更新線程:完成 MVB數(shù)據(jù)與邏輯運算數(shù)據(jù)的交互工作。
(6)MVB任務(wù)調(diào)度線程,通過信號量獲取與釋放完成(3)、(4)、(5)線程之間的協(xié)調(diào)與同步。提供與TCN網(wǎng)關(guān)的協(xié)議棧及CCU間的冗余切換任務(wù)。
(7)邏輯運算線程:通過實時獲取的MVB網(wǎng)絡(luò)數(shù)據(jù),對輸入信號進行判斷和邏輯操作,給出輸出信號,負(fù)責(zé)實現(xiàn)對列車通信網(wǎng)絡(luò)子系統(tǒng)的控制、監(jiān)控和保護,完成列車整車控制邏輯及故障診斷等各項管理工作。
中央控制單元軟件結(jié)構(gòu)如圖5所示。
3.3 軟件結(jié)構(gòu)的特點
主進程與輔助進程作為獨立運行的兩個任務(wù),其內(nèi)存空間是完全受保護的,某一個進程發(fā)生異常退出后不影響另一個進程的運行。主進程和輔助進程相對獨立,可以獨立編譯、運行、升級,為今后程序維護提供方便;主進程內(nèi)根據(jù)功能設(shè)置的各個線程可以并發(fā)運行,線程間通過信號量相互協(xié)調(diào),提高軟件的執(zhí)行效率和運行的實時性。
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
田學(xué)文,工程師。