上期,我們主要介紹了 UDS 診斷模塊的創建以及TSMaster 基礎診斷配置。很多客戶表示意猶未盡。因此我們將繼續帶來《TSMaster 的 CAN UDS 診斷操作指南(下)》的精彩內容,為您帶來UDS on CAN/CAN FD 的功能以及詳細的使用操作。
本文關鍵詞:UDS,BootLoader,自動診斷流程,診斷系統變量
目錄
Catalog
4.TSMaster 診斷控制臺
5. TSMaster自動診斷流程與注冊系統變量
6.診斷典型應用
TSMaster 診斷控制臺
診斷控制臺作為診斷命令調試器,可以讓用戶選擇每一條單獨的服務命令,編輯發送服務報文和接收服務報文,進行測試驗證。主要包含四塊工作區域,分別為服務命令選擇區,手動命令輸入區,診斷命令發送/應答區和診斷信息區,如圖 4-1 所示。
圖 4-1 控制臺工作分區
1.
服務命令選擇區
服務命令選擇區中是根據基礎配或者加載 ODX/PDX 診斷數庫生成的可執行服務列表。用戶可以雙擊執行選中的服務或者右鍵選擇執行該服務,如圖 4-2所示。
圖 4-2 服務命令選擇區
2.
手動命令輸入區
測試過程中,如果用戶想發送任意的診斷命令,則可以在手動命令輸入區中輸入自己想要發送的任意報文。在輸入診斷報文過后,點擊右邊的 Execute 按鈕,就可以完成診斷報文的發送。為了增加測試靈活性,還可以通過選擇框選擇采用物理地址發送還是功能 ID 發送診斷請求報文。如圖 4-3。
圖 4-3 手動命令輸入區
3.
診斷命令發送/應答區
在本區域中,用戶可以編輯發送數據段以及期望接收數據段,啟動執行來驗證被測 ECU 的診斷響應是否符合實際要求,以及是否同步診斷系統變量,如圖4-4。
圖 4-4 診斷命令發送/應答區
4.
診斷信息區
該區域分為服務層信息和 ISO15765-2 數據流區,其中服務層信息顯示當前在診斷模塊中的操作步驟流程與響應信息。如圖 4-5。
圖 4-5 服務層信息
當診斷服務沒有得到肯定響應或者無響應時,報錯提示信息等。如圖 4-6:
圖 4-6服務層信息負響應提示
ISO15765-2 數據流區,用于顯示診斷模塊詳細的服務層報文信息。結合前面配置的診斷數據庫,還可以把原始的報文數據解析成物理信號等呈現。以 22 服務為例,可以查看到診斷服務層解析后的參數數據,如圖 4-7。
圖 4-7ISO15765-2 數據流區
TSMaster 自動診斷流程與注冊系統變量
1.
診斷流程創建與管理
TSMaster 的自動化診斷流程不僅僅是針對某一個具體的應用,而是針對整個項目的診斷流程進行管理。用戶可以根據完整項目的需求,配置測試診斷流程組,每個組里面可以包含多個不同的診斷流程,在一個診斷流程中包含具體的診斷步驟。
在 UDS 流程管理欄右鍵鼠標,展開流程用例管理的操作菜單,如圖 5-1:
圖 5-1 流程用例管理的操作菜單
操作菜單從上到下分別包含如下操作:
【1】切換 UDS 流程:切換到當前 UDS 流程節點。雙擊該節點,也可以達到切換到該流程節點的效果。切換到該節點過后,節點圖標和背景色為藍色,同時右邊的節點流程中展開顯示該 UDS 流程包含的詳細診斷步驟。如圖 5-2。
圖 5-2 切換 UDS 流程
【2】啟動 UDS 流程:啟動該節點的診斷流程。點擊該選項后,診斷模塊按照右邊的配置,從上往下自動執行診斷步驟。
【3】中斷 UDS 流程:點擊該節點后,中斷正在執行的診斷流程步驟。
【4】添加流程組:新增診斷流程組。比如新增 Test Group1。診斷組下面可以再增加診斷流程用例,其本身不包含診斷步驟。
【5】添加新的測試流程:新增一個診斷流程用例,在診斷流程用例下面可以增加詳細的診斷步驟。
【6】編程名稱:選中一個流程組或者流程用例,右鍵選中 Edit name 編輯該節點的名稱。
【7】注冊系統變量:選擇一個診斷流程用例,注冊為系統變量。
【8】反注冊系統變量:選中已注冊為系統變量的診斷流程用例,取消注冊系統變量。
【9】刪除所選:刪除選中的節點。
【10】刪除所有:清楚所有的節點。
2.
配置自動診斷流程
TSMaster 自動診斷流程,可以快速配置多組診斷流程并可以設置循環運行和注冊系統變量用于外部調用等,如下進行詳細介紹。
2.1 自動診斷工具欄介紹
診斷流程配置工具欄如圖 5-3 所示:
圖 5-3診斷流程配置工具欄
圖標依次從左往右為:
【1】新增診斷流程組。
【2】新增診斷流程用例。
【3】刪除選中的診斷流程組/用例。
【4】啟動配置好的診斷流程。
【5】終端正在運行的診斷流程。
【6】鎖定/解鎖流程配置區域。如果鎖定該區域,在診斷流程區域變得不可編輯。
【7】全選/全不選診斷流程。
【8】使能設置的循環運行次數。
【9】實際運行次數顯示。
2.2 自動化診斷流程配置步驟
在 UDS 測試流程區里,右鍵創建新創建一個 UDS 流程,雙擊該流程進入后,解鎖邏輯器,并可以設置本流程可以循環運行的次數,默認不使能循環運行。如圖 5-4。
圖 5-4創建新的 UDS 流程
然后在邏輯區右鍵添加步驟或者刪除步驟,并進一步解析管理欄中功能。如圖 5-5。
圖 5-5診斷步驟添加與管理
【1】在左邊的管理欄中選中一個診斷流程節點。
【2】在右邊的編輯區域,添加、刪除、編輯診斷步驟。
【3】添加步驟后,選擇該步驟類型。
【4】編輯步驟名稱。
【5】選擇該步驟地址類型,物理地址還是功能地址。
【6】配置詳細的診斷請求數據包。
【7】配置詳細的診斷應答數據包。
【8】配置本步驟結束后步驟之間的等待時間。
【9】配置本步驟發生錯誤的錯誤處理方法。
2.3 診斷步驟類型
測試步驟中,為了增加診斷配置的靈活性,設計了 4 種類型可供選擇,主要包含:普通步驟,選擇已有配置,種子和密鑰,測試儀在線。通過這 4 種類型,基本上涵蓋了市面上所有主流的診斷流程需求,下面詳細介紹每種類型的特點。如圖 5-6。
圖 5-6診斷步驟類型
【1】普通步驟:主要用于一些簡單的請求數據和應答數據都很直接的場合。直接在請求服務中填入想要發送的請求數據,在應答服務中填入期望的應答報文,比如服務請求數據為【10 01】,服務應答數據為【50 01 12 34】。如圖 5-7。如果有些服務不需要響應,則可以不設置有回復。
圖 5-7 普通步驟類型
【2】選擇已有配置:該配置設計的目的,就是讓用戶選擇在基礎診斷設置中已經配置好的診斷服務,這種方式是 TSMaster 最推薦的配置方式。選擇已有配置過程,如圖 5-8 所示。
圖 5-8 選擇已有配置
【3】種子和密鑰:種子和密鑰只需要選擇種子等級和密鑰等級參數即可,解密的 DLL 直接關聯到傳輸層參數配置載入的種子和密鑰 DLL 中,如圖 5-9 所示:
圖 5-9種子和密鑰
對此,無論是在診斷控制臺模塊中,還是自動診斷流程模塊,都是需要先配置好傳輸層的參數配置。
【4】測試儀在線:為了支持更加靈活的測試需求,在自動化流程步驟中,提供了打開和關閉測試儀在線的命令選擇,以及配置該命令數據以及周期間隔:
△ 是否啟動(start)/停止(stop)該命令,如圖 5-10:
圖 5-10啟動/停止測試儀在線命令
△ 配置測試儀在線的命令的數據以及周期間隔,如 5-11:
圖 5-11配置測試儀在線的命令
2.4 步驟間隔時間
診斷流程模塊步驟跟步驟之間的延時是可以設置的,單位為 ms,如圖 5-12:
圖 5-12 配置測試儀在線的命令
2.5 屬性
在屬性中,可以設置響應出錯后的以及本指令是停止還是繼續運行,如圖5-13 所示:
圖 5-13 屬性
在 TSMaster 后續產品規劃中,響應出錯后允許跳轉到指定的流程中(比如跳轉到擦除流程中),進一步增加自動運行流程模塊的靈活性。
2.6 使能步驟/位置調整
對于已經完成配置的診斷流程步驟,用戶根據左邊的選擇框來勾選想要執行的診斷步驟。如圖 5-14。
關于執行順序調整:無論是測試用例組,測試用例還是測試用例中的具體步驟,用戶想調整相互之間執行順序的時候,直接拖拽對應的測試用例到相應位置即可。
圖 5-14診斷流程步驟使能
3.
診斷模塊的內生系統變量
在 TSMaster 新添加基礎診斷模塊后,系統變量管理器會自動生成所有者為診斷模塊 Diagnostic 的系統變量,通過修改系統變量可以配置對應的參數。如圖5-15。
圖 5-15 診斷模塊系統變量
3.1 診斷服務通用系統變量
診斷內生的通用系統變量包含:
△ 導出工程 ExportProject:用于導出診斷工程。
△ 導入工程 ImportProject:用于導入已有的診斷工程。
△ 診斷儀在線 TesterIsPresent:是否啟動診斷儀在線命令。
△ DLC:FD 幀的最大 DLC 值,該參數只有在 FD 模式下才有效。
△ 接收連續幀最小幀間隔 STMin(R):用戶自定義接收端 STMin 參數,單位 ms。如設置為 0,表示支持以最短的事件間隔接收。
△ 發送連續幀最小幀間隔 STMin(T):用戶定義發送端 STMin 參數,單位 ms。
△ 用戶自定義連續幀最小幀間隔 User Define STMin:是否手動定義連續幀最小幀間隔,單位 ms。
△ 填充字節 FiledByte:發送診斷幀填充字節。
△ 功能 ID 類型 FunctionalIDType:傳輸層功能 ID 的類型,0 是標準幀,1是擴展幀。
△ 功能 ID (FunctionalID):傳輸層功能 ID。
△ 應答 ID 類型 ResIDType:傳輸層應答 ID 的類型,0 是標準幀,1 是擴展幀。
△ 應答 ID (ResID):傳輸層應答 ID。
△ 請求 ID 類型 ReqIDType:傳輸層請求 ID 的類型,0 是標準幀,1 是擴展幀。
△ 請求 ID (ReqID):傳輸層請求 ID。
△ 總線類型 BusType:設置總線類型:0 代表 CAN 總線;1 代表 CANFD總線;2 代表 LIN 總線;3 代表 DOIP(基于以太網的診斷)。
△ 通道 Chn:設置診斷模塊的通道參數,比如 0 代表通道 1,1 代表通道 2。
△ 自動化流程進度 UDSProgress:自動診斷流程的實時進度,該變量用來獲取自動診斷流程的運行狀態。
△ 安全訪問種子和密鑰 SeedAndKeyDLL:設置種子&密鑰 DLL 的絕對路徑,使用時注意轉義字符。
△ P2 擴展時間 P2Extended:設置 P2 擴展時間。
△ P2 擴展時間 P2TimeOut:設置 P2 超時時間。
△ S3 服務端時間 S3ServerTime:設置 S3 服務端時間。
△ S3 服務端時間 S3ClientTime:設置 S3 客戶端時間。
3.2 診斷服務特定系統變量
在基礎診斷配置的復合診斷服務添加新的服務后,系統變量管理器同樣會生成對應的系統變量:服務名_DataFile,此變量為下載文件的絕對路徑,修改此變量可控制下載文件的載入與切換。如圖 5-16。
圖 5-16下載文件路徑系統變量
此外,當載入下載文件后,系統變量控制器會根據選擇的校驗和算法生成每塊校驗和,及總校驗和,下載文件的首地址和長度,如果已經添加了符合診斷服務,載入了下載文件,并且在基本診斷服務中關聯了下載文件相關變量,那么在替換下載文件的同時,這些關聯的變量也會隨之改變,最小的工程修改實現文件的靈活切換。
3.3 自動診斷流程的注冊系統變量
在診斷控制臺中可以根據需要靈活配置診斷服務,這些診斷服務配置好后,用戶需要在診斷控制臺中雙擊啟動該診斷服務。
如果用戶希望在 Panel 界面中或者程序中啟動診斷流程命令,步驟如下:
【1】首先在診斷 Basic Diagnostic Config 窗體中,選中目標服務,然后右鍵菜單把該診斷服務注冊為系統變量,如圖 5-17 所示:
圖 5-17診斷服務注冊為系統變量
注冊完成后,該流程的圖標多出 3 個小彩圓,表示成為一個注冊系統變量的服務,未注冊的流程為藍色圓,如圖 5-18 所示:
圖 5-18注冊為系統變量的圖標變化
【2】注冊完成后,在系統變量管理器中,就可以看到生成系統變量_Start和_Result,如圖 5-19。
圖 5-19注冊為系統變量的變量
其中_Start 的數值賦值為:
● 0 是空閑狀態。
● 1 是正在執行狀態。
● 2 是執行成功。
● 3 是執行失敗。
_Result 的數值結果為:
● >0 表示啟動診斷流程
● =0 表示中斷停止診斷流程
● <0 為非法參數。
【3】在面板Panel 中添加按鈕button控件,并關聯生成好的系統變量流程名_Start,將將按鈕按下事件設置為 1,如圖 5-20。
圖 5-20 面板按鈕控件關聯系統變量
【4】運行程序,點擊 Panel 的測試按鈕,將值 1 賦給流程名_Start,診斷模塊執行相應的診斷流程,實現自動運行診斷流程。
診斷典型應用
1.
應用 1:讀取車輛 VIN 碼
如下通過自動診斷流程,快速配置讀取車輛 VIN 碼,一鍵執行與 ECU 交互,并對讀加 VIN 碼的參數進行解析,診斷流程如下,如圖 6-1。
圖 6-1面板按鈕控件關聯系統變量
其中服務指令解析如下:
【1】切換到擴展會話。
【2】seedkey 獲取權限。
【3】采用普通讀取命令,讀取車輛返回的 VIN 碼。
【4】或者是采用之前已經配置好的命令,讀取 VIN 碼,這種方式帶數據解析。
執行的響應,正常讀取到 ECU 的 VIN 碼,同時選擇已有配置的步驟中因為帶有相應的解析信息,可以直接出讀取VIN 碼為“E8880003CED05909”。如圖6-2。
圖 6-2讀取 VIN 碼
2.
應用 2:Flash Bootloader 流程
本文設計了一個簡單的 Bootloader 流程來說明如何基于 TSMaster 診斷模塊配置一個 Flash Bootloader 流程。
2.1 Flash Bootloader 流程
首先設計 FashBootloader 流程,可以根據不同 ECU 的實際設計規范進行調整,通常分為三個階段,分別為預編程階段(灰色),主編程階段(紫色)和后編程階段(藍色),如圖 6-3。
圖 6-3設計 FashBootloader 流程
2.2 配置刷寫例程
△ 預編程階段:
【1】首先創建 UDS 流程:注意切換編輯器為解鎖狀態,否則無法添加新的流程步驟。如圖 6-4。
圖 6-4解鎖編輯器
【2】對于流程圖所示的切換擴展會話,關閉 DTC,關閉接收控制等命令,直接配置普通步驟類型的命令即可。如圖 6-5。
圖 6-5切換擴展會話、關閉 DTC 和接收
【3】基于讀取 ID:F188 位置處的數據,并判斷該數據是否等于比 SN123456。如果符合,則判斷零件號匹配,進入下一個步驟,否則退出流程。
方式 1:使用普通步驟配置形式,如圖 6-6:
圖 6-6普通步驟讀取 DID F188 零件號
方式 2:在 BasicConfig 中配置好,然后在流程中使用選擇已有配置,如圖6-7:
圖 6-7選擇已有配置讀取 DID F188 零件號
△ 主編程階段:
【4】切換到編程會話,進入主編程階段,如圖 6-8。
圖 6-8切換到編程會話
【5】添加種子和密鑰步驟,解鎖 ECU,如圖 6-9:
圖 6-9種子和密鑰步驟
【6】獲取權限后,在 IDF190 處寫入字符串“SN1234”,對于這種固定寫入的字符串,可以使用普通步驟直接配置,如圖 6-10:
圖 6-10IDF190 處寫入字符串
【7】添加 FlashDriver/應用程序文件流程。首先在基礎診斷配置添加FlashDriver 和應用程序文件,如圖 6-11:
圖 6-11基礎診斷配置添加 FlashDriver 文件
然后在自動診斷流程中選擇相應的已有配置,選擇創建好的組合下載服務。如圖6-12。
圖 6-12選擇已有的組合下載服務
【8】采用例程控制擦除 Flash。通過診斷基礎設置配置好后擦除指令,將起始地址和數據長度的系統變量,通過系統變量的方式添加請求參數,如圖 6-13:
圖 6-13診斷基礎配置擦除指令
然后通過選擇已有配置加入到流程中。如圖 6-14。
圖 6-14例程控制擦除 Flash
【9】重啟 ECU,需要注意的是 ECUReset 到重新開始診斷,步驟之間的等待時間需根據 ECU 設計規范調節,比如設置為 1000ms。如圖6-15。
圖 6-15 重啟ECU
△ 后編程階段:
【10】切換會默認會話,COM 控制,DTC 控制等操作,使用變通步驟添加即可。如圖 6-16。
圖 6-16后編程階段
2.3 完成流程配置與一鍵運行
在完成配置后,總的配置流程如圖 6-17 所示。
圖 6-17完成 FashBootloader 配置流程
通過按鈕一鍵執行自動診斷流程,當每個步驟都是正響應,會顯示為綠色,如圖 6-18:
圖 6-18一鍵執行自動診斷流程
基于 TSMaster 的診斷模塊,實現零代碼方式,開發診斷流程如 Bootloader等應用成為一個非常簡單快速的事情。
-
CAN
+關注
關注
57文章
2720瀏覽量
463395 -
診斷
+關注
關注
1文章
56瀏覽量
12273 -
MASTER
+關注
關注
0文章
103瀏覽量
11266 -
調試器
+關注
關注
1文章
300瀏覽量
23694
發布評論請先 登錄
相關推薦
評論