作者:楊福宇 這篇文章要介紹現(xiàn)場的環(huán)境是如何惡劣,即使用屏蔽電纜,也會出很多錯。另外,要看看別人是確定了什么樣的數(shù)值界限。你看了之后就會覺得充耳不聞、視而不見、自欺欺人是不智的。 CAN總線即使有不安全的隱患,但是否在可容忍的界限內(nèi)?要回答這個問題,必須要弄清楚現(xiàn)場會多惡劣,其次,可多大的失效概率是容許的界限。 從功能安全的角度,一個系統(tǒng)功能失效(它會造成人身和財產(chǎn)嚴重損失)的概率應(yīng)該小于10-7/h?紤]到系統(tǒng)內(nèi)部件的總多,分配給通信息系統(tǒng)的失效概率是10-9/h。這是與風(fēng)險大小/當前由技術(shù)水平?jīng)Q定的投入的成本之比有關(guān)所作出的判斷。當每小時有1千萬輛車在開時,每小時10-7次故障意味著每天要有24輛車出或重或輕的車禍,也許死更多的人。中國今天的車保有量是1億2千萬輛,想想吧! 常識告訴我們電磁環(huán)境惡劣時干擾多,誤碼率就高,失效率就高。所以討論容許的誤碼率就一定要先說在什么環(huán)境之下。 誤碼率的統(tǒng)計是以一段時間內(nèi)出現(xiàn)錯誤的個數(shù)除以總的傳送的碼的個數(shù),這里統(tǒng)計的時間長度又對統(tǒng)計的結(jié)果有很大的影響。這是因為干擾并不是均勻分布的,例如雷擊時的干擾就比晴天要多,(還記得2011-7-23動車組出軌那天的雷擊嗎,碰巧那里的CAN總線也出了問題),在工業(yè)環(huán)境里開關(guān)一個感性負載時比該負載運行時干擾大。如果在傳送中正好碰到負載切換,以一幀長度來統(tǒng)計誤碼率就會很大,但是如果一小時內(nèi)只有開關(guān)了一次負載,那么按一小時來統(tǒng)計誤碼率就會很小,絕對的錯數(shù)被大大攤薄了。 在通信通道的錯誤的模型上,就把這種情況以好壞二種狀態(tài)來表示,一個通道可以用一種概率處于好的狀態(tài),以另一種概率處于壞的狀態(tài),上面所講的雷擊或感性負載開關(guān)的時候就是壞的狀態(tài)。 那么選多長的時間統(tǒng)計是合理的?這也要看干擾的性質(zhì)與要對付的失效的性質(zhì)。 這是對感應(yīng)耦合干擾的實驗結(jié)果: FEI REN,“PERFORMANCE IMPROVEMENTS OF AUTOMOBILE COMMUNICATION PROTOCOLS IN ELECTROMAGNETIC INTERFERENCE ENVIRONMENTS”,A THESIS Presented to the Faculty of the Graduate School of the UNIVERSITY OF MISSOURI-ROLLA, 2007] http://scholarsmine.mst.edu/thesis/pdf/Ren_09007dcc80487aed.pdf 圖中數(shù)據(jù)幀的長度為0.22ms(有4個幀多點),干擾由測試設(shè)備隔離的獨立的電池經(jīng)開關(guān)通斷一個在車中常用的繼電器產(chǎn)生,它的電線與CAN電纜松散地平行放置,長度各為2米,開關(guān)為每秒切換二次,平均地說每次切換會引起0.49ms的干擾(the average length of EMI is 0.49 ms.)。他統(tǒng)計的是收到幀中真正出了錯的bit數(shù)(When receives frames, if any errors occurs in this frame, the receiver node can record the number of errors, and then request retransmission. The bit error rate can be gained by dividing the number of errors by the total number of received bits.)。 ![]() 由這個實驗可見,干擾發(fā)生在有負載切換的時候;它可以很密集,甚至在一個幀內(nèi)有多次誤碼。 下表是他用屏蔽電纜的實驗結(jié)果,他認為在實驗中沒有數(shù)據(jù)丟失(表中寫為100%),但是實際收到的還是有差別,例如在2米線時作40次開關(guān)干擾時(20秒內(nèi)40次壞狀態(tài)),少收了2bps,即丟2/904861=2.2*10-6。又如開關(guān)60次時(20秒內(nèi)60次壞狀態(tài))少收4bps,可見誤碼數(shù)與干擾概率的比例關(guān)系,即每次壞狀態(tài)時的誤碼率是相近的。由每次開關(guān)干擾長度0.49ms計,壞狀態(tài)占運行狀態(tài)的概率分別為2*0.49ms/1s=1*10-3和3*0.49ms/1s=1.5*10-3,因此可推出壞狀態(tài)時的誤碼率分別為2.2*10-3和2.9*10-3,所以即使是屏蔽電纜,壞狀態(tài)時誤碼率也是很高的。注意,我從他的實驗結(jié)果得到了與他不同的結(jié)論。 ![]() 拋開學(xué)術(shù)上分類方法的討論,這里討論二類通信失效:如果誤碼引起的錯可以被通信協(xié)議的查錯規(guī)則發(fā)現(xiàn),那么誤碼率的影響就反映到幀出錯的概率,只要一個幀的出錯概率小于1,那么總有成功送達的幀。 如果誤碼引起的錯不可以被通信協(xié)議的查錯規(guī)則發(fā)現(xiàn),那么誤碼率的影響就反映到錯幀漏檢的的概率。錯幀漏檢率是非常重要的指標,因為人們?yōu)榱斯?jié)省成本與時間,不想再添加其他檢驗措施,而認為只要通信協(xié)議檢驗通過了就可以直接用,或者因受系統(tǒng)的別的約束,難以采取其他補救措施(我在文(10)中將討論這一點)。 這種嚴格要求來源于系統(tǒng)可信賴性(system dependability)的分析。系統(tǒng)可信賴性分析時把故障分為能檢測出的和不能檢測出的二類。能檢測出的故障往往可以采取措施,使系統(tǒng)回到安全狀態(tài),而不能檢測出的故障則無法采取措施,它的概率就百分之百地算到系統(tǒng)失效概率中去了。 所以,涉及安全時就要考慮一幀長度時的誤碼率。如果有幀的多次多通道的重復(fù)傳送,以解決正確幀和漏檢錯幀的拜占庭錯時,容許一幀有錯幀漏檢,可以放寬誤碼率的要求。 我們看看有關(guān)的通信協(xié)議是如何處理誤碼率數(shù)值的: PROFIsafe System(2010年版)中提到他們?yōu)楸WC錯幀漏檢的貢獻小于10-9/h,選擇額外的CRC時要對付的誤碼率是10-2。見: PROFIsafe System Description (p.10) http://www.profibus.com/nc/downloads/downloads/profisafe-technology-and-application-system-description/download/9594 For the transmission, PROFIsafe is allowed a mere 1% contribution, meaning that the permissible probability of dangerous failures is 10-9/h. This permits suitable CRC polynomials to be deter- mined for the intended PROFIsafe message lengths. The resulting residual error probability of undetected corrupted PROFIsafe messages at a maximum bit error probability of 10-2 guarantees the required order of magnitude. 在CAN協(xié)議錯幀漏檢率的分析報告中(p.9),他們計算實例時采用的誤碼率是2*10-2。見:J. Unruh, H.J. Mathony, K.H. Kaiser: "Error Detection Analysis of Automotive Communication Protocols". SAE Int. Congress, No. 900699, Detroit, USA, 1990。 可見誤碼率為10-2是一個合適的界限,就是壞的狀態(tài)時的誤碼率界限。如果通信系統(tǒng)處于壞狀態(tài)的概率定為10-3,那么平均的誤碼率就只相當于10-5了。 中國古語說取法于上得乎其中,取法于中得乎于下,所以你如果真的想趕上國外的先進水平,就不能懈怠了。你看,CAN已經(jīng)盡力想達到這樣的要求,但仍未達到,可見得乎其中了。 有朋友告訴我,他印象中,誤碼率10-4已經(jīng)很壞了,現(xiàn)場恐怕只有10-8,不會達到10-2吧。這一方面是因為沒有區(qū)別統(tǒng)計誤碼率的時間長短的結(jié)果,另一方面把干擾源低估了。有些干擾源可以加措施于以削弱,但是有些干擾源是無法預(yù)防的,例如雷擊、人為攻擊。我們設(shè)計的系統(tǒng)可能在雷雨區(qū)、雷雨季節(jié)使用,可能在電磁戰(zhàn)的戰(zhàn)場使用,你就必須考慮在高的誤碼率下存活。 有人喜歡玩弄辨論“技巧”,說這樣要出事的話就是“不可抗力”的因素了,到時候當然是可以免責(zé)的。 2011-7-23動車事故中有一段:事故調(diào)查組檢驗測定,因雷擊...軌道電路與列控中心信號傳輸?shù)腃AN總線阻抗下降,導(dǎo)致5829AG軌道電路發(fā)送器與列控中心通信故障。那是硬件有損的查得到的證據(jù),如果雷打不得不那么大,設(shè)備沒損壞,但已經(jīng)出了許多誤碼,而由于隱患而軟件出錯的證據(jù)就難查了,所以必須在認證的階段查實。 對于強的現(xiàn)場干擾(有電磁輻射的無線電站附近,高壓線附近),運載工具還要用;雷電發(fā)生時你也可能在運載工具中,你僅希望自己不中“頭彩”而不顧及不幸“中彩”的人嗎?你能免除你心靈上的責(zé)任嗎?當敵人采用電磁攻擊而我們的設(shè)備不敵時,那些保衛(wèi)我們的戰(zhàn)士就危在旦夕,我們自然也危在旦夕,你能免除國家興亡之責(zé)嗎?可見不同的取向反映了人責(zé)任心的不同。這事沒有人提出,沒有辦法解決,可以說“不可抗”,有人提出,不作研究,就不是“不可抗”而是“不作為”。 |