Digi-Key ADI CAN CAN 2.0 CAN FD 匯流排

攻克CAN 2.0/FD混合系統 全面測試排除故障(1)

2023-12-18
CAN 2.0和較新的版本CAN FD技術彼此相容,然而,隨著系統的複雜性提高及匯流排長度增加,在混合系統中,CAN FD的較高速度可能會造成同步的問題,導致傳輸失敗。
Freepik

控制器區域網路(CAN)是經過驗證且可靠的通訊標準,用於工業自動化和汽車等領域。此技術有兩個版本:CAN 2.0和較新的版本CAN Flexible Data(FD)。傳統CAN 2.0系統可以透過增加CAN FD節點強化功能,以達到更高的酬載傳輸量,支援關鍵通訊事件。

一般而言,這些技術彼此相容,但隨著系統的複雜性提高及匯流排長度增加,在混合系統中,CAN FD的較高速度可能會造成同步的問題,導致傳輸失敗。

對於簡單的系統而言,使用以單一短匯流排連接兩個控制器/收發器對的CAN系統測試即可。不過,此測試通常無法偵測到結合CAN 2.0和CAN FD元件、較複雜的多節點系統中可能出現的問題。使用相似的生產系統,針對所有潛在使用情境進行專門測試,可以偵測到現場可能發生的所有問題。

本文簡要介紹CAN 2.0和CAN FD,並解釋其傳輸挑戰。接著將說明一些測試技術,如何減少使用這些網路的系統可能發生的現場故障。本文將以Analog Devices(ADI)具有故障偵測和報告功能的元件為例,並展示此類元件如何加速已部署系統的測試階段和故障排除,也特別說明相關評估板。

什麼是CAN 2.0和CAN FD?

CAN是內建故障處理能力的分散式通訊標準,實體層(PHY)和資料鏈路層(DLL)以ISO 118981標準定義。CAN的特點包括:

.允許在單一匯流排上發出多個主動訊息。

.訊息固有優先等級。

.依照訊息優先等級進行匯流排仲裁。

.多重級別的錯誤偵測和復原。

.使用獨立時脈來源,跨節點進行同步資料計時。

CAN使用差動電壓資料傳輸機制,具有兩種匯流排電壓狀態:「隱性(Recessive)」(驅動器輸出為高阻抗)和「顯性(Dominant)」,臨界值如表1所示。

節點為邏輯「0」傳輸顯性狀態(在此狀態下,一條匯流排(CANH)為高位,另一條(CANL)為低位),並為邏輯「1」傳輸隱性狀態。在標準訊框或錯誤訊框結束後,藉由偵測多個隱性位元,可區分出隱性位元傳輸模式和閒置的CAN匯流排(圖1)。

圖1 CAN傳輸機制(閒置模式表示為多個隱性位元) (圖片來源:Analog Devices)

CAN收發器提供DLL、CAN控制器(通常嵌入至另一個元件,例如微控制器內)以及CAN匯流排實體接線之間的差動PHY介面。圖2顯示實作CAN應用所需的各種要素,以及它們與開放式系統互連(OSI)層的關係及其特點。

圖2 CAN收發器構成CAN控制器與CAN匯流排之間的差動PHY介面 (圖片來源:Analog Devices)

CAN 2.0於1991年推出,標稱傳輸量為500Kbps。此資料傳輸率有時不足以滿足關鍵通訊事件的需求,因此於2012年推出CAN FD。CAN FD在正常操作條件下提供達2Mbps的標稱傳輸量,在診斷或編程時提供達5Mbps的標稱傳輸量。請注意,更高速的通訊僅適用於訊息酬載;訊息之外的其他元素,例如11位元識別碼、循環備援檢查(CRC)和確認(ACK),將以500Kbps的CAN 2.0速率傳送。

CAN 2.0和CAN FD的另一項區別在於標準資料訊框酬載,從CAN 2.0的8B增加至CAN FD的64B。酬載的增加可提高開銷/資料比,讓CAN FD通訊效率更高。此外,由於CAN 2.0具有8B酬載限制,原先必須拆開的訊息,現在可以使用CAN FD合併為同一則。此外,由於資料速率更高且酬載增加,可以透過CAN FD訊息加密來增強安全性。

CAN FD控制器同時支援CAN 2.0和CAN FD協定,因此常在同一網路中混合使用CAN 2.0和CAN FD節點。混合節點能讓傳統網路慢慢轉移到更快的協定,因此廣受歡迎。然而,混合系統也將產生額外的成本並提升複雜性,收發器必須要能支援CAN 2.0節點上的CAN FD濾波方式,以確保在CAN FD通訊期間不會建立錯誤訊框。

CAN的仲裁與錯誤機制

任何連接的CAN節點都可以將資料傳輸到匯流排上。為了避免通訊衝突,節點將對匯流排的使用進行仲裁,以便訊息根據其優先級依序傳輸。CAN採用非破壞性、透明的仲裁;仲裁成功後的節點將繼續傳輸其較高優先級的訊息,不會受到其他節點干擾或破壞。顯性位元的傳輸會覆寫隱性匯流排狀態,促使完成仲裁。

標準資料訊框包括訊息識別碼和幾個旗標位元,此資訊被稱為「仲裁區」,不僅規定仲裁,也規定了訊息優先級。較低識別碼(開頭較多「0」)的訊息具有較高優先級(圖3)。

圖3 CAN標準資料訊框包括訊息識別碼以及RTR和IDE旗標位元,此仲裁區規定仲裁和訊息優先級 (圖片來源:Analog Devices)

即使有仲裁機制,也仍然可能出錯。為了解決問題,CAN協定提供錯誤檢查和處理的機制。這些機制包括:

.傳輸位元驗證。

.CRC檢查。

.固定格式位元區檢查。

.強制訊息ACK。

使用以下機制處理錯誤:

.錯誤訊框。

.錯誤計數器。

.節點錯誤狀態。

所有CAN控制器都可以偵測錯誤,並且透過觸發錯誤訊框和錯誤節點計數器做出回應。錯誤訊框使用六個連續顯性或隱性位元進行區分。這樣的序列與正常傳輸規則不一致,使其可以被其他節點偵測到。傳送錯誤訊框的節點隨後傳送隱性位元,直到偵測到匯流排處於隱性狀態。進一步傳輸七個隱性位元後,節點可以嘗試傳輸正常CAN訊框(圖4)。

圖4 在這個錯誤傳輸範例中(由於額外位元導致CRC位元錯誤),最右側顯示六個連續位元錯誤訊框 (圖片來源:Analog Devices)

每個CAN節點除了錯誤訊框傳輸之外,還可傳送和接收錯誤計數器。發生錯誤會讓計數器加一,而成功傳送或接收訊息則讓計數器減一。根據錯誤計數器,一個節點可能處於主動反應錯誤、被動反應錯誤、匯流排離線狀態。在主動反應錯誤狀態下,節點可以在匯流排上進行通訊,並在偵測到錯誤時傳送主動錯誤旗標。當計數器超過127時,將出現被動反應錯誤狀態,此時,節點只能傳送被動錯誤旗標。一旦計數器低於127,節點將再次變為主動反應錯誤狀態。如果計數器超過256,則節點進入匯流排離線狀態,且無法在匯流排上進行通訊。節點計數器在接收到11個連續隱性位元的128個序列後,可重置為0。

攻克CAN 2.0/FD混合系統 全面測試排除故障(1)

攻克CAN 2.0/FD混合系統 全面測試排除故障(2)

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!