隨著總線技術在汽車電子領域越來越廣泛和深入的應用,特別是自動駕駛技術的迅速發展,汽車電子對總線寬度和數據傳輸速率的要求也越來也高,傳統CAN(1MBit/s,8Bytes?Payload)已難以滿足日益增加的需求。
因此在2012年,Bosch發布了新的CAN FD標準 (CAN with Flexible Data Rate) ,CAN FD繼承了CAN的絕大多數特性,如同樣的物理層,雙線串行通信協議,基于非破壞性仲裁技術,分布式實時控制,可靠的錯誤處理和檢測機制等,同時CAN FD彌補了CAN在總線帶寬和數據長度方面的不足。
2015年6月30日,國際標準化組織(ISO)已經正式認可CAN?FD,并無反對票通過ISO 11898-1作為國際標準草案。
1什么是CAN FD?
CAN FD協議是由Bosch以及行業專家預研開發的,并于2012年發布。通過標準化對其進行了改進,現已納入ISO 11898-1:2015。一開始的Bosch CAN FD版本(非ISO CAN FD)與ISO CAN FD是不兼容。
CAN FD具有以下4個主要優點:
1、增加了數據的長度
CAN FD每個數據幀最多支持64個數據字節,而傳統CAN最多支持8個數據字節。這減少了協議開銷,并提高了協議效率。
2、增加傳輸的速度
CAN FD支持雙比特率:與傳統CAN一樣,標稱(仲裁)比特率限制為1 Mbit/s,而數據比特率則取決于網絡拓撲/收發器。實際上,可以實現高達5 Mbit/s的數據比特率。
3、更好的可靠性
CAN FD使用改進的循環冗余校驗(CRC)和“受保護的填充位計數器”,從而降低了未被檢測到的錯誤的風險。這在汽車和工業自動化等安全攸關的應用中至關重要。
4、平滑過渡
在一些特定的情況下CAN FD能用在僅使用傳統CAN的ECU上,這樣就可以逐步引入CAN FD節點,從而為OEM簡化程序和降低成本。
實際上,與傳統CAN相比,CAN FD可以將網絡帶寬提高3到8倍,從而為數據的增長提供了一種簡單的解決方案。
2CAN FD幀結構
CAN FD節點可以正常收、發CAN報文,但CAN節點不能正確收、發CAN FD報文,因為其幀格式不一致。
與CAN一樣,CAN FD一共具有:幀起始,仲裁段,控制段,數據段,CRC段,ACK段和幀結束,7部分組成。
2.1、幀起始
CAN與CANFD使用相同的SOF標志位來標志報文的起始。幀起始由1個顯性位構成,標志著報文的開始,并在總線上起著同步作用。
2.2、仲裁段
與CAN不同,CAN FD取消了對遠程幀的支持,用RRS位替換了RTR位,為常顯性。IDE用于區分標準幀和擴展幀。
標準幀仲裁段由11位ID和r1位(顯性)、IDE(顯性)組成,總共13位。
擴展幀仲裁段由29位ID和SRR(隱性)、IDE(隱性)、r1位(顯性)組成,總共32位。
SRR:替代CAN標準幀中的RTR位;
IDE:擴展幀標志位;
r1:保留位,為顯性。
2.3、控制段
CAN FD與CAN有著相同的IDE、res和DLC位,同時增加了FDF、BRS、ESI三個bit位。
FDF 位(Flexible Data Rate Format):原 CAN 數據幀中的保留位 r。表示 CAN 報文還是 CAN-FD 報文,FDF 位常為隱性(1),表示 CAN FD 報文;
BRS 位( Bit Rate Switch):表示位速率轉換,當 BRS 為顯性位(0)時數據段的位速率與仲裁段的位速率一致(恒定速率),當 BRS 為隱性位(1)時速率可變(即 BSR 到 CRC 使用轉換速率傳輸);
ESI 位(Error State Indicator):發送節點錯誤狀態指示,主動錯誤時發送顯性位(0),被動錯誤時發送隱性位(1)。
2.4、數據段
CAN FD兼容CAN的數據格式,同時最大還能支持:12、16、 20、 24、 32、 48和64byte。
像在傳統CAN中一樣,CAN FD DLC是4位,表示幀中數據字節的數量。為了維持4位DLC,CAN FD使用從9到15的其余7個值來表示所使用的數據字節數(12、16、20、24、32、48、64)。
編輯
2.5、CRC段
傳統CAN中的循環冗余校驗(CRC)為15位,而在CAN FD中由固定填充位FSB(6/7位)、填充位計數(4位)、CRC(17/21位)和CRC界定符(1位)組成,總共28或33位組成。在傳統CAN中,CRC中可以包含0到3個填充位,而在CAN FD中,總是有4個固定填充位以提高通信可靠性。
固定填充位(FSB):CRC段中每4個位固定填充一個與上位相反的位。
采用CRC17時,FSB為6個位;
采用CRC21時,FSB為7個位。
填充位計數:由填充位計數(3位)和奇偶校驗位(1位)組成。
CRC:
報文長度小于16時,采用CRC17,17位組成;
報文長度大于16時,采用CRC21,21位組成。
CRC界定符:固定為隱性位;從該位采樣后,切換為仲裁域波特率。
2.6、ACK段
ACK緊跟著CRC結束標識位。不同的是,CAN FD支持2bits的ACK的識別,由ACK位和ACK界定符位組成。
ACK:接收節點應答位,接收節點應應答顯性位;
ACK界定符,固定為隱性。
2.7、幀結束
與CAN一樣,CAN FD的幀結尾也為連續7位的隱性位。
3一幀CAN FD報文位數
根據CAN FD幀結構組成,可以算出一幀CAN FD報文位數:
CAN FD報文位數=幀起始(1位)+仲裁段(13/32位)+控制段(8位)+數據段(0~512位)+CRC段(28/33位)+ACK段(2位)+幀結束(7位)
影響報文位數主要為仲裁段(幀ID長度)和數據段(CRC段受數據段長度影響)。通過幀類型、幀長度組合出不同情況報文位數:
標準幀,數據0字節
幀起始(1位)+仲裁段(13位)+控制段(8位)+數據段(0位)+CRC段(28位)+ACK段(2位)+幀結束(7位)=59位
標準幀,數據64字節
幀起始(1位)+仲裁段(13位)+控制段(8位)+數據段(512位)+CRC段(33位)+ACK段(2位)+幀結束(7位)=576位
擴展幀,數據0字節
幀起始(1位)+仲裁段(32位)+控制段(8位)+數據段(0位)+CRC段(28位)+ACK段(2位)+幀結束(7位)=78位
擴展幀,數據64字節
幀起始(1位)+仲裁段(13位)+控制段(8位)+數據段(512位)+CRC段(33位)+ACK段(2位)+幀結束(7位)=590位
4精品專欄仲裁域和數據域位數
由于CANFD采用了雙波特率形式:標準波特率(也稱仲裁域波特率)和數據域波特率,所以幀結構中不同段采用的波特率也不同。
仲裁域波特率所占位數幀起始(1位)+仲裁段(13位)+控制段的EDL、r0、BRS(3位)+ACK段(2位)+幀結束(7位)
數據域波特率所占位數控制段的ESI、DLC(5位)+數據段(0~512位)+CRC段(28/33位)
主要說明的是,BRS位和CRC界定符位均同時使用了兩個波特率:
BRS位:由**仲裁域波特率*仲裁域采樣點+數據域波特率*(1 -仲裁域采樣點)**組成;
CRC界定符:由**數據域波特率*數據域采樣點+仲裁域波特率*(1 -數據域采樣點)**組成。
此處將BRS認定采用仲裁域波特率、CRC界定符采用數據域波特率以方便計算。
5位填充
當然,上述報文位數中,還未包含填充位個數。在CAN/CAN FD協議中規定:每5個相同的位就必須填充一個相反位,該位即為填充位。
我們知道字節0x55或0xAA,其二進制分別為0101 0101或1010 1010,也就是每個位與上一位均相反,若此時ID和數據均為0x55或0xAA,則可以使填充位個數最少。
同理,字節0xFF或0x00,其二進制位1111 1111或00000000,也就是所有位均一致,若此時ID和數據均為0x00或0xFF,此時報文的填充位個數最多。
6不同類型報文位數
基于以上報文位數的計算,我們可以得出算出不同類型報文所占位數,如下表所示:
從上表可知:
當報文為CAN FD標準幀ID為0x555,數據長度為0時,報文位數最少,為59位;
當報文為CAN FD擴展幀ID為0x0,數據長度為64字節,數據全為0xFF時,報文位數最多,為703位。
7CAN FD報文時間計算
最后,可以根據波特率算出不同類型報文時間了,計算公式如下:
報文時間=仲裁域位時間*仲裁域位數+數據域位時間*數據域位數
以位數最少的CANFD報文為例,在仲裁域波特率為1Mbps(位時間1us),數據域波特率為5Mbps(位時間200ns)時,其報文時間= 1us * 26 + 33 * 200ns = 32.6us。
那么一秒鐘最多可以發送報文呢?由于報文發送成功后,需經過幀間隔(3個位)后才能發送下一幀報文,也就說仲裁段要在原來基礎上加3個位,就可以算出每秒發送多少幀了。那么上述位數最少報文的發送時間耗時= 1us *(26 + 3)+ 33 * 200ns = 35.6us,也就是1秒鐘最多可以發送1000000us / 35.6us = 28089幀報文。也就是說,1M/5M波特率下,發送CAN FD標準加速幀,最多可以發送28089幀。
下面我們給出一些常用波特率下,不同類型報文每秒最多可以發送的CANFD報文幀數(下表中報文BRS位為1,ESI位為0),供大家參考。
審核編輯:湯梓紅
-
總線技術
+關注
關注
3文章
80瀏覽量
40763 -
通信協議
+關注
關注
28文章
879瀏覽量
40297 -
CAN
+關注
關注
57文章
2744瀏覽量
463621 -
網絡
+關注
關注
14文章
7553瀏覽量
88731 -
ecu
+關注
關注
14文章
886瀏覽量
54485
原文標題:CAN FD網絡中每秒最多可以發送多少幀報文?
文章出處:【微信號:美男子玩編程,微信公眾號:美男子玩編程】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論