張小松,張長(zhǎng)春,李博健
(中車(chē)青島四方車(chē)輛研究所有限公司,山東青島,266031)
目前軌道車(chē)輛核心控制系統(tǒng)主要包括:牽引輔助控制系統(tǒng),網(wǎng)絡(luò)控制系統(tǒng)、制動(dòng)控制系統(tǒng)等。這些系統(tǒng)是車(chē)輛控制的核心,隨著信息技術(shù)的發(fā)展,對(duì)這些系統(tǒng)的功能安全性、信息安全性、運(yùn)算性能、實(shí)時(shí)性等都提出了更高的要求。功能安全需要滿足歐洲電工標(biāo)準(zhǔn)化委員會(huì)(GENELEC)制定的相關(guān)標(biāo)準(zhǔn)[1],信息安全必須基于國(guó)產(chǎn)自主可控的軟硬件產(chǎn)品,而運(yùn)算性能與實(shí)時(shí)性需要軟硬件自身性能的支撐。本文基于飛騰等國(guó)產(chǎn)芯片和國(guó)產(chǎn)翼輝操作系統(tǒng),遵循EN50126《鐵路應(yīng)用:可靠性、可用性、可維護(hù)性與安全性(RAMS)規(guī)范和說(shuō)明》[2]定義的要求,設(shè)計(jì)了一款列車(chē)專(zhuān)用安全計(jì)算機(jī),滿足了軌道車(chē)輛核心控制系統(tǒng)控制器軟硬件自主可控及功能安全的需求,實(shí)現(xiàn)了列車(chē)牽引、網(wǎng)絡(luò)、制動(dòng)等核心系統(tǒng)的控制功能。
車(chē)載安全計(jì)算機(jī)采用國(guó)產(chǎn)芯片與國(guó)產(chǎn)操作系統(tǒng)設(shè)計(jì),按照EN50129《鐵路應(yīng)用:鐵路控制系統(tǒng)領(lǐng)域的安全相關(guān)電子系統(tǒng)》[3]標(biāo)準(zhǔn)定義的SIL2安全等級(jí)要求進(jìn)行架構(gòu)設(shè)計(jì)。其系統(tǒng)框圖如圖1所示,主要包括主CPU與監(jiān)控CPU(FPGA)及系統(tǒng)外設(shè)三部分。電源、CPU、FPGA、存儲(chǔ)、通信等核心芯片均采用國(guó)產(chǎn)芯片,芯片國(guó)產(chǎn)化率達(dá)到90%以上,軟件采用國(guó)產(chǎn)翼輝實(shí)時(shí)操作系統(tǒng)保證系統(tǒng)的實(shí)時(shí)性與穩(wěn)定性。
圖1 車(chē)載安全計(jì)算機(jī)系統(tǒng)框圖
車(chē)載安全計(jì)算機(jī)主CPU采用天津飛騰公司自主知識(shí)產(chǎn)權(quán)的FT-2000/4芯片,該芯片集成4個(gè)飛騰自主的新一代高性能處理器內(nèi)核FTC663,采用亂序四發(fā)射超標(biāo)量流水線,兼容64位ARMV8指令集并支持ARM64和ARM32兩種執(zhí)行模式。FT-2000/4從硬件層面增強(qiáng)了芯片的安全性,支持飛騰自主定義的處理器安全架構(gòu)標(biāo)準(zhǔn)PSPA,滿足更復(fù)雜應(yīng)用場(chǎng)景下對(duì)性能和安全可信的需求。FT-2000/4所有安全相關(guān)模塊均為飛騰公司自主設(shè)計(jì),可在CPU層面有效支撐可信計(jì)算3.0標(biāo)準(zhǔn)。
該CPU具有豐富的外設(shè)接口,具有4組PCIe接口:兩路PCIeX16,兩路PCIeX1。其中PCIeX16可以拆分成兩路PCIeX8,因此可以最多掛載6個(gè)PCIe設(shè)備。本設(shè)計(jì)中CPU共掛有4個(gè)PCIe設(shè)備,分別是通過(guò)PCIeX4掛載NVME的硬盤(pán);通過(guò)PCIeX1掛載GPU;通過(guò)PCIeX1掛載PCIe轉(zhuǎn)PCI橋片;通過(guò)PCIeX1掛載FPGA,并在背板連接器預(yù)留PCIe X4用于外設(shè)的擴(kuò)展。FT-2000/4集成兩路RGMII接口的MAC控制器,支持兩路千兆以太網(wǎng)通信。
車(chē)載安全計(jì)算機(jī)采用國(guó)產(chǎn)翼輝實(shí)時(shí)操作系統(tǒng),該操作系統(tǒng)是翼輝信息公司設(shè)計(jì)的開(kāi)源操作系統(tǒng)。該系統(tǒng)內(nèi)核自主化率達(dá)到 100% (依據(jù)工信部評(píng)估報(bào)告),擁有完全自主可控的技術(shù)能力,滿足國(guó)產(chǎn)化需求;支持 ARM、MIPS、PowerPC、x86、SPARC、DSP、RISC-V、C-SKY 等架構(gòu)處理器,支持主流國(guó)產(chǎn)通用處理器,如飛騰全系列、龍芯全系列。該系統(tǒng)具備硬實(shí)時(shí)內(nèi)核,調(diào)度算法先進(jìn)高效,性能強(qiáng)勁;SylixOS 支持對(duì)稱多處理器(SMP)平臺(tái),并且具有實(shí)時(shí)進(jìn)程及動(dòng)態(tài)加載機(jī)制,滿足安全功能。本設(shè)計(jì)在飛騰CPU上移植了SylixOS,并基于相應(yīng)外設(shè)開(kāi)發(fā)了驅(qū)動(dòng)程序,滿足了鐵路系統(tǒng)車(chē)載CPU的軟件要求。
安全完整性等級(jí),又稱SIL (Safety Integrity Level),是對(duì)系統(tǒng)所要求的安全完整性水平的一種定量指標(biāo),是將安全完整性根據(jù)安全功能失效的頻率和產(chǎn)生的危險(xiǎn)嚴(yán)重程度劃分成的等級(jí)。系統(tǒng)的安全完整性等級(jí)越高,則其安全功能失效的可能性就越小,安全完整性一般分為4個(gè)等級(jí)[4]。目前,城市軌道交通安全可靠性技術(shù)主要的參考標(biāo)準(zhǔn)是歐洲電工標(biāo)準(zhǔn)化委員會(huì)(CENELEC)制定的鐵路安全相關(guān)標(biāo)準(zhǔn)[1]。
EN50129[3]標(biāo)準(zhǔn)附錄E.4定義了實(shí)現(xiàn)功能安全需要的系統(tǒng)結(jié)構(gòu)。如果實(shí)現(xiàn)SIL2功能安全等級(jí)可以選擇“1OO1D”架構(gòu),也即帶自檢和檢測(cè)的單電子結(jié)構(gòu)。該結(jié)構(gòu)能夠通過(guò)通過(guò)診斷電路進(jìn)行功能的診斷,并在發(fā)生問(wèn)題時(shí)采取安全措施進(jìn)行導(dǎo)向安全的操作,這種“1OO1D”結(jié)構(gòu)由一個(gè)單一的電子結(jié)構(gòu)和與之獨(dú)立的監(jiān)視診斷電路組成,診斷電路對(duì)主處理電路的輸入采集、運(yùn)算、輸出進(jìn)行診斷,并能夠通過(guò)與主電路串聯(lián)的輸出結(jié)構(gòu)切斷主電路的輸出,保證整個(gè)功能電路的安全。
圖2 1OO1D結(jié)構(gòu)
如圖1所示,整個(gè)系統(tǒng)包括主CPU與監(jiān)控FPGA,主CPU是安全計(jì)算機(jī)的核心,是邏輯運(yùn)算的執(zhí)行主體,監(jiān)控FPGA實(shí)現(xiàn)對(duì)CPU各功能的監(jiān)視、診斷及安全措施的實(shí)施。FPGA與CPU間具有LBC總線、SPI總線、PCIe總線和GPIO。其中SPI用于CPU與FPGA間的生命信號(hào)傳輸。PCIe用于CPU邏輯數(shù)據(jù)與自身狀態(tài)寄存器的狀態(tài)的數(shù)據(jù)傳輸,以便FPGA對(duì)CPU內(nèi)部狀態(tài)進(jìn)行實(shí)時(shí)診斷。LBC總線用于FPGA對(duì)CPU相關(guān)配置功能參數(shù)傳輸。FPGA通過(guò)GPIO實(shí)現(xiàn)對(duì)CPU上電、斷電控制,在CPU發(fā)生異常時(shí)切斷CPU供電,保證安全。與此同時(shí),各個(gè)PCIe設(shè)備的時(shí)鐘源來(lái)源于FPGA,當(dāng)發(fā)生異常時(shí)FPGA切斷PCIe總線通信,保證各個(gè)接口的通信安全。
車(chē)載安全計(jì)算機(jī)應(yīng)用于軌道車(chē)輛控制系統(tǒng)中,對(duì)于穩(wěn)定性與通用性具有較高要求,因此本CPU采用安全加固結(jié)構(gòu),所有芯片采用焊接方式。該系統(tǒng)具有豐富的外設(shè)接口,保證了系統(tǒng)的擴(kuò)展性和通用性,尺寸為標(biāo)準(zhǔn)的3U結(jié)構(gòu)的CPCI板卡。
飛騰CPU與眾多CPU一致,具有多路電源軌,且每一路電源軌之間具有嚴(yán)格的時(shí)序要求。不同于傳統(tǒng)的工控機(jī)需要一片專(zhuān)用的電源芯片或CPLD控制電源時(shí)序,本板卡電源系統(tǒng)采用多片矽力杰的DC/DC芯片,監(jiān)控FPGA控制每一電源芯片的使能引腳,并根據(jù)每一電源芯片的PowerGood信號(hào)進(jìn)行各個(gè)電源軌的時(shí)間延時(shí),從而完成CPU的上電時(shí)序。這樣既節(jié)省了CPLD又能通過(guò)FPGA實(shí)現(xiàn)對(duì)CPU的電源診斷功能,當(dāng)每一電源出現(xiàn)異常時(shí),F(xiàn)PGA通過(guò)PowerGood信號(hào)診斷,并通過(guò)IO切斷所有電源的輸出,保證CPU導(dǎo)向安全側(cè),通過(guò)其上電流程圖如圖3所示。
圖3 安全計(jì)算機(jī)上電流程圖
飛騰CPU支持兩個(gè)DDR的訪問(wèn)通道,每個(gè)通道包含64個(gè)數(shù)據(jù)位和8個(gè)ECC校驗(yàn)位,本設(shè)計(jì)采用9片紫光國(guó)芯的512MB的DDR3芯片,其中8片用作數(shù)據(jù)存儲(chǔ),1片用作ECC校驗(yàn)。這樣整個(gè)CPU可用內(nèi)存達(dá)到4GB,并且具有ECC校驗(yàn)。ECC(Error Checking and Correcting)是在數(shù)據(jù)位上額外的位存儲(chǔ)一個(gè)用數(shù)據(jù)加密的代碼。當(dāng)數(shù)據(jù)被寫(xiě)入內(nèi)存,相應(yīng)的ECC代碼與此同時(shí)也被保存下來(lái)。當(dāng)重新讀回剛才存儲(chǔ)的數(shù)據(jù)時(shí),保存下來(lái)的ECC代碼就會(huì)和讀數(shù)據(jù)時(shí)產(chǎn)生的ECC代碼做比較。如果代碼不一致,他們則會(huì)被解碼,以確定數(shù)據(jù)中的哪一位是不正確的。然后這一錯(cuò)誤位會(huì)被拋棄,內(nèi)存控制器則會(huì)釋放出正確的數(shù)據(jù)。
這樣的采用ECC的DDR可以充分保障數(shù)據(jù)操作的準(zhǔn)確性和安全性,能夠達(dá)到SIL2安全等級(jí)中對(duì)數(shù)據(jù)存儲(chǔ)的安全需求。
傳統(tǒng)的工控機(jī)一般采用SATA接口的機(jī)械硬盤(pán)或電子盤(pán),其中機(jī)械硬盤(pán)不適合軌道交通多振動(dòng)沖擊的應(yīng)用場(chǎng)景,而SATA接口的電子盤(pán)接口尺寸不滿足軌道交通控制器結(jié)構(gòu)緊湊的要求,因此采用國(guó)產(chǎn)M.2接口的固態(tài)盤(pán),通過(guò)CPU的PCIE接口直接與其通信,這樣既保證了集成度又保證了數(shù)據(jù)存儲(chǔ)的讀寫(xiě)速度。
該安全計(jì)算機(jī)具有豐富的外部接口設(shè)計(jì),能夠滿足軌道車(chē)輛控制系統(tǒng)的多種應(yīng)用場(chǎng)景。具有兩路千兆以太網(wǎng),通過(guò)前面板M12連接器引出,兩路以太網(wǎng)采用CPU內(nèi)置MAC,并采用國(guó)產(chǎn)裕太車(chē)通千兆PHY芯片。該系統(tǒng)具有VGA接口,飛騰CPU通過(guò)PCIe掛載國(guó)產(chǎn)GPU,并將GPU的VGA接口引出至前面板DB15連接器。安全計(jì)算機(jī)具有一路RS232和一路RS485,兩路均通過(guò)前面板的DB9引出。背板具有標(biāo)準(zhǔn)的PCI總線,通過(guò)PCI總線CPU可以擴(kuò)展外部設(shè)備,該P(yáng)CI總線通過(guò)PCIe轉(zhuǎn)PCI橋片實(shí)現(xiàn)。背板還具有兩路CAN總線,CAN總線利用FT2000/4自帶的控制器,并采用國(guó)產(chǎn)芯力特CAN收發(fā)器實(shí)現(xiàn)。
表1 安全計(jì)算機(jī)外設(shè)接口表
整個(gè)CPU軟件采用翼輝實(shí)時(shí)操作系統(tǒng),該系統(tǒng)在啟動(dòng)及運(yùn)行中通過(guò)調(diào)用系統(tǒng)級(jí)的寄存器進(jìn)行狀態(tài)的實(shí)時(shí)自檢,并且將狀態(tài)位通過(guò)PCIe傳輸給FPGA進(jìn)行診斷,如果一旦發(fā)生診斷錯(cuò)誤FPGA會(huì)進(jìn)行系統(tǒng)級(jí)的安全導(dǎo)向。
按照EN50128[5]附表A.3之要求,安全通信協(xié)議需要增加檢錯(cuò)誤碼,以此來(lái)防范數(shù)據(jù)傳輸錯(cuò)誤帶來(lái)的風(fēng)險(xiǎn)。各個(gè)有安全需求的外設(shè),以太網(wǎng)、CAN總線、RS485等,采用安全通信協(xié)議,在應(yīng)用層增加數(shù)據(jù)序列號(hào),時(shí)間戳,CRC校驗(yàn),保證數(shù)據(jù)傳輸?shù)陌踩?,達(dá)到SIL2通信安全要求。下表為數(shù)據(jù)傳輸風(fēng)險(xiǎn)與對(duì)應(yīng)防范措施的對(duì)照表2。所有的安全通信協(xié)議發(fā)生表2的錯(cuò)誤后,CPU通過(guò)PCIe把對(duì)應(yīng)的狀態(tài)寄存器置位,F(xiàn)PGA檢測(cè)相應(yīng)的錯(cuò)誤寄存器,在發(fā)生數(shù)據(jù)通信異常時(shí),F(xiàn)PGA通過(guò)切斷對(duì)應(yīng)芯片接口芯片電源或切斷時(shí)鐘的方式保證安全通信。
表2 數(shù)據(jù)傳輸風(fēng)險(xiǎn)與對(duì)應(yīng)防范措施
本文設(shè)計(jì)的基于國(guó)產(chǎn)芯片與國(guó)產(chǎn)實(shí)時(shí)操作系統(tǒng)的安全計(jì)算機(jī)實(shí)現(xiàn)了軌道車(chē)輛核心控制系統(tǒng)的自主可控,并填補(bǔ)了國(guó)內(nèi)基于國(guó)產(chǎn)芯片與系統(tǒng)的安全計(jì)算機(jī)的空白,該CPU已經(jīng)應(yīng)用于軌道車(chē)輛牽引、網(wǎng)絡(luò)、制動(dòng)等核心控制器,實(shí)踐證明該控制器具有優(yōu)良的性能,較好的擴(kuò)展能力,在實(shí)時(shí)性要求高、可靠性要求高的場(chǎng)合具有優(yōu)異的表現(xiàn)?;赟IL2的安全構(gòu)架,具有良好的安全性能,能夠大幅提高系統(tǒng)的安全性,保證核心系統(tǒng)的安全可用。