淺談CAN發(fā)送仲裁機(jī)制
發(fā)布時(shí)間:2019-04-04 責(zé)任編輯:wenwei
【導(dǎo)讀】CAN總線高負(fù)載率發(fā)送測(cè)試時(shí),如果出現(xiàn)大量錯(cuò)誤報(bào)文、被測(cè)設(shè)備報(bào)文周期出現(xiàn)異常、甚至總線鎖死等,有很大可能是CAN網(wǎng)絡(luò)上的仲裁發(fā)生了異常。
隨著工業(yè)技術(shù)不斷發(fā)展,CAN總線已廣泛應(yīng)用于,車輛、航空、醫(yī)療等高安全要求領(lǐng)域。高頻發(fā)送CAN報(bào)文也成為安全測(cè)試的必要組成部分。在信號(hào)正常的網(wǎng)絡(luò)上高負(fù)載率發(fā)送測(cè)試時(shí),總線上偶然會(huì)出現(xiàn)許多意想不到的問(wèn)題,例如出現(xiàn)大量錯(cuò)誤報(bào)文、被測(cè)設(shè)備報(bào)文周期出現(xiàn)異常、甚至總線鎖死等。這個(gè)時(shí)候我們則需要考慮一下CAN網(wǎng)絡(luò)上的仲裁是否發(fā)生了異常。
首先我們來(lái)了解一下CAN總線仲裁機(jī)制。
1 CAN總線仲裁機(jī)制
CAN總線作為現(xiàn)場(chǎng)總線,每個(gè)節(jié)點(diǎn)可以同時(shí)偵測(cè)到網(wǎng)絡(luò)上正在發(fā)送的數(shù)據(jù),當(dāng)總線空閑時(shí)每個(gè)節(jié)點(diǎn)均可以發(fā)起自身報(bào)文發(fā)送。如果多個(gè)節(jié)點(diǎn)同時(shí)發(fā)起報(bào)文發(fā)送請(qǐng)求,由哪個(gè)節(jié)點(diǎn)占用總線就是仲裁機(jī)制的主要用途。
首先CAN總線物理層通常是雙絞線。當(dāng)邏輯“1” 被寫進(jìn)總線時(shí),CANH和CANL的電平都是2.5V,這種狀態(tài)并被定義為“隱性”位;當(dāng)邏輯“0”被寫進(jìn)總線時(shí)CANH會(huì)上拉到為5V,CANL被下拉到地0V,這種狀態(tài)被定義為“顯性”位。如果顯性位和隱性位被不同的節(jié)點(diǎn)同時(shí)寫進(jìn)總線時(shí),總線會(huì)表現(xiàn)為“顯性”位。“顯性位覆蓋隱性位”是CAN總線沖突檢測(cè)的基礎(chǔ)。
當(dāng)節(jié)點(diǎn)開(kāi)始傳送它們各自的報(bào)文時(shí),如果一個(gè)節(jié)點(diǎn)寫進(jìn)了隱性位而讀回顯性位,節(jié)點(diǎn)會(huì)知道另一個(gè)高優(yōu)先權(quán)節(jié)點(diǎn)正在占用總線,該節(jié)點(diǎn)會(huì)停止傳送報(bào)文并繼續(xù)接收總線報(bào)文。這種技術(shù)叫做“非破壞性逐位”仲裁。
圖1 CAN仲裁機(jī)制
如圖1所示,在多個(gè)節(jié)點(diǎn)同時(shí)發(fā)送報(bào)文時(shí),首次出現(xiàn)不同,且發(fā)送顯性位的節(jié)點(diǎn)占用總線。由于CAN報(bào)文首先發(fā)送的為ID段且顯性位為邏輯“0”,因此ID越小該幀的優(yōu)先級(jí)越高。
2 仲裁場(chǎng)
似乎按照“非破壞性逐位”仲裁機(jī)制,就可以從ID一直仲裁到CRC段,可是CAN傳輸標(biāo)準(zhǔn)并不是這樣, CAN標(biāo)準(zhǔn)要求,仲裁僅從基本ID第一位開(kāi)始,到標(biāo)準(zhǔn)幀的IDE位或擴(kuò)展幀的RTR位結(jié)束。這個(gè)區(qū)域被定義為仲裁場(chǎng)。如圖2所示。
圖2 CAN仲裁場(chǎng)區(qū)域
依據(jù)仲裁場(chǎng)范圍,CAN總線仲裁流程如圖3所示。
圖3 CAN仲裁場(chǎng)區(qū)域
3 仲裁異常的影響
在CAN仲裁機(jī)制中,理論上仲裁必須在仲裁場(chǎng)完成。不過(guò)CAN總線配置錯(cuò)誤或者測(cè)試時(shí)發(fā)送CAN幀疏忽,也存在仲裁場(chǎng)數(shù)據(jù)完全相同的情況,在這樣的情況下會(huì)對(duì)總線造成什么后果呢?下面我們按照CAN通訊原則分析一下仲裁異常時(shí)CAN總線可能出現(xiàn)什么表現(xiàn)。
1、仲裁場(chǎng)后數(shù)據(jù)傳輸不一致
在仲裁場(chǎng)結(jié)束后CAN節(jié)點(diǎn)需要對(duì)發(fā)送的數(shù)據(jù)進(jìn)行一致性對(duì)比,如果發(fā)送的數(shù)據(jù)與讀取回得數(shù)據(jù)不一致,收發(fā)器則需要發(fā)送CAN錯(cuò)誤幀,以通知總線各個(gè)節(jié)點(diǎn)自身發(fā)送數(shù)據(jù)錯(cuò)誤,停止接收并快速進(jìn)入總線空閑,以便再次數(shù)據(jù)發(fā)送。
圖4 仲裁場(chǎng)后數(shù)據(jù)傳輸不一致
如圖4所示當(dāng)兩個(gè)節(jié)點(diǎn)發(fā)送的仲裁場(chǎng)相同,在仲裁場(chǎng)后DLC段發(fā)生數(shù)據(jù)不同情況。發(fā)送單元1發(fā)現(xiàn)自己本身需要發(fā)送的隱性電平而收到的是顯性電平,識(shí)別到數(shù)據(jù)不一致現(xiàn)象后立即發(fā)出錯(cuò)誤幀信息(6個(gè)顯性位)。發(fā)送單元1發(fā)送錯(cuò)誤信息過(guò)程中,發(fā)送單元2也將捕獲到自己某個(gè)隱性位發(fā)送與收取的不一致,從而也發(fā)出主動(dòng)錯(cuò)誤幀。最終造成類似圖4總線電平特征。
需要注意,大部分CAN收發(fā)器在發(fā)送過(guò)程中因?yàn)闆](méi)有占用到總線或者發(fā)送失敗,會(huì)在下一次總線空閑到來(lái)時(shí)再次占用總線發(fā)送相同的數(shù)據(jù)。因此當(dāng)出現(xiàn)仲裁場(chǎng)數(shù)據(jù)相同,后續(xù)數(shù)據(jù)不同時(shí),有極大的可能造成總線錯(cuò)誤后兩個(gè)節(jié)點(diǎn)再次同時(shí)占用總線,再次進(jìn)行仲裁并總線錯(cuò)誤,甚至反復(fù)進(jìn)入錯(cuò)誤造成網(wǎng)絡(luò)鎖死等嚴(yán)重情況。
2、仲裁場(chǎng)后數(shù)據(jù)相同
如果兩個(gè)CAN節(jié)點(diǎn),發(fā)送CAN幀完全相同,兩個(gè)發(fā)送單元均認(rèn)為占用了總線,并成功發(fā)送完數(shù)據(jù)。雖然數(shù)據(jù)發(fā)送完成,不過(guò)需要注意CAN節(jié)點(diǎn)在發(fā)送數(shù)據(jù)幀時(shí),是不能夠?qū)ψ约喊l(fā)送的CAN幀進(jìn)行應(yīng)答,這個(gè)時(shí)候則會(huì)出現(xiàn)不同的情況。
不存在多余的應(yīng)答節(jié)點(diǎn)
圖5 傳輸數(shù)據(jù)相同無(wú)應(yīng)答
當(dāng)所有的總線節(jié)點(diǎn)發(fā)送的數(shù)據(jù)均相同,那么所有節(jié)點(diǎn)認(rèn)為自己成功發(fā)送了數(shù)據(jù),而等待總線其他節(jié)點(diǎn)應(yīng)答。此時(shí)發(fā)送節(jié)點(diǎn)會(huì)因?yàn)闆](méi)有得到應(yīng)答而被CAN節(jié)點(diǎn)識(shí)別為發(fā)送失敗,從而重新占用總線再次發(fā)送。
(注:此現(xiàn)象與應(yīng)用層有很大的關(guān)系,節(jié)點(diǎn)也可以被識(shí)別為發(fā)送成功而不再重發(fā)。)
存在多余應(yīng)答節(jié)點(diǎn)
圖6 傳輸數(shù)據(jù)相同有應(yīng)答
在多個(gè)節(jié)點(diǎn)同時(shí)發(fā)送相同數(shù)據(jù)到總線,并存在其他節(jié)點(diǎn)不處于發(fā)送狀態(tài),其他節(jié)點(diǎn)則會(huì)對(duì)總線進(jìn)行應(yīng)答,發(fā)送節(jié)點(diǎn)會(huì)認(rèn)為CAN數(shù)據(jù)成功發(fā)送。從而隱藏了這種仲裁異常現(xiàn)象。
4 仲裁的其他特性與測(cè)試建議
1、CAN總線中的節(jié)點(diǎn)在仲裁失敗、發(fā)送失敗或者請(qǐng)求發(fā)送時(shí)總線被其他節(jié)點(diǎn)占用,一般會(huì)在下一次空閑到來(lái)時(shí)請(qǐng)求發(fā)送,總線負(fù)載率越高,遇到上面的情況概率也就越大,因此仲裁事件的發(fā)生常出現(xiàn)在高負(fù)載率的總線環(huán)境下,如果可以控制總線負(fù)載率在合理范圍內(nèi),可以大大減少仲裁事件的發(fā)生。
2、每個(gè)CAN節(jié)點(diǎn)在發(fā)送報(bào)文時(shí),顯性電平都存在一定的驅(qū)動(dòng)能力,在仲裁事件發(fā)生時(shí),由于多個(gè)節(jié)點(diǎn)同時(shí)驅(qū)動(dòng)總線,會(huì)造成CAN總線顯性電平電壓與平時(shí)高一點(diǎn)(驅(qū)動(dòng)點(diǎn)越多,電壓越高)。同時(shí)由于每個(gè)節(jié)點(diǎn)同步性可能存在微小的差異,其脈寬也可能發(fā)生改變。
3、當(dāng)需要測(cè)試指定節(jié)點(diǎn)長(zhǎng)時(shí)間占用不到總線的表現(xiàn)時(shí),應(yīng)該使用高優(yōu)先級(jí)測(cè)試報(bào)文進(jìn)行高負(fù)載率發(fā)送(盡可能達(dá)到100%)。高優(yōu)先級(jí)報(bào)文一直占用總線,低優(yōu)先級(jí)報(bào)文永遠(yuǎn)占用不到總線。當(dāng)需要部分允許部分禁止,應(yīng)設(shè)置測(cè)試報(bào)文優(yōu)先級(jí)在允許報(bào)文與不允許報(bào)文之間。
4、如果需要測(cè)試指定節(jié)點(diǎn)高負(fù)載率情況下報(bào)文周期特性,發(fā)送的報(bào)文優(yōu)先級(jí)不能高于被測(cè)節(jié)點(diǎn)周期特性報(bào)文的優(yōu)先級(jí)。如果被測(cè)節(jié)點(diǎn)滿足周期性,周期到來(lái)后的第一個(gè)空閑后報(bào)文發(fā)送就可以仲裁成功將該周期報(bào)文成功發(fā)送。
5、在某些CAN高層總線協(xié)議中,存在可變優(yōu)先級(jí)字段,(依據(jù)請(qǐng)求發(fā)送等待時(shí)間變化優(yōu)先級(jí))。如果需要驗(yàn)證報(bào)文優(yōu)先級(jí)變化特性,所發(fā)送的報(bào)文優(yōu)先級(jí),需要使用高于初次請(qǐng)求優(yōu)先級(jí),低于最高優(yōu)先級(jí)的報(bào)文。
5 總結(jié)
CAN總線中,無(wú)論節(jié)點(diǎn)還是測(cè)試設(shè)備發(fā)送報(bào)文仲裁場(chǎng)應(yīng)該不同,這樣可以避免因仲裁異常造成的錯(cuò)誤出現(xiàn)。同樣在CAN測(cè)試時(shí),應(yīng)依據(jù)測(cè)試目的選擇合理的CAN報(bào)文ID,避免仲裁特性影響測(cè)試效果。
CANScope總線綜合分析儀是一款綜合性的CAN總線開(kāi)發(fā)與測(cè)試的專業(yè)工具,集海量存儲(chǔ)示波器、網(wǎng)絡(luò)分析儀、誤碼率分析儀、協(xié)議分析儀及可靠性測(cè)試工具于一身,并把各種儀器有機(jī)的整合和關(guān)聯(lián);重新定義CAN總線的開(kāi)發(fā)測(cè)試方法,可對(duì)CAN網(wǎng)絡(luò)通信正確性、可靠性、合理性進(jìn)行多角度全方位的評(píng)估;幫助用戶快速定位故障節(jié)點(diǎn),解決CAN總線應(yīng)用的各種問(wèn)題,是CAN總線開(kāi)發(fā)測(cè)試的終極工具。
推薦閱讀:
特別推薦
- AMTS 2025展位預(yù)訂正式開(kāi)啟——體驗(yàn)科技驅(qū)動(dòng)的未來(lái)汽車世界,共迎AMTS 20周年!
- 貿(mào)澤電子攜手安森美和Würth Elektronik推出新一代太陽(yáng)能和儲(chǔ)能解決方案
- 功率器件熱設(shè)計(jì)基礎(chǔ)(六)——瞬態(tài)熱測(cè)量
- 貿(mào)澤開(kāi)售Nordic Semiconductor nRF9151-DK開(kāi)發(fā)套件
- TDK推出用于可穿戴設(shè)備的薄膜功率電感器
- 日清紡微電子GNSS兩款新的射頻低噪聲放大器 (LNA) 進(jìn)入量產(chǎn)
- 中微半導(dǎo)推出高性價(jià)比觸控 MCU-CMS79FT72xB系列
技術(shù)文章更多>>
- 意法半導(dǎo)體推出首款超低功耗生物傳感器,成為眾多新型應(yīng)用的核心所在
- 是否存在有關(guān) PCB 走線電感的經(jīng)驗(yàn)法則?
- 智能電池傳感器的兩大關(guān)鍵部件: 車規(guī)級(jí)分流器以及匹配的評(píng)估板
- 功率器件熱設(shè)計(jì)基礎(chǔ)(八)——利用瞬態(tài)熱阻計(jì)算二極管浪涌電流
- AHTE 2025展位預(yù)訂正式開(kāi)啟——促進(jìn)新技術(shù)新理念應(yīng)用,共探多行業(yè)柔性解決方案
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動(dòng)避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負(fù)載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
生產(chǎn)測(cè)試
聲表諧振器
聲傳感器
濕度傳感器
石英機(jī)械表
石英石危害
時(shí)間繼電器
時(shí)鐘IC
世強(qiáng)電訊
示波器
視頻IC
視頻監(jiān)控
收發(fā)器
手機(jī)開(kāi)發(fā)
受話器
數(shù)字家庭
數(shù)字家庭
數(shù)字鎖相環(huán)
雙向可控硅
水泥電阻
絲印設(shè)備
伺服電機(jī)
速度傳感器
鎖相環(huán)
胎壓監(jiān)測(cè)
太陽(yáng)能
太陽(yáng)能電池
泰科源
鉭電容
碳膜電位器