CN103529821B - 一种基于can总线的诊断协议栈系统的可配置化方法及装置 - Google Patents

一种基于can总线的诊断协议栈系统的可配置化方法及装置 Download PDF

Info

Publication number
CN103529821B
CN103529821B CN201310461120.7A CN201310461120A CN103529821B CN 103529821 B CN103529821 B CN 103529821B CN 201310461120 A CN201310461120 A CN 201310461120A CN 103529821 B CN103529821 B CN 103529821B
Authority
CN
China
Prior art keywords
application layer
internet
protocol stack
file
standard
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310461120.7A
Other languages
English (en)
Other versions
CN103529821A (zh
Inventor
程安宇
王蓉
申帅
赵恬
黎扬
许灵斐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chongqing University of Post and Telecommunications
Original Assignee
Chongqing University of Post and Telecommunications
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chongqing University of Post and Telecommunications filed Critical Chongqing University of Post and Telecommunications
Priority to CN201310461120.7A priority Critical patent/CN103529821B/zh
Publication of CN103529821A publication Critical patent/CN103529821A/zh
Application granted granted Critical
Publication of CN103529821B publication Critical patent/CN103529821B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种基于CAN总线诊断协议栈的可配置化方法,该诊断协议栈按照国际诊断标准ISO15765和AUTOSAR标准实现,包括封装的网络层和应用层模块、应用层标准接口、ECU抽象层标准接口以及可配置文件。用户在进行诊断需求开发时,应用现有模块通过配置文件设置可配置参数,只需按照标准接口专注于应用层和底层驱动的实现。本发明增强诊断软件的通用性、可靠性、移植性,方便在不同硬件平台上移植,避免网络层、应用层协议栈的重复开发,大大缩短了开发时间,减少开发成本,方便了开发和扩展。

Description

一种基于CAN总线的诊断协议栈系统的可配置化方法及装置
技术领域
本发明涉及汽车电子工程领域,尤其是一种基于CAN总线诊断协议栈系统的可配置化方法。
背景技术
随着电子技术和计算机技术的飞速发展,汽车上普遍采用了功能强大、性能可靠、成本较低的电子控制系统。对于智能化、网络化、高可靠性的汽车,集成了越来越多的电子控制单元ECU,电子控制系统越来越复杂,导致汽车故障定位和处理变得异常困难,传统的汽车诊断和维修方法已经难以满足故障诊断在实时性和准确性上的要求。
为了解决上述问题汽车制造商在电子控制单元中增设了故障自诊断系统,通过在汽车的运行过程中不间断的检测电子控制系统各组成部分的工作情况,从而检测出系统故障,并以故障代码(DTC)的形式存储在ECU的存储器中。当车辆出现故障,维修人员通过相应的诊断仪设备连接到车载诊断接口,从汽车ECU中读取ECU的工作状态和故障信息,检测和确定车辆故障。
随着汽车开放系统架构AUTOSAR(AutomotiveOpenSystemsArchitecture)的不断普及应用,越来越多的汽车ECU软件开发都是基于AUTOSAR标准。它是由全球汽车制造商、供应商及其他电子软件公司联合提出的汽车开放系统架构标准,定义了一套分布式的、功能驱动的汽车电子软件开发方法及基于电子控制单元的软件架构标准化方法,以便应用在不同的汽车平台,提高软件复用性,降低开发成本。
AUTOSAR标准中故障诊断模块的相应模块定义了一个系统的通信协议栈,并将其划分为驱动层、接口层和服务层,并通过该通信协议栈与外界诊断设备或者上位机诊断软件相连。
文献:CAN总线网络层协议栈开发测试(计算机工程,2011年8月第15期)对ISO15765协议进行分析,依据协议在基于MC9S12DP512芯片的整车控制器上完成了CAN网络层协议栈的开发。并在VC环境下开发测试程序,对协议栈进行了测试。该协议栈开发针对具体的一款芯片定制,可移植性、通用性不强,其软件测试没有经过标准的测试工具测试,其系统缺乏可靠性。
公开号为CN102200913A,名称为“一种基于模型的自动变速箱软件开发平台的分层设计方法”的发明专利,所述软件开发平台的分层分为三层:模型应用层、硬件抽象层和底层驱动层,其中所述硬件抽象层用于模型应用层和底层驱动层的对接,自动变速箱控制策略由模型开发工具进行建模,仿真和测试,并自动生成C代码并转化为应用层软件模块,形成模型应用层;模型应用层通过硬件抽象层进行数据交换,通过对接的函数实现底层平台数据的访问和对应操作;底层驱动层包括CAN驱动、A/D转换、数字量输入和输出,以及平台自身功能和状态监测,底层驱动层通过硬件抽象层的函数调用,执行相应操作,实时处理和更新数据。但该方法仍然存在车载网络诊断技术中通用性不强、可移植性差的问题。
发明内容
本发明的目的是要解决现有车载网络诊断技术中通用性不强、可移植性差的现状,提出一种基于CAN总线诊断协议栈的可配置化方法,增强现有诊断软件的通用性、可靠性和复用性,使得汽车厂商在诊断软件的开发过程中,可以专注于应用层需求的开发,适用于多种不同的应用平台。本发明采用以下技术方案实现:一种基于CAN网络诊断协议栈的可配置化方法。
诊断协议栈软件架构遵循AUTOSAR标准规定的CAN总线故障诊断模块。诊断协议栈网络层、应用层源码按照国际诊断标准ISO15765、ISO14229实现;ISO15765、ISO14229中定义了诊断协议栈网络层和应用层的内容,与OSI模型相对应:ISO15765-2定义了诊断协议栈网络层的内容,与OSI模型的网络层、传输层相对应;ISO15765-3和ISO14229-1定义了诊断协议栈应用层的内容,与OSI模型的应用层相对应。
诊断协议栈单元对网络层、应用层源码进行封装,将网络层、应用层的数据结构和函数原型放在头文件中,同时对函数的源文件进行编译,得到函数定义的.lib文件格式的目标代码;诊断协议栈单元定义符合AUTOSAR标准的应用层和ECU抽象层接口;可配置化单元提取出诊断协议栈中用户可自行配置的参数,在可配置文件中对网络层可配置参数进行设置,更新网络层配置文件;在诊断协议栈可配置文件中选择要支持的诊断服务,按照诊断协议栈应用层标准接口实现诊断服务功能;按照诊断协议栈ECU抽象层标准接口完成CAN模块的驱动,CAN报文的接收、发送。
所述对网络层、应用层源码进行封装具体包括:采用.lib格式封装网络层模块、应用层模块,按照应用层标准接口采用.c格式实现应用层服务功能源码,按照应用层标准接口采用.c格式实现ECU底层驱动程序,用户生成.c格式的配置文件,并加入网络层库文件。
诊断协议栈的可配置化单元提取出诊断协议栈中用户可自行配置的参数,在可配置文件中用.xml形式定义其格式,比如:网络层时间参数、应用层时间参数、应用层具体服务等,用户可根据具体项目需求在配置文件中设置参数值。配置完成的诊断协议栈包括模块化封装的协议栈网络层、应用层源码(.lib文件),根据用户需求生成的参数配置文件(.c文件),根据用户需求完成的芯片驱动程序(.c文件),根据用户需求完成的应用层服务程序(.c文件)。
本发明还提出一种基于CAN总线诊断协议栈的可配置化装置,该装置包括:诊断协议栈单元对网络层、应用层源码进行封装,将网络层、应用层的数据结构和函数原型放在头文件中,同时对函数的源文件进行编译,得到函数定义的.lib文件格式的目标代码;诊断协议栈单元定义符合AUTOSAR标准的应用层和ECU抽象层接口;可配置化单元提取出诊断协议栈中用户可自行配置的参数,在可配置文件中对网络层可配置参数进行设置,更新网络层配置文件;在诊断协议栈可配置文件中选择要支持的诊断服务,按照诊断协议栈应用层标准接口实现诊断服务功能;按照诊断协议栈ECU抽象层标准接口完成CAN模块的驱动,CAN报文的接收、发送。
本发明解决了当前诊断软件复用性不强的问题,用户可使用已封装模块,并按照其标准接口专注于应用层需求的开发,避免了网络层、应用层协议栈的重复开发,大大缩短了开发时间,减少开发成本;本发明解决了诊断软件在不同硬件平台上的移植问题,支持硬件平台与软件代码的无缝连接。本发明整体架构按照AUTOSAR标准设计实现,提高了软件的可靠性;本发明将国际诊断标准中用户可自行配置的参数提取出来,用户在进行诊断项目开发时,可根据自身需求修改配置参数,从而提高了软件的通用性,方便用户的开发和扩展。
附图说明
图1是诊断协议栈整体结构示意图;
图2是诊断协议栈工作过程示意图;
图3是ISO诊断协议在OSI模型中的映射关系。
具体实施方式
下面结合附图和实例对本发明做进一步说明,所述实施例是本发明的一部分实施例,而不是全部实施例,所以所述实施例不应理解为对本发明的限制。
本发明提出一种基于CAN总线诊断协议栈的可配置化方法,按照国际诊断标准ISO15765和AUTOSAR标准接口实现诊断系统网络层、应用层功能,可经过配置生成诊断软件,完成外部诊断设备与车载ECU间的通信。
如图1所示本诊断协议栈实现ISO15765所描述的网络层功能,封装成库,并提取网络层可配置参数(如:网络层时间参数、网络层控制参数等),在配置文件中定义。诊断协议栈根据AUTOSAR定义向应用层程序和ECU抽象层提供标准接口。汽车不同ECU所具备的诊断功能各不相同,根据需求选择车载ECU芯片及所支持的诊断服务。作为本发明的一个选择性实施案例,选择飞思卡尔MC9S12DG128芯片作为车载ECU,选择0x10(诊断会话控制)、0x27(安全访问)、0x3E(诊断设备在线)、0x2E(写入数据)为所支持的诊断服务。
如图2所示诊断协议栈工作示意图。诊断协议栈单元对网络层、应用层源码进行封装,将网络层、应用层的数据结构和函数原型放在头文件中,同时对函数的源文件进行编译,得到函数定义的.lib文件格式的目标代码;诊断协议栈单元定义符合AUTOSAR标准的应用层和ECU抽象层接口;可配置化单元提取出诊断协议栈中用户可自行配置的参数,在可配置文件中对网络层可配置参数进行设置,更新网络层配置文件;在诊断协议栈可配置文件中选择要支持的诊断服务,按照诊断协议栈应用层标准接口实现诊断服务功能;按照诊断协议栈ECU抽象层标准接口完成CAN模块的驱动,CAN报文的接收、发送。
诊断协议栈包括:
A.封装模块采用.lib格式封装网络层、应用层模块;
B.标准定义模块根据AUTOSAR标准定义应用层接口,通过应用层接口接入应用服务程序;根据AUTOSAR标准定义ECU抽象层接口,通过ECU抽象层接口接入ECU底层驱动程序;
c..c格式配置文件模块定义了ECU抽象层配置参数、网络层配置参数和应用层配置参数。
根据当前需求开发诊断协议栈,首先创建工程加入采用.lib格式封装网络层、应用层模块,其次根据当前需求在配置文件中对可配置参数进行配置:
1.设置网络层可配置参数,更新网络层配置文件;
2.设置应用层可配置参数,在可配置文件中设置要支持的诊断服务0x10、0x27、0x3E、0x2E,并通过应用层标准接口接入应用服务程序;
3.设置ECU抽象层可配置参数,并通过ECU抽象层标准接口接入MC9S12DG128芯片的驱动程序,包括CAN模块的驱动程序,CAN报文的接收、发送模块。
最后将配置生成的诊断协议栈经编译后下载到车载ECU(MC9S12DG128芯片)中,运行协议栈程序。
诊断协议栈采用分层模块化方式实现,如图3所示。采用.lib格式封装网络层、应用层模块按照国际诊断标准ISO15765和ISO14229实现,其中应用层模块由ISO15765-3和ISO14229定义,其中网络层模块由ISO15765-2定义,ECU抽象层由ISO11898定义。各模块间接口由AUTOSAR标准定义。
通过以上实施例可以看出,用户在进行车辆故障诊断软件开发时可以有效利用本方法,只需根据需求在可配置文件中对可配置参数进行设置,按照标准接口完成底层驱动和应用层具体服务功能,而不用考虑诊断软件网络层和应用层的设计与实现,便能够高效、准确的实现整个车辆故障诊断。
通过上述具体实例对本发明进行了说明,但是本发明并不局限于上述实例,上述方法可应用于飞思卡尔MC9S12XEQ512平台和瑞萨R5F10DPJ平台。对本领域的相关人员,在进行车辆故障诊断软件的开发过程中可以依据本发明的技术方案和思想,完成不同需求的开发,而所有这些都应该属于本发明权利要求的保护范围之内。

Claims (8)

1.一种基于CAN总线诊断协议栈的可配置化方法,诊断协议栈单元定义符合AUTOSAR标准的应用层和ECU抽象层接口;在诊断协议栈单元可配置文件中选择要支持的诊断服务,按照应用层标准接口实现诊断服务功能;按照ECU抽象层标准接口完成CAN模块的驱动,CAN报文的接收、发送;其特征在于:诊断协议栈单元对网络层、应用层源码进行封装,将网络层、应用层的数据结构和函数原型放在头文件中,同时对函数的源文件进行编译,得到函数定义的.lib文件格式的目标代码;可配置化单元提取出诊断协议栈中用户可自行配置的参数,在可配置文件中对网络层可配置参数进行设置,更新网络层配置文件。
2.根据权利要求1所述的方法,其特征在于:所述对网络层、应用层源码进行封装具体包括:采用.lib格式封装网络层模块、应用层模块,按照应用层标准接口采用.c格式实现应用层服务功能源码,按照应用层标准接口采用.c格式实现ECU底层驱动程序,用户生成.c格式的配置文件,并加入网络层库文件。
3.根据权利要求1所述的方法,其特征在于:用户可自行配置的参数包括:网络层时间参数、应用层时间参数、应用层具体服务。
4.根据权利要求2所述的方法,其特征在于:所述应用层模块、应用层标准接口符合AUTOSAR标准。
5.一种基于CAN总线诊断协议栈的可配置化装置,诊断协议栈单元定义符合AUTOSAR标准的应用层和ECU抽象层接口;在诊断协议栈可配置文件中选择要支持的诊断服务,按照应用层标准接口实现诊断服务功能;按照ECU抽象层标准接口完成CAN模块的驱动,CAN报文的接收、发送;其特征在于:诊断协议栈单元对网络层、应用层源码进行封装,将网络层、应用层的数据结构和函数原型放在头文件中,同时对函数的源文件进行编译,得到函数定义的.lib文件格式的目标代码;可配置化单元提取出诊断协议栈中用户可自行配置的参数,在可配置文件中对网络层可配置参数进行设置,更新网络层配置文件。
6.根据权利要求5所述的装置,其特征在于:所述对网络层、应用层源码进行封装具体包括:采用.lib格式封装网络层模块、应用层模块,按照应用层标准接口采用.c格式实现应用层服务功能源码,按照应用层标准接口采用.c格式实现ECU底层驱动程序,用户生成.c格式的配置文件,并加入网络层库文件。
7.根据权利要求5所述的装置,其特征在于:用户可自行配置的参数包括:网络层时间参数、应用层时间参数、应用层具体服务。
8.根据权利要求5所述的装置,其特征在于:所述应用层模块、应用层标准接口符合AUTOSAR标准。
CN201310461120.7A 2013-09-29 2013-09-29 一种基于can总线的诊断协议栈系统的可配置化方法及装置 Active CN103529821B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310461120.7A CN103529821B (zh) 2013-09-29 2013-09-29 一种基于can总线的诊断协议栈系统的可配置化方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310461120.7A CN103529821B (zh) 2013-09-29 2013-09-29 一种基于can总线的诊断协议栈系统的可配置化方法及装置

Publications (2)

Publication Number Publication Date
CN103529821A CN103529821A (zh) 2014-01-22
CN103529821B true CN103529821B (zh) 2016-05-11

Family

ID=49931908

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310461120.7A Active CN103529821B (zh) 2013-09-29 2013-09-29 一种基于can总线的诊断协议栈系统的可配置化方法及装置

Country Status (1)

Country Link
CN (1) CN103529821B (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105172616B (zh) * 2015-04-20 2017-11-24 南京金龙新能源汽车研究院有限公司 一种电动汽车智能整车控制器
CN105137943B (zh) * 2015-09-06 2018-06-26 同济大学 一种微混合动力系统集成控制设备
CN105515930A (zh) * 2015-12-15 2016-04-20 上海博泰悦臻网络技术服务有限公司 一种车辆总线消息处理方法及设备、车辆
CN107438048B (zh) * 2016-05-25 2020-06-02 宝沃汽车(中国)有限公司 车载控制器信号的分配策略生成方法、装置及车辆
CN106094624B (zh) * 2016-06-24 2018-10-26 苏州工业职业技术学院 基于嵌入式can总线的混合动力汽车电子编程站系统
CN106230605B (zh) * 2016-07-29 2019-07-02 浙江吉利控股集团有限公司 一种基于autosar车载网络的管理系统
CN106375298A (zh) * 2016-08-30 2017-02-01 湖南中车时代通信信号有限公司 一种可配置安全通信协议的实现方法
CN106503376B (zh) * 2016-10-27 2019-10-01 安徽江淮汽车集团股份有限公司 一种汽车网络架构建模仿真方法及系统
CN107102920B (zh) * 2017-03-14 2021-10-26 延锋伟世通电子科技(南京)有限公司 Oncan仪表在线调试系统及方法
CN107329762B (zh) * 2017-06-30 2020-09-08 浙江孚宝智能科技有限公司 一种描述与集成软件服务的方法和系统
CN109976834B (zh) * 2019-03-29 2022-01-28 上海仁童电子科技有限公司 一种协议栈参数配置方法及装置
CN111722870B (zh) * 2020-06-10 2023-05-02 中国第一汽车股份有限公司 一种电控单元的驱动配置方法、装置、设备及存储介质
CN111740972B (zh) * 2020-06-15 2022-06-21 中国第一汽车股份有限公司 一种通信协议栈信息的更新方法、装置、设备及存储介质
CN111752830B (zh) * 2020-06-22 2022-08-16 中国第一汽车股份有限公司 汽车诊断系统、汽车诊断系统的更新方法、装置和设备
CN111831265B (zh) * 2020-07-27 2024-02-02 吉林大学 基于autosar的电动汽车传感器信号处理组件接口设计方法
CN112230630A (zh) * 2020-12-09 2021-01-15 奥特酷智能科技(南京)有限公司 基于dds协议在自动驾驶中实现诊断的方法
CN114285840A (zh) * 2021-12-23 2022-04-05 浙江吉利控股集团有限公司 车辆数据的获取方法、智能终端及存储介质
CN116521143B (zh) * 2023-07-04 2023-09-29 上海鉴智其迹科技有限公司 一种故障诊断did读写服务处理方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1556641A (zh) * 2004-01-01 2004-12-22 浙江大学 通信协议的构件化实现方法
CN102200913A (zh) * 2011-06-20 2011-09-28 奇瑞汽车股份有限公司 一种基于模型的自动变速箱软件开发平台的分层设计方法
CN102523229A (zh) * 2011-12-23 2012-06-27 大唐移动通信设备有限公司 一种信息的访问方法和设备
CN102611695A (zh) * 2012-01-18 2012-07-25 武汉光庭科技有限公司 通用型saej1939协议栈的设计方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1556641A (zh) * 2004-01-01 2004-12-22 浙江大学 通信协议的构件化实现方法
CN102200913A (zh) * 2011-06-20 2011-09-28 奇瑞汽车股份有限公司 一种基于模型的自动变速箱软件开发平台的分层设计方法
CN102523229A (zh) * 2011-12-23 2012-06-27 大唐移动通信设备有限公司 一种信息的访问方法和设备
CN102611695A (zh) * 2012-01-18 2012-07-25 武汉光庭科技有限公司 通用型saej1939协议栈的设计方法

Also Published As

Publication number Publication date
CN103529821A (zh) 2014-01-22

Similar Documents

Publication Publication Date Title
CN103529821B (zh) 一种基于can总线的诊断协议栈系统的可配置化方法及装置
CN108227675B (zh) 车辆诊断方法、装置、终端和计算机可读存储介质
Tahat et al. Android-based universal vehicle diagnostic and tracking system
CN104865948B (zh) 一种汽车控制器自动诊断装置及方法
CN202735835U (zh) 远程车辆诊断系统及远程诊断系统
CN102346477A (zh) 一种基于autosar故障诊断通信协议的解析方法和设备
CN102750301B (zh) 针对aadl描述的综合化航电系统模型的蓝图生成方法
CN206363155U (zh) 汽车故障远程诊断系统
CN110233768B (zh) 基于uds的can总线测试系统及can总线测试方法
CN105259894B (zh) 机动车诊断仪的检测测试系统的检测方法
CN104038262A (zh) 一种Android平台下诊断技术和蓝牙通信的移动终端商用车监控系统
CN114265386B (zh) 一种基于soa的应用服务诊断架构及方法
CN108255152A (zh) 车辆诊断方法、诊断盒和计算机可读存储介质
CN112559273A (zh) 一种基于uvm的qspi验证系统及方法
CN113433923A (zh) 车辆远程诊断方法、系统、可读存储介质及设备
CN109658542A (zh) 诊断参数数据校验方法、装置、车辆诊断设备和存储介质
CN111781915A (zh) 一种车载多功能电子控制平台装置
CN207274587U (zh) 电动汽车电控系统
Sălcianu et al. A new CAN diagnostic fault simulator based on UDS protocol
TWM458039U (zh) 一種可自動偵測並驅動連結車輛obd ii通訊協定及主動封包傳遞與無線傳輸之車載編譯整合裝置
Oksanen et al. ISO 11783–Standard and its Implementation
CN103631213B (zh) 车辆网络通讯装置及其方法
CN102075370A (zh) 基于虚拟网络及虚拟节点的ecm通讯的标定及验证系统
Park et al. An OSGi based in-vehicle gateway platform architecture for improved sensor extensibility and interoperability
CN114488997A (zh) Ecu刷写的方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant