分布式嵌入系統(tǒng)中的交互一致性
參考文獻(xiàn)[3]建議了一個(gè)簽名的方法例子,即用密鑰ki對(duì)數(shù)據(jù)d求出簽名a: a=(ki·d)mod p,其中p是2的冪,ki是小于p的一個(gè)奇數(shù),接收節(jié)點(diǎn)用另一個(gè)密鑰ki-1驗(yàn)證:d=(ki-1·a)mod p。ki和ki-1有如下關(guān)系:(ki·ki-1)mod p=1。這樣,有錯(cuò)節(jié)點(diǎn)能作偽的概率為1/p。這種方案作偽者要不知道加密的辦法才行。參考文獻(xiàn)[3]認(rèn)為要求更嚴(yán)的場(chǎng)合要采用密碼學(xué)的方法。
從工業(yè)應(yīng)用來看,有錯(cuò)節(jié)點(diǎn)的作偽的可能性來源乃是電磁干擾,對(duì)人為的黑客攻擊應(yīng)另外采用對(duì)抗措施,所以可以采用較為簡(jiǎn)單常用的CRC校驗(yàn)和作為簽名。注意,這個(gè)CRC校驗(yàn)和是應(yīng)用數(shù)據(jù)的校驗(yàn)和,不要混同于通信幀的校驗(yàn)和。在冗余系統(tǒng)里關(guān)心的是應(yīng)用數(shù)據(jù)的一致性,而應(yīng)用數(shù)據(jù)在MCU與通信控制器的傳遞過程中可能出錯(cuò),通信幀的CRC校驗(yàn)不能覆蓋這一錯(cuò)。例如,應(yīng)用通過FlexRay的二個(gè)通道傳送同一數(shù)據(jù)時(shí),由于寫入輸出緩沖器的過程是分時(shí)的,如果其中一次受到干擾,應(yīng)用數(shù)據(jù)與應(yīng)用CRC(簽名)不再匹配,那么接收方將能發(fā)現(xiàn)應(yīng)用數(shù)據(jù)的傳送錯(cuò)而加以丟棄。
在總線廣播通信中,由于各節(jié)點(diǎn)受干擾請(qǐng)況的不同,它們可能接收到不同的幀,一旦又發(fā)生了錯(cuò)幀漏檢,那么就會(huì)發(fā)生一個(gè)節(jié)點(diǎn)給其他節(jié)點(diǎn)送不同值的情況,這與點(diǎn)到點(diǎn)通信的情況一樣,是一種拜占庭錯(cuò)。同時(shí),轉(zhuǎn)發(fā)過程又涉及MCU與通信控制器的傳遞過程,其中也會(huì)發(fā)生錯(cuò),所以轉(zhuǎn)發(fā)過程也用數(shù)據(jù)加簽名的方式。例如節(jié)點(diǎn)p在第3輪收到幀(((d:a0):aj):ai)時(shí),檢驗(yàn)ai的簽名是否正確,如果錯(cuò),那么在節(jié)點(diǎn)j到i的轉(zhuǎn)發(fā)通信中有錯(cuò)。如無錯(cuò),繼續(xù)對(duì)((d:a0):aj)作aj簽名的檢驗(yàn),如果錯(cuò),那么在節(jié)點(diǎn)0到j(luò)的轉(zhuǎn)發(fā)通信中有錯(cuò)。如無錯(cuò),再對(duì)(d:a0)作a0簽名的檢驗(yàn),如果錯(cuò),那么在節(jié)點(diǎn)0的MCU與節(jié)點(diǎn)0的通信控制器通信中發(fā)生了錯(cuò),或者它在計(jì)算簽名時(shí)發(fā)生了錯(cuò)。
未通過簽名檢驗(yàn)的數(shù)據(jù)將不提交到choice,如果主節(jié)點(diǎn)無錯(cuò),從節(jié)點(diǎn)有m+1個(gè),那么在第一輪中至少有一個(gè)從節(jié)點(diǎn)正確收到,在以后各輪中其他有錯(cuò)節(jié)點(diǎn)的轉(zhuǎn)發(fā)將不會(huì)影響這個(gè)節(jié)點(diǎn)的choice?,F(xiàn)在可以發(fā)現(xiàn)SM算法的一個(gè)有趣的特性:如果某些從節(jié)點(diǎn)只是發(fā)生了瞬時(shí)故障,由于無錯(cuò)節(jié)點(diǎn)的轉(zhuǎn)發(fā),它仍然有機(jī)會(huì)得到相同的choice。
由于采用總線廣播,主節(jié)點(diǎn)可以收到被轉(zhuǎn)發(fā)的自己的幀,因此可以進(jìn)行自檢。若全部轉(zhuǎn)發(fā)結(jié)束后自檢不通過,就可以采取進(jìn)一步的措施,例如本節(jié)點(diǎn)重算簽名并寫通信控制器,或者立即進(jìn)入故障-靜默模式。
SM算法假設(shè)幀的丟失可以檢測(cè)出來,這要靠另加的超時(shí)報(bào)警單元。一旦時(shí)間窗口關(guān)閉,各節(jié)點(diǎn)就根據(jù)已收到的各幀進(jìn)行choice的更新工作。
一次SM算法結(jié)束后就可認(rèn)為將開始新的一次SM算法,也就可以初始化choice。如果將每一個(gè)節(jié)點(diǎn)開始發(fā)本節(jié)點(diǎn)數(shù)據(jù)的次序固定下來,并將以前節(jié)點(diǎn)開始發(fā)轉(zhuǎn)發(fā)的時(shí)刻來預(yù)置本地定時(shí)器,那么在預(yù)定的時(shí)間窗口內(nèi)上一節(jié)點(diǎn)因故障而未轉(zhuǎn)發(fā)的錯(cuò)誤可以被發(fā)現(xiàn)。上一節(jié)點(diǎn)轉(zhuǎn)發(fā)結(jié)束的信號(hào)或時(shí)限到可用來觸發(fā)本節(jié)點(diǎn)開始轉(zhuǎn)發(fā)。
2 互為冗余
經(jīng)過執(zhí)行SM算法,所有無錯(cuò)節(jié)點(diǎn)和有瞬時(shí)故障的節(jié)點(diǎn)都可得到其他節(jié)點(diǎn)發(fā)送的一致的輸入值。有錯(cuò)節(jié)點(diǎn)發(fā)出的輸入值被所有節(jié)點(diǎn)(包括有錯(cuò)節(jié)點(diǎn)本身)識(shí)別,不被用來進(jìn)一步作計(jì)算,此時(shí)有錯(cuò)節(jié)點(diǎn)進(jìn)入故障-靜默模式,其余正確節(jié)點(diǎn)直接開始重新分配剎車力矩的算法。輸入值交換無錯(cuò)時(shí)每一個(gè)節(jié)點(diǎn)用相近的控制算法計(jì)算每個(gè)輪子的控制輸出(剎車力矩)。然后再用SM算法交換各自計(jì)算結(jié)果,每個(gè)節(jié)點(diǎn)將有一致的各節(jié)點(diǎn)的輸出值。
在每個(gè)節(jié)點(diǎn)計(jì)算時(shí),會(huì)因干擾(如EMI或熱沖擊等)而出現(xiàn)錯(cuò)誤輸出值。或因其他附加條件(例如剎車力矩傳感器的失效,MCU自檢錯(cuò))等因素,人為使該節(jié)點(diǎn)計(jì)算得的輸出值為非正常值。由于SM算法,這個(gè)錯(cuò)誤的輸出值一致地傳送到每個(gè)節(jié)點(diǎn)。
這樣各輪子的剎車力矩就有4個(gè)來自各節(jié)點(diǎn)的冗余計(jì)算結(jié)果,這是一個(gè)二維的矩陣。在矩陣中找出有錯(cuò)的剎車力矩是哪一個(gè),以及有可能發(fā)生永久故障的節(jié)點(diǎn)是誰。由于計(jì)算結(jié)果是模擬量,冗余系統(tǒng)又為了避免共同錯(cuò)(common mode faults)強(qiáng)調(diào)各備份間的多樣性。同樣算法也可能會(huì)使結(jié)果有微小差別,所以與其他計(jì)算結(jié)果偏離大于預(yù)定限值時(shí)視為有錯(cuò)。
有嚴(yán)重故障的節(jié)點(diǎn)的輸出值可能全是錯(cuò)的,有瞬時(shí)故障的節(jié)點(diǎn)可能只有一個(gè)計(jì)算結(jié)果是錯(cuò)的。由于所有正確的節(jié)點(diǎn)均采用同樣的判別原則,一致的輸入數(shù)據(jù),它們作出同樣的判別結(jié)論。
如果有一個(gè)節(jié)點(diǎn)的一個(gè)剎車力矩計(jì)算是錯(cuò)的,那么可認(rèn)為這個(gè)節(jié)點(diǎn)遇到了瞬時(shí)干擾。此時(shí)仍可按多數(shù)或平均方法確定各輪子的剎車力矩,各節(jié)點(diǎn)按該輪子對(duì)應(yīng)的剎車力矩加以執(zhí)行。
如果有一個(gè)節(jié)點(diǎn)的剎車力矩計(jì)算都是錯(cuò)的,那么確定這個(gè)節(jié)點(diǎn)發(fā)生了一個(gè)嚴(yán)重的也許是永久性的故障,此時(shí)所有正確的節(jié)點(diǎn)將按補(bǔ)償算法重新計(jì)算剎車力矩輸出,以使車子減少偏航,減少顛簸。
嚴(yán)重的錯(cuò)誤是發(fā)生通信鏈路斷開,正確節(jié)點(diǎn)按SM算法用超時(shí)可以發(fā)現(xiàn)有錯(cuò)節(jié)點(diǎn)。斷開鏈路的節(jié)點(diǎn)按SM算法發(fā)現(xiàn)所有其他節(jié)點(diǎn)都錯(cuò)了,這時(shí)它應(yīng)該判為自己錯(cuò)了,對(duì)本輪子的剎車力矩應(yīng)取一個(gè)缺省值,這個(gè)缺省值也是在其他正確節(jié)點(diǎn)補(bǔ)償算法中采用的對(duì)該輪子的缺省值。
由上可見,由于出故障后節(jié)點(diǎn)只須保證故障-靜默模式,剎車力矩的再分配保證了整車的故障-安全特性??刂破饔布⒋鬄楹?jiǎn)化,雖然初期軟件成本增加,其后可以分?jǐn)?,總體成本是下降的。
評(píng)論