你的位置:首頁 > 互連技術(shù) > 正文

淺談CAN發(fā)送仲裁機制

發(fā)布時間:2019-04-04 責(zé)任編輯:wenwei

【導(dǎo)讀】CAN總線高負載率發(fā)送測試時,如果出現(xiàn)大量錯誤報文、被測設(shè)備報文周期出現(xiàn)異常、甚至總線鎖死等,有很大可能是CAN網(wǎng)絡(luò)上的仲裁發(fā)生了異常。
 
隨著工業(yè)技術(shù)不斷發(fā)展,CAN總線已廣泛應(yīng)用于,車輛、航空、醫(yī)療等高安全要求領(lǐng)域。高頻發(fā)送CAN報文也成為安全測試的必要組成部分。在信號正常的網(wǎng)絡(luò)上高負載率發(fā)送測試時,總線上偶然會出現(xiàn)許多意想不到的問題,例如出現(xiàn)大量錯誤報文、被測設(shè)備報文周期出現(xiàn)異常、甚至總線鎖死等。這個時候我們則需要考慮一下CAN網(wǎng)絡(luò)上的仲裁是否發(fā)生了異常。
 
首先我們來了解一下CAN總線仲裁機制。
 
1 CAN總線仲裁機制
 
CAN總線作為現(xiàn)場總線,每個節(jié)點可以同時偵測到網(wǎng)絡(luò)上正在發(fā)送的數(shù)據(jù),當總線空閑時每個節(jié)點均可以發(fā)起自身報文發(fā)送。如果多個節(jié)點同時發(fā)起報文發(fā)送請求,由哪個節(jié)點占用總線就是仲裁機制的主要用途。
 
首先CAN總線物理層通常是雙絞線。當邏輯“1” 被寫進總線時,CANH和CANL的電平都是2.5V,這種狀態(tài)并被定義為“隱性”位;當邏輯“0”被寫進總線時CANH會上拉到為5V,CANL被下拉到地0V,這種狀態(tài)被定義為“顯性”位。如果顯性位和隱性位被不同的節(jié)點同時寫進總線時,總線會表現(xiàn)為“顯性”位。“顯性位覆蓋隱性位”是CAN總線沖突檢測的基礎(chǔ)。
 
當節(jié)點開始傳送它們各自的報文時,如果一個節(jié)點寫進了隱性位而讀回顯性位,節(jié)點會知道另一個高優(yōu)先權(quán)節(jié)點正在占用總線,該節(jié)點會停止傳送報文并繼續(xù)接收總線報文。這種技術(shù)叫做“非破壞性逐位”仲裁。
 
 
淺談CAN發(fā)送仲裁機制
圖1 CAN仲裁機制 
 
如圖1所示,在多個節(jié)點同時發(fā)送報文時,首次出現(xiàn)不同,且發(fā)送顯性位的節(jié)點占用總線。由于CAN報文首先發(fā)送的為ID段且顯性位為邏輯“0”,因此ID越小該幀的優(yōu)先級越高。
 
2 仲裁場
 
似乎按照“非破壞性逐位”仲裁機制,就可以從ID一直仲裁到CRC段,可是CAN傳輸標準并不是這樣, CAN標準要求,仲裁僅從基本ID第一位開始,到標準幀的IDE位或擴展幀的RTR位結(jié)束。這個區(qū)域被定義為仲裁場。如圖2所示。
 
淺談CAN發(fā)送仲裁機制
圖2 CAN仲裁場區(qū)域
 
依據(jù)仲裁場范圍,CAN總線仲裁流程如圖3所示。
 
淺談CAN發(fā)送仲裁機制
圖3 CAN仲裁場區(qū)域
 
3 仲裁異常的影響
 
在CAN仲裁機制中,理論上仲裁必須在仲裁場完成。不過CAN總線配置錯誤或者測試時發(fā)送CAN幀疏忽,也存在仲裁場數(shù)據(jù)完全相同的情況,在這樣的情況下會對總線造成什么后果呢?下面我們按照CAN通訊原則分析一下仲裁異常時CAN總線可能出現(xiàn)什么表現(xiàn)。
 
