車載以太網(wǎng)診斷協(xié)議,Diagnostics over Internet Protocol簡(jiǎn)稱為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)行展開。
本文關(guān)鍵詞:DoIP,車載以太網(wǎng)診斷,基礎(chǔ)診斷,自動(dòng)診斷流程,以太網(wǎng)
目錄
Catalog
1.TSMaster DoIP的同星以太網(wǎng)硬件準(zhǔn)備
2.TSMaster DoIP模塊如何開始使用
3.TSMaster被測(cè)儀IP網(wǎng)絡(luò)接口配置
4.TSMaster DoIP診斷傳輸層配置
5.TSMaster基礎(chǔ)診斷配置
6.TSMaster診斷控制臺(tái)
7.TSMaster自動(dòng)診斷流程與注冊(cè)系統(tǒng)變量
8.診斷典型應(yī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
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ù)的仿真、分析、測(cè)試,也可以實(shí)現(xiàn)DoIP和SOMEIP等功能。同時(shí),TE1051設(shè)備小巧且外殼堅(jiān)固,無需外部供電,適用于各種環(huán)境工況下的DoIP診斷刷寫。
圖1-1 TE1051硬件
TE1021
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。可適用于不同以太網(wǎng)接口的DoIP應(yīng)用場(chǎng)景,同時(shí)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】模塊,可以添加多個(gè)DoIP模塊,如圖2-2。
圖2-2 添加DoIP模塊
▲ Step3:根據(jù)ECU的配置設(shè)置車載以太網(wǎng)傳輸層參數(shù),比如診斷儀類型、通道、被測(cè)件IP地址等以太網(wǎng)參數(shù)和安全訪問算法。具體操作流程在下文第3章節(jié)展開。
▲Step4:當(dāng)配置好傳輸層相關(guān)參數(shù)與安全算法,啟動(dòng)工程后,點(diǎn)擊【Connect DUT】連接車載控制器。當(dāng)連接成功后,基礎(chǔ)診斷窗口和系統(tǒng)消息窗口會(huì)提示:連接以太網(wǎng)被測(cè)件成功,如圖2-3。以及在ISO15765-2的地方可以看到連接的服務(wù)消息,如圖2-4。
圖2-3 連接以太網(wǎng)被測(cè)件
圖2-4 ?ISO5765-2消息
▲Step5: 服務(wù)以及流程都配置好之后,在【自動(dòng)診斷流程】處直接打開啟動(dòng)按鈕,執(zhí)行診斷流程。如圖2-5所示。
圖2-5 執(zhí)行自動(dòng)診斷流程
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】,然后打開【添加】按鈕,輸入診斷測(cè)試儀的IP地址和IP掩碼,如圖3-4。
圖3-4 添加IP地址
4、TSMaster DoIP診斷傳輸層配置
TSMaster 提供了DoIP的診斷傳輸層的配置功能,用戶可以根據(jù)需求配置相應(yīng)的傳輸層配置比如診斷儀類型、通道、IP地址、端口和請(qǐng)求和應(yīng)答ID、以及安全算法等一系列配置。
4.1 診斷傳輸層
診斷傳輸層的配置根據(jù)診斷儀類型分為兩種:TE系列設(shè)備和系統(tǒng)TCP/IP。
4.1.1 TE系列設(shè)備
TE系列設(shè)備類型以TE1051為例,TE1051是一個(gè)1路以太網(wǎng)轉(zhuǎn)USB接口的工具,通過USB接口傳輸?shù)絇C上,并通過TSMaster軟件實(shí)現(xiàn)以太網(wǎng)數(shù)據(jù)的DoIP功能。
對(duì)于DoIP診斷傳輸層ISO TP,包含被測(cè)件和測(cè)試儀的以太網(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 支持多個(gè)診斷模塊同時(shí)在線工作,這里用于選擇當(dāng)前診斷模塊的應(yīng)用邏輯通道,通過下拉列表進(jìn)行選擇,如圖4-4所示。
圖4-4 ?Ethernet 通道選擇
▲IP地址掩碼:以太網(wǎng)通信使用的IP地址掩碼。
▲被測(cè)件IP:被測(cè)件的IP地址。
在DoIP通信中,IP地址掩碼和被測(cè)件IP地址需要根據(jù)具體的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)和通信需求進(jìn)行設(shè)置。
▲被測(cè)件端口:被測(cè)件端口號(hào)。
在ISO 13400標(biāo)準(zhǔn)中端口13400被指定為DoIP通信的默認(rèn)端口號(hào)。
▲測(cè)試儀IP:測(cè)試儀的IP地址。
測(cè)試儀IP為連接PC的測(cè)試設(shè)備(如同星的TE051)的IP地址。根據(jù)IP地址掩碼和被測(cè)件IP,將PC的IP地址和被測(cè)件IP配置在同一網(wǎng)段內(nèi),以此兩者可以正常連接和通信。測(cè)試儀IP地址的配置在前面的第3章已詳細(xì)說明。
▲測(cè)試儀端口:測(cè)試儀或PC的端口
注意:對(duì)于診斷工具的端口號(hào)設(shè)置并沒有固定的規(guī)定,用戶可以根據(jù)需求自己設(shè)置或者使用軟件自動(dòng)分配的端口號(hào)。
▲請(qǐng)求ID / 應(yīng)答ID / 功能ID:設(shè)置診斷模塊PC工具端的診斷請(qǐng)求/應(yīng)答/功能幀的 ID。
4.1.2系統(tǒng)TCP/IP
系統(tǒng)TCP/IP類型以TE1021為例,TE1021是直接通過系統(tǒng)的網(wǎng)口連接PC。
DoIP診斷傳輸層ISO TP,包含被測(cè)件和測(cè)試儀的以太網(wǎng)參數(shù)和診斷ID參數(shù),如圖4-5所示。
圖4-5 ?DoIP診斷傳輸層ISO TP配置
DoIP診斷傳輸層ISO TP的具體參數(shù)如下分類介紹:
▲ 總線類型:診斷傳輸層類型。
使用同星DoIP功能選擇總線類型為【Ethernet】,如圖4-6所示。
圖4-6 ?DoIP診斷總線類型
▲ 診斷儀類型:診斷設(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地址掩碼。
▲被測(cè)件IP:被測(cè)件的IP地址。
在DoIP通信中,IP地址掩碼和被測(cè)件IP地址需要根據(jù)具體的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)和通信需求進(jìn)行設(shè)置。
▲被測(cè)件端口:被測(cè)件端口號(hào)。
在ISO 13400標(biāo)準(zhǔn)中端口13400被指定為DoIP通信的默認(rèn)端口號(hào)。
▲測(cè)試儀IP:PC的系統(tǒng)的網(wǎng)口的IP地址。
根據(jù)IP地址掩碼和被測(cè)件IP,將PC的IP地址和被測(cè)件IP配置在同一網(wǎng)段內(nèi),使得兩者可以正常連接和通信。找到電腦的【設(shè)置】->【網(wǎng)絡(luò)和Internet】,找到網(wǎng)口所連接的以太網(wǎng),選擇【屬性】,在【IP分配】選擇【編輯】按鈕。選擇手動(dòng),打開IPv4,填寫IP地址以及子網(wǎng)掩碼。如圖4-9所示。
圖4-9 ?PC端以太網(wǎng)IP地址設(shè)置
▲ 測(cè)試儀端口:測(cè)試儀或PC的端口
注意:對(duì)于診斷工具的端口號(hào)設(shè)置并沒有固定的規(guī)定,用戶可以根據(jù)需求自己設(shè)置或者使用軟件自動(dòng)分配的端口號(hào)。
▲ 請(qǐng)求ID / 應(yīng)答ID / 功能ID:設(shè)置診斷模塊PC工具端的診斷請(qǐng)求/應(yīng)答/功能幀的 ID。
4.2 診斷服務(wù)層
診斷服務(wù)層參數(shù)主要包含路由激活,S3,P2 時(shí)間參數(shù),以及加載 SeedKey 的 安全訪問。如圖4-10所示。
圖4-10 ?診斷服務(wù)層參數(shù)
4.2.1 路由激活
【連接DUT之后自動(dòng)執(zhí)行路由激活命令】:勾選后,當(dāng)測(cè)試儀或PC與被測(cè)件建立網(wǎng)絡(luò)連接后,軟件自動(dòng)執(zhí)行路由激活命令。
【TCP初始化激活超時(shí)時(shí)間】:這個(gè)參數(shù)描述了從TCP_Data連接建立過后到失效的最大超時(shí)時(shí)間。如果在設(shè)定時(shí)間范圍內(nèi)都不執(zhí)行激活路由的指令,DoIP模塊會(huì)主動(dòng)關(guān)閉TCP_Data套接字。規(guī)范定義時(shí)間為2000ms。
【激活類型】,共有5種類型:
1. 【Default】:默認(rèn)激活模式(Default Activation Mode),這是最基本的路由激活類型,通常用于建立標(biāo)準(zhǔn)的DoIP通信會(huì)話。在默認(rèn)激活模式下,設(shè)備之間會(huì)進(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í)間參數(shù)
【P2超時(shí)時(shí)間】:表示 ECU 收到診斷請(qǐng)求幀過后,最短回復(fù)的時(shí)間間隔。對(duì)于診斷工具端,該參數(shù)可以作為發(fā)送請(qǐng)求過后,等待回復(fù)的超時(shí)判斷參數(shù)。比如診斷工具發(fā)送了一個(gè)診斷報(bào)文,P2超時(shí)時(shí)間段內(nèi)都沒有收到回復(fù),則認(rèn)為請(qǐng)求失敗,超時(shí)退出。
【P2擴(kuò)展時(shí)間】:當(dāng)診斷工具發(fā)出診斷報(bào)文過后,被測(cè) ECU 來不及在 P2 超時(shí)時(shí)間段內(nèi)做出應(yīng)答,則回復(fù)一幀 7F XX 78 報(bào)文,告訴診斷工具端自己來不及響應(yīng),需要延長(zhǎng)等待時(shí)間再回復(fù)。ECU 發(fā)送了延遲等待報(bào)文后,則把等待時(shí)間參數(shù)切換為 P2擴(kuò)展時(shí)間。診斷工具端的超時(shí)判斷參數(shù)在收到延遲等待報(bào)文后,需要切換到 P2擴(kuò)展時(shí)間。
上述兩個(gè)參數(shù)可以點(diǎn)開【詳情】按鈕,查看圖示說明,如圖4-11所示。
圖4-11 ?P2時(shí)間參數(shù)設(shè)置
4.2.3 診斷儀在線
診斷儀在線包括S3服務(wù)器時(shí)間和S3客戶端時(shí)間參數(shù)。
【S3服務(wù)器時(shí)間】:表示該ECU從Default會(huì)話被切換到其他會(huì)話過后,經(jīng)過多長(zhǎng)時(shí)間會(huì)自動(dòng)切換回默認(rèn)會(huì)話的超時(shí)時(shí)間。
【S3客戶端時(shí)間】:表示作為診斷Tester端,發(fā)送TesterPresent幀的時(shí)間間隔。
上述兩個(gè)參數(shù)的示意圖,可以點(diǎn)開【詳情】按鈕,查看圖示說明,如圖4-12所示。
圖4-12 ?S3時(shí)間參數(shù)設(shè)置
【診斷儀在線】:TSMaster 斷模塊中,可以選擇配置并使能診斷儀在線命令,如圖4-13所示。
圖4-13 ?診斷儀在線設(shè)置
當(dāng)使能【診斷儀在線】,在診斷模塊上方會(huì)出現(xiàn)啟動(dòng)【診斷儀在線】的開關(guān)。設(shè)置診斷儀在線為【打開】狀態(tài),則按照設(shè)定的S3客戶端時(shí)間間隔發(fā)送該報(bào)文。
診斷儀在線的發(fā)送字節(jié)是可選的。支持三種類型:
【默認(rèn)診斷儀在線服務(wù)】:為最常用的0x3E 0x80。
【從基礎(chǔ)配置中選擇】:從基本診斷配置中選擇配置好的3E命令。
【用戶自定義】:用于自定義的字節(jié)。
4.2.4 種子密鑰
TSMaster 中提供了兩種SeedKey種子密鑰的處理方法。第一種就是常用的加載主流的種子密匙的DLL動(dòng)態(tài)鏈接庫;第二種是提供了內(nèi)置的種子密鑰的解釋器,可以直接編寫SeedKey源代碼,并可以保存生成DLL動(dòng)態(tài)鏈接庫。
—4.2.4.1載入動(dòng)態(tài)鏈接庫
TSMaster不僅支持了C/C++,Delphi等語言封裝的DLL文件,也新增支持基于DotNet平臺(tái)如C#,VB.Net等語言編寫的DLL動(dòng)態(tài)鏈接庫,可以高效兼容不同平臺(tái)生成的安全訪問DLL,為工程師帶來更便捷的使用體驗(yàn)。
載入動(dòng)態(tài)鏈接庫加載界面,如圖4-14所示。
圖4-14 ?載入動(dòng)態(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)一,則會(huì)輸出提示信息:Generate Key Success,然后用戶根據(jù)Key值跟目標(biāo)值對(duì)比,進(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:
unsignedintGenerateKeyEx(
constunsignedchar* ipSeedArray, /* Array for the seed [in] */
unsignedintiSeedArraySize, /* Length of the array for the seed [in] */
constunsignedintiSecurityLevel,/* Security level [in] */
constchar* ipVariant, /* Name of the active variant [in] */
unsignedchar* iopKeyArray, /* Array for the key [in, out] */
unsignedintiMaxKeyArraySize, /* Maximum length of the array for the key [in] */
unsignedint& oActualKeyArraySize); /* Length of the key [out] */
函數(shù)接口2:
unsignedintGenerateKeyExOpt(
constunsignedchar* ipSeedArray, /* Array for the seed [in] */
unsignedintiSeedArraySize, /* Length of the array for the seed [in] */
constunsignedintiSecurityLevel, /* Security level [in] */
constchar* ipVariant, /* Name of the active variant [in] */
constchar* iPara, /* */
unsignedchar* iopKeyArray, /* Array for the key [in, out] */
unsignedintiMaxKeyArraySize, /* Maximum length of the array for the key [in] */
unsignedint& oActualKeyArraySize) /* Length of the key [out] */
函數(shù)接口3:
boolASAP1A_CCP_ComputeKeyFromSeed(
constunsignedchar* ipSeedArray, /* Array for the seed [in] */
unsignedshortiSeedArraySize, /* Length of the array for the seed [in] */
unsignedchar* iopKeyArray, /* Array for the key [in, out] */
unsignedshortiMaxKeyArraySize, /* Maximum length of the array for the key [in] */
unsignedshort* opSizeKey) /* Length of the key [out] */
如何兼容其他函數(shù)接口
在日常使用中經(jīng)常出現(xiàn)用戶已經(jīng)開發(fā)好了SeedKey DLL,同時(shí)該 DLL 的接口不是上述三種中的任何一種,則無法直接加載到TSMaster的診斷模塊中。對(duì)此,可以通過二次封裝的形式將存在的SeedKey算法庫進(jìn)行包裝,生成可以直接加載到TSMaster診斷模塊中的 DLL 。
以一個(gè)實(shí)際的實(shí)例來講解如何兼容其他接口函數(shù)的DLL文件,二次封裝流程的示意圖,如圖4-16。
圖4-16 ?二次封裝流程
▲第一步:查看當(dāng)前的DLL,名稱為UserSeedKey.DLL。該函數(shù)內(nèi)部的API函數(shù)有:
●Seed 等級(jí)為1的時(shí)候,調(diào)用函數(shù)void GetKeyFromSeed01(byte* ASeed, byte* AKey);
●Seed等級(jí)為3的時(shí)候,調(diào)用函數(shù)void GetKeyFromSeed03(byte* ASeed, byte* AKey);
●Seed等級(jí)為11的時(shí)候,調(diào)用函數(shù) void GetKeyFromSeed11(byte* ASeed, byte* AKey);
進(jìn)而得知當(dāng)前DLL不支持上述三種函數(shù)接口,需要進(jìn)行二次封裝。
▲第二步:選擇 TSMaster 安裝目錄中提供的 GenerateKeyEx 的模板工程,在該工程中用上述DLL的函數(shù)接口。基本思路是:
1. 采用 Loadlibrary 動(dòng)態(tài)用戶現(xiàn)有的 DLL。
2. 根據(jù)傳入的Level參數(shù),采用GetProcAddress函數(shù)動(dòng)態(tài)獲取實(shí)際的用于計(jì)算Key的函數(shù)指針。
3. 如果獲取函數(shù)指針成功,則使用該函數(shù)指針傳輸Seed值,并計(jì)算對(duì)應(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í)行的時(shí)候會(huì)出現(xiàn)找不到對(duì)應(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】選擇一個(gè)需要的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表示成功,返回值為其他值則有對(duì)應(yīng)的錯(cuò)誤碼。因此,在編輯代碼的時(shí)候,最后一行需要加上return返回值,如圖4-19所示,否則系統(tǒng)執(zhí)行函數(shù)過后會(huì)認(rèn)為算法執(zhí)行失敗,不予往后面執(zhí)行。
圖4-19 ?函數(shù)return返回值
5、TSMaster 基礎(chǔ)診斷配置
基礎(chǔ)診斷模塊包含基本診斷服務(wù)和組合服務(wù)。對(duì)于診斷過程中獨(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ù)
以診斷會(huì)話控制為例,主要包含如下參數(shù)的配置,如圖5-3所示。
圖5-3 ?配置基本診斷參數(shù)
【1】 配置服務(wù)名稱:用戶可以配置一個(gè)易于理解和管理的服務(wù)名稱。
【2】 是否功能標(biāo)識(shí)符:本診斷服務(wù)是否采用功能標(biāo)識(shí)符發(fā)送診斷請(qǐng)求。
【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ā)送給被測(cè) ECU。參數(shù)列表包含請(qǐng)求和應(yīng)答幀的參數(shù)列表,可以選擇增加/刪除多種類型的參數(shù)。如圖5-4。
圖5-4 ?新增與刪除參數(shù)
其中,根據(jù)不同服務(wù)指令,可以設(shè)置不同的ID參數(shù)。比如診斷請(qǐng)求會(huì)話里的診斷會(huì)話類型參數(shù)是必選設(shè)置,而參數(shù)列表是可選的。在修改配置后,界面上方會(huì)實(shí)時(shí)顯示實(shí)際診斷報(bào)文的示例報(bào)文,如請(qǐng)求協(xié)議數(shù)據(jù)包是:【10 01 xx xx】:xx 表示該參數(shù)是可變的,根據(jù)用戶實(shí)際填入的數(shù)據(jù)確定;診斷儀將要收到的應(yīng)答協(xié)議數(shù)據(jù)包為【50 01 xx】。
圖5-5 請(qǐng)求與應(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:無符號(hào)整型,其數(shù)據(jù)長(zhǎng)度必須小于32bits,并且為8的倍數(shù),可以為8,16,24,32bits。
【2】 Int:有符號(hào)整形,其數(shù)據(jù)長(zhǎng)度必須小于32bits,并且為8的倍數(shù),可以為8,16,24,32bits
【3】 Single:?jiǎn)尉雀↑c(diǎn)數(shù),數(shù)據(jù)長(zhǎng)度為固定的32bits。用戶直接輸入輸出浮點(diǎn)數(shù)據(jù)。
【4】 Double:?jiǎn)尉雀↑c(diǎn)數(shù),數(shù)據(jù)長(zhǎng)度為固定的64bits。用戶直接輸入輸出浮點(diǎn)數(shù)據(jù)。
【5】 Hex Array:十六進(jìn)制數(shù)組,數(shù)據(jù)長(zhǎng)度為8的倍數(shù)。輸入數(shù)據(jù)滿足16禁止數(shù)據(jù)類型。
【6】 ASCII:ASCII字符串,數(shù)據(jù)長(zhǎng)度為8的倍數(shù)。輸入數(shù)據(jù)為ASCII字符數(shù)組,轉(zhuǎn)化為16進(jìn)制后進(jìn)行發(fā)送。
【7】 SystemVar:系統(tǒng)變量,數(shù)據(jù)長(zhǎng)度為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配置、請(qǐng)求和傳輸數(shù)據(jù)配置、傳輸退出配置、擴(kuò)展和輔助的配置。如下詳細(xì)介紹每個(gè)配置。
5.4.1 通用配置
通用配置中支持加載下載文件格式為hex/bin/s19/mot/srec/vdf等等。可以對(duì)起始地址和數(shù)據(jù)長(zhǎng)度的字節(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】地址和長(zhǎng)度標(biāo)識(shí)符。可修改起始地址和數(shù)據(jù)長(zhǎng)度的字節(jié)。
【5】校驗(yàn)和相關(guān)配置。校驗(yàn)和字節(jié)序支持英特爾和摩托羅拉。在程序下載過程中,為了保證數(shù)據(jù)的完整性,需要引入 Checksum 算法對(duì)數(shù)據(jù)的完整性和有效性進(jìn)行校驗(yàn)。TSMaster 診斷模塊的符合服務(wù)中,引入了主流的CRC 算法進(jìn)行校驗(yàn)。其選擇框如下圖所示,同時(shí)可實(shí)現(xiàn)自定義CRC校驗(yàn)算法導(dǎo)入和修改,此處自定義算法只能是DLL文件的形式,如圖到5-9。
圖5-9 支持自定義CRC算法導(dǎo)入與修改
當(dāng)加載好下載文件后,選擇指定的算法過,診斷模塊會(huì)對(duì)可執(zhí)行文件計(jì)算其檢驗(yàn)和值,包括該可執(zhí)行文件每一個(gè)數(shù)據(jù)塊的檢驗(yàn)和值以及文件整體的檢驗(yàn)和值,如圖5-10所示。
圖5-10 文件與數(shù)據(jù)塊檢驗(yàn)和值
TSMaster的診斷模塊能夠直接把系統(tǒng)變量作為參數(shù),在計(jì)算好每一個(gè)數(shù)據(jù)塊與文件的檢驗(yàn)和值過后,會(huì)進(jìn)一步自動(dòng)轉(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)對(duì)文件有效性的檢查,如圖5-12。
圖5-12 檢驗(yàn)和系統(tǒng)變量添加到服務(wù)參數(shù)
5.4.2擦除Flash配置
擦除Flash配置,可以配置無自動(dòng)擦除、擦除Hex地址范圍、下載每一個(gè)數(shù)據(jù)塊之前擦除對(duì)應(yīng)塊。期望回復(fù)值以實(shí)際ECU的響應(yīng)進(jìn)行填寫輸入。如圖5-13。
圖5-13 擦除Flash配置
5.4.3請(qǐng)求和傳輸數(shù)據(jù)配置
請(qǐng)求傳輸數(shù)據(jù)命令的數(shù)據(jù)格式可以修改,比如從00修改為AA。可以自定義最大傳輸數(shù)據(jù)塊的長(zhǎng)度,默認(rèn)為0x202,實(shí)際傳輸層數(shù)據(jù)包為514字節(jié)。如圖5-14。
圖5-14 請(qǐng)求和傳輸數(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)每一個(gè)數(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 輔助
輔助中可對(duì)下載文件按連續(xù)地址的大小分割,比如將數(shù)據(jù)塊按0x1000進(jìn)行分割。如圖5-17。
圖5-17 下載文件分割設(shè)置
6、診斷控制臺(tái)
診斷控制臺(tái)作為診斷命令調(diào)試器,可以讓用戶選擇每一條單獨(dú)的服務(wù)命令,編輯發(fā)送服務(wù)報(bào)文和接收服務(wù)報(bào)文,進(jìn)行測(cè)試驗(yàn)證。主要包含四塊工作區(qū)域,分別為服務(wù)命令選擇區(qū),手動(dòng)命令輸入?yún)^(qū),診斷命令發(fā)送/應(yīng)答區(qū)和診斷信息區(qū),如圖6-1所示。
圖6-1 控制臺(tái)工作分區(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 手動(dòng)命令輸入?yún)^(qū)
測(cè)試過程中,如果用戶想發(fā)送任意的診斷命令,則可以在手動(dòng)命令輸入?yún)^(qū)中輸入自己想要發(fā)送的任意報(bào)文。在輸入診斷報(bào)文過后,點(diǎn)擊右邊的Execute 按鈕,就可以完成診斷報(bào)文的發(fā)送。為了增加測(cè)試靈活性,還可以通過選擇框選擇采用物理地址發(fā)送還是功能 ID 發(fā)送診斷請(qǐng)求報(bào)文。如圖6-3。
圖6-3 手動(dòng)命令輸入?yún)^(qū)
6.3 診斷命令發(fā)送/應(yīng)答區(qū)
在本區(qū)域中,用戶可以編輯發(fā)送數(shù)據(jù)段以及期望接收數(shù)據(jù)段,啟動(dòng)執(zhí)行來驗(yàn)證被測(cè)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)時(shí),報(bào)錯(cuò)提示信息等。如圖6-6。
圖6-6 服務(wù)層信息負(fù)響應(yīng)提示
ISO15765-2數(shù)據(jù)流區(qū),用于顯示診斷模塊詳細(xì)的服務(wù)層報(bào)文信息。結(jié)合前面配置的診斷數(shù)據(jù)庫,還可以把原始的報(bào)文數(shù)據(jù)解析成物理信號(hào)等呈現(xiàn)。以22服務(wù)為例,可以查看到診斷服務(wù)層解析后的參數(shù)數(shù)據(jù),如圖6-7。
圖6-7 ?ISO15765-2數(shù)據(jù)流區(qū)
7、TSMaster自動(dòng)診斷流程與注冊(cè)系統(tǒng)變量
7.1 診斷流程創(chuàng)建與管理
TSMaster的自動(dòng)化診斷流程不僅僅是針對(duì)某一個(gè)具體的應(yīng)用,而是針對(duì)整個(gè)項(xiàng)目的診斷流程進(jìn)行管理。用戶可以根據(jù)完整項(xiàng)目的需求,配置測(cè)試診斷流程組,每個(gè)組里面可以包含多個(gè)不同的診斷流程,在一個(gè)診斷流程中包含具體的診斷步驟。
在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)色,同時(shí)右邊的節(jié)點(diǎn)流程中展開顯示該UDS流程包含的詳細(xì)診斷步驟,如圖7-2。
圖7-2 ?切換UDS流程
【2】啟動(dòng)UDS流程:?jiǎn)?dòng)該節(jié)點(diǎn)的診斷流程。點(diǎn)擊該選項(xiàng)后,診斷模塊按照右邊的配置,從上往下自動(dòng)執(zhí)行診斷步驟。
【3】中斷UDS流程:點(diǎn)擊該節(jié)點(diǎn)后,中斷正在執(zhí)行的診斷流程步驟。
【4】添加流程組:新增診斷流程組。比如新增Test Group1。診斷組下面可以再增加診斷流程用例,其本身不包含診斷步驟。
【5】添加新的測(cè)試流程:新增一個(gè)診斷流程用例,在診斷流程用例下面可以增加詳細(xì)的診斷步驟。
【6】編程名稱:選中一個(gè)流程組或者流程用例,右鍵選中Edit name編輯該節(jié)點(diǎn)的名稱。
【7】注冊(cè)系統(tǒng)變量:選擇一個(gè)診斷流程用例,注冊(cè)為系統(tǒng)變量。
【8】反注冊(cè)系統(tǒng)變量:選中已注冊(cè)為系統(tǒng)變量的診斷流程用例,取消注冊(cè)系統(tǒng)變量。
【9】刪除所選:刪除選中的節(jié)點(diǎn)。
【10】刪除所有:清楚所有的節(jié)點(diǎn)。
7.2 配置自動(dòng)診斷流程
TSMaster自動(dòng)診斷流程,可以快速配置多組診斷流程并可以設(shè)置循環(huán)運(yùn)行和注冊(cè)系統(tǒng)變量用于外部調(diào)用等,如下進(jìn)行詳細(xì)介紹。
7.2.1自動(dòng)診斷工具欄介紹
診斷流程配置工具欄如圖7-3所示。
圖7-3 ?診斷流程配置工具欄
圖標(biāo)依次從左往右為:
【1】新增診斷流程組。
【2】新增診斷流程用例。
【3】刪除選中的診斷流程組/用例。
【4】啟動(dòng)配置好的診斷流程。
【5】終端正在運(yùn)行的診斷流程。
【6】鎖定/解鎖流程配置區(qū)域。如果鎖定該區(qū)域,在診斷流程區(qū)域變得不可編輯。
【7】全選/全不選診斷流程。
【8】使能設(shè)置的循環(huán)運(yùn)行次數(shù)。
【9】實(shí)際運(yùn)行次數(shù)顯示。
7.2.2自動(dòng)化診斷流程配置步驟
在UDS測(cè)試流程區(qū)里,右鍵創(chuàng)建新創(chuàng)建一個(gè)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】在左邊的管理欄中選中一個(gè)診斷流程節(jié)點(diǎn)。
【2】在右邊的編輯區(qū)域,添加、刪除、編輯診斷步驟。
【3】添加步驟后,選擇該步驟類型。
【4】編輯步驟名稱。
【5】選擇該步驟地址類型,物理地址還是功能地址。
【6】配置詳細(xì)的診斷請(qǐng)求數(shù)據(jù)包。
【7】配置詳細(xì)的診斷應(yīng)答數(shù)據(jù)包。
【8】配置本步驟結(jié)束后步驟之間的等待時(shí)間。
【9】配置本步驟發(fā)生錯(cuò)誤的錯(cuò)誤處理方法。
7.2.3 診斷步驟類型
測(cè)試步驟中,為了增加診斷配置的靈活性,設(shè)計(jì)了4種類型可供選擇,主要包含:普通步驟,選擇已有配置,種子和密鑰,測(cè)試儀在線。通過這4種類型,基本上涵蓋了市面上所有主流的診斷流程需求,下面詳細(xì)介紹每種類型的特點(diǎn)。如圖7-6。
圖7-6 ?診斷步驟類型
【1】普通步驟:主要用于一些簡(jiǎn)單的請(qǐng)求數(shù)據(jù)和應(yīng)答數(shù)據(jù)都很直接的場(chǎng)合。直接在請(qǐng)求服務(wù)中填入想要發(fā)送的請(qǐng)求數(shù)據(jù),在應(yīng)答服務(wù)中填入期望的應(yīng)答報(bào)文,比如服務(wù)請(qǐng)求數(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】種子和密鑰:種子和密鑰只需要選擇種子等級(jí)和密鑰等級(jí)參數(shù)即可,解密的DLL直接關(guān)聯(lián)到傳輸層參數(shù)配置載入的種子和密鑰DLL中,如圖7-9所示:
圖7-9 ?種子和密鑰
對(duì)此,無論是在診斷控制臺(tái)模塊中,還是自動(dòng)診斷流程模塊,都是需要先配置好傳輸層的參數(shù)配置。
【4】測(cè)試儀在線:為了支持更加靈活的測(cè)試需求,在自動(dòng)化流程步驟中,提供了打開和關(guān)閉測(cè)試儀在線的命令選擇,以及配置該命令數(shù)據(jù)以及周期間隔:
▲ 是否啟動(dòng)(start)/停止(stop)該命令,如圖7-10:
圖7-10 ?啟動(dòng)/停止測(cè)試儀在線命令
▲ 配置測(cè)試儀在線的命令的數(shù)據(jù)以及周期間隔,如7-10:
圖7-11 ?配置測(cè)試儀在線的命令
7.2.4 步驟間隔時(shí)間
診斷流程模塊步驟跟步驟之間的延時(shí)是可以設(shè)置的,單位為ms,如圖7-12:
圖7-12 ?配置測(cè)試儀在線的命令
7.2.5 屬性
在屬性中,可以設(shè)置響應(yīng)出錯(cuò)后的以及本指令是停止還是繼續(xù)運(yùn)行,如圖7-13所示:
圖7-13 ?屬性
在TSMaster后續(xù)產(chǎn)品規(guī)劃中,響應(yīng)出錯(cuò)后允許跳轉(zhuǎn)到指定的流程中(比如跳轉(zhuǎn)到擦除流程中),進(jìn)一步增加自動(dòng)運(yùn)行流程模塊的靈活性。
7.2.6 使能步驟/位置調(diào)整
對(duì)于已經(jīng)完成配置的診斷流程步驟,用戶根據(jù)左邊的選擇框來勾選想要執(zhí)行的診斷步驟。如圖7-14。
關(guān)于執(zhí)行順序調(diào)整:無論是測(cè)試用例組,測(cè)試用例還是測(cè)試用例中的具體步驟,用戶想調(diào)整相互之間執(zhí)行順序的時(shí)候,直接拖拽對(duì)應(yīng)的測(cè)試用例到相應(yīng)位置即可。
圖7-14 ?診斷流程步驟使能
7.3診斷模塊的內(nèi)生系統(tǒng)變量
在TSMaster新添加基礎(chǔ)診斷模塊后,系統(tǒng)變量管理器會(huì)自動(dòng)生成所有者為診斷模塊Diagnostic的系統(tǒng)變量,通過修改系統(tǒng)變量可以配置對(duì)應(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:是否啟動(dòng)診斷儀在線命令。
●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:是否手動(dòng)定義連續(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。
●請(qǐng)求ID類型ReqIDType:傳輸層請(qǐng)求ID的類型,0是標(biāo)準(zhǔn)幀,1是擴(kuò)展幀。
●請(qǐng)求ID (ReqID):傳輸層請(qǐng)求ID。
●總線類型BusType:設(shè)置總線類型:0代表CAN總線;1代表CANFD總線;2代表LIN總線;3代表DOIP(基于以太網(wǎng)的診斷)。
●通道Chn:設(shè)置診斷模塊的通道參數(shù),比如0代表通道1,1代表通道2。
●自動(dòng)化流程進(jìn)度UDSProgress:自動(dòng)診斷流程的實(shí)時(shí)進(jìn)度,該變量用來獲取自動(dòng)診斷流程的運(yùn)行狀態(tài)。
●安全訪問種子和密鑰SeedAndKeyDLL:設(shè)置種子&密鑰DLL的絕對(duì)路徑,使用時(shí)注意轉(zhuǎn)義字符。
●P2擴(kuò)展時(shí)間P2Extended:設(shè)置P2擴(kuò)展時(shí)間。
●P2擴(kuò)展時(shí)間P2TimeOut:設(shè)置P2超時(shí)時(shí)間。
●S3服務(wù)端時(shí)間S3ServerTime:設(shè)置S3服務(wù)端時(shí)間。
●S3服務(wù)端時(shí)間S3ClientTime:設(shè)置S3客戶端時(shí)間。
7.3.2 診斷服務(wù)特定系統(tǒng)變量
在基礎(chǔ)診斷配置的復(fù)合診斷服務(wù)添加新的服務(wù)后,系統(tǒng)變量管理器同樣會(huì)生成對(duì)應(yīng)的系統(tǒng)變量:服務(wù)名_DataFile,此變量為下載文件的絕對(duì)路徑,修改此變量可控制下載文件的載入與切換。如圖7-16。
圖7-16 ?下載文件路徑系統(tǒng)變量
此外,當(dāng)載入下載文件后,系統(tǒng)變量控制器會(huì)根據(jù)選擇的校驗(yàn)和算法生成每塊校驗(yàn)和,及總校驗(yàn)和,下載文件的首地址和長(zhǎng)度,如果已經(jīng)添加了符合診斷服務(wù),載入了下載文件,并且在基本診斷服務(wù)中關(guān)聯(lián)了下載文件相關(guān)變量,那么在替換下載文件的同時(shí),這些關(guān)聯(lián)的變量也會(huì)隨之改變,最小的工程修改實(shí)現(xiàn)文件的靈活切換。
7.3.3 自動(dòng)診斷流程的注冊(cè)系統(tǒng)變量
在診斷控制臺(tái)中可以根據(jù)需要靈活配置診斷服務(wù),這些診斷服務(wù)配置好后,用戶需要在診斷控制臺(tái)中雙擊啟動(dòng)該診斷服務(wù)。
如果用戶希望在Panel界面中或者程序中啟動(dòng)診斷流程命令,步驟如下:
【1】首先在診斷Basic Diagnostic Config窗體中,選中目標(biāo)服務(wù),然后右鍵菜單把該診斷服務(wù)注冊(cè)為系統(tǒng)變量,如圖7-17所示。
圖7-17 ?診斷服務(wù)注冊(cè)為系統(tǒng)變量
注冊(cè)完成后,該流程的圖標(biāo)多出3個(gè)小彩圓,表示成為一個(gè)注冊(cè)系統(tǒng)變量的服務(wù),未注冊(cè)的流程為藍(lán)色圓,如圖7-18所示:
圖7-18 ?注冊(cè)為系統(tǒng)變量的圖標(biāo)變化
【2】注冊(cè)完成后,在系統(tǒng)變量管理器中,就可以看到生成系統(tǒng)變量_Start和_Result如圖7-19。
圖7-19 ?注冊(cè)為系統(tǒng)變量的變量
其中_Start的數(shù)值賦值為:
● 0是空閑狀態(tài)。
● 1是正在執(zhí)行狀態(tài)。
● 2是執(zhí)行成功。
● 3是執(zhí)行失敗。
_Result的數(shù)值結(jié)果為:
●>0表示啟動(dòng)診斷流程
●=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的測(cè)試按鈕,將值1賦給流程名_Start,診斷模塊執(zhí)行相應(yīng)的診斷流程,實(shí)現(xiàn)自動(dòng)運(yùn)行診斷流程。
8、DoIP診斷典型應(yīng)用
本文設(shè)計(jì)了一個(gè)簡(jiǎn)單的 BootLoader 流程來說明如何基于 TSMaster DoIP模塊配置一個(gè)Flash BootLoader 流程。
8.1 配置刷寫例程
【1】首先創(chuàng)建UDS流程:注意切換編輯器為解鎖狀態(tài),否則無法添加新的流程步驟。如圖8-1。
圖8-1 解鎖編輯器
【2】切換默認(rèn)會(huì)話,切換擴(kuò)展會(huì)話,然后切換整車制造商自定義會(huì)話,在基礎(chǔ)診斷配置先提前配置好,如圖8-2。然后在自動(dòng)診斷流程中使用選擇已有配置進(jìn)行添加,如圖8-3。
圖8-2 基礎(chǔ)診斷配置會(huì)話服務(wù)
圖8-3 ?切換默認(rèn)會(huì)話、擴(kuò)展會(huì)話、整車制造商自定義會(huì)話
【3】添加種子和密鑰步驟,解鎖ECU,如圖8-4。
圖8-4 ?種子和密鑰步驟
【4】基于讀取ID:F080位置處的數(shù)據(jù)。
方式1:使用普通步驟配置形式,如圖8-5。
圖8-5? 普通步驟讀取DID F188零件號(hào)
方式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ǔ)診斷配置添加刷寫文件
然后在自動(dòng)診斷流程中選擇相應(yīng)的已有配置,選擇創(chuàng)建好的組合下載服務(wù)。如圖8-10。
圖8-10 ?選擇已有的組合下載服務(wù)
【8】采用例程控制擦除Flash。通過診斷基礎(chǔ)設(shè)置配置好后擦除指令,將起始地址和數(shù)據(jù)長(zhǎng)度的系統(tǒng)變量,通過系統(tǒng)變量的方式添加請(qǐ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)被測(cè)件之后,通過按鈕一鍵執(zhí)行自動(dòng)診斷流程,當(dāng)每個(gè)步驟都是正響應(yīng)時(shí),會(huì)顯示為綠色,如圖8-14。
圖8-14 ?一鍵執(zhí)行自動(dòng)診斷流程
在Ethernet報(bào)文消息中可以查看完整的DoIP BootLoader刷寫流程,也可以使用總線記錄將過程報(bào)文記錄成blf文件保存。
圖8-15 ?Ethernet診斷流程報(bào)文
以上,基于TSMaster的DoIP模塊,實(shí)現(xiàn)零代碼方式,可以非常簡(jiǎn)單快速地開發(fā)基于以太網(wǎng)的DoIP診斷流程應(yīng)用。
-
以太網(wǎng)
+關(guān)注
關(guān)注
40文章
5460瀏覽量
172740 -
MASTER
+關(guān)注
關(guān)注
0文章
104瀏覽量
11329 -
車載以太網(wǎng)
+關(guān)注
關(guān)注
18文章
226瀏覽量
23078
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
TOSUN 車載以太網(wǎng)仿真測(cè)試解決方案
![TOSUN <b class='flag-5'>車載</b><b class='flag-5'>以太網(wǎng)</b>仿真測(cè)試解決方案](https://file.elecfans.com/web2/M00/40/07/pYYBAGJrUk2AaMaTAAAQONQtdzo461.jpg)
![](https://file1.elecfans.com/web3/M00/00/FE/wKgZO2dPxYCAUskxAAONJbR5FIY763.jpg)
車載以太網(wǎng)EMC解決方案
![<b class='flag-5'>車載</b><b class='flag-5'>以太網(wǎng)</b>EMC解決方案](https://file1.elecfans.com/web2/M00/0C/7F/wKgaomc1pV2AOi2WAABHVe0l9Hc955.png)
DoIP協(xié)議棧簡(jiǎn)介及主要功能
![<b class='flag-5'>DoIP</b>協(xié)議棧簡(jiǎn)介及主要<b class='flag-5'>功能</b>](https://file1.elecfans.com/web1/M00/F4/FC/wKgaoWc0V4WAHiTlAAAWsDzh_-M234.png)
![](https://file1.elecfans.com/web2/M00/03/07/wKgZoma_Jg2AEc-OAAIS0Gojw5E242.jpg)
車載以太網(wǎng)線束傳輸性能——汽車線束故障定位實(shí)際測(cè)試結(jié)果分析#車載以太網(wǎng)
車載以太網(wǎng)與傳統(tǒng)以太網(wǎng)的區(qū)別
車載以太網(wǎng)的優(yōu)勢(shì)和應(yīng)用
車載以太網(wǎng)性能優(yōu)化方案
![<b class='flag-5'>車載</b><b class='flag-5'>以太網(wǎng)</b>性能優(yōu)化方案](https://file1.elecfans.com/web2/M00/FE/59/wKgZomahuqaAGlm6AAAXEUVtgBA396.png)
![](https://file1.elecfans.com/web2/M00/ED/94/wKgaomZoAlWAeXflAAM3kJEvnzU306.jpg)
CANape&VN5620監(jiān)控記錄以太網(wǎng)數(shù)據(jù)操作演示#車載以太網(wǎng) #CANape
![](https://file1.elecfans.com/web2/M00/EC/95/wKgZomZla2uACvmeAAUrVRH1pgw844.png)
使用VN5620監(jiān)控記錄以太網(wǎng)總線數(shù)據(jù)#車載以太網(wǎng) #CANape
![](https://file1.elecfans.com/web2/M00/EA/91/wKgZomZZNV6ABmUHAALQaX4H-ZI635.jpg)
車載以太網(wǎng)硬件接口VN5620設(shè)備展示與介紹#車載以太網(wǎng)
![](https://file1.elecfans.com/web2/M00/E5/CD/wKgZomZEgBOAehvlAAD1J1BRo98013.png)
車載以太網(wǎng)硬件接口VN5650--基于Network-based模式的配置過程#車載以太網(wǎng) #CANoe
![](https://file1.elecfans.com/web2/M00/E5/38/wKgaomY_QQqANHQTAADb2CrD2i8864.jpg)
![](https://file1.elecfans.com/web2/M00/E5/35/wKgaomY_NoyASPvoAAD2hdsdUvU070.jpg)
評(píng)論