韓玲玉 許明旺 季志均
計(jì)算機(jī)聯(lián)鎖系統(tǒng)是以計(jì)算機(jī)為主要技術(shù)手段,結(jié)合信息、控制、容錯、故障-安全等技術(shù)來實(shí)現(xiàn)車站聯(lián)鎖的信號系統(tǒng),對安全性、可靠性有非常高的要求。國內(nèi)計(jì)算機(jī)聯(lián)鎖系統(tǒng)主要包括雙機(jī)熱備系統(tǒng)、二乘二取二系統(tǒng)、三取二系統(tǒng)等。其中,雙機(jī)熱備系統(tǒng)一般采用單CPU(中央處理器),單CPU中一些指令(如IF條件)容易出現(xiàn)不可檢測的隨機(jī)性失效情況;而二乘二取二系統(tǒng)、三取二系統(tǒng)一般采用多CPU,多CPU的架構(gòu)也需考慮可能出現(xiàn)的共模失效。
目前在地鐵互聯(lián)互通系統(tǒng)中,聯(lián)鎖-車載,聯(lián)鎖-聯(lián)鎖等之間的通信主要采用RSSP-I協(xié)議。RSSP-I協(xié)議(鐵路信號安全通信協(xié)議-I型協(xié)議)是一種基于封閉式系統(tǒng)的安全通信協(xié)議,能對通信過程中數(shù)據(jù)幀的重復(fù)、刪除、插入、錯序、損壞、延遲等進(jìn)行防護(hù);能夠保證消息在安全層進(jìn)行正常時序交互。但應(yīng)用層消息的時序由應(yīng)用層通信消息時間戳和超時判斷機(jī)制保證,因此通信超時判斷機(jī)制處理的有效性及準(zhǔn)確性至關(guān)重要。
安全編碼處理器(VCP)利用編碼技術(shù)來保障處理器的可靠性和安全性,廣泛應(yīng)用于多條軌道交通線路,如法國巴黎地鐵A號線,上海地鐵3號線和10號線等[1]。為保證對通信時效性的安全判斷,在采用安全編碼處理器的基礎(chǔ)上,研究鐵路安全通信協(xié)議RSSP-I下的通信超時判斷機(jī)制,設(shè)計(jì)并實(shí)現(xiàn)了通信超時判斷方案。
VCP是一種利用編碼技術(shù)來檢測處理器錯誤(主要為運(yùn)算錯誤、操作數(shù)錯誤、操作符錯誤)的理論方法,能夠檢測出計(jì)算機(jī)處理器可能出現(xiàn)的永久性故障和瞬時性故障。本文所述VCP采用改進(jìn)的算法碼,在算法碼的基礎(chǔ)上附加數(shù)據(jù)簽名和時間標(biāo)簽編碼而成。VCP編碼分為VCPH和VCPL高低位,兩者滿足
式中:BX為變量簽名,為離線分配,其值為1~(A-1)之間隨機(jī)選取的任意整數(shù),為了保證碼字的隨機(jī)性,不同的數(shù)據(jù)對應(yīng)不同的變量簽名,用于檢測操作符錯誤(如加法運(yùn)算中誤用了乘法運(yùn)算),以及尋址出錯導(dǎo)致的操作數(shù)錯誤(即取錯了操作數(shù));DT為時間戳,用于檢測循環(huán)中變量內(nèi)存未更新的錯誤,對處于同一層循環(huán)內(nèi)的所有變量,其碼字中DT的值是相同的,每循環(huán)一次,DT的值會增加一個ΔDT,如果循環(huán)次數(shù)發(fā)生錯誤,該錯誤可以通過DT的值反映出來;MOD為取余操作;A代表大素?cái)?shù),如A=1926481717,稱為編碼強(qiáng)度,保證不可檢測的錯誤率為1/A,A越大,不可檢測錯誤率越?。?]。
本文采用的VCP冗余代碼中,高低位之間的運(yùn)算屬于2個并行通道,低位并不是按照式(1)直接計(jì)算而來,而是由算術(shù)運(yùn)算右側(cè)變量的低位通過具體函數(shù)邏輯計(jì)算得到的。
以式(2)源碼為例簡述基本加法算術(shù)運(yùn)算的VCP冗余編碼原理。高位XH通過式(3)計(jì)算得到,其中AH和BH繼承源碼中變量A和B的值。低位XL的具體值,通過式(4)的函數(shù)邏輯計(jì)算得到。但XH和XL依然滿足式(1)。同理,AL和BL也采用上述函數(shù)邏輯計(jì)算得到。
VCP冗余代碼中,單條件分支表達(dá)式的VCP輸出也反映到安全冗余編碼設(shè)計(jì)中。若源碼中變量X作為單條件表達(dá)式中的判斷變量,冗余代碼中高位XH和低位XL通過式(5)計(jì)算得到分支標(biāo)志變量Y,在此過程中XH和XL依然滿足式(1)。當(dāng)軟件執(zhí)行IF分支同一路徑時,所得到的Y變量數(shù)值作為固定值被VCP冗余編碼應(yīng)用,若執(zhí)行到IF分支不同路徑,所得到的Y變量值則不同,Y變量標(biāo)志了IF分支路徑的唯一性。
安全通信超時判斷方案設(shè)計(jì),是在VCP編碼技術(shù)基礎(chǔ)上,通過運(yùn)用上述算術(shù)運(yùn)算式(4)的函數(shù)邏輯計(jì)算,以及單條件分支表達(dá)式冗余計(jì)算實(shí)現(xiàn)的,輸出變量高低位實(shí)現(xiàn)了VCP編碼安全冗余。其中,變量運(yùn)算操作出錯、內(nèi)存更新與否或時間戳的變化等,可通過VCP編碼冗余機(jī)制反映出來,用以檢測處理器是否發(fā)生了故障。
目前在地鐵互聯(lián)互通系統(tǒng)中采用RSSP-I協(xié)議作為各子系統(tǒng)之間的安全通信傳輸協(xié)議。由于互聯(lián)互通系統(tǒng)涉及各個廠商參與方,且對各廠商設(shè)備軟硬件的架構(gòu)和實(shí)現(xiàn)方式并不做限定,因此廠商可以通過邏輯運(yùn)算板卡與通信協(xié)議板卡分工的方式實(shí)現(xiàn)地鐵互聯(lián)互通。
若發(fā)送方廠商采用板卡分工方式,消息接收方無法知道發(fā)送方邏輯運(yùn)算板卡與通信協(xié)議實(shí)現(xiàn)板卡之間的傳輸延遲,因此在應(yīng)用層消息頭中增加消息時間戳字段,并由發(fā)送方的邏輯運(yùn)算板卡實(shí)現(xiàn),接收方可通過此消息時間戳完整地判斷出消息在網(wǎng)絡(luò)中的傳輸延遲,計(jì)算出通信過程中的消息剩余有效期,從而實(shí)現(xiàn)RSSP-I通信超時判斷,保證消息的有效傳輸。
對于消息接收方,消息剩余有效期的計(jì)算需要接收的消息包頭中相關(guān)字段,包括發(fā)送方消息時間戳、通信周期,以及發(fā)送方收到上一條消息時接收方和發(fā)送方的消息時間戳。
通過接收方的當(dāng)前時間戳減去發(fā)送方收到上一條消息時接收方的消息時間戳,可計(jì)算出總的延遲,再減去消息在對方設(shè)備內(nèi)的時間,從而得到雙向的傳輸延遲,將其作為最大傳輸延遲使用,最大傳輸延遲時間不能超過通信超時時間閾值。
基于上述超時機(jī)制實(shí)現(xiàn)源碼,在源碼程序中主要是運(yùn)用消息包頭時間戳字段,通過算術(shù)運(yùn)算得到消息剩余有效期,以及對消息剩余有效期與零之間的比較做出IF條件判斷。當(dāng)消息剩余有效期小于或者等于零,通信處于超時狀態(tài);而消息剩余有效期大于零,通信處于正?;蛘邔捤顟B(tài)。由于代碼中IF條件在硬件中有可能存在隨機(jī)性失效,因此采用VCP編碼技術(shù)完成通信超時機(jī)制方案的設(shè)計(jì),這對于安全產(chǎn)品來說尤為重要。
基于VCP冗余編碼技術(shù)實(shí)現(xiàn)RSSP-I通信超時校驗(yàn)安全冗余方案,主要包括IF條件的安全冗余判斷,以及VCP校核字的輸出。其中,IF條件表達(dá)式的判斷冗余變量是由接收消息時間戳等字段經(jīng)過VCP冗余計(jì)算輸出的,通過VCP編碼式(4)函數(shù)邏輯計(jì)算獲得消息剩余有效期的安全冗余碼,產(chǎn)生的消息剩余有效期作為最大傳輸延遲,與通信超時時間閾值的差值滿足減法算術(shù)運(yùn)算,同樣采用VCP編碼式(4)計(jì)算獲取差值的安全冗余碼,作為IF條件表達(dá)式的判斷變量。
采用單變量IF條件VCP編碼技術(shù),超時判斷IF分支冗余處理分別產(chǎn)生通信正常、通信寬恕,以及通信超時情況下的消息時間戳冗余碼,經(jīng)處理后可用于應(yīng)用消息交互。同時VCP冗余編碼方案基于式(5)產(chǎn)生分支路徑標(biāo)志變量VCP校核字(VCPCKW,VCP Check Word),作為唯一固定值,標(biāo)志超時判斷處理的準(zhǔn)確性,用于聯(lián)鎖上層NISAL(數(shù)字集成安全保障邏輯)冗余編碼系統(tǒng)中NISAL碼的離線運(yùn)算處理,進(jìn)一步保證IF分支判斷執(zhí)行的安全有效性[2]。圖1為基于VCP編碼技術(shù)的RSSP-I通信數(shù)據(jù)超時判斷邏輯。圖2為聯(lián)鎖下位機(jī)采用VCP冗余編碼技術(shù),針對應(yīng)用消息報(bào)文頭中的消息時間戳進(jìn)行超時判斷的安全設(shè)計(jì)數(shù)據(jù)流,展示了基于VCP編碼的RSSP-I通信超時判斷方案的具體實(shí)現(xiàn)過程。
基于VCP技術(shù)的RSSP-I通信超時判斷冗余處理包含四部分輸入:①超時判斷的非冗余代碼,也就是源碼;②消息報(bào)文頭中相關(guān)時間戳冗余變量,包括源設(shè)備號、遠(yuǎn)端消息時間戳、遠(yuǎn)端設(shè)備周期、遠(yuǎn)端設(shè)備收到上條消息時的對方時間戳和本方時間戳;③固定值變量有聯(lián)鎖軟件周期和通信超時時間,其經(jīng)過簽名初始化產(chǎn)生的冗余碼;④非固定值變量有本方當(dāng)前時間戳,其經(jīng)過簽名初始化及周期更新產(chǎn)生的冗余碼。
通過VCP工具軟件實(shí)現(xiàn)VCP冗余編碼,產(chǎn)生超時判斷VCP冗余代碼[3],以及標(biāo)志超時判斷分支的固定變量g_IF_S_0(Single Conditional Global Variable),其標(biāo)志當(dāng)前分支為通信正常路徑。VCP冗余編碼也產(chǎn)生標(biāo)志通信超時的全局變量H_g_tmChkRt(Timeout Check Return Value)、標(biāo)志通信寬恕的全局變量H_g_tmUpdRt(Time Up?date Return Value),以及更新后的消息時間戳冗余碼。當(dāng)H_g_tmChkRt值為1即處于通信正常情況下,變量g_IF_S_0與接收消息中源設(shè)備號綁定,生成VCP校核字,用于聯(lián)鎖上層NISAL冗余編碼系統(tǒng)中NISAL碼的離線補(bǔ)償處理。
該設(shè)計(jì)能夠產(chǎn)生標(biāo)志通信正常的變量g_IF_S_0,此變量與源設(shè)備號綁定產(chǎn)生的檢查結(jié)果字即VCP校核字,在整個周期內(nèi)取值唯一且被上層系統(tǒng)作為離線配置應(yīng)用。同時該設(shè)計(jì)也產(chǎn)生通信正常、通信寬恕以及通信超時3種消息交互場景下的消息時間戳冗余碼,用于應(yīng)用消息發(fā)送處理?;赩CP工具生成的完整冗余代碼通過消息通信過程的冗余耦合處理能夠保證一些指令如IF判斷處理的安全性[4]。對于冗余代碼執(zhí)行過程中出現(xiàn)的內(nèi)存固化、內(nèi)存失效、指令失效等可導(dǎo)致運(yùn)算、操作出錯情況,也能通過簽名的變化反映至冗余VCPCKW碼字[5]。
該設(shè)計(jì)也可滿足多元輸入的要求,若周期內(nèi)收到N個源設(shè)備發(fā)送的數(shù)據(jù)時,則可調(diào)用N次VCP安全冗余代碼,返回N個不同的VCPCKW值;能夠保證多個源設(shè)備與目的設(shè)備之間的安全通信,避免指令失效或內(nèi)存失效導(dǎo)致的源設(shè)備和消息的不一致情況。
圖1 基于VCP技術(shù)的RSSP-I通信數(shù)據(jù)超時判斷邏輯
圖2 基于VCP的通信超時判斷安全設(shè)計(jì)數(shù)據(jù)流
該設(shè)計(jì)適用于類似的包含源設(shè)備號、本方消息時間戳和對方消息時間戳等相關(guān)字段的應(yīng)用消息報(bào)文;主要包括IF條件判斷的安全冗余判斷及VCPCKW的輸出;IF條件分支的安全判斷處理,包括通信正常、通信寬恕以及通信超時3種情況;輸出的VCPCKW作為應(yīng)用消息通信正常的標(biāo)志,用于上層NISAL冗余編碼系統(tǒng)合并到NISAL碼字當(dāng)中,保證超時判斷的準(zhǔn)確性及外部通信設(shè)備的唯一性。本研究成果已獲得國際第三方SIL4級安全認(rèn)證證書,并成功應(yīng)用于實(shí)際軌道交通信號聯(lián)鎖系統(tǒng)工程中。