UDS协议(车辆控制单元诊断系统开发架构及DID读取数据流程)
最近由于工作的緣故,需要對控制單元的診斷系統進行開發,故利用業余時間查閱相關論文及標準協議,以此能夠對控制端以及診斷儀端的軟件開發能夠有整體的概念,以及評估開發所需要做的工作。 特利用周末時間對自己的學習進行總結,供大家相互探討。
診斷系統,顧名思義對控制系統的傳感器與執行器進行故障的診斷,以便維修人員能夠準確的解決故障。目前隨著車輛控制單元的增加,診斷系統越加復雜,但其根本的設計架構及遵循的協議幾乎完全一致,也就是說無論是TCU,ECU,BMS,HCU,還是EPS,ABS,MCU,Display,軟件中的診斷協議幾乎一致,診斷儀的功能僅僅是數量的增加,功能上大致一致。
目前診斷系統的通訊協議多種多樣 ,含有 KWP2000,UDS,J1939,OBD 等等,KWP2000 與UDS是歐洲人主導,KWP2000 有基于CAN的,也有基于K線的,UDS在設計之初就是基于CAN線。目前UDS是各個廠家應用的趨勢。J1939,OBD的一些協議是美國人主導的。J1939即可以通訊,也有關于診斷的相關協議,OBD主要應用在國五以上,與排放相關,國四雖說有標注,但不強制使用。下面的幾張摳圖,顯示這些協議的構成。
?
相關的診斷協議大多都定義 物理層,數據鏈路層,網絡層,應用層。其它幾層暫時沒有相關定義。
以下文章 以UDS開發為例,將從開發的角度陳述幾個開發問題,供大家學習,包含開發架構,模塊分析,代碼結構進行闡述。
診斷系統的開發架構
診斷系統包含控制端的軟件與診斷儀端的軟件,這兩者的軟件架構基本一致。如下圖所示。
因此只要明白一端的軟件架構即可,下面以控制端的軟件為例子進行描述。
模塊分析--- 診斷數據,策略管理層
診斷數據與策略管理層是獨立于標準協議之外,根據不同的控制單元,策略及數據管理不盡相同,但歸根到底就兩個功能 數據的讀取與寫入,讀取包含,系統運行變量的讀取,故障代碼讀取,寫入包含,清除故障代碼命令寫入,相關標定變量寫入,數據刷寫寫入。相關命令寫入。相關診斷功能的實現是隸屬于應用層軟件的開發,在此不做描述。本文以讀取控制系統中某個變量為例進行細節描述,如下圖所示:
模塊分析--- UDS 協議應用層
UDS 的協議應用層為定義各個診斷命令的含義與指令,建立A-PDU,進行命令的解析。具體設計可以參考標準的ISO14229協議。
模塊分析 --- UDS 網絡層
UDS 的網絡層為核心,可以理解為信息交互的路由器,或者火車的編組站,對各個信息進行編組。一組為一個數據單元,一個數據單元為8個byte,命名為N-PDU
N-PDU=N_AI+N_PCI+N_DATA.
在對數據編組的過程中,分為單幀與連續幀。傳輸方式如下圖所示:
?
N-AI 包含的為地址信息與尋址信息。
N-PCI 為在傳輸數據的時候的控制信息,詳細如下圖所示。
N-Data 為傳輸的數據。具體為數據域后面的7個數據域。
模塊分析 ---- 數據鏈路層與物理層。
數據鏈路層的各個功能基本都有具體的CAN傳輸芯片完成,而物理層表述的為傳輸過程中的線束及傳輸信號要求。代碼結構分析
在進行軟件設計的過程中,數據鏈路層與物理層描述的為硬件描述層隸屬于硬件范圍,網絡層為服務描述層處于RTE下方與BSW上方,而診斷數據庫與診斷策略都包含在ASW層。網絡層,數據鏈路層,物理層在Autosar都含有標準模塊,均可以找到標準進行更改應用,診斷策略及診斷數據庫包需要根據具體的應用進行設計。
總結
以上是生活随笔為你收集整理的UDS协议(车辆控制单元诊断系统开发架构及DID读取数据流程)的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: CCD 尺寸
 - 下一篇: CCD和CMOS摄像头成像原理以及其他区