0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

UDS之19服務(wù)中04子服務(wù):讀取快照數(shù)據(jù)

北匯信息POLELINK ? 2023-04-23 09:32 ? 次閱讀

作者 | 小懶小編 | 吃不飽

在車載診斷中常用的診斷協(xié)議有ISO 14229等,在協(xié)議中主要定義了診斷請求、診斷響應(yīng)的報文格式及ECU該如何處理診斷請求的應(yīng)用。其中ISO 14229系列標(biāo)準(zhǔn)協(xié)議定義了用于行業(yè)內(nèi)診斷通信的需求規(guī)范,也就是UDS。UDS主要應(yīng)用于OSI七層模型的第七層——應(yīng)用層,它支持的汽車總線包括:CAN、LIN、FlexRay、Ethernet及K-LINK。UDS中的服務(wù)根據(jù)其功能分為6大類,共26種。其中包含的0x19服務(wù)(ReadDTCInformation)則是UDS中的重中之重。那么我們今天就一起進入到19服務(wù)中,感受其中的奧秘。


01服務(wù)介紹
19服務(wù)(ReadDTCInformation)用于讀取ECU的DTC故障信息,此服務(wù)允許客戶端從服務(wù)器讀取診斷故障代碼(DTC)的相關(guān)信息。此服務(wù)包含28個子服務(wù)(Subfunction),常用的5種子服務(wù)如下:

0x01

reportNumberOfDTCByStatusMask(讀取客戶端定義狀態(tài)掩碼匹配的DTC數(shù)量)

0x02

reportDTCByStatusMask(讀取客戶端定義狀態(tài)掩碼匹配的DTC)

0x04

reportDTCSnapshotRecordByDTCNumber(檢索客戶端定義DTC掩碼的快照數(shù)據(jù))

0x06

reportDTCExtDataRecordByDTCNumber(讀取某個DTC及其相關(guān)的擴展數(shù)據(jù),擴展數(shù)據(jù)包括DTC狀態(tài)、優(yōu)先級、發(fā)生次數(shù)、時間戳、里程等。)

0x0A

reportSupportedDTC(讀取ECU支持的所有DTC的狀態(tài),包含支持的各個DTC編號以及相關(guān)狀態(tài))

今天主要解析19服務(wù)中的04子服務(wù),也就是檢索客戶端定義DTC的快照號對應(yīng)的快照記錄數(shù)據(jù),在AUTOSAR中也叫凍結(jié)幀。

0204子服務(wù)介紹

快照數(shù)據(jù)概念介紹

前面講19服務(wù)常用子服務(wù)的時候,提到了Subfunction為04的子服務(wù),使用04子服務(wù)對服務(wù)端進行請求,可以獲取DTC發(fā)生時記錄的快照數(shù)據(jù)。那04子服務(wù)是如何獲取快照數(shù)據(jù)的呢?首先我們需要理解什么是快照數(shù)據(jù)。從ISO 14229-1協(xié)議可知,快照數(shù)據(jù)為發(fā)生某一故障時記錄的DTC的電壓、發(fā)動機轉(zhuǎn)速、時間戳等,從而使工程師在ECU出現(xiàn)故障時能及時了解車輛的歷史和實時故障信息。

報文格式介紹

接下來通過介紹19 04子服務(wù)請求和響應(yīng)的報文格式,分析報文中各個字節(jié)的相關(guān)定義。
49e88146-dee2-11ed-ad0d-dac502259ad0.png圖1 請求格式
從圖1中可知,19 04的請求報文包括四個部分,其中服務(wù)ID和Subfunction就不用過多解釋了。DTCMaskRecord表示某個故障的DTC,當(dāng)系統(tǒng)檢測到一個故障發(fā)生時,則會存儲其對應(yīng)的故障數(shù)值,這個故障數(shù)值就是DTC。通過讀取DTC可知一個故障發(fā)生時的具體位置以及原因和類型。
通常UDS中DTC占3個字節(jié),OBD Ⅱ占2個字節(jié),在ISO 15031-6中定義的DTC由兩個字節(jié)根基和一個字節(jié)的故障類型組成。我們通常用到的DTC格式都是由ISO 15031-6中定義的。圖2是ISO 15031-6中定義的DTC的兩個字節(jié)根基,圖中很詳細(xì)地解釋了每一個Bit的含義。

49efe2ce-dee2-11ed-ad0d-dac502259ad0.jpg

