CN101441476B - 一种基于kwp2000的数据链路层的软件实现方法 - Google Patents

一种基于kwp2000的数据链路层的软件实现方法 Download PDF

Info

Publication number
CN101441476B
CN101441476B CN2008102201512A CN200810220151A CN101441476B CN 101441476 B CN101441476 B CN 101441476B CN 2008102201512 A CN2008102201512 A CN 2008102201512A CN 200810220151 A CN200810220151 A CN 200810220151A CN 101441476 B CN101441476 B CN 101441476B
Authority
CN
China
Prior art keywords
ecu
data
link layer
data link
idle pulley
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.)
Expired - Fee Related
Application number
CN2008102201512A
Other languages
English (en)
Other versions
CN101441476A (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.)
Chery Automobile Co Ltd
Original Assignee
SAIC Chery Automobile Co Ltd
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 SAIC Chery Automobile Co Ltd filed Critical SAIC Chery Automobile Co Ltd
Priority to CN2008102201512A priority Critical patent/CN101441476B/zh
Publication of CN101441476A publication Critical patent/CN101441476A/zh
Application granted granted Critical
Publication of CN101441476B publication Critical patent/CN101441476B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明提出了一种易于开发和维护的基于KWP2000的数据链路层的软件实现方法,该方法针对汽车故障诊断技术领域诊断设备和汽车ECU之间的数据交换,包括如下步骤:A:在开始诊断服务之前,诊断设备对ECU进行初始化,通过ECU的响应获取ECU的源地址、通讯波特率、支持的报文头格式、定时参数信息;B:完成初始化过程后,诊断设备和ECU进行应用层的诊断服务,在诊断服务的请求/响应过程中,诊断设备和ECU必须遵守特定的时序及定时参数。本发明规范了基于K线的KWP2000数据链路层软件实现方法中的时序及定时参数、各种模式及模式间的切换方法、数据发送、接收的流程及处理方式,可以大大提高软件的开发效率,并且使软件层次清晰、易于维护。

Description

