當(dāng)前位置:首頁 > 學(xué)習(xí)資源 > 講師博文 > CAN FD通信協(xié)議
CAN FD通信協(xié)議
時間:2024-09-24 來源:華清遠(yuǎn)見
一、什么是CAN FD
CANFD(CAN Flexible Data-Rate)是CAN通信協(xié)議的一種變種,它支持高速數(shù)據(jù)傳輸,同時保持低成本、簡單的特性。CANFD使用高速位速率傳輸數(shù)據(jù),允許更高的數(shù)據(jù)吞吐量,并且通常與現(xiàn)有的CAN硬件兼容。
在CANFD網(wǎng)絡(luò)中,節(jié)點(diǎn)可以以不同的位速率(Flexible Data-Rate, FDR)同時發(fā)送數(shù)據(jù)。FDR可以是5Kbps到1Mbps之間的任何值,并且可以在通信過程中動態(tài)改變。
在《 通信總線協(xié)議之CAN總線協(xié)議詳解 》中介紹了CAN 2.0 A/B總線協(xié)議,但是隨著總線技術(shù)在汽車電子領(lǐng)域越來越廣泛的應(yīng)用,特別是自動駕駛技術(shù)的迅速發(fā)展,汽車電子對總線寬度和數(shù)據(jù)傳輸速率的要求也越來越高,傳統(tǒng)CAN(1MBit/s,8Bytes Payload)已難以滿足日益增加的需求。
因此,一種能夠與CAN 2.0 A/B兼容,但通信速率更高,有效載荷更高的CAN總線 :CAN-FD總線協(xié)議應(yīng)運(yùn)而生,在2012年,Bosch發(fā)布了新的CAN FD標(biāo)準(zhǔn) (CAN with Flexible Data Rate)
CAN FD繼承了CAN的絕大多數(shù)特性,如同樣的物理層,雙線串行通信協(xié)議,基于非破壞性仲裁技術(shù),分布式實(shí)時控制,可靠的錯誤處理和檢測機(jī)制等,同時CAN FD彌補(bǔ)了CAN在總線帶寬和數(shù)據(jù)長度方面的不足。
二、 CAN FD的特點(diǎn)
CAN FD傳輸速率是可變的:從控制場中的BRS位到ACK場之前(含CRC分界符)為可變速率,最高速率可達(dá)到8Mbps
CAN FD數(shù)據(jù)長度不同:CAN FD每個數(shù)據(jù)幀最多支持64個數(shù)據(jù)字節(jié),而傳統(tǒng)CAN最多支持8個數(shù)據(jù)字節(jié),這減少了協(xié)議開銷,并提高了協(xié)議效率。
CAN FD幀格式不同:CanFD新增了FDF、BRS、ESI位
FDF 位(Flexible Data Rate Format):原 CAN 數(shù)據(jù)幀中的保留位 r,用來區(qū)別是 CAN 報(bào)文還是 CAN-FD 報(bào)文,F(xiàn)DF 位常為隱性 1,表示 CAN FD 報(bào)文;
BRS 位( Bit Rate Switch):表示位速率轉(zhuǎn)換,當(dāng) BRS 為顯性位 0時,數(shù)據(jù)段的位速率與仲裁段的位速率一致(恒定速率),當(dāng) BRS 為隱性位 1時速率可變(即 BSR 到 CRC 使用轉(zhuǎn)換速率傳輸);
ESI 位(Error State Indicator):發(fā)送節(jié)點(diǎn)錯誤狀態(tài)指示,主動錯誤時發(fā)送顯性位 0 ,被動錯誤時發(fā)送隱性位 1 。
三. CAN-FD總線協(xié)議
1、CAN FD節(jié)點(diǎn)可以正常收、發(fā)CAN報(bào)文,但CAN節(jié)點(diǎn)不能正確收、發(fā)CAN FD報(bào)文,因?yàn)槠鋷袷讲灰恢隆?/p>
與CAN一樣,CAN FD一共具有:幀起始,仲裁段,控制段,數(shù)據(jù)段,CRC段,ACK段和幀結(jié)束,7部分組成。
2、 幀起始
CAN FD與CAN使用相同的SOF標(biāo)志位來標(biāo)志報(bào)文的起始幀起始由1個顯性位構(gòu)成,標(biāo)志著報(bào)文的開始,并在總線上起著同步的作用。

