本文介紹:
車載以太網(wǎng)診斷協(xié)議,Diagnostics over Internet Protocol簡稱為DoIP,可以通過以太網(wǎng)協(xié)議進(jìn)行汽車診斷。DoIP是一種用于在車輛之間或車輛與診斷設(shè)備之間進(jìn)行通信和診斷的標(biāo)準(zhǔn)協(xié)議。通過DoIP,診斷工程師可以通過以太網(wǎng)或遠(yuǎn)程訪問和診斷車輛的電子系統(tǒng),并可以進(jìn)行以太網(wǎng)控制器的診斷訪問和刷寫。
DoIP是TSMaster支持的重要功能之一,本文主要介紹TSMaster的DoIP模塊中診斷服務(wù)功能操作,以及相應(yīng)的傳輸層配置,并結(jié)合診斷功能常見的使用操作進(jìn)行展開,本文要點(diǎn)如下:
1. TSMaster DoIP的同星以太網(wǎng)硬件準(zhǔn)備
2. TSMaster DoIP模塊如何開始使用
3. TSMaster被測儀IP網(wǎng)絡(luò)接口配置
4. TSMaster DoIP診斷傳輸層配置
5. TSMaster基礎(chǔ)診斷配置
6. TSMaster診斷控制臺
7. TSMaster自動診斷流程與注冊系統(tǒng)變量
8.診斷典型應(yīng)用
本文關(guān)鍵詞:DoIP,車載以太網(wǎng)診斷,基礎(chǔ)診斷,自動診斷流程,以太網(wǎng)
1、TSMaster DoIP的同星以太網(wǎng)硬件準(zhǔn)備
TSMaster的DoIP軟件功能的實(shí)現(xiàn),是以同星的以太網(wǎng)硬件作為基礎(chǔ)。其中應(yīng)用于DoIP的同星以太網(wǎng)硬件有TE1051、TE1054(規(guī)劃中)、TE1021。
TE1051是一路以太網(wǎng)轉(zhuǎn)USB接口的設(shè)備,可以將標(biāo)準(zhǔn)以太網(wǎng)100Base-Tx 1000Base-T或車載以太網(wǎng)100/1000Base-T1的數(shù)據(jù)通過USB接口傳輸?shù)絇C上,并通過TSMaster軟件實(shí)現(xiàn)以太網(wǎng)數(shù)據(jù)的仿真、分析、測試,也可以實(shí)現(xiàn)DoIP和SOMEIP等功能。同時,TE1051設(shè)備小巧且外殼堅(jiān)固,無需外部供電,適用于各種環(huán)境工況下的DoIP診斷刷寫。
圖1-1 TE1051硬件
TE1021是一路車載以太網(wǎng)轉(zhuǎn)普通以太網(wǎng)接口(100/1000Base-T1 to 100Base-Tx/1000Base-T)的介質(zhì)轉(zhuǎn)換工具。用戶可以將100Base-T1轉(zhuǎn)換為100Base-Tx或?qū)?000Base-T1轉(zhuǎn)換為1000Base-T??蛇m用于不同以太網(wǎng)接口的DoIP應(yīng)用場景,同時TE1021小巧且外殼堅(jiān)固,攜帶方便。
圖1-2 TE1021硬件
2、TSMaster DoIP模塊如何開始使用
TSMaster的DoIP模塊的創(chuàng)建與基本使用流程如下:
▲ Step1:DoIP位于主菜單【應(yīng)用】->【DoIP】,如圖2-1。
圖2-1 DOIP
▲ Step2:【添加DoIP】模塊,可以添加多個DoIP模塊,如圖2-2。
圖2-2 添加DoIP模塊
▲ Step3:根據(jù)ECU的配置設(shè)置車載以太網(wǎng)傳輸層參數(shù),比如診斷儀類型、通道、被測件IP地址等以太網(wǎng)參數(shù)和安全訪問算法。具體操作流程在下文第3章節(jié)展開。
▲ Step4:當(dāng)配置好傳輸層相關(guān)參數(shù)與安全算法,啟動工程后,點(diǎn)擊【Connect DUT】連接車載控制器。當(dāng)連接成功后,基礎(chǔ)診斷窗口和系統(tǒng)消息窗口會提示:連接以太網(wǎng)被測件成功,如圖2-3。以及在ISO15765-2的地方可以看到連接的服務(wù)消息,如圖2-4。
圖2-3 連接以太網(wǎng)被測件
圖2-4 ISO5765-2消息
▲ Step5: 服務(wù)以及流程都配置好之后,在【自動診斷流程】處直接打開啟動按鈕,執(zhí)行診斷流程。如圖2-5所示。
圖2-5 執(zhí)行自動診斷流程
3、TSMaster診斷儀IP網(wǎng)絡(luò)接口配置
TSMaster的網(wǎng)絡(luò)接口配置流程如下:
▲ Step1:找到主菜單【硬件】->【TCP/IP Stack】,如圖3-1。
圖3-1 TCP/IP Stack
▲Step2:【Eth CH1】右鍵選擇【Add Network Card】,如圖3-2。
圖3-2 添加網(wǎng)絡(luò)接口
▲ Step3:在【General Setting】中選擇【用戶自定義Mac】,輸入自定義Mac地址。如圖3-3。
圖3-3 自定義Mac地址
▲ Step4:【使能IPV4】,然后打開【添加】按鈕,輸入診斷測試儀的IP地址和IP掩碼,如圖3-4。
圖3-4 添加IP地址
4、TSMaster DoIP診斷傳輸層配置
TSMaster 提供了DoIP的診斷傳輸層的配置功能,用戶可以根據(jù)需求配置相應(yīng)的傳輸層配置比如診斷儀類型、通道、IP地址、端口和請求和應(yīng)答ID、以及安全算法等一系列配置。
4.1 診斷傳輸層
診斷傳輸層的配置根據(jù)診斷儀類型分為兩種:TE系列設(shè)備和系統(tǒng)TCP/IP。
4.1.1 TE系列設(shè)備
TE系列設(shè)備類型以TE1051為例,TE1051是一個1路以太網(wǎng)轉(zhuǎn)USB接口的工具,通過USB接口傳輸?shù)絇C上,并通過TSMaster軟件實(shí)現(xiàn)以太網(wǎng)數(shù)據(jù)的DoIP功能。
對于DoIP診斷傳輸層ISO TP,包含被測件和測試儀的以太網(wǎng)參數(shù)和診斷ID參數(shù),如圖4-1所示。
圖4-1 DoIP診斷傳輸層ISO TP配置
DoIP診斷傳輸層ISO TP的具體參數(shù)如下分類介紹:
▲ 總線類型:診斷傳輸層類型。
使用同星DoIP功能選擇總線類型為【Ethernet】,如圖4-2所示。
圖4-2 DoIP診斷總線類型
▲ 診斷儀類型:診斷設(shè)備類型。
通過USB連接PC,選擇的診斷儀類型為【TE系列設(shè)備】,若是傳統(tǒng)的網(wǎng)線連接PC則選擇系統(tǒng)TCP/IP,如圖4-3所示。
圖4-3 Ethernet 診斷儀類型選擇
▲ 通道:診斷模塊用到的邏輯通道。
TSMaster 支持多個診斷模塊同時在線工作,這里用于選擇當(dāng)前診斷模塊的應(yīng)用邏輯通道,通過下拉列表進(jìn)行選擇,如圖4-4所示。
圖4-4 Ethernet 通道選擇
▲ IP地址掩碼:以太網(wǎng)通信使用的IP地址掩碼。
▲ 被測件IP:被測件的IP地址。
在DoIP通信中,IP地址掩碼和被測件IP地址需要根據(jù)具體的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)和通信需求進(jìn)行設(shè)置。
▲ 被測件端口:被測件端口號。
在ISO 13400標(biāo)準(zhǔn)中端口13400被指定為DoIP通信的默認(rèn)端口號。
▲ 測試儀IP:測試儀的IP地址。
測試儀IP為連接PC的測試設(shè)備(如同星的TE051)的IP地址。根據(jù)IP地址掩碼和被測件IP,將PC的IP地址和被測件IP配置在同一網(wǎng)段內(nèi),以此兩者可以正常連接和通信。測試儀IP地址的配置在前面的第3章已詳細(xì)說明。
▲ 測試儀端口:測試儀或PC的端口
注意:對于診斷工具的端口號設(shè)置并沒有固定的規(guī)定,用戶可以根據(jù)需求自己設(shè)置或者使用軟件自動分配的端口號。
▲ 請求ID / 應(yīng)答ID / 功能ID:設(shè)置診斷模塊PC工具端的診斷請求/應(yīng)答/功能幀的 ID。
4.1.2 系統(tǒng)TCP/IP
系統(tǒng)TCP/IP類型以TE1021為例,TE1021是直接通過系統(tǒng)的網(wǎng)口連接PC。
DoIP診斷傳輸層ISO TP,包含被測件和測試儀的以太網(wǎng)參數(shù)和診斷ID參數(shù),如圖4-5所示。
圖4-5 DoIP診斷傳輸層ISO TP配置
DoIP診斷傳輸層ISO TP的具體參數(shù)如下分類介紹:
▲ 總線類型:診斷傳輸層類型。
使用同星DoIP功能選擇總線類型為【Ethernet】,如圖4-6所示。
▲ 診斷儀類型:診斷設(shè)備類型。
診斷儀通過PC系統(tǒng)的網(wǎng)口連接PC,則選擇的診斷儀類型為【系統(tǒng)TCP/IP】,如圖4-7所示。
圖4-7 Ethernet 診斷儀類型選擇
▲ 通道:診斷模塊用到的邏輯通道。
用于選擇當(dāng)前診斷模塊的應(yīng)用邏輯通道,這里默認(rèn)是【System Ethernet Interface】,如圖4-8所示。
圖4-8 Ethernet 通道選擇
▲ IP地址掩碼:以太網(wǎng)通信使用的IP地址掩碼。
▲ 被測件IP:被測件的IP地址。
在DoIP通信中,IP地址掩碼和被測件IP地址需要根據(jù)具體的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)和通信需求進(jìn)行設(shè)置。
▲ 被測件端口:被測件端口號。
在ISO 13400標(biāo)準(zhǔn)中端口13400被指定為DoIP通信的默認(rèn)端口號。
▲ 測試儀IP:PC的系統(tǒng)的網(wǎng)口的IP地址。
根據(jù)IP地址掩碼和被測件IP,將PC的IP地址和被測件IP配置在同一網(wǎng)段內(nèi),使得兩者可以正常連接和通信。找到電腦的【設(shè)置】->【網(wǎng)絡(luò)和Internet】,找到網(wǎng)口所連接的以太網(wǎng),選擇【屬性】,在【IP分配】選擇【編輯】按鈕。選擇手動,打開IPv4,填寫IP地址以及子網(wǎng)掩碼。如圖4-9所示。
圖4-9 PC端以太網(wǎng)IP地址設(shè)置
▲ 測試儀端口:測試儀或PC的端口
注意:對于診斷工具的端口號設(shè)置并沒有固定的規(guī)定,用戶可以根據(jù)需求自己設(shè)置或者使用軟件自動分配的端口號。
▲ 請求ID / 應(yīng)答ID / 功能ID:設(shè)置診斷模塊PC工具端的診斷請求/應(yīng)答/功能幀的 ID。
4.2 診斷服務(wù)層
診斷服務(wù)層參數(shù)主要包含路由激活,S3,P2 時間參數(shù),以及加載 SeedKey 的 安全訪問。如圖4-10所示。
圖4-10 診斷服務(wù)層參數(shù)
4.2.1 路由激活
【連接DUT之后自動執(zhí)行路由激活命令】:勾選后,當(dāng)測試儀或PC與被測件建立網(wǎng)絡(luò)連接后,軟件自動執(zhí)行路由激活命令。
【TCP初始化激活超時時間】:這個參數(shù)描述了從TCP_Data連接建立過后到失效的最大超時時間。如果在設(shè)定時間范圍內(nèi)都不執(zhí)行激活路由的指令,DoIP模塊會主動關(guān)閉TCP_Data套接字。規(guī)范定義時間為2000ms。
【激活類型】,共有5種類型:
1. 【Default】:默認(rèn)激活模式(Default Activation Mode),這是最基本的路由激活類型,通常用于建立標(biāo)準(zhǔn)的DoIP通信會話。在默認(rèn)激活模式下,設(shè)備之間會進(jìn)行基本的身份驗(yàn)證和參數(shù)交換,以建立通信連接。
2. 【W(wǎng)WH-OBD】:全球調(diào)和車載診斷系統(tǒng)要求的診斷通信激活,在這種模式下,設(shè)備之間可能需要進(jìn)行額外的身份驗(yàn)證和安全驗(yàn)證,以確保通信的合規(guī)性和安全性。
3. 【ISO/SAE Reserved】:為未來的標(biāo)準(zhǔn)或特定應(yīng)用保留的路由激活模式。
4. 【Central Security】:Central Security(中央安全)路由激活模式,它涉及到車輛網(wǎng)絡(luò)安全的核心管理和認(rèn)證機(jī)制。這種模式通常用于確保只有經(jīng)過授權(quán)和驗(yàn)證的設(shè)備才能與車輛的網(wǎng)絡(luò)系統(tǒng)進(jìn)行通信。
5. 【Additional OEM-Specific Use】:為原始設(shè)備制造商(OEM)提供的特定用途而保留的額外路由激活模式。不同的OEM可以根據(jù)自己的需求和車輛網(wǎng)絡(luò)架構(gòu),定義和使用特定的路由激活模式,以滿足其獨(dú)特的診斷、通信或安全要求。
4.2.2 P2時間參數(shù)
【P2超時時間】:表示 ECU 收到診斷請求幀過后,最短回復(fù)的時間間隔。對于診斷工具端,該參數(shù)可以作為發(fā)送請求過后,等待回復(fù)的超時判斷參數(shù)。比如診斷工具發(fā)送了一個診斷報(bào)文,P2超時時間段內(nèi)都沒有收到回復(fù),則認(rèn)為請求失敗,超時退出。
【P2擴(kuò)展時間】:當(dāng)診斷工具發(fā)出診斷報(bào)文過后,被測 ECU 來不及在 P2 超時時間段內(nèi)做出應(yīng)答,則回復(fù)一幀 7F XX 78 報(bào)文,告訴診斷工具端自己來不及響應(yīng),需要延長等待時間再回復(fù)。ECU 發(fā)送了延遲等待報(bào)文后,則把等待時間參數(shù)切換為 P2擴(kuò)展時間。診斷工具端的超時判斷參數(shù)在收到延遲等待報(bào)文后,需要切換到 P2擴(kuò)展時間。
上述兩個參數(shù)可以點(diǎn)開【詳情】按鈕,查看圖示說明,如圖4-11所示。
圖4-11 P2時間參數(shù)設(shè)置
4.2.3 診斷儀在線
診斷儀在線包括S3服務(wù)器時間和S3客戶端時間參數(shù)。
【S3服務(wù)器時間】:表示該ECU從Default會話被切換到其他會話過后,經(jīng)過多長時間會自動切換回默認(rèn)會話的超時時間。
【S3客戶端時間】:表示作為診斷Tester端,發(fā)送TesterPresent幀的時間間隔。
上述兩個參數(shù)的示意圖,可以點(diǎn)開【詳情】按鈕,查看圖示說明,如圖4-12所示。
圖4-12 S3時間參數(shù)設(shè)置
【診斷儀在線】:TSMaster 斷模塊中,可以選擇配置并使能診斷儀在線命令,如圖4-13所示。
圖4-13 診斷儀在線設(shè)置
當(dāng)使能【診斷儀在線】,在診斷模塊上方會出現(xiàn)啟動【診斷儀在線】的開關(guān)。設(shè)置診斷儀在線為【打開】狀態(tài),則按照設(shè)定的S3客戶端時間間隔發(fā)送該報(bào)文。
診斷儀在線的發(fā)送字節(jié)是可選的。支持三種類型:
【默認(rèn)診斷儀在線服務(wù)】:為最常用的0x3E 0x80。
【從基礎(chǔ)配置中選擇】:從基本診斷配置中選擇配置好的3E命令。
【用戶自定義】:用于自定義的字節(jié)。
4.2.4 種子密鑰
TSMaster 中提供了兩種SeedKey種子密鑰的處理方法。第一種就是常用的加載主流的種子密匙的DLL動態(tài)鏈接庫;第二種是提供了內(nèi)置的種子密鑰的解釋器,可以直接編寫SeedKey源代碼,并可以保存生成DLL動態(tài)鏈接庫。
—4.2.4.1載入動態(tài)鏈接庫
TSMaster不僅支持了C/C++,Delphi等語言封裝的DLL文件,也新增支持基于DotNet平臺如C#,VB.Net等語言編寫的DLL動態(tài)鏈接庫,可以高效兼容不同平臺生成的安全訪問DLL,為工程師帶來更便捷的使用體驗(yàn)。
載入動態(tài)鏈接庫加載界面,如圖4-14所示。
圖4-14 載入動態(tài)鏈接庫
圖標(biāo)從左往右依次為:
【1】 加載DLL
【2】 刪除DLL
【3】 打開DLL校驗(yàn)器,通過DLL校驗(yàn)器,用戶可以判斷加載的 DLL 接口是否正確,算法是否符合設(shè)計(jì)要求。比如,用戶選擇Seed的Level過后,輸入Seed值,點(diǎn)擊GenKey 進(jìn)行判斷。如果該DLL接口跟模板定義接口統(tǒng)一,則會輸出提示信息:Generate Key Success,然后用戶根據(jù)Key值跟目標(biāo)值對比,進(jìn)一步確認(rèn)DLL中的算法是否符合設(shè)計(jì)要求。如圖4-15。
圖4-15 SeedKey校驗(yàn)器
【4】 可打開TSMaster安裝目錄下Seed&Key接口工程所在的文件路徑。
在TSMaster安裝目錄中,提供了封裝Seed&Key 算法的模板工程。如GenerateKeyEx,GenerateKeyExOpt, ASAP1A_CCP_ComputeKeyFromSeed,基于此模板工程開發(fā)即可得到能夠直接加載的DLL函數(shù)。TSMaster默認(rèn)支持SeedKey函數(shù)接口具體為如下:
函數(shù)接口1:
unsigned int GenerateKeyEx(
const unsigned char* ipSeedArray, /* Array for the seed [in] */
unsigned int iSeedArraySize, /* Length of the array for the seed [in] */
const unsigned int iSecurityLevel,/* Security level [in] */
const char* ipVariant, /* Name of the active variant [in] */
unsigned char* iopKeyArray, /* Array for the key [in, out] */
unsigned int iMaxKeyArraySize, /* Maximum length of the array for the key [in] */
unsigned int& oActualKeyArraySize); /* Length of the key [out] */
函數(shù)接口2:
unsigned int GenerateKeyExOpt(
const unsigned char* ipSeedArray, /* Array for the seed [in] */
unsigned int iSeedArraySize, /* Length of the array for the seed [in] */
const unsigned int iSecurityLevel, /* Security level [in] */
const char* ipVariant, /* Name of the active variant [in] */
const char* iPara, /* */
unsigned char* iopKeyArray, /* Array for the key [in, out] */
unsigned int iMaxKeyArraySize, /* Maximum length of the array for the key [in] */
unsigned int& oActualKeyArraySize) /* Length of the key [out] */
函數(shù)接口3:
bool ASAP1A_CCP_ComputeKeyFromSeed(
const unsigned char* ipSeedArray, /* Array for the seed [in] */
unsigned short iSeedArraySize, /* Length of the array for the seed [in] */
unsigned char* iopKeyArray, /* Array for the key [in, out] */
unsigned short iMaxKeyArraySize, /* Maximum length of the array for the key [in] */
unsigned short* opSizeKey) /* Length of the key [out] */
如何兼容其他函數(shù)接口
在日常使用中經(jīng)常出現(xiàn)用戶已經(jīng)開發(fā)好了SeedKey DLL,同時該 DLL 的接口不是上述三種中的任何一種,則無法直接加載到TSMaster的診斷模塊中。對此,可以通過二次封裝的形式將存在的SeedKey算法庫進(jìn)行包裝,生成可以直接加載到TSMaster診斷模塊中的 DLL 。
以一個實(shí)際的實(shí)例來講解如何兼容其他接口函數(shù)的DLL文件,二次封裝流程的示意圖,如圖4-16。
圖4-16 二次封裝流程
▲第一步:查看當(dāng)前的DLL,名稱為UserSeedKey.DLL。該函數(shù)內(nèi)部的API函數(shù)有:
●Seed 等級為1的時候,調(diào)用函數(shù)void GetKeyFromSeed01(byte* ASeed, byte* AKey);
●Seed等級為3的時候,調(diào)用函數(shù)void GetKeyFromSeed03(byte* ASeed, byte* AKey);
●Seed等級為11的時候,調(diào)用函數(shù) void GetKeyFromSeed11(byte* ASeed, byte* AKey);
進(jìn)而得知當(dāng)前DLL不支持上述三種函數(shù)接口,需要進(jìn)行二次封裝。
▲第二步:選擇 TSMaster 安裝目錄中提供的 GenerateKeyEx 的模板工程,在該工程中用上述DLL的函數(shù)接口。基本思路是:
1. 采用 Loadlibrary 動態(tài)用戶現(xiàn)有的 DLL。
2. 根據(jù)傳入的Level參數(shù),采用GetProcAddress函數(shù)動態(tài)獲取實(shí)際的用于計(jì)算Key的函數(shù)指針。
3. 如果獲取函數(shù)指針成功,則使用該函數(shù)指針傳輸Seed值,并計(jì)算對應(yīng)的Key值。GenerateKeyEx工程二次封裝示例,如圖4-17。
圖4-17 GenerateKeyEx工程二次封裝示例
▲ 第三步:該GenerateKeyEx工程開發(fā)結(jié)束后,TSMaster 直接加載GenerateKeyEx所在的DLL。需要注意的是,用戶需要把現(xiàn)有的UserSeedKey.DLL拷貝到TSMaster根目錄或者GenerateKeyEx.DLL所在的目錄。如果不拷貝過去,GenerateKeyEx.DLL執(zhí)行的時候會出現(xiàn)找不到對應(yīng)依賴DLL的情況,解鎖失敗。
—4.2.4.2 編寫SeedKey代碼
在TSMaster的內(nèi)置算法編輯器里的操作流程,示意如圖4-18所示。
圖4-18 內(nèi)置算法編輯器
【1】選擇SeedKey算法的函數(shù);
【2】打開算法校驗(yàn)器,可以于檢查算法結(jié)果是否正確;
【3】打開編寫代碼的窗口;
【4】可用于導(dǎo)出所編寫代碼的為DLL文件;
【5】選擇一個需要的SeedKey函數(shù)接口,并支持?jǐn)U展自定義函數(shù)接口;
【6】SeedKey源代碼編輯工作區(qū),用于解密算法代碼的輸入與編輯。
值得注意的是,TSMaster 目前提供了最常用的算法函數(shù)的接口形式,如果使用自己特殊的函數(shù)接口形式,可以聯(lián)系上海同星支持,可將相應(yīng)接口增加到選項(xiàng)中。
另外,所有的接口函數(shù)都定義了返回值類型為s32。增加此約束,主要是增加函數(shù)的嚴(yán)謹(jǐn)性。其中,返回值為0表示成功,返回值為其他值則有對應(yīng)的錯誤碼。因此,在編輯代碼的時候,最后一行需要加上return返回值,如圖4-19所示,否則系統(tǒng)執(zhí)行函數(shù)過后會認(rèn)為算法執(zhí)行失敗,不予往后面執(zhí)行。
圖4-19 函數(shù)return返回值
5、TSMaster 基礎(chǔ)診斷配置
基礎(chǔ)診斷模塊包含基本診斷服務(wù)和組合服務(wù)。對于診斷過程中獨(dú)立執(zhí)行的命令,在基本診斷服務(wù)中;用于文件下載的$34、$36和$37放入組合服務(wù)中。如圖5-1所示。
圖5-1 基礎(chǔ)診斷配置
5.1 添加刪除服務(wù)命令
把鼠標(biāo)放到需要添加和刪除的服務(wù)命令上方,右鍵展開,選擇是否需要添加和刪除該服務(wù),如圖5-2所示。
圖5-2 添加和刪除的服務(wù)命令
5.2 配置基本診斷參數(shù)
以診斷會話控制為例,主要包含如下參數(shù)的配置,如圖5-3所示。
圖5-3 配置基本診斷參數(shù)
【1】 配置服務(wù)名稱:用戶可以配置一個易于理解和管理的服務(wù)名稱。
【2】 是否功能標(biāo)識符:本診斷服務(wù)是否采用功能標(biāo)識符發(fā)送診斷請求。
【3】 是否有回復(fù):用戶可配置是否檢查此服務(wù)的回復(fù)內(nèi)容。
【4】 選擇子服務(wù)類型:比如 Session Control 中的 DiagnosticSessionType 就包含如上圖所示的 Session 類型。
【5】 參數(shù)列表的字節(jié)序:支持Motorola 和 Intel 字節(jié)序。
【6】 參數(shù)列表:診斷服務(wù)除了診斷 ID 和子服務(wù)類型 ID,還可以帶著參數(shù)發(fā)送給被測 ECU。參數(shù)列表包含請求和應(yīng)答幀的參數(shù)列表,可以選擇增加/刪除多種類型的參數(shù)。如圖5-4。
圖5-4 新增與刪除參數(shù)
其中,根據(jù)不同服務(wù)指令,可以設(shè)置不同的ID參數(shù)。比如診斷請求會話里的診斷會話類型參數(shù)是必選設(shè)置,而參數(shù)列表是可選的。在修改配置后,界面上方會實(shí)時顯示實(shí)際診斷報(bào)文的示例報(bào)文,如請求協(xié)議數(shù)據(jù)包是:【10 01 xx xx】:xx 表示該參數(shù)是可變的,根據(jù)用戶實(shí)際填入的數(shù)據(jù)確定;診斷儀將要收到的應(yīng)答協(xié)議數(shù)據(jù)包為【50 01 xx】。
圖5-5 請求與應(yīng)答參數(shù)設(shè)置
5.3 診斷服務(wù)參數(shù)
診斷模塊參數(shù)支持 7 種數(shù)據(jù)類型。包括:UInt,Int,Single,Double,HexArray,Ascii和 SystemVar。如圖5-6。
圖5-6 診斷模塊參數(shù)類型
【1】 UInt:無符號整型,其數(shù)據(jù)長度必須小于32bits,并且為8的倍數(shù),可以為8,16,24,32bits。
【2】 Int:有符號整形,其數(shù)據(jù)長度必須小于32bits,并且為8的倍數(shù),可以為8,16,24,32bits
【3】 Single:單精度浮點(diǎn)數(shù),數(shù)據(jù)長度為固定的32bits。用戶直接輸入輸出浮點(diǎn)數(shù)據(jù)。
【4】 Double:單精度浮點(diǎn)數(shù),數(shù)據(jù)長度為固定的64bits。用戶直接輸入輸出浮點(diǎn)數(shù)據(jù)。
【5】 Hex Array:十六進(jìn)制數(shù)組,數(shù)據(jù)長度為8的倍數(shù)。輸入數(shù)據(jù)滿足16禁止數(shù)據(jù)類型。
【6】 ASCII:ASCII字符串,數(shù)據(jù)長度為8的倍數(shù)。輸入數(shù)據(jù)為ASCII字符數(shù)組,轉(zhuǎn)化為16進(jìn)制后進(jìn)行發(fā)送。
【7】 SystemVar:系統(tǒng)變量,數(shù)據(jù)長度為8的倍數(shù)。TSMaster 系統(tǒng)變量可支持 Uint,Int,Single,Double,UintArray,DoubleArray,HexArray,String 等各種數(shù)據(jù)類型。其具體的數(shù)據(jù)類型由系統(tǒng)變量自身定義所決定。
5.4 配置組合服務(wù)
診斷組合服務(wù)($343637下載文件)共包含通用配置、擦除Flash配置、請求和傳輸數(shù)據(jù)配置、傳輸退出配置、擴(kuò)展和輔助的配置。如下詳細(xì)介紹每個配置。
5.4.1 通用配置
通用配置中支持加載下載文件格式為hex/bin/s19/mot/srec/vdf等等??梢詫ζ鹗嫉刂泛蛿?shù)據(jù)長度的字節(jié)數(shù)修改,調(diào)調(diào)整校驗(yàn)和字節(jié)序和自定義CRC校驗(yàn)算法導(dǎo)入和修改,并可通過下載文件查看器下載文件內(nèi)容。如圖5-7。
圖5-7 通用配置
【1】服務(wù)名稱:配置該服務(wù)的名稱
【2】文件名稱:加載可執(zhí)行文件,支持hex\bin\s19\mot\srec\vdf...
【3】hex viewer:TSMaster 內(nèi)置了可執(zhí)行文件查看編輯器 TSHexViewer,用戶可以用該工具,查看載入Hex 文件的詳細(xì)信息,如圖5-8所示。
圖5-8 查看載入的下載文件
【4】地址和長度標(biāo)識符。可修改起始地址和數(shù)據(jù)長度的字節(jié)。
【5】校驗(yàn)和相關(guān)配置。校驗(yàn)和字節(jié)序支持英特爾和摩托羅拉。在程序下載過程中,為了保證數(shù)據(jù)的完整性,需要引入 Checksum 算法對數(shù)據(jù)的完整性和有效性進(jìn)行校驗(yàn)。TSMaster 診斷模塊的符合服務(wù)中,引入了主流的CRC 算法進(jìn)行校驗(yàn)。其選擇框如下圖所示,同時可實(shí)現(xiàn)自定義CRC校驗(yàn)算法導(dǎo)入和修改,此處自定義算法只能是DLL文件的形式,如圖到5-9。
圖5-9 支持自定義CRC算法導(dǎo)入與修改
當(dāng)加載好下載文件后,選擇指定的算法過,診斷模塊會對可執(zhí)行文件計(jì)算其檢驗(yàn)和值,包括該可執(zhí)行文件每一個數(shù)據(jù)塊的檢驗(yàn)和值以及文件整體的檢驗(yàn)和值,如圖5-10所示。
圖5-10 文件與數(shù)據(jù)塊檢驗(yàn)和值
TSMaster的診斷模塊能夠直接把系統(tǒng)變量作為參數(shù),在計(jì)算好每一個數(shù)據(jù)塊與文件的檢驗(yàn)和值過后,會進(jìn)一步自動轉(zhuǎn)化成系統(tǒng)變量,如圖5-11。
圖5-11 檢驗(yàn)和系統(tǒng)變量
生成好的檢驗(yàn)和系統(tǒng)變量,可以通過系統(tǒng)變量的類型添加到服務(wù)參數(shù)中。以常用的校驗(yàn)可執(zhí)行文件的有效性為例,配置如下的 $31例程控制服務(wù)命令,就可以實(shí)現(xiàn)對文件有效性的檢查,如圖5-12。
圖5-12 檢驗(yàn)和系統(tǒng)變量添加到服務(wù)參數(shù)
5.4.2 擦除Flash配置
擦除Flash配置,可以配置無自動擦除、擦除Hex地址范圍、下載每一個數(shù)據(jù)塊之前擦除對應(yīng)塊。期望回復(fù)值以實(shí)際ECU的響應(yīng)進(jìn)行填寫輸入。如圖5-13。
圖5-13 擦除Flash配置
5.4.3 請求和傳輸數(shù)據(jù)配置
請求傳輸數(shù)據(jù)命令的數(shù)據(jù)格式可以修改,比如從00修改為AA??梢宰远x最大傳輸數(shù)據(jù)塊的長度,默認(rèn)為0x202,實(shí)際傳輸層數(shù)據(jù)包為514字節(jié)。如圖5-14。
圖5-14 請求和傳輸數(shù)據(jù)配置
5.4.4 傳輸退出配置
傳輸退出配置,可以設(shè)置如下配置,如圖5-15:
● 無校驗(yàn)
● 在ECU端校驗(yàn)($37+塊校驗(yàn)和)
● 用戶自定義
● 在PC端校驗(yàn)($37+塊校驗(yàn)和)
校驗(yàn)和類型選擇無校驗(yàn)或校驗(yàn)每一個數(shù)據(jù)塊
圖5-15 傳輸退出配置
5.4.5 擴(kuò)展
擴(kuò)展配置可以添加簽名文件、特殊的CRC算法,與通用配置-校驗(yàn)和相關(guān)配置里的自定義CRC算法導(dǎo)入相比,此處更靈活可支持任意格式的文件,如圖5-16。
圖5-16 擴(kuò)展配置
5.4.6 輔助
輔助中可對下載文件按連續(xù)地址的大小分割,比如將數(shù)據(jù)塊按0x1000進(jìn)行分割。如圖5-17。
圖5-17 下載文件分割設(shè)置
6、診斷控制臺
診斷控制臺作為診斷命令調(diào)試器,可以讓用戶選擇每一條單獨(dú)的服務(wù)命令,編輯發(fā)送服務(wù)報(bào)文和接收服務(wù)報(bào)文,進(jìn)行測試驗(yàn)證。主要包含四塊工作區(qū)域,分別為服務(wù)命令選擇區(qū),手動命令輸入?yún)^(qū),診斷命令發(fā)送/應(yīng)答區(qū)和診斷信息區(qū),如圖6-1所示。
圖6-1 控制臺工作分區(qū)
6.1 服務(wù)命令選擇區(qū)
服務(wù)命令選擇區(qū)中是根據(jù)基礎(chǔ)配或者加載ODX/PDX診斷數(shù)庫生成的可執(zhí)行服務(wù)列表。用戶可以雙擊執(zhí)行選中的服務(wù)或者右鍵選擇執(zhí)行該服務(wù),如圖6-2所示。
圖6-2 服務(wù)命令選擇區(qū)
6.2 手動命令輸入?yún)^(qū)
測試過程中,如果用戶想發(fā)送任意的診斷命令,則可以在手動命令輸入?yún)^(qū)中輸入自己想要發(fā)送的任意報(bào)文。在輸入診斷報(bào)文過后,點(diǎn)擊右邊的Execute 按鈕,就可以完成診斷報(bào)文的發(fā)送。為了增加測試靈活性,還可以通過選擇框選擇采用物理地址發(fā)送還是功能 ID 發(fā)送診斷請求報(bào)文。如圖6-3。
圖6-3 手動命令輸入?yún)^(qū)
6.3 診斷命令發(fā)送/應(yīng)答區(qū)
在本區(qū)域中,用戶可以編輯發(fā)送數(shù)據(jù)段以及期望接收數(shù)據(jù)段,啟動執(zhí)行來驗(yàn)證被測ECU 的診斷響應(yīng)是否符合實(shí)際要求,以及是否同步診斷系統(tǒng)變量,如圖6-4。
圖6-4 診斷命令發(fā)送/應(yīng)答區(qū)
6.4 診斷信息區(qū)
該區(qū)域分為服務(wù)層信息和ISO15765-2數(shù)據(jù)流區(qū),其中服務(wù)層信息顯示當(dāng)前在診斷模塊中的操作步驟流程與響應(yīng)信息。如圖6-5。
圖6-5 服務(wù)層信息
當(dāng)診斷服務(wù)沒有得到肯定響應(yīng)或者無響應(yīng)時,報(bào)錯提示信息等。如圖6-6。
圖6-6 服務(wù)層信息負(fù)響應(yīng)提示
ISO15765-2數(shù)據(jù)流區(qū),用于顯示診斷模塊詳細(xì)的服務(wù)層報(bào)文信息。結(jié)合前面配置的診斷數(shù)據(jù)庫,還可以把原始的報(bào)文數(shù)據(jù)解析成物理信號等呈現(xiàn)。以22服務(wù)為例,可以查看到診斷服務(wù)層解析后的參數(shù)數(shù)據(jù),如圖6-7。
圖6-7 ISO15765-2數(shù)據(jù)流區(qū)
7、TSMaster自動診斷流程與注冊系統(tǒng)變量
7.1 診斷流程創(chuàng)建與管理
TSMaster的自動化診斷流程不僅僅是針對某一個具體的應(yīng)用,而是針對整個項(xiàng)目的診斷流程進(jìn)行管理。用戶可以根據(jù)完整項(xiàng)目的需求,配置測試診斷流程組,每個組里面可以包含多個不同的診斷流程,在一個診斷流程中包含具體的診斷步驟。
在UDS流程管理欄右鍵鼠標(biāo),展開流程用例管理的操作菜單,如圖7-1。
圖7-1 流程用例管理的操作菜單
操作菜單從上到下分別包含如下操作:
【1】切換UDS流程:切換到當(dāng)前UDS流程節(jié)點(diǎn)。雙擊該節(jié)點(diǎn),也可以達(dá)到切換到該流程節(jié)點(diǎn)的效果。切換到該節(jié)點(diǎn)過后,節(jié)點(diǎn)圖標(biāo)和背景色為藍(lán)色,同時右邊的節(jié)點(diǎn)流程中展開顯示該UDS流程包含的詳細(xì)診斷步驟,如圖7-2。
圖7-2 切換UDS流程
【2】啟動UDS流程:啟動該節(jié)點(diǎn)的診斷流程。點(diǎn)擊該選項(xiàng)后,診斷模塊按照右邊的配置,從上往下自動執(zhí)行診斷步驟。
【3】中斷UDS流程:點(diǎn)擊該節(jié)點(diǎn)后,中斷正在執(zhí)行的診斷流程步驟。
【4】添加流程組:新增診斷流程組。比如新增Test Group1。診斷組下面可以再增加診斷流程用例,其本身不包含診斷步驟。
【5】添加新的測試流程:新增一個診斷流程用例,在診斷流程用例下面可以增加詳細(xì)的診斷步驟。
【6】編程名稱:選中一個流程組或者流程用例,右鍵選中Edit name編輯該節(jié)點(diǎn)的名稱。
【7】注冊系統(tǒng)變量:選擇一個診斷流程用例,注冊為系統(tǒng)變量。
【8】反注冊系統(tǒng)變量:選中已注冊為系統(tǒng)變量的診斷流程用例,取消注冊系統(tǒng)變量。
【9】刪除所選:刪除選中的節(jié)點(diǎn)。
【10】刪除所有:清楚所有的節(jié)點(diǎn)。
7.2 配置自動診斷流程
TSMaster自動診斷流程,可以快速配置多組診斷流程并可以設(shè)置循環(huán)運(yùn)行和注冊系統(tǒng)變量用于外部調(diào)用等,如下進(jìn)行詳細(xì)介紹。
7.2.1 自動診斷工具欄介紹
診斷流程配置工具欄如圖7-3所示。
圖7-3 診斷流程配置工具欄
圖標(biāo)依次從左往右為:
【1】新增診斷流程組。
【2】新增診斷流程用例。
【3】刪除選中的診斷流程組/用例。
【4】啟動配置好的診斷流程。
【5】終端正在運(yùn)行的診斷流程。
【6】鎖定/解鎖流程配置區(qū)域。如果鎖定該區(qū)域,在診斷流程區(qū)域變得不可編輯。
【7】全選/全不選診斷流程。
【8】使能設(shè)置的循環(huán)運(yùn)行次數(shù)。
【9】實(shí)際運(yùn)行次數(shù)顯示。
7.2.2 自動化診斷流程配置步驟
在UDS測試流程區(qū)里,右鍵創(chuàng)建新創(chuàng)建一個UDS流程,雙擊該流程進(jìn)入后,解鎖邏輯器,并可以設(shè)置本流程可以循環(huán)運(yùn)行的次數(shù),默認(rèn)不使能循環(huán)運(yùn)行。如圖7-4。
圖7-4 創(chuàng)建新的UDS流程
然后在邏輯區(qū)右鍵添加步驟或者刪除步驟,并進(jìn)一步解析管理欄中功能。如圖7-5。
圖7-5 診斷步驟添加與管理
【1】在左邊的管理欄中選中一個診斷流程節(jié)點(diǎn)。
【2】在右邊的編輯區(qū)域,添加、刪除、編輯診斷步驟。
【3】添加步驟后,選擇該步驟類型。
【4】編輯步驟名稱。
【5】選擇該步驟地址類型,物理地址還是功能地址。
【6】配置詳細(xì)的診斷請求數(shù)據(jù)包。
【7】配置詳細(xì)的診斷應(yīng)答數(shù)據(jù)包。
【8】配置本步驟結(jié)束后步驟之間的等待時間。
【9】配置本步驟發(fā)生錯誤的錯誤處理方法。
7.2.3 診斷步驟類型
測試步驟中,為了增加診斷配置的靈活性,設(shè)計(jì)了4種類型可供選擇,主要包含:普通步驟,選擇已有配置,種子和密鑰,測試儀在線。通過這4種類型,基本上涵蓋了市面上所有主流的診斷流程需求,下面詳細(xì)介紹每種類型的特點(diǎn)。如圖7-6。
圖7-6 診斷步驟類型
【1】普通步驟:主要用于一些簡單的請求數(shù)據(jù)和應(yīng)答數(shù)據(jù)都很直接的場合。直接在請求服務(wù)中填入想要發(fā)送的請求數(shù)據(jù),在應(yīng)答服務(wù)中填入期望的應(yīng)答報(bào)文,比如服務(wù)請求數(shù)據(jù)為【10 01】,服務(wù)應(yīng)答數(shù)據(jù)為【50 01 12 34】。如圖7-7。如果有些服務(wù)不需要響應(yīng),則可以不設(shè)置有回復(fù)。
圖7-7 普通步驟類型
【2】選擇已有配置:該配置設(shè)計(jì)的目的,就是讓用戶選擇在基礎(chǔ)診斷設(shè)置中已經(jīng)配置好的診斷服務(wù),這種方式是TSMaster最推薦的配置方式。選擇已有配置過程,如圖7-8所示。
圖7-8 選擇已有配置
【3】種子和密鑰:種子和密鑰只需要選擇種子等級和密鑰等級參數(shù)即可,解密的DLL直接關(guān)聯(lián)到傳輸層參數(shù)配置載入的種子和密鑰DLL中,如圖7-9所示:
圖7-9 種子和密鑰
對此,無論是在診斷控制臺模塊中,還是自動診斷流程模塊,都是需要先配置好傳輸層的參數(shù)配置。
【4】測試儀在線:為了支持更加靈活的測試需求,在自動化流程步驟中,提供了打開和關(guān)閉測試儀在線的命令選擇,以及配置該命令數(shù)據(jù)以及周期間隔:
▲ 是否啟動(start)/停止(stop)該命令,如圖7-10:
圖7-10 啟動/停止測試儀在線命令
▲ 配置測試儀在線的命令的數(shù)據(jù)以及周期間隔,如7-10:
圖7-11 配置測試儀在線的命令
7.2.4 步驟間隔時間
診斷流程模塊步驟跟步驟之間的延時是可以設(shè)置的,單位為ms,如圖7-12:
圖7-12 配置測試儀在線的命令
7.2.5 屬性
在屬性中,可以設(shè)置響應(yīng)出錯后的以及本指令是停止還是繼續(xù)運(yùn)行,如圖7-13所示:
圖7-13 屬性
在TSMaster后續(xù)產(chǎn)品規(guī)劃中,響應(yīng)出錯后允許跳轉(zhuǎn)到指定的流程中(比如跳轉(zhuǎn)到擦除流程中),進(jìn)一步增加自動運(yùn)行流程模塊的靈活性。
7.2.6 使能步驟/位置調(diào)整
對于已經(jīng)完成配置的診斷流程步驟,用戶根據(jù)左邊的選擇框來勾選想要執(zhí)行的診斷步驟。如圖7-14。
關(guān)于執(zhí)行順序調(diào)整:無論是測試用例組,測試用例還是測試用例中的具體步驟,用戶想調(diào)整相互之間執(zhí)行順序的時候,直接拖拽對應(yīng)的測試用例到相應(yīng)位置即可。
圖7-14 診斷流程步驟使能
7.3診斷模塊的內(nèi)生系統(tǒng)變量
在TSMaster新添加基礎(chǔ)診斷模塊后,系統(tǒng)變量管理器會自動生成所有者為診斷模塊Diagnostic的系統(tǒng)變量,通過修改系統(tǒng)變量可以配置對應(yīng)的參數(shù)。如圖7-15。
圖7-15 診斷模塊系統(tǒng)變量
7.3.1 診斷服務(wù)通用系統(tǒng)變量
診斷內(nèi)生的通用系統(tǒng)變量包含:
● 導(dǎo)出工程ExportProject:用于導(dǎo)出診斷工程。
● 導(dǎo)入工程ImportProject:用于導(dǎo)入已有的診斷工程。
● 診斷儀在線TesterIsPresent:是否啟動診斷儀在線命令。
● DLC:FD幀的最大DLC值,該參數(shù)只有在FD模式下才有效。
● 接收連續(xù)幀最小幀間隔STMin(R):用戶自定義接收端STMin參數(shù),單位ms。如設(shè)置為0,表示支持以最短的事件間隔接收,。
● 發(fā)送連續(xù)幀最小幀間隔STMin(T):用戶定義發(fā)送端STMin參數(shù),單位ms。
● 用戶自定義連續(xù)幀最小幀間隔User Define STMin:是否手動定義連續(xù)幀最小幀間隔,單位ms。
● 填充字節(jié)FiledByte:發(fā)送診斷幀填充字節(jié)。
● 功能ID類型FunctionalIDType:傳輸層功能ID的類型,0是標(biāo)準(zhǔn)幀,1是擴(kuò)展幀。
● 功能ID (FunctionalID):傳輸層功能ID。
● 應(yīng)答ID類型ResIDType:傳輸層應(yīng)答ID的類型,0是標(biāo)準(zhǔn)幀,1是擴(kuò)展幀。
● 應(yīng)答ID (ResID):傳輸層應(yīng)答ID。
● 請求ID類型ReqIDType:傳輸層請求ID的類型,0是標(biāo)準(zhǔn)幀,1是擴(kuò)展幀。
● 請求ID (ReqID):傳輸層請求ID。
● 總線類型BusType:設(shè)置總線類型:0代表CAN總線;1代表CANFD總線;2代表LIN總線;3代表DOIP(基于以太網(wǎng)的診斷)。
● 通道Chn:設(shè)置診斷模塊的通道參數(shù),比如0代表通道1,1代表通道2。
● 自動化流程進(jìn)度UDSProgress:自動診斷流程的實(shí)時進(jìn)度,該變量用來獲取自動診斷流程的運(yùn)行狀態(tài)。
● 安全訪問種子和密鑰SeedAndKeyDLL:設(shè)置種子&密鑰DLL的絕對路徑,使用時注意轉(zhuǎn)義字符。
● P2擴(kuò)展時間P2Extended:設(shè)置P2擴(kuò)展時間。
● P2擴(kuò)展時間P2TimeOut:設(shè)置P2超時時間。
● S3服務(wù)端時間S3ServerTime:設(shè)置S3服務(wù)端時間。
● S3服務(wù)端時間S3ClientTime:設(shè)置S3客戶端時間。
7.3.2 診斷服務(wù)特定系統(tǒng)變量
在基礎(chǔ)診斷配置的復(fù)合診斷服務(wù)添加新的服務(wù)后,系統(tǒng)變量管理器同樣會生成對應(yīng)的系統(tǒng)變量:服務(wù)名_DataFile,此變量為下載文件的絕對路徑,修改此變量可控制下載文件的載入與切換。如圖7-16。
圖7-16 下載文件路徑系統(tǒng)變量
此外,當(dāng)載入下載文件后,系統(tǒng)變量控制器會根據(jù)選擇的校驗(yàn)和算法生成每塊校驗(yàn)和,及總校驗(yàn)和,下載文件的首地址和長度,如果已經(jīng)添加了符合診斷服務(wù),載入了下載文件,并且在基本診斷服務(wù)中關(guān)聯(lián)了下載文件相關(guān)變量,那么在替換下載文件的同時,這些關(guān)聯(lián)的變量也會隨之改變,最小的工程修改實(shí)現(xiàn)文件的靈活切換。
7.3.3 自動診斷流程的注冊系統(tǒng)變量
在診斷控制臺中可以根據(jù)需要靈活配置診斷服務(wù),這些診斷服務(wù)配置好后,用戶需要在診斷控制臺中雙擊啟動該診斷服務(wù)。
如果用戶希望在Panel界面中或者程序中啟動診斷流程命令,步驟如下:
【1】首先在診斷Basic Diagnostic Config窗體中,選中目標(biāo)服務(wù),然后右鍵菜單把該診斷服務(wù)注冊為系統(tǒng)變量,如圖7-17所示。
圖7-17 診斷服務(wù)注冊為系統(tǒng)變量
注冊完成后,該流程的圖標(biāo)多出3個小彩圓,表示成為一個注冊系統(tǒng)變量的服務(wù),未注冊的流程為藍(lán)色圓,如圖7-18所示:
圖7-18 注冊為系統(tǒng)變量的圖標(biāo)變化
【2】注冊完成后,在系統(tǒng)變量管理器中,就可以看到生成系統(tǒng)變量_Start和_Result如圖7-19。
圖7-19 注冊為系統(tǒng)變量的變量
其中_Start的數(shù)值賦值為:
● 0是空閑狀態(tài)。
● 1是正在執(zhí)行狀態(tài)。
● 2是執(zhí)行成功。
● 3是執(zhí)行失敗。
_Result的數(shù)值結(jié)果為:
● >0表示啟動診斷流程
● =0表示中斷停止診斷流程
● <0為非法參數(shù)。
【3】在面板Panel中添加按鈕button控件,并關(guān)聯(lián)生成好的系統(tǒng)變量流程名_Start,將將按鈕按下事件設(shè)置為1,如圖7-20。
圖7-20 面板按鈕控件關(guān)聯(lián)系統(tǒng)變量
【4】運(yùn)行程序,點(diǎn)擊Panel的測試按鈕,將值1賦給流程名_Start,診斷模塊執(zhí)行相應(yīng)的診斷流程,實(shí)現(xiàn)自動運(yùn)行診斷流程。
8、DoIP診斷典型應(yīng)用
本文設(shè)計(jì)了一個簡單的 BootLoader 流程來說明如何基于 TSMaster DoIP模塊配置一個Flash BootLoader 流程。
8.1 配置刷寫例程
【1】首先創(chuàng)建UDS流程:注意切換編輯器為解鎖狀態(tài),否則無法添加新的流程步驟。如圖8-1。
圖8-1 解鎖編輯器
【2】切換默認(rèn)會話,切換擴(kuò)展會話,然后切換整車制造商自定義會話,在基礎(chǔ)診斷配置先提前配置好,如圖8-2。然后在自動診斷流程中使用選擇已有配置進(jìn)行添加,如圖8-3。
圖8-2 基礎(chǔ)診斷配置會話服務(wù)
圖8-3 切換默認(rèn)會話、擴(kuò)展會話、整車制造商自定義會話
【3】添加種子和密鑰步驟,解鎖ECU,如圖8-4。
圖8-4 種子和密鑰步驟
【4】基于讀取ID:F080位置處的數(shù)據(jù)。
方式1:使用普通步驟配置形式,如圖8-5。
圖8-5 普通步驟讀取DID F188零件號
方式2:在基礎(chǔ)診斷配置中配置好,然后在流程中使用選擇已有配置,如圖8-6。
圖8-6 選擇已有配置讀取DID F080
【5】接著在IDF086處寫入數(shù)據(jù)20 11 20 00 00 00 00 00 00,如圖8-7。
圖8-7 IDF186處寫入字符串
【6】檢查刷寫前提條件,如圖8-8。
圖8-8 檢查刷寫前提條件
【7】添加FlashDriver/應(yīng)用程序文件流程。首先在基礎(chǔ)診斷配置添加FlashDriver和應(yīng)用程序文件,如圖8-9。
圖8-9 基礎(chǔ)診斷配置添加刷寫文件
然后在自動診斷流程中選擇相應(yīng)的已有配置,選擇創(chuàng)建好的組合下載服務(wù)。如圖8-10。
圖8-10 選擇已有的組合下載服務(wù)
【8】采用例程控制擦除Flash。通過診斷基礎(chǔ)設(shè)置配置好后擦除指令,將起始地址和數(shù)據(jù)長度的系統(tǒng)變量,通過系統(tǒng)變量的方式添加請求參數(shù),如圖8-11。
圖8-11 診斷基礎(chǔ)配置擦除指令
然后通過選擇已有配置加入到流程中。如圖8-12。
圖8-12 例程控制擦除Flash
8.2 DoIP診斷流程一鍵運(yùn)行
在完成配置后,總的配置流程如圖8-13所示。
圖8-13 完成Flash BootLoader配置流程
連接以太網(wǎng)被測件之后,通過按鈕一鍵執(zhí)行自動診斷流程,當(dāng)每個步驟都是正響應(yīng)時,會顯示為綠色,如圖8-14。
圖8-14 一鍵執(zhí)行自動診斷流程
在Ethernet報(bào)文消息中可以查看完整的DoIP BootLoader刷寫流程,也可以使用總線記錄將過程報(bào)文記錄成blf文件保存。
圖8-15 Ethernet診斷流程報(bào)文
以上,基于TSMaster的DoIP模塊,實(shí)現(xiàn)零代碼方式,可以非常簡單快速地開發(fā)基于以太網(wǎng)的DoIP診斷流程應(yīng)用。
來源:第一電動網(wǎng)
作者:蓋世汽車
本文地址:http://www.healthsupplement-reviews.com/news/shichang/226805
以上內(nèi)容轉(zhuǎn)載自蓋世汽車,目的在于傳播更多信息,如有侵僅請聯(lián)系admin#d1ev.com(#替換成@)刪除,轉(zhuǎn)載內(nèi)容并不代表第一電動網(wǎng)(www.healthsupplement-reviews.com)立場。
文中圖片源自互聯(lián)網(wǎng),如有侵權(quán)請聯(lián)系admin#d1ev.com(#替換成@)刪除。