一种基于KWP2000的数据链路层的软件实现方法
技术领域
本发明涉及汽车电子技术领域,具体地说是基于KWP2000的数据链路层的软件实现方法。
背景技术
在汽车故障诊断领域,针对诊断设备和汽车ECU之间的数据交换,各大汽车公司几乎都制定了相关的标准和协议。其中,汽车领域广泛使用的是一种车载诊断协议标准KWP2000(Keyword Protocol 2000),该协议实现了一套完整的车载诊断服务。
基于K线的KWP2000协议标准主要包括ISO14230-1~14230-4,其中ISO14230-2规定了KWP2000的数据链路层协议,包括报文结构、初始化过程、通讯连接管理、定时参数和错误处理等内容。基于K线的KWP2000协议的逻辑系统非常复杂,并且具有严格的定时和错误处理规范,软件开发如果不采用分层架构,并行开发的思想,不仅要耗费大量的时间和人力,其通用性、完备性、可靠性和可维护性都很难保证。
发明内容
本发明的目的是提出一种易于开发和维护的基于KWP2000的数据链路层的软件实现方法。
本发明的基于KWP2000的数据链路层的软件实现方法,该方法针对汽车故障诊断技术领域诊断设备和汽车ECU之间的数据交换,关键在于包括如下步骤:A:在开始诊断服务之前,诊断设备对ECU进行初始化,通过ECU的响应获取ECU的源地址、通讯波特率、支持的报文头格式、定时参数信息;B:完成初始化过程后,诊断设备和ECU进行应用层的诊断服务,在诊断服务的请求/响应过程中,诊断设备和ECU必须遵守如下时序及定时参数:a、ECU响应消息字节之间的间隔时间P1小于20ms;b、诊断设备请求结束到ECU开始响应或者两个ECU响应之间的间隔时间P2在25ms到50ms之间;c、ECU响应结束到一条新的诊断设备请求之间的间隔时间P3在55ms到5000ms之间;d、诊断设备请求消息字节之间的间隔时间P4在5ms到20ms之间;在诊断服务的请求/响应过程中,ECU端数据链路层包括空闲模式、接收请求模式和发送响应模式三种模式,ECU端数据链路层在空闲模式下等待接收诊断设备发出的唤醒及建立通信的消息;ECU在发送响应模式下周期性的调度函数把数据逐字节的发送出去;ECU接收请求模式下接收数据;所述空闲模式、发送响应模式及接收请求模式的进入、退出方法如下:a、程序初始化后,在K线通信没有建立起来时一直保持在空闲模式下;b、ECU接收完诊断设备发送的请求后,进入空闲模式,并在P2min时间即25ms后从空闲模式切换到发送响应模式;c、ECU发送响应结束后,进入空闲模式,若进入空闲模式P3min时间即55ms后K线仍通信保持,则进入接收请求模式,否则一直保持在空闲模式下;d、ECU进入接收请求模式4945ms后若没有接收到消息,则进入空闲模式。
当ECU发送响应结束后的P3min时间即55ms之内,ECU不接收数据,以提高通信的抗干扰性能。
在数据链路层处于接收请求模式下时,ECU首先设置接收帧的第一个字节标志为TRUE,同时设置接收请求字节间的最大超时;然后根据第一个字节,分析帧的长度,根据帧的长度,在数据接收完毕后,进行帧数据的检查及校验;最后清除接收帧的第一个字节标志,设置数据链路层的模式为空闲模式,设置接收帧完成标志为TRUE。
在数据链路层处于发送响应模式下时,ECU通过异步串行通信模块将数据链路层缓冲区的数据逐字节地发送到SCI的数据寄存器,发送完成后,数据链路层的模式设置为空闲模式,清除数据链路层数据缓冲区的闭锁标志和数据链路层面向应用层数据缓冲区的闭锁标志,并设置缓冲区发送成功标志。
本发明的提供了一种基于K线的KWP2000数据链路层软件实现方法,该方法针对汽车故障诊断技术领域诊断设备和汽车ECU之间的数据交换,特别规范了其中的数据链路层与异步串行通信底层驱动模块之间接收与发送数据的处理方式、数据链路层与应用层之间接收与发送数据的处理方式、定时参数和错误处理的实现方式、数据链路层模式的定义方式、数据链路层各种模式的相互切换、数据发送的流程及处理方式和数据接收的流程及处理方式,软件开发者可以根据上述规范进行并行开发,大大提高软件开发效率,并且据此规范所开发出来的软件层次清晰、易于维护。
附图说明
图1是基于K线的KWP2000报文结构示意图;
图2是K线诊断服务的时序示意图;
图3是图2中各时序的定时参数表。
具体实施方式
下面结合具体实施例和附图来详细说明本发明。
实施例1:
在开始诊断服务之前,诊断设备对ECU进行初始化,通过ECU的响应获取ECU的源地址、通讯波特率、支持的报文头格式、定时参数信息,如图1所示,ECU所支持的报文头和定时参数信息包含在ECU返回的“关键字”中;完成初始化过程后,诊断设备和ECU进行应用层的诊断服务,在诊断服务的请求/响应过程中,诊断设备和ECU必须遵守如下时序及定时参数:a、ECU响应消息字节之间的间隔时间P1小于20ms;b、诊断设备请求结束到ECU开始响应或者两个ECU响应之间的间隔时间P2在25ms到50ms之间;c、ECU响应结束到一条新的诊断设备请求之间的间隔时间P3在55ms到5000ms之间;d、诊断设备请求消息字节之间的间隔时间P4在5ms到20ms之间(时序及时间参数参考图2和图3)。
程序初始化后,在K线通信没有建立起来时一直保持在空闲模式下;当需要诊断服务时,诊断设备向ECU发送请求,ECU接收完诊断设备发送的请求后,先进入空闲模式,并在P2min时间即25ms后从空闲模式切换到发送响应模式,准备发送数据;ECU发送响应结束后,首先进入空闲模式,若进入空闲模式P3min时间即55ms后K线仍通信保持,则进入接收请求模式接收数据,否则一直保持在空闲模式下;ECU进入接收请求模式4945ms后若没有接收到消息,则重新进入空闲模式。
具体的请求接收及数据发送流程如下:
1、数据发送流程:此发送过程采用周期性调度函数完成,只要满足P1时间间隔在0到20ms之间即可。在数据链路层处于发送响应模式的时候,ECU通过异步串行通信模块每次发送数据链路层缓冲区的数据一个字节到SCI的数据寄存器,为避免数据的覆盖,SCI发送采用查询方式,每发送一个数据,数据链路层数据缓冲区字节索引变量加1,直到此索引值等于数据缓冲区的长度,表明发送响应帧完成。在数据链路层发送响应帧完成后,数据链路层的模式设置为空闲模式,清除数据链路层数据缓冲区闭锁标志,清除数据链路层面向应用层数据缓冲区闭锁标志,设置缓冲区发送成功标志。
2、请求接收流程:接收请求是在异步串行接口底层驱动打开接收中断后,SCI中断服务函数调用数据链路层的回调函数进行的后处理。在空闲模式下,K线通信还没有建立,ECU等待接收诊断设备的唤醒信号和开始通信请求:a、ECU等待接收的唤醒信号是一个低25ms高25ms的跳变信号,初始等待时的波特率为200bit/s,ECU一旦接收到一个“0xF0”字节,则认为成功接收到唤醒信号,此时ECU再重新将波特率设置为10.4Kbit/s;b、ECU成功接收到第一个字节时,设置接收帧的第一个字节标志为TRUE,并同时设置接收请求字节间的最大超时,保存第一个字节到开始通信数据缓冲区,如果这个字节不等于开始通信服务的标志字节即“0x81”,则丢弃此数据;ECU根据收到的第一个字节分析出此帧的长度,并根据此帧的长度,在数据接收完毕后,进行帧数据的检查及校验,若接收的数据没有错误,则向诊断设备发送正响应;最后清除接收帧的第一个字节标志,设置数据链路层的模式为空闲模式,设置接收帧完成标志为TRUE。
ECU通过周期性调度函数,检测是否接收到第一个字节的标志或者完整的一个帧的标志。ECU利用第一个字节的标志来做P4定时参数的监控,查看是否超时;ECU利用完整的一个帧的标志来进行帧的检查,进行从底层SCI的接收缓冲区到数据链路层数据缓冲区的复制,调用应用层请求处理函数。
在接收请求模式下,K线必须已建立通信,否则不作如何处理,数据丢弃。

