国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

關于車用通信協議中的假冒錯

發布時間:2010-3-24 08:35    發布者:李寬
關鍵詞: 通信協議
嵌入式系統里,通信是骨干部分,通信系統的錯會引起整個嵌入式系統的故障。在通信系統里,假冒錯(Masquerade fault)是指一種冒名頂替性質的故障,即發送時的一條消息被誤收為另一種格式上合法的消息。此種錯的后果顯然是不能接受的,因為接收節點會把完全無關的數據進行解讀,例如把制動踏板的位置解釋為加速踏板的位置。在這種類型的應用中,由于控制方案對信號的突變有安全設計,機器本身的慣性也有濾波的效果,而且在很短的周期內又有正確的消息送來,在大多數情況下除了造成不適感覺外,不會造成很嚴重的后果。但如果這是會影響到最終執行的信號,那么如果在需要剎車時變為加油,就會造成事故。在有些平時信號更新較慢的系統里,誤信號也可能造成新的問題。例如為了在啟動瞬間防止電池電壓跌落過大,要錯開負荷,像汽車把空調暫時關閉,若誤認為是打開信號,就會違背設計意圖,造成新的干擾中的誤信號也會帶來令人難以解釋的現象,浪費維修的人力物力,且損害品牌的聲譽。在安全攸關的需要冗余的系統里,這種冒名錯會使表決機制失效。因此對車用通信協議中的假冒錯進行研究有重要的意義,它是解決車用嵌入式系統可靠性的關鍵之一。現有的主流車內通信協議是CAN,它還沒有采用足夠的措施可對抗假冒錯。新的FlexRay協議有了這方面的措施,但是否足夠還有待商榷。

1 假冒錯

一條消息在整個發送/接收的過程中會受到干擾,從而產生數據位的改變。為了不被誤收,現有的通信協議都有一些檢錯的措施,例如在傳送的幀尾部附加校驗數據。一般來說,較多采用循環冗余校驗(CRc)方法,CRC生成多項式的長度與需要的檢錯Hamming距離以及需要處理的數據長度有關。CRC算法的Hamming距離是指碼源。又如行車中誤開車鎖,則會帶來新的風險。診斷系統字中無法用CRC算法檢測出的出錯位的個數。因此一個協議選用的CRC多項式反映了它要保證的Hamming距離。如果發生的位錯誤太多,CRC檢驗會產生漏判,把錯誤幀判為正常幀。例如CAN協議采用的 15位cRC生成多項式在CAN的最大數據幀長度內Hamming距離為6。即CRc可檢驗幀內5位錯誤。不過CAN的CRC是在去掉填充位后計算的,由于填充位而造成Hamming距離下降[1]是一個設計上的失誤,這在后面介紹。

當考慮假冒錯時,要分析漏檢的情況。第一種是干擾時間很長,出錯位數太多,超出了CRC檢驗的能力;第二種是通信控制器在發幀以前數據已有變化,而變化后的數據有了合法的身份,CRC檢驗只是保證這一假冒者不被錯發。在這二種情況下,都可能產生假冒錯。在CAN中如果數據位錯誤發生在消息的ID部分就產生了假冒錯,就有可能把剎車當成加油。下面進一步討論產生假冒錯的情況。

1.1數據傳送鏈

從數據的產生到數據的利用的角度來看,通信不只是由一個通信控制器(cc)到另一個通信控制器的過程,它還包括由主機(host)到通信控制器的來回過程,這個過程同樣會出錯。一般的通信干擾分析大多數著眼于來自空問的幅射干擾對串行傳輸的影響,這當然是很重要的途徑,但在采取一定措施后,可以得到緩解,例如用屏蔽電纜、雙絞線、屏蔽的ECU外殼等。在汽車環境里電源的傳導干擾很大,國際標準IS()7637列出了典型的傳導干擾形式,它們的波形上升或下降沿很陡,不但在正電壓方向超出電源電壓很多倍,而且會在負電壓方向超出很多倍。電源的傳導干擾引起一般單片機(甚至是沒有很多對外連線的應用)程序走飛的例子常有所聞,這說明在電源部分防范不夠的主機,完全有可能失常,包括將數據傳輸到 cc的過程。所以車用控制器組件要通過抗電源傳導干擾的測試。

