周庭梁 夏 偉 蔣建金 傅林泰
(卡斯柯信號有限公司,200071,上海//第一作者,高級工程師)
安全計算機平臺作為軌道交通信號系統的基礎安全苛求設備,采用故障導向安全的機制,支撐平臺之上的信號系統的安全運行,是負責軌道交通安全的核心設備,其安全等級必須達到SIL4(EN系列最高安全等級)。
目前我國尚缺乏成熟的基于自主安全嵌入式操作系統且符合SIL4高安全等級的自主化軌道交通安全計算機平臺。其中,嵌入式實時操作系統作為嵌入式軟件產業鏈的底層基礎,具有相當的開發難度,需要較長的開發周期和較高的開發成本,因此逐漸作為一個獨立的研發領域向專業化、模塊化和商業化發展,形成產業鏈中重要一環。目前在國內市場上流行的實時操作系統主要包括VxWork、PSOS、VRTX、Nucleus、QNX、UC/OS-II和WinCE等,國產的實時操作系統主要包括ReWorks、Delta OS、Hopen OS、CASSPDA和HBOS等。
本文將研究安全計算機平臺的架構設計,通過自主操作系統的替換,擺脫對進口基礎軟件的依賴,以及通過安全中間件的開發,支持安全計算機平臺所需要的基礎軟件功能。
安全計算機平臺的典型安全架構主要包括基于編碼的、基于雙機熱備結構的、三取二架構的以及二乘二取二架構的安全平臺。
基于編碼的安全平臺如圖1所示。這類型的安全平臺采用基于編碼的安全原理,其核心運算模塊上的I/O(輸入/輸出)處理和計算部分均進行編碼。根據此類平臺對編碼運算結果的處理方式,又可以分為圖1中的類型I和類型II兩類安全平臺。類型I的安全平臺,采用獨立的校驗板對編碼結果進行校驗,以實現每周期對于處理結果的實時安全檢查,校驗不通過時將導向安全側;類型II的安全平臺,本身的編碼系統安全原理就能夠保證在計算結果出錯或有可能導致危險的輸出時,相應編碼的校驗碼部分能檢測相應的出錯故障,并且將相關故障反映到校驗碼中。

圖1 基于編碼的安全平臺
雙機熱備的安全平臺如圖2所示。其基本工作原理是兩個模塊接收相同的輸入數據并進行邏輯運算,其中一個模塊為主機,另一個為熱備機,只有主機才有對外控制權。每個模塊一般均為單CPU(中央處理器)處理單元,單個模塊構成獨立的子系統。主備機都具有故障檢測功能,在其工作過程中,若主機自檢發現自身出現故障時,通過切換單元進行切換,備機升為主機運行;若熱備機出現故障,則不進行切換。

圖2 雙機熱備的安全平臺

圖3 三取二架構的安全平臺
三取二架構的安全平臺如圖3所示。該平臺由3個模塊組成。正常工作時,3個模塊接收相同的輸入數據,并平行地對數據進行處理,然后通過表決單元對運算結果進行多數表決;只要有2個模塊的運算結果一致,則認為系統處于正常工作狀態,產生控制命令并輸出。三取二架構在其中一個模塊出現故障退出工作時,降級為二取二架構。通過這種降級處理方式,增強了可用性,使整體系統能夠繼續工作,實際上起到了熱備的作用。
二乘二取二架構的安全平臺如圖4所示。該平臺由兩系4個模塊組成,其中2個模塊構成1個子系統,形成二取二結構,通過比較器實時比較。兩系構成熱備冗余結構,和雙機熱備原理相同。其中一系為主系,另一系為備系,當主系內雙機比較不一致或出現故障時,則系統切換到備系工作;若備系內雙機比較不一致或出現故障時,則不需要切換。該結構采用二取二比較來保證系統的安全性,同時采用雙機切換來保證系統的可靠性。目前國內外的安全平臺廣泛采用二乘二取二架構,本文將以該架構作為設計與實現的基礎來進行討論。

圖4 二乘二取二架構的安全平臺
目前,自主化的軌道交通運控系統研發與集成應用發展較為迅速,已具備了商用條件,但難以突破國外的技術體系制約,尤其是安全計算機的核心部件仍然被國外控制,其涉及的核心基礎軟件高安全嵌入式操作系統主要都是采用國外Intel、QNX、Micrium等公司的高安全認證產品,無法擺脫對進口基礎軟件的依賴。
實時操作系統是當今流行的嵌入式系統的軟件開發平臺,在軌道交通安全計算機平臺中引入高安全嵌入式實時操作系統,可以有效地解決系統的高安全性和底層硬件抽象化的難題,從而有利于系統“故障-安全”的實現,提高系統的安全性、可移植性和可維護性,縮短了新產品的開發周期。
本文擬采用ReWorks-Cert操作系統,實現自主化安全計算機平臺的基礎軟件自主化替代。作為國內唯一通過IEC 61508 SIL3和EN 50128 SIL3安全認證的自主可控嵌入式實時操作系統,ReWorks-Cert操作系統由中國電子科技集團公司第三十二研究所自主研制,采用操作系統功能安全完整性最高等級的標準進行研制。
作為一款微內核操作系統,ReWorks-Cert操作系統不僅能夠提供基于優先級的搶占式實時調度和多任務管理機制,支持基于中斷優先級的中斷嵌套和共享中斷的異常/中斷管理,還能支持互斥量、信號量、消息隊列及事件等多種任務通信機制,能夠滿足軌道交通安全計算機平臺對于實時操作系統的苛刻需求。ReWorks-Cert操作系統安全平臺結構圖如圖5所示。

圖5 ReWorks-Cert操作系統安全平臺結構圖
本文基于高安全自主化國產實時嵌入式ReWorks-Cert操作系統,通過研發嵌入式安全中間件技術,構建軌道交通信號控制系統的多子系統共用的、符合SIL4高安全等級的二乘二取二架構自主化安全計算機平臺。
中間件是一種獨立的系統軟件或服務程序,位于操作系統之上,管理計算機資源和網絡通信,為應用軟件提供運行環境,幫助用戶靈活、高效地開發和集成復雜的應用軟件。使用中間件技術可以使應用軟件在設計開發時無需直接接觸復雜的計算機最底層的數據(如操作系統、網絡協議和數據庫等)。利用軌道交通信號各子系統之間的共性需求來構建安全的計算機中間件,應用開發人員通過調用中間件提供的標準API(應用程序編程接口),只需關注與應用相關的功能開發,而無需考慮安全平臺相關的功能開發,與平臺共性且相關的功能由通用安全中間件系統實現,這樣可以大大縮短系統的研發及測試周期,減少資金的重復投入,降低軟件的部署及維護難度。
操作系統中自帶的網絡協議棧或商用協議棧本身對于安全計算機平臺而言是不可見的黑盒,無法做到高安全、透明化、自主可控等要求。為了解決該問題,本文參考RFC標準[2-7],根據實際需求,開發出為安全計算機平臺提供協議的集合(PROSTACK)。PROSTACK是由卡斯柯信號有限公司完全自主研發的,并且通過EN 50128 SIL4級安全認證。
PROSTACK的架構如圖6所示,包括IP[2]、TCP、UDP[3]、ICMP[6]、TFTP[7]、SNMP及SNTP等通用網絡協議,以及FSFB2、SACEM、RSSP1、RSSP2等多種安全通信協議。PROSTACK可用于安全計算機平臺中安全消息、維護消息、軟件鏡像、時鐘消息等各種數據的傳輸。通過虛擬IP技術建立內部子網接口,實現以太網、串口和CAN(控制器局域器)總線等構件之間消息的互聯互通。

圖6 PROSTACK架構圖
PROSTACK通過對傳輸過程數據統計、故障數據檢測、錯誤數據記錄等技術方法,提高了傳輸過程的安全性與可控性;提供POSIX接口,提高代碼開發及移植效率;安全通信協議采用序列號、時間戳、源和目的地標志符、消息鑒定安全碼、CRC(循環冗余校驗碼)編碼等防御措施以抵御傳輸系統中的相關威脅和風險。
自檢測技術(BIT)[1]是為了盡早地暴露單通道的故障而采取的一種技術。安全平臺的自檢測分為上電自檢和在線自檢。上電自檢的檢測內容主要包括檢測系統是否為熱重啟、檢測硬件是否存在故障、檢測可執行文件在拷貝過程中是否被修改等,一旦檢測不通過,系統立即導向安全側;在線自檢按照一定時間周期循環執行,檢測內容主要包括檢測CPU和內存是否發生故障、可執行文件是否被修改、通信通道(串口、CAN及GPIO)是否發生故障等,一旦檢測不通過,系統立即導向安全側。
CPU檢測分為寄存器測試和指令測試,其中寄存器采用匯編程序,指令測試采用C語言程序。CPU寄存器測試方法為將一串RAM(隨機存取存儲器)中測試字寫入寄存器,再從寄存器中將數據讀出存入RAM,然后比較讀寫數據的一致性;指令測試采用輸入一組高診斷覆蓋率的檢測數據,進行算術運算、邏輯運算、移位操作等指令運算,比較實際運算結果與預期結果的一致性。
內存檢測對SDRAM(同步動態隨機存儲器)、SRAM(靜態隨機存儲器)、FLASH等進行完整性測試,每次測試均要訪問多個字節的數據,與安全相關的常量數據通常采用計算得到的CRC進行比較。測試結果需要進行雙通道比較,如果失敗或不一致,系統將導向安全側。
安全平臺中間件可擴展接口如圖7所示。其中,安全中間件需要提供統一的接口供平臺調用,同時平臺封裝這些接口提供給應用使用。安全中間件的接口主要包括以下幾種:

圖7 安全平臺中間件可擴展接口
1) 獲取操作系統服務的接口(I_OS):獲取ReWorks-Cert操作系統提供的信號量管理、內存管理、消息隊列管理、任務管理、時間管理、事件標志管理、中斷管理和鉤子函數管理等服務。
2) 人機界面接口(I_HMI):訪問板卡上的LED(發光二極管)燈、數碼管等顯示功能。
3) 以太網通信接口(I_Net):與外部的設備進行通信,傳遞安全數據、維護數據及時間數據等。
4) 串行總線接口(I_SPI):訪問串行FLASH,獲取配置數據,并寫入事件日志等。
5) 并行總線接口(I_Parallel):讀取電子戳與軟件熔絲,同時讀寫配置數據。
6) CAN總線接口(I_CAN):通過CAN總線接口與其他模塊交互信息。
7) 應用接口(I_API):開放接口與應用軟件交互信息。
根據EN 50128[8]、IEC 61508[9]等標準中關于安全苛求系統開發的相關要求,系統的功能、性能、RAMS(可靠性、可用性、可維修性、安全性)等需求應分配到軟件或硬件中實現,是一個自上而下的過程。對應地,測試過程分成軟硬件級、系統級的確認和驗證,同樣亦是一個自下而上的過程,如圖8所示。

圖8 系統級測試過程
針對安全平臺的軟件測試包括軟件需求和軟件架構,要求通過軟件確認測試和集成測試來確保軟件需求及軟件模塊的接口被正確實現。對于軟件編碼階段,要求進行靜態分析,主要來驗證編碼對于編碼規則的符合性。對于每一個軟件函數,根據EN 50128的要求,必須做到語句覆蓋、分支覆蓋和MC/DC(修訂條件/判定覆蓋)覆蓋達到100%。
硬件測試和軟件測試類似,區別是對于硬件板卡,其單元測試無明確的語句或者分支覆蓋率要求,所要做的是功能覆蓋的100%,同時要根據硬件設計的經驗進行信號完整性、電源完整性、安規測試等性能和電氣安全等測試。
為了驗證ReWorks-Cert操作系統可以滿足安全平臺對實時操作系統的性能要求,需要對安全計算機平臺的行為進行全系統的確認,確保每一條需求都被設計正確實現。
為了測試ReWorks-Cert操作系統的性能參數,將安全計算機平臺分別運行于ReWorks-Cert操作系統和某國外主流實時操作系統 (簡稱RTOS)之上,兩者硬件環境相同。通過統計一些基準性能測試參數(響應時間)進行比較,測試條件為:①編譯器的編譯優化選項為2級;②使能處理器指令緩存并關閉數據緩存;③所有操作系統使用的全局變量最后存放在處理器內部靜態內存SRAM。
系統穩定運行2周,隨機采樣100次數據并取平均值,統計結果如圖9所示。

