作者:Madhura Tapse
? ? ? ?本文介紹評估控制器局域網(CAN)收發器的正確系統級測試方法。它通過展示在多CAN節點系統中從一個CAN節點到另一個CAN節點執行數據傳輸時如何避免實際的數據傳輸問題,解釋了為什么這種方法更優越。閱讀本文后,讀者將對CAN系統有更好的了解,并能夠為特定的多節點CAN系統選擇正確的CAN收發器。
CAN是一種強大的通信標準,用于允許不同的傳感器、機器或控制器相互通信。CAN接口廣泛用于工業自動化、家庭自動化和汽車,因為它更強大,可以有效地處理總線爭用。
傳統 CAN2.0 提供 8 字節有效負載,支持高達 2 Mbps 的數據速率。有時,2 Mbps的數據速率不足以滿足關鍵通信事件,因此 CAN.org 提出了一種新的通信協議CAN-FD,允許高達10 Mbps的高數據速率通信。
CAN-FD 靈活數據速率
傳統CAN和CAN-FD之間的主要區別在于靈活數據(FD)。在CAN-FD中,數據速率(即每秒傳輸的位數)比經典CAN快5×(僅數據有效載荷為10 Mbps;為了兼容性,仲裁比特率仍限制為1 Mbps)。CAN-FD 中的消息有效負載大小從 64 字節的傳統 CAN 大小增加到 8 字節。
使用CAN-FD,傳感器可以改變具有更大或更小有效載荷的數據速率。與現代工廠中的傳統CAN相比,更快的數據速度和更大的有效載荷容量帶來了許多系統級操作優勢。
CAN通信—基礎知識
CAN通信由兩個主要組件組成:(a)CAN控制器和(b)CAN收發器,如圖1所示。

圖 1。單個CAN節點。
CAN控制器處理CAN通信的數據鏈路層,而CAN收發器處理物理層。稍后讓我們簡要介紹一下CAN收發器物理。
在CAN協議中,邏輯0稱為顯性位,邏輯1稱為隱性位。由于CAN是一種差分協議,因此CANH和CANL之間的電壓差決定了發送和接收信號的邏輯電平。如果CANH-CANL電壓大于1.5 V,CAN接收器將該位識別為邏輯0。然而,如果CANH-CANL電壓小于200 mV,CAN接收器將該位識別為邏輯1。圖2顯示了CAN收發器TXD引腳上數字邏輯1和邏輯0位的連續傳輸,以及CANH和CANL引腳上的等效CAN總線電平。根據CANH和CANL電壓之間的差異,接收器在RXD引腳上環回信號。

圖 2.CAN協議物理層。
現在讓我們看一下CAN數據鏈路層,它為該比特流的受控傳輸制定了數據幀。它還有助于錯誤檢測和總線爭用解決。圖3顯示了標準CAN幀格式。

圖 3。CAN協議數據鏈路層。
每個節點都以幀開始 (SOF) 開始數據幀,這是第一個顯性位。11 位標識符是每個節點的唯一地址。IDE 指示幀格式。此位字段中的邏輯 0 表示標準 CAN 格式,而此位字段中的邏輯 1 表示擴展 CAN 格式。r0 是保留位。DLC 字段指示要傳輸的數據字節數。在標準 CAN2.0 幀中,最多可以傳輸 8 個字節。接收節點通過在總線上發送主位來確認該數據幀。最后,幀結束(EOF)是一個隱性位,它標志著一個數據幀的結束。
大多數情況下,在選擇CAN收發器時,客戶通過函數發生器在CAN收發器的TXD引腳上發送位流來評估CAN收發器。雖然這種方法非常適合評估單節點CAN,但在開發多節點、遠間距CAN系統時似乎存在缺陷。因此,新的CAN控制器和收發器測試對于為您的系統選擇合適的CAN收發器是必要的。這種方法背后的原因是什么?
仲裁方法
這種系統級測試方法的主要原因是CAN協議的仲裁功能。如果兩個節點嘗試同時占用總線,則通過非破壞性的逐位仲裁實現訪問。將第一個標識符位作為零(主導)發送的節點,而其他節點發送一個標識符位(隱性),保留對CAN總線的控制,CAN總線繼續完成其消息。圖 4 顯示了兩個節點之間的仲裁方案。