1、仲裁場后數(shù)據(jù)傳輸不一致
 
在仲裁場結(jié)束后CAN節(jié)點需要對發(fā)送的數(shù)據(jù)進行一致性對比,如果發(fā)送的數(shù)據(jù)與讀取回得數(shù)據(jù)不一致,收發(fā)器則需要發(fā)送CAN錯誤幀,以通知總線各個節(jié)點自身發(fā)送數(shù)據(jù)錯誤,停止接收并快速進入總線空閑,以便再次數(shù)據(jù)發(fā)送。
 
淺談CAN發(fā)送仲裁機制
圖4 仲裁場后數(shù)據(jù)傳輸不一致
 
如圖4所示當兩個節(jié)點發(fā)送的仲裁場相同,在仲裁場后DLC段發(fā)生數(shù)據(jù)不同情況。發(fā)送單元1發(fā)現(xiàn)自己本身需要發(fā)送的隱性電平而收到的是顯性電平,識別到數(shù)據(jù)不一致現(xiàn)象后立即發(fā)出錯誤幀信息(6個顯性位)。發(fā)送單元1發(fā)送錯誤信息過程中,發(fā)送單元2也將捕獲到自己某個隱性位發(fā)送與收取的不一致,從而也發(fā)出主動錯誤幀。最終造成類似圖4總線電平特征。
 
需要注意,大部分CAN收發(fā)器在發(fā)送過程中因為沒有占用到總線或者發(fā)送失敗,會在下一次總線空閑到來時再次占用總線發(fā)送相同的數(shù)據(jù)。因此當出現(xiàn)仲裁場數(shù)據(jù)相同,后續(xù)數(shù)據(jù)不同時,有極大的可能造成總線錯誤后兩個節(jié)點再次同時占用總線,再次進行仲裁并總線錯誤,甚至反復(fù)進入錯誤造成網(wǎng)絡(luò)鎖死等嚴重情況。
 
2、仲裁場后數(shù)據(jù)相同
 
如果兩個CAN節(jié)點,發(fā)送CAN幀完全相同,兩個發(fā)送單元均認為占用了總線,并成功發(fā)送完數(shù)據(jù)。雖然數(shù)據(jù)發(fā)送完成,不過需要注意CAN節(jié)點在發(fā)送數(shù)據(jù)幀時,是不能夠?qū)ψ约喊l(fā)送的CAN幀進行應(yīng)答,這個時候則會出現(xiàn)不同的情況。
 
不存在多余的應(yīng)答節(jié)點
 
淺談CAN發(fā)送仲裁機制
圖5 傳輸數(shù)據(jù)相同無應(yīng)答
 
當所有的總線節(jié)點發(fā)送的數(shù)據(jù)均相同,那么所有節(jié)點認為自己成功發(fā)送了數(shù)據(jù),而等待總線其他節(jié)點應(yīng)答。此時發(fā)送節(jié)點會因為沒有得到應(yīng)答而被CAN節(jié)點識別為發(fā)送失敗,從而重新占用總線再次發(fā)送。
(注:此現(xiàn)象與應(yīng)用層有很大的關(guān)系,節(jié)點也可以被識別為發(fā)送成功而不再重發(fā)。)
 
存在多余應(yīng)答節(jié)點
 
淺談CAN發(fā)送仲裁機制
圖6 傳輸數(shù)據(jù)相同有應(yīng)答
 
在多個節(jié)點同時發(fā)送相同數(shù)據(jù)到總線,并存在其他節(jié)點不處于發(fā)送狀態(tài),其他節(jié)點則會對總線進行應(yīng)答,發(fā)送節(jié)點會認為CAN數(shù)據(jù)成功發(fā)送。從而隱藏了這種仲裁異?,F(xiàn)象。
 
4 仲裁的其他特性與測試建議
 