圖2
SnapshotRecordNumber需要提前定義,可以有多個。如SnapshotRecordNumber設(shè)置為FF,則表示讀取所有的快照數(shù)據(jù)組。
49faea34-dee2-11ed-ad0d-dac502259ad0.png圖3 響應(yīng)格式
圖3為響應(yīng)報文格式,當(dāng)使用19 04對ECU進行請求時,ECU給出的肯定響應(yīng)的報文格式由七部分組成。此時的DTCAndStatusRecord由三個字節(jié)的DTC和一個字節(jié)的StatusOfDTC組成,StatusOfDTC表示DTC的狀態(tài)。假設(shè)現(xiàn)在的DTC狀態(tài)為0x09,則Bit0和Bit3置1。如某個DTC一直存在并且確認(rèn),則在ECU響應(yīng)的報文中的StatusOfDTC為0x09,如圖4。
4a036768-dee2-11ed-ad0d-dac502259ad0.png圖4
SnapshotRecordNumber這個字節(jié)表示DTC快照記錄的組號;
DTCSnapshotRecordNumberOfldentifiers表示快照DID的個數(shù),占一個字節(jié);Dataldentifier這部分由兩個字節(jié)組成,表示快照數(shù)據(jù)對應(yīng)的DID,DTCSnapshotRecord表示快照DID對應(yīng)的具體數(shù)據(jù)。

實例分析

前面介紹了19 04子服務(wù)請求和響應(yīng)的報文格式。掌握了理論知識,那么現(xiàn)在我們就到實例中去具體分析,從而加深對19 04子服務(wù)如何讀取快照數(shù)據(jù)的過程的理解。

客戶端對服務(wù)端發(fā)起一個讀取DTC快照的請求。當(dāng)前DTC為0x123456,可以假設(shè)這是一個轉(zhuǎn)向燈的故障碼,0x02為快照記錄組號。請求報文如圖5所示。

4a0c047c-dee2-11ed-ad0d-dac502259ad0.png圖5

服務(wù)端對客戶端回復(fù)了一個肯定響應(yīng)。從圖6中可知,當(dāng)前的DTC狀態(tài)掩碼為0x24,0x01表示只有一個快照DID,當(dāng)然也可以包含多個快照DID,可以分別表示車速、電壓等。如果有兩個快照DID,此時DTCSnapshotRecordNumberOfldentifiers這個字節(jié)為0x02。

快照DID為0x4711,如果此時記錄的是轉(zhuǎn)向燈故障時當(dāng)前車速的數(shù)據(jù),那么這個0x4711則表示此時快照數(shù)據(jù)的名稱——車速。DTCSnapshotRecord為具體的快照數(shù)據(jù)0xA666075020,以16進制數(shù)值表示,通過數(shù)據(jù)類型解析后就可以得到具體的車速等信息。
4a134318-dee2-11ed-ad0d-dac502259ad0.png圖6

在CANdelaStudio中如何設(shè)置

接下來我們看看在CANdelaStudio中如何設(shè)置19 04服務(wù)的請求及響應(yīng)參數(shù),步驟如下:

①配置DTC信息

在這個界面如圖7,可以進行“DTC Code”的新增與刪減,點擊現(xiàn)有的信息可進行編輯改動;

4a1dacea-dee2-11ed-ad0d-dac502259ad0.png圖7

②設(shè)置服務(wù)

在左側(cè)目錄切換到“Base Variant”下的“Supported Diagnostic Classes”,點擊“Fault Memory”;

4a27e11a-dee2-11ed-ad0d-dac502259ad0.png圖8
點擊圖9上面標(biāo)簽頁中的“DTCs”,然后會跳轉(zhuǎn)到圖9所示界面,將我們前面配置的DTC信息更新到這里來,如圖9所示,當(dāng)前DTC為0x123456。
4a3101e6-dee2-11ed-ad0d-dac502259ad0.png圖9
點擊圖10上面標(biāo)簽頁中的“Snapshot Records”,然后會跳轉(zhuǎn)到圖10所示界面,在這里設(shè)置快照記錄組號。4a443824-dee2-11ed-ad0d-dac502259ad0.png圖10

③設(shè)置肯定響應(yīng)參數(shù)

首先根據(jù)客戶的需求設(shè)置ECU支持的DTC狀態(tài)位DTCStatus,如圖11;

