眾所周知,CAN FD是基于CAN 2.0的升級(jí)版協(xié)議,為了滿足汽車電子日益增長(zhǎng)的高帶寬和高傳輸速率的要求,CAN FD主要升級(jí)了以下幾個(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ù)段
對(duì)于汽車電子來說,對(duì)車輛動(dòng)力系統(tǒng)、底盤以及主被動(dòng)系統(tǒng)來說,加長(zhǎng)的數(shù)據(jù)段避免了數(shù)據(jù)非必要的拆分,大大提升了CAN幀的傳輸效率。
圖2 CAN FD高效的數(shù)據(jù)段
3、更可靠的CRC校驗(yàn)和額外的控制位
在傳統(tǒng)的CAN 2.0中,由于填充規(guī)則會(huì)對(duì)CRC產(chǎn)生干擾,在CAN FD中升級(jí)了算法,將填充位加入多項(xiàng)式的運(yùn)算,主要作為格式檢查,考慮數(shù)據(jù)長(zhǎng)度變化的區(qū)間很大,CRC也根據(jù)區(qū)間會(huì)生成兩種校驗(yàn)算法,當(dāng)幀長(zhǎng)小于210位,使用CRC_17,當(dāng)幀長(zhǎng)小于1023位,使用CRC_21位算法。
圖3 可靠的CRC校驗(yàn)
另外在CAN FD中利用了部分保留標(biāo)志位,新增三種控制位,包括EDL(是否是CAN FD幀)、BRS(是否可變速率)以及ESI(錯(cuò)誤狀態(tài)),豐富幀內(nèi)的有用信息。
圖4 新增控制位
接下來我們回到正題,升級(jí)后的CAN FD到底能跑多快呢?那就用一個(gè)問題開始,大家都知道CAN 2.0最高速率可以到1M,但是為什么汽車電子高速CAN只跑到500K呢?
對(duì)于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ù)倪^程中難免衰減,傳輸線纜本身的阻抗和容抗無(wú)法避免,尤其是首位終端電阻(基于手牽手拓?fù)洌?,主要有兩個(gè)功能:
首尾120歐姆終端電阻,保證阻抗連續(xù)性(防止電信號(hào)反射);
放電作用。
針對(duì)終端電阻放電作用,我們下面從兩個(gè)層面分析:
一、電平傳輸層面分析
圖6 CAN FD波形
我們先來看一個(gè)CAN FD分解波形,其中是由顯隱性電平構(gòu)成的,其中上升沿是由CAN收發(fā)器芯片本身驅(qū)動(dòng)的。當(dāng)顯性電平轉(zhuǎn)變?yōu)殡[形電平的時(shí)候,需要終端電阻放電,所以下降沿是我們的終端電阻放電的造成的。
圖7 負(fù)載電阻與差分幅值的關(guān)系
如果下降沿緩慢是什么原因?qū)е拢?/strong>
1、檢查收發(fā)器外圍電路是否存在容性較大的器件(不影響電路正常工作的情況下拆除),重新測(cè)試波形是否正常;
2、檢查線纜的參數(shù),每米容抗是否在正常范圍內(nèi),正常線纜電容在40-70pF/m,容抗太大,建議更換線纜;
3、增加終端電阻放電,建議采用專業(yè)設(shè)備測(cè)試網(wǎng)絡(luò)阻抗容抗做正確匹配。
圖8 CANscope總線阻抗容抗測(cè)試
二、總線網(wǎng)絡(luò)數(shù)據(jù)能否正確傳輸層面
阻抗太大,電壓幅值壓降太大,傳輸距離大大降低?,F(xiàn)象就是在手牽手的網(wǎng)絡(luò)拓?fù)渲校?dāng)然差分幅值最好不要低于1.3V,防止在強(qiáng)干擾的環(huán)境下,導(dǎo)致收發(fā)器無(wú)法識(shí)別或誤識(shí)別總線信號(hào)。
容抗也是影響下降沿的重要因素,如果下降沿太緩慢會(huì)導(dǎo)致位寬拉長(zhǎng),導(dǎo)致收發(fā)器錯(cuò)誤識(shí)別,導(dǎo)致0/1的翻轉(zhuǎn),CAN總線是錯(cuò)誤重發(fā)的機(jī)制,會(huì)一直重發(fā),直到這一幀被正確接收。
圖9 電容對(duì)下降沿的影響
同樣的我們回到阻抗和容抗的匹配是如何影響CAN FD的傳輸速率的呢,接下來我們用實(shí)測(cè)證明:
圖10 穩(wěn)定時(shí)間140ns
前面我也提到5M數(shù)據(jù)速率時(shí),位時(shí)間是200ns,實(shí)際傳輸過程中,一位時(shí)間包含了上升沿、下降沿以及數(shù)據(jù)穩(wěn)定時(shí)間,如圖10所示,數(shù)據(jù)穩(wěn)定時(shí)間按是140ns,那其中上升沿和下降沿占了60ns,理想情況下,上升沿和下降沿完全對(duì)稱,其中上升沿時(shí)間是30ns,按照邊沿極限值12%計(jì)算,實(shí)際算出來的位時(shí)間=30/(12/100)=250ns,那么相對(duì)應(yīng)的傳輸波特率就=1/250ns=4M波特率,所以實(shí)際5M波特率也就是在測(cè)試使用,如果按照7%的邊沿時(shí)間為安全值來計(jì)算,實(shí)際的位時(shí)間=30/(7/100)約等于42ns,相對(duì)應(yīng)的傳輸波特率=1/42ns約等于2.3M,所以想要實(shí)際在工況下穩(wěn)定可靠傳輸,數(shù)據(jù)端波特率在2M左右比較合理。