一种MOST-CAN网关和基于该网关的诊断报文路由方法与流程

文档序号:17656372发布日期:2019-05-15 22:02阅读:313来源:国知局
本发明涉及汽车总线领域,是一种MOST-CAN网关和基于该网关的诊断报文路由方法,具体涉及一种能实现CAN和MOST诊断报文转换的网关以及基于该网关的诊断报文路由方法。
背景技术
:随着汽车功能的日益丰富,汽车总线技术也在不断发展。其中,CAN总线和MOST总线都是广泛使用的汽车总线。CAN总线是“控制器局域网总线技术(ControllerAreaNetwork-BUS)”的简称,它具有极强的抗干扰和纠错能力,广泛应用于整车动力系统控制器、底盘系统控制器、车身舒适系统控制器等之间的信息传输。基于CAN总线的诊断技术和诊断协议都已十分成熟。在开放系统互连参考模型七层结构中(物理层、数据链路层、网络层、传输层会话层、表示层、应用层),都有相应的国际标准诊断协议与之对应。整车EOL下线检测设备和售后诊断仪均可采用CAN总线与整车OBD诊断接头连接,实现对整车上各控制器(ElectronicControlUnit,ECU)的访问。MOST(MediaOrientedSystemsTransport)作为多媒体信息系统的一种总线标准,被用于汽车多媒体娱乐和远程信息设备。MOST网络以其高速、低成本、抗干扰、质量轻、灵活等优势成为许多车载数字多媒体系统的主干网络。娱乐主机、数字电视、后座娱乐系统、DVD等节点通过MOST总线传输音视频数据和控制信息。但是,基于MOST总线的诊断技术还不成熟,尚无国际标准的基于MOST总线的诊断协议。目前,整车各控制器的下线检测、售后故障诊断、程序升级等功能绝大多数都是通过基于CAN总线的诊断技术实现的。由于基于MOST总线的诊断技术尚不成熟,整车上的MOST节点,例如娱乐主机、数字电视、后座娱乐系统、DVD等控制器还不能通过MOST总线实现故障诊断、版本管理、程序更新功能。如果在这些控制器上增加一路CAN接口专门用于诊断,这种方案不仅没有利用到MOST总线高带宽高速率的优势,还会造成控制器资源的浪费,也增大了整车线束的复杂度。如果在整车下线检测设备和售后诊断仪上增加MOST接口,会大大的增加设备供应商的成本和开发难度。因此,研究CAN和MOST诊断报文的路由方法,实现外部诊断设备能够直接访问MOST网络上的控制器,具有十分重要的意义。技术实现要素:为解决现有技术存在的问题,本发明的目的在于提供一种能实现MOST-CAN诊断协议转换的网关以及基于该网关的诊断报文路由方法,能有效地将CAN和MOST诊断报文进行转化,实现外部诊断设备对整车上MOST网络控制器的访问。本发明的技术方案是这样实现的:一种MOST-CAN网关,其特征在于,包括:CAN诊断协议处理模块:MOST-CAN网关通过CAN诊断协议处理模块与外部的CAN总线连接,发送和接收CAN诊断报文。数据存储模块:存储CAN诊断报文。MOST-CAN诊断协议转换模块:实现CAN诊断报文和MOST诊断报文互相转换。MOST诊断协议处理模块:MOST-CAN网关通过MOST诊断协议处理模块与外部的MOST总线连接,发送和接收MOST诊断报文。诊断报文路由表:每个MOST网络上的控制器定义四种地址:1)外部诊断设备对控制器的功能寻址诊断请求地址,是CAN诊断报文的地址。2)外部诊断设备对控制器的物理寻址诊断请求地址,是CAN诊断报文的地址。3)控制器对外部诊断设备的物理寻址诊断响应地址,是CAN诊断报文的地址。4)控制器的设备地址,是MOST诊断报文的地址;诊断报文路由表定义每个MOST网络上的控制器对应的以上四种地址,控制器发出的CAN诊断报文中或MOST诊断报文中都有以上四种地址中的一种。CAN诊断协议处理模块根据诊断报文路由表筛选并接收CAN诊断报文,然后将接收的CAN诊断报文存放至数据存储模块中,MOST-CAN诊断协议转换模块将数据存储模块中的CAN诊断报文转换成MOST诊断报文,MOST诊断协议处理模块将转换后的MOST诊断报文发送到MOST总线上。MOST诊断协议处理模块根据诊断报文路由表筛选并接收MOST诊断报文,MOST-CAN诊断协议转换模块将MOST诊断报文转换成CAN诊断报文,CAN诊断协议处理模块将转换后的CAN诊断报文发送到CAN总线上。本发明还提供了一种基于MOST-CAN网关的诊断报文路由方法,包括CAN到MOST诊断报文路由方法和MOST到CAN诊断报文路由方法,其特征在于,步骤如下:步骤一、将CAN诊断报文转换为MOST诊断报文;1)CAN诊断协议处理模块接收CAN诊断报文;首先根据诊断报文路由表对CAN总线上的CAN报文进行筛选,如果报文地址是诊断报文路由表中定义的外部诊断设备对控制器的功能寻址诊断请求地址或者是外部诊断设备对控制器的物理寻址诊断请求地址,那么此CAN报文即是应该被接收的CAN诊断报文,CAN诊断协议处理模块才会接收,并根据诊断路由表查找到与此地址对应的控制器的设备地址和控制器对外部诊断设备的物理寻址诊断响应地址;2)CAN诊断协议处理模块接收步骤一中的过程1)筛选出的CAN诊断报文;首先根据2011年发布的ISO15765-2国际标准第8.5章节中的Table3判断此诊断报文的类型;如果是单帧诊断报文,CAN诊断协议处理模块直接接收,然后提取出此报文中的A_DATA数据,即2013年发布的ISO14229-1国际标准中第7.2章定义的A_PDU中的A_DATA数据,存放至数据存储模块中;如果是首帧诊断报文,CAN诊断协议处理模块按照2011年发布的ISO15765-2国际标准回复流控帧,其中,FS参数等于0,BS参数等于00,流控帧的报文地址采用步骤一中的过程1)查询诊断报文路由表得到的控制器对外部诊断设备的物理寻址诊断响应地址,然后根据2011年发布的ISO15765-2国际标准第8.5章节中的Table3判断后续的CAN诊断报文的类型,如果是连续帧诊断报文,CAN诊断协议处理模块全部接收,最后,CAN诊断协议处理模块将首帧和连续帧中的A_DATA数据按照报文接收的次序连接起来并存储至数据存储模块中;3)MOST-CAN诊断协议转换模块实现CAN诊断报文和MOST诊断报文的转换;将步骤一中的过程2)数据存储模块中存储的A_DATA数据转换为MOST诊断报文;MOST诊断报文由MOST头部数据和数据域组成;MOST头部数据依次由控制器的设备地址、功能块标识符、功能块实例、函数标识符、操作类型组成。其中,控制器的设备地址的长度是2个字节,即步骤一中的过程1)查找到的设备地址;功能块标识符占1个字节,采用诊断功能块标识符。功能块实例占1个字节。函数标识符占12位。操作类型占4位;MOST数据域由封装头部版本、应用层诊断服务数据域长度、协议类型、应用层诊断服务数据域组成;其中,封装头部版本占1个字节;应用层诊断服务数据域长度占4个字节,表示应用层诊断服务数据域的长度;协议类型占1个字节,表示诊断协议类型。应用层诊断服务数据域为可变长度,存放按照2013年发布的ISO14229-1中第7.2章定义的A_DATA数据;4)MOST诊断协议处理模块将转换后的报文发到MOST总线上;二、将MOST诊断报文转换为CAN诊断报文:1)MOST诊断协议处理模块接收MOST诊断报文,首先对MOST总线上的MOST报文进行筛选,需同时满足以下两项筛选条件:第一,该MOST报文的头部数据中的功能块标识符必须是诊断功能块标识符;第二,该MOST报文的头部数据中的设备地址必须是在诊断路由表中定义的;;符合以上条件的MOST报文即是应该被接收的MOST诊断报文,MOST诊断协议处理模块才会接收,并发给MOST-CAN诊断协议转换模块,同时,根据诊断路由表查找与此报文中的设备地址对应的控制器对外部诊断设备的物理寻址诊断响应地址;2)MOST-CAN诊断协议转换模块根据诊断路由表识别出控制器对外部诊断设备的物理寻址诊断响应地址,并将从步骤二中的过程1)接收的MOST诊断报文中的应用层诊断服务数据域提取出来,发给CAN诊断协议处理模块;3)CAN诊断协议处理模块根据2011年发布的ISO15765-1,2011年发布的ISO15765-2,2004年发布的ISO15765-3,2013发布的ISO14229-1国际标准将步骤二中的过程1)和步骤二中的过程2)收到的控制器对外部诊断设备的物理寻址诊断响应地址和应用层诊断服务数据转化为CAN诊断报文发到CAN总线上;本发明的积极效果是:1.本发明提供的MOST-CAN网关连接了外部诊断设备和整车MOST网络控制器,本发明提供的MOST-CAN诊断报文路由方法实现了CAN诊断报文和MOST诊断报文的互相转换,从而实现了外部诊断设备对整车上MOST网络控制器的访问,为整车的下线检测和售后诊断仪对MOST网络控制器的检测和维修提供了解决方法。2.本发明提供的的诊断报文路由表实现了CAN报文地址和MOST设备地址的有效对应,并且CAN诊断协议转换模块和MOST诊断协议转换模块都可根据诊断报文路由表对CAN总线上的CAN报文和MOST总线上的MOST报文进行筛选,从而使MOST-CAN诊断协议转换模块对CAN报文和MOST报文进行有针对性的转换,仅转换有需要的报文,提高了转换效率。3.本发明提供的CAN诊断协议处理模块对于筛选出的首帧诊断报文可回复流控帧报文,从而将后续的连续帧诊断报文都接收进来并存储到数据模块中,再由MOST-CAN诊断协议转换模块转换成MOST诊断报文,并由MOST诊断协议转换模块发到MOST总线上,有效的利用了MOST总线带宽高的优点,提高了报文传输效率。附图说明图1为本发明所述的一种MOST-CAN网关在应用时的系统结构示意图;图2为本发明所述的一种基于MOST-CAN网关的诊断报文路由方法的CAN诊断报文到MOST诊断报文路由方法;图3为本发明所述的一种基于MOST-CAN网关的诊断报文路由方法的MOST诊断报文到CAN诊断报文路由方法;图4为本发明所述的一种基于MOST-CAN网关的诊断报文路由方法中的单帧CAN诊断报文和MOST诊断报文转换示意图;图5为本发明所述的一种基于MOST-CAN网关的诊断报文路由方法中的多帧CAN诊断报文和MOST诊断报文转换示意图;图6为本发明所述的一种基于MOST-CAN网关的诊断报文路由方法中的MOST到CAN诊断报文路由步骤示意图。具体实施方案下面结合附图和实施例对本发明做进一步的描述:本发明所述的网关应用于汽车总线领域,应用场景如附图1所示。外部诊断设备通过CAN总线与整车网络连接。整车上有若干个控制器采用MOST总线传输信息,并通过MOST总线连接成MOST环形网络。本发明的网关具有CAN总线和MOST总线通信接口,在MOST环形网络中,作为MOST环形网络的一个节点,同时也是整车CAN网络的一个节点,可与外部诊断设备通信。如图1,本发明的网关包括CAN诊断协议处理模块:MOST-CAN网关通过CAN诊断协议处理模块与外部的CAN总线连接,发送和接收CAN诊断报文。数据存储模块:存储CAN诊断报文。MOST-CAN诊断协议转换模块:实现CAN诊断报文和MOST诊断报文互相转换。MOST诊断协议处理模块:MOST-CAN网关通过MOST诊断协议处理模块与外部的MOST总线连接,发送和接收MOST诊断报文。对于CAN诊断报文,由CAN诊断协议处理模块接收,发送至数据存储模块,再经MOST-CAN诊断协议转换模块进行转换,最后由MOST诊断协议处理模块发送至MOST总线。对于MOST诊断报文,由MOST诊断协议处理模块接收,发送至MOST-CAN诊断协议转换模块进行转换,最后由CAN诊断协议处理模块发送至CAN总线。表1诊断报文路由表网关需转发的诊断报文由诊断报文路由表定义。设计诊断路由表,如表1,诊断报文路由表由五列构成,第一列是控制器名称。第二列是外部诊断设备对控制器的功能寻址诊断请求地址,是CAN诊断报文地址。第三列是外部诊断设备对控制器的物理寻址诊断请求地址,是CAN诊断报文地址。第四列是控制器对外部诊断设备的物理寻址诊断响应地址,是CAN诊断报文地址。第五列是控制器的设备地址。是MOST诊断报文地址。诊断报文路由表定义每个MOST网络上的控制器对应的的这四种地址。控制器发出的CAN网络或MOST网络诊断报文中都有以上4种地址中的一种。如果CAN网络上的诊断报文或MOST网络上的诊断报文的地址不在此路由表中,网关将不予以转发。如附图2是CAN网络诊断报文路由到MOST网络的过程。CAN诊断协议处理模块会根据诊断路由表对CAN报文进行筛选。如果报文地址与诊断路由表中的外部诊断设备对控制器的功能寻址诊断请求地址或外部诊断设备对控制器的物理寻址诊断请求地外部诊断设备对控制器的功能寻址诊断请求地址址相同,那么CAN诊断协议处理模块会接收这条报文。CAN诊断协议处理模块接收筛选出的CAN诊断报文。如附图3,首先根据2011年发布的ISO15765-2国际标准第8.5章节中的Table3判断此报文的类型。如果是单帧诊断报文,CAN诊断协议处理模块直接接收,然后提取出此报文中的A_DATA数据,即2013年发布的ISO14229-1国际标准中第7.2章定义的A_PDU中的A_DATA数据,存放至数据存储模块中。如果是首帧诊断报文,CAN网络诊断协议处理模块按照2011年发布的ISO15765-2回复流控帧,其中,FS参数等于0,BS参数等于00,流控帧的报文地址采用查询诊断报文路由表得到的控制器对外部诊断设备的物理寻址诊断响应地址,然后再将接下来CAN总线上的连续帧报文全部接收进来,然后根据2011年发布的ISO15765-2国际标准第8.5章节中的Table3判断后续的CAN诊断报文的类型,如果是连续帧诊断报文,CAN诊断协议处理模块全部接收,最后,CAN诊断协议处理模块将首帧和连续帧中的A_DATA数据按照报文接收的次序连接起来并存储至数据存储模块中。MOST-CAN诊断协议转换模块实现CAN诊断报文和MOST诊断报文的转换,将数据存储模块中存储的A_DATA数据转换为MOST诊断报文。MOST诊断报文由MOST头部数据和数据域组成。MOST头部数据依次由控制器的设备地址、功能块标识符、功能块实例、函数标识符、操作类型组成。其中,控制器的设备地址的长度是2个字节,功能块标识符占1个字节,采用诊断功能块标识符,定义为0x06。功能块实例占1个字节。函数标识符占12位。操作类型占4位。MOST数据域由封装头部版本、应用层诊断服务数据域长度、协议类型、应用层诊断服务数据域组成。其中,封装头部版本占1个字节,表示封装头部形式的版本,定义为0x01。应用层诊断服务数据域长度占4个字节,表示应用层诊断服务数据域即A_DATA的长度。协议类型占1个字节,表示诊断协议类型,定义为0x01表示ISO14229-1国际标准。应用层诊断服务数据域为可变长度,存放按照2013年发布的ISO14229-1国际标准中定义A_DATA数据。如附图4所示为单帧CAN诊断报文和MOST诊断报文转换示意图。根据CAN诊断报文的CAN报文地址,查诊断路由表得到MOST诊断报文的设备地址。CAN诊断报文中的A_DATA数据存储至数据存储模块,并填充至MOST诊断报文的应用层诊断服务数据域。如附图5所示为多帧CAN诊断报文和MOST诊断报文转换示意图。将首帧和连续帧中的A_DATA1至A_DATAn数据一次连接组成A_DATA,存储至数据存储模块,填充至MOST诊断报文中的应用层诊断服务数据域中。如附图6是MOST到CAN诊断报文路由步骤示意图。MOST诊断协议处理模块接收MOST诊断报文,首先对MOST报文进行筛选,第一步,判断该MOST报文的头部数据中的功能块标识符是否为诊断功能块标识符。第二步,判断该MOST报文的头部数据中的设备地址是否在诊断路由表中定义。MOST诊断协议处理模块接收筛选出的MOST诊断报文并发给MOST-CAN诊断协议转换模块,同时,根据诊断路由表查找与此报文中的设备地址对应的控制器对外部诊断设备的物理寻址诊断响应地址。MOST-CAN诊断协议转换模块根据诊断路由表查到控制器对外部诊断设备的物理寻址诊断响应地址,并将MOST网络诊断报文中的应用层诊断服务数据域提取出来,发给CAN诊断协议处理模块。CAN诊断协议处理模块根据2011年发布的ISO15765-1,2011年发布的ISO15765-2,2004年发布的ISO15765-3,2013年发布的ISO14229-1国际标准将第2)步收到的控制器对外部诊断设备的物理寻址诊断响应地址和应用层诊断服务数据转化为CAN诊断报文发到CAN总线上。以两条诊断服务为例来说明具体实施方案。1.设计网关路由表如表2,以MOST网络上的三个控制器为例设计网关路由表。第一列控制器表示MOST网络上的有三个节点,分别是A、B和C。第二列是外部诊断设备对控制器的功能寻址诊断请求地址0x7DF。第三列是外部诊断设备对控制器的物理寻址诊断请求地址0x7A0、0x7B0和0x7C0。第四列是控制器对外部诊断设备的物理寻址诊断响应地址0x7A8、0x7B8和0x7C8。第五列是控制器的设备地址0x140、0x141和0x142。表2网关路由表2.外部诊断设备发送单帧CAN诊断报文如表3是外部诊断设备发到CAN总线上的单帧报文的地址和数据域。表3单帧报文1)网关的CAN诊断协议处理模块判断此报文的地址,0x7A0是路由表中定义的,网关选择接收这条报文。2)根据2011年发布的ISO15765-2国际标准第8.5章节中的Table3判断此报文的类型为单帧。3)CAN诊断协议处理模块接收此报文,然后提取出A_DATA数据0x11,0x01。4)将CAN诊断报文转换成MOST诊断报文。设备地址即诊断路由表中与0x7A0对应的0x0140。功能块标识符定义为诊断功能块标识符0x06,其他根据实际定义即可。封装头部版本等按表4定义。此实施例的定义如表6。表4实施例MOST诊断数据域定义字节序数据域长度(字节)有效值hex1封装头部版本1012..5数据域长度4000000026协议类型1017..8应用层诊断服务数据域211015)由MOST诊断协议处理模块将此报文发到MOST总线上。2.外部诊断设备发送多帧诊断报文设计多帧诊断报文如下:首帧:连续帧:1)网关的CAN诊断协议处理模块判断此报文的地址,0x7B0是路由表中定义的,网关选择接收这条报文。2)根据2011年发布的ISO15765-2国际标准第8.5章节中的Table3判断此报文的类型为首帧和连续帧。3)CAN诊断协议处理模块给出流控帧,其中FS参数等于0,BS参数等于00。流控帧的报文地址为0x7A8。控制器A接收到流控帧之后便会将连续帧发到CAN总线上。CAN网络诊断协议处理模块继续接收全部连续帧。4)将首帧中的A_DATA1数据0x2E,0xF1,0xAA,0x01,0x02,0x03和连续帧中的A_DATA2数据0x04,0x05,0x06,0x07,0x08提取出来。并依次连接组成A_DATA数据0x2E,0xF1,0xAA,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08组成将此存储至数据存储模块中。5)将CAN诊断报文转换成MOST诊断报文。设备地址即诊断路由表中与0x7B0对应的0x0141。功能块标识符定义为诊断功能块标识符0x06,其他根据实际定义即可。封装头部版本等按表5定义。此实施例的定义如表6。表5实施例MOST诊断数据域定义字节序数据域长度(字节)有效值hex1封装头部版本1012..5数据域长度4000000026协议类型1017..17应用层诊断服务数据域112EF1AA01020304050607086)由MOST诊断协议处理模块将此报文发到MOST总线上。3.MOST网络节点发送诊断报文针对上述诊断报文,MOST网络控制器接收到后,会发出相应的诊断报文做为响应。针对单帧诊断报文,MOST网络控制器发出的诊断响应报文中的A_DATA诊断数据是0x51,0x01。功能块标识符是0x06,设备地址是0x0140。针对多帧诊断报文,MOST网络控制器给出的诊断响应报文中的A_DATA诊断数据是0x6E,0xF1,0xAA。功能块标识符是0x06,DeviceID是0x0141。针对这两条报文,网关的处理方式相同,以单帧诊断报文的响应为例说明。1)网关的MOST诊断协议处理模块判断此报文的功能块标识符是0x06,设备地址是0x0140是路由表中定义的,网关选择接收这条报文。2)MOST-CAN诊断协议转换模块根据路由表找到与设备地址0x0140对应的诊断响应地址0x7A8。同时,提取出应用层诊断服务数据0x51,0x01。3)CAN诊断协议处理模块将此报文发到CAN总线上。格式如下:本申请实施例可提供成为方法、系统、或计算机程序产品。本申请实施例不限制于任何特定的硬件和软件结合。本申请实施例提出的方法已通过实验验证。根据此方法,开发了能够实现CAN和MOST诊断信息路由的网关控制器,并在原有的支持MOST总线的后座娱乐系统上增加相应的软件模块,用CANoe作为诊断仪。经实验室联合调试,证明此方法切实可行。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1