張小松,張長春,李博健
(中車青島四方車輛研究所有限公司,山東青島,266031)
目前軌道車輛核心控制系統主要包括:牽引輔助控制系統,網絡控制系統、制動控制系統等。這些系統是車輛控制的核心,隨著信息技術的發展,對這些系統的功能安全性、信息安全性、運算性能、實時性等都提出了更高的要求。功能安全需要滿足歐洲電工標準化委員會(GENELEC)制定的相關標準[1],信息安全必須基于國產自主可控的軟硬件產品,而運算性能與實時性需要軟硬件自身性能的支撐。本文基于飛騰等國產芯片和國產翼輝操作系統,遵循EN50126《鐵路應用:可靠性、可用性、可維護性與安全性(RAMS)規范和說明》[2]定義的要求,設計了一款列車專用安全計算機,滿足了軌道車輛核心控制系統控制器軟硬件自主可控及功能安全的需求,實現了列車牽引、網絡、制動等核心系統的控制功能。
車載安全計算機采用國產芯片與國產操作系統設計,按照EN50129《鐵路應用:鐵路控制系統領域的安全相關電子系統》[3]標準定義的SIL2安全等級要求進行架構設計。其系統框圖如圖1所示,主要包括主CPU與監控CPU(FPGA)及系統外設三部分。電源、CPU、FPGA、存儲、通信等核心芯片均采用國產芯片,芯片國產化率達到90%以上,軟件采用國產翼輝實時操作系統保證系統的實時性與穩定性。

圖1 車載安全計算機系統框圖
車載安全計算機主CPU采用天津飛騰公司自主知識產權的FT-2000/4芯片,該芯片集成4個飛騰自主的新一代高性能處理器內核FTC663,采用亂序四發射超標量流水線,兼容64位ARMV8指令集并支持ARM64和ARM32兩種執行模式。FT-2000/4從硬件層面增強了芯片的安全性,支持飛騰自主定義的處理器安全架構標準PSPA,滿足更復雜應用場景下對性能和安全可信的需求。FT-2000/4所有安全相關模塊均為飛騰公司自主設計,可在CPU層面有效支撐可信計算3.0標準。
該CPU具有豐富的外設接口,具有4組PCIe接口:兩路PCIeX16,兩路PCIeX1。其中PCIeX16可以拆分成兩路PCIeX8,因此可以最多掛載6個PCIe設備。本設計中CPU共掛有4個PCIe設備,分別是通過PCIeX4掛載NVME的硬盤;通過PCIeX1掛載GPU;通過PCIeX1掛載PCIe轉PCI橋片;通過PCIeX1掛載FPGA,并在背板連接器預留PCIe X4用于外設的擴展。FT-2000/4集成兩路RGMII接口的MAC控制器,支持兩路千兆以太網通信。
車載安全計算機采用國產翼輝實時操作系統,該操作系統是翼輝信息公司設計的開源操作系統。該系統內核自主化率達到 100% (依據工信部評估報告),擁有完全自主可控的技術能力,滿足國產化需求;支持 ARM、MIPS、PowerPC、x86、SPARC、DSP、RISC-V、C-SKY 等架構處理器,支持主流國產通用處理器,如飛騰全系列、龍芯全系列。該系統具備硬實時內核,調度算法先進高效,性能強勁;SylixOS 支持對稱多處理器(SMP)平臺,并且具有實時進程及動態加載機制,滿足安全功能。本設計在飛騰CPU上移植了SylixOS,并基于相應外設開發了驅動程序,滿足了鐵路系統車載CPU的軟件要求。
安全完整性等級,又稱SIL (Safety Integrity Level),是對系統所要求的安全完整性水平的一種定量指標,是將安全完整性根據安全功能失效的頻率和產生的危險嚴重程度劃分成的等級。系統的安全完整性等級越高,則其安全功能失效的可能性就越小,安全完整性一般分為4個等級[4]。目前,城市軌道交通安全可靠性技術主要的參考標準是歐洲電工標準化委員會(CENELEC)制定的鐵路安全相關標準[1]。
EN50129[3]標準附錄E.4定義了實現功能安全需要的系統結構。如果實現SIL2功能安全等級可以選擇“1OO1D”架構,也即帶自檢和檢測的單電子結構。該結構能夠通過通過診斷電路進行功能的診斷,并在發生問題時采取安全措施進行導向安全的操作,這種“1OO1D”結構由一個單一的電子結構和與之獨立的監視診斷電路組成,診斷電路對主處理電路的輸入采集、運算、輸出進行診斷,并能夠通過與主電路串聯的輸出結構切斷主電路的輸出,保證整個功能電路的安全。

