ZHCSQH8B September 2025 – January 2026 TCAN5102-Q1
ADVANCE INFORMATION
這是一個(gè)通過(guò) I2C 發(fā)送和接收字節(jié)流的基礎(chǔ)示例。一旦器件在 TX FIFO 中接收到任何字節(jié)后,該器件將開(kāi)始發(fā)送 I2C 字節(jié)。
| 參數(shù) | 值 |
|---|---|
| CAN 幀格式 | 標(biāo)準(zhǔn)幀格式 |
| I2C 目標(biāo)地址(7 位) | 0x12 |
| I2C 幀 | 讀取 |
| I2C 目標(biāo)寄存器地址 | 0x10 |
| 要傳輸?shù)淖止?jié) | 8B |
下表顯示了在 CAN 總線上傳輸?shù)牟襟E和數(shù)據(jù)??偩€的中央網(wǎng)關(guān)/控制器稱為 ECU,TCAN 器件稱為“響應(yīng)器”。
執(zhí)行 I2C 讀取時(shí),常規(guī)操作是先寫入寄存器地址,再執(zhí)行讀取。這可使目標(biāo)器件知道要讀取哪個(gè)寄存器。這意味著 I2C 讀取通常包含兩個(gè)獨(dú)立的 I2C 幀:先執(zhí)行 I2C 寫入,再執(zhí)行 I2C 讀取。此示例如下所示。
| 步驟 | 發(fā)送器 | 數(shù)據(jù) | 說(shuō)明 |
|---|---|---|---|
| 1 | ECU (DLC = 6B) | 0x03, 0x30, 0x10, 0x25, 0x81, 0x10 |
ECU 請(qǐng)求向寄存器 0x3010 (I2C TX FIFO) 寫入 3 字節(jié)數(shù)據(jù),對(duì)應(yīng)的 I2C 報(bào)頭參數(shù)為:存儲(chǔ) = 1、I2C 目標(biāo)地址 = 0x12、寫入 = 1、I2C 數(shù)據(jù)大小 = 1 字節(jié)(寄存器地址 0x10) |
| 2 | 響應(yīng)器 | 0x03, 0x01 | 響應(yīng)器發(fā)回一個(gè) OK 以確認(rèn)已收到請(qǐng)求。 |
| 3 | I2C | I2C 幀:0x25, 0x10 | 此時(shí),響應(yīng)器開(kāi)始執(zhí)行 1 字節(jié)數(shù)據(jù)的 I2C 傳輸。 |
| 4 | ECU (DLC = 3B) | 0x43、0x30、0x10 | ECU 請(qǐng)求讀取 RX FIFO,以檢查用于設(shè)置目標(biāo)地址的初始 I2C 寫入狀態(tài)。這樣做是為了驗(yàn)證目標(biāo)是否已應(yīng)答。 |
| 5 | 響應(yīng)器 | 0x43, 0x01, 0x25, 0x01, 0x01 |
響應(yīng)器返回 I2C 狀態(tài)標(biāo)志 0x01,表示“成功”狀態(tài),即目標(biāo)器件已應(yīng)答地址和數(shù)據(jù)(寄存器地址)。 |
| 6 | ECU (DLC = 5B) | 0x02, 0x30, 0x10, 0x24, 0x08 |
ECU 現(xiàn)請(qǐng)求向寄存器 0x3010 (I2C TX FIFO) 寫入 2 字節(jié)數(shù)據(jù),對(duì)應(yīng)的 I2C 報(bào)頭參數(shù)為:存儲(chǔ) = 1、I2C 目標(biāo)地址 = 0x12、寫入 = 1、I2C 讀取大小 = 8 字節(jié) |
| 7 | 響應(yīng)器 | 0x02, 0x01 | 響應(yīng)器發(fā)回一個(gè) OK 以確認(rèn)已收到請(qǐng)求。 |
| 8 | I2C | I2C 幀:0x24、0x01、0x02、0x03、0x04、0x05、0x06、0x07、0x08 | 此時(shí),響應(yīng)器開(kāi)始執(zhí)行 8 字節(jié)的 I2C 讀取 |
| 9 | ECU (DLC = 3B) | 0x4B、0x30、0x10 | ECU 請(qǐng)求從 RX FIFO 讀取 11 字節(jié)數(shù)據(jù)(2 字節(jié)報(bào)頭 + 8 字節(jié)數(shù)據(jù) + 1 字節(jié)狀態(tài)),以獲取從 I2C 目標(biāo)讀取的數(shù)據(jù) |
| 10 | 響應(yīng)器 | 0x4B, 0x01, 0x24, 0x09, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x01, 0x00, 0x00, 0x00 |
響應(yīng)器發(fā)回 I2C 報(bào)頭信息及 8 字節(jié)數(shù)據(jù)。數(shù)據(jù)后附帶 I2C 狀態(tài)標(biāo)志 0x01,表示“成功”狀態(tài),即目標(biāo)已應(yīng)答地址。由于能容納該數(shù)據(jù)的最近 CAN FD 有效載荷大小為 16 字節(jié),因此在末尾填充 0x00 字節(jié)。 |
| 步驟 | 發(fā)送器 | 數(shù)據(jù) | 說(shuō)明 |
|---|---|---|---|
| 1 | ECU (DLC = 6B) | 0x03, 0x30, 0x10, 0x25, 0x81, 0x10 |
ECU 請(qǐng)求向寄存器 0x3010 (I2C TX FIFO) 寫入 3 字節(jié)數(shù)據(jù),對(duì)應(yīng)的 I2C 報(bào)頭參數(shù)為:存儲(chǔ) = 1、I2C 目標(biāo)地址 = 0x12、寫入 = 1、I2C 數(shù)據(jù)大小 = 1 字節(jié)(寄存器地址 0x10) |
| 2 | 響應(yīng)器 | 0x0A, 0x01 | 響應(yīng)器發(fā)回一個(gè) OK 以確認(rèn)已收到請(qǐng)求。 |
| 3 | I2C | I2C 幀:0x25, 0x10 | 此時(shí),響應(yīng)器開(kāi)始執(zhí)行 1 字節(jié)數(shù)據(jù)的 I2C 傳輸。 |
| 4 | ECU (DLC = 3B) | 0x43、0x30、0x10 | ECU 請(qǐng)求讀取 RX FIFO,以檢查用于設(shè)置目標(biāo)地址的初始 I2C 寫入狀態(tài)。這樣做是為了驗(yàn)證目標(biāo)是否已應(yīng)答。 |
| 5 | 響應(yīng)器 | 0x43, 0x01, 0x25, 0x01, 0x01 |
響應(yīng)器返回 I2C 狀態(tài)標(biāo)志 0x01,表示“成功”狀態(tài),即目標(biāo)器件已應(yīng)答地址和數(shù)據(jù)(寄存器地址)。 |
| 6 | ECU (DLC = 5B) | 0x02, 0x30, 0x10, 0x24, 0x08 |
ECU 現(xiàn)請(qǐng)求向寄存器 0x3010 (I2C TX FIFO) 寫入 2 字節(jié)數(shù)據(jù),對(duì)應(yīng)的 I2C 報(bào)頭參數(shù)為:存儲(chǔ) = 1、I2C 目標(biāo)地址 = 0x12、寫入 = 1、I2C 讀取大小 = 8 字節(jié) |
| 7 | 響應(yīng)器 | 0x02, 0x01 | 響應(yīng)器發(fā)回一個(gè) OK 以確認(rèn)已收到請(qǐng)求。 |
| 8 | I2C | I2C 幀:0x24、0x01、0x02、0x03、0x04、0x05、0x06、0x07、0x08 | 此時(shí),響應(yīng)器開(kāi)始執(zhí)行 8 字節(jié)的 I2C 讀取 |
| 9 | ECU (DLC = 3B) | 0x46、0x30、0x10 | ECU 請(qǐng)求從 RX FIFO 讀取 6 字節(jié)數(shù)據(jù),以獲取從 I2C 目標(biāo)讀取的數(shù)據(jù) |
| 10 | 響應(yīng)器 | 0x46, 0x01, 0x24, 0x09, 0x01, 0x02, 0x03, 0x04 |
響應(yīng)器發(fā)回 I2C 報(bào)頭信息及 8 字節(jié)數(shù)據(jù)。 |
| 11 | ECU (DLC = 3B) | 0x47、0x30、0x10 | ECU 請(qǐng)求從 RX FIFO 讀取 7 字節(jié)數(shù)據(jù)(2 字節(jié)報(bào)頭 + 8 字節(jié)數(shù)據(jù) + 1 字節(jié)狀態(tài) - 已讀取的 4 字節(jié)),以獲取從 I2C 目標(biāo)讀取的數(shù)據(jù) |
| 12 | 響應(yīng)器 | 0x47, 0x01, 0x24, 0x85, 0x05, 0x06, 0x07, 0x08, 0x01, 0x00, 0x00, 0x00 |
響應(yīng)器發(fā)回 I2C 報(bào)頭信息及 8 字節(jié)數(shù)據(jù)。第二個(gè) I2C 報(bào)頭字節(jié)設(shè)置了 CONT 標(biāo)志,表示此為部分讀取的 I2C 幀的延續(xù)。數(shù)據(jù)后附帶 I2C 狀態(tài)標(biāo)志 0x01,表示“成功”狀態(tài),即目標(biāo)已應(yīng)答地址。由于能容納該數(shù)據(jù)的最近 CAN FD 有效載荷大小為 12 字節(jié),因此在末尾填充 0x00 字節(jié) |