在上两篇文章中: 分别介绍了Tester与车辆获取物理连接、车辆声明自身信息后接下来需要操作的就是本文所要分享的内容:Tester与车辆控制器的通信建立。 一、通信模式 通信建立区分: 1、UnsecuredDoIP session; 2、Secured(TLS) DoIP session A、UnsecuredDoIP session;此DoIP会话模式为没有经过安全认证。 如下图所示,为了启动客户端DoIP实体与车辆中的DoIP实体之间的连接,第一步就是打开套接字(Socket)。这一步是在任何报文交换前必须完成的。因此DoIP实体需要提供处理传入通信请求的资源(Socket资源)。 为了激活初始化连接,Client需要发送路由激活请求报文(routingactivation request message)到DoIP实体。让Socket状态跳转到“路由激活”(routingactive相当于将此链路激活打通,可以进行诊断通信)。当诊断客户端不在需要此连接,需要将此Socket断开,就可以保证该Socket被其他新的请求使用。 B、Secured(TLS) DoIP session 关于经过安全认证后DoIP会话模式,其过程是增加了一步TLS安全认证(TLS源于互联网,稍后会专门有文章说明此内容)。 当一个Socket连接建立后,TLS协议特定的握手初始化步骤由客户端DoIP实体和DoIP实体执行。TLS握手成功完成后,所有后续消息都通过此TLSTCP_DATA套接字交换。 同样道理,当DoIP客户端不需要安全的TCP连接,需要将该Socket连接释放,以便其他新的请求使用。 其中Socket套接字,一端是IP地址,一端是Port口。 二、路由激活(Routingactivation)格式首先需要清楚DoIP报文头框架结构: 如上图,是截取ISO13400协议关于DoIP报文头框架,其中最需要注意的地方就是Payloadtype。它决定了该帧报文的具体功能类型。 回归到本文话题,关于路由激活的Payloadtype: 截取Demo中Trace数据如下: 在协议中,定义路由激活报文格式如下: 其中关于Routingactivation request activation types定义如下: 其中对于激活报文的作用类型分了好多种,也预留了相应位置,保证协议的灵活性;也预留给OEM自定义使用的权限。 将路由激活请求发送至DoIP实体,DoIP实体处理机制如下: 根据处理机制,DoIP响应其请求 响应格式如下 其中Routingactivationresponse code值详细定义如下表: 路由激活响应码值由不同的触发条件触发:
以上是关于DoIP通信前的路由激活全过程。 我相信时间的力量,愿你我每天进步一点点! 自媒体提供了一个展现自己观点的平台,我有幸参与其中,来畅所欲言的表达自己观点。但鉴于眼界和以往经验,阐述的观点有可能具有一定的局限性,望读者批判性的阅读。 若您有所收获,我将万分激动,因为他人的认可是我幸福度提高的动力和源泉,也是我不断更新的动力。 若您也发现有争议的点,欢迎邮件沟通交流哈!!! 若您有所收获,是我更新的最大动力! 有关注,不迷路! 现阶段可在私信上面沟通技术疑问,我会及时回复! ----------------------------------------- 作者简介 | 穿拖鞋的汉子 汽车电子工程师 chuantuoxiedehanzi@163.com 来,每天进步一点点! |
|