眾所周知,CAN FD是基于CAN 2.0的升級版協(xié)議,為了滿足汽車電子日益增長的高帶寬和高傳輸速率的要求,CAN FD主要升級了以下幾個(gè)方面:
1、更高的傳輸波特率
圖1 可變數(shù)據(jù)段波特率結(jié)構(gòu)
CAN FD速率包含兩個(gè)段的速率,其中仲裁段和ACK段沿用CAN2.0的規(guī)范,最高速率為1Mbit/s,中間的數(shù)據(jù)段是可以加速的,標(biāo)稱可以達(dá)到5Mbit/s,甚至更高。
2、更高效的數(shù)據(jù)段
對于汽車電子來說,對車輛動(dòng)力系統(tǒng)、底盤以及主被動(dòng)系統(tǒng)來說,加長的數(shù)據(jù)段避免了數(shù)據(jù)非必要的拆分,大大提升了CAN幀的傳輸效率。
圖2 CAN FD高效的數(shù)據(jù)段
3、更可靠的CRC校驗(yàn)和額外的控制位
在傳統(tǒng)的CAN 2.0中,由于填充規(guī)則會(huì)對CRC產(chǎn)生干擾,在CAN FD中升級了算法,將填充位加入多項(xiàng)式的運(yùn)算,主要作為格式檢查,考慮數(shù)據(jù)長度變化的區(qū)間很大,CRC也根據(jù)區(qū)間會(huì)生成兩種校驗(yàn)算法,當(dāng)幀長小于210位,使用CRC_17,當(dāng)幀長小于1023位,使用CRC_21位算法。
圖3 可靠的CRC校驗(yàn)
另外在CAN FD中利用了部分保留標(biāo)志位,新增三種控制位,包括EDL(是否是CAN FD幀)、BRS(是否可變速率)以及ESI(錯(cuò)誤狀態(tài)),豐富幀內(nèi)的有用信息。
圖4 新增控制位
接下來我們回到正題,升級后的CAN FD到底能跑多快呢?那就用一個(gè)問題開始,大家都知道CAN 2.0最高速率可以到1M,但是為什么汽車電子高速CAN只跑到500K呢?
對于CAN總線的傳輸速率來講,傳輸距離和傳輸速率是成反比的,一般來說傳輸距離(m)=(50000/波特率kbps)*0.8,如圖5所示。
圖5 傳輸距離和傳輸速率的關(guān)系
實(shí)際在總線傳輸?shù)倪^程中,只有在實(shí)際應(yīng)用環(huán)境下穩(wěn)定傳輸才是重中之重,所以1M波特率在汽車電子會(huì)很難,接下來就如何實(shí)現(xiàn)高速率的穩(wěn)定傳輸因素做以下淺析。
首先是CAN收發(fā)器,收發(fā)器的功能是將邏輯值轉(zhuǎn)換為電平值,但電平在傳輸?shù)倪^程中難免衰減,傳輸線纜本身的阻抗和容抗無法避免,尤其是首位終端電阻(基于手牽手拓?fù)洌?,主要有兩個(gè)功能:
首尾120歐姆終端電阻,保證阻抗連續(xù)性(防止電信號反射);
放電作用。
針對終端電阻放電作用,我們下面從兩個(gè)層面分析:
一、電平傳輸層面分析
圖6 CAN FD波形