最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

UDS 診斷教程 (三)

2023-03-21 22:24 作者:一只開(kāi)心的鳥(niǎo)  | 我要投稿

在上一篇文章中我寫(xiě)了 Diagnostic and Communication Management (診斷和通信管理)

這一類(lèi)診斷服務(wù)中的 0x10 , 0x11 , 0x27,在這篇文章中繼續(xù)這一大類(lèi)診斷服務(wù)中的其他

內(nèi)容。

CommunicationControl (0x28)

該服務(wù)用于打開(kāi)/關(guān)閉某些類(lèi)別的報(bào)文的發(fā)送/接收。它通常在刷寫(xiě)軟件或大量數(shù)據(jù)的時(shí)候

使用,因?yàn)樵谒④浖騾?shù)的時(shí)候并不需要 ECU 進(jìn)行與通信相關(guān)的功能,將通信關(guān)閉之

后可以把所有通信資源都留給軟件或參數(shù)的下載,當(dāng)下載過(guò)程完成之后再利用該服務(wù)將通

信恢復(fù)即可。

0x28 服務(wù)的格式如下圖所示

0x28 服務(wù)的格式


第一部分即 SID,一個(gè) byte,值為 0x28;

第二部分是 sub-function,表明要對(duì) ECU 的通信進(jìn)行哪種控制,具體包括 :

0x00 enableRxAndTx (激活接收和發(fā)送)

0x01 enableRxAndDisableTx(激活接收和關(guān)閉發(fā)送)

0x02 disableRxAndEnableTx(激活發(fā)送和關(guān)閉接收)

0x03 disableRxAndTx(關(guān)閉接收和發(fā)送)

0x04 enableRxAndDisableTxWithEnhancedAddressInformation(激活接收和關(guān)閉發(fā)送,

針對(duì)特定的地址)

0x05 enableRxAndTxWithEnhancedAddressInformation(激活接收和發(fā)送,針對(duì)特定的

地址)

0x06 - 0x7F 都是保留或者留給廠商自定義的。

第三部分表明這條診斷請(qǐng)求要對(duì)哪種報(bào)文進(jìn)行控制,長(zhǎng)度為 1 個(gè) byte,定義如下表所示:

communicationType 的定義

這個(gè) byte 中最常用的就是低 2 bit,0x1 代表普通應(yīng)用報(bào)文,0x2 代表網(wǎng)絡(luò)管理報(bào)文,0x3

代表普通應(yīng)用報(bào)文和網(wǎng)絡(luò)管理報(bào)文。

第四部分是 optional 的,只有當(dāng) sub-functional 等于 0x04 或 0x05 時(shí)才需要使用。

舉個(gè)完整的診斷服務(wù)例子:

28 01 01 表示 激活應(yīng)用報(bào)文的接收并 關(guān)閉應(yīng)用報(bào)文的發(fā)送(網(wǎng)絡(luò)管理報(bào)文不受影響)。

28 00 01 表示 激活應(yīng)用報(bào)文的接收和 發(fā)送(網(wǎng)絡(luò)管理報(bào)文不受影響)。

TesterPresent (0x3E)

這個(gè)診斷服務(wù)的用處可以通過(guò)它的名字很明顯地得知,即告知 ECU 診斷儀還在連接著。

在上一篇文章中我說(shuō)到了關(guān)于 session 的部分,如果沒(méi)有診斷命令的發(fā)送和接收,ECU 將

從 non-default session 中回退到 default session, 0x3E 就是用于使 ECU 保持在當(dāng)前

session。

這應(yīng)該是 UDS 中最簡(jiǎn)單的一個(gè)診斷服務(wù)了,它永遠(yuǎn)只有兩個(gè) byte,格式如下:

0x3E 診斷服務(wù)的格式

當(dāng) sub-function 是 0x00 時(shí),ECU 要給出 response;當(dāng) sub-function 是 0x80 時(shí),ECU 不

需要要給出 response。

一般來(lái)說(shuō)主機(jī)廠會(huì)為這個(gè)服務(wù)定義兩個(gè)時(shí)間參數(shù),一個(gè)參數(shù)用于規(guī)定自己的診斷儀發(fā)送