3、 仲裁段
與傳統(tǒng)CAN相比,CAN FD取消了遠(yuǎn)程幀,用RRS位替換了RTR位,為常顯性;
RTR(Remote Transmission Request Bit):遠(yuǎn)程發(fā)送請求位,RTR位在數(shù)據(jù)幀里必須是顯性,而在遠(yuǎn)程幀里為隱性
RRS(Remote Request Substitution):遠(yuǎn)程請求替換位,即傳統(tǒng)CAN中的RTR位,CAN FD中為常顯性
IDE位仍為標(biāo)準(zhǔn)幀和擴(kuò)展幀標(biāo)志位,若標(biāo)準(zhǔn)幀與擴(kuò)展幀具有相同的前 11 位 ID,那么標(biāo)準(zhǔn)幀將會由于 IDE 位為 0,優(yōu)先獲得總線;

4、 控制段
控制段中CANFD與CAN有著相同的IDE,res,DLC位;同時增加了三個控制bit位,F(xiàn)DF、BRS、ESI;
FDF(Flexible Data Rate Format):原CAN數(shù)據(jù)幀中的保留位r,F(xiàn)DF常為隱性,表示CAN FD 報(bào)文;
BRS(Bit Rate Switch):位速率轉(zhuǎn)換開關(guān),當(dāng)BRS為顯性位時數(shù)據(jù)段的位速率與仲裁段的位速率一致,當(dāng)BRS為隱性位時數(shù)據(jù)段的位速率高于仲裁段的位速率;
ESI(Error State Indicator):錯誤狀態(tài)指示,主動錯誤時發(fā)送顯性位,被動錯誤時發(fā)送隱性位;

DLC同樣是4bit表示數(shù)據(jù)段的長度,對應(yīng)的關(guān)系如下:

5、 數(shù)據(jù)段
數(shù)據(jù)段即為傳輸?shù)木唧w數(shù)據(jù)內(nèi)容
CAN FD不僅能支持傳統(tǒng)的0-8字節(jié)報(bào)文,同時可以支持12, 16, 20, 24, 32, 48, 64字節(jié)

6、 CRC段
為了避免位填充對CRC的影響,CAN FD在CRC場中增加了stuff count記錄填充位的個數(shù)對應(yīng)8的模,并用格雷碼表示,還增加了奇偶校驗(yàn)位;且在CRC中加入了填充位FSB(fixed stuff-bit)

Stuff Count由以下兩個元素組成:
格雷碼計(jì)算:CRC區(qū)域之前的填充位數(shù)除以8,得到的余數(shù)(Stuff bit count modulo 8)進(jìn)行格雷碼計(jì)算得到的值(Bit 0-2)
奇偶校驗(yàn)(parity):通過格雷碼計(jì)算后的值的奇偶校驗(yàn)(偶校驗(yàn))
CAN FD對CRC算法進(jìn)行了改進(jìn),CRC對填充位也加入了計(jì)算;在校驗(yàn)部分為避免有連續(xù)位超過6個,就確定在第一位以及以后每4位添加一個填充位加以分割,這個填充位的值是上一位的反碼,作為格式檢查,如果填充位不是上一位的反碼,就作出錯處理。
CAN的CRC的位數(shù)是15位,而在CAN FD中,CRC場擴(kuò)展到了21位,如下:
當(dāng)傳輸數(shù)據(jù)為0~8字節(jié)時:CRC 15位
當(dāng)傳輸數(shù)據(jù)為9~16字節(jié)時:CRC 17位
當(dāng)傳輸數(shù)據(jù)為17~64個字節(jié)時:CRC 21位
7、 ACK段
與CAN相比,在CAN FD中最多可接受2個位時間有效的ACK,允許1個額外的位時間來補(bǔ)償收發(fā)器相移和傳播延遲
由從高速的數(shù)據(jù)場到慢速的仲裁場時,時鐘切換會引起收發(fā)器相移和總線傳播延遲;為了補(bǔ)償其相移和延遲,相比傳統(tǒng)的CAN,在CAN FD中多加了這額外的1位時間
在ACK之后,發(fā)送ACK界定符,這是一個表示ACK結(jié)束的分隔符,用1位隱性位表示

