在軌道交通領域,實現(xiàn)信號控制的計算機為故障安全型計算機,為了兼顧安全性和可用性的要求,采用三取二和二乘二取二的安全架構(gòu)居多。這種架構(gòu)采用兩個以上的處理單元構(gòu)成,需要兩個處理單元的計算結(jié)果一致或三個中至少有兩個計算結(jié)果一致,再對外輸出。目前大多數(shù)信號系統(tǒng)的安全平臺都是這兩種架構(gòu)之一,那么,是否有單一計算通道能夠?qū)崿F(xiàn)故障安全呢,答案也是有的,本文來介紹下一種典型的單處理器安全計算機——SACEM。
SACEM,是法文的縮寫,全稱為System d' Aide a` la Conduite a` l' Exploitation et a` la Maintenance(駕駛輔助、操作及維護系統(tǒng))。由巴黎公共交通管理局RATP和法國鐵路局SNCF主導,GEC ALSTHOM TRANSPORT組織包括MATRA TRANSPORT和CSEE TRANSPORT開發(fā)。SACEM最早在上個世紀1982年開始研發(fā),1988年研發(fā)完成并應用于巴黎地鐵RER A線路。
SACEM系統(tǒng)實現(xiàn)列車的安全防護,包括列車之間的安全間距防護,列車的超速防護,進入道岔區(qū)間防護和軌旁信號向車載信號的傳遞。SACEM系統(tǒng)也具備ATO自動駕駛功能,能夠?qū)崿F(xiàn)自動的加速、減速、停站等功能。SACEM系統(tǒng)由軌旁安全計算機和車載安全計算機構(gòu)成,三十年前還沒有WLAN或LTE車地無線系統(tǒng),列車車載設備與軌旁設備通過軌道電路和環(huán)線單向傳輸前車的位置、列車停車點等信息。
每一段區(qū)間設置軌旁計算機,其功能是收集來自列車的信息探測、運行路線和信號的狀態(tài),并收集來自列車的信息。從這些可變數(shù)據(jù)和該區(qū)間的固定數(shù)據(jù)中產(chǎn)生軌道到列車的傳輸信息。
每列車的車載計算機接收到的信息是軌道與列車之間的傳輸,列車的各種狀態(tài)(運行方向、列車長度等),以及由固定信標讀取的基準點和測速編碼器提供的累積距離。
SACEM系統(tǒng)安全性滿足最高安全完整性等級SIL4要求,即由系統(tǒng)引起的災難性失效發(fā)生頻率低于每列車10E-9/h。同時,也要求具備極高的可用性,由系統(tǒng)引起的誤停車發(fā)生頻率低于每列車2*10E-3/h。
對于列車控制的信號系統(tǒng)基本原理與業(yè)內(nèi)常見的信號系統(tǒng)沒有太大差異,SACEM系統(tǒng)的特點在于它實現(xiàn)信號控制的安全計算機硬件和軟件技術,采用了編碼計算和形式化方法這兩種安全技術。
編碼計算技術
編碼計算技術通過分析計算機運算時存在的三種錯誤類型:
operation error(操作數(shù)錯誤):計算機使用預期操作符處理操作數(shù)得到了錯誤的結(jié)果?。這種類型的錯誤,非常類似于傳輸錯誤,但不會給代碼設計帶來新的約束。
operator error(操作符錯誤):計算機使用好的操作數(shù),但有一個非預期的運算符。例如,如果一個加法運算符被替換成乘法運算符,結(jié)果是假的,即使乘法計算的結(jié)果是正確的。對這種類型的錯誤的檢測,不是數(shù)據(jù)傳輸通道存在的錯誤,需要對運算符增加編碼。
operand error(操作錯誤):一種情況是地址錯誤,相當于用一個變量替換了另一個變量。這種類型的錯誤發(fā)生在傳輸系統(tǒng)中,在不同的通道之間發(fā)生了串擾的。類似于傳輸過程中收到了發(fā)送到另一個接收者的數(shù)據(jù)。另一種情況是存儲錯誤,存儲的數(shù)據(jù)變化或者沒有被更新,是過時的數(shù)據(jù)。
因此,為了防護以上三類計算機錯誤,采用了以下三種編碼技術:
a) 算術編碼arithmetical code:用來檢測信息存儲和傳輸?shù)腻e誤。信息存儲和傳輸?shù)腻e誤,以及 操作錯誤(不正確的指令 執(zhí)行)。
b) 簽名技術signature:用于檢測運算符和操作數(shù)的錯誤,以及操作結(jié)果的錯誤,程序順序的錯誤。
c) 動態(tài)化技術dynamisation:用來檢測信息的實時性,通過給每個計算周期分配一個日期,檢測信息刷新的錯誤。
上面是算術編碼的一個實例,選擇A=9,k=4,我們有2k=16和-2k[A]=2。數(shù)據(jù)X=5被編碼為81,數(shù)據(jù)Y=7被編碼為117,X和Y的相加得到198。對Z的解碼(提取高權(quán)重的比特)得到Z=12,編碼的正確性可通過198[A]=0得到驗證。
SACEM車載和軌旁安全計算機架構(gòu)
編碼計算機架構(gòu)
上圖中,SACEM系統(tǒng)的車載計算機和軌旁計算機中的運算單元均采用編碼計算技術,通過以上三種編碼技術來檢測硬件出現(xiàn)的任何隨機故障。編碼計算機在每個運算周期結(jié)束時,會計算出附加的編碼變量值,這個變量是由所有輸出值的組合計算出來的,再根據(jù)算術代碼解碼。
對于該變量的時間值,在處理器外,與算術代碼或時間值有關的錯誤都會被轉(zhuǎn)移到周期更新的簽名中,通過故障安全比較器與參考簽名進行比較。比較一致后認為本運算周期輸出的結(jié)果是可信的。一致性輸出結(jié)果用于控制了一個固有式故障安全的電源,當檢測結(jié)果不一致時,會使電源失電從而輸出最終的緊急制動。
對于軟件編譯工具產(chǎn)生的錯誤,由于編碼計算的原理是每周期獨立地計算簽名,對于編譯錯誤同樣屬于操作數(shù)錯誤,也能夠檢測出來。
編碼技術的優(yōu)勢在于它基于數(shù)學原理設計了編碼算法,因此無需依賴于專用的硬件,同樣能夠?qū)崿F(xiàn)對計算機運算時出現(xiàn)的各類故障類型進行檢測。
形式化技術
除了硬件隨機性故障和軟件操作運算中出現(xiàn)的故障,導致安全計算機出錯的因素還有來自需求和設計實現(xiàn)錯誤產(chǎn)生的系統(tǒng)性故障,為解決不規(guī)范的軟件規(guī)范問題,需求規(guī)范的含糊不清、不清晰、不連貫、不完整,對需求的驗證確認問題,如何確定功能測試的充分性,SACEM系統(tǒng)的軟件設計采用了形式化語言的設計方法——B方法。
B方法并不僅僅是一種編程語言,它是設計方法,編程語言、開發(fā)及驗證工具鏈的組合。它的目標是為了構(gòu)建完全滿足其定義需求的軟件,B方法定義了用于軟件需求的抽象運算符和類似于ADA或C語言的具體編程指令,采用了面向模型的方法,即軟件=數(shù)據(jù)+屬性+操作;能夠?qū)⑿枨竽P娃D(zhuǎn)換成具體模塊,并最終轉(zhuǎn)化為代碼。通過嚴格的數(shù)學結(jié)構(gòu)來檢查軟件需求規(guī)范的正確性、完整性。
形式化方法的驗證過程是通過將非規(guī)范化的軟件轉(zhuǎn)換為形式化需求,逐級分解細化,每一級都采用數(shù)學模型進行一致性驗證,因此它不再需要軟件的單元測試和集成測試,只進行對軟件需求的確認測試。
形式化方法的逐級證明
形式化方法的驗證確認
SACEM系統(tǒng)在國外的不少地鐵線路中有應用,但在國內(nèi)的軌道交通領域,無論是國鐵還是地鐵,都不是主流技術,沒有得到引進、吸收轉(zhuǎn)化和推廣,國內(nèi)的應用和熟悉這類技術的人不是很多。但其作為安全計算機的一個技術流派,至今也有三十多年的歷史了,有著它自身的特點。
它的設計思想能夠體現(xiàn)正向設計,如何解決konw-how的問題,簡單來說,也是第一性原理的體現(xiàn),實現(xiàn)安全設計的技術手段是多樣性的,可以是多重處理器的冗余比較,可以是單處理器的編碼計算,也可以是其它的技術方法,但前提都從解決問題的本質(zhì)出發(fā),不可機械套用而不得其機理。
審核編輯:劉清
評論
查看更多