0x3E 服務(wù)的間隔,另一個(gè)參數(shù)用于定義 ECU 收不到 0x3E 服務(wù)的 timeout 時(shí)間。

ControlDTCSetting (0x85)

該服務(wù)用于控制 ECU 的 DTC 存儲(chǔ),這個(gè)服務(wù)常常和前面提到的 28 服務(wù)一起使用,比如,

在開(kāi)始寫(xiě)參數(shù)之前,為了獲得更快的傳輸速度,我們用 28 服務(wù)把所有 ECU 的通信關(guān)閉了,

但此時(shí)因?yàn)槭盏讲坏较嚓P(guān)的報(bào)文,ECU 會(huì)沒(méi)有必要地存儲(chǔ)很多 DTC,這時(shí)如果我們使用

85 服務(wù)把 ECU 存儲(chǔ) DTC 的功能暫時(shí)性地禁止掉,則不會(huì)造成這種麻煩。

0x85 服務(wù)的格式

第一部分即 SID,一個(gè) byte,值為 0x85;

第二部分是 sub-function,表明是打開(kāi)還是關(guān)閉 ECU 的 DTC 存儲(chǔ),具體包括 :

0x01 on

0x02 off

第三部分是 optional 的,由各家自己定義,比如,可以用 FF FF FF 來(lái)表示這條診斷命令

針對(duì)所有的 DTC。

ResponseOnEvent (0x86)

我在以前的文章里說(shuō),診斷通信過(guò)程是問(wèn)答式的,診斷儀發(fā)請(qǐng)求,ECU 給響應(yīng)。0x86 服

務(wù)算是一個(gè)例外,在 ECU 收到這條 0x86 服務(wù)之后,當(dāng) DTC 產(chǎn)生時(shí),它會(huì)自動(dòng)地上報(bào)

DTC 及相關(guān)環(huán)境數(shù)據(jù),直到用另一條 0x86 服務(wù)來(lái)關(guān)閉 ECU 的這個(gè)行為。

該功能主要用于 ECU 的前期開(kāi)發(fā)階段,在售后和生產(chǎn)中是不會(huì)用到的,而且該服務(wù)的格

式復(fù)雜(即可變的參數(shù)很多),執(zhí)行它還分為好幾個(gè)步驟,我就不詳細(xì)寫(xiě)了。

LinkControl (0x87)

這個(gè)服務(wù)用于轉(zhuǎn)化 ECU 數(shù)據(jù)鏈路層和物理層的狀態(tài),比如,在高速 CAN 上的 ECU 正常

通信速率是 500 kbit/s,但它同時(shí)也支持 1M bit/s 的波特率,如果需要刷寫(xiě)大量數(shù)據(jù),便

可以利用這條診斷服務(wù)讓 ECU 以 1M bit/s 的波特率進(jìn)行通信。

這個(gè)診斷服務(wù)的執(zhí)行分為兩個(gè)步驟:

1. 驗(yàn)證 ECU 是否支持要調(diào)整到的目標(biāo)波特率

2. 讓 ECU 的數(shù)據(jù)鏈路層和物理層轉(zhuǎn)到目標(biāo)波特率的通信狀態(tài)

只有當(dāng)?shù)谝粋€(gè)步驟驗(yàn)證通過(guò)了,第二個(gè)步驟才可以成功執(zhí)行。


UDS 診斷教程 (三)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
维西| 嵊泗县| 安西县| 武川县| 两当县| 金湖县| 鱼台县| 沧州市| 吉安市| 海林市| 淳化县| 赣州市| 濉溪县| 玛沁县| 兴义市| 恩平市| 福海县| 光泽县| 两当县| 清河县| 连平县| 策勒县| 丹棱县| 靖宇县| 西和县| 司法| 黄龙县| 临澧县| 新巴尔虎右旗| 肃南| 建始县| 朝阳区| 神农架林区| 吉木乃县| 镇坪县| 河东区| 乐昌市| 海盐县| 临江市| 江安县| 沭阳县|