DoIP专栏 - DoIP网络拓扑

一. 正文


协议书上有一张图我觉得是可以拿出来说一说的,如下即ISO 13400-2中的 Figure 2。

DoIP专栏 - DoIP网络拓扑_第1张图片

从图中可以看出整体的网络拓扑被分为了两个部分,即车内网和车外网。
图中的Network node可以忽略不看,可当做支持以太网连接的某个设备节点,但是不支持DoIP协议。
那么大家可以对冠以DoIP前缀的节点组成的网络进行分析。

从图中也可以看出有这么几个角色,该网络拓扑也是由如下四个角色组成的
1. External test equipment
2. DoIP edge node gateway
3. DoIP gateway
4. DoIP node

角色一:External test equipment
这个角色为外部测试设备,通常为OBD诊断仪或者是其它诊断客户端。
注意,在后面我会介绍DoIP协议可以分为Server端支持的协议及Client端支持的协议,这样分开说明更有利于理解。
回到这里,这里要说的是测试设备所要跑的程序是DoIP Client端程序
那么如果要单独实现外部测试设备,那么只要抽取出协议所规定的Client端逻辑进行实装即可。

角色二:DoIP edge node gateway
这个角色和DoIP gateway有什么区别?其实没什么区别,唯一的区别就是多了个使能线的判断
从图中可以看出External test equipment和DoIP edge node gateway之间有一条线叫做Activation line。
那么这条线的功能就是对协议栈进行使能作用的,后续讲协议的时候,详细讲解。
当然External test equipment和DoIP edge node gateway之间不只是Activation line相连的,
这个图只是功能示意图,少了很多细节,其实是通过标准的OBD-II接头相连的,其中一个针脚就是Activation line。
具体可以看ISO 13400-4的介绍,内容比较少,很快就能撸完。
回过来,这个角色的作用是什么?
首先它是个gateway,作为一个网关它的子网内挂载着若干ECU,与DoIP gateway一样
其次它是车内网与车外网交互的一个入口,具有控制着DoIP协议栈是否工作的一个开关功能。
该角色可以同时支持Server端和Client端,Server好理解,测试设备可以诊断该网关下的某个ECU节点。
那么Client端是怎么回事呢?想象一下,如果DoIP edge node gateway作为入口,
那么怎样和内部其它子网的DoIP ECU进行交互呢?当然是由DoIP edge node gateway进行转发。
这只是其中一个应用场景,当进行转发的时候会进行身份切换,即由Server端切换到Client端。
另外一个场景是OTA升级,DoIP edge node gateway的应用层可以跑一个OTA客户端程序,进行对内网ECU的诊断及刷写,
此时就是一个Client身份。

角色三:DoIP gateway
DoIP gateway与角色二 DoIP edge node gateway区别不是很大。实际的应用场景通常会让MCU充当这个角色,
而MPU充当DoIP edge node gateway的角色,也有反过来的情况。
那么该角色通常单单的跑Server端程序。

角色四:DoIP node
该角色很好理解,对支持以太网连接的同时支持DoIP协议的ECU认为是DoIP node。
该角色通常单单的跑Server端程序。

*实际上如果某个ECU不具备网关功能角色三即是角色四
*如果DoIP网关是与外部交互的入口,角色三即是角色二
*如果某个内部DoIP node在测试开发阶段,想进行自诊断或诊断其它ECU,角色四即是角色一(通常叫Interna test equipment)

以上介绍了网络拓扑中个各个角色,那么可以说明一下数据流是怎么走的。
整个车辆网络由四个角色组成,外部测试设备作为客户端,对车内网的各个支持DoIP协议栈的ECU进行诊断。
(部分CAN ECU通常挂载在MCU上,由MCU进行DoIP转DoCAN的路由)
车外网的外部测试设备通过OBD-II与车内网的edge gateway进行通信,edge gateway用来使能车内网的DoIP功能。
在路由打通后,发送的诊断数据根据目的地址的不同分别流向车内网的不同ECU。

二. 总结:


此篇针对协议书上展开的一张网络拓扑图进行了展开说明,我觉得从这张图开始入手是会对DoIP协议栈有个整体的印象。
那么后续博主会对DoIP协议进行展开,讲解DoIP协议的构成及各个功能,尽请期待。

你可能感兴趣的:(车载以太网-DoIP,/,SOMEIP)