tft每日頭條

 > 生活

 > can高和can低怎麼測

can高和can低怎麼測

生活 更新时间:2024-10-01 17:54:44

CAN-FD是CAN withFlexible Data-Rate的簡稱,從名稱可以看出,CAN-FD的數據速率是可變的。CAN-FD繼承了CAN2.0的主要特性,物理層改動較小,仍然具備CAN所擁有的雙絞線串行通信、非破壞性仲裁等機制。在CAN2.0中,CAN幀的判決域和數據域的波特率是相同且固定的,最高為1M。但是CAN-FD幀的判決域和數據域的波特率不相同,前者仍然是最高為1M,但是後者可以達到8M。在CAN2.0中,一個CAN幀的數據域最長為8個字節,但是這一數字在CAN-FD中提高到了64。下圖簡單展示了CAN-FD相對于CAN的優勢。比如,在CAN-FD數據域波特率 = 8M,CAN數據域波特率 = 1M的情況下,同樣在數據幀中承載8個字節,CAN-FD數據域時長僅為CAN數據域時長的八分之一;在數據域時長相同的情況下,CAN-FD數據域中承載的字節數量是CAN數據域的8倍。

can高和can低怎麼測(一文讀懂CANFD)1

一個CAN-FD幀的數據域中可能存在的字節數量為1-8, 12, 16, 20, 24, 32, 48 ,64。數據長度由幀格式中的DLC字段決定。在DLC從0到8時,DL(數據長度)值也是從0到8逐漸加1增長。但是對于DLC大于8的情況,CAN将所有DL都當作8處理,CAN-FD的DL與DLC的對照關系如下表所示。

can高和can低怎麼測(一文讀懂CANFD)2

DLC與DL的對照表

下圖展示了CAN與CAN-FD幀上存在的一些不同。

can高和can低怎麼測(一文讀懂CANFD)3

與CAN相比,CAN-FD的幀中多出了以下3個字段。

FDF(FD FormatIndicator):Dominant (0) = CAN Frame, Recessive (1) = CAN FD Frame;

BRS(Bit RateSwitch):Dominant (0) = 數據域速率不變,與判決域速率相同;Recessive (1) = 數據域速率提升;

ESI(Error StateIndicator):Dominant (0) = CAN FD 節點處于主動報錯狀态, Recessive(1)= CAN FD節點處于被動報錯狀态。

當BRS位為隐性時,從ESI位開始一直到CRC域結束,都采用變化後的速率。

值得注意的是,CANFD 節點可以正常收發傳統CAN 節點報文,但是傳統 CAN 節點不能正常收發 CANFD 節點的報文。

在《基于CAN總線實現的UDS診斷》一文中提到,基于CAN總線的診斷傳輸層總共定義了4種幀,即SingleFrame、FirstFrame、ConsecutiveFrame、FlowControl。基于CAN-FD總線的診斷傳輸層也使用這4種幀,但不同之處在于,因為每幀承載的數據量更大,所以SingleFrame和FirstFrame有兩種情況,下圖展示了這兩種情況。

can高和can低怎麼測(一文讀懂CANFD)4

在CAN-FD中診斷通信傳輸層的SingleFrame和FirstFrame的變化

因為CAN-FD一幀可以承載的字節數最大為64,所以傳統CAN中用4個bit來表示SF_DL就不夠用了,當我們構造的單幀長度大于8個字節時,CAN-FD使用Byte1來指示SF_DL。同理,當一個需要分包的數據過大,導緻FF_DL需要大于4095時,那麼在傳統CAN中用于表示FF_DL的12個bit就不夠了,在這種情況下FirstFrame的格式要根據上圖發生變化。

下圖展示了針對不同SF_DL應該選擇的DLC和DL。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved