CN101441476A - 一种基于kwp2000的数据链路层的软件实现方法 - Google Patents
一种基于kwp2000的数据链路层的软件实现方法 Download PDFInfo
- Publication number
- CN101441476A CN101441476A CNA2008102201512A CN200810220151A CN101441476A CN 101441476 A CN101441476 A CN 101441476A CN A2008102201512 A CNA2008102201512 A CN A2008102201512A CN 200810220151 A CN200810220151 A CN 200810220151A CN 101441476 A CN101441476 A CN 101441476A
- Authority
- CN
- China
- Prior art keywords
- ecu
- link layer
- data
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000004891 communication Methods 0.000 claims abstract description 20
- 230000005540 biological transmission Effects 0.000 claims abstract description 13
- 238000012423 maintenance Methods 0.000 claims abstract description 5
- 238000003745 diagnosis Methods 0.000 claims description 13
- 238000007689 inspection Methods 0.000 claims description 4
- 230000000737 periodic effect Effects 0.000 claims description 4
- 230000000295 complement effect Effects 0.000 claims description 3
- 238000012795 verification Methods 0.000 claims description 3
- 230000002618 waking effect Effects 0.000 claims description 2
- 238000012545 processing Methods 0.000 abstract description 8
- 238000011161 development Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
Images
Landscapes
- Maintenance And Management Of Digital Transmission (AREA)
Abstract
本发明的目的是提出一种易于开发和维护的基于KWP2000的数据链路层的软件实现方法。该方法关键在于包括如下步骤:A.在开始诊断服务之前,诊断设备对ECU进行初始化,通过ECU的响应获取ECU的源地址、通讯波特率、支持的报文头格式、定时参数信息;B.完成初始化过程后,诊断设备和ECU进行应用层的诊断服务,在诊断服务的请求/响应过程中,诊断设备和ECU必须遵守特定的时序及定时参数。本发明规范了基于K线的KWP2000数据链路层软件实现方法中的时序及定时参数、各种模式及模式间的切换方法、数据发送、接收的流程及处理方式,软件开发者可以根据上述规范进行并行开发,大大提高软件开发效率,并且据此规范所开发出来的软件层次清晰、易于维护。
Description
技术领域
本发明涉及汽车电子技术领域,具体地说是基于KWP2000的数据链路层的软件实现方法。
背景技术
在汽车故障诊断领域,针对诊断设备和汽车ECU之间的数据交换,各大汽车公司几乎都制定了相关的标准和协议。其中,汽车领域广泛使用的是一种车载诊断协议标准KWP2000(Keyword Protocol 2000),该协议实现了一套完整的车载诊断服务。
基于K线的KWP2000协议标准主要包括ISO14230-1~14230-4,其中ISO14230-2规定了KWP2000的数据链路层协议,包括报文结构、初始化过程、通讯连接管理、定时参数和错误处理等内容。基于K线的KWP2000协议的逻辑***非常复杂,并且具有严格的定时和错误处理规范,软件开发如果不采用分层架构,并行开发的思想,不仅要耗费大量的时间和人力,其通用性、完备性、可靠性和可维护性都很难保证。
发明内容
本发明的目的是提出一种易于开发和维护的基于KWP2000的数据链路层的软件实现方法。
本发明的基于KWP2000的数据链路层的软件实现方法,关键在于包括如下步骤: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数据链路层软件实现方法,特别规范了其中的数据链路层与异步串行通信底层驱动模块之间接收与发送数据的处理方式、数据链路层与应用层之间接收与发送数据的处理方式、定时参数和错误处理的实现方式、数据链路层模式的定义方式、数据链路层各种模式的相互切换、数据发送的流程及处理方式和数据接收的流程及处理方式,软件开发者可以根据上述规范进行并行开发,大大提高软件开发效率,并且据此规范所开发出来的软件层次清晰、易于维护。
附图说明
图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 (7)
1、一种基于KWP2000的数据链路层的软件实现方法,其特征在于包括如下步骤:
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之间。
2、根据权利要求1所述的基于KWP2000的数据链路层的软件实现方法,其特征在于在诊断服务的请求/响应过程中,ECU端数据链路层包括空闲模式、接收请求模式和发送响应模式三种模式。
3、根据权利要求2所述的基于KWP2000的数据链路层的软件实现方法,其特征在于ECU端数据链路层在空闲模式下等待接收诊断设备发出的唤醒及建立通信的消息;ECU在发送响应模式下周期性的调度函数把数据逐字节的发送出去;ECU接收请求模式下接收数据。
4、根据权利要求3所述的基于KWP2000的数据链路层的软件实现方法,其特征在于所述空闲模式、发送响应模式及接收请求模式的进入、退出方法如下:a、程序初始化后,在K线通信没有建立起来时一直保持在空闲模式下;b、ECU接收完诊断设备发送的请求后,进入空闲模式,并在P2min时间即25ms后从空闲模式切换到发送响应模式;c、ECU发送响应结束后,进入空闲模式,若进入空闲模式P3min时间即55ms后K线仍通信保持,则进入接收请求模式,否则一直保持在空闲模式下;d、ECU进入接收请求模式4945ms后若没有接收到消息,则进入空闲模式。
5、根据权利要求4所述的基于KWP2000的数据链路层的软件实现方法,其特征在于当ECU发送响应结束后的P3min时间即55ms之内,ECU不接收数据。
6、根据权利要求4所述的基于KWP2000的数据链路层的软件实现方法,其特征在于在数据链路层处于接收请求模式下时,ECU首先设置接收帧的第一个字节标志为TRUE,同时设置接收请求字节间的最大超时;然后根据第一个字节,分析帧的长度,根据帧的长度,在数据接收完毕后,进行帧数据的检查及校验;最后清除接收帧的第一个字节标志,设置数据链路层的模式为空闲模式,设置接收帧完成标志为TRUE。
7、根据权利要求4所述的基于KWP2000的数据链路层的软件实现方法,其特征在于在数据链路层处于发送响应模式下时,ECU通过异步串行通信模块将数据链路层缓冲区的数据逐字节地发送到SCI的数据寄存器,发送完成后,数据链路层的模式设置为空闲模式,清除数据链路层数据缓冲区的闭锁标志和数据链路层面向应用层数据缓冲区的闭锁标志,并设置缓冲区发送成功标志。
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 true CN101441476A (zh) | 2009-05-27 |
CN101441476B 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) |
Cited By (4)
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线诊断方法及*** |
CN104483960A (zh) * | 2014-11-10 | 2015-04-01 | 深圳市元征科技股份有限公司 | 一种汽车诊断通信模块数据收发并行处理的方法 |
CN116048049A (zh) * | 2023-01-18 | 2023-05-02 | 重庆长安汽车股份有限公司 | 一种汽车ecu软件***诊断优化方法、装置、设备及介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1269670C (zh) * | 2003-09-11 | 2006-08-16 | 丁辰 | 多功能车辆实时监控*** |
CN101030863A (zh) * | 2006-03-03 | 2007-09-05 | 上海乐金广电电子有限公司 | 利用无线通信网的汽车诊断***及其方法 |
CN101055228A (zh) * | 2007-05-31 | 2007-10-17 | 上海依波尔汽车电子有限公司 | 基于k线的电控发动机故障诊断*** |
-
2008
- 2008-12-19 CN CN2008102201512A patent/CN101441476B/zh not_active Expired - Fee Related
Cited By (6)
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线诊断方法及*** |
CN104483960A (zh) * | 2014-11-10 | 2015-04-01 | 深圳市元征科技股份有限公司 | 一种汽车诊断通信模块数据收发并行处理的方法 |
CN104483960B (zh) * | 2014-11-10 | 2017-04-19 | 深圳市元征科技股份有限公司 | 一种汽车诊断通信模块数据收发并行处理的方法 |
CN116048049A (zh) * | 2023-01-18 | 2023-05-02 | 重庆长安汽车股份有限公司 | 一种汽车ecu软件***诊断优化方法、装置、设备及介质 |
CN116048049B (zh) * | 2023-01-18 | 2024-05-14 | 重庆长安汽车股份有限公司 | 一种汽车ecu软件***诊断优化方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN101441476B (zh) | 2011-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102023922A (zh) | 汽车电子诊断软件的测试***及方法 | |
CN101441476B (zh) | 一种基于kwp2000的数据链路层的软件实现方法 | |
KR20130021652A (ko) | 복수의 서로 다른 차량 진단 프로토콜을 표준 진단 프로토콜로 변환하는 인터페이스 장치 및 그 방법 | |
CN111443688B (zh) | 基于can总线的汽车诊断服务网络层测试***及方法 | |
CN103023708A (zh) | 通信协议接口的测试方法及*** | |
US5726638A (en) | Method and device for serial communication | |
CN109639548A (zh) | 一种桥接ROS***和CANopen网络实时通信方法 | |
CN109861998A (zh) | 一种基于北斗短报文协议的插件式动态解析***及方法 | |
CN109116832A (zh) | 车辆诊断数据无线通讯方法 | |
CN108427405A (zh) | 一种支持多用户操作的汽车实时诊断代理及其数据处理方法 | |
CA2413509C (en) | Architecture and run-time environment for network filter drivers | |
CN107168725A (zh) | 一种控制器的软件升级方法、装置及*** | |
CN101222385B (zh) | 面向服务的协议仿真***的设计方法及*** | |
CN112965463B (zh) | 远程诊断***及远程诊断方法 | |
CN115657646B (zh) | 一种can控制器的测试方法及装置 | |
CN116709253B (zh) | 一种车载网关及车辆 | |
CN110296010B (zh) | 一种主从ecu下电控制方法及*** | |
CN116991142A (zh) | 基于模块化uds协议的汽车诊断服务方法及*** | |
CN106911546A (zh) | 一种报文传输方法、装置、***及诊断平台 | |
CN115080092A (zh) | 一种软件升级方法、装置及电子设备 | |
CN114780143A (zh) | 基于uvm的can控制器激励序列生成方法、装置和验证平台 | |
CN100548002C (zh) | 永久虚电路状态查询*** | |
US20150237561A1 (en) | Communication system for vehicle-to-environment communication | |
CN113329086B (zh) | 一种端口连接***和方法 | |
CN106647628A (zh) | 一种数控加工过程中g代码执行状态数据的实时采集方法 |
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 |