在通常Tester与车辆进行诊断通信时,Tester端设置好自己的IP地址信息,而对于待测ECU IP地址信息通常不设置,或者说不知道怎么设置。对于新加入到当前网络的车辆,在ISO 13400协议中有定义需要连续发送三次车辆声明(VehicleAnnouncement),这三次车辆声明的信息如下:与此同时,在这三次车辆声明的过程中,对于Tester端也获取了车辆的IP地址,如上图。另外,对于Tester端,比如特殊情况下,车辆声明的信息没有获取到,那么怎么通信呢?其实在定义协议时那些专家已经预想到这种应用场景,解决办法是Tester端以广播的形式发送车辆识别信息请求(Vehicle identification request),使在这个网段的所有车辆都可以收到该广播请求(当然可以携带不同车辆识别信息(VIN\EID\Logical address)),具体如下图:对于国内,车载以太网大多数解决方案采用静态IP地址,就存在疑问,Tester是否可以配置IP地址呢(在人机交互界面处)?答案毋庸置疑,可以。这里以常用工具CANoe为例,如下图,就可以设置待测ECU的具体识别信息,包括IP地址:而对于IP地址获取方式。协议中分了两种(加上现状常用的静态IP地址,就是三种。但是静态IP地址没有在协议中体现):Auto IP和DHCP两种区别在于DHCP需要由Server端动态分配IP地址。这里关于DHCP Server对于这两种应用场景有不同的区分(不同的DHCPServer承担者)A:在Tester与车辆边缘节点,需要动态分配IP地址时,这个时候只能由第三方充当DHCPServer,如下图:B:车辆DoIP通信,这个时候,比较随意,可以由边缘节点或者其他网管充当DHCP Server。在Routing Activation request报文格式中没有Target address:Routing Activation作用是激活DoIP通信功能,实质是激活对应Socket(该套接字一端连接IP地址,一端连接Application层对应的Port口)。Tester端首先只能与车辆边缘节点通信,因此对于Tester在发送Routing activation request激活该套接字时,发送对象只能是车辆边缘节点。当然后续若经过安全认证(Service 29 or Service 31),Tester也可以直接与车内DoIP节点进行通信,边缘节点这个时候可以充当Switch角色。三、DoIP payload 与以太网payload关系以太网一帧Payload Length最长是1526 bytesDoIP一帧PayloadLength最大是4294967295 bytes对于如下图,头一次接触该协议或者车载网络就是疑问,DoIP帧不是包含在以太网帧里面吗?为何两者长度出入这么大?这里只是基于OSI 计算机七层模型做出的上图。其实一句话可以解释:可以用多帧Ethernet Frame组成一帧DoIP帧。两者之间不存在包含关系。最后分享下基于CANoe做DoIP测试时,其实可以做很多内容:1、新建Test Module,并加载DoIP dll文件:2、加载DoIP.dll文件后,在CAPL Broswer中有诸多CAPL函数可以使用,可以方便大家调试ECU:这块内容,后续也是汉子我要分享的重点,期待与大家沟通交流。码字不易,若这些问题对您还有些益处,帮忙点“赞”和“在看”。
|