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

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

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

淺析UDS中的肯定響應(yīng)抑制SPRMIB

冬至子 ? 來源:汽車電子聯(lián)盟 ? 作者:汽車電子聯(lián)盟 ? 2023-07-27 14:18 ? 次閱讀

子功能參數(shù)定義

UDS協(xié)議中,有些診斷服務(wù)是帶有子功能的。子功能參數(shù)的取值范圍為0x00 - 0x7F。細(xì)心的同學(xué)應(yīng)該發(fā)現(xiàn)了,子功能參數(shù)占用了一個字節(jié),可用的數(shù)值范圍為0~0xFF。但子功能的最大取值只到0x7F,那么最高位去哪了呢。這個子功能參數(shù)的最高位就是我們今天要聊的診斷服務(wù)肯定響應(yīng)抑制位SuppressPosRspMsgIndicationBit,簡寫為SPRMIB。

如下是診斷服務(wù)子功能參數(shù)的格式定義。其中的最高位Bit7就決定了ECU是否需要給出肯定響應(yīng)。

子功能參數(shù)格式定義

圖片

肯定響應(yīng)抑制位的作用

ECU收到SPRMIB為1的服務(wù)時,不需要給出肯定響應(yīng)。相反,當(dāng)ECU收到SPRMIB為0的服務(wù)時,需要給出肯定響應(yīng)。

例如,ECU收到診斷儀發(fā)來的Tester Present服務(wù)為$02 3E 00時,需要給出$02 7E 00的肯定響應(yīng)。同樣是Test Present服務(wù),如果ECU收到的是$02 3E 80,則無需給出肯定響應(yīng)。

例外情況

ECU在響應(yīng)某些診斷服務(wù)時,由于執(zhí)行時間較長,無法立即給出肯定響應(yīng)。此時ECU會先給出NRC為0x78的否定響應(yīng)。然后等到所請求的服務(wù)執(zhí)行完后,給出最終的肯定響應(yīng)或否定響應(yīng)。這種情況下,即使ECU收到的診斷服務(wù)請求中子功能參數(shù)肯定響應(yīng)抑制位為1,最終的肯定響應(yīng)也不會被抑制。

例如在如下的診斷通信中, 即使ECU收到了子功能為0x82的診斷會話控制(DiagnosticSessionControl)服務(wù),最終仍然需要給出肯定響應(yīng)。

Tester : $02 10 82

ECU : $03 7F 10 78

ECU : $06 50 02 00 32 01 F4

我們來分析一下這個過程。首先Tester請求ECU進入編程回話(Programming session),但不希望ECU給出肯定響應(yīng)。但是進入編程回話通常需要ECU復(fù)位,重新啟動后進入Bootloader。這個過程所需要的時間會超過P2CAN_Server (通常為50ms)。所以ECU會先給出NRC為0x78的否定響應(yīng),用以通知Tester診斷請求已經(jīng)正確接收了,正在處理,稍后給出響應(yīng)。

當(dāng)ECU成功執(zhí)行了切換到Programming Session的操作后,由于之前給出了NRC為0x78的否定響應(yīng),此時必須給出肯定響應(yīng),用以通知Tester診斷請求已經(jīng)被成功執(zhí)行了。

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

    關(guān)注

    0

    文章

    5

    瀏覽量

    6805
  • 診斷儀
    +關(guān)注

    關(guān)注

    1

    文章

    77

    瀏覽量

    8818
  • ECU軟件
    +關(guān)注

    關(guān)注

    1

    文章

    13

    瀏覽量

    10300
