在CAN總線網絡里,還有一個經常被大家提起的概念-總線負載率,負載率,顧名思義,就是指這段時間內總線上實際傳輸的信息量/理論上可傳輸的最大信息量。
不知道大家平時怎么理解一個“概念”或“定義”,灑家的小竅門是“咬文爵字”和“摳字眼”。
具體要摳哪些字眼,可以參考老羅的錘子手機原創、最近被微信抄了去的big bang大爆炸。這個概念里,有兩個需要重點理解的點:“這段時間”、“理論最大信息量”。
“這段時間”可長可短,也意味著負載率是可變的。需要特別關注的有兩個:平均負載率和峰值負載率。根據灑家多年的小經驗,平均負載率大多低于40-50%,峰值負載率也不超過70-80%。
因此我們需要關注負載率超了具體產生的影響:
針對某個具體的CAN網絡,從技術上來說,把原本30%的平均負載率提高到50%也沒啥,但是還是建議30%,或許30%最保險吧。
另外,“理論上可以傳輸的最大信息量”取決于總線速率。具體來說,低速CAN為125kbps,高速CAN為500kbps,CAN-FD為2Mbps,再往上,Flexray站出來說了“此吾家事,汝不得預也!”。
在制定負載率時,會牽涉到一個概念-報文時長。灑家不少同事說起報文時長來,經常不清不楚,模模糊糊。其實,真正找到關鍵,問題就很簡單了。
報文時長的計算公式:報文時長=位時長x報文位數。
在這個公式里,位時長當然等于速率的倒數,比如125kbps的通信速率,位時長=8us。而報文位數,則取決于CAN報文的結構。報文結構如下圖所示:
一個完整的CAN報文由七個不同的Field(場/域/段)組成:幀起始、仲裁場、控制場、數據場、CRC場、應答場、幀結尾。
SOF為幀起始,標志著數據幀和遠程幀的起始,由一個單獨的“顯性”位組成。
仲裁場包括識別符和遠程發送請求位(RTR)。識別符的長度為11位。
控制場由6個位組成,包括數據長度代碼和兩個將來作為擴展用的保留位。
數據場由數據幀中的發送數據組成。它可以為0~8 個字節。
CRC場包括CRC序列(CRC SEQUENCE),其后是CRC界定符(CRC DELIMITER)。CRC序列為15位,CRC界定符包含一個單獨的“隱性”位 。
應答場長度為2個位,包含應答間隙(ACK SLOT)和應答界定符(ACK DELIMITER)。
幀結尾由一標志序列界定。這個標志序列由7 個“隱性”位組成。
所以一個8字節的數據幀的位數為1(幀起始)+ 12(仲裁場)+ 6(控制場)+ 64(數據場)+ 16(CRC場)+ 2(應答場)+ 7(幀結尾)= 108位。
報文之間存在幀間空間INTERFRAME SPACE。幀間包括間歇場、總線空閑的位場。間歇場包括3 個“隱性”的位??偩€空閑的(時間)長度是任意的。所以,一個8字節的數據幀至少需要(108+3+1)* bitrate的時長,對于125kbps,需要0.896ms。
審核編輯:湯梓紅
-
CAN
+關注
關注
57文章
2769瀏覽量
464379 -
總線
+關注
關注
10文章
2903瀏覽量
88389 -
負載率
+關注
關注
1文章
5瀏覽量
2924
發布評論請先 登錄
相關推薦
如何降低CAN總線負載?
時間分析軟件Symtavision使CAN總線負載率達到70%
![時間分析軟件Symtavision使<b class='flag-5'>CAN</b><b class='flag-5'>總線</b><b class='flag-5'>負載率</b>達到70%](https://file.elecfans.com/web2/M00/49/68/poYBAGKhwK6ARTsxAABOrz-luuc706.png)
ECU和CAN總線負載率的關系
什么是ECU?總線負載率對傳輸穩定性影響分析
什么是CAN總線負載率?CAN總線負載率最大支持多少?
干貨分享 | TSMaster小功能之總線負載率如何在圖形里繪制曲線
![干貨分享 | TSMaster小功能之<b class='flag-5'>總線</b><b class='flag-5'>負載率</b>如何在圖形里繪制曲線](https://file.elecfans.com/web2/M00/40/07/pYYBAGJrUk2AaMaTAAAQONQtdzo461.jpg)
評論