《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 分布式嵌入系統中的交互一致性
分布式嵌入系統中的交互一致性
維庫
摘要: 分布式嵌入系統中的交互一致性,許多應用與人身安全或設備安全有密切聯系,隨著安全性要求的提高,希望設備或系統在其構成的部件與控制裝置發生故障時仍能保證安全,即故障-安全(failsafe)的特性。系統是由子系統組成的,子系統有故障時有控制
Abstract:
Key words :

        許多應用與人身安全或設備安全有密切聯系,隨著安全性要求的提高,希望設備或系統在其構成的部件與控制裝置發生故障時仍能保證安全,即故障-安全(failsafe)的特性。系統是由子系統組成的,子系統有故障時有控制地停止工作(failsilent,故障-靜默模式),對系統而言仍是故障,因為它不再提供原定的服務了,這有可能引起全系統功能的失效。所以,安全是要從最高層的全局來分析的。例如對一輛汽車,剎車系統整體不能用故障-靜默來達到安全,而應該是故障后仍能工作(failoperatiONal,故障-仍工作模式),或至少是性能下降一點仍能工作(faildegraded,故障-降格工作模式)。

  單一部件的架構(包括硬件與軟件)有故障而失效時就無法繼續提供服務了,它不能滿足故障-仍工作模式或故障-降格工作模式的要求。這就必須采用有備份的冗余架構,每一個備份都能完成出故障的原來部件的大部分或全部服務工作,維持系統正常運行。備份工作的交替就要求它們對工作狀態(系統的輸入、應該的輸出和誰不該輸出)有相同的看法。這種相同的看法要通過信息交換并通過協議才能建立,并稱為交互一致性(interactive consiSTency)。

  有一部分控制對象存在功能上互為冗余的可能性,例如汽車的4個輪子的剎車,當一個輪子的子剎車系統(設備或控制裝置)有故障時,修正其他輪子的剎車力便可以實現總體剎車系統的故障-仍工作模式或故障-降格工作模式。此時對單個輪子而言,它只要能實現故障-靜默即可。顯然,單個輪子的可信賴性要求被降低,會造成成本的大大降低。在這種情況下,輪子的控制器之間就存在交互一致性問題。

  來自汽車電子大佬Infineon和Delphi的研究報告[1]比較了基于這種互為冗余的分布式冗余剎車系統與集中式僅控制器冗余的硬件成本,指出成本可大為下降,并稱集中式有控制器冗余的剎車系統將會廢止,這對我國汽車電子業者有警示意義。不過,該文并未提到用硬件集中方案也可實現對象互為冗余的剎車系統(這二種方案成本差別將不會太大)。此時由于通信有較大不同,交互一致性問題會不一樣,加上其他因素,它們的優劣有待研究。但至少分布式互為冗余剎車系統是一個備選方案。參考文獻[1]非常概述地提及了控制方案,并未談及技術細節以及采用的協議。本文將根據交互一致性的理論,對實施這類應用中可能遇到的問題進行分析。

  1  SM算法

  對交互一致性的研究已經有30年了,它被稱為拜占庭將軍問題算法(Byzentine Generals Problem)。原始文獻有2個版本[23],1980年的文章引用很多,但是公認很難讀懂[4]。原來的討論是針對點對點通信進行的,本文根據對參考文獻[3]的理解,針對總線方式通信加以展開,這會引入作者的看法。參考文獻[3]提出:一個冗余系統的“所有無錯節點應該采用同樣的輸入(這樣才能產生同樣的輸出);如果輸入系統沒錯,就應該采用輸入的值(這樣才能產生正確的輸出)”。參考文獻[3]提供了二種解決算法:一是口傳消息算法OM(Oral Message Algorithm),二是簽名消息算法SM(Signed Message Algorithm)。對容許m個錯而言,OM算法需要3m+1個節點以及m+1輪消息傳送,SM需要m+2個節點和m+1輪消息傳送。這是2種原理與性能有很大差別的算法。OM算法依靠消息轉述與表決來確定從節點的輸入,當無法進行表決時要采取預定義的缺省輸入。當主節點有拜占庭錯且錯值占多數時,無錯的從節點間看法雖是一致的,但是是不正確的。SM算法依靠逐級檢驗與重復轉發,可以發現各節點(包括主節點)的錯,而且只要有一次正確收到就可以了。由于性能好且需要的從節點數較少,SM值得進一步探究。下面以總線通信時的情況來介紹SM的做法。

  ① 對需要交換數據并保證一致的n=m+2個節點而言,可將問題作分解,每個節點可輪流作為主節點對其他節點傳送消息,實施SM算法。

  ② 每個通信幀含有兩部分內容:數據d和與d有關的簽名a。根據參考文獻[3],簽名要不被有錯節點作偽,應該各節點各不相同且每次都不同。筆者認為根據工業應用可以不這樣要求,詳見后文。

  ③ 通信各輪的幀內容如下:

  第1輪,主節點發自己的數據與簽名(d:a0);

  第2輪,各從節點轉發由第1輪收到的幀再加自己的簽名((d:a0):aj),其中 (j=1,…,n-1);

  以后各輪,各從節點轉發由上一輪收到的幀再加自己的簽名((…((d:a0):aj)…):ar),其中 (j,…,r∈{1,…,n-1}; j≠…≠r),也就是說已經經過本從節點轉發的內容不再轉發。

  由于是通過總線廣播而不是點到點通信,通信量只要計算不同的幀的個數就可以:N=1+(n-1)+(n-1)2+…。總的通信輪數為m+1。

  ④ 每個從節點保存一個供選擇的集choice,初始化時為空:choice{Φ}。choice的更新可在m+1輪通信結束之后進行。更新時先檢驗簽名的有效性,只有全為有效的才可把該幀的d添加到choice中,如果choice中已有,就不重復添加。點對點通信按參考文獻[3]的做法,出現主節點錯時choice會有多個元素,總線通信時主節點的簽名計算只有一次,按本文做法(見下文)choice只會有一個元素(真值或空)。

  ⑤ 參考文獻[3]證明了在下列假設得到保證的條件下所有無故障從節點會得到相同的choice:

  A1發送的消息總能正確送達;

  A2每個節點知道誰在發送;

  A3消息的缺失可以檢測出來;

  A4簽名不能被作偽,作偽時可檢測出來;

  任何從節點能檢測出簽名是否有錯。

  SM算法的有效性與此有關,通信時發生錯幀漏檢的情況相當于發生一次錯,要在容錯的次數設計上加以考慮。

  參考文獻[3]建議了一個簽名的方法例子,即用密鑰ki對數據d求出簽名a: a=(ki·d)mod p,其中p是2的冪,ki是小于p的一個奇數,接收節點用另一個密鑰ki-1驗證:d=(ki-1·a)mod p。ki和ki-1有如下關系:(ki·ki-1)mod p=1。這樣,有錯節點能作偽的概率為1/p。這種方案作偽者要不知道加密的辦法才行。參考文獻[3]認為要求更嚴的場合要采用密碼學的方法。

  從工業應用來看,有錯節點的作偽的可能性來源乃是電磁干擾,對人為的黑客攻擊應另外采用對抗措施,所以可以采用較為簡單常用的CRC校驗和作為簽名。注意,這個CRC校驗和是應用數據的校驗和,不要混同于通信幀的校驗和。在冗余系統里關心的是應用數據的一致性,而應用數據在MCU與通信控制器的傳遞過程中可能出錯,通信幀的CRC校驗不能覆蓋這一錯。例如,應用通過FlexRay的二個通道傳送同一數據時,由于寫入輸出緩沖器的過程是分時的,如果其中一次受到干擾,應用數據與應用CRC(簽名)不再匹配,那么接收方將能發現應用數據的傳送錯而加以丟棄。

  在總線廣播通信中,由于各節點受干擾請況的不同,它們可能接收到不同的幀,一旦又發生了錯幀漏檢,那么就會發生一個節點給其他節點送不同值的情況,這與點到點通信的情況一樣,是一種拜占庭錯。同時,轉發過程又涉及MCU與通信控制器的傳遞過程,其中也會發生錯,所以轉發過程也用數據加簽名的方式。例如節點p在第3輪收到幀(((d:a0):aj):ai)時,檢驗ai的簽名是否正確,如果錯,那么在節點j到i的轉發通信中有錯。如無錯,繼續對((d:a0):aj)作aj簽名的檢驗,如果錯,那么在節點0到j的轉發通信中有錯。如無錯,再對(d:a0)作a0簽名的檢驗,如果錯,那么在節點0的MCU與節點0的通信控制器通信中發生了錯,或者它在計算簽名時發生了錯。

  未通過簽名檢驗的數據將不提交到choice,如果主節點無錯,從節點有m+1個,那么在第一輪中至少有一個從節點正確收到,在以后各輪中其他有錯節點的轉發將不會影響這個節點的choice。現在可以發現SM算法的一個有趣的特性:如果某些從節點只是發生了瞬時故障,由于無錯節點的轉發,它仍然有機會得到相同的choice。

  由于采用總線廣播,主節點可以收到被轉發的自己的幀,因此可以進行自檢。若全部轉發結束后自檢不通過,就可以采取進一步的措施,例如本節點重算簽名并寫通信控制器,或者立即進入故障-靜默模式。

  SM算法假設幀的丟失可以檢測出來,這要靠另加的超時報警單元。一旦時間窗口關閉,各節點就根據已收到的各幀進行choice的更新工作。

  一次SM算法結束后就可認為將開始新的一次SM算法,也就可以初始化choice。如果將每一個節點開始發本節點數據的次序固定下來,并將以前節點開始發轉發的時刻來預置本地定時器,那么在預定的時間窗口內上一節點因故障而未轉發的錯誤可以被發現。上一節點轉發結束的信號或時限到可用來觸發本節點開始轉發。

  2  互為冗余

  經過執行SM算法,所有無錯節點和有瞬時故障的節點都可得到其他節點發送的一致的輸入值。有錯節點發出的輸入值被所有節點(包括有錯節點本身)識別,不被用來進一步作計算,此時有錯節點進入故障-靜默模式,其余正確節點直接開始重新分配剎車力矩的算法。輸入值交換無錯時每一個節點用相近的控制算法計算每個輪子的控制輸出(剎車力矩)。然后再用SM算法交換各自計算結果,每個節點將有一致的各節點的輸出值。

  在每個節點計算時,會因干擾(如EMI或熱沖擊等)而出現錯誤輸出值。或因其他附加條件(例如剎車力矩傳感器的失效,MCU自檢錯)等因素,人為使該節點計算得的輸出值為非正常值。由于SM算法,這個錯誤的輸出值一致地傳送到每個節點。

  這樣各輪子的剎車力矩就有4個來自各節點的冗余計算結果,這是一個二維的矩陣。在矩陣中找出有錯的剎車力矩是哪一個,以及有可能發生永久故障的節點是誰。由于計算結果是模擬量,冗余系統又為了避免共同錯(common mode faults)強調各備份間的多樣性。同樣算法也可能會使結果有微小差別,所以與其他計算結果偏離大于預定限值時視為有錯。

  有嚴重故障的節點的輸出值可能全是錯的,有瞬時故障的節點可能只有一個計算結果是錯的。由于所有正確的節點均采用同樣的判別原則,一致的輸入數據,它們作出同樣的判別結論。

  如果有一個節點的一個剎車力矩計算是錯的,那么可認為這個節點遇到了瞬時干擾。此時仍可按多數或平均方法確定各輪子的剎車力矩,各節點按該輪子對應的剎車力矩加以執行。

  如果有一個節點的剎車力矩計算都是錯的,那么確定這個節點發生了一個嚴重的也許是永久性的故障,此時所有正確的節點將按補償算法重新計算剎車力矩輸出,以使車子減少偏航,減少顛簸。

  嚴重的錯誤是發生通信鏈路斷開,正確節點按SM算法用超時可以發現有錯節點。斷開鏈路的節點按SM算法發現所有其他節點都錯了,這時它應該判為自己錯了,對本輪子的剎車力矩應取一個缺省值,這個缺省值也是在其他正確節點補償算法中采用的對該輪子的缺省值。

  由上可見,由于出故障后節點只須保證故障-靜默模式,剎車力矩的再分配保證了整車的故障-安全特性。控制器硬件將大為簡化,雖然初期軟件成本增加,其后可以分攤,總體成本是下降的。

  3  CAN在這類應用中的可能性

  3.1  帶寬

  對4個輪子節點和1個指令節點(由踏板或其他系統轉發剎車命令,轉發由輪子來的輪速信號)構成的互為冗余系統,要容許1個錯時,采用SM算法需要2輪通信,對5個節點需要交換輸入數據1次,共25種幀,4個節點交換輸出數據1次,共16種幀。如果要求每5 ms進行一次協調,傳送41幀,對CAN而言將非常吃緊,這就是經常提到的CAN的帶寬局限。這里假設了冗余后的系統只容許5 ms內有1個錯。如果從互為冗余剎車系統的性價比考慮,為了此帶寬問題,設立專用的CAN總線也是值得的。

  SM算法實際上對數據的傳送有很大的重復,在本例中對一個從節點而言它收到了5次。如果從節點只是瞬時有故障,它一定會收到正確值。按照SM算法,為了對付m個錯,需要m+1個從節點,因此雖然互為冗余系統有5個節點,并不需要每個從節點都進行轉發。例如取3個從節點轉發輸入,那么每5 ms就傳送36幀,可以緩解帶寬瓶頸。如取2個從節點轉發,帶寬變為每5 ms傳送27幀。

  3.2  確定性

  有一種觀點認為只有時間觸發的通信協議才能滿足高可信賴性要求。但這是片面的。在本例中,如果把所有互為冗余系統需要傳送的消息都設為較高優先級,那么在總線上它們將像一個長幀不受阻擋延遲,只要帶寬容許,就能送達。至于這些消息內部的到達先后,在SM算法中并無影響。更廣義地講,只要把CAN的觸發事件與時間一一對應,它也可實現時間觸發的功能。利用CAN的竟爭發送,有錯未發節點的帶寬可被其他節點盡早利用,SM算法所需的時限計時器只要一個就夠了。

  3.3  錯幀漏檢

  由于CAN中位填充規則對CRC的影響,根據筆者的研究,它的錯幀漏檢率較大,遠大于Bosch CAN2.0規范的數據。但是由于SM算法中簽名的存在,這一問題已免除或緩解。當簽名也用本文建議的CRC方法,那么簽名錯而漏檢的情況可以用CAN錯幀漏檢率同樣的方法分析與改進。

  3.4  容錯

  SM算法假設發送的消息總能正確送達,通信中可檢出錯要排除在外。這就需要某種糾錯或冗余。CAN的出錯自動重發是很好的糾錯措施,但它只能應對瞬時干擾,對物理通道上的故障如斷線、短路等,需要用容錯CAN協議ISO118983的收發器。此種收發器的帶寬更小,標準為125 kbps,較好的MAX3054可達250 kbps。如果互為冗余剎車系統的控制周期定為20 ms(即容許20 ms內有一個錯)(參考文獻[5]中引述的線控轉向的容許失控時間為50 ms),那么CAN在滿足容許物理故障時還能滿足SM算法的帶寬要求的。從概率上講,由于重發而占用的帶寬增量并不大。

  4  小結

  分布式互為冗余系統的特點是用重新分配的原理實現故障-安全。并不是所有系統都能采用這種方法。但是在分布式系統中保證數據的一致性是很重要的,例如同一數據可能應用于不同目的的控制系統中,這些系統在分開設計時就默認了數據一定是一致的。如果發生了不一致,這些系統的交互影響就難以預測。因此SM算法有其現實意義。

  SM算法可以發現節點MCU與通信控制器的傳遞過程中的錯,以及通信中的拜占庭錯,這是一個非常重要的特性。由于本文發現了SM算法的簽名轉述同時具備的二個功能─重復發送和接收認可,使主節點也能與其他節點達到一致,這大大提高了容錯實現的簡易性。一般地說,拜占庭錯難以發現,當雙互備份架構輸入有拜占庭錯時,無法確定誰錯而無法實現故障-靜默,甚至可能出現互相沖突的輸出。采用SM算法,可實現雙互備份架構輸入的一致性,再借用其他系統的節點的部分計算能力,可用使雙互備份架構實現等效的三重備份輸出的一致性。這在經濟上有巨大意義。

  本文根據總線通信分析了SM算法的實施方法以及CAN在用于SM算法時的一些問題。CAN是成熟的技術,成本較低,盡量擴展其應用是理所當然的事。就互為冗余剎車系統而言,CAN仍然是可以應用的。參考文獻[3]提到了一種在2002年還是研制中的時間觸發協議,現在看來,可能是FlexRay協議。毫無疑問,FlexRay的帶寬優勢很大,但是對其的研究還有待深入,例如它的時鐘同步依賴于傳送電纜上的模擬電平跳變,毛刺可能改變跳變位置,從而破壞整個協議的基礎時鐘。

  SM算法需要的消息簽名轉發,均需要MCU的參與,對FlexRay或CAN而言,要高層協議或軟件中間件實現,耗費時間,增加中間環節,增加了時間抖動與受干擾可能性,總之效率不高,并不理想,最好是用專門的硬件實現,這是值得探討的事。

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 怡红院成人永久免费看 | 美腿丝袜亚洲综合 | 毛片网站视频 | 久久这里只有精品免费看青草 | 国产日韩精品欧美一区喷水 | 久久伊人影视 | 东京加勒比中文字幕波多野结衣 | 在线成人影片 | 亚洲国产欧美日韩一区二区 | 国外成人免费高清激情视频 | 午夜美女影院 | 国产成人综合在线视频 | 一级免费黄色大片 | 国产精品一区二区三 | 日本一区二区三区免费高清在线 | 日日操夜夜草 | 欧美日韩精品一区二区免费看 | 午夜亚洲国产成人不卡在线 | 日日插人人插天天插 | 国产成人精品久久免费动漫 | 国产在线欧美精品中文一区 | 99久久免费国产精精品 | 亚洲人体一区 | 午夜影院操一 | 九九精品九九 | a级精品九九九大片免费看 a级精品国产片在线观看 | 欧美videosex娇小hd | 一区二区三区波多野结衣 | 艳妇乳肉豪妇荡乳 | 中文字幕一区二区三区在线观看 | 美女黄网站免费 | 欧美成人欧美激情欧美风情 | 日韩理论在线 | 天天做天天爱夜夜想毛片 | 奇米影视亚洲色图 | 日本老年人精品久久中文字幕 | 伊人精品综合 | 中文字幕 亚洲一区 | 99视频精品全部免费观看 | 丁香婷婷六月 | 天天看天天摸天天操 |