周庭梁 夏 偉 蔣建金 傅林泰
(卡斯柯信號有限公司,200071,上海//第一作者,高級工程師)
安全計算機平臺作為軌道交通信號系統(tǒng)的基礎(chǔ)安全苛求設(shè)備,采用故障導向安全的機制,支撐平臺之上的信號系統(tǒng)的安全運行,是負責軌道交通安全的核心設(shè)備,其安全等級必須達到SIL4(EN系列最高安全等級)。
目前我國尚缺乏成熟的基于自主安全嵌入式操作系統(tǒng)且符合SIL4高安全等級的自主化軌道交通安全計算機平臺。其中,嵌入式實時操作系統(tǒng)作為嵌入式軟件產(chǎn)業(yè)鏈的底層基礎(chǔ),具有相當?shù)拈_發(fā)難度,需要較長的開發(fā)周期和較高的開發(fā)成本,因此逐漸作為一個獨立的研發(fā)領(lǐng)域向?qū)I(yè)化、模塊化和商業(yè)化發(fā)展,形成產(chǎn)業(yè)鏈中重要一環(huán)。目前在國內(nèi)市場上流行的實時操作系統(tǒng)主要包括VxWork、PSOS、VRTX、Nucleus、QNX、UC/OS-II和WinCE等,國產(chǎn)的實時操作系統(tǒng)主要包括ReWorks、Delta OS、Hopen OS、CASSPDA和HBOS等。
本文將研究安全計算機平臺的架構(gòu)設(shè)計,通過自主操作系統(tǒng)的替換,擺脫對進口基礎(chǔ)軟件的依賴,以及通過安全中間件的開發(fā),支持安全計算機平臺所需要的基礎(chǔ)軟件功能。
安全計算機平臺的典型安全架構(gòu)主要包括基于編碼的、基于雙機熱備結(jié)構(gòu)的、三取二架構(gòu)的以及二乘二取二架構(gòu)的安全平臺。
基于編碼的安全平臺如圖1所示。這類型的安全平臺采用基于編碼的安全原理,其核心運算模塊上的I/O(輸入/輸出)處理和計算部分均進行編碼。根據(jù)此類平臺對編碼運算結(jié)果的處理方式,又可以分為圖1中的類型I和類型II兩類安全平臺。類型I的安全平臺,采用獨立的校驗板對編碼結(jié)果進行校驗,以實現(xiàn)每周期對于處理結(jié)果的實時安全檢查,校驗不通過時將導向安全側(cè);類型II的安全平臺,本身的編碼系統(tǒng)安全原理就能夠保證在計算結(jié)果出錯或有可能導致危險的輸出時,相應編碼的校驗碼部分能檢測相應的出錯故障,并且將相關(guān)故障反映到校驗碼中。
圖1 基于編碼的安全平臺
雙機熱備的安全平臺如圖2所示。其基本工作原理是兩個模塊接收相同的輸入數(shù)據(jù)并進行邏輯運算,其中一個模塊為主機,另一個為熱備機,只有主機才有對外控制權(quán)。每個模塊一般均為單CPU(中央處理器)處理單元,單個模塊構(gòu)成獨立的子系統(tǒng)。主備機都具有故障檢測功能,在其工作過程中,若主機自檢發(fā)現(xiàn)自身出現(xiàn)故障時,通過切換單元進行切換,備機升為主機運行;若熱備機出現(xiàn)故障,則不進行切換。
圖2 雙機熱備的安全平臺
圖3 三取二架構(gòu)的安全平臺
三取二架構(gòu)的安全平臺如圖3所示。該平臺由3個模塊組成。正常工作時,3個模塊接收相同的輸入數(shù)據(jù),并平行地對數(shù)據(jù)進行處理,然后通過表決單元對運算結(jié)果進行多數(shù)表決;只要有2個模塊的運算結(jié)果一致,則認為系統(tǒng)處于正常工作狀態(tài),產(chǎn)生控制命令并輸出。三取二架構(gòu)在其中一個模塊出現(xiàn)故障退出工作時,降級為二取二架構(gòu)。通過這種降級處理方式,增強了可用性,使整體系統(tǒng)能夠繼續(xù)工作,實際上起到了熱備的作用。
二乘二取二架構(gòu)的安全平臺如圖4所示。該平臺由兩系4個模塊組成,其中2個模塊構(gòu)成1個子系統(tǒng),形成二取二結(jié)構(gòu),通過比較器實時比較。兩系構(gòu)成熱備冗余結(jié)構(gòu),和雙機熱備原理相同。其中一系為主系,另一系為備系,當主系內(nèi)雙機比較不一致或出現(xiàn)故障時,則系統(tǒng)切換到備系工作;若備系內(nèi)雙機比較不一致或出現(xiàn)故障時,則不需要切換。該結(jié)構(gòu)采用二取二比較來保證系統(tǒng)的安全性,同時采用雙機切換來保證系統(tǒng)的可靠性。目前國內(nèi)外的安全平臺廣泛采用二乘二取二架構(gòu),本文將以該架構(gòu)作為設(shè)計與實現(xiàn)的基礎(chǔ)來進行討論。
圖4 二乘二取二架構(gòu)的安全平臺
目前,自主化的軌道交通運控系統(tǒng)研發(fā)與集成應用發(fā)展較為迅速,已具備了商用條件,但難以突破國外的技術(shù)體系制約,尤其是安全計算機的核心部件仍然被國外控制,其涉及的核心基礎(chǔ)軟件高安全嵌入式操作系統(tǒng)主要都是采用國外Intel、QNX、Micrium等公司的高安全認證產(chǎn)品,無法擺脫對進口基礎(chǔ)軟件的依賴。
實時操作系統(tǒng)是當今流行的嵌入式系統(tǒng)的軟件開發(fā)平臺,在軌道交通安全計算機平臺中引入高安全嵌入式實時操作系統(tǒng),可以有效地解決系統(tǒng)的高安全性和底層硬件抽象化的難題,從而有利于系統(tǒng)“故障-安全”的實現(xiàn),提高系統(tǒng)的安全性、可移植性和可維護性,縮短了新產(chǎn)品的開發(fā)周期。
本文擬采用ReWorks-Cert操作系統(tǒng),實現(xiàn)自主化安全計算機平臺的基礎(chǔ)軟件自主化替代。作為國內(nèi)唯一通過IEC 61508 SIL3和EN 50128 SIL3安全認證的自主可控嵌入式實時操作系統(tǒng),ReWorks-Cert操作系統(tǒng)由中國電子科技集團公司第三十二研究所自主研制,采用操作系統(tǒng)功能安全完整性最高等級的標準進行研制。
作為一款微內(nèi)核操作系統(tǒng),ReWorks-Cert操作系統(tǒng)不僅能夠提供基于優(yōu)先級的搶占式實時調(diào)度和多任務(wù)管理機制,支持基于中斷優(yōu)先級的中斷嵌套和共享中斷的異常/中斷管理,還能支持互斥量、信號量、消息隊列及事件等多種任務(wù)通信機制,能夠滿足軌道交通安全計算機平臺對于實時操作系統(tǒng)的苛刻需求。ReWorks-Cert操作系統(tǒng)安全平臺結(jié)構(gòu)圖如圖5所示。
圖5 ReWorks-Cert操作系統(tǒng)安全平臺結(jié)構(gòu)圖
本文基于高安全自主化國產(chǎn)實時嵌入式ReWorks-Cert操作系統(tǒng),通過研發(fā)嵌入式安全中間件技術(shù),構(gòu)建軌道交通信號控制系統(tǒng)的多子系統(tǒng)共用的、符合SIL4高安全等級的二乘二取二架構(gòu)自主化安全計算機平臺。
中間件是一種獨立的系統(tǒng)軟件或服務(wù)程序,位于操作系統(tǒng)之上,管理計算機資源和網(wǎng)絡(luò)通信,為應用軟件提供運行環(huán)境,幫助用戶靈活、高效地開發(fā)和集成復雜的應用軟件。使用中間件技術(shù)可以使應用軟件在設(shè)計開發(fā)時無需直接接觸復雜的計算機最底層的數(shù)據(jù)(如操作系統(tǒng)、網(wǎng)絡(luò)協(xié)議和數(shù)據(jù)庫等)。利用軌道交通信號各子系統(tǒng)之間的共性需求來構(gòu)建安全的計算機中間件,應用開發(fā)人員通過調(diào)用中間件提供的標準API(應用程序編程接口),只需關(guān)注與應用相關(guān)的功能開發(fā),而無需考慮安全平臺相關(guān)的功能開發(fā),與平臺共性且相關(guān)的功能由通用安全中間件系統(tǒng)實現(xiàn),這樣可以大大縮短系統(tǒng)的研發(fā)及測試周期,減少資金的重復投入,降低軟件的部署及維護難度。
操作系統(tǒng)中自帶的網(wǎng)絡(luò)協(xié)議棧或商用協(xié)議棧本身對于安全計算機平臺而言是不可見的黑盒,無法做到高安全、透明化、自主可控等要求。為了解決該問題,本文參考RFC標準[2-7],根據(jù)實際需求,開發(fā)出為安全計算機平臺提供協(xié)議的集合(PROSTACK)。PROSTACK是由卡斯柯信號有限公司完全自主研發(fā)的,并且通過EN 50128 SIL4級安全認證。
PROSTACK的架構(gòu)如圖6所示,包括IP[2]、TCP、UDP[3]、ICMP[6]、TFTP[7]、SNMP及SNTP等通用網(wǎng)絡(luò)協(xié)議,以及FSFB2、SACEM、RSSP1、RSSP2等多種安全通信協(xié)議。PROSTACK可用于安全計算機平臺中安全消息、維護消息、軟件鏡像、時鐘消息等各種數(shù)據(jù)的傳輸。通過虛擬IP技術(shù)建立內(nèi)部子網(wǎng)接口,實現(xiàn)以太網(wǎng)、串口和CAN(控制器局域器)總線等構(gòu)件之間消息的互聯(lián)互通。
圖6 PROSTACK架構(gòu)圖
PROSTACK通過對傳輸過程數(shù)據(jù)統(tǒng)計、故障數(shù)據(jù)檢測、錯誤數(shù)據(jù)記錄等技術(shù)方法,提高了傳輸過程的安全性與可控性;提供POSIX接口,提高代碼開發(fā)及移植效率;安全通信協(xié)議采用序列號、時間戳、源和目的地標志符、消息鑒定安全碼、CRC(循環(huán)冗余校驗碼)編碼等防御措施以抵御傳輸系統(tǒng)中的相關(guān)威脅和風險。
自檢測技術(shù)(BIT)[1]是為了盡早地暴露單通道的故障而采取的一種技術(shù)。安全平臺的自檢測分為上電自檢和在線自檢。上電自檢的檢測內(nèi)容主要包括檢測系統(tǒng)是否為熱重啟、檢測硬件是否存在故障、檢測可執(zhí)行文件在拷貝過程中是否被修改等,一旦檢測不通過,系統(tǒng)立即導向安全側(cè);在線自檢按照一定時間周期循環(huán)執(zhí)行,檢測內(nèi)容主要包括檢測CPU和內(nèi)存是否發(fā)生故障、可執(zhí)行文件是否被修改、通信通道(串口、CAN及GPIO)是否發(fā)生故障等,一旦檢測不通過,系統(tǒng)立即導向安全側(cè)。
CPU檢測分為寄存器測試和指令測試,其中寄存器采用匯編程序,指令測試采用C語言程序。CPU寄存器測試方法為將一串RAM(隨機存取存儲器)中測試字寫入寄存器,再從寄存器中將數(shù)據(jù)讀出存入RAM,然后比較讀寫數(shù)據(jù)的一致性;指令測試采用輸入一組高診斷覆蓋率的檢測數(shù)據(jù),進行算術(shù)運算、邏輯運算、移位操作等指令運算,比較實際運算結(jié)果與預期結(jié)果的一致性。
內(nèi)存檢測對SDRAM(同步動態(tài)隨機存儲器)、SRAM(靜態(tài)隨機存儲器)、FLASH等進行完整性測試,每次測試均要訪問多個字節(jié)的數(shù)據(jù),與安全相關(guān)的常量數(shù)據(jù)通常采用計算得到的CRC進行比較。測試結(jié)果需要進行雙通道比較,如果失敗或不一致,系統(tǒng)將導向安全側(cè)。
安全平臺中間件可擴展接口如圖7所示。其中,安全中間件需要提供統(tǒng)一的接口供平臺調(diào)用,同時平臺封裝這些接口提供給應用使用。安全中間件的接口主要包括以下幾種:
圖7 安全平臺中間件可擴展接口
1) 獲取操作系統(tǒng)服務(wù)的接口(I_OS):獲取ReWorks-Cert操作系統(tǒng)提供的信號量管理、內(nèi)存管理、消息隊列管理、任務(wù)管理、時間管理、事件標志管理、中斷管理和鉤子函數(shù)管理等服務(wù)。
2) 人機界面接口(I_HMI):訪問板卡上的LED(發(fā)光二極管)燈、數(shù)碼管等顯示功能。
3) 以太網(wǎng)通信接口(I_Net):與外部的設(shè)備進行通信,傳遞安全數(shù)據(jù)、維護數(shù)據(jù)及時間數(shù)據(jù)等。
4) 串行總線接口(I_SPI):訪問串行FLASH,獲取配置數(shù)據(jù),并寫入事件日志等。
5) 并行總線接口(I_Parallel):讀取電子戳與軟件熔絲,同時讀寫配置數(shù)據(jù)。
6) CAN總線接口(I_CAN):通過CAN總線接口與其他模塊交互信息。
7) 應用接口(I_API):開放接口與應用軟件交互信息。
根據(jù)EN 50128[8]、IEC 61508[9]等標準中關(guān)于安全苛求系統(tǒng)開發(fā)的相關(guān)要求,系統(tǒng)的功能、性能、RAMS(可靠性、可用性、可維修性、安全性)等需求應分配到軟件或硬件中實現(xiàn),是一個自上而下的過程。對應地,測試過程分成軟硬件級、系統(tǒng)級的確認和驗證,同樣亦是一個自下而上的過程,如圖8所示。
圖8 系統(tǒng)級測試過程
針對安全平臺的軟件測試包括軟件需求和軟件架構(gòu),要求通過軟件確認測試和集成測試來確保軟件需求及軟件模塊的接口被正確實現(xiàn)。對于軟件編碼階段,要求進行靜態(tài)分析,主要來驗證編碼對于編碼規(guī)則的符合性。對于每一個軟件函數(shù),根據(jù)EN 50128的要求,必須做到語句覆蓋、分支覆蓋和MC/DC(修訂條件/判定覆蓋)覆蓋達到100%。
硬件測試和軟件測試類似,區(qū)別是對于硬件板卡,其單元測試無明確的語句或者分支覆蓋率要求,所要做的是功能覆蓋的100%,同時要根據(jù)硬件設(shè)計的經(jīng)驗進行信號完整性、電源完整性、安規(guī)測試等性能和電氣安全等測試。
為了驗證ReWorks-Cert操作系統(tǒng)可以滿足安全平臺對實時操作系統(tǒng)的性能要求,需要對安全計算機平臺的行為進行全系統(tǒng)的確認,確保每一條需求都被設(shè)計正確實現(xiàn)。
為了測試ReWorks-Cert操作系統(tǒng)的性能參數(shù),將安全計算機平臺分別運行于ReWorks-Cert操作系統(tǒng)和某國外主流實時操作系統(tǒng) (簡稱RTOS)之上,兩者硬件環(huán)境相同。通過統(tǒng)計一些基準性能測試參數(shù)(響應時間)進行比較,測試條件為:①編譯器的編譯優(yōu)化選項為2級;②使能處理器指令緩存并關(guān)閉數(shù)據(jù)緩存;③所有操作系統(tǒng)使用的全局變量最后存放在處理器內(nèi)部靜態(tài)內(nèi)存SRAM。
系統(tǒng)穩(wěn)定運行2周,隨機采樣100次數(shù)據(jù)并取平均值,統(tǒng)計結(jié)果如圖9所示。
圖9 基準性能參數(shù)平均值比較
對試驗結(jié)果進行分析,得到:
1) 對于單次協(xié)同調(diào)度,ReWorks-Cert操作系統(tǒng)較RTOS的執(zhí)行時間快13.6%;
2) 對于單次搶占式調(diào)度,ReWorks-Cert操作系統(tǒng)比RTOS的執(zhí)行時間快16.6%;
3) 對于單次中斷處理(無搶占發(fā)生),ReWorks-Cert操作系統(tǒng)比RTOS的執(zhí)行時間快4.8%;
4) 對于單次搶占式中斷處理,ReWorks-Cert操作系統(tǒng)比RTOS的執(zhí)行時間快30.1%;
5) 對于單次消息隊列處理(考慮任務(wù)阻塞和帶超時參數(shù)),ReWorks-Cert操作系統(tǒng)比RTOS的執(zhí)行時間快9.4%;
6) 對于單次簡單任務(wù)同步(信號量),ReWorks-Cert操作系統(tǒng)比RTOS的執(zhí)行時間慢7.3%;
7) 對于單次(事件)標志處理(考慮任務(wù)阻塞和帶超時參數(shù)),ReWorks-Cert操作系統(tǒng)比RTOS的執(zhí)行時間快20%。
對于安全協(xié)議棧的測試,需要滿足EN 50128標準中對SIL4軟件功能、性能測試的方法的要求,采用邊界值分析、等價類劃分、錯誤猜測等測試技術(shù)。測試人員通過設(shè)計模擬器發(fā)送消息來完成測試,測試架構(gòu)如圖10所示。測試結(jié)果表明:安全計算機平臺功能實現(xiàn)正確,并且滿足EN 50128、IEC 61508等標準中關(guān)于安全苛求系統(tǒng)開發(fā)的相關(guān)要求。
圖10 PROSTACK測試架構(gòu)圖
本文以基于自主操作系統(tǒng)的安全計算機平臺的開發(fā)為目標,突破軌道交通安全計算機平臺在安全認證過程中面臨的進口基礎(chǔ)軟件的知識產(chǎn)權(quán)限制,補齊軌道交通產(chǎn)業(yè)鏈在基礎(chǔ)軟件層面的短板,增強我國軌道交通“走出去”的核心競爭力。目前,基于自主操作系統(tǒng)的安全計算機平臺已經(jīng)通過第三方SIL4級安全認證,并將在實際軌道交通線路試點示范應用,并進一步形成適用于軌道交通行業(yè)的通用安全基礎(chǔ)軟件的安全接口、定義和規(guī)范。