淺談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)許多意想不到的問題,例如出現(xiàn)大量錯(cuò)誤報(bào)文、被測(cè)設(shè)備報(bào)文周期出現(xiàn)異常、甚至總線鎖死等。這個(gè)時(shí)候我們則需要考慮一下CAN網(wǎng)絡(luò)上的仲裁是否發(fā)生了異常。
首先我們來了解一下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)完成。不過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ò)誤信息過程中,發(fā)送單元2也將捕獲到自己某個(gè)隱性位發(fā)送與收取的不一致,從而也發(fā)出主動(dòng)錯(cuò)誤幀。最終造成類似圖4總線電平特征。
需要注意,大部分CAN收發(fā)器在發(fā)送過程中因?yàn)闆]有占用到總線或者發(fā)送失敗,會(huì)在下一次總線空閑到來時(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ā)送完成,不過需要注意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ù)相同無應(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ì)在下一次空閑到來時(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)長時(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)滿足周期性,周期到來后的第一個(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總線中,無論節(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)用的各種問題,是CAN總線開發(fā)測(cè)試的終極工具。
推薦閱讀:
特別推薦
- 復(fù)雜的RF PCB焊接該如何確保恰到好處?
- 電源效率測(cè)試
- 科技的洪荒之力:可穿戴設(shè)備中的MEMS傳感器 助運(yùn)動(dòng)員爭(zhēng)金奪銀
- 輕松滿足檢測(cè)距離,勞易測(cè)新型電感式傳感器IS 200系列
- Aigtek推出ATA-400系列高壓功率放大器
- TDK推出使用壽命更長和熱點(diǎn)溫度更高的全新氮?dú)馓畛淙嘟涣鳛V波電容器
- 博瑞集信推出低噪聲、高增益平坦度、低功耗 | 低噪聲放大器系列
技術(shù)文章更多>>
- 如何選擇和應(yīng)用機(jī)電繼電器實(shí)現(xiàn)多功能且可靠的信號(hào)切換
- 基于APM32F411的移動(dòng)電源控制板應(yīng)用方案
- 數(shù)字儀表與模擬儀表:它們有何區(qū)別?
- 聚焦制造業(yè)企業(yè)貨量旺季“急難愁盼”,跨越速運(yùn)打出紓困“連招”
- 選擇LDO時(shí)的主要考慮因素和挑戰(zhàn)
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動(dòng)避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負(fù)載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
光收發(fā)器
光通訊器件
光纖連接器
軌道交通
國防航空
過流保護(hù)器
過熱保護(hù)
過壓保護(hù)
焊接設(shè)備
焊錫焊膏
恒溫振蕩器
恒壓變壓器
恒壓穩(wěn)壓器
紅外收發(fā)器
紅外線加熱
厚膜電阻
互連技術(shù)
滑動(dòng)分壓器
滑動(dòng)開關(guān)
輝曄
混合保護(hù)器
混合動(dòng)力汽車
混頻器
霍爾傳感器
機(jī)電元件
基創(chuàng)卓越
激光二極管
激光器
計(jì)步器
繼電器