大部分host到cc的傳送用的是并行方式,例如以字節方式把內容(ID、數據等)寫入cc的有關寄存器里。也有少數采用串行方式,例如Microchip公司的MCP2515型號cAN通信控制器,它采用SPI串行接口來傳送。即使將來大量使用32位MCU,這二種方式很可能依然會并存:帶cc的host在MCU內部用字節交換數據;分立的host與cc可以采用并行或串行辦式。但是host在計算時用的最小單位是字節,即使用串口送到cc,它也要有用并行方式寫入的部分。當電源傳導干擾引起傳送失常時,這二種傳送可能出錯的位數是不同的。由于并行方式時l字節8位同時受干擾,出錯的位數就較多,其后果看來就像突發錯(burst error)。串行時可能先錯一位,但如果干擾的持續時間長,就可能形成多位錯,其后果也是發錯。當然,一般host并行讀寫的過程較快,同樣的干擾持續時間內可能有多次寫入,出錯就較多。

對于空間干擾,例如電磁場或重粒子流干擾,對傳送出錯的影響與上述分析不同,需要進一步研究,但后果是一樣的。

1.2  出錯位數

既然大部分host到cc的傳送總經過并行方式,那么非常短時的干擾有可能引起的錯就是1 個字節的錯。并行傳送時由于各位線路電路結構的同一性,同一極性信號的出錯可能性相同,不同極性信號則不太可能同時翻轉,所以傳送內容的不同會影響出錯位數。此時最壞的情形就是8位全為1或全為O,同時發生翻轉。Host寫一條消息一般不止寫1字節到cc。由此看來,對抗假冒錯的CRC Hatoml。ng距離最好為9。當然,即使能保證8位錯能檢出,由于要保護的數據不止1字節,這種對抗假冒錯的CRC只是消除了一次干擾。從實際數據來看全0或全l的數據只占極少數,所以較小的Hamming距離仍有較大的攔截錯誤的概率。

2 FIexRay對抗假冒錯的措施

FlexRay[2] 新興的車用通信協議,它是因CAN協議在帶寬和可靠性不足的情況下發展起來的,主要滿足汽車線控技術(x—by—wire)的要求。在線控系統中,不再有機械或液壓的后備,所有的操作都由電信號通過總線傳送來實現,因此對通信的可靠性要求更高。為了對抗假冒錯,和過去的技術相比,FlexRay協議添加了幀頭的CRC檢驗。

FlexRay的幀頭部段由5位的先導、11位的幀ID、7位的數據長度、ll位的頭部CRC校驗和以及6位的時鐘周期計數構成。如果校驗未通過,幀就判作出錯而不予接收。5位的先導是保留位、數據區前導標志位、空幀標志位、同步幀標志位、啟動幀標志位。頭部C2RC校驗覆蓋的范圍僅包括同步幀標志位、啟動幀標志位、幀ID和數據長度。在FlexRay發送節點中頭部CRC校驗和是離線計算好并在組態時提供給cc的,接收節點的cc則根據收到的在覆蓋域的以及CRC校驗和的比特流計算CRC校驗和。頭部CRC校驗的生成多項式為:

x11+x9+x8+x7+x2+1= (x+1)(x5+x3+1)(x5+x4+x3+x+1)

其計算初值為Ox01A。該頭部CRC校驗保證覆蓋的20位內Hamming距離為6。由于接收節點的cc是根據收到的在覆蓋域的以及CRC校驗和的比特流計算CRC校驗和,如果出錯的位數較多,有可能減少此項檢驗的有效性,在FlexRay波特率較高的情況下,出錯位數多是可能的。這里被保護的數據內容是:同步幀標志表明本幀是否是用于時鐘同步;啟動幀標志表明本幀是否是啟動時用的;幀ID在靜態段時是時間片(slot)的編號,在動態段內為優先級編號,在網絡的同一簇內每一個幀有1個ID;數據長度在組態時也是確定了的。因此在組態時可以離線算好CRC校驗和。如果在應用時這些內容不管何種原因發生了破壞,接收者就可以發現。

FlexRay在發送時間片的實際使用權上還加以控制,即有與節點CC相配的總線監守(bus guardian),用以對抗Babbling Idiot錯。總線監守在調度規定的時刻開啟發送通道,允許CC發送,否則CC是送不出去的。消息以廣播方式送到各節點,若接收也以時間片確定的話,假冒是很難的,除非總線監守與該節點的CC都出了錯。但是FlexRay的總線監守并不保護發生在動態段的不準時發送,如果因為干擾,在周期內某節點CC的時間片指針vSlotCounter出了錯,就有不準時的消息傳送;若同時傳送的ID也錯,假冒錯就會發生,vSlotCounter要等到新的時鐘同步消息時再復位為1。