圖2 1OO1D結構
如圖1所示,整個系統包括主CPU與監控FPGA,主CPU是安全計算機的核心,是邏輯運算的執行主體,監控FPGA實現對CPU各功能的監視、診斷及安全措施的實施。FPGA與CPU間具有LBC總線、SPI總線、PCIe總線和GPIO。其中SPI用于CPU與FPGA間的生命信號傳輸。PCIe用于CPU邏輯數據與自身狀態寄存器的狀態的數據傳輸,以便FPGA對CPU內部狀態進行實時診斷。LBC總線用于FPGA對CPU相關配置功能參數傳輸。FPGA通過GPIO實現對CPU上電、斷電控制,在CPU發生異常時切斷CPU供電,保證安全。與此同時,各個PCIe設備的時鐘源來源于FPGA,當發生異常時FPGA切斷PCIe總線通信,保證各個接口的通信安全。
車載安全計算機應用于軌道車輛控制系統中,對于穩定性與通用性具有較高要求,因此本CPU采用安全加固結構,所有芯片采用焊接方式。該系統具有豐富的外設接口,保證了系統的擴展性和通用性,尺寸為標準的3U結構的CPCI板卡。
飛騰CPU與眾多CPU一致,具有多路電源軌,且每一路電源軌之間具有嚴格的時序要求。不同于傳統的工控機需要一片專用的電源芯片或CPLD控制電源時序,本板卡電源系統采用多片矽力杰的DC/DC芯片,監控FPGA控制每一電源芯片的使能引腳,并根據每一電源芯片的PowerGood信號進行各個電源軌的時間延時,從而完成CPU的上電時序。這樣既節省了CPLD又能通過FPGA實現對CPU的電源診斷功能,當每一電源出現異常時,FPGA通過PowerGood信號診斷,并通過IO切斷所有電源的輸出,保證CPU導向安全側,通過其上電流程圖如圖3所示。

圖3 安全計算機上電流程圖
飛騰CPU支持兩個DDR的訪問通道,每個通道包含64個數據位和8個ECC校驗位,本設計采用9片紫光國芯的512MB的DDR3芯片,其中8片用作數據存儲,1片用作ECC校驗。這樣整個CPU可用內存達到4GB,并且具有ECC校驗。ECC(Error Checking and Correcting)是在數據位上額外的位存儲一個用數據加密的代碼。當數據被寫入內存,相應的ECC代碼與此同時也被保存下來。當重新讀回剛才存儲的數據時,保存下來的ECC代碼就會和讀數據時產生的ECC代碼做比較。如果代碼不一致,他們則會被解碼,以確定數據中的哪一位是不正確的。然后這一錯誤位會被拋棄,內存控制器則會釋放出正確的數據。
這樣的采用ECC的DDR可以充分保障數據操作的準確性和安全性,能夠達到SIL2安全等級中對數據存儲的安全需求。
傳統的工控機一般采用SATA接口的機械硬盤或電子盤,其中機械硬盤不適合軌道交通多振動沖擊的應用場景,而SATA接口的電子盤接口尺寸不滿足軌道交通控制器結構緊湊的要求,因此采用國產M.2接口的固態盤,通過CPU的PCIE接口直接與其通信,這樣既保證了集成度又保證了數據存儲的讀寫速度。
該安全計算機具有豐富的外部接口設計,能夠滿足軌道車輛控制系統的多種應用場景。具有兩路千兆以太網,通過前面板M12連接器引出,兩路以太網采用CPU內置MAC,并采用國產裕太車通千兆PHY芯片。該系統具有VGA接口,飛騰CPU通過PCIe掛載國產GPU,并將GPU的VGA接口引出至前面板DB15連接器。安全計算機具有一路RS232和一路RS485,兩路均通過前面板的DB9引出。背板具有標準的PCI總線,通過PCI總線CPU可以擴展外部設備,該PCI總線通過PCIe轉PCI橋片實現。背板還具有兩路CAN總線,CAN總線利用FT2000/4自帶的控制器,并采用國產芯力特CAN收發器實現。

表1 安全計算機外設接口表
整個CPU軟件采用翼輝實時操作系統,該系統在啟動及運行中通過調用系統級的寄存器進行狀態的實時自檢,并且將狀態位通過PCIe傳輸給FPGA進行診斷,如果一旦發生診斷錯誤FPGA會進行系統級的安全導向。
按照EN50128[5]附表A.3之要求,安全通信協議需要增加檢錯誤碼,以此來防范數據傳輸錯誤帶來的風險。各個有安全需求的外設,以太網、CAN總線、RS485等,采用安全通信協議,在應用層增加數據序列號,時間戳,CRC校驗,保證數據傳輸的安全,達到SIL2通信安全要求。下表為數據傳輸風險與對應防范措施的對照表2。所有的安全通信協議發生表2的錯誤后,CPU通過PCIe把對應的狀態寄存器置位,FPGA檢測相應的錯誤寄存器,在發生數據通信異常時,FPGA通過切斷對應芯片接口芯片電源或切斷時鐘的方式保證安全通信。

表2 數據傳輸風險與對應防范措施
本文設計的基于國產芯片與國產實時操作系統的安全計算機實現了軌道車輛核心控制系統的自主可控,并填補了國內基于國產芯片與系統的安全計算機的空白,該CPU已經應用于軌道車輛牽引、網絡、制動等核心控制器,實踐證明該控制器具有優良的性能,較好的擴展能力,在實時性要求高、可靠性要求高的場合具有優異的表現。基于SIL2的安全構架,具有良好的安全性能,能夠大幅提高系統的安全性,保證核心系統的安全可用。