【技术领域】
本发明属于汽车软件技术领域,具体涉及一种汽车诊断设备软件系统。
背景技术:
现有的诊断仪设备普遍常用的多是手持诊断仪,无论从诊断故障的范围,还是故障显示的方式,以及诊断协议的支持类型都有明显的局限性。
手持诊断仪除了读取故障码功能外,仅能支持少许的故障码数据流信息读取,而且操作面板繁琐复杂,功能较少,对于新车型的二次兼容也不便捷。
即使是市面上的pc诊断仪,也困于多网段总线的同时诊断,和二次开发问题。
技术实现要素:
本发明所要解决的技术问题在于提供一种高效的汽车诊断设备软件系统。
本发明是这样实现的:
一种汽车诊断设备软件系统,包括pc上层诊断仪软件模块、上层服务接口模块、各类诊断协议栈sdk模块、odx解析模块、dbc解析模块、vci硬件驱动模块、刷写模板和bootloader刷写流程模块、eol模块组、dbc整车数据库、odx诊断数据库、dll动态链接库、vci硬件模块;
所述pc上层诊断仪软件模块:pc客户端的上层应用软件,客户通过界面的选择、操作方式,将所需读取数据指令下发至下一模块;
所述上层服务接口模块:与pc上层应用软件所对接的接口函数调用,将上层的指令转为诊断服务;
所述各类诊断协议栈sdk模块:用于实现诊断报文收发,打包解包,定时,错误处理功能;
所述odx解析模块:用于车辆全生命周期中诊断数据的交互,负责与odx诊断数据库进行交互,提供上层软件对诊断数据的应用;在与应用层交互时,提供全部的诊断服务,并根据服务来进行相应的操作;
所述dbc解析模块:用于整车总线数据的交互,通过与dbc整车数据库的交互,将整车总线上侦测的报文数据转换为具有含义的物理值,以提供界面显示;
所述vci硬件驱动模块:作为运行vci硬件的一个驱动程序;当汽车有多个网段时,控制vci硬件通过与ecu的连接,开启自身的多个通道,同时连接多个网段,诊断仪上层软件同时对不同网段下的ecu进行故障诊断,和数据读取;
所述刷写模板和bootloader刷写流程模块:刷写模板作为执行bootloader刷写时的标准程序,通过bootloader刷写流程中的诊断服务,执行bootloader刷写,更新ecu软件;
所述eol模块组:整车厂各车型规范化的下线或售后的ecu配置及标定流程程序,最大限度地依据主机厂需求进行定制和调度;
所述dbc整车数据库、odx诊断数据库、dll动态链接库:整车厂各车型相关的dbc信息矩阵、odx数据库、dll文档等技术资料库,用以提供解析的基础;
所述vci硬件:是ecu与车辆外界的设备之间的硬件接口,实现不同信号载体之间数据的传递。
进一步地,所述各类诊断协议栈sdk模块,支持有:kwp2000oncan、kwp2000onk-line、uds协议、flexray协议、most协议,以及互联网协议诊断通信诊断协议类型。
本发明的优点在于:本发明的诊断仪系统架构模块化各总线协议,并结合诊断数据库的解析模块和总线信息矩阵,通过接口函数的调用,经由内部各模块间的协调参与,以实现pc上层软件下发的各种指令动作,解析读取或侦测到的各类数据信息,通用直观;无论是对产线的诊断,还是售后的诊断分析,都能够有较大的改观和突破。同时,对于二次开发,仅需pc上层软件的调整,极大地满足了整车厂商对于诊断仪的定制化需求。
【附图说明】
下面参照附图结合实施例对本发明作进一步的描述。
图1是本发明的软件整体架构图。
图2是本发明的诊断数据处理流程图。
图3是本发明的诊断协议栈架构图。
【具体实施方式】
一种汽车诊断设备软件系统,如图1所示,包括pc上层诊断仪软件模块、上层服务接口模块、各类诊断协议栈sdk模块、odx解析模块、dbc解析模块、vci硬件驱动模块、刷写模板和bootloader刷写流程模块、eol模块组、dbc整车数据库、odx诊断数据库、dll动态链接库、vci硬件模块。
所述pc上层诊断仪软件模块:pc客户端的上层应用软件,客户通过界面的选择、操作方式,将所需读取数据指令下发至下一模块;
所述上层服务接口模块:与pc上层应用软件所对接的接口函数调用,将上层的指令转为诊断服务;
所述各类诊断协议栈sdk模块:用于实现诊断报文收发,打包解包,定时,错误处理功能;支持有:kwp2000oncan、kwp2000onk-line、uds协议、flexray协议、most协议,以及互联网协议诊断通信诊断协议类型;
所述odx解析模块:用于车辆全生命周期中诊断数据的交互,负责与odx诊断数据库进行交互,提供上层软件对诊断数据的应用;在与应用层交互时,提供全部的诊断服务,并根据服务来进行相应的操作;
所述dbc解析模块:用于整车总线数据的交互,通过与dbc整车数据库的交互,将整车总线上侦测的报文数据转换为具有含义的物理值,以提供界面显示;
所述vci硬件驱动模块:作为运行vci硬件的一个驱动程序;当汽车有多个网段时,控制vci硬件通过与ecu的连接,开启自身的多个通道,同时连接多个网段,诊断仪上层软件同时对不同网段下的ecu进行故障诊断,和数据读取;
所述刷写模板和bootloader刷写流程模块:刷写模板作为执行bootloader刷写时的标准程序,通过bootloader刷写流程中的诊断服务,执行bootloader刷写,更新ecu软件;
所述eol模块组:整车厂各车型规范化的下线或售后的ecu配置及标定流程程序,最大限度地依据主机厂需求进行定制和调度;
所述dbc整车数据库、odx诊断数据库、dll动态链接库:整车厂各车型相关的dbc信息矩阵、odx数据库、dll文档等技术资料库,用以提供解析的基础;
所述vci硬件:是ecu与车辆外界的设备之间的硬件接口,实现不同信号载体之间数据的传递。
如图2所示,诊断仪的部分数据交互如下,使用uds诊断服务读取变速箱故障码的扩展信息为例介绍整体框架的数据流传输和解析显示过程。
(1)应用层将读取变速箱某个故障码的快照信息的命令传递给uds服务接口(此处为uds的诊断,故相应的是uds的应用层接口);
(2)和(3)uds服务接口将读取故障码快照数据信息这一命令通过odx解析模块检索odx库,将数据内容结果映射到诊断服务和服务子功能中(例如故障码扩展信息读取(0x190x06));将要该故障码这一选择通过odx映射到诊断数据参数中(例如故障码0xc07300)
(4)uds诊断服务接口将应用指令组合成完整的诊断请求0x190x040xc00x730x000xff,并传递给协议栈;
(5)和(6)协议传递给vci硬件,vci将这一诊断请求转换成通信信号(例如can信号)发给ecu;
(7)和(8)ecu响应数据,vci将接收到的通信信号传递给协议栈;
(9)协议栈将多帧的数据包进行解包,重新排布,例如0x590x060xc00x730x000x0d0xff0x010xd00x120x74;
(10)和(3)uds服务接口即通过odx中的数据参数类型和内容将响应的总线值转换成物理值,例如记录了故障码0xc07300时的车速(did0xd012)为116km/h(0x74=116h);
(11)uds服务接口即将该物理值及单位信息传递给应用软件界面展示给用户。
如图3所示,uds协议栈主要包括上层服务接口(iso14229和iso27145-3wwh-obd),iso14229-2会话层协议,iso15765-2网络层协议,can接口驱动。
1)上层服务接口采用c++语言开发,通用兼容性强。该层主要定义常用的诊断服务接口,如读故障码,读did等;
2)iso14229-2会话层协议和iso15765-2网络层协议按照iso标准也采用c++语言开发编写,完成诊断pdu的封包和解包、提供应用层定时,以及来自can接口设备的总线报文过滤等操作;
3)can接口驱动由c++语言开发。主要完成vci硬件的初始化,设置总线类型和波特率,报文的收发等。
本发明的pc诊断仪可以依托于该诊断仪软件框架的基础之上,进行二次开发和新车型下线或售后诊断的导入工作。每个车型仅需建立独立的技术资料库,即可开展相应的诊断工作,不再是多个车型诊断仪的单纯整合。对于整车厂不仅降低了开发诊断仪设备系统的人力、时间、资金成本,也便于车厂对于诊断仪设备的管理和高效利用,提升诊断工作效率。
以上所述仅为本发明的较佳实施用例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。