Claims (4)

1.一种基于KWP2000的数据链路层的软件实现方法,该方法针对汽车故障诊断技术领域诊断设备和汽车ECU之间的数据交换,其特征在于包括如下步骤:A:在开始诊断服务之前,诊断设备对ECU进行初始化,通过ECU的响应获取ECU的源地址、通讯波特率、支持的报文头格式、定时参数信息;B:完成初始化过程后,诊断设备和ECU进行应用层的诊断服务,在诊断服务的请求/响应过程中,诊断设备和ECU必须遵守如下时序及定时参数:a、ECU响应消息字节之间的间隔时间P1小于20ms;b、诊断设备请求结束到ECU开始响应或者两个ECU响应之间的间隔时间P2在25ms到50ms之间;c、ECU响应结束到一条新的诊断设备请求之间的间隔时间P3在55ms到5000ms之间;d、诊断设备请求消息字节之间的间隔时间P4在5ms到20ms之间;在诊断服务的请求/响应过程中,ECU端数据链路层包括空闲模式、接收请求模式和发送响应模式三种模式,ECU端数据链路层在空闲模式下等待接收诊断设备发出的唤醒及建立通信的消息;ECU在发送响应模式下周期性的调度函数把数据逐字节的发送出去;ECU接收请求模式下接收数据;所述空闲模式、发送响应模式及接收请求模式的进入、退出方法如下:a、程序初始化后,在K线通信没有建立起来时一直保持在空闲模式下;b、ECU接收完诊断设备发送的请求后,进入空闲模式,并在P2min时间即25ms后从空闲模式切换到发送响应模式;c、ECU发送响应结束后,进入空闲模式,若进入空闲模式P3min时间即55ms后K线仍通信保持,则进入接收请求模式,否则一直保持在空闲模式下;d、ECU进入接收请求模式4945ms后若没有接收到消息,则进入空闲模式。
2.根据权利要求1所述的基于KWP2000的数据链路层的软件实现方法,其特征在于当ECU发送响应结束后的P3min时间即55ms之内,ECU不接收数据。
3.根据权利要求1所述的基于KWP2000的数据链路层的软件实现方法,其特征在于在数据链路层处于接收请求模式下时,ECU首先设置接收帧的第一个字节标志为TRUE,同时设置接收请求字节间的最大超时;然后根据第一个字节,分析帧的长度,根据帧的长度,在数据接收完毕后,进行帧数据的检查及校验;最后清除接收帧的第一个字节标志,设置数据链路层的模式为空闲模式,设置接收帧完成标志为TRUE。
4.根据权利要求1所述的基于KWP2000的数据链路层的软件实现方法,其特征在于在数据链路层处于发送响应模式下时,ECU通过异步串行通信模块将数据链路层缓冲区的数据逐字节地发送到SCI的数据寄存器,发送完成后,数据链路层的模式设置为空闲模式,清除数据链路层数据缓冲区的闭锁标志和数据链路层面向应用层数据缓冲区的闭锁标志,并设置缓冲区发送成功标志。
CN2008102201512A 2008-12-19 2008-12-19 一种基于kwp2000的数据链路层的软件实现方法 Expired - Fee Related CN101441476B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008102201512A CN101441476B (zh) 2008-12-19 2008-12-19 一种基于kwp2000的数据链路层的软件实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008102201512A CN101441476B (zh) 2008-12-19 2008-12-19 一种基于kwp2000的数据链路层的软件实现方法