FlexRay對數據區前導標志和空幀標志未作頭部CRC校驗的覆蓋,這可能引起問題。數據區前導標志用于標明數據區開始部分是否包含有消息ID(在動態段發送的幀)或者網絡管理向量(在靜態段發送的幀)。空幀標志用于標明數據區的數據是否可按原來的規定使用或者是空幀。網絡管理向量是一個選項,作為應用的數據由host寫入,為高一層的協議提供服務,目前還未有規定。顯然這二位如果出錯,頭部CRC校驗可以通過,但數據區的解釋都會完全不同,其性質就是一種假冒錯。雖然幀的發送節點未變,但是卻是一個假幀代替了原來的幀。發生在這二位的錯如果在節點發送幀以前就已有,那么幀尾部的CRC校驗將不能檢測出錯。如上一節所分析,這種情況是有可能存在的。如果是在發送過程中產生的,那么幀尾部的CRC校驗將有可能檢測出錯。

FlexRay 幀尾部的CRC校驗和為24位,它由發送節點的CC生成,覆蓋由頭部保留位到數據區的最后一位,FlexRay的2個信道采用不同的CRC計算初值。覆蓋區長度在2048位時Hamming距離為6,覆蓋區長度為4094位時Hamming距離為4。在汽車環境里,與CAN相比這一Hamming距離似不夠。因為它們都要面對同樣的機械設備,即同樣的干擾。如圖1所示,IS07637中的試驗脈沖1,對電源為12V的系統,Us為-75~-100V.tr 為1μs,假定硬件無法在此時間內將它衰減到足夠小,那么FlexRay將有10位受影響;td為2ms,硬件應能克服電源的跌落。與此對比,CAN僅1 位受影響。又如圖2所示,試驗脈沖3a,Us為-112~-150V,tr為(5±1.5)ns,td為0.1μs,td允差的上下限為 (+0.1,0),t1為100μs,t4為10ms。對這種高頻干擾,驅動器會有收發錯,CAN的比特采樣間隔為1μs,采到0.1μs錯誤的概率小,而FlexRay的位間隔為0.1μs,采到0.1μs錯誤的概率就大。由此看來,在帶寬增加時,出錯的概率增加多倍,而報錯的能力并未增加多倍。為了成功應用,必須對硬件的抗干擾能力做大的提高。



3 CAN對抗假冒錯的措施

CAN協議的CRC檢驗是在加入與去掉填充位后進行的,因此其報錯能力受填充位的影響很大[1],要靠cRC來對抗發生在傳送中誤碼形成的假冒錯是不夠的。因為傳送中的比特錯在接收節點可能引起后面比特流的錯誤解釋,從而把填充位誤作數據而未剔除,或將數據位解讀為填充位誤剔除,如圖3所示。此時原來發送的比特流會向前或向后錯一位,從而形成大量的誤碼(最壞的情況下,錯位之后對CRC而言均為誤碼),很容易超出CRC的有效檢錯圍,造成CRC的漏檢(將錯幀誤判為有效幀),由于填充過程的影響,單個比特錯的后果被放大了。所幸的是CAN還有其他的判錯手段,例如格式錯,那些漏過CRC校驗的幀還可能被攔下。通過仿真,由CRC與各種判錯手段綜合的結果其漏判率還是比較小的,約為0.1×10-6,但是,并不是CAN協議所聲個比特錯(HD一6)。



CAN協議的2.0B版采用32位的仲裁區,它可以自動區分采用11位ID的消息 (標準格式)或29位ID的消息(擴展格式)。如果在cc發送之前或發送中ID及另三位內容有變化,就有假冒發生的可能性。

CAN總線可以用ID的重新分配實現對假冒錯的預防,這種重新分配的可能性在于29位的ID空間非常大,即使用去一部分對抗假冒錯,剩余的部分依然足夠消息的分配。對 29位ID中取一部分作數字簽名,這個數字簽名為離線時用CRC生成的校驗和。因此,仲裁域內發生等于該CRC生成多項式的Hamming距離個比特同時錯才會有一個假冒錯。小于卜tamming距離的比特錯將是無效ID,該消息將被接收節點的過濾器濾掉,從而使假冒錯無法產生影響。雖然在這里并沒有進行接收ID的校驗計算,因ID分配已經考慮了有效ID之間的距離,所以固定的接收濾波器足以防止假冒錯。這樣,無需增加軟硬件的開銷,CAN便可以實現與 FlexRay同樣的抗假冒錯功能。

