DoIP
用于诊断、刷新、OTA,对应CAN协议栈里的CanTp
优势:
拆包组包可由TCP/IP完成,不用自己实现
速度快:比如刷新6M数据,通过CAN需要10分钟,通过DoIP只需100秒
支持并行刷新
DoIP诊断流程:
- 因为诊断通常是边缘节点,所以需要通过DHCP动态获取IP地址
- UDP广播进行车辆识别(因为支持并行诊断刷新,有多台车),然后车辆向诊断仪发送VIN、MAC、IP地址信息
- TCP,握手
- TCP,routing activation,目的是获取诊断仲裁(因为可能有其他如CanTp诊断、LinTp诊断等)
- TCP,DoIP诊断
- TCP,挥手
SomeIP/SD
SOA架构(AUTOSAR AP的基础),一般涉及两套协议:SomeIP/SD + DDS,有些车企如沃尔沃/吉利也会有自己的类似SomeIP的协议(IPCP)
- SomeIP/SD:在MCU、MPU、SoC上都可以实现
- DDS:在MCU上实现较为困难,但是可以不局限于以太网,可以通过共享内存实现
场景:
将一个ECU上的SWC挪到另一个ECU上,涉及到的工作有:
- RTE的连接
- BSW的配置:通信矩阵会相应变动,涉及Can、CanIf、PduR、COM等模块的配置,测试
尝试解决:让通信矩阵可以动态适应SWC的挪动 ---> SomeIP
内容:
- SOME/IP-SD:针对服务发现(Service Descovery)
- Client发FindService
- Server向所有节点广播/组播自己的信息(OfferService),通过ServiceID配对,然后发单播报文
- Client发送订阅请求(SubscribeEventgroup)
- Server回复(SubscribeEventgroupAck)
- SOME/IP:三种方式通信
- method:远程调用api,client发起请求,server回复,也可以做成no return的形式
- event:client向server订阅一次(加入event组),server定期给client发
- field
- 通信时先SOME/IP-SD流程,然后SOME/IP通信
- 端口号的变化:SD时固定为30490,用来做服务的发现,someip时为各个应用自己的端口号