ZHCSQH8B September 2025 – January 2026 TCAN5102-Q1
ADVANCE INFORMATION
這是一個通過 SPI 發(fā)送和接收字節(jié)流的基礎示例。一旦器件接收到 SPI 幀的所有字節(jié)(由 SPI 報頭中指定的字節(jié)數(shù)確定)后,該器件將開始發(fā)送該 SPI 幀。本示例會存儲接收到的 POCI 數(shù)據(jù),以供后續(xù)回讀。
| 參數(shù) | 值 |
|---|---|
| CAN 幀格式 | 標準幀格式 |
| 要傳輸?shù)淖止?jié) | 10B |
| SPI 通道 | 通道 2 |
| 將接收到的數(shù)據(jù)保存到 RX FIFO | 是 |
| SPI 字節(jié)流 | 0x11、0x22、0x33、0x44、0x55、0x66、0x77、0x88、0x99、0xAA |
下表顯示了在 CAN 總線上傳輸?shù)牟襟E和數(shù)據(jù)。總線的中央網(wǎng)關/控制器稱為 ECU,TCAN 器件稱為“響應器”。
| 步驟 | 發(fā)送器 | 數(shù)據(jù) | 說明 |
|---|---|---|---|
| 1 | ECU (DLC = 16B) | 0x0C, 0x10, 0x10, 0x82, 0x0A, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xAA, 0x00 |
ECU 請求將 10 字節(jié)寫入寄存器 0x1010 (SPI TX FIFO),其中 SPI 報頭的存儲 = 1、SPI 通道 = 2 以及 SPI 幀長度為 10 字節(jié)。隨后將 10 字節(jié)數(shù)據(jù)移入設備。由于CAN DLC 必須設為 16 字節(jié)來容納這 15 字節(jié)數(shù)據(jù),因此在末尾填充 1 字節(jié) 0x00。 |
| 2 | 響應器 | 0x0C, 0x01 | 響應器發(fā)回一個 OK 以確認已收到請求。 |
| 3 | SPI | PICO:0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xAA POCI:0x01、0x02、0x03、0x04、0x05、0x06、0x07、0x08、0x09、0x0A |
此時,響應器在 SPI 通道 2 上執(zhí)行 10 字節(jié)的 SPI 傳輸。POCI 數(shù)據(jù)存儲在 RX FIFO 中 |
| 4 | ECU | 0x43、0x10、0x0F | ECU 請求從寄存器 0x100F-0x1011(SPI_STATUS 和 SPI_RXFS)讀取 3 字節(jié)數(shù)據(jù)。由于突發(fā)讀取并非從 0x1010 (SPI RX FIFO) 開始,因此對應該寄存器的字節(jié)將填充為 0。對于未從 FIFO 開始的突發(fā)讀取,其對應 FIFO 的字節(jié)將返回“0”。 |
| 5 | 響應器 | 0x43, 0x01, 0xCA, 0x00, 0x01 | 響應器返回寄存器 0x100F 的數(shù)據(jù)、寄存器 0x1010 的填充值 0 以及寄存器 0x1011 的數(shù)據(jù)。返回數(shù)據(jù)表明:TX FIFO 為空,RX FIFO 包含 1 個 SPI 幀,且 RX FIFO 的下一個元素包含 10 字節(jié)數(shù)據(jù)。ECU 根據(jù)該信息,將請求從器件讀取 10 + 2(SPI 報頭)字節(jié)數(shù)據(jù)。 |
| 6 | ECU | 0x4C、0x10、0x10 | ECU 請求從 RX FIFO 讀取 12 字節(jié)(10 字節(jié)數(shù)據(jù)+ 2 字節(jié)報頭) |
| 7 | 響應器 (DLC = 16B) | 0x4C, 0x01, 0x02, 0x0A, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x00, 0x00 |
響應器返回請求的 12 字節(jié)數(shù)據(jù)。SPI 報頭字節(jié)表明:此為幀讀取的起始,使用的是 SPI 通道 2,待讀取的 SPI 數(shù)據(jù)為 10 字節(jié)(可容納于整個 CAN 幀中)。由于能容納該數(shù)據(jù)的最近 CAN DLC 為 16 字節(jié),因此在末尾填充 2 字節(jié)數(shù)據(jù)。 |
| 步驟 | 發(fā)送器 | 數(shù)據(jù) | 說明 |
|---|---|---|---|
| 1 | ECU (DLC = 8B) | 0x05, 0x10, 0x10, 0x02, 0x0A, 0x11, 0x22, 0x33 |
ECU 請求將 5 字節(jié)寫入寄存器 0x1010 (SPI TX FIFO),其中 SPI 報頭的存儲 = 1、SPI 通道 = 2 以及 SPI 幀長度為 10 字節(jié)。僅傳輸 SPI 幀的前 3 個字節(jié)數(shù)據(jù)。 |
| 2 | 響應器 (DLC = 2B) | 0x05, 0x01 | 響應器發(fā)回一個 OK 以確認已收到請求。 |
| 3 | ECU (DLC = 12B) | 0x07, 0x10, 0x10, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xAA, 0x00, 0x00 |
ECU 繼續(xù)向同一地址發(fā)起 7 字節(jié)寫入請求。由于能容納該幀的 CAN DLC 為 12 字節(jié),因此在末尾填充 2 字節(jié)。填充字節(jié)的值無實際意義,會被忽略。 |
| 4 | 響應器 (DLC = 2B) | 0x07, 0x01 | 響應器發(fā)回一個 OK 以確認已收到請求。 |
| 3 | SPI | PICO:0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xAA POCI:0x01、0x02、0x03、0x04、0x05、0x06、0x07、0x08、0x09、0x0A |
此時,響應器在 SPI 通道 2 上執(zhí)行 10 字節(jié)的 SPI 傳輸。POCI 數(shù)據(jù)存儲在 RX FIFO 中 |
| 4 | ECU (DLC = 3B) | 0x43、0x10、0x0F | ECU 請求從寄存器 0x100F-0x1011(SPI_STATUS 和 SPI_RXFS)讀取 3 字節(jié)數(shù)據(jù)。由于突發(fā)讀取并非從 0x1010 (SPI RX FIFO) 開始,因此對應該寄存器的字節(jié)將填充為 0。對于未從 FIFO 開始的突發(fā)讀取,其對應 FIFO 的字節(jié)將返回“0”。 |
| 5 | 響應器 (DLC = 5B) | 0x43, 0x01, 0xCA, 0x00, 0x01 | 響應器返回寄存器 0x100F 的數(shù)據(jù)、寄存器 0x1010 的填充值 0 以及寄存器 0x1011 的數(shù)據(jù)。返回數(shù)據(jù)表明:TX FIFO 為空,RX FIFO 包含 1 個 SPI 幀,且 RX FIFO 的下一個元素包含 10 字節(jié)數(shù)據(jù)。ECU 根據(jù)該信息,將請求從器件讀取 10 + 2(SPI 報頭)字節(jié)數(shù)據(jù)。 |
| 6 | ECU (DLC = 3B) | 0x48、0x10、0x10 | ECU 請求從 RX FIFO 讀取 8 字節(jié)數(shù)據(jù)(含 2 字節(jié)報頭 + 6 字節(jié)數(shù)據(jù)) |
| 7 | 響應器 (DLC = 12B) | 0x48, 0x01, 0x02, 0x0A, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x00, 0x00 |
響應器返回請求的 8 字節(jié)數(shù)據(jù)(盡管 DLC 為 12,但我們知道,CAN 響應報頭后的 8 字節(jié)才是有效數(shù)據(jù),其余的 0 均為填充字節(jié))。SPI 報頭字節(jié)表明:此為幀讀取的起始,使用的是 SPI 通道 2,尚有 10 字節(jié) SPI 數(shù)據(jù)待讀取。由于能容納該數(shù)據(jù)的最近 CAN DLC 為 12 字節(jié),因此在末尾填充 2 字節(jié)數(shù)據(jù)。ECU 已獲知有 10 字節(jié) SPI 數(shù)據(jù)待讀取,但僅請求讀取 6 字節(jié)。這意味著尚有 4 字節(jié) SPI 數(shù)據(jù)待讀取。 |
| 8 | ECU (DLC = 3B) | 0x46、0x10、0x10 | ECU 請求從 RX FIFO 讀取 6 字節(jié)數(shù)據(jù)(4 字節(jié)數(shù)據(jù) + 2 字節(jié)報頭),以完成讀取操作。 |
| 9 | 響應器 (DLC = 8B) | 0x46, 0x01, 0x82, 0x04, 0x07, 0x08, 0x09, 0x0A |
響應器返回請求的 6 字節(jié)數(shù)據(jù)。SPI 報頭字節(jié)表明:此為幀讀取的延續(xù),使用的是 SPI 通道 2,尚有 4 字節(jié) SPI 數(shù)據(jù)待讀?。扇菁{于本幀中)。由于待發(fā)送數(shù)據(jù)與 CAN 幀大小匹配,因此無需填充字節(jié)。 |