楊福宇
(重慶工業(yè)自動化儀表研究所,重慶 400123)
?
楊福宇
(重慶工業(yè)自動化儀表研究所,重慶 400123)
1553B是飛機電傳系統(tǒng)的通信協(xié)議,由于硬件上抗干擾僅考慮了系統(tǒng)內(nèi)部自生的干擾,實際環(huán)境要嚴重得多;因為只按奇偶位作校驗,所以錯字漏檢的概率比較大;由于回傳狀態(tài)字內(nèi)容不全面,在漏檢錯字時會發(fā)生假冒錯;由于指令字出錯不易糾正,最好情況下靠2次重傳,丟幀可能性大。漏檢錯幀和丟幀多會使多重冗余的表決機制失效,也會使網(wǎng)絡(luò)管理類指令失效,成為潛伏的故障。通過定量分析,確定了一些情況下的失效率,例如假定取CAN, Profesafe同樣的誤碼率ber=0.01時,除去最大值/最小值再取均值時的4冗余系統(tǒng)因錯字漏檢引起的每小時失效可達2×10-1次。
1553B;可依賴性;功能安全;電傳故障
1553B是飛機上占主導(dǎo)地位的通信協(xié)議,像現(xiàn)役的F15、F16、F18、F22、F35、B52、B1、B2等都采用了此類總線,我國也有對應(yīng)的標(biāo)準與應(yīng)用。由于軍用技術(shù)十分敏感,飛機毀損后追索原因也十分困難,問題未能深入討論,便會給人粗略的印象:“由于沒有失效的報道,所以它是可靠的”。這個標(biāo)準是電傳系統(tǒng)(x-by-wire,線控系統(tǒng))的基礎(chǔ),電傳系統(tǒng)的故障會導(dǎo)致機毀人亡,加上應(yīng)用要求在不斷提高,所以對其可信賴性進行分析是必要的,本文拋磚引玉,供大家參考。
1553B失效報道見參考文獻[1]:2008年5月13日,NASA航天飛機為STS-124次飛行加氫時發(fā)生了4冗余計算機的不一致,為3:1。這個電傳系統(tǒng)用的是類似1553B的總線(具體名稱未提及),3秒之后分裂為2:1:1,作故障診斷時余下的2臺計算機又分裂,成為1:1:1:1。后來查出計算機并沒有出錯,而是發(fā)送消息的通信板上有一個二級管有一個裂隙。文章分析這個故障使二級管變?yōu)殡娙?,使總線上信號的幅值有一個充電上升過程,有些節(jié)點看到了第一位,而有些節(jié)點看不到,出現(xiàn)了拜占廷錯(Byzantine error)。結(jié)論是:系統(tǒng)不允許有拜占廷錯的話,再多的冗余也不夠。在這個例子中,元兇是壞了的二級管,過程是出現(xiàn)了拜占廷錯,拜占廷錯導(dǎo)致系統(tǒng)失效。那么還會有其他可能性導(dǎo)致1553B拜占廷錯嗎?
[2]討論了同步對系統(tǒng)的影響,例如數(shù)字飛行控制系統(tǒng)有三套,以備有二次故障仍工作,但計算機間不同步,通用動力這樣做,考慮是由于電磁干擾或雷擊可能導(dǎo)致單點失效。該系統(tǒng)想把控制解耦,實際上,在F16飛行測試時解耦不好會導(dǎo)致有3秒鐘的偏離理想情況:側(cè)滑超過20度,正常加速先是-4g后是+7g,攻角先是-10度后是+20度,飛機轉(zhuǎn)了360度,垂直尾翼超載,液壓系統(tǒng)和空氣傳感器出現(xiàn)虛假失效報警。F16 第44次飛行測試中不同步的操作時間變化(skew)和傳感器噪聲會使每一個通道認為其他通道已經(jīng)失效。作F16飛行測試的NASA工程師認為幾乎所有的失效都與硬件無關(guān),而與計算機不同步運行的設(shè)計有關(guān)。由此看來,由于同步要通過1553B實現(xiàn),如果設(shè)計是正確的,只是通信出了問題,后果也是非常嚴重的。
1553B的簡介略——編者注。
在參考文獻[3]中引有1553B的標(biāo)準,第4.5.2.1.2.4條款規(guī)定了終端抗噪聲能力的驗收指標(biāo),這也是對1553B性能的第一印象。
“終端收到的所有字按標(biāo)準條款4.4驗收后最大字錯率不超過10-7”,測試條件是疊加1 kHz~4 MHz的高斯噪聲,其幅度有效值為140 mV。測試處的信號電平峰-峰值為2.1 V,字錯包括所有使?fàn)顟B(tài)字錯誤標(biāo)志置位錯誤,以及使終端不響應(yīng)有效指令字錯誤。
圖1 福特補充的波形F-4
140 mV的噪聲有效值幅值相對于信號的余量是非常小的。根據(jù)第4.5.2.1.2.1條款,終端輸入電壓的最小幅度為0.86Vp-p(峰-峰值),所以上述測試的2.1 V有很大的余量,可以用高斯分布來求干擾引起輸入小于0.86 V從而引起判斷錯誤的概率。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)準的第10.4條款提到10-12這個數(shù)值。字錯率wer= 20×ber=8.6×10-11,遠小于實際測試的要求。
這140 mV的噪聲從何而來?是外部的還是內(nèi)部的?
根據(jù)耦合變壓器的線圈匝數(shù)比、限流的隔離電阻為0.75特征阻抗值,在忽略傳輸線衰減時,可以計算出終端輸入信號是終端輸出信號的25%。第4.5.2.1.1條款規(guī)定,終端輸出電壓的最小幅度為18Vp-p,就可以收到4.5 Vp-p。第4.5.2.1.2條款規(guī)定終端輸出電壓上可以有小于900 mVp-p的畸變和振鈴,到達輸入端的噪聲便有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時不響應(yīng),就是說大于0.86 V時必須正確識別出跳變,小于0.2 V時必須不能把噪聲識別為跳變。環(huán)境好的時候還是有一定量的噪聲的,如果此時外部的噪聲同為140 mV,那么sigma=0.066 V 同樣算得的bergood=6.9×10-7,字錯率為wergood=1.38×10-5,這說明1553B對噪聲是敏感的。
工業(yè)現(xiàn)場不同于辦公室,有的時候電磁環(huán)境惡劣,誤碼就會比較多,但仍然要安全地工作。例如在CAN總線分析時取的是berbad=0.02[6],profisafe中取的是berbad=0.01[7]。1553B不是在辦公室用的,應(yīng)該參照類似要求,即使取10倍的berbad=0.001,就會有werbad=2×10-2,通常的Manchester 編解碼并不能保證標(biāo)準聲稱的wer=1×10-7。
汽車的線控雖然開始得比飛機晚,但是在電磁干擾方面已有深入的研究。1553B電纜的屛蔽只要求75%,自然會有輻射干擾耦合到信號中,例如汽車ISO7637-3標(biāo)準描述的干擾。在這里只討論經(jīng)由電源系統(tǒng)的傳導(dǎo)干擾ISO7637-2標(biāo)準,其中波形3a、3b代表了開關(guān)負載時(例如繼電器)產(chǎn)生的干擾脈沖群。對12 V系統(tǒng)干擾峰值可達-150 V(對24 V系統(tǒng)干擾峰值可達-200 V),脈沖寬度為0.1 μs,周期為100 μs。當(dāng)開關(guān)為感性負載時,儲存在線圈中的能量要釋放,形成反電勢,在電源系統(tǒng)中來回反射。福特汽車公司認為應(yīng)該以實物作測試源[4]:“經(jīng)驗表明,用福特建議的測試可發(fā)現(xiàn)通過標(biāo)準測試而未發(fā)現(xiàn)的一些異常?!彼麄冄a充測試的波形有A1、A2、B1、B2、C五種,其中A2的細節(jié)圖形F-4與C引用如下(見圖1、圖2)。
圖2 福特補充的波形C
波形F-4干擾的幅度可達400 V(電源為12 V),而周期接近1 μs。
波形C的幅值是衰減的,較大干擾的周期接近2 μs,可知它們都非常接近1553B的位速率。假定抗干擾措施可使干擾幅度降低200倍,干擾仍可達到與信號接近的大小。航空中用的液壓電磁閥的開關(guān)也有類似行為,其中閥的返回彈簧儲存的勢能也要釋放,與電能疊加,反電勢可能更大。
來自電源的傳導(dǎo)干擾可以穿越防錯接二級管(1N4000系列二級管反向恢復(fù)時間為2~4 μs),經(jīng)過收發(fā)器中打開的門改變輸出,波形疊加在正常曼碼上就可能形成位錯,或者直接改變收發(fā)器接收部分的比較器輸出。
1553B的RT在bit級,如果沒有采集過0跳變便認為有錯;在word級,有奇校驗錯,指令字有效性檢驗;在message級,BC可以對RT回送的狀態(tài)位檢驗。
RT在檢驗失敗時,如果指令與自己相關(guān),就修改自己的狀態(tài)出錯標(biāo)志位。BC查到自己在接收RT傳送的狀態(tài)或數(shù)據(jù)有錯時,可以重新執(zhí)行傳送。1553B允許使用廣播指令,為了避免多個RT的競爭,在廣播傳送數(shù)據(jù)時沒有RT狀態(tài)字的回送,這樣就去掉了這種錯誤檢驗機制。所以標(biāo)準的第10.6條款不推薦廣播指令。
1553B有兩條冗余的電纜連到需要冗余的每個RT上,但是它們不是同時傳送同一消息,并不像有些總線那樣2選1,只要有一處成功便可,更不像有些設(shè)計,必須兩個結(jié)果相同才認為正確(避免漏檢的錯幀)。1553B應(yīng)用中采用的策略往往是“如果一條電纜上傳送失敗,就在另一條電纜上再試一次,如果再失敗,這條消息就不送了,接著服務(wù)下一條消息。”
1553B設(shè)置有后備BC,主BC失電或內(nèi)部自測有問題時由后備接替,交接是由兩個BC間的直接連接實現(xiàn)(由應(yīng)用者設(shè)計而非1553B的標(biāo)準功能)。
1553B只有奇偶校驗,檢錯能力很弱,只要有兩個錯就檢不出了,形成錯字漏檢。
由于避免使用廣播指令,可能會產(chǎn)生多臺計算機在個別傳送中收到不同的漏檢數(shù)據(jù)字。4冗余系統(tǒng)只能剔除一個錯,有兩個錯時2:2分裂,輸出就含有出錯的內(nèi)容。以同一消息送4次為例,出2個數(shù)據(jù)字漏檢錯的概率為Psys=4×3/2×Pres.w2×(1- Pres.w)2。其中Pres.w=17×16/2×berbad2×(1-berbad)15為字漏檢錯率,如果berbad=0.01,Pres.w=1.36×10-2,Psys=1.1×10-3就非常危險了。例如控制周期為20 ms時,每小時要用到該數(shù)據(jù)為3 600×50=1.8×105次,壞狀態(tài)占0.001時,冗余系統(tǒng)每小時失效數(shù)為2×10-1次。
指令字由5位RT地址、1位收發(fā)指令、5位RT子地址、5位傳送字數(shù)和1位奇偶位構(gòu)成。1553B的狀態(tài)字只含有RT地址,子地址錯時回送檢驗就查不到。發(fā)生錯字漏檢時,例如子地址和檢驗位中有兩個錯,那么傳送的內(nèi)容就會送錯地方或取錯地方。例如取了別的傳感器的值、送到了錯誤的控制界面,或者采用多次簽名重傳解決拜占廷錯的容錯算法時[5],存取錯了地址就會使整個算法出錯,也會使算法崩潰,這種情況的概率為Pres.w=1.36×10-2。
指令字的子地址取00000或11111時,后接的5位域被解釋為模式控制指令。當(dāng)指令字發(fā)生兩個錯而漏檢時,便可能把對RT送出子地址的數(shù)據(jù)收發(fā)指令變?yōu)閷T的模式管理指令,或者兩個錯都發(fā)生在模式控制指令內(nèi)容中時,造成指令的錯誤執(zhí)行。例如要求RT“傳送狀態(tài)字”(00010)被誤解為“關(guān)斷另一個通道的發(fā)送器”(00100),就會使冗余通道失效。又如要求RT進行一次“同步”(00001)被誤解為要求RT“復(fù)位”(01000),這個RT就會因自檢、初始化等停止相當(dāng)一段時間的例行工作,出現(xiàn)此類問題的概率是Pres.w=1.36×10-2。
狀態(tài)字前5位為發(fā)送該狀態(tài)字的RT1的地址,后面各位各有定義,其中第10位為工具位(instrumentation),它是可選項。出現(xiàn)兩位錯時,RT1發(fā)送的狀態(tài)字可能被RT2(地址與RT1相差1位或2位)理解為指向自己的指令字。RT2回送的狀態(tài)字和RT1后繼的數(shù)據(jù)字便會在總線上沖突,或者與BC下一個指令字沖突。沖突要在總線空閑時才會結(jié)束,沖突何時結(jié)束與BC的調(diào)度表有關(guān),也與競爭結(jié)果有關(guān):沖突中是否會啟動在第二條電纜上的傳送與情景有關(guān);沖突是否引起指令字解釋為總線管理類指令也與當(dāng)時的情景有關(guān)。沖突中的異常指令、數(shù)據(jù)沒有被丟棄的保證,是否不會使故障擴大也無保障,出現(xiàn)此類問題的概率Pres.w=1.36×10-2。
1553B第4.4.3.3條款處理無效指令字時存在丟幀可能。
當(dāng)總線空閑時發(fā)生毛刺,引起虛假的指令字sync段,如果時間小于12 μs接著有正確指令字,RT會認為有無效指令字;如果指令字傳送中有錯,RT也會認為有無效指令字。第4.4.3.3條款規(guī)定:RT對無效指令字將不作響應(yīng),即不會發(fā)送狀態(tài)字。
第4.4.3.3條款沒有規(guī)定RT要將自己狀態(tài)字中的出錯標(biāo)志(message error flag)置位。而其他情況下,例如第4.4.3.4條款規(guī)定有非法指令字時,RT要將出錯標(biāo)志置位并回應(yīng)狀態(tài)字,第4.4.3.6條款規(guī)定,RT收到無效數(shù)據(jù)字時要置位出錯標(biāo)志不發(fā)狀態(tài)字。根據(jù)參考文獻[2]的解釋,因為指令字中的錯誤使RT無法知道這條指令字是發(fā)給自己的。從其他系統(tǒng)的經(jīng)驗得知,往往會由節(jié)點的出錯計數(shù)器機制(例如CAN總線)來懲罰有錯節(jié)點,以使后續(xù)的系統(tǒng)降級運行有依據(jù)。既然不能判定是發(fā)給自己的,不設(shè)出錯標(biāo)志也是合理的。
丟幀也會形成拜占廷錯,丟幀、冗余系統(tǒng)的輸出出錯、控制系統(tǒng)不同通道之間不同步、對象失穩(wěn)成為故障傳播的鏈條。
細讀參考文獻[1]所舉例子的圖,可知它是非標(biāo)準的1553B協(xié)議(它的字長為28位),先收到指令字,然后發(fā)送數(shù)據(jù)字時波形有錯。文章沒提到二極管在什么線路中,根據(jù)見到的其他資料,有將二極管加在收發(fā)器輸出和變壓器(中心抽頭接地)接頭之間的接法。當(dāng)二極管斷為電容時,收發(fā)器的一個輸出便經(jīng)電容接變壓器,輸出電壓的正負極就有不對稱的充電了,從測試圖可看到這一點。此時同步過0點的電壓差為0.65 V,即文章所稱的1/2值,不能保證所有節(jié)點都能識別。即使不使用廣播指令,因傳送逐一犯錯而丟幀時,4臺計算機就會一一表決分裂。
以4冗余系統(tǒng)同一消息送4次為例,當(dāng)消息傳送結(jié)束,BC沒有等到RT的狀態(tài)字時,采用的策略是在另一條電纜上再試一次,如果再失敗,這條消息就不送了,接著服務(wù)下一條消息,這仍然是一種丟幀的結(jié)果,只是概率小一點。兩次傳送仍丟幀的概率為Plost=wer2,系統(tǒng)出2個指令字錯(丟幀)的概率為Psys=6×Plost2×(1-Plost)2。werbad=2×10-1時,Plost=4×10-2,Psys=9.6×10-3,壞狀態(tài)占0.001時,采用再發(fā)一次的冗余系統(tǒng)每小時失效數(shù)為9.6×10-3×1.8×105×10-3=1.7次。
有些丟幀并不進入冗余系統(tǒng),例如管理類的模式指令對系統(tǒng)也極為重要(例如同步指令使飛機中有關(guān)的時基同步、節(jié)點復(fù)位等),丟幀會直接影響導(dǎo)航、武器目標(biāo)精度。采用發(fā)兩次再丟幀的方案失效的概率是比較大的,werbad=2×10-1,Plost=(werbad)2=4×10-2,如果每小時只傳送10次模式管理命令,壞狀態(tài)占0.001時,也會有失效數(shù)為4×10-1次,丟幀也會成為潛伏故障,發(fā)展為更嚴重的安全失效。
1553B協(xié)議設(shè)計上的薄弱環(huán)節(jié)多,可依賴性不夠,如果考慮將來采用270 V的電源,其干擾的幅度會更大,1553B則更難適應(yīng)。但是由于系統(tǒng)存量大,在不改協(xié)議的條件下尋求改善的方案是當(dāng)務(wù)之急,這種改進是有可能的。
但是隨著功能安全要求的嚴格、各種漏洞的深究、電磁環(huán)境的惡化,CAN總線也顯得不足,正在探討稱為IntCAN的改進方案,以減少錯幀漏檢率、改善一致性、提供降額運行方案、提高抗黑客攻擊能力和改善診斷維修效率??傊?,老的協(xié)議存在不足才會有新的協(xié)議推出。
如需與作者聯(lián)系,可以發(fā)郵件到:yfy812@163.com。
參考文獻
[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].單片機與嵌入式系統(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)