作者 | 李偉 上海控安安全測評中心安全測評部總監(jiān)
來源 |鑒源實(shí)驗(yàn)室
引言:第四篇中我們介紹了UDS服務(wù)中的會話和安全控制,主要講了不同模式會話間的切換邏輯,問答報(bào)文結(jié)構(gòu),安全控制的作用和等級、安全控制的解鎖過程,以及這兩個服務(wù)的測試注意要點(diǎn)等等。本篇講述UDS中的讀和寫服務(wù),讀寫服務(wù)幾乎是工程師日常使用最為頻繁的服務(wù),特別是讀服務(wù)。
01 $22讀服務(wù)
$22讀服務(wù)通常在默認(rèn)會話下即可執(zhí)行,特殊情況下,某些信息做了讀取保密設(shè)計(jì),需要在擴(kuò)展會話和安全控制下才能讀取該DID(Data ID)信息。
DID長度通常為16進(jìn)制2個字節(jié),范圍從0x00 00至0xFF FF,每個DID代表一條對應(yīng)的消息,這樣我們需要知道該信息的內(nèi)容時(shí),只需要使用$22+DID既可以獲取該信息內(nèi)容。如:我們用DID 0xF1 90標(biāo)識車輛VIN,需要知道車輛VIN具體號碼信息時(shí),向ECU發(fā)送$22 F1 90進(jìn)行信息查詢,即可得到內(nèi)容反饋。
之前我們一直在強(qiáng)調(diào)UDS診斷的自定義空間比較大,在極個別項(xiàng)目中,我們遇到過DID長度為3個字節(jié)的情況,我們需要以實(shí)際項(xiàng)目研發(fā)測試過程設(shè)計(jì)為準(zhǔn)。
1.1DID的分類
通過上面的描述我們可以理解,車輛上很多信息可以通過DID進(jìn)行設(shè)計(jì)定義,通常主機(jī)廠根據(jù)信息屬性不同將DID進(jìn)行設(shè)計(jì)分類:
1)物流數(shù)據(jù)
物流數(shù)據(jù)中一般包含的是跟車輛和設(shè)備生產(chǎn)相關(guān)的固定信息。在生產(chǎn)過程中,零部件供應(yīng)商不會一個批次完成所有零部件的生產(chǎn)和交付,這個過程一般是以月份或者季度為單位分批次執(zhí)行,伴隨著這個過程的通常還有主機(jī)產(chǎn)要求的VAVE等活動,因此同一個零部件也會因生產(chǎn)批次不同,對應(yīng)的軟硬件和配置信息有所不同。物流數(shù)據(jù)通常有:零部件硬件批次號、軟件批次號、本設(shè)備的串號、部件號、出廠時(shí)間、制造時(shí)間、供應(yīng)商硬件號、供應(yīng)商軟件號、ECU部件數(shù)量、ECU應(yīng)用軟件數(shù)量、ECU配置文件數(shù)量、車型信息、車輛VIN碼等等。
2)內(nèi)部屬性數(shù)據(jù)
內(nèi)部屬性數(shù)據(jù)一般包含了ECU本身的軟硬件配置相關(guān)信息,如:軟件版本號、設(shè)備溫度、ICCID號、IMEI號、GNSS天線狀態(tài)、GNSS定位信息、NAD基本信息、NAD天線信息等等。
3)配置屬性數(shù)據(jù)
配置屬性數(shù)據(jù)顧名思義包含了ECU中需要進(jìn)行配置的相關(guān)數(shù)據(jù),這些數(shù)據(jù)一般情況下都可以做成模板進(jìn)行復(fù)用,根據(jù)要求不一樣進(jìn)行模板選擇,如:當(dāng)前車輛的車型(同一型號的車具體有高中低等不同配置,具體到當(dāng)前車輛可能發(fā)動機(jī)等配置都是有區(qū)別的)、移動通信運(yùn)營商國家代碼、運(yùn)營商網(wǎng)絡(luò)編碼、APN撥號配置等。
4)Bitmapped I/O parameter DID和Non-Bitmapped I/O parameter DID
ECU通常會收到網(wǎng)絡(luò)上其他設(shè)備發(fā)送的周期信號,這些信號通??梢栽谙鄳?yīng)的網(wǎng)絡(luò)上實(shí)時(shí)獲取,也可以通過診斷讀取,這類信號一般包含在Bitmapped和Non-Bitmapped屬性數(shù)據(jù)中,區(qū)別是一個通常包含的是開關(guān)與否、報(bào)警與否的狀態(tài)信號,另一個通常包含的對應(yīng)的數(shù)值,如:機(jī)油過低報(bào)警狀態(tài)、機(jī)油量、油量過低報(bào)警狀態(tài)、當(dāng)前油量等等。
1.2$22服務(wù)請求報(bào)文
$22服務(wù)的請求報(bào)文格式總體與第三篇文檔的描述一致。但是$22服務(wù)沒有子功能,在服務(wù)ID后直接跟DID。發(fā)送報(bào)文幀結(jié)構(gòu)如下圖:
圖 1
舉例$22服務(wù)請求VIN碼對應(yīng)的DID,報(bào)文為:03 22 F1 90,當(dāng)然根據(jù)項(xiàng)目實(shí)際情況車輛VIN可能是其他DID。
$22服務(wù)支持多個DID一次讀取,報(bào)文格式如下圖:
圖 2
舉例$22服務(wù)一次請求多個DID,$22 F1 80 F1 81。
1.3$22服務(wù)響應(yīng)報(bào)文
$22服務(wù)的響應(yīng)報(bào)文格式總體與第三篇文檔的描述一致。正響應(yīng)報(bào)文的服務(wù)號為$62,第二、三字節(jié)對應(yīng)請求報(bào)文的DID。從第四字節(jié)至最后為對應(yīng)DID的實(shí)際數(shù)據(jù)。響應(yīng)報(bào)文幀的結(jié)構(gòu)圖如下所示:
圖 3
舉例$22服務(wù)的響應(yīng)報(bào)文通常為:
ECU: 10 14 62 F1 90 01 02 03
Tester:30 00(流控制幀)
ECU: 21 04 05 06 07 08 09 0A
ECU: 22 0B 0C 0D 0E 0F 10 11
$22服務(wù)一次讀取多個DID的響應(yīng)報(bào)文格式如下圖:
圖 4
$22服務(wù)一次讀取多個DID的響應(yīng)報(bào)文,如:
ECU: 10 0C 62 F1 80 01 02 03
Tester:30 00(流控制幀)
ECU: 21 04 F1 81 0A 0B 0C AA
$22服務(wù)的否定響應(yīng)格式,可以參考第三篇文章服務(wù)響應(yīng)總體中負(fù)響應(yīng)部分介紹,所有UDS服務(wù)的負(fù)響應(yīng)故障代碼表在項(xiàng)目中均是通用的。
02 $2E寫服務(wù)
$2E寫服務(wù)跟$22是對應(yīng)的關(guān)系,完成了DID對應(yīng)的數(shù)據(jù)寫入后,我們才能通過$22服務(wù)讀取出相應(yīng)DID寫入的內(nèi)容。所以$2E服務(wù)的請求應(yīng)答過程跟$22的請求應(yīng)答格式上看是相互翻轉(zhuǎn)的。
$2E服務(wù)成功寫入的前提條件,通常要求服務(wù)在擴(kuò)展會話和安全等級1的模式下執(zhí)行。另外要注意的,并不是所有支持$22服務(wù)的DID都能夠在$2E服務(wù)下寫入,通常物流數(shù)據(jù)DID、配置信息DID等可以反復(fù)寫入,Bitmapped和Non-Bitmapped屬性數(shù)據(jù)一般不支持$2E手動寫入,具體情況還需要查看項(xiàng)目的相關(guān)設(shè)計(jì)文檔。
2.1 $2E服務(wù)請求報(bào)文
$2E服務(wù)請求報(bào)文寫入DID對應(yīng)的數(shù)據(jù)格式總體上跟上篇中UDS請求報(bào)文介紹一致,發(fā)送報(bào)文幀結(jié)構(gòu)如下圖:
圖 6
舉例$2E的正響應(yīng)報(bào)文通常格式為:03 6E F1 90
負(fù)響應(yīng)的報(bào)文格式可以參考第三篇的相關(guān)章節(jié),負(fù)響應(yīng)NRC代碼表一般在項(xiàng)目中是通用的。
03 總結(jié)
$22服務(wù)和$2E服務(wù)測試過程中通常是配合一起執(zhí)行的。但是支持$22服務(wù)的DID,不一定支持$2E服務(wù)。DID對應(yīng)的信息含義和格式一定要查閱和依據(jù)診斷規(guī)范。
04 測試要點(diǎn)
$22和$2E服務(wù)跟其他服務(wù)測試相同的地方是,大家都要依照針對規(guī)范執(zhí)行相關(guān)測試;不同點(diǎn)在于$22和$2E涉及到的物流數(shù)據(jù)DID,對于這些信息零部件每個生產(chǎn)批次的數(shù)值可能都不一樣,最新的數(shù)值表一般在排產(chǎn)前,由DRE在系統(tǒng)中申請生成,并向供應(yīng)商釋放,因此測試的時(shí)間和對應(yīng)釋放的軟件版本號需要特別注意。
審核編輯:湯梓紅
-
嵌入式
+關(guān)注
關(guān)注
5088文章
19159瀏覽量
306506 -
ecu
+關(guān)注
關(guān)注
14文章
890瀏覽量
54608
發(fā)布評論請先 登錄
相關(guān)推薦
評論