【dSPACE dissecto HydraVision 測試精解】
ISO-TP 傳輸協定原理解析
完整解析 ISO 15765-2(ISO-TP)的訊框類型、流量控制、五種定址模式與 Padding,看懂 UDS 與 OBD-II 診斷通訊底層的傳輸機制。
一個傳統 CAN 訊框最多只能攜帶 8 個位元組的資料,遠不足以傳送診斷資料或軟體更新。ISO 15765-2,又稱 ISO-TP(ISO 15765 Transport Protocol),是汽車產業用來在 CAN 匯流排上可靠、有效率地傳輸大量資料的傳輸層協定。它定義了資料訊框的格式、流量控制機制與錯誤處理規則:大型訊息會被切成多個較小的訊框依序傳送,接收端再依序重組,並能偵測遺失或重複的訊框。UDS 與 OBD-II 診斷都架構在 ISO-TP 之上,理解 ISO-TP,就是理解車用診斷通訊的第一步。
1. ISO-TP 協定概要
| 特性 | 說明 |
|---|---|
| 用途 | 在 CAN(以及 FlexRay、LIN、MOST 等)上傳輸大於單一訊框的資料 |
| 通訊型態 | 點對點(Point-to-Point)通訊 |
| 最大酬載 | 最多 232−1 位元組(約 4 GB);傳統 12 位元長度欄位格式為 4,095 位元組 |
| 流量控制 | 接收端以 Flow Control 訊框管理傳送節奏 |
| 重傳機制 | 無——遺失訊框時由上層協定負責重試 |
2. 協定控制資訊(PCI)與四種訊框
ISO-TP 在每個 CAN 訊框資料的開頭放入協定控制資訊(PCI, Protocol Control Information),用來標示訊框類型與相關參數。ISO-TP 定義了四種訊框:
Type 0:Single Frame(SF)
訊息夠短,一個 CAN 訊框就能傳完。PCI 帶有資料長度。
Type 1:First Frame(FF)
多訊框訊息的第一段,宣告整個訊息的總長度。
Type 2:Consecutive Frame(CF)
後續的資料段,帶有循環序號,讓接收端依序重組並偵測遺失。
Type 3:Flow Control(FC)
由接收端送出,告訴傳送端可以繼續傳送、需要等待,或緩衝區已滿。
2.1 Flow Control 狀態碼
| FS 值 | 名稱 | 意義 |
|---|---|---|
| 0 | Clear to Send | 可以繼續傳送下一批 Consecutive Frame |
| 1 | Wait | 請傳送端暫停,等待下一個 Flow Control |
| 2 | Overflow | 訊息過大,接收端無法處理,中止傳輸 |
除了狀態碼,Flow Control 也會帶上區塊大小(Block Size)——傳送端在下一次 Flow Control 前最多可送幾個 CF,以及最小間隔時間(STmin)——兩個 CF 之間至少要間隔多久。
2.2 多訊框傳輸流程
# ISO-TP 多訊框傳輸的基本節奏 傳送端 → 接收端 : First Frame # 宣告總長度與第一段資料 接收端 → 傳送端 : Flow Control (CTS) # 允許傳送,告知 Block Size 與 STmin 傳送端 → 接收端 : Consecutive Frame #1…#n # 依 Block Size 傳送一批 接收端 → 傳送端 : Flow Control # 需要時更新傳送條件 傳送端 → 接收端 : Consecutive Frame … # 直到訊息傳完
- 傳送端送出 First Frame 後,必須等待 Flow Control 才能繼續傳送。
- 接收端在收到 First Frame 後送出 Flow Control,之後若需要調整傳送條件,也會再次送出。
3. ISO-TP 定址模式
ISO-TP 標準定義了三種定址方式:正常(Normal)、延伸(Extended)與混合(Mixed)定址。依定址模式不同,位址資訊(AI, Address Information)會被編碼在 CAN 訊框的不同欄位中,PCI 的位置也會隨之改變。搭配 11 位元與 29 位元 CAN ID,共可歸納為五種組合:
| 代號 | 定址模式 | 位址資訊位置 |
|---|---|---|
| A1 | Normal addressing,11 位元 CAN ID | 位址完全由 CAN ID 表示,PCI 位於第 1 個位元組 |
| A2 | Normal fixed addressing,29 位元 CAN ID | 來源位址(SA)與目標位址(TA)編碼在 29 位元 CAN ID 中 |
| A3 | Extended addressing,11 位元 CAN ID | 資料第 1 個位元組為延伸位址,PCI 移至第 2 個位元組 |
| A4 | Mixed addressing,29 位元 CAN ID | SA / TA 在 CAN ID 中,另有位址延伸(AE)位於資料第 1 個位元組 |
| A5 | Mixed addressing,11 位元 CAN ID | CAN ID 加上資料第 1 個位元組的位址延伸(AE) |
3.1 29 位元 CAN ID 的固定前綴
| 前綴 | 意義 |
|---|---|
0x18DA | Normal fixed addressing,實體定址(Physical) |
0x18DB | Normal fixed addressing,功能定址(Functional) |
0x18CE | Mixed addressing,實體定址 |
0x18CD | Mixed addressing,功能定址 |
例如 OBD-II 的 29 位元功能請求 ID 0x18DB33F1,就是由前綴 0x18DB、目標位址 0x33 與來源位址 0xF1 組成。
3.2 各定址模式的位址空間
不同定址模式可能的位址組合數量差異極大,這直接影響到在匯流排上找出所有診斷端點所需的時間:
| 代號 | 計算方式 | 組合數 |
|---|---|---|
| A1 | 211 | 2,048 |
| A2 | 2 × 28 × 28 = 217 | 131,072 |
| A3 | 211 × 28 = 219 | 524,288 |
| A4 | 2 × 28 × 28 × 28 = 225 | 33,554,432 |
| A5 | 211 × 28 = 219 | 524,288 |
4. Padding(填充)
ISO-TP 通訊可以使用或不使用 Padding。啟用 Padding 時,每個 CAN 訊框一律為 8 個位元組,未使用的位元組以預先定義的值填滿。實務上通常使用 0xAA:它的二進位為 10101010,0 與 1 交錯出現,在 CAN 匯流排上不會產生位元填充(Bit Stuffing),讓訊框長度保持固定。
實務意義:許多 ECU 要求通訊必須使用 Padding,若測試工具的 Padding 設定與 ECU 不一致,ECU 可能完全不回應。因此在建立診斷連線前,必須先確認目標端點是否使用 Padding。
5. 從匯流排紀錄判讀 ISO-TP 參數
透過 candump 等工具擷取的匯流排紀錄,可以直接判讀出端點的通訊參數。
5.1 範例一:Normal addressing(A1)
# 示意:candump 擷取的 A1 通訊 can0 603 [8] 10 64 xx xx xx xx xx xx # First Frame,來源 0x603,總長 0x64 = 100 位元組 can0 703 [8] 30 00 00 AA AA AA AA AA # Flow Control (CTS),來自 0x703,以 0xAA 填充至 8 位元組
- 訊框類型位置:PCI 位於資料第 1 個位元組,表示這是 Normal addressing(A1)。
- 來源與目標:First Frame 由
0x603送出,目標端點0x703以 Flow Control 確認。 - 訊息長度:First Frame 宣告的長度為 100 位元組。
- Padding:Flow Control 的 CAN 長度為 8 位元組,代表這個端點使用 Padding。
5.2 範例二:Extended / Mixed addressing(A3 / A5)
- 延伸位址:每個 CAN 訊框資料的第 1 個位元組是延伸位址資訊,PCI 因此移到第 2 個位元組。
- A3 與 A5 無法區分:實際通訊中,從流量本身無法判斷是 A3 還是 A5;但對於辨識 ISO-TP 端點而言,兩者並無差別——來源與目標位址仍編碼在 CAN ID 中。
- 無 Padding:若接收端的 Flow Control 訊框長度小於 8 位元組,代表此端點不使用 Padding。
6. 在 HydraVision 中的應用
由於 UDS 與 OBD-II 都架構在 ISO-TP 之上,找出 ISO-TP 端點是所有診斷安全測試的起點。dSPACE dissecto HydraVision 以 IsotpScan 測試案例自動完成這項工作:
- 自動探索端點:掃描 11 位元 CAN ID 範圍,找出會以 Flow Control 回應的診斷端點,並自動判斷各端點的 Padding 設定。
- 過濾背景流量:掃描前先監聽匯流排雜訊,排除一般週期性訊息,並以第二輪驗證確認結果,避免誤判。
- 串接後續測試:找到的端點會成為 HydraCore 的
IsotpEndpointContext 項目,後續的 UDS、OBD 協定確認與掃描可直接使用。延伸定址等其他定址模式另有對應的掃描測試案例。 - 合規驗證:HydraVision 也提供依 ISO 15765-2:2016 設計的傳輸層合規測試套件,確認 ECU 的 ISO-TP 實作行為符合標準要求。
法規對應:端點清冊是 ISO/SAE 21434 Clause 15 威脅分析與風險評估(TARA)描述可達診斷資產(WP-15-02)與攻擊路徑(WP-15-04)的輸入,也支援 UNECE R155 7.3.6 與 GB 44495 6.6、7.1.4.1 所要求的資安措施有效性測試。
7. 捷策動能技術支援
Jotactic 捷策動能提供 dSPACE dissecto HydraVision 相關的全方位技術服務:
測試規劃
依 UNECE R155、GB 44495、ISO/SAE 21434 需求規劃車載網路與診斷介面測試。
技術諮詢
協助釐清 ISO-TP 定址、Padding 與診斷通訊設定問題。
教育訓練與 Demo
車用診斷協定與 HydraVision 操作教育訓練,以及客製化 Demo 專案驗證。
歡迎來電 03-6109669 或來信 info@jotactic.com 洽詢。