4a52ef22-dee2-11ed-ad0d-dac502259ad0.png圖11
然后在“DTCs”頁面選中名為0x123456的DTC,在“Individual for DTC P123456”下設(shè)置快照數(shù)據(jù)。例如圖12中現(xiàn)在定義的快照DID為4711,具體的快照數(shù)據(jù)是當(dāng)前車輛的Wheel Speed FR等。快照DID可以在“DIDs”中提前定義。到這里,在CANdelaStudio中關(guān)于19 04服務(wù)的請求及響應(yīng)參數(shù)就設(shè)置完成了。(軟件界面截圖來源于CANdelaStudio 16.0版本)
4a5e27e8-dee2-11ed-ad0d-dac502259ad0.png圖12

03總結(jié)
19 04服務(wù)的目的是讀取對應(yīng)DTC的快照數(shù)據(jù),從而使工程師在進行診斷時更加快速了解故障發(fā)生時的車輛狀況信息。除此之外,19服務(wù)還有其他4個常用的Subfunction,大家可以根據(jù)ISO 14229-1中的相關(guān)解釋和實例進行知識擴展。北匯信息專注于汽車電子網(wǎng)絡(luò)通信、診斷刷寫、邏輯功能測試開發(fā)服務(wù),期待進一步溝通交流、共享合作的機會。參考文檔:ISO 14229-1(2020)注:文中部分圖片來源于Vector.

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    6837

    瀏覽量

    88754
  • 服務(wù)
    +關(guān)注

    關(guān)注

    0

    文章

    75

    瀏覽量

    18490