8、 幀結(jié)束
與CAN一樣,CAN FD的幀結(jié)尾也為連續(xù)7位的隱性位

四. 如何從傳統(tǒng)的CAN升級到CAN FD
盡管 CANFD 繼承了絕大部分傳統(tǒng) CAN 的特性,但是從傳統(tǒng) CAN 到 CANFD 的升級, 仍需要做很多的工作,主要包括:
在硬件和工具方面,要使用 CANFD,首先要選取支持 CANFD 的 CAN 控制器和收發(fā)器,還要選取新的網(wǎng)絡(luò)調(diào)試和監(jiān)測工具;
在網(wǎng)絡(luò)兼容性方面,對于傳統(tǒng) CAN 網(wǎng)段的部分節(jié)點(diǎn)需要升級到 CANFD 的情況要特別注意,由于幀格式不一致的原因,CANFD 節(jié)點(diǎn)可以正常收發(fā)傳統(tǒng) CAN 節(jié)點(diǎn)報(bào)文,但是傳統(tǒng) CAN 節(jié)點(diǎn)不能正常收發(fā) CANFD 節(jié)點(diǎn)的報(bào)文;
五、CANFD與CAN的主要區(qū)別

六、CANFD的應(yīng)用優(yōu)勢
更高的數(shù)據(jù)傳輸速率:滿足現(xiàn)代汽車電子系統(tǒng)對高速數(shù)據(jù)傳輸?shù)男枨蟆?/p>
更大的數(shù)據(jù)負(fù)載能力:支持單個數(shù)據(jù)幀內(nèi)傳輸更多數(shù)據(jù),減少數(shù)據(jù)分拆傳輸?shù)男枨蟆?/p>
保持實(shí)時性和可靠性:繼承了CAN協(xié)議的實(shí)時性和可靠性優(yōu)勢。
七、未來發(fā)展趨勢
隨著汽車電子系統(tǒng)的不斷發(fā)展,CANFD協(xié)議將在未來繼續(xù)發(fā)揮重要作用。同時,隨著技術(shù)的不斷進(jìn)步,可能還會出現(xiàn)更加先進(jìn)的通信協(xié)議來滿足更高的數(shù)據(jù)傳輸需求。然而,CANFD協(xié)議作為當(dāng)前汽車電子系統(tǒng)中廣泛應(yīng)用的通信協(xié)議之一,其地位在短期內(nèi)難以被替代。
如何利用機(jī)器學(xué)習(xí)構(gòu)建個性化推薦系統(tǒng)
嵌入式系統(tǒng)從上電到操作系統(tǒng)運(yùn)行的完整啟動流程
如何在不同工作場景下優(yōu)化嵌入式系統(tǒng)的電源消耗
硬件抽象層(HAL)的設(shè)計(jì)如何提高代碼的可移植性
批量歸一化在深度學(xué)習(xí)訓(xùn)練中的作用和實(shí)現(xiàn)方法
物聯(lián)網(wǎng)項(xiàng)目中設(shè)計(jì)嵌入式系統(tǒng)時的關(guān)鍵技術(shù)和考慮因素
通過自然語言處理技術(shù)理解文本的深層含義
如何基于RISC-V架構(gòu)設(shè)計(jì)高效能的嵌入式系統(tǒng)
LSTM和GRU在時間序列預(yù)測中的應(yīng)用
JTAG和SWD的調(diào)試技術(shù)及應(yīng)用
