日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

uds帧格式_如何看懂UDS诊断报文

發布時間:2025/3/12 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 uds帧格式_如何看懂UDS诊断报文 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

UDS介紹

UDS(Unified Diagnostic Services,統一的診斷服務)診斷協議是ISO 15765 和ISO 14229 定義的一種汽車通用診斷協議,位于OSI模型中的應用層,它可在不同的汽車總線(例如CAN, LIN, Flexray, Ethernet 和 K-line)上實現。UDS協議的應用層定義是ISO 14229-1,目前大部分汽車廠商均采用UDS on CAN的診斷協議。

UDS本質上是一系列的服務,共包含6大類26種。每種服務都有自己獨立的ID,即SID。

SID:Service Identifier,診斷服務ID。UDS本質上是一種定向的通信,是一種交互協議(Request/Response),即診斷方給ECU發送指定的請求數據(Request),這條數據中需要包含SID。

如果是肯定的響應(Positive Response),回復[SID+0x40],如請求10,響應50;請求22,響應62。

如果是否定的響應(Negative Response),回復7F+SID+NRC,回復的是一個聲明。

肯定響應和否定響應的形式一定要熟記。

常用服務介紹

UDS的26種服務中,有7種很重要。它們分別是:

$10 Diagnostic Session Control(診斷會話),

$14 Clear Diagnostic Information(清除診斷信息),

$19 Read DTC Information,

$22 Read Data By Identifier(通過ID讀數據),

$27 Security Access(安全訪問),

$2E Write Data By Identifier(通過ID寫數據),

$3E Tester Present(待機握手)。

image

下面對這7個服務進行解讀。

$10診斷會話

$10包含3個子功能,

01 Default,

02 Programming,

03 Extended,

ECU上電時,進入的是默認會話(Default)。如果您進入了一個非默認會話的狀態,一個定時器會運轉,如果一段時間內沒有請求,那么到時間后,診斷退回到默認會話01。當然,我們有一個$3E的服務,可以使診斷保持在非默認的狀態。

報文包含4種類型,即

SID,

SID+SF(Sub-function),

SID+DID(Data Identifier)(讀寫用),

SID+SF+DID。

NRC:Negative Response Code(否定響應碼)。如果ECU拒絕了一個請求,它會回應一個NRC。不同的NRC有不同的含義。

NRC.jpg

例子:以CAN總線網絡舉例。

八個數據字節,第一字節被網絡層占用。

請求(Request):

02 10 02 xx xx xx xx xx

02中的0代表網絡層單幀SF,2代表 數據域有2個字節;10是SID,02是子功能。

肯定響應:

02 50 02 xx xx xx xx xx

02同上,10+40表示對SID的肯定回復,02是子功能。

否定響應:

03 7F 10 22 xx xx xx xx;

03同上,7F表示否定響應,10是SID,22是NRC。

$3E待機握手

$3E服務用于向服務器指示診斷儀仍然連接在網絡上,之前已經激活的診斷服務功能可以仍然保持激活狀態。

例子:

02 3E 80 00 00 00 00 00,發送一個3E服務的報文,保持非默認會話狀態。80表示無需回復。

$27安全訪問

27服務,加上一個子服務,再加上一個鑰匙,這樣的服務請求可以進行解鎖。

比如下面的例子,2n-1是某個子服務,通過首輪種子的請求,首輪ECU會返回67+01+AA+BB+CC+DD,AA~DD就是種子了。之后第二輪,診斷端會利用種子進行運算(利用整車廠的算法),生成k1(不一定是1個字節),那么發送請求,27+02+[k1]。ECU同樣也會通過種子算出k2。當k1和k2匹配時,解鎖(Unlocked)成功。

例子:

Rx: 02 27 05 00 00 00 00 00 安全訪問,05子功能

Tx: 07 67 05 08 27 11 F0 77 肯定響應,回復了對應安全級別的種子

Rx: 06 27 06 FF FF FF FF 00 發送密鑰,4個FF。注意06是與05成對使用的。

Tx: 03 7F 27 78 00 00 00 00 否定響應,7F+27+NRC

Tx: 02 67 06 00 00 00 00 00 肯定響應,通過安全校驗

