CAN FD的波特率到底能跑多快?

2021-09-24 22:54:01 字數 3007 閱讀 6889

**:

摘要:canfd是基於can20的公升級版協議,為了滿足汽車電子日益增長的高頻寬和高傳輸速率的要求,canfd主要公升級了以下幾個方面……

眾所周知,can fd是基於can 2.0的公升級版協議,為了滿足汽車電子日益增長的高頻寬和高傳輸速率的要求,can fd主要公升級了以下幾個方面:

一、更高的傳輸波特率

圖 1 可變資料段波特率結構

canfd速率包含兩個段的速率,乙個是仲裁段和ack段,沿用can2.0的規範,最高速率為1mbit/s,中間的資料段是可以加速的,標稱可以達到5mbit/s,甚至更高。

二、更高效的資料段

對於汽車電子來說,對車輛動力系統、地盤以及主被動系統來說,加長的資料段避免了資料非必要的拆分,大大提公升了can幀的傳輸效率。

圖 2 can fd高效的資料段

三、更可靠的crc校驗和額外的控制位

在傳統的can 2.0中,由於填充規則會對crc產生干擾,在can fd中公升級了演算法,將填充位加入多項式的運算,主要作為格式檢查,考慮資料長度變化的區間很大,crc也根據區間會生成兩種校驗演算法,當幀長小於210位,使用crc_17,當幀長小於1023位,使用crc_21位演算法。

圖 3 可靠的crc校驗

另外在can fd中利用了部分保留標誌位,新增三種控制位,包括edl(是否是canfd幀)、brs(是否可變速率)以及esi(錯誤狀態),豐富幀內的有用資訊。

圖 4 新增控制位

接下來我們回到正題,公升級後的can fd到底能跑多快呢?直接講引數很膚淺的,我們要分析......那我們就用乙個問題開始,大家都知道can 2.0最高速率可以到1m,但是為什麼汽車電子高速can只跑到500k呢?

對於can匯流排的傳輸速率來講,傳輸距離和傳輸速率是成反比的,一般來說傳輸距離(m)=(50000/波特率kbps)*0.8,如圖 5所示。

圖5 傳輸距離和傳輸速率的關係。

那收發器和傳輸距離到底關係何在?剛才提到,收發器輸出是電平值,電平在傳輸的過程中難免衰減,線纜本身的阻抗和容抗無法避免,其次首尾終端電阻也是必要的,主要有兩個功能:

• 首尾120歐姆終端電阻,保證阻抗連續性(防止電訊號反射);

• 放電作用;

針對終端電阻放電作用,我們下面從兩個層面分析:

• 電平傳輸層面分析

圖 6 can fd波形

我們先來看乙個canfd分解波形,其中是由顯隱性電平構成的,其中上公升沿是由can收發器晶元本身驅動的。當顯性電平轉變為**電平的時候,需要終端電阻放電,所以下降沿是我們的終端電阻放電的造成的。

圖 7 負載電阻與差分幅值的關係

如果下降沿緩慢是什麼原因導致?

• 檢查收發器外圍電路是否存在容性較大的器件(不影響電路正常工作的情況下拆除),重新測試波形是否正常;

• 檢查線纜的引數,每公尺容抗是否在正常範圍內,正常線纜電容在40-70pf/m,容抗太大,建議更換線纜;

• 增加終端電阻放電,建議採用專業裝置測試網路阻抗容抗做正確匹配。

圖8 canscope匯流排阻抗容抗測試

四、匯流排網路資料能否正確傳輸層面

阻抗太大,電壓幅值壓降太大,傳輸距離大大降低。現象就是在手牽手的網路拓撲中,當然差分輔幅值最好不要低於1.3v,防止在**擾的環境下,導致收發器無法識別或誤識別匯流排訊號。

容抗也是影響下降沿的重要因素,如果下降沿太緩慢會導致位寬拉長,導致收發器錯誤識別,導致0/1的翻轉,can匯流排是錯誤重發的機制,會一直重發,直到這一幀被正確接收。 

圖 9 電容對下降沿的影響

同樣的我們回到阻抗和容抗的匹配是如何影響can fd的傳輸速率的呢,接下來我們用實測證明:

圖 10 穩定時間140ns

前面我也提到5m資料速率時,位時間是200ns,,實際傳輸過程中,一位時間包含了上公升沿、下降沿以及資料穩定時間,如圖 15所示,資料穩定時間按是140ns,那其中上公升沿和下降沿佔了60ns,理想情況下,上公升沿和下降沿完全對稱,其中上公升沿時間是30ns,按照邊沿極限值12%計算,實際算出來的位時間=30/(12/100)=250ns,那麼相對應的傳輸波特率就=1/250ns=4m波特率,所以實際5m波特率也就是在測試使用,如果按照7%的邊沿時間為安全值來計算,實際的位時間=30/(7/100)約等於42ns,相對應的傳輸波特率=1/42ns約等於2.3m,所以想要實際在工況下穩定可靠傳輸,資料端波特率在2m左右比較合理。

綜上所述,影響can fd到底能傳輸多快影響的因素非常多,也是我們大多數工程師在實際can匯流排開發的過程中會忽略的問題,如果需要can匯流排的相應的產品解決方案,隨時致電我們,期待與您的**和交流。

串列埠波特率的理解

bit就是位,也叫位元位,是計算機中最小的單位 byte是位元組,也就是b 1位元組 byte 8位 bit 既 位只有兩種形式0和1,只能表示2種狀態,而位元組是有8個位組成的。可以表示256個狀態。1byte 8 bit,1kb 1024 byte,1mb 1024 kb,1g 1024 mb,...

CAN CAN的位元率和波特率

最近打算買個邏輯分析儀 示波器是買不起的 因為想採集can訊號,所示關注了一下邏輯分析儀的取樣頻率能不能採集500kbps的can訊號,藉此機會又重新回顧了一下位元率和波特率的問題。一般在用到can的時候,都會說can的波特率是多少多少,而實際在配置微控制器,需要計算分頻的時候卻發現,計算的其實是b...

波特率和位元率之間的關係

名稱 波特率 碼元傳輸速率,碼元速率 定義單位時間內傳輸的碼元個數 脈衝個數或者訊號變化次數 單位波特 baud 1s 傳輸多少個碼元 這是乙個速度單位 備註 名稱位元率 資訊傳輸速率,資訊速率 定義單位時間內傳輸的二進位制位元數 單位位元 秒 b s 名稱 資料率 資料的傳輸速率 定義單位時間內傳...