doip诊断会话的建立
診斷會話5步:
激活線激活——車輛發現——路由激活——診斷交互——關閉TCP_DATA_Socket;
目錄
1.激活線激活
2.車輛發現 (IP地址分配+車輛信息獲取)
?3.路由激活 (路由激活 +TCP_data socket處理 + 在線檢測)
路由激活:??
tcp_data socket處理
在線檢測 (alive check)
4.診斷處理
1.激活線激活
邊緣節點(網關)-硬線激活 (減少電磁干擾/降低損耗);
標準:
建立通信連接:通過OBD口連接邊緣節點,并在激活線上提供激活條件所需的電壓(ISO 13400規定激活條件為:至少200ms以上5V及以上電壓),才可以激活邊緣節點診斷功能;
斷開通信連接:激活線上提供滿足失活條件的電壓(ISO 13400規定失活條件為:至少200ms以上2v及以下電壓),邊緣節點進入診斷失活狀態而不能進行診斷通信。
?當激活條件不滿足時,外部診斷儀與邊緣節點不能進行以太網通信,同時邊緣節點不執行IP地址分配及車輛發現流程。
2.車輛發現 (IP地址分配+車輛信息獲取)
ip 地址分配:邊緣節點作為 DHCP的client; DHCP的server 在診斷儀(tester)中,激活線激活后立刻進行IP地址分配;
車輛信息獲取: DHCP強制完成后,邊緣節點廣播發送3次(A_DoIP_Announce_Num)車輛聲明報文,且第一條聲明報文應在A_DoIP_Announce_Wait(0~500ms)時間內發出。
注:診斷儀(tester)也可能自行發送車輛信息請求報文 — 要求邊緣節點能解析此報文并向下轉發;
- ????? 車輛聲明報文采用 udp報文傳輸 — 多次發送提高接收到報文的概率;實際發送次數可自行設置;
 - ????? 車輛聲明報文 以廣播地址(255.255.255.255)作為目的IP地址;
 - ????? 車輛聲明/信息響應報文中“Further action? required”字段意義:該字段值一般默認為0x00,若此字段值為0x10,則診斷儀需要使用0xE0的激活類型發送路由激活請求,即在路由激活過程中需要執行廠商定義的安全認證機制(身份認證、確認)
 
?3.路由激活 (路由激活 +TCP_data socket處理 + 在線檢測)
路由激活:??
邏輯地址唯一標識; 邏輯地址范圍限制;定義診斷儀邏輯地址;診斷儀邏輯地址注冊到 TCP_data socket;
?
兩時間參數:??? T_TCP_Initial_Inactivity(2s) ;?????? T_TCP_General_Inactivity(5min);
- 診斷儀與ECU建立TCP連接后需在T_TCP_Initial_Inactivity(2s)時間內進行路由激活,否則ECU會主動關閉該連接;
 - 路由激活成功之后,ECU所能保持TCP_DATA Socket靜止(無任何診斷交互)的最長時間為T_TCP_General_Inactivity(5min),超時后ECU會主動關閉TCP_DATA Socket。
 
tcp_data socket處理
ECU所支持的最大并發Sockets數目是有限的(0~255),并且同一Socket同時僅可與一個SA綁定,因此在通過源邏輯地址、激活類型檢測之后,需要執行Socket處理機制。
檢測到當前激活的Socket已使用其他SA進行激活,ECU會立即停止Socket處理流程,并發送路由激活否定響應報文(響應碼為0x02);
?
?
在線檢測 (alive check)
用于確定已注冊并且激活的socket 是否仍被診斷儀所使用;ECU節點發送到診斷儀;
若診斷儀在ISO 13400要求在T_TCP_Alive_Check(500ms)時間內回復相應的Alive Check響應,表明將繼續使用并保留該socket;若超時未回復,ECU會立即關閉該Socket,即Alive Check未通過。
4.診斷處理
在路由激活完成后,診斷儀通過tcp_data socket與ecu進行診斷通信;
ECU接收到診斷請求后會進行判別處理,若所有判別均滿足要求,ECU會回復診斷肯定響應及診斷響應報文,或者向目標網絡轉發該診斷請求。
注:
總結
以上是生活随笔為你收集整理的doip诊断会话的建立的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: HTML5+CSS3+JQuery1.9
 - 下一篇: qpython3可以调用哪些库_Pyth