车载以太网 - 初识DoIP - 01

 1、DoIP是什么?

        从表达形式上

        它就是UDS诊断套上车载以太网的马甲,然后实现UDS诊断的所有内容。通过下图DoIP的报文帧格式,从下面往上看,最尾部的数据我们能够很清晰的看到,User Data实际上就是UDS诊断数据,比如:10 03亦或是22 F1 86等信息。然后再往前就是源地址和目标地址,这2个部分是什么意思呢?这个我们需要知道一个前提就是,在CAN网络中,所有的数据都是在某一路CAN上存在,因此大家都是根据报文ID和信号来对应不同的功能和使用位置;但是在车载以太网上呢?以太网是一个网状的结构,并且为了装载更多的功能,单纯的ID已经无法满足不同节点之间的识别,因此就出现了源地址和目的地址,这样在接收方接收到这个消息后,他就很清楚的知道这是谁给他的请求,他是否要处理,并且处理完成后将处理结果发给谁,因此有了源地址和目标地址就很好的实现了这个功能,在整个网络中各个节点也更清晰的知道哪些需要处理哪些不需要处理,处理的结果返回给谁,相当的方便。

车载以太网 - 初识DoIP - 01编辑

        再往上一层就是DoIP的报文头,那这一块又有什么作用呢?Protocol version清楚的表示了当前使用DoIP协议的版本,让接收的节点提前清楚是否支持;另外后面的Inv.Protocol version又再次对Protocol version版本号取反,进一步保证的数据的完整性和正确性,这样接收方拿到数据更好的校验数据是否是对的提供一个前提条件。接下来就是Payload Type就是在DoIP协议中对不同的功能进行区分所给的一个标志,后面的Payload就很好理解,他就是表示后面数据的长度,这个跟UDS诊断中诊断长度有点异曲同工之妙。

        最上面这层,就是标准的工业以太网的内容了。这个需要更清晰的了解的话我们可以专门聊一下,实际他就是工业以太网标准的格式,包括MAC地址、IP、标志位、协议等等信息详细的内容可以参考文章:车载网络测试 - 车载以太网 - DoIP详细解析_车载网络测试的博客-CSDN博客_doip以太网报文解析

的内容,它对每一个字段都有清楚的标记,在DoIP这块实际并没有太大的关系,因此不做详细的介绍。

        下面是完整DoIP数据包,大家有兴趣的可以参考对比上面的题看下。

ETH Message Header:02 02 02 02 xx xx 03 03 03 03 xx xx 08 00 45 00 00 36 05 67 40 00 40 06 DA A2 sip sip sip sip dip dip dip dip 4E 20 34 58 E8 A0 CA 46 CF 37 60 EE 50 18 FF FF 3B FE 00 00

注释:标注颜色的字段分别为:MAC地址、协议号(IPv4 :0x0800)、TCP协议(06:TCP,17:UDP)、IP地址、端口号(20000)、协议版本号(13400)。

DoIP Message Header:02 FD 80 01 00 00 00 06

DoIP Payload :10 2D 10 20 10 03 

        从使用功能上

        从上面的形式上我们可以看出,DoIP完整就是车载以太网处理CAN/CANFD诊断的功能,而且完全使用了ISO 14229的诊断服务的内容,差异点就是(个人理解),它使用了ISO 13400定义了DoIP的时间参数信息;而CAN/CANFD使用ISO 15765定义了CANTP的时间参数信息。在整个DoIP和CAN/CANFD诊断中,他们所完成的功能几乎一模一样。比如CAN/CANFD有感刷写和DoIP有感刷写流程和诊断数据完全一致;再或者27服务解锁,所使用的dll文件都是一样的;再者对于诊断ID这块,所有的功能和开发测试内容完全一致,唯一的区别就是最后的发送方式不同而已,一条走以太网,一条走CAN。因此如果你是CAN、CANFD的从业者,你想学习或者做DoIP相关的开发或者测试,几乎可以无缝衔接,唯一要做的就是最后的打包发送数据,所有的功能全部通用。

        到这里大家应该清楚DoIP到底是个什么东西了吧,如果还不懂,那底下评论或者私信我,我们一起探讨下。

下期我们介绍DoIP消息类型有哪些?


原文始发于微信公众号(车载网络测试):车载以太网 - 初识DoIP - 01

版权声明:admin 发表于 2022年12月23日 上午7:35。
转载请注明:车载以太网 - 初识DoIP - 01 | CTF导航

相关文章

暂无评论

暂无评论...