一、故障檢測功能
CAN 收發器是 CAN 總線系統中的重要組件,用於實現數據在 CAN 總線上的傳輸,CAN 收發器除了收發數據,部分收發器還能提供故障檢測功能,CAN 收發器的故障檢測功能對於確保 CAN 總線系統的正常運行至關重要,它們可以及時發現和糾正總線上的錯誤,從而防止數據丟失和通信故障的發生。
常見的 CAN 收發器故障檢測功能主要包括以下幾個方面:
1.1、總線監測
CAN 收發器能夠監測總線電平,並通過收發器迴環到 RXD 來檢測總線上的信號,這種機制有助於檢測總線上的通信故障,如信號丟失或信號干擾。
1.2、錯誤檢測機制
CAN 控制器可以通過收發器在接收和發送數據時執行錯誤檢測,這包括位填充檢查、幀格式檢查、CRC 校驗和 ACK 檢查等,這些檢查能夠識別出總線上的錯誤類型,如位錯誤、填充錯誤、CRC 錯誤和 ACK 錯誤等。
1.3、錯誤計數機制
當CAN收發器檢測到錯誤時,它會記錄錯誤的數量。根據錯誤的數量和類型,CAN總線系統可以採取不同的措施來響應這些錯誤,如重新發送數據、降低通信速度或進入錯誤狀態。
1.4、錯誤狀態管理
CAN 收發器能夠管理錯誤狀態,並根據錯誤的嚴重程度和持續時間來採取相應的措施,例如,當錯誤計數達到一定的閾值時,CAN收發器可能會進入錯誤狀態,並停止在總線上發送和接收數據。
二、本地故障檢測功能
除了上面介紹的故障檢測機制外,一些高級的 CAN 收發器還具有其他故障檢測功能,如過熱保護、欠壓保護和過壓保護等,這些功能可以保護CAN收發器免受損壞,並提高系統的可靠性和穩定性,如 NXP TJA1443 就可以檢測四種不同的本地故障條件,其中任何一種都會設置本地故障標誌,大多數情況下禁用發射器來保證安全。
2.1、TXD 顯性超時故障
硬體上或者軟體程序控制 TXD 保持在 LOW 的電平,這個故障將驅動總線線路進入永久顯性,從而阻塞所有網絡通信。NXP TJA1443 上的 TXD dominant time-out 功能可以防止這個阻塞狀態,TJA1443 當 TXD 引腳為 LOW 時,啟動 TXD 顯性超時定時器,如果 TXD 引腳上的 LOW 狀態持續時長超過 Tto(dom)TXD,發射機將被禁用,並且釋放總線為隱性狀態,接觸總線上的阻塞狀態。當 TXD 設置為 HIGH 時,TXD 主導超時定時器復位,清除本地故障標誌,發射機解除禁用狀態。
這個功能在硬體設計時需要注意的是,當主控默認電平是低電平,通過 GPIO 控制 CAN 收發器 STB,選用的 CAN 收發器 STB 為低電平使能。
在這種情況下,開發板一上電,默認低電平會使能 CAN 收發器,主控 TXD 電平低電平,CAN 收發器 TXD 顯性超時定時器開始計時,超時後 RXD 釋放,在總線上顯示為錯誤幀,為了避免這種不可控情況,可以採用 TXD 硬體上上拉,避免觸發 TXD dominant time-out 功能。
2.2、TXD 與 RXD 短路
引腳 RXD 和 TXD 之間的短路也會將總線鎖定在永久的顯性狀態,從而阻塞所有網絡通信,因為 RXD 的低側驅動器通常是比連接到 TXD 的控制器的高端驅動器強,一旦它被驅動為顯性,TXD-to-RXD 短路檢測通過禁用發射機來防止這種網絡鎖定,發射機保持禁用狀態,直到本地故障標誌被清除。
2.3、總線顯性故障
CAN 總線短路 (到 VBAT、VCC 或 GND) 或其他網絡節點之一的故障,可能導致總線上的差分電壓高到足以表示總線顯性狀態,因為當總線為顯性狀態時,節點不會開始傳輸,所以主控制器將無法檢測到這種故障情況。然而,總線的優勢位檢測將檢測短路,如果總線上的顯性時間持續的時間長 Tto(dom)BUS 則設置本地失敗標誌,通過檢查這個標誌,控制器可以確定一個固定總線是否阻塞了網絡通信,沒有必要進入隱性狀態將關閉發射機,當總線恢復狀態時,本地失敗標誌就會重置。
2.4、超溫警告
如果結溫過高超過 Tj(sd),CAN 總線驅動被禁用,發射機將保持禁用狀態,直到結溫降到 Tj(sd) 以下,本地故障標誌將被清除。
三、參考資料
《NXP TJA1443 DataSheet》
https://www.nxp.com/products/interfaces/can-transceivers/can-with-flexible-data-rate/automotive-can-fd-transceiver-family:TJA144x?linkline=Data%20Sheet&fpsp=1#documentation
《NXP TJA1051 DataSheet》
https://www.nxp.com.cn/docs/en/data-sheet/TJA1051.pdf
評論