收藏 人收藏

    評論

    相關(guān)推薦

    飛凌嵌入式ElfBoard ELF 1板卡-常見網(wǎng)絡(luò)服務(wù)搭建SSH服務(wù)搭建

    SSH為Secure Shell的縮寫,由IETF的網(wǎng)絡(luò)小組(Network Working Group)所制定的建立在應(yīng)用層基礎(chǔ)上的安全協(xié)議。SSH是較可靠,專為遠程登錄會話和其他網(wǎng)絡(luò)服務(wù)提供
    發(fā)表于 09-29 09:48

    飛凌嵌入式ElfBoard ELF 1板卡-常見網(wǎng)絡(luò)服務(wù)搭建SSH服務(wù)搭建

    on :: port 22. 8月 23 17:19:57 ubuntu systemd[1]: Started OpenBSD Secure Shell server. 4.關(guān)閉SSH服務(wù)
    發(fā)表于 09-27 09:06

    請問websocket庫怎么讀取服務(wù)器發(fā)來的數(shù)據(jù)?

    官方websocket庫怎么讀取服務(wù)器發(fā)來的數(shù)據(jù)?
    發(fā)表于 06-25 06:40

    藍牙開啟自定義服務(wù)之后,添加了一個服務(wù),怎么添加第二服務(wù)?。?/a>

    藍牙開啟自定義服務(wù)之后,添加了一個服務(wù),怎么添加第二服務(wù)啊 按照我的理解,在創(chuàng)建第一個
    發(fā)表于 06-19 08:32

    服務(wù)數(shù)據(jù)恢復(fù)—異常斷電導(dǎo)致VMware虛擬機無法啟動的數(shù)據(jù)恢復(fù)案例

    服務(wù)數(shù)據(jù)恢復(fù)環(huán)境: 某大廠PS4000服務(wù)器,服務(wù)器上部署VMware ESXi虛擬化平臺。 服務(wù)器故障: 機房斷電,重啟后
    的頭像 發(fā)表于 05-29 11:29 ?954次閱讀
    <b class='flag-5'>服務(wù)</b>器<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—異常斷電導(dǎo)致VMware虛擬機無法啟動的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例

    服務(wù)數(shù)據(jù)恢復(fù)—EVA存儲異常斷電后出現(xiàn)故障的數(shù)據(jù)恢復(fù)方案

    服務(wù)器存儲數(shù)據(jù)恢復(fù)環(huán)境: 某品牌EVA8400,服務(wù)器上安裝VMware ESXi虛擬化平臺,虛擬機的虛擬磁盤包括數(shù)據(jù)盤(精簡模式)+快照數(shù)據(jù)
    的頭像 發(fā)表于 05-28 10:29 ?318次閱讀

    Aurix TC364D是否可以通過某些UDS服務(wù)停用HSM?

    我想問一下,是否可以通過某些 UDS 服務(wù)停用 HSM? 我們使用的是 Aurix TC364D 混凝土芯片。 我們需要停用的原因是上傳的特定測試軟件沒有網(wǎng)絡(luò)安全 == 激活 HSM 后,測試軟件
    發(fā)表于 05-20 07:19

    服務(wù)數(shù)據(jù)恢復(fù)—VMware虛擬機無法啟動的數(shù)據(jù)恢復(fù)案例

    服務(wù)數(shù)據(jù)恢復(fù)環(huán)境: 某品牌EVA某型號存儲中部署VMware ESXi虛擬化平臺,數(shù)據(jù)盤(精簡模式)+快照數(shù)據(jù)盤,虛擬機中有mysql數(shù)據(jù)
    的頭像 發(fā)表于 05-06 13:26 ?438次閱讀

    服務(wù)數(shù)據(jù)恢復(fù)—分享幾個服務(wù)數(shù)據(jù)恢復(fù)的案例

    服務(wù)數(shù)據(jù)恢復(fù)案例服務(wù)器raid63個磁盤離線導(dǎo)致陣列崩潰的數(shù)據(jù)恢復(fù)案例;
    的頭像 發(fā)表于 03-04 13:21 ?1064次閱讀

    虛擬機數(shù)據(jù)恢復(fù)-虛擬機還原快照原理和誤還原快照數(shù)據(jù)恢復(fù)方案

    由一臺物理服務(wù)器遷移到ESXI上的虛擬機,虛擬機遷移完成后做了一個快照,該ESXI上面一共運行了數(shù)十臺虛擬機。某天工作人員不小心將快照進行了還原,虛擬機內(nèi)的數(shù)據(jù)還原到了數(shù)年前剛遷移過來
    的頭像 發(fā)表于 02-27 11:54 ?920次閱讀
    虛擬機<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)-虛擬機還原<b class='flag-5'>快照</b>原理和誤還原<b class='flag-5'>快照</b>的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)方案

    服務(wù)數(shù)據(jù)恢復(fù)—EVA存儲數(shù)據(jù)恢復(fù)案例

    服務(wù)器存儲的所有磁盤編號后取出,硬件工程師檢測后發(fā)現(xiàn)掉線硬盤不存在物理故障,也沒有發(fā)現(xiàn)壞道,都可以正常讀取數(shù)據(jù)。
    的頭像 發(fā)表于 01-23 13:53 ?405次閱讀

    服務(wù)數(shù)據(jù)恢復(fù)】服務(wù)器遷移數(shù)據(jù)數(shù)據(jù)損壞的數(shù)據(jù)恢復(fù)案例

    服務(wù)數(shù)據(jù)恢復(fù)環(huán)境&服務(wù)器故障: 一臺安裝Windows操作系統(tǒng)的服務(wù)器。工作人員在遷移該服務(wù)
    的頭像 發(fā)表于 01-16 13:19 ?862次閱讀

    TFTP服務(wù)器是什么如何下載文件

    8位源數(shù)據(jù)類型;最后一種mail已經(jīng)不再支持,它將返回的數(shù)據(jù)直接返回給用戶而不是保存為文件。 如何從TFTP服務(wù)器下載文件 客戶端會向 TFTP 服務(wù)器發(fā)送請求
    發(fā)表于 12-12 16:06

    UDS29服務(wù):認(rèn)證服務(wù)

    汽車工業(yè)的很多領(lǐng)域都有嚴(yán)格的國際標(biāo)準(zhǔn),其中針對車載診斷的ISO14229規(guī)定了車載診斷服務(wù)的通用需求(UDS),UDS主要應(yīng)用于OSI模型的應(yīng)用層,UDS協(xié)議根據(jù)功能的不同定義了26種
    的頭像 發(fā)表于 11-30 08:24 ?2045次閱讀
    <b class='flag-5'>UDS</b><b class='flag-5'>之</b>29<b class='flag-5'>服務(wù)</b>:認(rèn)證<b class='flag-5'>服務(wù)</b>

    UDS在CAN和以太網(wǎng)上的實現(xiàn)方案

    JTAG是針對MCU或者SOC這種芯片的調(diào)試接口協(xié)議,而UDS更像是針對整個ECU的調(diào)試接口。UDS簡單來說是一種Client/Server的通信服務(wù),即Tester(診斷儀)向ECU發(fā)送診斷
    發(fā)表于 11-28 09:56 ?5152次閱讀
    <b class='flag-5'>UDS</b>在CAN和以太網(wǎng)上的實現(xiàn)方案