「can匯流排負載率」表徵的是單位時間內匯流排上的「位流」相對於匯流排頻寬的佔比。換就話說,匯流排實際資料傳輸速率與理論上能達到的資料傳輸速率的比值。
以景區的負載率為例,每個景區都有乙個容納遊客負荷上限人數(比如說10000人),如果此時景區內只有1000人,則此時景區負載率是10%。景區負載率是乙個空間上的概念,它說明在空間上的資源被使用情況,而「can匯流排負載率」則描述是時間維度上資源被使用的情況:波特率為500kbps的匯流排上每秒鐘能夠傳輸500000個bit,如果在某一秒中匯流排上只傳輸了100000個bit,則匯流排負載率為20%。can負載率預設為在一秒的時間範圍內位資源的使用情況。
在講解can匯流排負載率之前,先就幾個概念進行說明:
1、波特率:波特率表示每秒鐘傳送的碼元符號的個數,是衡量資料傳送速率的指標,它用單位時間內載波調製狀態改變的次數來表示(單位為波特)。如「1個波特」指每秒傳輸1個碼元的符號。
2、位元率:單位時間內,通訊通道傳送的二進位制位數。單位為位元/秒(bit/s或bps)
3、碼元:在數字通訊中常常用時間間隔相同的符號來表示數字。這樣的時間間隔內的訊號稱為碼元,這個間隔稱為碼元長度。
由於can通訊中的訊號是二進位制的,所以對can來說波特率和位元率相等,只是業界習慣用bps表示can的波特率。
下面開始介紹can匯流排負載率計算:
can標準幀格式:幀最大長度共計108bit(預設幀長度為8)
幀起始(1bit)、仲裁域(12bit)、控制域(6bit)、資料域(8×8bit)、迴圈冗餘碼域(15bit)、1bit分隔符、應答域(2bit)和幀結尾(7bit)
can擴充套件幀格式:幀最大長度共計128bit(預設幀長度為8)
幀起始(1bit)、仲裁域(32bit)、控制域(6bit)、資料域(8×8bit)、迴圈冗餘碼域(15bit)、1bit分隔符、應答域(2bit)和幀結尾(7bit)
在實際當中,幀與幀傳送之間存在間隔,幀間隔有兩種不同的形式:
主動錯誤狀態的幀間隔:
被動錯誤狀態的幀間隔:
間隔段:連續三個隱性位;間隔段期間,所有節點不允許傳送資料這或遙控幀,只要在這期間監聽到顯性位,接收節點就會傳送過載幀。
空閒段:連續隱性位,個數不一定,0個或者多個都可以。匯流排空閒的時間是任意長的,只要匯流排空閒,節點就可以競爭匯流排。
暫停段:只有處於被動錯誤狀態的節點在傳送幀間隔的時候,才會在幀間隔中插入8個連續隱性位的暫停段。
對單個can幀來說負載率:
對can標準幀來說,傳送一幀實際長度108+3=111bit;
對can擴充套件幀來說,傳送一幀實際長度124+4=128bit。
而can匯流排負載率是各個幀占用匯流排百分比之和。f = f1 + f2 + f3 + …
另外如果已知乙個can網路所有can_id的dbc,並且知道它們的傳送方式,可以粗略的估算出can網路的負載率:
對應乙個已知的can trace可以統計一秒以內傳送的幀數,來粗略計算該一秒以內的can負載率。
CAN匯流排網路層與傳輸層的理解(五)
iso15765 2中定義了網路層和傳輸層的內容,下面就對這兩部分分別進行介紹。所有網路層的服務都有統一的結構,為了定義服務,有三種服務原語 所有的網路層服務也有統一的格式,如下 service name.type網路層提供了兩種服務 n usdata.requestn usdata.confirm...
can匯流排學習(一) 初識can匯流排
can匯流排最初由德國bosch公司為汽車檢測 控制系統而設計的。1993年can成為國際標準iso11898 高速應用 和iso1119 低速應用 can的規範從can1.2規範 標準格式 發展為相容can1.2規範的can2.0規範 can2.0a為標準格式,can2.0b為擴充套件格式 目前應...
初學CAN匯流排
初學can 匯流排,之前用的是 rs485 485 中沒有匯流排仲裁的概念,如果匯流排上有十個節點,要事先算好每組資料的傳送用時,調好時間延遲,逐個排隊傳送。而 can匯流排可以把多個節點的資料都送到本站的 can晶元,並處於準備狀態,等待匯流排空閒時,向匯流排傳送資料,由匯流排仲裁哪乙個節點優先傳...