干貨分享 | TSMaster 的 CAN UDS 診斷操作指南(上)
TSMaster 可以少代碼甚至零代碼就可以完成診斷流程開發(fā),診斷開發(fā)人員只需要熟悉診斷流程,就能打通研發(fā)、產(chǎn)線、售后整條鏈路環(huán)節(jié)。
TSMaster 的 UDS 診斷功能不僅支持 CAN, LIN,同時也支持以太網(wǎng)的 DoIP 的診斷功能,TSMaster 的
CAN UDS 診斷操作指南(上)篇,主要是針對UDS 診斷模塊的創(chuàng)建、CAN UDS 診斷傳輸層配置和TSMaster 基礎(chǔ)診斷配置進行講解。
本文關(guān)鍵詞:UDS,基礎(chǔ)診斷,診斷系統(tǒng)變量
目錄
Catalog
1. TSMaster 的 UDS 診斷模塊的創(chuàng)建
2. CAN UDS 診斷傳輸層配置
3. TSMaster 基礎(chǔ)診斷配置
一、TSMaster 的 UDS 診斷模塊的創(chuàng)建
TSMaster 的 UDS 診斷模塊的創(chuàng)建流程如下:
Step1:診斷模塊位于主菜單【應(yīng)用】->【診斷模塊】,如下圖 1-1。
圖 1-1 診斷模塊
Step2:【添加基礎(chǔ)診斷】模塊,可以添加多個 CAN 基礎(chǔ)診斷模塊,如圖 1-2。
圖 1-2 添加 CAN 基礎(chǔ)診斷模塊
TSMaster 支持創(chuàng)建多個診斷模塊,并通過多通道的同星 CAN 卡進行綁定,可以同時與多個UDS診斷 ECU進行連接和診斷交互,進一步可以實現(xiàn)多個ECU的同步診斷刷寫功能。
二、CAN UDS 診斷傳輸層配置
TSMaster 提供了診斷傳輸層的配置功能,用戶可以根據(jù)需求配置相應(yīng)的傳輸層配置比如總線類型、請求和應(yīng)答 ID、FD 可變波特率、安全算法等等一系列配置。
1.診斷傳輸層
CAN 診斷傳輸層 ISO TP,包含診斷傳輸層和診斷服務(wù)層參數(shù),如圖 2-1 所示。
圖 2-1 診斷傳輸層 ISO TP 配置
其中診斷傳輸層 ISO TP 的具體參數(shù)如下分類介紹:
● 總線類型:診斷傳輸層類型
使用同星 UDS on CAN/CANFD 功能可以選擇總線類型為【CAN】或者【CAN FD】,通過下拉列表可以選擇,如圖 2-2 所示:
圖 2-2 CAN/CANFD 診斷總線類型
● 通道:診斷模塊用到的邏輯通道
TSMaster 支持多個診斷模塊同時在線工作,這里用于選擇當前診斷模塊的應(yīng)用邏輯通道,通過下拉列表進行選擇,如圖 2-3 所示:
圖 2-3 傳輸層通道選擇
● 請求 ID: 設(shè)置診斷模塊 PC 工具端的診斷請求 ID。
● 請求 ID 類型:設(shè)置診斷模塊 PC 工具端的診斷請求 ID 類型,0 是標準幀(11 位),1 是擴展幀(29 位),如圖 2-4 所示。
圖 2-4 請求 ID 類型選擇
● 應(yīng)答 ID:設(shè)置診斷模塊 PC 工具端的診斷應(yīng)答 ID
● 應(yīng)答 ID 類型:設(shè)置診斷模塊 PC 工具端的診斷應(yīng)答 ID 類型,0 是標準幀(11 位),1 是擴展幀(29 位)。
● 功能 ID:設(shè)置診斷模塊 PC 工具端的診斷功能 ID
● 功能 ID 類型:設(shè)置診斷模塊 PC 工具端的診斷功能 ID 類型,0 是標準幀(11 位),1 是擴展幀(29 位)。
● 發(fā)送填充字節(jié):傳輸過程中,實際有效字節(jié)不足一個 CAN 報文數(shù)據(jù)端的時候,剩余數(shù)據(jù)段進行填充字節(jié)。比如一幀 CAN 報文 8 個字節(jié),如果有效傳輸字節(jié)是[0x02,0x10,0x02],填充字節(jié)是 0xAA,則實際的報
文字節(jié)是[0x02,0x10,0x02,0xAA,0xAA,0xAA,0xAA,0xAA]。
●接收幀間隔:接收連續(xù)幀最小幀間隔(ms)。TSMaster 診斷模塊作為接收端,在接收連續(xù)幀報文的時候能夠支持的診斷幀之間的最短時間間隔,這個參數(shù)是回復(fù)給診斷客戶端的。設(shè)置為 0,表示支持以最短的時間間隔接收。
● 用戶自定義發(fā)送幀間隔:發(fā)送連續(xù)幀最小間隔由用戶確定,具體間隔時間由【發(fā)送幀間隔】的值設(shè)定。
● 發(fā)送幀間隔:發(fā)送連續(xù)幀最小間隔。
● 發(fā)送塊大?。篢SMaster 診斷模塊作為發(fā)送端,在發(fā)送連續(xù)幀報文的時候一次能夠發(fā)送的數(shù)據(jù)塊的大小。設(shè)置為 0,表示一次性能夠發(fā)送任意大小的數(shù)據(jù)塊。
● FC 幀后間隔:表示發(fā)送流控幀與發(fā)送第一幀連續(xù)幀之間的最大時間間隔。
● FD 最大 DLC:FD 幀的最大 DLC 值,該參數(shù)只在有【總線類型】為CAN FD 模式下才有效。如圖 2-5 所示:
圖 2-5 FD 幀的最大 DLC
● FD 可變波特率:可以選擇是否開啟可變波特率模式。
● 最大長度:服務(wù)層數(shù)據(jù)包的最大長度。該參數(shù)對于普通 CAN/LIN 是無意義的。
比如,多幀傳輸時 DLC 長度=8 字節(jié),首幀(First Frame)采用第 0 字節(jié)低四位加第一個字節(jié)的 8 位,共 12Bit 表示一次傳輸?shù)陌拇笮。簿褪亲疃?4095個字節(jié),如下表所示:
當使用 CANFD 協(xié)議時,設(shè)置 DLC 長度>8 字節(jié),可以采用更多的 Bits 來傳輸信息。因此,CANFD 的傳輸層支持采用第 2,3,4,5 四個字節(jié)共 32bit 來傳輸一個數(shù)據(jù) Block 的長度,換句話說,CANFD 的傳輸層一次支持傳輸最多 4 個 G 的數(shù)據(jù)。具體支持多少,可由用戶自主進行配置。
注意:第一個字節(jié) Byte0 的高四位=1,表示該幀是首幀(First Frame),無論是 CAN 還是 Classical CAN 的傳輸層都是如此。
2.診斷服務(wù)層
診斷服務(wù)層參數(shù)主要包含路由激活,S3,P2 時間參數(shù),以及加載 SeedKey 的安全訪問。如圖 2-6 所示:
圖 2-6 診斷服務(wù)層參數(shù)
2.1 P2 時間參數(shù)
【P2 超時時間】:表示 ECU 收到診斷請求幀過后,最短回復(fù)的時間間隔。對于診斷工具端,該參數(shù)可以作為發(fā)送請求過后,等待回復(fù)的超時判斷參數(shù)。比如診斷工具發(fā)送了一個診斷報文,P2 超時時間段內(nèi)都沒有收到回復(fù),則認為請求失敗,超時退出。
【P2 擴展時間】:當診斷工具發(fā)出診斷報文過后,被測 ECU 來不及在 P2 超時時間段內(nèi)做出應(yīng)答,則回復(fù)一幀 7F XX 78 報文,告訴診斷工具端自己來不及響應(yīng),需要延長等待時間再回復(fù)。ECU 發(fā)送了延遲等待報文后,則把等待時間參數(shù)切換為 P2 擴展時間。診斷工具端的超時判斷參數(shù)在收到延遲等待報文后,需要切換到 P2 擴展時間。
上述兩個參數(shù)可以點開【詳情】按鈕,查看圖示說明,如圖 2-7 所示:
圖 2-7 P2 時間參數(shù)設(shè)置
2.2 診斷儀在線
診斷儀在線包括 S3 服務(wù)器時間和 S3 客戶端時間參數(shù)。
【S3 服務(wù)器時間】:表示該 ECU 從默認會話(Default Session)被切換到其他會話過后,經(jīng)過多長時間會自動切換回默認會話的超時時間。
【S3 客戶端時間】:表示作為診斷測試儀端,發(fā)送 TesterPresent 幀的時間間隔。
上述兩個參數(shù)的示意圖,可以點開【詳情】按鈕,查看圖示說明,如圖 2-8所示:
圖 2-8 S3 時間參數(shù)設(shè)置
【診斷儀在線】:TSMaster 斷模塊中,可以選擇配置并使能診斷儀在線命令,如圖 2-9 所示:
圖 2-9 診斷儀在線設(shè)置
當使能【診斷儀在線】,在診斷模塊上方會出現(xiàn)啟動【診斷儀在線】的開關(guān)。設(shè)置診斷儀在線為【打開】狀態(tài),則按照設(shè)定的 S3 客戶端時間間隔發(fā)送該報文。
診斷儀在線的發(fā)送字節(jié)是可選的。支持三種類型:
【默認診斷儀在線服務(wù)】:為最常用的 0x3E 0x80。
【從基礎(chǔ)配置中選擇】:從基本診斷配置中選擇配置好的 3E 命令。
【用戶自定義】:用于自定義的字節(jié)
2.3 種子密鑰
TSMaster 中提供了兩種 SeedKey 種子密鑰的處理方法。第一種就是常用的加載主流的種子密匙的 DLL 動態(tài)鏈接庫;第二種是提供了內(nèi)置的種子密鑰的解釋器,可以直接編寫 SeedKey 源代碼,并可以保存生成 DLL 動態(tài)鏈接庫。
2.3.1 載入動態(tài)鏈接庫
TSMaster 不僅支持了 C/C++,Delphi 等語言封裝的 DLL 文件,也新增支持基于 Dot Net 平臺如 C#,VB.Net 等語言編寫的 DLL 動態(tài)鏈接庫,可以高效兼容不同平臺生成的安全訪問 DLL,為工程師帶來更便捷的使用體驗。
載入動態(tài)鏈接庫加載界面,如圖 2-10 所示:
圖 2-10 載入動態(tài)鏈接庫
圖標從左往右依次為:
【1】 加載 DLL
【2】 刪除 DLL
【3】 打開 DLL 校驗器,通過 DLL 校驗器,用戶可以判斷加載的 DLL 接口是否正確,算法是否符合設(shè)計要求。比如,用戶選擇 Seed 的 Level 過后,輸入 Seed值,點擊 GenKey 進行判斷。如果該 DLL 接口跟模板定義接口統(tǒng)一,則會輸出提示信息:Generate Key Success,然后用戶根據(jù) Key 值跟目標值對比,進一步確認 DLL 中的算法是否符合設(shè)計要求。如圖 2-11。
圖 2-11 SeedKey 校驗器
【4】 可打開 TSMaster 安裝目錄下 Seed&Key 接口工程所在的文件路徑。
在 TSMaster 安裝目錄中,提供了封裝 Seed&Key 算法的模板工程。如GenerateKeyEx,GenerateKeyExOpt ASAP1A_CCP_ComputeKeyFromSeed,基于此模板工程開發(fā)即可得到能夠直接加載的 DLL 函數(shù)。TSMaster 默認支持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 算法庫進行包裝,生成可以直接加載到 TSMaster 診斷模塊中的 DLL 。
以一個實際的實例來講解如何兼容其他接口函數(shù)的 DLL 文件,二次封裝流程的示意圖,如圖 2-12。
圖 2-12 二次封裝流程
第一步,查看當前的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);
進而得知當前 DLL 不支持上述三種函數(shù)接口,需要進行二次封裝。
第二步,選擇 TSMaster 安裝目錄中提供的 GenerateKeyEx 的模板工程,在該工程中用上述 DLL 的函數(shù)接口?;舅悸肥牵?/span>
1. 采用 Loadlibrary 動態(tài)用戶現(xiàn)有的 DLL。
2. 根據(jù)傳入的 Level 參數(shù),采用 GetProcAddress 函數(shù)動態(tài)獲取實際的用于計算 Key 的函數(shù)指針。
3. 如果獲取函數(shù)指針成功,則使用該函數(shù)指針傳輸 Seed 值,并計算對應(yīng)的 Key 值。GenerateKeyEx 工程二次封裝示例,如圖 2-13。
圖 2-13 GenerateKeyEx 工程二次封裝示例
第 三 步, 該 GenerateKeyEx 工 程 開 發(fā) 結(jié) 束 后 , TSMaster 直 接 加 載GenerateKeyEx 所在的 DLL。需要注意的是,用戶需要把現(xiàn)有的 UserSeedKey.DLL 拷貝到 TSMaster 根目錄或者 GenerateKeyEx.DLL 所在的目錄。如果不拷貝過去,GenerateKeyEx.DLL 執(zhí)行的時候會出現(xiàn)找不到對應(yīng)依賴 DLL 的情況,解鎖失敗。
2.3.2 編寫 SeedKey 代碼
在 TSMaster 的內(nèi)置算法編輯器里的操作流程,示意如圖 2-14 所示。
圖 2-14 內(nèi)置算法編輯器
【1】選擇 SeedKey 算法的函數(shù);
【2】打開算法校驗器,可以于檢查算法結(jié)果是否正確;
【3】打開編寫代碼的窗口;
【4】可用于導(dǎo)出所編寫代碼的為 DLL 文件;
【5】選擇一個需要的 SeedKey 函數(shù)接口,并支持擴展自定義函數(shù)接口;
【6】SeedKey 源代碼編輯工作區(qū),用于解密算法代碼的輸入與編輯。
值得注意的是,TSMaster 目前提供了最常用的算法函數(shù)的接口形式,如果使用自己特殊的函數(shù)接口形式,可以聯(lián)系上海同星支持,可將相應(yīng)接口增加到選項中。
另外,所有的接口函數(shù)都定義了返回值類型為 s32。增加此約束,主要是增加函數(shù)的嚴謹性。其中,返回值為 0 表示成功,返回值為其他值則有對應(yīng)的錯誤碼。因此,在編輯代碼的時候,最后一行需要加上 return 返回值,如圖 2-15 所示,否則系統(tǒng)執(zhí)行函數(shù)過后會認為算法執(zhí)行失敗,不予往后面執(zhí)行。
圖 2-15 函數(shù) return 返回值
三、TSMaster 基礎(chǔ)診斷配置
基礎(chǔ)診斷模塊包含基本診斷服務(wù)和組合服務(wù)。對于診斷過程中獨立執(zhí)行的命令,在基本診斷服務(wù)中;用于文件下載的$34、$36 和$37 放入組合服務(wù)中。如圖3-1 所示:
圖 3-1 基礎(chǔ)診斷配置
1. 添加刪除服務(wù)命令
把鼠標放到需要添加和刪除的服務(wù)命令上方,右鍵展開,選擇是否需要添加和刪除該服務(wù),如下圖所示:
圖 3-2 添加和刪除的服務(wù)命令
2.配置基本診斷參數(shù)
以診斷會話控制為例,主要包含如下參數(shù)的配置,如圖 3-3:
圖 3-3 配置基本診斷參數(shù)
【1】 配置服務(wù)名稱:用戶可以配置一個易于理解和管理的服務(wù)名稱。
【2】 是否功能標識符:本診斷服務(wù)是否采用功能標識符發(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ù)。如圖 3-4。
圖 3-4 新增與刪除參數(shù)
其中,根據(jù)不同服務(wù)指令,可以設(shè)置不同的 ID 參數(shù)。比如診斷請求會話里的診斷會話類型參數(shù)是必選設(shè)置,而參數(shù)列表是可選的。在修改配置后,界面上方會實時顯示實際診斷報文的示例報文,如請求協(xié)議數(shù)據(jù)包是:【10 01 xx xx】:xx 表示該參數(shù)是可變的,根據(jù)用戶實際填入的數(shù)據(jù)確定;診斷儀將要收到的應(yīng)答協(xié)議數(shù)據(jù)包為【50 01 xx】。如圖 3-5 所示。
圖 3-5 請求與應(yīng)答參數(shù)設(shè)置
3.診斷服務(wù)參數(shù)
診斷模塊參數(shù)支持 7 種數(shù)據(jù)類型。包括:UInt,Int,Single,Double,HexArray,Ascii 和 SystemVar。如圖 3-6。
圖 3-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:單精度浮點數(shù),數(shù)據(jù)長度為固定的 32bits。用戶直接輸入輸出浮點數(shù)據(jù)。
【4】 Double:單精度浮點數(shù),數(shù)據(jù)長度為固定的 64bits。用戶直接輸入輸出浮點數(shù)據(jù)。
【5】 Hex Array:十六進制數(shù)組,數(shù)據(jù)長度為 8 的倍數(shù)。輸入數(shù)據(jù)滿足 16 禁止數(shù)據(jù)類型。
【6】 ASCII:ASCII 字符串,數(shù)據(jù)長度為 8 的倍數(shù)。輸入數(shù)據(jù)為 ASCII 字符數(shù)組,轉(zhuǎn)化為 16 進制后進行發(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)變量自身定義所決定。
4.配置組合服務(wù)
診斷組合服務(wù)($343637 下載文件)共包含通用配置、擦除 Flash 配置、請求和傳輸數(shù)據(jù)配置、傳輸退出配置、擴展和輔助的配置。如下詳細介紹每個配置。
4.1 通用配置
通用配置中支持加載下載文件格式為 hex/bin/s19/mot/srec/vdf 等等??梢詫ζ鹗嫉刂泛蛿?shù)據(jù)長度的字節(jié)數(shù)修改,調(diào)調(diào)整校驗和字節(jié)序和自定義 CRC 校驗算法導(dǎo)入和修改,并可通過下載文件查看器下載文件內(nèi)容。如圖 3-7。
圖 3-7 通用配置
【1】服務(wù)名稱:配置該服務(wù)的名稱
【2】文件名稱:加載可執(zhí)行文件,支持 hex\bin\s19\mot\srec\vdf...
【3】hex viewer:TSMaster 內(nèi)置了可執(zhí)行文件查看編輯器 TSHexViewer,用戶可以用該工具,查看載入 Hex 文件的詳細信息,如圖 3-8 所示。
圖 3-8 查看載入的下載文件
【4】地址和長度標識符??尚薷钠鹗嫉刂泛蛿?shù)據(jù)長度的字節(jié)。
【5】校驗和相關(guān)配置。校驗和字節(jié)序支持英特爾和摩托羅拉。在程序下載過程中,為了保證數(shù)據(jù)的完整性,需要引入 Checksum 算法對數(shù)據(jù)的完整性和有效性進行校驗。TSMaster 診斷模塊的符合服務(wù)中,引入了主流的 CRC 算法進行校驗。其選擇框如下圖所示,同時可實現(xiàn)自定義 CRC 校驗算法導(dǎo)入和修改,此處自定義算法只能是 DLL 文件的形式,如圖到 3-9。
圖 3-9 支持自定義 CRC 算法導(dǎo)入與修改
當加載好下載文件后,選擇指定的算法過,診斷模塊會對可執(zhí)行文件計算其檢驗和值,包括該可執(zhí)行文件每一個數(shù)據(jù)塊的檢驗和值以及文件整體的檢驗和值,如圖 3-10 所示。
圖 3-10 文件與數(shù)據(jù)塊檢驗和值
TSMaster 的診斷模塊能夠直接把系統(tǒng)變量作為參數(shù),在計算好每一個數(shù)據(jù)塊與文件的檢驗和值過后,會進一步自動轉(zhuǎn)化成系統(tǒng)變量,如圖 3-11。
圖 3-11 檢驗和系統(tǒng)變量
生成好的檢驗和系統(tǒng)變量,可以通過系統(tǒng)變量的類型添加到服務(wù)參數(shù)中。以常用的校驗可執(zhí)行文件的有效性為例,配置如下的 $31 例程控制服務(wù)命令,就可以實現(xiàn)對文件有效性的檢查,如圖 3-12:
圖 3-12 檢驗和系統(tǒng)變量添加到服務(wù)參數(shù)
4.2 擦除 Flash 配置
擦除 Flash 配置,可以配置無自動擦除、擦除 Hex 地址范圍、下載每一個數(shù)據(jù)塊之前擦除對應(yīng)塊。期望回復(fù)值以實際 ECU 的響應(yīng)進行填寫輸入。如圖 3-13。
圖 3-13 擦除 Flash 配置
4.3 請求和傳輸數(shù)據(jù)配置
請求傳輸數(shù)據(jù)命令的數(shù)據(jù)格式可以修改,比如從 00 修改為 AA??梢宰远?span style="font-size: 14px; margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box; letter-spacing: 1.1px; overflow-wrap: break-word !important;">義最大傳輸數(shù)據(jù)塊的長度,默認為 0x202,實際傳輸層數(shù)據(jù)包為 514 字節(jié)。如圖3-14。
圖 3-14 請求和傳輸數(shù)據(jù)配置
4.4 傳輸退出配置
傳輸退出配置,可以設(shè)置如下配置,如圖 3-15:
● 無校驗
● 在 ECU 端校驗($37+塊校驗和)
● 用戶自定義
● 在 PC 端校驗($37+塊校驗和)
● 校驗和類型選擇無校驗或校驗每一個數(shù)據(jù)塊
圖 3-15 傳輸退出配置
4.5 擴展
擴展配置可以添加簽名文件、特殊的 CRC 算法,與通用配置-校驗和相關(guān)配置里的自定義 CRC 算法導(dǎo)入相比,此處更靈活可支持任意格式的文件,如圖 3-16。
圖 3-16 擴展配置
4.6 輔助
輔助中可對下載文件按連續(xù)地址的大小分割,比如將數(shù)據(jù)塊按 0x1000 進行分割。如圖 3-17。
圖 3-17 下載文件分割設(shè)置
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。