簡單易懂CAN FD 總線協議深度解析

從事汽車ECU開發的小夥伴一定要看看這篇文章!

作者:maggie2014

1. CAN-FD協議特性

CAN 總線通信也漸漸顯現出來一些不足,主要有以下幾方面:

(1)最高數據傳輸速率限制為1 Mbit/s,車載領域實際使用速率最高為500 Kbit/s,無法滿足越來越高的數據吞吐量需求;

(2)每幀報文有效數據場為8 字節,僅占整幀報文信息不足50%;

(3)性能上難以應對Flexray、Ethernet 等新型車載總線的威脅。

市場對提升CAN 總線性能的強烈需求使CAN-FD(Flexible Data rate)應運而生,CAN-FD發揚瞭CAN 的優點,並彌補瞭CAN 的不足,其主要特性如下:

(1)采用與CAN 通信相同的事件觸發模式,軟件容易開發和移植;

(2)最高數據傳輸速率達5Mbit/s,更好地滿足要求高實時性高數據傳輸速率的應用;

(3)每幀報文有效數據場為64 字節,占整幀報文信息超過70%;

(4)相比Flexray、Ethernet 等新興總線成本更低。

CAN與CAN-FD性能對比

2. CAN-FD 的技術特點及應用領域

CAN-FD 通過改變幀結構和提高位速率等方法成功的把數據傳輸速率提高到瞭5Mbit/s,其基本原理如圖2 所示。

CAN-FD 傳輸的基本原理

3. CAN-FD 的主要應用領域

(1)EOL(End-Of-Line)程序燒寫:CAN 數據傳輸速率為500 Kbit/s;CAN-FD 數據傳輸速率為5 Mbit/s,約10 倍於CAN 傳輸速率。

(2)動力、底盤和安全系統,以及身份認證:數據場支持長達64 字節,避免數據非必要的拆分。

(3)網關:提高網絡數據傳輸速率達5 Mbit/s,提高瞭有效數據負載率。

4. CAN-FD 的設備、工具廠商

在車載應用領域,目前已有多傢設備、工具廠商支持CAN-FD 總線協議,如維克多(Vector)、羅德與施瓦茨(R&S)和周立功(ZLG)等。國外廠商以維克多為代表,其在工具體系的完整性方面更為領先。Vector 的工具體系完整的支持CAN-FD 的開發、測試、網絡分析等全部功能。另外,其GL 系列總線記錄儀也將在不遠的將來支持CAN-FD 協議。

國內廠商以周立功為代表,其最新推出的四通道ZDS2024 示波器可以很好的支持CAN-FD 協議,其關鍵特性包括:支持4 通道、模擬帶寬高達200MHz、采樣率每通道均為1GSa/s、21 種協議觸發及解碼、51 種參數測量及24 種參數同時測量統計。

5. 位填充法

與CAN一樣,填充位插入到SOF和數據場的末尾之間。插入的填充位數值是經過格雷碼計算轉換後的值,並且用奇偶校驗位保護(Stuff Count)。

在CRC校驗場中,填充位被放置在固定的位位置,這稱為固定填充位(Fixed Stuff Bit FSB)。固定填充位的值是上一位的反碼。

CRC校驗場的第一位

每間隔4位添加一個固定填充位

6. CAN-FD幀類型

CAN-FD僅定義瞭數據幀,與傳統CAN相比,取消瞭遠程幀的支持。原因是在沒有數據的情況下,遠程幀沒有必要改變數據段的比特率。

與CAN一樣,數據幀分為“標準幀(11位ID)”和“擴展幀(29位ID)”格式。從BRS(Bit Rate Switch)到CRC分界符之間為可變速率。橙色表示與CAN的傳輸速度相同,藍色表示可加速傳輸速度。

7. CRC-stuff count

CAN FD還在安全性上有瞭提高。為瞭避免位填充對CRC的影響,CAN FD在CRC場中增加瞭stuff count記錄填充位的個數對應8的模,並用Grey Code表示,還增加瞭奇偶校驗位。FSB(fixed stuff-bit)固定為前一位的補碼。

Stuff Count由以下兩個元素組成:

格雷碼計算:CRC區域之前的填充位數除以8,得到的餘數(Stuff bit count modulo 8)進行格雷碼計算得到的值(Bit0-2)

奇偶校驗:通過格雷碼計算後的值的奇偶校驗(偶校驗)

8. CRC

隨著數據場的擴大,為瞭保證信息發送的質量,CAN FD的CRC計算不僅要包括數據段的位,還包括來自SOF的Stuff Count和填充位。通過比較CRC的計算結果,可以判斷接收節點是否能夠正常接收。

在CAN中,CRC的位數是15位,而在CAN FD中,CRC場擴展到瞭21位,詳見以下:

當傳輸數據為16字節或更少時:CRC 17位

當傳輸數據超過16個字節時:CRC 21位

9. CRC界定符

CRC界定符是表示CRC校驗場的結束,是一個1位的常態隱性位。但是,在CAN FD中,考慮到節點之間的位的距離,在接收端允許最大2位時間。CAN FD幀的數據場(可變速段)是CRC界定符的第一位采樣點。

10. ACK應答場

CAN FD的ACK應答場包括應答間隙和應答界定符,其構成和CAN是相同的。不同的是,在CAN中,應答場的長度是1位,但在CAN FD,接收節點利用2位時間將其識別為有效應答。

由從高速的數據場到慢速的仲裁場時,時鐘切換會引起收發器相移和總線傳播延遲。為瞭補償其相移和延遲,相比傳統的CAN,在CAN FD中多加瞭這額外的1位時間。在ACK之後,發送ACK界定符。這是一個表示ACK結束的分隔符,為是1位隱性位。

11. 幀結尾

每一個數據幀均由一標志序列界定,這個標志序列由7個“隱性”位組成。CAN FD的幀結尾與CAN相同。

有關CRC的ISO CAN FD、non-ISO CAN FD兼容性問題

當前CAN FD協議有兩個版本,為提高故障(錯誤)檢測能力,新版本特別引入瞭一個3位填充位計數器和一個額外的奇偶校驗位。此外,CRC計算方法也發生瞭變化。這些改進使最新的CAN FD協議與博世(BOSCH)開發的原始CAN FD協議不兼容。負責ISO的工作組已完成其文件,並已將其提交給DIS(國際標準草案)在進行投票程序。

為瞭避免誤解,CiA建議使用術語“ISO CAN FD”和“non-ISO CAN FD”。所有符合ISO 11898-2:2015的產品都應稱為“ISO CAN FD”。執行博世(BOSCH)原始CAN FD協議的產品應命名為“non-ISO CAN FD”,在這個過度階段的產品主要目的是用於前期評估和開發,將來所有產品都將符合ISO標準。

請註意,早前一些供應商提供的組件或者工具是針對non-ISO CAN FD協議的,包括目前在售的部分CAN FD產品,CiA建議僅使用ISO CAN FD產品進行設計和開發,不過你可繼續使用non-ISO CAN FD做評估和前期開發,因為協議的改變對於用戶界面是不可見,但註意的是不能同一個網絡混用non-ISO CAN FD和ISO CAN FD接口設備,這樣會造成CAN總線錯誤無法完成發送和接收,如果僅僅是發送或接收傳統的CAN幀將不會受到任何影響,幸運的是部分設備供應商提供的組件或者工具允許用戶選擇支持ISO或者non-ISO模式,這樣能很好地在過渡時期幫助你完成工作。

12. 數據測試實例

本實例使用 Kingst LA5016 usb 邏輯分析儀檢測CAN FD數據通訊。LA5016的CAN FD解析模塊,不僅可以解析CAN FD協議,同時也兼容CAN協議解析,以下幾圖是一個完整的數據包分析截圖。從圖中可以看到,CAN FD協議可以區分CAN FD及CAN協議,CAN FD協議將協議數據分析為 ID(協議id號), ExternId(擴展id), DLC(數據長度),Data(傳輸數據), StuffCount,CRC, ACK/NAK 。

協議解析參數設置:

下圖顯示數據包的ID號為0x010, RTR:false(數據幀), DLC:0x8(8個數據),Data:0x00~0x07,CRC為0x0C5E7(17位), ACK:應答。

圓形白點:邏輯數據。

方形白點:填充位。

赞(0)