本文介紹了評估"控制器局域網"(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(10 Mbps僅用于數據有效載荷;為了兼容,仲裁位速率仍限制在1 Mbps)快5倍。CAN-FD中的消息有效載荷大小從舊版CAN的8字節增加到64字節。
使用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)開始數據幀,SOF是第一個顯性位。11位標識符是每個節點的唯一地址。IDE表示幀格式。該位域中的邏輯0表示標準的CAN格式,而邏輯1表示擴展的CAN格式。r0是一個保留位。DLC字段表示要傳輸的數據字節數。在標準CAN2.0幀中,最多可以傳輸8個字節。接收節點通過在總線上發送顯性位來確認該數據幀。最后,幀結束符(EOF)是一個隱性位,標志著一個數據幀的結束。
大多數情況下,在選擇CAN收發器時,客戶通過函數生成器在CAN收發器的TXD引腳上發送比特流,以此來評估CAN收發器。盡管這種方法非常適合用于評估單節點CAN,但在開發多節點、遠距離CAN系統時似乎存在缺陷。因此,要為系統選擇合適的CAN收發器,必須采用新的CAN控制器和收發器測試方法。使用這種方法背后的原因是什么?
仲裁方法
使用這種系統級測試方法的主要原因是CAN協議的仲裁特性。如果兩個節點試圖同時占用總線,則使用非破壞性逐位仲裁來進行訪問。將第一個標識符位作為0(顯性)發送的節點將保留對CAN總線的控制, 并繼續完成其消息傳送, 而其他節點發送的是1(隱性)。圖4所示為兩個節點之間的仲裁方案。
圖4. 雙節點系統中的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為例,該收發器已經過20米線纜測試,速率最高可達13.3 Mbps。可以看到,在圖5中,TXD2位寬為75 ns(對應于13.3 Mbps),RXD2位寬為72 ns。當控制器以80%的TXD位寬進行采樣時,包括所需RXD的上升時間/下降時間和環路延遲在內的最小RXD位寬為60 ns。在圖5中,可以看到接收到的位寬為72 ns。因此,MAX33012E滿足條件,并且足夠穩健,能夠在更高的位速率下工作。在這種情況下,CAN控制器不會檢測到任何錯誤,并且會繼續執行數據通信。
圖5. MAX33012E CAN數據傳輸。
圖6所示為同樣在13.3 Mbps速度下進行測試的競品的范圍。對于該部分,傳輸位寬為75 ns(對應于13.3 Mbps),并且接收位寬小于傳輸位寬(48 ns)的80%。因此,仲裁階段位傳輸失敗,導致通信錯誤,最終系統停止工作。
圖6. 競品的CAN數據傳輸。
這些類型的數據傳輸錯誤只能通過執行完整的系統級測試來發現,其中包括多個CAN控制器、CAN收發器和一根長線纜。
結論
對CAN收發器進行系統級測試有助于揭示系統中未來可能出現的數據傳輸問題。可使用滿足所需時序和電壓規格的CAN控制器和線纜來評估CAN收發器,從而避免這些問題。CAN系統的穩健性取決于CAN系統中每個組件性能的累積結果。僅評估一個組件或CAN收發器并不能準確測量系統功能。對系統進行預先驗證比等到發生故障后才更換系統更加經濟高效。因此,我們強烈建議在選擇CAN控制器之前進行系統級測試。
-
亞德諾
+關注
關注
6文章
4680瀏覽量
15923
原文標題:評估CAN收發器的正確系統級測試方法
文章出處:【微信號:analog_devices,微信公眾號:analog_devices】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論