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