什么是CAN總線負(fù)載率?怎么計(jì)算負(fù)載率?(附送負(fù)載率自動(dòng)計(jì)算表格)
回復(fù)【阻抗匹配】,獲取電磁兼容性、阻抗匹配相關(guān)的資料回復(fù)【資料】,獲取全部電子設(shè)計(jì)、單片機(jī)開發(fā)相關(guān)的資料回復(fù)【終端電阻】,獲取CAN終端電阻相關(guān)的資料回復(fù)【單片機(jī)】,獲取單片機(jī)全套視頻教程和參考設(shè)計(jì)
回復(fù)【STM32】,獲取STM32相關(guān)設(shè)計(jì)和視頻教程回復(fù)【PCB】,獲取PCB設(shè)計(jì)相關(guān)的資料回復(fù)【硬件知識】、【硬件設(shè)計(jì)】,獲取硬件開發(fā)工程必備手冊
回復(fù)【經(jīng)典電路】,獲取5000個(gè)經(jīng)典電路
回復(fù)【論文】,獲取畢業(yè)設(shè)計(jì)、電子競賽、學(xué)術(shù)專業(yè)等相關(guān)論文資料…………
歡迎關(guān)注【玩轉(zhuǎn)單片機(jī)與嵌入式】公眾號,本公眾號會(huì)以連載的形式對電容進(jìn)行深入講解,歡迎持續(xù)關(guān)注。
?0、前言
近期小編發(fā)表了一些關(guān)于CAN總線的文章,(點(diǎn)擊查看文章匯總),有粉絲在后臺(tái)留言問:能否寫一些關(guān)于CAN總線負(fù)載率的文章?大家都知道,我們是很寵愛自己的粉絲的,特此奉上本篇文章。
1、什么是CAN總線的負(fù)載率?
一般業(yè)內(nèi)對負(fù)載率的定義為:實(shí)際數(shù)據(jù)傳輸速率和理論上能達(dá)到的數(shù)據(jù)傳輸速率的比值。
可類比景區(qū)的負(fù)載率進(jìn)行理解:每個(gè)景區(qū)都有一個(gè)負(fù)荷上限,比如10000人,如果此時(shí)景區(qū)內(nèi)只有1000人,那么這時(shí)的景區(qū)負(fù)載率是10%。如下圖1和圖2分別展示了景區(qū)高負(fù)載率和低負(fù)載率的情況。
圖1:高負(fù)載率
圖2:低負(fù)載率
景區(qū)負(fù)載率是一個(gè)在空間上定義的概念,它說明了在空間上資源的被使用情況,而總線負(fù)載率則不然,其是在時(shí)間上定義的一個(gè)概念,說明了在時(shí)間上資源被使用的情況。
因?yàn)閭鬏斔俾室话闶前疵雭碛?jì)算,數(shù)據(jù)傳輸速率既為每秒鐘傳輸了多少個(gè)BIT,負(fù)載率也默認(rèn)為在一秒的時(shí)間范圍內(nèi)位資源的使用情況。理論上波特率為500K的總線上每秒鐘能夠傳輸500000個(gè)BIT,如果在某一秒中總線上只傳輸了100000個(gè)BIT,則總線負(fù)載率為20%。
2、CAN總線負(fù)載率最大支持多少?
在行業(yè)內(nèi)一般要求負(fù)載率不大于30%。
如果按照空間上負(fù)載率的概念做簡單類比,CAN總線上一般要求負(fù)載率不大于30%似乎不能被理解,畢竟物盡其用這個(gè)觀念是被大家廣為接受的。要深入系統(tǒng)的理解為什么30%成為目前業(yè)內(nèi)普遍遵守的負(fù)載率高壓線,就不得的不引入CAN理論中另外幾個(gè)重要的概念:ID仲裁、閑時(shí)發(fā)送和最大反應(yīng)時(shí)間。
CAN總線本質(zhì)上是一種串口通訊,靠在時(shí)間線上對每一位的電壓值進(jìn)行調(diào)制來搭載不同的信號。因?yàn)楦鞴?jié)點(diǎn)共用總線介質(zhì),對總線的使用權(quán)界定就至關(guān)重要。
先說結(jié)論:只有在總線空閑時(shí),發(fā)送節(jié)點(diǎn)才能向總線上發(fā)送幀起始及后續(xù)幀ID,只有在幀ID贏得仲裁時(shí),發(fā)送節(jié)點(diǎn)擁有總線控制權(quán)進(jìn)而向總線發(fā)送報(bào)文剩余部分,在仲裁中失敗的節(jié)點(diǎn)讓出總線控制權(quán)等待下次總線空閑時(shí)繼續(xù)嘗試發(fā)送。
我們可以看到如果某一個(gè)節(jié)點(diǎn)需要發(fā)送一幀報(bào)文,它需要同時(shí)滿足兩個(gè)條件
1、總線是空閑的,即目前沒有任何節(jié)點(diǎn)在發(fā)送報(bào)文,在總線上表示為節(jié)點(diǎn)監(jiān)測到11個(gè)連續(xù)的隱性位;
2、所需發(fā)送的報(bào)文贏得ID仲裁,即報(bào)文優(yōu)先級較高。
一個(gè)報(bào)文在試圖發(fā)送時(shí),必須滿足上述兩個(gè)條件才能完成發(fā)送。這里的問題就是:如果一個(gè)優(yōu)先級相對較低的節(jié)點(diǎn)向外發(fā)報(bào)文時(shí),會(huì)因?yàn)椴粩嗟卦谥俨弥惺《鴮?dǎo)致發(fā)送延遲。如果延遲過大會(huì)引起通訊失敗。
負(fù)載率越高,代表需要發(fā)送的數(shù)據(jù)越多,相對來說低優(yōu)先級節(jié)點(diǎn)發(fā)生通訊延遲的概率越大。
實(shí)際上30%的數(shù)據(jù)也只是一個(gè)經(jīng)驗(yàn)數(shù)值,歷史很悠久的一個(gè)經(jīng)驗(yàn)數(shù)值。從本質(zhì)上來看,限制負(fù)載率最終是要保證相對低優(yōu)先級節(jié)點(diǎn)的通訊實(shí)時(shí)性,如果能通過網(wǎng)絡(luò)及節(jié)點(diǎn)優(yōu)化等手段滿足每個(gè)節(jié)點(diǎn)的最大響應(yīng)時(shí)間滿足要求,負(fù)載率只是一個(gè)無關(guān)緊要的參數(shù)。
3:負(fù)載率計(jì)算
想要了解負(fù)載率的計(jì)算,需先清楚CAN總線的幀格式。
圖3:CAN標(biāo)準(zhǔn)幀格式
圖4:CAN擴(kuò)展幀格式
圖5:幀間隔假設(shè)
- Ui:各個(gè)信息幀占用總線百分比
- L:為報(bào)文的總長度
- C:為報(bào)文的總線占用時(shí)間? ? ??
- N:為填充的位數(shù)
- t:為毛速率 ( 亦稱波特率 )下的位時(shí)間
- L = N ? 8d g 13
- C = ?L * t
- Ui = C / T
網(wǎng)絡(luò)負(fù)載率是 1s 內(nèi)網(wǎng)絡(luò)總線傳輸數(shù)據(jù)所占帶寬的百分率。以上圖網(wǎng)絡(luò)矩陣表為例,假設(shè)總線速度為500Kbps,網(wǎng)絡(luò)中有多幀信號,把每個(gè)信號幀所占的負(fù)載率算出來,相加即得到總的網(wǎng)絡(luò)負(fù)載率。FBCM_1/FBCM_2這兩幀的所占的負(fù)載率算法如下:?????負(fù)載率1 = (1000ms / 20ms)? * 111 / 500000 = 0.0111 = 1.11%
負(fù)載率2 = (1000ms / 10ms)? * 111 / 500000 = 0.0222 = 2.22%
4:負(fù)載率自動(dòng)計(jì)算工具
根據(jù)以上的負(fù)載率計(jì)算原理,可以輕松整理出如下的表格,輸入CAN總線的相關(guān)參數(shù):波特率、ID個(gè)數(shù)、幀間隔、幀類型等,可以自動(dòng)出總線負(fù)載率。請關(guān)注公眾號【玩轉(zhuǎn)單片機(jī)與嵌入式】,在后臺(tái)回復(fù)【CAN負(fù)載率】,將自動(dòng)發(fā)送負(fù)載率計(jì)算的工具給您。當(dāng)然:本文的重點(diǎn)是講解CAN總線負(fù)載率的原理及如何進(jìn)行負(fù)載率計(jì)算;真實(shí)情況下不需要自動(dòng)手動(dòng)計(jì)算,可以使用CAN分析儀等工具可以輕松的讀取到CAN總線負(fù)載率。End
限時(shí)免費(fèi)掃碼進(jìn)群,交流更多行業(yè)技術(shù)
歡迎轉(zhuǎn)發(fā)
每篇原創(chuàng)內(nèi)容都是我們用心血換來的知識精華,如果您覺得本文有價(jià)值,歡迎轉(zhuǎn)載分享;歡迎加入
如果您對單片機(jī)及嵌入式設(shè)計(jì)感興趣,歡迎加入我們的辯論探討,加我微信【xyzn3333】。
往期推薦PCB設(shè)計(jì),考慮EMC時(shí),應(yīng)如何接地?對CAN總線的終端電阻,你知道多少?用最通俗的語言講一講,什么是阻抗匹配?CAN總線工程師常見問題及解答什么是can總線?can總線是數(shù)字信號還是模擬信號
點(diǎn)個(gè)在看你最好看