數字簽名的生成方法,可以在現有的資料中選用,或者重新設計。例如參考文獻[3],若取16階的生成多項式,29位ID中去掉16位作數字簽名后還剩13位,應能滿足應用之需,須知FlexRay僅定義了11位的ID。也可以取更短的數字簽名,例如和 FlexRay相同的11位CRC生成多項式(它的CRC校驗覆蓋區為31位,}lamming距離為6),以留出更多的可用消息種類。重新設計時可以參考BCH碼的設計方法設計生成多項式,以保證所需的卜tamming距離。選用16階的CRC生成多項式時,它可以保證15位頭部Hamming距離為 8,在仲裁域ID的前13位內因CAN填充規則造成1位錯被放大為多位錯的情況,被檢出的概率就增大。該多項式為:

0x8FDB—x16+x12+x11+x10+x9+x8+x7+ x5+x4+x2+x+l

選用16位CRC校驗和時留給消息種類的大小為213=8 192種。采用上述方案,CAN在對抗假冒錯上要比FlexRayr的方法簡單。

CAN 仲裁域里的SRR、IDE和RTR位的誤碼可能引起通信控制器對輸入比特流的解釋變化,但是可以采取措施防止假冒錯。首先,如果仲裁域第12位、13位發生誤碼,就有可能在CAN2.0B的標準格式和擴展格式間產生轉換(如擴展格式誤為標準格式),那么節點對此時發生的假冒未加保護,因此應避免在系統里使用標準格式。標準格式誤為擴展格式的情況,因幀長等被解釋為ID,被濾波器及CAN的其他檢錯措施攔下的可能性增大。其次,在RTR位的誤碼將數據幀誤為遠程幀時接收節點收不到數據,屬于故障-靜默(fault—silent),是一般容錯理論所要求的,遠程幀請求誤為數據幀時,有可能引起不良后果,這是稱的可以攔截5個以下的單個比特錯(HD=6)。

CAN協議的2.0B版采用32位的仲裁區,它可以自動區分采用11位ID的消息(標準格式)或29位ID的消息(擴展格式)。如果在cc發送之前或發送中ID及另三位內容有變化,就有假冒發生的可能性。

CAN總線可以用 ID的重新分配實現對假冒錯的預防,這種重新分配的可能性在于29位的ID空間非常大,即使用去一部分對抗假冒錯,剩余的部分依然足夠消息的分配。對29 位ID中取一部分作數字簽名,這個數字簽名為離線時用CRC生成的校驗和。因此,仲裁域內發生等于該CRC生成多項式的Hamming距離個比特同時錯才會有一個假冒錯。小于Hamming距離的比特錯將是無效ID,該消息將被接收節點的過濾器濾掉,從而使假冒錯無

法產生影響。雖然在這里并沒有進行接收ID的校驗計算,因ID分配已經考慮了有效ID之間的距離,所以固定的接收濾波器足以防止假冒錯。這樣,無需增加軟硬件的開銷,CAN便可以實現與FlexRay同樣的抗假冒錯功能。

數字簽名的生成方法,可以在現有的資料中選用,或者重新設計。例如參考文獻[3],若取16 階的生成多項式,29位ID中去掉16位作數字簽名后還剩13位,應能滿足應用之需,須知FlexRay僅定義了11位的ID。也可以取更短的數字簽名,例如和FlexRay相同的11位CRC生成多項式(它的CRC校驗覆蓋區為31位,Hamming距離為6),以留出更多的可用消息種類。重新設計時可以參考BCH碼的設計方法設計生成多項式,以保證所需的卜Hamming距離。選用16階的CRC生成多項式時,它可以保證15位頭部Hamming距離為8,在仲裁域ID的前13位內因CAN填充規則造成1位錯被放大為多位錯的情況,被檢出的概率就增大。該多項式為:

Ox8FDB—x16+x12+x11+x10+x9+x8+x7+

x5+x4+x2+x+l

選用16位CRC校驗和時留給消息種類的大小為213=8 192種。采用上述方案,CAN在對抗假冒錯上要比FlexRayr的方法簡單。

CAN 仲裁域里的SRR、IDE和RTR位的誤碼可能引起通信控制器對輸入比特流的解釋變化,但是可以采取措施防止假冒錯。首先,如果仲裁域第12位、13位發生誤碼,就有可能在CAN2.0B的標準格式和擴展格式間產生轉換(如擴展格式誤為標準格式),那么節點對此時發生的假冒未加保護,因此應避免在系統里使用標準格式。標準格式誤為擴展格式的情況,因幀長等被解釋為ID,被濾波器及CAN的其他檢錯措施攔下的可能性增大。其次,在RTR位的誤碼將數據幀誤為遠程幀時接收節點收不到數據,屬于故障一靜默(fault—silent),是一般容錯理論所要求的,遠程幀請求誤為數據幀時,有可能引起不良后果,這是另一個問題,但同時存在的假冒錯將由濾波器攔截住。

