概述:
随着汽车技术的发展,can、lin、flexry等渐渐被另一种通信效率非常高的技术替代,那就是车载以太网soa,(没有完全替代,整车往往是组合使用)。目前了解类似与大众和极氪采用some/ip协议,而类似与蔚来采用自定义的soa框架,全udp方式。(也可能有更新技术我没有接触到)
初步了解soa框架
soa(Service Oriented Architecture)面向服务的架构。如我们手机打开淘宝,可以简单理解成我的手机和淘宝公司的服务器电脑建立了http连接。手机是client,淘宝的服务器是service。soa也是用client和service建立连接,实现多ecu,如驾驶娱乐系统,智驾系统或更底层ecu,通过soa链接传输数据。
some/ip协议
下图是一个some/ip-sd报文,(sd:server discoard服务发现)用于soc服务发现建立连接

从wireshark解析的数据学习
首先上图是some/ip(Service-Oriented MiddlEware over IP)基于IP通信的服务中间件,sd(Service Discovery) 服务发现,类比的话tcp连接有个三次握手行为都是为了发现并保持连接
-
任何流量包都少不了mac和ip和port,对应图中1,3,4,这是定位到目标的必要条件,注意这里soa的udp port一般都是30490,统一标准。
-
图中2,802.1q是走的协议, 里面包含pcp优先级,id和type。一般switch工作会读取这些信息,选择优先转发或丢弃哪些报文。
-
图中3,表示这个包是udp,一般soa中还可能会用到tcp的包,每家车企开发不一样,如蔚来就自己开发框架,摒弃tcp协议。
-
其他事some/ip的一些参数,具体服务的id,port,各种version,ttl(存活时间等信息),一般对端ecu接受报文,会进行这些值的校验判断,是当前版本对应的,否则可能就恢复nack或者stop等
some/ip-sd的报文种类有find,offer,subsc