$22讀數據

$22讀數據,

Request(請求):

22+DID(Data Identifier,通常是兩個字節)

Response(響應):

62+DID+Data

DID有一部分已經被ISO 14229-1規定了。比如0xF186就是當前診斷會話數據標識符,0xF187就是車廠備件號數據標識符,0xF188就是車廠ECU軟件號碼數據ID,0xF189就是車廠ECU軟件版本號數據標識符。

$2E寫數據

$22寫數據,

Request(請求):

2E+DID+Data

Response(響應):

6E+DID

注意,比如0xF186這個DID不支持直接寫入數據,需要用$10來進行會話轉換。也就是說,對于寫數據的請求,一般來說需要在一個非默認會話,或解鎖的狀態下才能進行。

$19 讀DTC

DTC(diagnostic trouble code):如果系統檢測到了一個錯誤,它將其存儲為DTC。DTC可表現為:一個顯而易見的故障:通訊信號的丟失(不會使故障燈亮起);排放相關的故障;安全相關的錯誤等。DTC可以揭示錯誤的位置和錯誤類型。通常DTC占用3個字節,OBD II占用兩個字節。

故障碼包括四個大類,分別是PCBU,P是powertrain動力系統,C是Chassis底盤,B是Body車身,U是network通信系統。一個DTC信息占用4個字節。最后一個字節是DTC的狀態。前兩個字節是我們熟知的類似P0047的故障碼。

DTCHighByte

DTCMiddleByte

DTCLowByte

DTCStatus

Byte 1

Byte 2

Byte 3

Byte 4

$19 擁有28個子服務(Sub-Function)。常用的子服務有02(通過DTC狀態掩碼讀取DTC),04(讀取快照信息),06(讀取擴展信息),0A(讀ECU支持的所有DTC數據)。

$14清除DTC

清除(復位)DTC格式,它可以改變DTC的狀態。3個FF代表清除所有DTC。

Request:14+FF+FF+FF;

Response:54 。

診斷報文解析

UDS 的診斷數據的發送與接收都是基于CAN,所以每個數據流都包含基本的CAN Message 的架構

CAN Message =CAN ID + CAN DATA

根據上篇UDS文章的敘述,每一個PDU 包含控制信息PCI,數據信息Data.

N_PDU format.png

網絡層 PDU(協議數據單元)PCI(協議控制信息)格式:具體如下圖所示:

幀類型

bit7-4

bit3-0

Byte 2

Byte 3

單幀

PCItype=0

SF_DL

N/A

N/A

首幀

PCItype=1

FF_DL

FF_DL

N/A

連續幀

PCItype=2

SN

N/A

N/A

流控幀

PCItype=3

FS

BS

ST_min

PCI_format.png

綜上所述,N_PDU =N_PCI+N_DATA, N_PCI的值主要集中的前三個字節,N_DATA值主要集中在后面7位字節。其中,

SF_DL 代表單幀中數據字節數(取值0-7),

FF_DL代表 連續幀中的數據字節數(12bit可表四8~4095),

SN代表此幀為連續幀中的第幾幀,(0、1、2...E、F、0、1...)

FS流控制幀,有三種狀態:繼續發送0、保持等待1、數據溢出2

BS規定發送端允許持續傳輸連續幀數目的最大值(0~255),

STmin限定連續幀相互之間所允許的最小時間間隔。

先面用連個例子進行說明,請參考!

例子 1--- 單幀的數據傳輸與接收

[圖片上傳失敗...(image-b66bab-1538824826939)]

數據發送: 02 27 09

數據反饋: 03 7F 27 7E ---==否定的響應==(Negative Response),回復==7F+SID+NRC==,回復的是一個聲明

數據發送: 02 10 40

數據反饋: 06 50 40 00 32 01 F4 ---==肯定的響應==(Positive Response),回復[==SID+0x40==],就是請求10,響應40;回復的是一組數據

由于這個數據發送與接收都是單幀傳輸,所以第一個數據的高四位均為0,四個數據流中的第一個字節的低四位,02,03,02,06代表的為此幀數據含有幾個字節,多余的數據位都用 00或者AA行填充。

