淺談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)開始傳送它們各自的報(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第一位開始,到標(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)闆]有占用到總線或者發(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)闆]有得到應(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總線開發(fā)與測(cè)試的專業(yè)工具,集海量存儲(chǔ)示波器、網(wǎng)絡(luò)分析儀、誤碼率分析儀、協(xié)議分析儀及可靠性測(cè)試工具于一身,并把各種儀器有機(jī)的整合和關(guān)聯(lián);重新定義CAN總線的開發(fā)測(cè)試方法,可對(duì)CAN網(wǎng)絡(luò)通信正確性、可靠性、合理性進(jìn)行多角度全方位的評(píng)估;幫助用戶快速定位故障節(jié)點(diǎn),解決CAN總線應(yīng)用的各種問(wèn)題,是CAN總線開發(fā)測(cè)試的終極工具。
推薦閱讀:
特別推薦
- 授權(quán)代理商貿(mào)澤電子供應(yīng)Same Sky多樣化電子元器件
- 使用合適的窗口電壓監(jiān)控器優(yōu)化系統(tǒng)設(shè)計(jì)
- ADI電機(jī)運(yùn)動(dòng)控制解決方案 驅(qū)動(dòng)智能運(yùn)動(dòng)新時(shí)代
- 倍福推出采用 TwinSAFE SC 技術(shù)的 EtherCAT 端子模塊 EL3453-0090
- TDK推出新的X系列環(huán)保型SMD壓敏電阻
- Vishay 推出新款采用0102、0204和 0207封裝的精密薄膜MELF電阻
- Microchip推出新款交鑰匙電容式觸摸控制器產(chǎn)品 MTCH2120
技術(shù)文章更多>>
- 中微公司成功從美國(guó)國(guó)防部中國(guó)軍事企業(yè)清單中移除
- 華邦電子白皮書:滿足歐盟無(wú)線電設(shè)備指令(RED)信息安全標(biāo)準(zhǔn)
- 功率器件熱設(shè)計(jì)基礎(chǔ)(九)——功率半導(dǎo)體模塊的熱擴(kuò)散
- 準(zhǔn) Z 源逆變器的設(shè)計(jì)
- 第12講:三菱電機(jī)高壓SiC芯片技術(shù)
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動(dòng)避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負(fù)載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
單向可控硅
刀開關(guān)
等離子顯示屏
低頻電感
低通濾波器
低音炮電路
滌綸電容
點(diǎn)膠設(shè)備
電池
電池管理系統(tǒng)
電磁蜂鳴器
電磁兼容
電磁爐危害
電動(dòng)車
電動(dòng)工具
電動(dòng)汽車
電感
電工電路
電機(jī)控制
電解電容
電纜連接器
電力電子
電力繼電器
電力線通信
電流保險(xiǎn)絲
電流表
電流傳感器
電流互感器
電路保護(hù)
電路圖