车辆通用故障诊断协议的研究与开发

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

————————————基金项目基金项目基金项目基金项目::::国家科技支撑计划基金资助项目(2009BADB5B01)作者简介作者简介作者简介作者简介::::刘丽丽(19987-),女,硕士研究生,主研方向:车辆故障诊断,工业通信;徐皑冬,研究员;宋岩,助理研究员;周亚,硕士研究生收稿日期收稿日期收稿日期收稿日期::::2011-09-30修回日期修回日期修回日期修回日期::::2011-12-07E-mail::::liulili@sia.cn车辆通用故障诊断协议的车辆通用故障诊断协议的车辆通用故障诊断协议的车辆通用故障诊断协议的研究与开发研究与开发研究与开发研究与开发刘丽丽刘丽丽刘丽丽刘丽丽1,2,,,,徐皑徐皑徐皑徐皑冬冬冬冬1,2,,,,宋宋宋宋岩岩岩岩1,2,,,,周周周周亚亚亚亚1,2(1.中国科学院研究生院,北京100039;2.中国科学院沈阳自动化研究所,沈阳110016)摘摘摘摘要要要要::::介绍通用诊断协议ISO14229和基于CAN总线的车辆故障诊断协议ISO15765,分析两者之间的关系及ISO15765的体系结构,在此基础上给出ISO15765协议栈总体设计,并描述协议每一层的软件实现。协议栈设计利用分层接口方式,下层向上层提供服务,协议内部功能采用模块化设计。实验结果表明,该协议栈能满足ISO15765规定的标准和一般的故障诊断功能需求。关键词关键词关键词关键词::::ISO15765协议;ISO14229协议;故障诊断;CAN总线;ISO11898协议ResearchandDevelopmentofVehicleUnifiedFaultDiagnosticProtocolLIULi-li1,2,XUAi-dong1,2,SONGYan1,2,ZHOUYa1,2(1.GraduateUniversityofChineseAcademyofSciences,Beijing100039,China;2.ShenyangInstituteofAutomation,ChineseAcademyofSciences,Shenyang110016,China)【【【【Abstract】】】】ISO14299specifyingunifieddiagnosticservicesandCANbasedvehiclefaultdiagnosticprotocolISO15765areintroduced,andtherelationshipbetweenISO14229andISO15765andthearchitectureofISO15765areanalyzed.TheoveralldesignoftheISO15765protocolstackisprovidedinthepaper.ThedesignoftheISO15765protocolstackuseslayeredandinterfacemethod.Lowerlayersprovidesservicestohigherlayers.Modulardesignisadoptedfordevelopinginternaloperation.ExperimentalresultsshowthattheprotocolstacksatisfiesISO15765standardandgeneralfaultdiagnosisrequirements.【【【【Keywords】】】】ISO15765protocol;ISO14229protocol;faultdiagnosis;CANbus;ISO11898protocolDOI:10.3969/j.issn.1000-3428.2012.16.003计算机工程ComputerEngineering第38卷第16期Vol.38No.162012年8月August2012····专栏专栏专栏专栏····文章编号文章编号文章编号文章编号::::1000————3428(2012)16————0009————05文献标识码文献标识码文献标识码文献标识码::::A中图分类号中图分类号中图分类号中图分类号::::TP3931概述概述概述概述为了满足客户对车辆的可靠性、安全性、舒适性和便利性等性能方面的要求,车辆内部控制器、传感器和执行器等电子器件明显增多。这给车辆系统带来了2个重大问题:车内线束增多和故障诊断难度增加。为了减少车身线束及提高各电控单元之间的通信速度,采用串行总线来连接器件。CAN总线是当今自动化领域中最具应用前景的技术之一,可提供高达1Mb/s的数据传送速率,在可靠性、实时性和灵活性方面优势明显,适合测控单元之间的互连。现阶段,CAN总线在汽车电子系统中得到广泛的应用,代表汽车电子控制网络的主流发展趋势[1],基于CAN总线的故障诊断系统将越来越受关注。针对诊断设备和车辆内部电子控制单元(ECU)之间的数据交换,各个汽车公司几乎都制定了相关的标准,导致各个汽车公司之间诊断仪的不通用性。ISO14229[2]是为诊断系统定义通用的需求而发布的,与串行数据链路的种类无关。ISO14229定义了通用诊断服务(UDS),这些诊断服务允许诊断仪控制车辆内部ECU内的诊断功能。ISO14229只定义了应用层的服务。ISO15765[3]是一种基于CAN总线的诊断协议,其实质就是在CAN总线上实现UDS即ISO14229,该协议满足了E-OBD的系统要求,符合现代网络总线系统的发展趋势,将成为未来车辆行业的通用诊断标准。我国的汽车诊断还是比较落后的[4],只有充分理解和掌握诊断协议ISO14229和ISO15765,才能有助于我国车辆诊断技术的发展。本文主要研究和开发了ISO15765协议栈,并对本文所设计的协议栈进行了测试。2ISO15765体系结构体系结构体系结构体系结构ISO15765是基于CAN总线、用于车辆故障诊断的高层协议[5],在CAN总线上实现了UDS(ISO14229),其体系结构如图1所示。ISO15765协议相对于OSI参考模型而言,定义了4层,分别是应用层、网络层、数据链路层和物理层。10计算机工程2012年8月20日图图图图1ISO15765体系结构体系结构体系结构体系结构数据链路层和物理层是由CAN国际标准ISO11898[6]所描述、具有非破坏性的网络仲裁机制,其协议数据单元是CAN数据帧,包含的最大数据长度为8Byte。物理层的物理介质是CAN总线,具有较高的通信速率、传输距离较远、抗电磁干扰能力强等优点。网络层主要是为应用层提供接口,并为长报文(数据长度大于8Byte)的传输提供了分组和重组的功能,由ISO15765-2[7]文档所描述。应用层是由ISO14229和ISO15765-3[8]所描述的,主要是在CAN总线上实现UDS,ISO14229主要定义以下6个方面有关诊断的通用服务:诊断和通信管理功能单元,数据传输服务,储存数据传输功能,输入输出控制功能单元,远程唤醒例程功能单元和上载与下载功能单元。诊断和通信管理功能单元主要是定义有关诊断会话控制、通信参数设定的服务,保证诊断通信过程中的正常工作;数据传输服务单元主要是对整车的参数进行实时监控,有助于故障的诊断;存储数据的传输功能是读取或清除ECU内部故障代码,主要用于故障的诊断;输入输出控制功能单元主要是对车辆ECU的输入输出进行控制,也有助于故障的诊断;远程唤醒例程功能单元主要是可唤醒ECU内部有关诊断的例程,通过对这些例程的启动可有助于诊断的判断;上载与下载功能单元主要是在诊断仪和车辆内部ECU之间进行大量数据通信,上下载数据。3协议栈开发协议栈开发协议栈开发协议栈开发按照ISO15765的系统架构,协议栈的总体软件结构如图2所示。整个协议栈分为3个部分:应用层,网络层和CAN协议部分。各层为上层提供服务。诊断应用用户界面线程1线程2应用层网络层数据链路层应用层调度应用层处理++缓存区缓存区物理层接口CAN(ISO11898)接口发送分组接收重组图图图图2ISO1576协议栈的软件总体设计协议栈的软件总体设计协议栈的软件总体设计协议栈的软件总体设计为了能实时地接收到底层数据,分别为应用层和网络层提供了接收线程和存储数据的缓存区。3.1应用层实现应用层实现应用层实现应用层实现应用层为诊断服务提供了6个服务原语,如图3所示,每个原语的具体含义及本文所提供的接口如表1所示。图图图图3应用层服务原语应用层服务原语应用层服务原语应用层服务原语表表表表1应用层服务原语应用层服务原语应用层服务原语应用层服务原语接口接口接口接口服务原语含义接口函数请求原语(Req)请求某个诊断服务xxx_Req()请求确认原语(Req_con)表示请求报文是否传送到ECU端SendReqCon()确认原语(Con)接收响应数据SendConfirm()指示原语(ind)接收请求数据SendInd()响应原语(resp)发送响应报文xxx_Resp()响应确认原语(resp_con)表示响应报文是否发送到诊断仪端SendRespCon()本文将应用层分为2个模块,分别是应用层调度和应用层处理。(1)应用层调度:主要是为应用层处理模块服务的,作为诊断仪时,根据具体的用户诊断应用调用相关的处理函数,当接收到响应数据时根据报文服务标识符A_PCI判断属于哪种服务的响应,并调用相关的应用处理函数;作为车辆内部ECU时,主要功能是解析请求服务标识符并进行预处理,当接收到来自诊断仪的诊断服务请求时,根据报文服务标识符A_PCI判断是属于哪种服务请求,然后据此来调用相应的应用处理函数,当ECU不支持该服务请求时直接发送负响应到诊断仪端。(2)应用层处理:应用层处理主要是负责处理一些公用的诊断服务,如读取和清除故障诊断信息、开始会话、保持通信连接、安全访问等。作为诊断仪端时,经过应用层调度后,进入诊断请求服务处理,该处理主要是将请求报文组装成相应的请求A_PDU(应用层协议数据单元),即赋予A_PCI相应的服务标识,并根据协议规定的请求报文格式填充各参数,然后发送到网络层,当接收到响应报文时,经过应用层调度后,调用相应的应用层处理函数,该第38卷第16期11刘丽丽,徐皑冬,宋岩,等:车辆通用故障诊断协议的研究与开发处理函数主要是根据协议规定的相应响应服务格式解析各个参数,并将各个参数数据反馈给用户,同时也做一些错误处理,如响应报文格式错误或子功能不支持等错误;作为ECU,应用层处理主要是根据具体的来自诊断仪的服务请求进行处理,并发送相应的响应报文,如接收到的是读取故障信息的请求,则ECU取出存在内部的故障代码,并将这些故障代码信息封装到读取故障信息响应报文中,然后发送到诊断仪端。应用层的软件是基于状态转换来实现的,应用层的状态主要有准备、接收网络层数据、应用层调度和应用层处理,图4为应用层的状态切换。图图图图4应用层状态切换图应用层状态切换图应用层状态切换图应用层状态切换图应用层经初始化后先进入准备状态。作为接收端,当应用层接收线程的事件有信号时,接收来自网络层的数据;接收完数据进入到应用层调度的状态,在此状态中根据接收数据首字节即A_PCI来调度相应的服务处理,进入到应用层处理状态,处理完后,将数据反馈到用户诊断程序,然后又进入到准备状态。作为发送端,诊断程序调用应用层的服务请求,应用层进入应用层调度状态;调度结束后应用层进入应用层处理状态,在此状态中将数据封装成相应的应用层协议数据单元,最后将数据发送到网络层然后又进入到准备状态。3.2网路层实现网路层实现网路层实现网路层实现网络层提供了2个功能:(1)为上层提供服务,向应用层提供服务接口;(2)内部操作。网络层提供给上层的服务是由网络层接口完成的,其定义的4个通信服务原语及本文所提供的接口函数见表2。表表表表2网络层服务原语网络层服务原语网络层服务原语网络层服务原语服务原语含义接口函数请求原语N_USData.req请求发送数据N_USData_Req()确认原语N_USData.con表示

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功