圖 4。2節點系統中的CAN仲裁。
在此圖中,節點 1 和節點 2 通過 CAN 總線相互連接。因此,CANH和CANL信號對于兩個節點都是通用的。TXD1 和 RXD1 是節點 1 的信號,而 TXD2 和 RXD2 是節點 2 的信號。如您所見,節點 1 和節點 2 的前三位是相同的:分別為 1、0 和 1。節點 2 的第四位是 1,而節點 1 是 0。由于節點 1 具有主導位,因此它將贏得仲裁并繼續發送完整的消息。消息由節點 2 確認。節點 1 完成傳輸后,節點 2 開始發送消息。節點 1 確認此消息。
每個節點都有一個唯一的標識符 ID。因此,此 11 位標識符 ID 用于仲裁過程。這些位將由控制器讀回,以識別消息傳輸的優先級。在CAN-FD中,仲裁比特率可以保持與數據比特率相同或不同。在CAN2.0中,仲裁和數據比特率是相同的。
在傳統的CAN2.0系統中,有時比特率會從標準的CAN2.0建議的1 Mbps提高,以實現更快的數據傳輸。在CAN-FD系統中,仲裁比特率限制為1 Mbps數據速率,數據比特率最高可達10 Mbps。在仲裁階段(包括 11 位標識符和 SOF 位),每個傳輸的位都會被讀回以進行同步。
CAN節點在CAN總線上觀察到的邊沿上同步,但總線上的信號傳播時間會在節點之間引入相移。CAN的介質訪問控制無損仲裁機制要求任意兩個節點之間的相移小于一位時間的一半。標稱位時間的下限定義了標稱比特率和總線長度的上限。因此,RXD的上升時間和下降時間,CAN收發器的環路延遲以及電纜都進入了畫面。在較高的比特率(例如 10 Mbps)下,傳播延遲和上升時間/下降時間需要小于 50 ns。
因此,CAN-FD中的仲裁比特率限制為1 Mbps,從而允許為許多可能的節點的同步提供更高的裕量。然而,CAN-FD是新的,尚未在所有CAN系統中實施。在某些情況下,CAN-FD控制器不可用,或者被認為是系統中昂貴的附加功能,因此客戶繼續使用標準CAN控制器。在這些系統中,CAN節點需要以更高的比特率(》2 Mbps)進行通信,因為關鍵的傳感器信息以及節點之間的電纜長度可能更短。在這種情況下,上升時間/下降時間對稱性和收發器的傳播延遲可能會限制允許的數據通信的上限。
CAN收發器需要進行系統級測試
讓我們以CAN收發器MAX33012E為例,該收發器已通過13米電纜測試,速度高達3.20 Mbps。如您所見,在圖 5 中,TXD2 位寬為 75 ns(對應于 13.3 Mbps),RXD2 位寬為 72 ns。由于控制器以TXD位寬的80%采樣,因此所需的最小RXD位寬(包括上升時間/下降時間和RXD的環路延遲)為60 ns。在圖5中,您可以看到接收的位寬為72 ns。因此,MAX33012E滿足條件,并且足夠魯棒,可以在更高的比特率下工作。在這種情況下,CAN控制器不會檢測到任何錯誤,并繼續執行數據通信。

圖 5。MAX33012E CAN數據傳輸。
圖6顯示了競爭器件的示波器照片,該器件也以13.3 Mbps的速度進行了測試。對于該器件,傳輸的位寬為75 ns(對應于13.3 Mbps),接收的位寬小于傳輸位寬(80 ns)的48%。因此,仲裁階段的位傳輸失敗,導致通信錯誤,最后系統停止工作。

圖 6。競爭對手的CAN數據傳輸。
這些類型的數據傳輸錯誤只能通過執行完整的系統級測試來發現,其中包括多個CAN控制器,CAN收發器和一根長電纜。
結論
CAN收發器的系統級測試有助于揭示系統中未來可能存在的數據傳輸問題。通過評估具有CAN控制器和電纜的CAN收發器,可以避免這些問題,以滿足所需的時序和電壓規格。CAN系統的魯棒性是CAN系統中每個組件的累積性能。僅評估一個組件或CAN收發器并不能準確測量系統功能。對系統進行事先驗證比更換有故障的系統更具成本效益。因此,我們強烈建議在選擇CAN控制器之前進行系統級測試。
編輯:黃飛
評論