例子2 --- 多幀的數據接收與傳輸

[圖片上傳失敗...(image-b5e84b-1538824826939)]

數據發送:

06 19 04 00 01 00 00 00

數據反饋:

10 1E 59 04 00 01 00 27

30 00 00 00 00 00 00 00

21 00 0B FF FF FF FF FF

22 FF FF FF FF FF FF FF

23 FF FF FF FF FF FF FF

24 FF FF FF AA AA AA AA

數據發送為單幀,所以06代表發送的數據中含有6個字節,

回復為Positive Response,為連續幀。

10中的1代表連續幀的首幀,==01E代表此連續幀含有30個字節==,

30代表此連續幀的流控制幀,

21,22,23,24代表連續幀中的第幾幀,21代表第一幀,22代表第二幀,依此類推,其中AA為填充位。

參考資料:

總結

以上是生活随笔為你收集整理的uds帧格式_如何看懂UDS诊断报文的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产三级理论 | 久久av片| 国产午夜精品一区二区三区视频 | 亚洲国产精品久久久久婷婷老年 | 热久久最新网址 | 日本japanese极品少妇 | 秋霞在线视频观看 | 野外吮她的花蒂高h在线观看 | 亚洲av无码电影在线播放 | 成人精品在线视频 | 亚洲中文字幕无码不卡电影 | 91高清无打码 | 国产老熟女一区二区三区 | 国产精品91久久 | 搡8o老女人老妇人老熟 | 性欧美18 | 婷婷一级片| 日一区二区三区 | 欧美 另类 交 | 亚洲黄色免费 | 国产熟妇一区二区三区aⅴ网站 | 在线精品一区二区 | 天天拍天天色 | 暖暖视频日本 | 卡一卡二卡三 | 欧美精品不卡 | 中国妇女做爰视频 | 九九久视频 | 国产99久久久久久免费看 | 日本三级aaa | 女同一区二区 | 国产精品xxx视频 | 日本色图片 | 蜜桃视频无码区在线观看 | 亚洲丝袜中文字幕 | 亚洲天堂无吗 | 色噜噜狠狠狠综合曰曰曰 | 亚洲男人在线 | 国产一级做a爱免费视频 | 免费黄色小视频在线观看 | 丁香花高清视频完整电影 | 奇米婷婷 | 亚洲av无码一区二区三区网址 | 日韩性爰视频 | 国产成人自拍视频在线观看 | 欧美国产三级 | 国产伦精品一区二区三区在线观看 | 伊人草草 | 色偷偷888欧美精品久久久 | 伊人久久九 | 最新超碰在线 | 一级片美女| 欧美鲁鲁 | 日本丰满熟妇hd | 日本不卡专区 | 亚洲福利精品 | 99久免费精品视频在线观78 | 国产性爱精品视频 | 中国毛片网 | 夜夜激情网 | 91精品国产欧美一区二区成人 | 国产精品理论在线观看 | 情涩快播 | 欧美乱大交xxxxx潮喷 | 无套内谢老熟女 | 欧美精品韩国精品 | 日韩少妇中文字幕 | babes性欧美69| 色偷偷人人澡人人爽人人模 | 欧美激情精品久久久久久变态 | 性高潮久久久久久久久久 | 老妇荒淫牲艳史 | 动漫av在线免费观看 | 少妇毛片一区二区三区粉嫩av | 国产热| 伊人伊人网 | av999| 温柔少妇的高潮呻吟 | 91娇羞白丝网站 | 麻豆网站免费观看 | 欧美巨大荫蒂茸毛毛人妖 | 午夜激情网 | 一级黄色片欧美 | 自拍视频啪| www日韩在线观看 | 久久亚洲日本 | 韩国美女视频在线观看18 | 日韩人妻一区二区三区 | 亚洲图片一区二区 | 漂亮人妻被中出中文字幕 | 国产小视频免费 | 久操久热 | 欧美1区| 久久久久久免费观看 | 亚洲4区 | 五级黄高潮片90分钟视频 | 51热门大瓜今日大瓜 | 欧美日韩精品亚洲精品 | 欧美激情综合色综合啪啪五月 |