添加ID的數字簽名并不改變原來的消息的優先級分配,因為優先級只在ID的前面部分確定好了。因此,采用不同數字簽名的消息可以在同一系統里應用,只要收發節點的約定一致即可。但是,隨便混用會使ID之間的距離變小。所以對一個高層協議,為了保證抗假冒錯的能力不變,應該采用統一的CRC生成多項式。從()EM廠的總體利益看,開放其協議的數字簽名方式較為有利。

4 小結

假冒錯在應用中是不能接受的,與一般數據錯造成消息數據量上的變化不同,它可能造成消息質的變化。本文從信息傳遞的整個流程出發,討論受干擾時的比特出錯量,從而作為分析抗假冒錯措施的依據。作為新一代的車用通信協議FlexRay,其頭部CRC校驗的覆蓋面似嫌不足,由于帶寬的增加誤碼率可能增大;尾部CRC檢驗也可能不夠,從而仍有漏過假冒錯的可能。本文討論的CAN的抗假冒錯方案實現比較簡單,可以提升CAN的可靠度。需要指出,CAN的抗假冒錯方案是基于出錯時被丟棄的原理,它并不報錯,發送節點無法知道已發送了錯幀,從而進行重發。所以對那些重要的消息,在應用上仍要設置其他的保障措施。例如,預定時限到而未收到數據則通知應用層,或請求發送。由于CAN填充位規則對CRC的干擾,使C2RC攔截誤碼的能力下降,這是不理想的地方。雖然由CAN各種檢錯機制造成的漏檢很小,但對一些重要的消息還應添加額外的校驗。CAN的消息數據比較

短,一般只有一二字節。添加1個8位的CRC校驗是一種可行的方法,在ECU增加的軟件開銷不會太大,但可進一步提高CAN的可信度。

對于較小的或專用的系統,也可以用本文的方案把固定的事件信號加數字簽名一起傳送,以提高通信的可靠性。例如開關信號分別用2個ID來表示1或0,傳送時還有數據1或0,這樣用多重檢錯方法來防止CAN的CRC檢驗的軟肋。

參考文獻

   1. Eushiuan Tran Multi-bit Error Vulnerabilities in the Controller Area Network Protocol 2008
   2. FlexRay Communications System Protocol Specification Version 2.1 Revision A
   3. Koopman Philip.Chakravarty Tridib Cyclic Redundancy Code (CRC) Polynomial Selection For Embedded Networks 2004

作者:重慶工業自動化儀表研究所 楊福宇  
來源:單片機與嵌入式系統應用 2009 (4)
本文地址:http://www.qingdxww.cn/thread-9787-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • Cortex-M4外設 —— TC&TCC結合事件系統&DMA優化任務培訓教程
  • 利用模擬開發工具生態系統進行安全電路設計
  • 更佳設計的解決方案——Microchip模擬開發生態系統
  • 想要避免發生災難,就用MPLAB SiC電源仿真器!
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文精品视频一区二区在线观看 | 色综合久久天天综合观看 | 日韩精品在线视频 | 欧州色| 黄色网页免费观看 | 两个人免费观看视频高清视频 | 久久久亚洲欧洲日产国码二区 | 全部老头和同性老头xxxxx | 日日操美女 | 国产成人免费在线 | 精品久久久久久久久久久久久久久 | 国产精品亚洲欧美日韩一区在线 | 国产精品白嫩在线观看 | 欧洲国产伦久久久久久久 | 四虎亚洲 | 亚洲大尺度在线观看 | 在线观看男女爱视频网站 | 国产在线麻豆自在拍91精品 | 久久久久国产精品四虎 | 簧片免费网站 | 国产一区二区三区在线 | 在线中文字幕第一页 | 青青草原91| 精品国产看高清国产毛片 | 亚洲综合五月天欧美 | 亚洲国产日韩欧美在线a乱码 | 欧美色欧美亚洲高清在线视频 | 亚洲欧美精品一区 | 在线一区观看 | 色中色综合网 | 国产精品v | 亚洲六月丁香色婷婷综合久久 | 亚洲欧美另类日本 | 一区二区视频在线播放 | 黄色片免费在线观看视频 | 天天精品视频天天躁 | 国产精品久久国产三级国不卡顿 | sihu影院永久在线影院 | 亚洲欧美日韩在线不卡中文 | 日本xxxxx高清免费观看 | 我不卡在线影院 |