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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

UDS与DoIp整理

發布時間:2023/12/9 编程问答 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UDS与DoIp整理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

UDS與Doip 知識框架整理

UDS(Unified Diagnostic Service)

1、概念

由ISO14229協議規定,使用診斷測試儀(客戶端)控制車載電子單元(ECU,服務端),實現電子噴油噴射、自動變速和防抱死制動系統工作等等。

簡單的意思就是外部設備與ECU的通信協議,可以與ECU進行交互,但是不是傳輸數據的鏈路,傳輸數據的協議由ISO15765協議規定。

下文中服務器指下位機或者ECU。

  • 診斷數據:
    測試人員修改可以位于電子控制單元存儲器中的數據,診斷數據包括模擬輸入和輸出,數字輸入和輸出,中間值和各種狀態信息。診斷數據示例包括車速、油門角度、后視鏡位置、系統狀態等。

三種類型為診斷數據定義的值:
1、電流值:電子控制單元正常操作當前使用的值;
2、存儲值:在特定時刻(例如,當故障發生或
定期);本副本在電子控制單元的控制下制作;
3、靜態值:例如VIN。

服務器不保留診斷數據,測試人員可以只保留請求的當前值。

  • 診斷程序:

它是一種嵌入在電子單元內部的一種程序,通過客戶端的請求可以開啟相應的服務。

  • 診斷服務:

客戶端請求服務器進行信息交換,目的是需要從服務器獲取診斷數據,或者對服務器進行某種操作,

  • 診斷會話:
    服務器中的狀態,其中啟用了一組特定的診斷服務和功能。意思就是某種特定的診斷操作需要進入特定的會話才能正確執行,否則就會出現該會話模式不支持該操作的提示。

比如常見的刷APP程序,需要在編程會話模式中才可以執行,要不然隨便一刷就刷掉原始代碼了,不安全。刷APP代碼需要在Boot Software中進行。

Boot Software:在ECU上電或復位后立即執行,其主要目的是以檢查有效的應用程序是否可用以執行,而不是將控件轉移到重編程軟件,意思就是如果重編程軟件(也成為APP程序)不可以執行,則直接不進行跳轉,只在Boot軟件中。

在一些NXP的芯片中,自帶固件,會掃描一些區域是否有可執行文件,會跳到相應的區域去執行。比如可以執行不帶Boot軟件的APP程序。

  • 診斷故障代碼:DTC(diagnoise trouble Code)

由車載診斷系統識別的故障狀態的數字通用標識符,就是車載故障的編碼。

  • ECU:電子控制單元,一個功能模塊的控制器,比如車門ECU、車窗ECU、調速ECU。

2、UDS框架圖

  • 可以通過多種通訊手段進行診斷(數據交互),比如CAN、IP和Lin等,DoCAN即Diagnosis on CAN,不同的通訊協議對應著不同的定義說明,在不同14229協議中比如14229-5,定義了車載以太網,即diagnosis on internet

  • 應用層服務通常被稱為診斷服務。應用層服務是用于基于客戶機-服務器的系統,在車輛車載服務器執行測試、檢查、監視或診斷等功能??蛻舳?通常稱為外部測試設備)使用應用層
    請求在一個或多個服務器上執行診斷功能。服務器,通常是一個功能,它是ECU的一部分,使用應用層服務提供診斷服務的響應數據返回到客戶端。

  • 客戶端通常是一個外部測試人員,在同一車輛系統中可能有多個客戶端。診斷應用層的服務訪問點提供許多服務,這些服務都具有相同的一般結構。

  • 服務標識符:Service Identifier(SI)
    0x10-0x3E、0x83-0x88、0xBA-0xBE 請求服務
    0x50-0x7E、0xC3-0xC8、0xFA-0xFE 積極響應

  • 7F 否定響應服務標識符

  • 請求分為物理請求和功能請求,物理請求像單個設備請求診斷,功能請求類似廣播請求。

  • 功能請求不回復部分否定響應。

  • 否定響應分為:SNS(不支持該服務)、SNSIS(該會話不支持該服務)、SFNS(不支持該子函數)、SFNSIAS(在該會話不支持該子函數功能)和ROOR(請求超出范圍)
    注意:否定響應中 78表示等待。比如 0x7F 0x27 0x78

  • 通用服務器響應流程
    首先進行多個否定響應的判斷
    0x21:服務器忙
    0x11:不支持該服務
    0x7F:在該會話模式不支持該服務
    0x33:在服務器未解鎖的狀態訪問,
    0x31:不支持該服務的子功能
    然后正確解析服務,并執行操作

3、接下來介紹具體的服務

3.1、診斷以及通信管理功能

3.1.1 診斷會話模式:0x10

診斷會話在服務器中啟用一組特定的診斷服務或功能。服務器始終僅存在一個活動的診斷會話。服務器應始終啟動默認值開機時進行診斷會話。如果沒有啟動其他診斷會話,則默認診斷只要服務器通電,會話就應該一直在運行。

在不同的會話模式,可以進行特定的診斷功能,比如在擴展會話模式,可以禁止通訊,其他模式下就不可以。

  • 子功能服務標識符:01 默認會話
    服務器中的默認診斷會話,并且不支持任何診斷應用程序超時處理規定(例如,不需要TesterPresent服務來保持該會話處于活動狀態)。
    服務器在發送DiagnosticSessionControl肯定響應消息后,應停止當前診斷會話,并在此后啟動新請求的診斷會話。

  • 子功能服務標識符:02 編程會話

此diagnosticSession主要的功能就是對下位機進行編程,俗稱刷APP程序

如果服務器在引導軟件中運行programmingSession,則只能通過ECUReset(0x11)服務保留programmingSession。
如果服務器在APP中運行編程會話,則服務器會復位,然后在引導程序中運行編程會話。
可以執行擦除代碼,刷寫代碼等服務(0x31 0x34 0x36)

  • 子功能服務標識符:03 擴展會話

該DiagnosticSession可用于啟用支持功能調整所需的所有診斷服務。 它也可以用于啟用診斷服務,這些服務不專門與功能調整相關。

  • 子功能服務標識復:04 安全系統診斷會話

可以執行所有與診斷相關的服務功能函數。

診斷儀發送10 03,然后服務器返回50 03 ,代表成功進入擴展模式,可以進行一些操作,比如安全訪問,禁止DTC,禁止通信等。

CAN通訊一次只能發送8個字節,第一個字節代表有效字節數,00 32 01 F4 需要看具體的參數意義。

其否定響應碼主要有 12 13 22
12:不支持該子函數,比如在默認會話模式 就不支持直接跳轉到編程會話,否則返回否定響應
13:消息長度錯誤
22:當前狀態不支持該會話模式,比如在無BootLoader的APP程序中,執行10 02,就會返回22。

如果執行該指令需要的時間較長,則下位機(服務器)就會先返回78,讓診斷儀等待,然后再返回正確的響應數據。

3.1.2 0x11 ECU復位
3.1.3 0x27 安全訪問服務
3.1.4 0x28 通信控制服務
3.1.5 0x3E
3.1.6 0x85 控制DTC設置服務

二、數據傳輸功能單元

三、存儲數據傳輸單元

四、協程功能單元

五、上傳下載功能單元

DoIP

總結

以上是生活随笔為你收集整理的UDS与DoIp整理的全部內容,希望文章能夠幫你解決所遇到的問題。

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