1、CAN總線中的節(jié)點在仲裁失敗、發(fā)送失敗或者請求發(fā)送時總線被其他節(jié)點占用,一般會在下一次空閑到來時請求發(fā)送,總線負載率越高,遇到上面的情況概率也就越大,因此仲裁事件的發(fā)生常出現(xiàn)在高負載率的總線環(huán)境下,如果可以控制總線負載率在合理范圍內(nèi),可以大大減少仲裁事件的發(fā)生。
 
2、每個CAN節(jié)點在發(fā)送報文時,顯性電平都存在一定的驅(qū)動能力,在仲裁事件發(fā)生時,由于多個節(jié)點同時驅(qū)動總線,會造成CAN總線顯性電平電壓與平時高一點(驅(qū)動點越多,電壓越高)。同時由于每個節(jié)點同步性可能存在微小的差異,其脈寬也可能發(fā)生改變。 
 
3、當需要測試指定節(jié)點長時間占用不到總線的表現(xiàn)時,應(yīng)該使用高優(yōu)先級測試報文進行高負載率發(fā)送(盡可能達到100%)。高優(yōu)先級報文一直占用總線,低優(yōu)先級報文永遠占用不到總線。當需要部分允許部分禁止,應(yīng)設(shè)置測試報文優(yōu)先級在允許報文與不允許報文之間。
 
4、如果需要測試指定節(jié)點高負載率情況下報文周期特性,發(fā)送的報文優(yōu)先級不能高于被測節(jié)點周期特性報文的優(yōu)先級。如果被測節(jié)點滿足周期性,周期到來后的第一個空閑后報文發(fā)送就可以仲裁成功將該周期報文成功發(fā)送。
 
5、在某些CAN高層總線協(xié)議中,存在可變優(yōu)先級字段,(依據(jù)請求發(fā)送等待時間變化優(yōu)先級)。如果需要驗證報文優(yōu)先級變化特性,所發(fā)送的報文優(yōu)先級,需要使用高于初次請求優(yōu)先級,低于最高優(yōu)先級的報文。
5 總結(jié)
 
CAN總線中,無論節(jié)點還是測試設(shè)備發(fā)送報文仲裁場應(yīng)該不同,這樣可以避免因仲裁異常造成的錯誤出現(xiàn)。同樣在CAN測試時,應(yīng)依據(jù)測試目的選擇合理的CAN報文ID,避免仲裁特性影響測試效果。
 
淺談CAN發(fā)送仲裁機制
 
CANScope總線綜合分析儀是一款綜合性的CAN總線開發(fā)與測試的專業(yè)工具,集海量存儲示波器、網(wǎng)絡(luò)分析儀、誤碼率分析儀、協(xié)議分析儀及可靠性測試工具于一身,并把各種儀器有機的整合和關(guān)聯(lián);重新定義CAN總線的開發(fā)測試方法,可對CAN網(wǎng)絡(luò)通信正確性、可靠性、合理性進行多角度全方位的評估;幫助用戶快速定位故障節(jié)點,解決CAN總線應(yīng)用的各種問題,是CAN總線開發(fā)測試的終極工具。
 
 
推薦閱讀:
 
有源元件和無源元件的區(qū)別
具2.5 μA靜態(tài)電流和超低EMI的42 V單片式同步降壓型穩(wěn)壓器
開關(guān)電源“各種拓撲結(jié)構(gòu)”的對比與分析!
為什么電源模塊的輸出電壓會變低?
TVS管性能及選型
要采購工具么,點這里了解一下價格!
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書下載更多>>
熱門搜索
壓控振蕩器 壓力傳感器 壓力開關(guān) 壓敏電阻 揚聲器 遙控開關(guān) 醫(yī)療電子 醫(yī)用成像 移動電源 音頻IC 音頻SoC 音頻變壓器 引線電感 語音控制 元件符號 元器件選型 云電視 云計算 云母電容 真空三極管 振蕩器 振蕩線圈 振動器 振動設(shè)備 震動馬達 整流變壓器 整流二極管 整流濾波 直流電機 智能抄表
?

關(guān)閉

?

關(guān)閉