AUTOSAR实战教程--DoIP_03_ 代码分析与调用栈观测(ISOLAR版)
DoIP_05_数据链路测试记录 副本
1. 激活线数据流
激活线用于下发给SOAD->TCPIP层,进行地址分配。
Stack试图如下:
1.2 GID同步
GID同步的逻辑:
在激活线激活DoIP之后
上图是DoIP协议栈中判断GID同步状态的逻辑。
流程图如下:
2. 车辆声明报文数据流
Stack试图如下:
如此发了3次,即三次车辆声明报文发出。
3. 车辆识别请求报文数据流
4. 路由激活报文数据流
4.1 建立TCP/IP连接的三次握手
![]() | |
- 第一次握手
客户端给服务器发送一个SYN段(在 TCP 标头中 SYN 位字段为 1 的 TCP/IP 数据包), 该段中也包含客户端的初始序列号(Sequence number = J)。
- 第二次握手
服务器返回客户端 SYN +ACK 段(在 TCP 标头中SYN和ACK位字段都为 1 的 TCP/IP 数据包), 该段中包含服务器的初始序列号(Sequence number = K);同时使 Acknowledgment number = J + 1来表示确认已收到客户端的 SYN段(Sequence number = J)。
- 第三次握手
客户端给服务器响应一个ACK段(在 TCP 标头中 ACK 位字段为 1 的 TCP/IP 数据包), 该段中使 Acknowledgment number = K + 1来表示确认已收到服务器的 SYN段(Sequence number = K)。
5. 诊断报文数据流
5.1 数据接收
DoIP模块接收数据流
Dcm模块接收数据流
5.2 数据发送
Dcm/Dsp诊断服务函数响应
只有DoIP中的诊断数据才会走Tp
DoIP以太数据发送
6. 报头否定报文数据流
UDP否定
在此函数之中做DoIP指令(UDP)的判断。
在这个函数中做的否定响应头的封包。
TCP否定响应(0x8003)
7. 车辆信息报文数据流
然后再走发送流程,跟前面数据流一致。