收藏 人收藏

    評論

    相關(guān)推薦

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

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

    一文搞懂UDS的各種NRC

    當(dāng)服務(wù)端收到診斷請求時,如果能執(zhí)行則回復(fù)肯定響應(yīng),不能執(zhí)行則回復(fù)否定響應(yīng);也有不給出響應(yīng)的情況,就是抑制
    的頭像 發(fā)表于 01-20 10:01 ?2.2w次閱讀
    一文搞懂<b class='flag-5'>UDS</b>的各種NRC

    誰能幫我解答下CAN總線UDS診斷?

    誰能幫我解答下CANUDS診斷?需要聯(lián)系請私信我。遇到好多難題。有點懵。想請高手幫我解答下.主要是沒有程序。而且還不知道報文里面的數(shù)據(jù)代表什么?
    發(fā)表于 10-21 23:14

    Labview 基于CAN UDS燒錄Hex文件

    本帖最后由 xu391600076 于 2021-8-11 13:18 編輯 1. Hex文件讀取解析并計算CRC-32校驗碼2. UDS服務(wù)通訊3. UDS刷寫邏輯過程復(fù)制下面這段話,打開閑
    發(fā)表于 08-11 11:41

    UDS診斷命令備忘錄

    UDS實踐性強,邏輯復(fù)雜,很多服務(wù)非要體驗過一次才能理解,導(dǎo)致包括我在內(nèi)的初學(xué)者感覺晦澀難懂,不明覺厲,因此將自己的理解寫下來、整理下來,與君共勉。零、UDS診斷命令備忘錄一、簡介UDS
    發(fā)表于 08-26 16:09

    淺析伺服系統(tǒng)應(yīng)用的慣量匹配問題

    剛性、慣量、響應(yīng)時間及伺服增益調(diào)整之間的關(guān)系 淺析伺服系統(tǒng)應(yīng)用的慣量匹配問題-慣量匹配
    發(fā)表于 09-07 07:01

    關(guān)于伺服的采樣周期、循環(huán)時間、響應(yīng)時間、響應(yīng)頻率和帶寬不看肯定后悔

    關(guān)于伺服的采樣周期、循環(huán)時間、響應(yīng)時間、響應(yīng)頻率和帶寬不看肯定后悔
    發(fā)表于 10-09 07:48

    OBDII與UDS的區(qū)別是什么

    PrimaryECU在已經(jīng)開發(fā)完UDS診斷的基礎(chǔ)上增加OBD II診斷一、OBD II與UDS的區(qū)別?這里主要介紹在診斷開發(fā)上面OBD II與UDS的區(qū)別,此外為了方便描述,下文中用OBD指代OBD II協(xié)議。1.Operati
    發(fā)表于 02-23 06:55

    基于MM32F0140系列MCU實現(xiàn)UDS Bootloader的設(shè)計

    測試等功能,在 ISO 14229 規(guī)定了其實現(xiàn)標(biāo)準(zhǔn)。  在本實例,UDS 通信是在客戶端-服務(wù)端關(guān)系執(zhí)行的。客戶端是上位機下載軟件運行于 PC 機,服務(wù)端是 MM32F0140
    發(fā)表于 09-15 16:35

    UDS診斷協(xié)議在純電動汽車電機控制器的應(yīng)用說明

      針對UDS診斷協(xié)議在電動汽車電機控制器的應(yīng)用問題,利用UDS診斷協(xié)議各項服務(wù)的功能,同時根據(jù)電機控制器的功能需求,實現(xiàn)UDS診斷協(xié)議
    發(fā)表于 04-02 17:16 ?8次下載

    UDS常用診斷服務(wù)

    14229協(xié)議,在ISO 14229協(xié)議定義了UDS服務(wù)用法、服務(wù)格式等信息。UDS診斷最主要目的是為了能夠快速準(zhǔn)確判斷車輛或者某個控制器的故障以及故障原因,從而為維修提供可靠的依據(jù)。 診斷服務(wù)概覽
    的頭像 發(fā)表于 06-12 10:36 ?1w次閱讀
    <b class='flag-5'>UDS</b>常用診斷服務(wù)

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

    作者|小懶小編|吃不飽在車載診斷中常用的診斷協(xié)議有ISO14229等,在協(xié)議主要定義了診斷請求、診斷響應(yīng)的報文格式及ECU該如何處理診斷請求的應(yīng)用。其中ISO14229系列標(biāo)準(zhǔn)協(xié)議定義了用于行業(yè)
    的頭像 發(fā)表于 04-23 09:32 ?2282次閱讀
    <b class='flag-5'>UDS</b>之19服務(wù)<b class='flag-5'>中</b>04子服務(wù):讀取快照數(shù)據(jù)

    UDS診斷服務(wù)響應(yīng)規(guī)則介紹

    15031,ISO 15765,還有我們熟悉的ISO 14229就是UDS協(xié)議,在協(xié)議里面定義了診斷的請求,診斷響應(yīng)的報文格式,以及ECU怎樣處理診斷請求報文,以及診斷服務(wù)的應(yīng)用。
    的頭像 發(fā)表于 08-15 17:00 ?3786次閱讀
    <b class='flag-5'>UDS</b>診斷服務(wù)<b class='flag-5'>響應(yīng)</b>規(guī)則介紹

    汽車UDS協(xié)議棧與XCP協(xié)議棧

    在車輛中進行故障診斷、參數(shù)配置和編程等操作。 UDS協(xié)議棧通常包含以下功能軟件: 通信層:負(fù)責(zé)處理UDS協(xié)議的通信,包括CAN總線通信、LIN總線通信等。 診斷服務(wù):實現(xiàn)了UDS協(xié)議定義的各種診斷服務(wù),如讀取故障碼、清除故障碼、
    的頭像 發(fā)表于 10-27 16:35 ?3948次閱讀
    汽車<b class='flag-5'>UDS</b>協(xié)議棧與XCP協(xié)議棧

    UDS之29服務(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種診斷服務(wù)
    的頭像 發(fā)表于 11-30 08:24 ?2045次閱讀
    <b class='flag-5'>UDS</b>之29服務(wù):認(rèn)證服務(wù)