一种基于 AUTOSAR 故障诊断通信协议的解析方法和设备 技术领域 本发明涉及汽车电子工程的通信技术, 尤其是一种基于 AUTOSAR 故障诊断通信协 议的解析方法和设备。
背景技术 随着电子技术和计算机技术的广泛应用, 汽车技术也得到了飞速发展。对于智能 化, 网络化, 可靠性的汽车, 其上集成的电子控制单元 (ECU) 越来越多, 电子控制系统也越 来越复杂, 导致电控系统故障也变得更加多样。 因此, 传统的诊断方法和诊断设备已经难以 满足当前用户的要求。
目前, OBD-II 是国际上的主流车载诊断系统标准规范, 各大汽车厂商都需要按照 这个标准规范采用统一的诊断通信协议和故障诊断接口。 OBD- Ⅱ在线诊断系统的主要特点 就是统一规定了数据传输协议和诊断模式。支持该标准的汽车的 ECU 具有监测发动机控制 系统和排放系统的能力。
汽车 OBD 系统主要的工作是把故障诊断的相关信息存储在电控单元的存储器中, 这些信息通过相应的诊断仪设备, 或者安装了诊断软件的计算机, 并连接到车载诊断接口 进行数据读取。
AUTOSAR 是由全球汽车制造商、 供应商、 开发商及其它电子软件公司联合提出的汽 车开放系统架构标准。它定义了一套分布式的、 功能驱动的汽车电子软件开发方法以及基 于电子控制单元的软件架构标准化方法, 以便应用在不同的汽车平台, 提高软件复用性, 降 低开发成本。
随着 AUTOSAR 软件架构开发的不断普及应用, 越来越多的汽车 ECU 都是基于 AUTOSAR 标准开发的。AUTOSAR 规范定义了一个比较系统的通信协议栈, 包括 CAN 总线, FlexRay 总线和 LIN 总线, 并将其划分为驱动层、 接口层和服务层。AUTOSAR 诊断模块也要 通过该通信协议栈与外界诊断设备或者上位机诊断软件相连。
由于 OBD- Ⅱ标准统一规定了应用较广泛的多种协议, 包括 : ISO 15765-4(CAN)、 ISO 14230-4(KWP 2000)、 ISO/9141-2、 SAE/J1850VPW 和 SAE/J1850PWM。基于 OBD 标准的 诊断仪也支持上述不同协议, 而这些协议与 AUTOSAR 通信协议栈所支持的 CAN, FlexRay 和 LIN 协议不同。诊断设备需要和车内 ECU 建立起通信连接, 才能向 ECU 发出各种服务请求, 读取汽车的各种故障诊断数据和状态数据。所以, 传统的汽车诊断仪或者诊断软件无法在 新的基于 AUTOSAR 软件架构开发的汽车上进行诊断, 两者间的通信协议不同的障碍, 造成 对该类汽车进行诊断的困难。
本发明设备可以支持不同 AUTOSAR 通信协议和不同 OBD 通信协议间的转换, 用户 可以根据需要选择不同通信协议发送诊断请求, 而不需要考虑基于 AUTOSAR 开发的汽车 ECU 是否支持该通信协议。 这样就很好的屏蔽了诊断仪和汽车 ECU 不同通信协议间的差异。
发明内容本发明的目的正是要解决上述技术存在的不足, 而提供一种基于 AUTOSAR 故障诊 断通信协议的解析方法和设备, 使得对于汽车厂商基于 AUTOSAR 标准新开发的不同车型, 用户仍然能够使用传统的基于 OBD 标准开发的汽车诊断仪或者上位机诊断软件对汽车进 行诊断。
本发明解决其技术问题采用的技术方案 : 这种基于 AUTOSAR 故障诊断通信协议的 解析设备, 包括汽车 ECU 和诊断仪, 在汽车 ECU 和诊断仪之间设置有协议适配器, 该协议适 配器是一个能够支持不同通信协议自动转换的双端口适配器, 用户通过汽车诊断仪发送的 诊断请求, 利用该双端口适配器来进行数据封装, 使其成为符合 AUTOSAR 通信协议的数据 帧, 进而将数据帧发送给 AUTOSAR 诊断模块, 获取诊断数据信息并返回给 AUTOSAR 通信模 块, 再通过该双端口适配器, 对返回数据进行解析, 最后数据通过相应协议返回给诊断仪进 行显示。
本发明设备双端口适配器可以根据发送请求, 自动选择 ISO 15765-4(CAN)、 ISO 14230-4(KWP 2000)、 ISO/9141-2、 SAE/J1850VPW 和 SAE/J1850PWM 等多种 OBD 所支持的诊 断协议, 该适配器再通过对汽车 ECU 查询请求应答, 确定汽车 ECU 具体所支持的 AUTOSAR 通 信协议 ( 包括 CAN 协议, FlexRay 协议或者 LIN 协议 ), 再将诊断请求数据封装成相应 ECU 支持的 AUTOSAR 通信协议数据帧, 从而实现诊断仪与汽车 ECU 间的数据通信。 本发明设备有两个端口, 其中一个端口连接到汽车上的数据连接口 (Data Link Connector), 另一个端口连接到传统的 OBD 诊断仪。
本发明所述的这种基于 AUTOSAR 故障诊断通信协议的解析方法, 该方法的步骤如 下:
(1)、 根据所用诊断仪或者诊断软件选择一种通信协议 ;
(2)、 利用协议适配器, 根据用户发送请求数据的协议类型, 对发送数据进行封装, 使其成为汽车 ECU 所使用的符合 AUTOSAR 通信协议栈标准的数据帧 ; 本发明协议适配器通 过请求查询, 根据应答情况, 判断出汽车 ECU 上所支持使用的 AUTOSAR 通信协议。再将用户 发送来的请求数据封装成汽车 ECU 上所支持的 AUTOSAR 通信协议格式, 进而与汽车 ECU 进 行通信。
(3)、 利用协议适配器, 并根据汽车 ECU 所使用的通信协议, 对返回的诊断请求数 据进行解析, 使其成为诊断仪所支持的通信协议数据, 并将数据返回给用户 : 本适配器根据 返回的数据格式, 对其进行解析, 提取其中的数据信息, 将其转换成为满足诊断仪所支持的 OBD 通信协议的数据。
作为优选, 在步骤 (1) 中, 对诊断仪和协议适配器之间的通信协议由诊断仪具体 支持的 OBD 协议来定, 如果该诊断仪只支持 OBD 中规定的一种通信协议, 则就使用该协议与 本适配器进行通信 ; 如果该诊断仪支持多个 OBD 中的通信协议, 则设置默认使用 CAN 协议与 本适配器进行通信, 同时这里默认使用的协议也可以是其他 OBD 所支持的协议。
作为优选, 在步骤 (2) 中, 该协议适配器通过对汽车 ECU 请求查询, 根据应答情况, 确定汽车 ECU 具体所支持的 AUTOSAR 通信协议, 并且对发送数据的封装过程符合 ISO 标准 和 AUTOSAR 规范, AUTOSAR 通信协议包括包括 CAN 协议, FlexRay 协议或者 LIN 协议。
本发明与现有技术相比, 有益的效果是 :
(1) 本发明可以解决用户当前基于 AUTOSAR 标准的汽车电子与原有诊断设备的协
议不兼容问题。用户在使用原有传统的符合 OBD 标准的汽车诊断仪或者上位机诊断软件的 情况下, 能方便的对现在基于 AUTOSAR 标准开发的 ECU 的汽车进行诊断。
(2) 用户不需要更换原有支持 OBD 通信协议的诊断仪或者诊断软件, 通过本发明 的适配器设备的连接, 就可以对基于 AUTOSAR 标准开发的汽车进行诊断。有效减少了因诊 断仪或诊断软件更换造成的资源浪费。
(3) 该发明设备使汽车厂商或者诊断仪开发人员也无需因两者的通信协议不同, 而对其原有的诊断通信协议重新进行开发修改。因此, 节省了彼此的开发成本。也进一步 为那些基于 AUTOSAR 标准开发的汽车进行诊断提供了便利, 使得 AUTOSAR 在汽车诊断方面 的普及应用更加顺利。 附图说明
图 1 是本发明设备与汽车和诊断仪间的连接图 ;
图 2 是本发明设备自适应查询 AUTOSAR 通信协议的流程图 ;
图 3 是将发送数据封装成符合 AUTOSAR 通信协议的 CAN 帧的流程图 ;
图 4 是本发明设备解析 AUTOSAR 通信协议 CAN 帧的流程图。 具体实施方式
下面结合附图和实施例对本发明作进一步说明 :
如图 1 所示, 本发明提供了一种能够对 AUTOSAR 故障诊断通信协议进行解析的设 备, 包括一个协议适配器和与汽车 ECU 数据连接口 (DLC) 相连的数据线。该协议适配器与 诊断仪相连的端口是一个符合 ISO 15031-3 中内容规定的 16 针 DLC 插座 ; 协议适配器与汽 车 ECU 数据连接口相连的端口线适用于支持 AUTOSAR 通信的 CAN 协议, FlexRay 协议和 LIN 协议总线。
一、 根据所用诊断仪或者诊断软件选择一种通信协议, 并发送诊断请求。 作为本发 明的一个选择性实施案例, 该诊断仪只支持 OBD 中规定的 CAN 协议。用户发送的诊断服务 请求符合 CAN 协议标准。
二、 本双端口适配器根据用户发送请求数据的协议类型, 对发送数据进行封装, 使 其成为汽车 ECU 所使用的符合 AUTOSAR 通信协议栈标准的数据帧。
通过本发明适配器请求查询, 根据应答情况, 看与那种通信协议格式匹配, 判断出 汽车 ECU 上所支持使用的 AUTOSAR 通信协议。适配器自适应查询 AUTOSAR 通信协议的流程 如图 2 所示。
作为本发明的一个选择性实施案例, 汽车 ECU 所支持的是 AUTOSAR 通信协议栈中 的 CAN 总线协议, 因此要将发送的诊断服务请求转换为符合 AUTOSAR 通信协议栈的数据帧。
AUTOSAR 通信协议栈 CAN 总线扩展帧主要由两部分组成 : 29 位的 CAN 标识和 8 字 节长度的数据域, 其中目的地址和源地址是在 AUTOSAR 的 CAN TP 层配置的。如表 1 所示 :
表 1 AUTOSAR 通信协议栈 CAN 总线中各种类型帧的结构
根据 ISO 15765 标准和 AUTOSAR Specification of CAN Transport Layer 标准, 将发送的请求数据封装成符合 AUTOSAR COM 协议的 CAN 帧的过程如图 3 所示。
三、 本双端口适配器根据汽车 ECU 所使用的通信协议, 对返回的请求数据进行解 析, 使其成为满足诊断仪所支持的通信协议的数据, 并将数据返回给用户。
作为本发明的一个选择性实施案例, 汽车 ECU 所支持的是 AUTOSAR 通信协议栈中 的 CAN 总线协议, 而诊断仪只支持 OBD 中规定的 CAN 协议。因此需要解析接收到的 CAN 帧, 将其提取为诊断数据包返回, 其流程如图 4 所示。其解析过程如下 :
(1) 如果接收到的 CAN 帧数目为 1 个, 则为单帧。 先提取该帧中数据域的数据长度 SF_DL 信息。再将该帧数据域的网络数据部分中 SF_DL 个字节数据提取出来即可。
(2) 如果接收到的 CAN 帧数目大于 1 个, 则为多帧。
首先查找多帧中第一个帧所在位置, 如果该帧数据域第一个字节的高 4 位 ( 即协 议控制信息类型 ) 为 0001, 则为首帧 (FF)。提取该帧数据域的数据长度的值。并提取该帧 数据域网络数据部分的 6 个字节。
之后, 查找帧序号 SN 为 1 的帧, 并提取其数据域网络数据部分的 7 个字节数据。 随 后, 依次查找帧序号 SN 为 2, 3, 4…的帧, 并依次提取其数据域的网络数据的 7 个字节。
最后, 查找最后一帧所在位置, 将其数据域的网络数据的字节数据提取出来即可。
通过以上实例可以看出, 本发明可以有效地将汽车上 ECU 的数据连接口与诊断仪 通过本发明的协议适配器相连, 使得汽车 ECU 上和诊断仪即使支持不同的通信协议, 也可 以通过该适配器的协议转换, 将诊断请求数据发送给 AUTOSAR 通信协议栈进行处理, 并返 回响应请求。
虽然通过上述具体实例对本发明进行了说明, 但是本发明并不局限于上述实例, 对于本领域的相关人员, 可以根据本发明的技术方案和思想, 作出其他各种改变和变形, 而 所有这些都应该属于本发明权利要求的保护范围内。