<sub id="bpntt"></sub><address id="bpntt"><dfn id="bpntt"></dfn></address>
    <form id="bpntt"><listing id="bpntt"></listing></form>
    <address id="bpntt"><listing id="bpntt"></listing></address>

    <sub id="bpntt"><var id="bpntt"><output id="bpntt"></output></var></sub>

    <address id="bpntt"><dfn id="bpntt"><mark id="bpntt"></mark></dfn></address>

        <address id="bpntt"><dfn id="bpntt"></dfn></address>

          <form id="bpntt"></form>

        <address id="bpntt"><dfn id="bpntt"><ins id="bpntt"></ins></dfn></address>
          <thead id="bpntt"><var id="bpntt"><output id="bpntt"></output></var></thead>
          <address id="bpntt"><dfn id="bpntt"></dfn></address>

          <sub id="bpntt"><dfn id="bpntt"><ins id="bpntt"></ins></dfn></sub>

            空燃比分析儀,horiba尾氣分析儀,CAN總線分析儀,CAN數據記錄儀

            廣州智維電子科技有限公司

            Guangzhou Triv Electronic Technologies Co.LTD

            技術服務
            SUPPORT

            目前位置: 首頁 > 技術服務 > 技術資訊

            2022-01-07

            深度解析CAN FD與傳統CAN的差異

            作者:admin    點擊:58

            隨著汽車電子、工業自動化的蓬勃發展,CAN總線上的設備數量、數據量都大大增加,給CAN總線帶來了極大的挑戰。為滿足更高的帶寬及數據吞吐量,CAN FD(CAN with Flexible Data-Rate)誕生了。那究竟CAN FD與傳統CAN的區別是什么?在數據傳輸和實時性能方面又有什么不同?

            一般從使用傳統CAN轉換到CAN FD會有以下3個原因:

            01

            CAN FD提高位速率的同時提供更短的CAN幀 

            - 延遲時間更短.

            - 更好的實時性能

            - 更高的帶寬

            02

            CAN FD可以在CAN幀中容納從8到64字節更多的數據

            - 相對更少的系統開銷 = 更好的數據吞吐量 

            - 發送較大數據對象時,軟件更簡單高效 

            03

            CAN FD具有更高性能的CRC算法

            - 降低未檢測到錯誤的風險

            由于CAN FD是在CAN總線的數據量負荷逐漸達到極限后的產物,本文旨在對比CAN FD與傳統CAN的同時詳細介紹CAN FD。


            圖 1 傳統 CAN 幀(上圖)和 CAN FD 幀(下圖)比較。兩種幀都是單字節數據,而且在此例中, CAN FD 幀沒有提高位速率??梢钥闯?,兩種幀從幀起始(SOF)位到整個 11 個仲裁位都相同。仲裁之后,傳統 CAN(標記為 A)中是遠程傳輸請求位(RTR 位),CAN FD 幀中是遠程請求替換位(RRS 位)。對于數據幀,該位在這兩種幀格式中始終為顯性(0)。通常定義為邏輯 0 和 0 伏信號的顯性位由底部較粗的黑線表示(標記為 B)。  

            遠程傳輸請求位(RTR 位)之后的位是顯性標識符擴展位(IDE 位),表示該幀是使用 11 位仲裁的基本幀格式。注意,本文將不涉及使用 29 位仲裁的 EF 擴展幀格式(EFEFF) 。

            IDE 位之后是 r0 位(保留位),其在傳統 CAN 幀格式中始終為顯性。在 CAN FD 幀格式中,該位為隱性(見 C),指示該幀不是傳統 CAN 幀,而是保留格式的 CAN 幀,現在稱其為 CAN FD(CAN Flexible Data-rate)。換句話說,該位指示 CAN 幀是傳統 CAN 幀還是 CAN FD 幀。自 ISO11898-1 標準發布以來,該位被稱為 FDF 位(靈活數據格式位),代替在 ISO11898-1 標準先前版本中被稱為 r0 位的名稱。在任何先前文檔或數據表中見到對 r0 位的引用,它與 2015 年發布的 ISO11898-1 版中的 FDF 位是相同的。


            圖 1 傳統 CAN 和 CAN FD 幀之比較


            FDF 位/r0 位(從現在開始我們將其稱為 FDF 位)之后是 FD 格式的保留位(res)和傳統 CAN 格式的數據長度碼位(DLC)。換句話說,按照以前的 ISO11898-1 標準所有產生的傳統 CAN 控制器都將錯誤地解讀 CAN FD 幀,從而導致傳統 CAN 控制器的錯誤幀。在循環冗余檢查(CRC)定界符(圖 1 中標記為 D)之后,傳統 CAN 和 CAN Fd 在其位模式方面是一致的。換句話說,在下一幀開始之前,傳統格式和 FD 格式使用相同的結束模式。

            所有 CAN FD 控制器都可以處理傳統 CAN 幀和 CAN FD 幀的混合。這意味著在現有系統中開始使用 CAN FD 控制器以及僅使用傳統 CAN 格式的傳統 CAN 控制器是可行的。當所有老的傳統 CAN 控制器都被 CAN FD 控制器替換時,可以將傳統 CAN 幀與 CAN FD 幀混合使用,或者僅使用兩種類型之一。 

            在 CAN FD 幀中的 FDF 位之后是保留位。將此位設置為隱性指示未來協議,與 FDF 位指示從傳統 CAN 轉換到 CAN FD 格式的方式相同。未來協議尚未定義。值得注意的是,傳統 CAN 格式的 r0/FDF 位用于指示 CAN FD 格式之前耗費了 25 年時間。

            在保留位之后是 BRS 位(位速率轉換)。這個額外的位允許 CAN FD 幀以兩種不同的格式發送。如果 BRS 位為顯性被發送,則所有位將以與圖 1 所示的仲裁中所使用的相同的位速率發送。如果BRS 位為隱性,則在此位后幀格式將使用較高的位速率,直到并包括 CRC 定界符。

            BRS 位之后是 ESI 位(錯誤狀態指示器),通常顯性發送為主。如果 CAN FD 幀發送節點變為錯誤-被動,則該位將被隱性發送,指示發送方節點存在重要的通信問題。目前尚不清楚該位如何在更廣泛的應用中使用,但是它已經被汽車制造商根據所需進行了采納。 

            在這 3 個新位(保留位,BRS 位和 ESI 位)之后是 4 個 DLC 位,指示 CAN 幀中的數據字節數。表 1 顯示了這 4 個位如何用于指示 CAN 幀中的數據字節數。傳統 CAN 幀最多可容納 8 個字節的數據。從表中可以看出,超出 8 個字節可以發送 DLC 碼,但只有 8 字節的數據將被放置在發送的 CAN 幀中。仔細觀察表格你會發現 9 到 15 的 DLC 在 CAN FD 格式中有所差異。9 到 63 的任何數量的字節需 6 位 DLC,并且到 64 字節將需 7 位 DLC。折中方案是保持 4 位 DLC,并限制 CAN FD 幀(12, 16, 20, 24, 38, 48 和 64)中的字節長度數。


            DLC 位后的數據(圖 1 顯示一個數據字節的 CAN 幀)。該數據前和后的位是固定長度的任意數量數據字節。本例中要傳輸一個字節的數據,傳統格式需 55 位,CAN FD 格式需 70 位。在最差的情況下,也可以在幀中包含多個填充位。如果幀在同一級別的行中超過 5 位,則協議將在幀中添加一個額外的位,具有反相極性,以確??梢允褂眉墑e更改來重新同步采樣點。這個添加和除去額外的位用于重新同步的過程稱為填充,并且這些位在 CAN 協議中被標記為填充位。通過在每個 CAN 幀中打包更多的數據來提高數據傳輸效率,這可以從表 1 的最后兩列看出。效率方程式假定在開銷中最差情況下的填充位數。由于其較低的開銷,傳統 CAN 與 CAN FD 相比效率略高。通過將 CAN FD 幀中的字節數從 8 字節增加到 64 字節,可以將效率從 50%增加到88%。


            在表中,還包括以不同幀格式使用的 CRC 碼。傳統 CAN 格式對于所有幀類型使用 15 位 CRC 編碼,因為所有幀具有相似的長度。CAN FD 幀更復雜一些,因為 64 字節幀比 8 字節幀要長 8 倍。為了解決這個問題,在 CAN FD 幀中使用兩種不同的 CRC 長度:如果幀保持 16 字節或更少,則使用 17 位的 CRC-17;且如果 CAN 幀保持 20 字節或更多,則使用具有 21 位的 CRC-21。

            它是具有 2 個額外位的 CRC 加上填充計數器中的 4 位和固定填充位,這就使得 CAN FD 幀比傳統 CAN幀更長。有人會說這個比較不完全公平,因為傳統CAN 幀在CRC段可以有多達3個填充位,在控制段還可以有 3 個位。

            CAN FD 幀的 CRC 段中的額外位為數據內容提供了更好的保護,系統高安全性是從傳統 CAN 轉到CAN FD 的充分理由。

            CAN 幀中有超過 8 個字節的數據,由于提高了效率,數據吞吐量將會增加,這是從傳統 CAN 轉到CAN FD 的另一個原因。


            重要的是要記住,盡管使用更長的 CAN 幀的效率確實有所提高,但 CAN 幀和每秒幀數更少,這增加了通信中的延遲時間并降低了實時性能。為了減少此問題并增加數據吞吐量,可以將 CAN FD 幀中的位速率提高到傳統 CAN 以上的可能性。

            迄今為止對 CAN FD 的描述是在整個 CAN 幀中具有相同的位速率。如上所述,隱性 BRS 位將要求在幀的數據部分中切換到較高的位速率。

            在圖 2 中,添加了第 3 個 CAN 幀。該第 3 幀是具有與中間 CAN FD 幀相同內容的 CAN FD 幀,但是在本例中,該幀以中間的 CAN FD 幀的數據速率的兩倍發送幀。


            圖 2 CAN FD 幀不含/含有提高 2 倍的數據速率

            因為它具有相同的內容,所以你將獲得相同的 DLC 和數據,但是當 CAN FD 以更高的位速率發送時,BRS 位將被隱性發送(見 E)。BRS 位包含在 CRC 計算中,即使 CAN-ID,DLC 和數據相同,也會產生兩個不同的 CRC 內容。

            從圖 2 可以看出,以較高位速率發送的第一個位是 ESI 位,后面是 DLC,數據字節和 CRC 位。以較高位速率發送的最后一位是 CRC 定界符。由此可以理解,較高的位速率不僅適用于 CAN Fd 幀的數據段,而且也適用于周圍的位。

            圖 3 與圖 2 相同,除了先前描述的幀下面的一個新幀。這個新幀與所有其他幀具有相同的內容,但位速率是仲裁位速率的八倍。與具有不變位速率或雙位速率的 CAN FD 幀相比,變化相對較大。

            可以看出,不僅數據的單字節獲得較高的位速率,而且幀的 DLC 和 CRC 部分也一樣,其總共有大約 40 位。

            圖 4 顯示 3 個 CAN 幀,頂部為 8 個字節的傳統 CAN 幀。中間是一個具有 64 字節的 CAN FD 幀,底部的 CAN 幀是相同的 CAN FD 幀內容,但是位速率增加(速度快八倍)。


             圖 3 在圖 2 的基礎上多了位速率增加 8 倍的 CAN FD 幀

            更多的數據將使 CAN 幀傳送時間更長,這將阻止其它高優先級 CAN 幀開始發送。為了保持實時性能,需要增加位速率以減少 CAN 幀的長度,并且減少 CAN 幀占用通信線路的時間以及防止其它高優先級幀訪問通信。

            總之,具有高位速率的 CAN FD 將增加實時性能,因為較高的位速率使得 CAN 幀在傳送時間上更短,從而減少通信中的延遲。通過在每個幀中傳送更多數據,可以增加數據吞吐量,但是如果不結合使用較高的位速率,這將降低實時性能。在許多情況下,編程中會使用 64 字節長的 CAN 幀,這通常在系統暫停且沒有實時控制運行時完成。即使沒有實時需求,使用更高的位速率來提高數據吞吐量仍然有利,并縮短下載時間。

            返回列表

            上一篇:沒有了
            易卓彩票