圖9 基準性能參數平均值比較
對試驗結果進行分析,得到:
1) 對于單次協同調度,ReWorks-Cert操作系統較RTOS的執行時間快13.6%;
2) 對于單次搶占式調度,ReWorks-Cert操作系統比RTOS的執行時間快16.6%;
3) 對于單次中斷處理(無搶占發生),ReWorks-Cert操作系統比RTOS的執行時間快4.8%;
4) 對于單次搶占式中斷處理,ReWorks-Cert操作系統比RTOS的執行時間快30.1%;
5) 對于單次消息隊列處理(考慮任務阻塞和帶超時參數),ReWorks-Cert操作系統比RTOS的執行時間快9.4%;
6) 對于單次簡單任務同步(信號量),ReWorks-Cert操作系統比RTOS的執行時間慢7.3%;
7) 對于單次(事件)標志處理(考慮任務阻塞和帶超時參數),ReWorks-Cert操作系統比RTOS的執行時間快20%。
對于安全協議棧的測試,需要滿足EN 50128標準中對SIL4軟件功能、性能測試的方法的要求,采用邊界值分析、等價類劃分、錯誤猜測等測試技術。測試人員通過設計模擬器發送消息來完成測試,測試架構如圖10所示。測試結果表明:安全計算機平臺功能實現正確,并且滿足EN 50128、IEC 61508等標準中關于安全苛求系統開發的相關要求。

圖10 PROSTACK測試架構圖
本文以基于自主操作系統的安全計算機平臺的開發為目標,突破軌道交通安全計算機平臺在安全認證過程中面臨的進口基礎軟件的知識產權限制,補齊軌道交通產業鏈在基礎軟件層面的短板,增強我國軌道交通“走出去”的核心競爭力。目前,基于自主操作系統的安全計算機平臺已經通過第三方SIL4級安全認證,并將在實際軌道交通線路試點示范應用,并進一步形成適用于軌道交通行業的通用安全基礎軟件的安全接口、定義和規范。