Publications (2)

Publication Number Publication Date
CN101441476A CN101441476A (zh) 2009-05-27
CN101441476B true CN101441476B (zh) 2011-05-11

Family

ID=40725938

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008102201512A Expired - Fee Related CN101441476B (zh) 2008-12-19 2008-12-19 一种基于kwp2000的数据链路层的软件实现方法

Country Status (1)

Country Link
CN (1) CN101441476B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101602358A (zh) * 2009-06-18 2009-12-16 奇瑞汽车股份有限公司 一种基于aes128加密算法的发动机防盗认证方法
CN102830696A (zh) * 2012-09-07 2012-12-19 普华基础软件股份有限公司 兼容autosar的k线诊断方法及系统
CN104483960B (zh) * 2014-11-10 2017-04-19 深圳市元征科技股份有限公司 一种汽车诊断通信模块数据收发并行处理的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1522895A (zh) * 2003-09-11 2004-08-25 辰 丁 多功能车辆实时监控系统(gsm/gprs)
CN101030863A (zh) * 2006-03-03 2007-09-05 上海乐金广电电子有限公司 利用无线通信网的汽车诊断系统及其方法
CN101055228A (zh) * 2007-05-31 2007-10-17 上海依波尔汽车电子有限公司 基于k线的电控发动机故障诊断系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1522895A (zh) * 2003-09-11 2004-08-25 辰 丁 多功能车辆实时监控系统(gsm/gprs)
CN101030863A (zh) * 2006-03-03 2007-09-05 上海乐金广电电子有限公司 利用无线通信网的汽车诊断系统及其方法
CN101055228A (zh) * 2007-05-31 2007-10-17 上海依波尔汽车电子有限公司 基于k线的电控发动机故障诊断系统

Also Published As

Publication number Publication date
CN101441476A (zh) 2009-05-27

Similar Documents

Publication Publication Date Title
CN103604612A (zh) 一种车辆远程诊断系统和诊断方法
WO2019174504A1 (zh) 逻辑通道的建立方法、装置和交通工具通信接口vci
CN106200567A (zh) 提高通信速率的can通信方法和数据帧结构
CN102780713A (zh) 车辆诊断系统及方法
CN101441476B (zh) 一种基于kwp2000的数据链路层的软件实现方法
KR20130021652A (ko) 복수의 서로 다른 차량 진단 프로토콜을 표준 진단 프로토콜로 변환하는 인터페이스 장치 및 그 방법
CN101702836A (zh) 一种拨号服务创建的方法和装置
CN109639548A (zh) 一种桥接ROS系统和CANopen网络实时通信方法
CN102611695A (zh) 通用型saej1939协议栈的设计方法
CN107168725A (zh) 一种控制器的软件升级方法、装置及系统
CN112965463B (zh) 远程诊断系统及远程诊断方法
CN101222385B (zh) 面向服务的协议仿真系统的设计方法及系统
CN115657646B (zh) 一种can控制器的测试方法及装置
CN111443688B (zh) 基于can总线的汽车诊断服务网络层测试系统及方法
CN108737342B (zh) 一种协议解析方法及装置
CN116991142A (zh) 基于模块化uds协议的汽车诊断服务方法及系统
CN106911546A (zh) 一种报文传输方法、装置、系统及诊断平台
CN114779740A (zh) 一种车辆故障远程诊断系统及方法
CN116319499A (zh) 车辆的诊断方法、装置、电子设备及存储介质
CN104253727B (zh) 车辆lin网络的诊断方法及其系统
CN115080092A (zh) 一种软件升级方法、装置及电子设备
CN114780143A (zh) 基于uvm的can控制器激励序列生成方法、装置和验证平台
US20150237561A1 (en) Communication system for vehicle-to-environment communication
CN101478448A (zh) 以太网交换设备的控制方法及装置
CN116709253B (zh) 一种车载网关及车辆

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110511

Termination date: 20201219