若要了解如何在 CAN 局部聯網中使用喚醒幀 (WUF),必須首先了解 CAN 幀的結構。在圖 3-1 中,高電平信號表示 CAN 總線是隱性的(邏輯 1),而低電平信號表示 CAN 總線是顯性的(邏輯 0)。
使用了兩種基于 ID 位數的格式。如圖 3-1 所示,有一種被稱為傳統基幀格式 (CBFF) 的 11 位 ID 格式和一種被稱為傳統擴展幀格式 (CEFF) 的 29 位 ID 格式。以下是名稱和說明列表:
- IDLE – 當 CAN 總線處于空閑狀態時,該總線將為隱性或“1”。
- SOF – 幀起始,顯性位或“0”。
- ID[10:0] - CBFF 中的基本 ID 或 EXT_ID[28:18],CEFF 中擴展 ID 的前 11 位。它們具有相同的配置位。
- EXT_ID[17:0] - CEFF 中擴展 ID 的剩余 18 位。
- RTR – 遠程傳輸請求。“1”表示遠程幀(DLC 長度為零)。“0”表示數據幀。對于 WUF,該位必須為“0”。
- IDE – 標識符。“1”表示 CEFF(擴展 ID),而“0”表示 CBFF(基本 ID)。
- FDF – FD 格式指示符,用于說明幀是傳統 CAN (0) 還是 CAN FD (1)。對于 WUF,該位必須為“0”。請注意,對于 CAN-FD 幀,該 FDF 位之后的結構與任一傳統 CAN 幀都不同,此處不做介紹。
- DLC – 四位數據長度代碼,說明幀中有多少數據字節。8-15 的值將被解釋為 8 個字節。
- SRR – 替代 RTR。始終為“1”。
- r1 – 保留位。始終為“0”。
- CRC – 15 位循環冗余校驗,用于確定信息的完整性。
- Del – 定界符位。始終為“1”。
- ACK – 確認。CAN 幀的發送方將發送“1”,而 CAN 幀的所有接收方在 CRC 正確時發送“0”,在 CRC 不正確時發送“1”。
圖 3-1 CAN 幀結構