楊福宇
(重慶工業(yè)自動化儀表研究所,重慶 400123)
?
楊福宇
(重慶工業(yè)自動化儀表研究所,重慶 400123)
1553B是飛機(jī)電傳系統(tǒng)的通信協(xié)議,由于硬件上抗干擾僅考慮了系統(tǒng)內(nèi)部自生的干擾,實(shí)際環(huán)境要嚴(yán)重得多;因?yàn)橹话雌媾嘉蛔餍r?yàn),所以錯(cuò)字漏檢的概率比較大;由于回傳狀態(tài)字內(nèi)容不全面,在漏檢錯(cuò)字時(shí)會發(fā)生假冒錯(cuò);由于指令字出錯(cuò)不易糾正,最好情況下靠2次重傳,丟幀可能性大。漏檢錯(cuò)幀和丟幀多會使多重冗余的表決機(jī)制失效,也會使網(wǎng)絡(luò)管理類指令失效,成為潛伏的故障。通過定量分析,確定了一些情況下的失效率,例如假定取CAN, Profesafe同樣的誤碼率ber=0.01時(shí),除去最大值/最小值再取均值時(shí)的4冗余系統(tǒng)因錯(cuò)字漏檢引起的每小時(shí)失效可達(dá)2×10-1次。
1553B;可依賴性;功能安全;電傳故障
1553B是飛機(jī)上占主導(dǎo)地位的通信協(xié)議,像現(xiàn)役的F15、F16、F18、F22、F35、B52、B1、B2等都采用了此類總線,我國也有對應(yīng)的標(biāo)準(zhǔn)與應(yīng)用。由于軍用技術(shù)十分敏感,飛機(jī)毀損后追索原因也十分困難,問題未能深入討論,便會給人粗略的印象:“由于沒有失效的報(bào)道,所以它是可靠的”。這個(gè)標(biāo)準(zhǔn)是電傳系統(tǒng)(x-by-wire,線控系統(tǒng))的基礎(chǔ),電傳系統(tǒng)的故障會導(dǎo)致機(jī)毀人亡,加上應(yīng)用要求在不斷提高,所以對其可信賴性進(jìn)行分析是必要的,本文拋磚引玉,供大家參考。
1553B失效報(bào)道見參考文獻(xiàn)[1]:2008年5月13日,NASA航天飛機(jī)為STS-124次飛行加氫時(shí)發(fā)生了4冗余計(jì)算機(jī)的不一致,為3:1。這個(gè)電傳系統(tǒng)用的是類似1553B的總線(具體名稱未提及),3秒之后分裂為2:1:1,作故障診斷時(shí)余下的2臺計(jì)算機(jī)又分裂,成為1:1:1:1。后來查出計(jì)算機(jī)并沒有出錯(cuò),而是發(fā)送消息的通信板上有一個(gè)二級管有一個(gè)裂隙。文章分析這個(gè)故障使二級管變?yōu)殡娙?,使總線上信號的幅值有一個(gè)充電上升過程,有些節(jié)點(diǎn)看到了第一位,而有些節(jié)點(diǎn)看不到,出現(xiàn)了拜占廷錯(cuò)(Byzantine error)。結(jié)論是:系統(tǒng)不允許有拜占廷錯(cuò)的話,再多的冗余也不夠。在這個(gè)例子中,元兇是壞了的二級管,過程是出現(xiàn)了拜占廷錯(cuò),拜占廷錯(cuò)導(dǎo)致系統(tǒng)失效。那么還會有其他可能性導(dǎo)致1553B拜占廷錯(cuò)嗎?
[2]討論了同步對系統(tǒng)的影響,例如數(shù)字飛行控制系統(tǒng)有三套,以備有二次故障仍工作,但計(jì)算機(jī)間不同步,通用動力這樣做,考慮是由于電磁干擾或雷擊可能導(dǎo)致單點(diǎn)失效。該系統(tǒng)想把控制解耦,實(shí)際上,在F16飛行測試時(shí)解耦不好會導(dǎo)致有3秒鐘的偏離理想情況:側(cè)滑超過20度,正常加速先是-4g后是+7g,攻角先是-10度后是+20度,飛機(jī)轉(zhuǎn)了360度,垂直尾翼超載,液壓系統(tǒng)和空氣傳感器出現(xiàn)虛假失效報(bào)警。F16 第44次飛行測試中不同步的操作時(shí)間變化(skew)和傳感器噪聲會使每一個(gè)通道認(rèn)為其他通道已經(jīng)失效。作F16飛行測試的NASA工程師認(rèn)為幾乎所有的失效都與硬件無關(guān),而與計(jì)算機(jī)不同步運(yùn)行的設(shè)計(jì)有關(guān)。由此看來,由于同步要通過1553B實(shí)現(xiàn),如果設(shè)計(jì)是正確的,只是通信出了問題,后果也是非常嚴(yán)重的。
1553B的簡介略——編者注。
在參考文獻(xiàn)[3]中引有1553B的標(biāo)準(zhǔn),第4.5.2.1.2.4條款規(guī)定了終端抗噪聲能力的驗(yàn)收指標(biāo),這也是對1553B性能的第一印象。
“終端收到的所有字按標(biāo)準(zhǔn)條款4.4驗(yàn)收后最大字錯(cuò)率不超過10-7”,測試條件是疊加1 kHz~4 MHz的高斯噪聲,其幅度有效值為140 mV。測試處的信號電平峰-峰值為2.1 V,字錯(cuò)包括所有使?fàn)顟B(tài)字錯(cuò)誤標(biāo)志置位錯(cuò)誤,以及使終端不響應(yīng)有效指令字錯(cuò)誤。
圖1 福特補(bǔ)充的波形F-4
140 mV的噪聲有效值幅值相對于信號的余量是非常小的。根據(jù)第4.5.2.1.2.1條款,終端輸入電壓的最小幅度為0.86Vp-p(峰-峰值),所以上述測試的2.1 V有很大的余量,可以用高斯分布來求干擾引起輸入小于0.86 V從而引起判斷錯(cuò)誤的概率。140 mV有效值相當(dāng)于140 mV×1.41=200 mVp-p,用Matlab的高斯模型,其中6sigma=200 mVp-p,sigma=33 mV=0.033 V,中值mu=2.1 V,模型為obj= gmdistribution(2.1,0.033,1), 那么從0截止到0.86 V的概率為cdf(obj, 0.86)=4.3×10-12,即誤碼率ber,標(biāo)準(zhǔn)的第10.4條款提到10-12這個(gè)數(shù)值。字錯(cuò)率wer= 20×ber=8.6×10-11,遠(yuǎn)小于實(shí)際測試的要求。
這140 mV的噪聲從何而來?是外部的還是內(nèi)部的?
根據(jù)耦合變壓器的線圈匝數(shù)比、限流的隔離電阻為0.75特征阻抗值,在忽略傳輸線衰減時(shí),可以計(jì)算出終端輸入信號是終端輸出信號的25%。第4.5.2.1.1條款規(guī)定,終端輸出電壓的最小幅度為18Vp-p,就可以收到4.5 Vp-p。第4.5.2.1.2條款規(guī)定終端輸出電壓上可以有小于900 mVp-p的畸變和振鈴,到達(dá)輸入端的噪聲便有225 mVp-p,即第4.5.2.1.2.4條款測的僅是內(nèi)部噪聲。
1553B的接收是允許有一定量的噪聲的,例如第4.5.2.1.2.1條款規(guī)定,輸入為0.86~14 V,小于0~0.2 V時(shí)不響應(yīng),就是說大于0.86 V時(shí)必須正確識別出跳變,小于0.2 V時(shí)必須不能把噪聲識別為跳變。環(huán)境好的時(shí)候還是有一定量的噪聲的,如果此時(shí)外部的噪聲同為140 mV,那么sigma=0.066 V 同樣算得的bergood=6.9×10-7,字錯(cuò)率為wergood=1.38×10-5,這說明1553B對噪聲是敏感的。
工業(yè)現(xiàn)場不同于辦公室,有的時(shí)候電磁環(huán)境惡劣,誤碼就會比較多,但仍然要安全地工作。例如在CAN總線分析時(shí)取的是berbad=0.02[6],profisafe中取的是berbad=0.01[7]。1553B不是在辦公室用的,應(yīng)該參照類似要求,即使取10倍的berbad=0.001,就會有werbad=2×10-2,通常的Manchester 編解碼并不能保證標(biāo)準(zhǔn)聲稱的wer=1×10-7。
汽車的線控雖然開始得比飛機(jī)晚,但是在電磁干擾方面已有深入的研究。1553B電纜的屛蔽只要求75%,自然會有輻射干擾耦合到信號中,例如汽車ISO7637-3標(biāo)準(zhǔn)描述的干擾。在這里只討論經(jīng)由電源系統(tǒng)的傳導(dǎo)干擾ISO7637-2標(biāo)準(zhǔn),其中波形3a、3b代表了開關(guān)負(fù)載時(shí)(例如繼電器)產(chǎn)生的干擾脈沖群。對12 V系統(tǒng)干擾峰值可達(dá)-150 V(對24 V系統(tǒng)干擾峰值可達(dá)-200 V),脈沖寬度為0.1 μs,周期為100 μs。當(dāng)開關(guān)為感性負(fù)載時(shí),儲存在線圈中的能量要釋放,形成反電勢,在電源系統(tǒng)中來回反射。福特汽車公司認(rèn)為應(yīng)該以實(shí)物作測試源[4]:“經(jīng)驗(yàn)表明,用福特建議的測試可發(fā)現(xiàn)通過標(biāo)準(zhǔn)測試而未發(fā)現(xiàn)的一些異常。”他們補(bǔ)充測試的波形有A1、A2、B1、B2、C五種,其中A2的細(xì)節(jié)圖形F-4與C引用如下(見圖1、圖2)。
圖2 福特補(bǔ)充的波形C
波形F-4干擾的幅度可達(dá)400 V(電源為12 V),而周期接近1 μs。
波形C的幅值是衰減的,較大干擾的周期接近2 μs,可知它們都非常接近1553B的位速率。假定抗干擾措施可使干擾幅度降低200倍,干擾仍可達(dá)到與信號接近的大小。航空中用的液壓電磁閥的開關(guān)也有類似行為,其中閥的返回彈簧儲存的勢能也要釋放,與電能疊加,反電勢可能更大。
來自電源的傳導(dǎo)干擾可以穿越防錯(cuò)接二級管(1N4000系列二級管反向恢復(fù)時(shí)間為2~4 μs),經(jīng)過收發(fā)器中打開的門改變輸出,波形疊加在正常曼碼上就可能形成位錯(cuò),或者直接改變收發(fā)器接收部分的比較器輸出。
1553B的RT在bit級,如果沒有采集過0跳變便認(rèn)為有錯(cuò);在word級,有奇校驗(yàn)錯(cuò),指令字有效性檢驗(yàn);在message級,BC可以對RT回送的狀態(tài)位檢驗(yàn)。
RT在檢驗(yàn)失敗時(shí),如果指令與自己相關(guān),就修改自己的狀態(tài)出錯(cuò)標(biāo)志位。BC查到自己在接收RT傳送的狀態(tài)或數(shù)據(jù)有錯(cuò)時(shí),可以重新執(zhí)行傳送。1553B允許使用廣播指令,為了避免多個(gè)RT的競爭,在廣播傳送數(shù)據(jù)時(shí)沒有RT狀態(tài)字的回送,這樣就去掉了這種錯(cuò)誤檢驗(yàn)機(jī)制。所以標(biāo)準(zhǔn)的第10.6條款不推薦廣播指令。
1553B有兩條冗余的電纜連到需要冗余的每個(gè)RT上,但是它們不是同時(shí)傳送同一消息,并不像有些總線那樣2選1,只要有一處成功便可,更不像有些設(shè)計(jì),必須兩個(gè)結(jié)果相同才認(rèn)為正確(避免漏檢的錯(cuò)幀)。1553B應(yīng)用中采用的策略往往是“如果一條電纜上傳送失敗,就在另一條電纜上再試一次,如果再失敗,這條消息就不送了,接著服務(wù)下一條消息?!?/p>
1553B設(shè)置有后備BC,主BC失電或內(nèi)部自測有問題時(shí)由后備接替,交接是由兩個(gè)BC間的直接連接實(shí)現(xiàn)(由應(yīng)用者設(shè)計(jì)而非1553B的標(biāo)準(zhǔn)功能)。
1553B只有奇偶校驗(yàn),檢錯(cuò)能力很弱,只要有兩個(gè)錯(cuò)就檢不出了,形成錯(cuò)字漏檢。
由于避免使用廣播指令,可能會產(chǎn)生多臺計(jì)算機(jī)在個(gè)別傳送中收到不同的漏檢數(shù)據(jù)字。4冗余系統(tǒng)只能剔除一個(gè)錯(cuò),有兩個(gè)錯(cuò)時(shí)2:2分裂,輸出就含有出錯(cuò)的內(nèi)容。以同一消息送4次為例,出2個(gè)數(shù)據(jù)字漏檢錯(cuò)的概率為Psys=4×3/2×Pres.w2×(1- Pres.w)2。其中Pres.w=17×16/2×berbad2×(1-berbad)15為字漏檢錯(cuò)率,如果berbad=0.01,Pres.w=1.36×10-2,Psys=1.1×10-3就非常危險(xiǎn)了。例如控制周期為20 ms時(shí),每小時(shí)要用到該數(shù)據(jù)為3 600×50=1.8×105次,壞狀態(tài)占0.001時(shí),冗余系統(tǒng)每小時(shí)失效數(shù)為2×10-1次。
指令字由5位RT地址、1位收發(fā)指令、5位RT子地址、5位傳送字?jǐn)?shù)和1位奇偶位構(gòu)成。1553B的狀態(tài)字只含有RT地址,子地址錯(cuò)時(shí)回送檢驗(yàn)就查不到。發(fā)生錯(cuò)字漏檢時(shí),例如子地址和檢驗(yàn)位中有兩個(gè)錯(cuò),那么傳送的內(nèi)容就會送錯(cuò)地方或取錯(cuò)地方。例如取了別的傳感器的值、送到了錯(cuò)誤的控制界面,或者采用多次簽名重傳解決拜占廷錯(cuò)的容錯(cuò)算法時(shí)[5],存取錯(cuò)了地址就會使整個(gè)算法出錯(cuò),也會使算法崩潰,這種情況的概率為Pres.w=1.36×10-2。
指令字的子地址取00000或11111時(shí),后接的5位域被解釋為模式控制指令。當(dāng)指令字發(fā)生兩個(gè)錯(cuò)而漏檢時(shí),便可能把對RT送出子地址的數(shù)據(jù)收發(fā)指令變?yōu)閷T的模式管理指令,或者兩個(gè)錯(cuò)都發(fā)生在模式控制指令內(nèi)容中時(shí),造成指令的錯(cuò)誤執(zhí)行。例如要求RT“傳送狀態(tài)字”(00010)被誤解為“關(guān)斷另一個(gè)通道的發(fā)送器”(00100),就會使冗余通道失效。又如要求RT進(jìn)行一次“同步”(00001)被誤解為要求RT“復(fù)位”(01000),這個(gè)RT就會因自檢、初始化等停止相當(dāng)一段時(shí)間的例行工作,出現(xiàn)此類問題的概率是Pres.w=1.36×10-2。
狀態(tài)字前5位為發(fā)送該狀態(tài)字的RT1的地址,后面各位各有定義,其中第10位為工具位(instrumentation),它是可選項(xiàng)。出現(xiàn)兩位錯(cuò)時(shí),RT1發(fā)送的狀態(tài)字可能被RT2(地址與RT1相差1位或2位)理解為指向自己的指令字。RT2回送的狀態(tài)字和RT1后繼的數(shù)據(jù)字便會在總線上沖突,或者與BC下一個(gè)指令字沖突。沖突要在總線空閑時(shí)才會結(jié)束,沖突何時(shí)結(jié)束與BC的調(diào)度表有關(guān),也與競爭結(jié)果有關(guān):沖突中是否會啟動在第二條電纜上的傳送與情景有關(guān);沖突是否引起指令字解釋為總線管理類指令也與當(dāng)時(shí)的情景有關(guān)。沖突中的異常指令、數(shù)據(jù)沒有被丟棄的保證,是否不會使故障擴(kuò)大也無保障,出現(xiàn)此類問題的概率Pres.w=1.36×10-2。
1553B第4.4.3.3條款處理無效指令字時(shí)存在丟幀可能。
當(dāng)總線空閑時(shí)發(fā)生毛刺,引起虛假的指令字sync段,如果時(shí)間小于12 μs接著有正確指令字,RT會認(rèn)為有無效指令字;如果指令字傳送中有錯(cuò),RT也會認(rèn)為有無效指令字。第4.4.3.3條款規(guī)定:RT對無效指令字將不作響應(yīng),即不會發(fā)送狀態(tài)字。
第4.4.3.3條款沒有規(guī)定RT要將自己狀態(tài)字中的出錯(cuò)標(biāo)志(message error flag)置位。而其他情況下,例如第4.4.3.4條款規(guī)定有非法指令字時(shí),RT要將出錯(cuò)標(biāo)志置位并回應(yīng)狀態(tài)字,第4.4.3.6條款規(guī)定,RT收到無效數(shù)據(jù)字時(shí)要置位出錯(cuò)標(biāo)志不發(fā)狀態(tài)字。根據(jù)參考文獻(xiàn)[2]的解釋,因?yàn)橹噶钭种械腻e(cuò)誤使RT無法知道這條指令字是發(fā)給自己的。從其他系統(tǒng)的經(jīng)驗(yàn)得知,往往會由節(jié)點(diǎn)的出錯(cuò)計(jì)數(shù)器機(jī)制(例如CAN總線)來懲罰有錯(cuò)節(jié)點(diǎn),以使后續(xù)的系統(tǒng)降級運(yùn)行有依據(jù)。既然不能判定是發(fā)給自己的,不設(shè)出錯(cuò)標(biāo)志也是合理的。
丟幀也會形成拜占廷錯(cuò),丟幀、冗余系統(tǒng)的輸出出錯(cuò)、控制系統(tǒng)不同通道之間不同步、對象失穩(wěn)成為故障傳播的鏈條。
細(xì)讀參考文獻(xiàn)[1]所舉例子的圖,可知它是非標(biāo)準(zhǔn)的1553B協(xié)議(它的字長為28位),先收到指令字,然后發(fā)送數(shù)據(jù)字時(shí)波形有錯(cuò)。文章沒提到二極管在什么線路中,根據(jù)見到的其他資料,有將二極管加在收發(fā)器輸出和變壓器(中心抽頭接地)接頭之間的接法。當(dāng)二極管斷為電容時(shí),收發(fā)器的一個(gè)輸出便經(jīng)電容接變壓器,輸出電壓的正負(fù)極就有不對稱的充電了,從測試圖可看到這一點(diǎn)。此時(shí)同步過0點(diǎn)的電壓差為0.65 V,即文章所稱的1/2值,不能保證所有節(jié)點(diǎn)都能識別。即使不使用廣播指令,因傳送逐一犯錯(cuò)而丟幀時(shí),4臺計(jì)算機(jī)就會一一表決分裂。
以4冗余系統(tǒng)同一消息送4次為例,當(dāng)消息傳送結(jié)束,BC沒有等到RT的狀態(tài)字時(shí),采用的策略是在另一條電纜上再試一次,如果再失敗,這條消息就不送了,接著服務(wù)下一條消息,這仍然是一種丟幀的結(jié)果,只是概率小一點(diǎn)。兩次傳送仍丟幀的概率為Plost=wer2,系統(tǒng)出2個(gè)指令字錯(cuò)(丟幀)的概率為Psys=6×Plost2×(1-Plost)2。werbad=2×10-1時(shí),Plost=4×10-2,Psys=9.6×10-3,壞狀態(tài)占0.001時(shí),采用再發(fā)一次的冗余系統(tǒng)每小時(shí)失效數(shù)為9.6×10-3×1.8×105×10-3=1.7次。
有些丟幀并不進(jìn)入冗余系統(tǒng),例如管理類的模式指令對系統(tǒng)也極為重要(例如同步指令使飛機(jī)中有關(guān)的時(shí)基同步、節(jié)點(diǎn)復(fù)位等),丟幀會直接影響導(dǎo)航、武器目標(biāo)精度。采用發(fā)兩次再丟幀的方案失效的概率是比較大的,werbad=2×10-1,Plost=(werbad)2=4×10-2,如果每小時(shí)只傳送10次模式管理命令,壞狀態(tài)占0.001時(shí),也會有失效數(shù)為4×10-1次,丟幀也會成為潛伏故障,發(fā)展為更嚴(yán)重的安全失效。
1553B協(xié)議設(shè)計(jì)上的薄弱環(huán)節(jié)多,可依賴性不夠,如果考慮將來采用270 V的電源,其干擾的幅度會更大,1553B則更難適應(yīng)。但是由于系統(tǒng)存量大,在不改協(xié)議的條件下尋求改善的方案是當(dāng)務(wù)之急,這種改進(jìn)是有可能的。
但是隨著功能安全要求的嚴(yán)格、各種漏洞的深究、電磁環(huán)境的惡化,CAN總線也顯得不足,正在探討稱為IntCAN的改進(jìn)方案,以減少錯(cuò)幀漏檢率、改善一致性、提供降額運(yùn)行方案、提高抗黑客攻擊能力和改善診斷維修效率??傊系膮f(xié)議存在不足才會有新的協(xié)議推出。
如需與作者聯(lián)系,可以發(fā)郵件到:yfy812@163.com。
參考文獻(xiàn)
[1] Keven Driscoll,Brendan Hall.NASA VVFS and Related Experience as an AADL Development Driver[C]//SAE AS-2C,2012.
[2] John Rushby.Rafety,Fault Tolerance,Verification,and Certification for Embedded Systems[C]//guest lecture,2009.
[3] AIM Gmbh.MIL-STD-1553B Tutorial,2010.
[4] Ford Motor Company.Component and Subsystem Electromagnetic Compatibility Worldwide Requirements and Test Procedures ES-XW7T-1A278-AC,2003.
[5] 楊福宇.分布式嵌入式系統(tǒng)中的交互一致性[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2011(3):4-7.
[6] J Unruh,H J Mathony,K H Kaiser.Error Detection Analysis of Automotive Communication Protocols[C]//SAE Int Congress,Detroit,USA,1990.
[7] PROFIsafe System Description [EB/OL].[2016-09].http://www.profibus.com/nc/downloads/downloads/profisafe-technology-and-application-system-description/download/9594.
Yang Fuyu
(Chongqing Institute of Industrial Automation and Instrumentation,Chongqing 400123,China)
1553B is a communication protocol used in x-by-wire system.The noise margin considered in hardware is just its internal produced part.The real EMI is far more serious than that.The error check in word is just a parity bit,hence the undetected error rate will be large.The status word just includes part contents of the command word.The masquerade error will happen due to undetected error.The bus command node is hard to correct the error in command word transmission.It can retry twice at most.This will lead to the message lost.Undetected erroneous message and message lost will cause corruption of multiple redundant systems.They also can cause network management fail and form a latent fault.In undetected error case,if ber=0.01(like that in CAN and Profisafe),a quadruple redundant system (drop maximum and minimum inputs,take average of rest two inputs as output) may fail 2×10-1times in an hour.
1553B;dependability;functional safety;failure of x-by-wire
TP302
A
?士然
2016-09-08)