CAN總線負載率是指CAN匯流排上單位時間內實際傳送的位元數和可以傳送的位數之比,也就是總線實際資料傳輸速率與理論上能達到的資料傳輸速率的比值。例如波特率為500kbps的CAN總線理論上每秒鐘能夠傳輸500000個Bit(位數),如果在某一秒中總線上只傳輸了100000個Bit,則瞬時總線負載率為20%。
汽車電子系統中ECU數量增加,因此CAN總線通訊的資料量也急遽增加。但是CAN總線負載率過高會導致一些週期性資訊由於匯流排競爭,造成封包延遲甚至出現錯誤訊框的情況。
對於汽車維修診斷行業,假設後裝了車聯網或導航一體機到車輛CAN總線上,加裝的節點很可能會使得報文過多負載率偏高,我們可以用宏虹Pico汽車示波器捕獲CAN訊號並且計算出負載率,判斷這些加裝的節點是否導致過載。對汽車模擬設計與最佳化方面,我們不僅能利用示波器計算出負載率,還能分析CAN匯流排每條封包的延遲,兩者結合才能最佳化CAN總線以降低負載率。
在正式開始介紹如何使用宏虹Pico汽車示波器計算CAN總線負載率之前,我們首先要知道一個CAN標準資料幀的欄位組成和位數(如下)。
假設位元率為500kBit/s,則總線上傳輸1位元將花費1/(500*1000)s =2μs。由上述可知一個CAN幀大約有125位,那麼傳輸一個CAN資料包將花費2*125=250μs,因此CAN總線理論上每秒可以傳輸4000個CAN資料包。
圖1
我們用示波器採集完CAN高和CAN低的波形後,需要先進行串列譯碼。先前我們已經計算出位元率為500kBit/s的CAN匯流排理論上可以每秒傳輸4000個,為了計算出負載率,需要透過在時間標尺寸間譯碼快速測量出總線實際上每秒傳輸了多少個資料包(圖2)。
圖2
譯碼後的資料如圖3所示,我們將資料包這一列降序排列,可以知道在時間標尺間對應的這一秒鐘中,CAN匯流排實際上一共傳輸了777個資料包。
圖3
基於上述結果,我們可以估算出CAN總線負載率的近似值為:777/4000=19.425%(單位時間內傳輸的資料包實際個數/理論個數=CAN總線負載率)。
最後請大家注意,由於CAN總線的不確定性,上述方法只是估算負載率的近似值,並不能準確計算。且此計算方法不適用於CAN FD協定以及29位元標識符的CAN擴充幀(上述範例計算的是11位元標識符的CAN標準資料幀)。
如果您對此感興趣,歡迎您關注我們獲取更多文章資訊,如有任何問題,也歡迎聯絡我們!
地址:臺灣臺北市中山區敬業一路99號3樓(大灣科技中心大樓)
3rd Floor, Dawan Technology Center Building, No. 99 Jingye 1st Road, Zhongshan District, Taipei City, Taiwan
©2025.hongtronics. All Rights Reserved.