发明内容
本申请的主要目的在于提供一种基于UDS服务的报文收发控制方法、装置、车辆及计算机存储介质,旨在使用UDS服务控制车辆ECU进行某条或多条特定报文的发送或接收。
为实现上述目的,本申请提供一种基于UDS服务的报文收发控制方法,所述基于UDS服务的报文收发控制方法应用于车辆,所述基于UDS服务的报文收发控制方法包括:
根据预设的请求配置参数生成对应的UDS服务请求,其中,所述服务请求中封装有服务控制类型和待处理报文的特定报文ID;
将所述UDS服务请求下发至所述车辆的ECU,以控制所述ECU根据所述服务控制类型和所述特定报文ID恢复或者禁止对所述待处理报文的收发。
可选地,在所述将所述UDS服务请求下发至所述车辆的ECU的步骤之前,所述方法还包括:
在预设驻车状态下确定所述ECU是否符合报文处理条件,其中,所述报文处理条件为所述ECU在当前时刻未执行对车辆进行控制的关键操作;
所述将所述UDS服务请求下发至所述车辆的ECU的步骤,包括:
在确定所述ECU符合所述报文处理条件时,通过与所述ECU进行通信连接的汽车总线,将所述UDS服务请求下发至所述ECU。
可选地,在所述将所述UDS服务请求下发至所述车辆的ECU的步骤之后,所述方法还包括:
监测所述ECU针对所述UDS服务请求反馈的响应数据;
若所述响应数据为否定响应码,则根据所述否定响应码生成新的UDS服务请求;
将所述新的UDS服务请求重新下发至所述车辆的ECU,以控制所述ECU根据所述新的UDS服务请求恢复或者禁止对所述待处理报文的收发。
此外,为实现上述目的,本申请还提供一种基于UDS服务的报文收发控制方法,所述基于UDS服务的报文收发控制方法应用于如上任一项所述方法中所述车辆的ECU,所述基于UDS服务的报文收发控制方法包括:
接收所述车辆下发的UDS服务请求;
解析所述UDS服务请求以确定所述UDS服务请求中封装的服务控制类型和待处理报文的特定报文ID;
根据所述服务控制类型和所述特定报文ID,恢复或者禁止对所述待处理报文的收发。
可选地,所述解析所述UDS服务请求以确定所述UDS服务请求中封装的服务控制类型的步骤,包括:
解析所述UDS服务请求以提取所述UDS服务请求中各报文字节的字节取值;
根据各所述报文字节中子功能字节的字节取值确定所述UDS服务请求中封装的服务控制类型。
可选地,所述解析所述UDS服务请求以确定所述UDS服务请求中封装的待处理报文的特定报文ID的步骤,包括:
根据各所述报文字节中通讯类型字节的字节取值,在各所述报文字节中确定待处理报文的特定报文ID字节;
根据所述特定报文ID字节的字节取值确定所述UDS服务请求中封装的待处理报文的特定报文ID。
可选地,所述方法还包括:
对所述车辆下发的UDS服务请求逐项进行报文检查;
若当前项报文检查对应的报文检查结果为未通过,则生成当前项报文检查对应的否定响应码,并将所述否定响应码反馈至所述车辆,以供所述车辆根据所述否定响应码生成新的UDS服务请求;
若当前项报文检查对应的报文检查结果为通过,则继续进行下一项报文检查直至各项检查结束。
此外,为实现上述目的,本申请还提供一种基于UDS服务的报文收发控制装置,所述基于UDS服务的报文收发控制装置应用于车辆,所述基于UDS服务的报文收发控制装置包括:
请求生成模块,用于根据预设的请求配置参数生成对应的UDS服务请求,其中,所述服务请求中封装有服务控制类型和待处理报文的特定报文ID;
请求下发模块,用于将所述UDS服务请求下发至所述车辆的ECU,以供所述ECU根据所述服务控制类型和所述特定报文ID恢复或者禁止对所述待处理报文的收发;
所述基于UDS服务的报文收发控制装置还应用于所述车辆的ECU,所述装置还包括:
请求接收模块,用于接收所述车辆下发的UDS服务请求;
请求解析模块,用于解析所述UDS服务请求以确定所述UDS服务请求中封装的服务控制类型和待处理报文的特定报文ID;
请求响应模块,用于根据所述服务控制类型和所述特定报文ID,恢复或者禁止对所述待处理报文的收发。
其中,所述基于UDS服务的报文收发控制装置的各个功能模块各自在运行时可实现如上述任一项的基于UDS服务的报文收发控制方法的步骤。
此外,为实现上述目的,本申请还提供一种车辆,所述车辆包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的所述基于UDS服务的报文收发控制方法的程序,所述基于UDS服务的报文收发控制方法的程序被处理器执行时可实现如上述的基于UDS服务的报文收发控制方法的步骤。
本申请还提供一种计算机存储介质,所述计算机存储介质上存储有实现上述基于UDS服务的报文收发控制方法的程序,所述基于UDS服务的报文收发控制方法的程序被处理器执行时实现如上述的基于UDS服务的报文收发控制方法的步骤。
此外,为实现上述目的,本申请还提供一种计算机程序产品、包括计算机程序,该计算机程序被处理器执行时实现上述的基于UDS服务的报文收发控制方法的步骤。
本申请提供的一种基于UDS服务的报文收发控制方法、装置、车辆及计算机存储介质,通过车辆根据预设的请求配置参数生成对应的UDS服务请求,其中,所述服务请求中封装有服务控制类型和待处理报文的特定报文ID;然后将所述UDS服务请求下发至所述车辆的ECU,以供所述ECU根据所述服务控制类型和所述特定报文ID恢复或者禁止对所述待处理报文的收发;而车辆的ECU则在接收所述车辆下发的UDS服务请求之后,解析所述UDS服务请求以确定所述UDS服务请求中封装的服务控制类型和待处理报文的特定报文ID;从而根据所述服务控制类型和所述特定报文ID,恢复或者禁止对所述待处理报文的收发。
如此,本申请通过生成封装有服务控制类型和待处理报文的特定报文ID的UDS服务请求,从而车辆的ECU即可通过解析该UDS服务请求以确定服务控制类型和特定报文ID,进而响应请求以仅针对该特定报文ID指向的待处理报文执行相应功能操作。即,本申请技术方案实现了使用UDS服务控制车辆ECU进行某条或多条特定报文的发送或接收。
进而,在进行实车测试时,通过本申请技术方案来使用UDS服务控制车辆ECU进行某条或多条特定报文的发送或接收,能够极大程度上确保模拟测试环境的稳定(车辆ECU在模拟发送报文到汽车总线时仅发送模拟报文,从而令测试避免了ECU发送原始报文的影响),并且,采用本申请技术方案还可以通过在实车测试环境中,定义特定报文ID以指定ECU的待处理报文,从而模拟极端环境。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
需要说明的是,UDS诊断协议是ISO(International Organization forStandardization,国际标准化组织)15765和ISO 14229定义的一种汽车通用诊断协议,位于OSI模型(Open System Interconnection Reference Model,开放式系统互联通信参考模型)中的应用层,它可在不同的汽车总线上实现。UDS本质上是一系列的服务,共包含6大类26种,每种服务都有自己独立的ID,即SID。
其中,SID为0x28的服务用于通信控制,该服务用于“打开/关闭”一个ECU的某些报文(常规应用报文和网络管理应用报文)的发送或接收。此服务控制的是一类报文的发送和接收,这类报文要么是常规应用报文,要么是网络管理应用报文。若想控制某条或多条特定报文的发送或接收,则不能实现。
此外,实车环境测试时,经常需要用CANoe(一种车载网络仿真测试分析软件)模拟某个ECU的报文,且只改变该报文的某个信号值,以达到实车测试时需要具备的前提条件。但模拟报文发送到CAN(Controller Area Network,控制器局域网络)总线的同时,该ECU自己本身也在发送该报文,导致CAN总线上存在2帧ID相同的报文(一帧是模拟报文,另一帧是真实报文),测试报文存在冲突。如果能实现让ECU禁止发送真实报文,就解决了ID冲突的问题。
综上所述,业内急需一种实现让ECU控制特定报文收发的UDS服务方案,用于控制某条或多条特定报文的发送或接收。
基于上述现象和构思,本申请实施例提供一种基于UDS服务的报文收发控制方法,通过提供一种实现让ECU控制特定报文收发的UDS服务方案,此UDS服务的SID为0x29,来控制某条或多条特定报文的发送或接收。即,令ECU收到的诊断请求的SID为0x29时,根据该诊断请求中的参数(控制类型、通讯类型、特定报文的ID)“打开/关闭”特定报文的发送或接收。
在本申请基于UDS服务的报文收发控制方法的一实施例中,本申请通过生成封装有服务控制类型和待处理报文的特定报文ID的UDS服务请求,从而车辆的ECU即可通过解析该UDS服务请求以确定服务控制类型和特定报文ID,进而响应请求以仅针对该特定报文ID指向的待处理报文执行相应功能操作。即,本申请技术方案实现了使用UDS服务控制车辆ECU进行某条或多条特定报文的发送或接收。
进而,在进行实车测试时,通过本申请技术方案来使用UDS服务控制车辆ECU进行某条或多条特定报文的发送或接收,能够极大程度上确保模拟测试环境的稳定(车辆ECU在模拟发送报文到汽车总线时仅发送模拟报文,从而令测试避免了ECU发送原始报文的影响),并且,采用本申请技术方案还可以通过在实车测试环境中,定义特定报文ID以指定ECU的待处理报文,从而模拟极端环境。
基于上述本申请基于UDS服务的报文收发控制方法的整体构思,提出本申请基于UDS服务的报文收发控制方法的第一实施例。
请参照图1,图1为本申请基于UDS服务的报文收发控制方法第一实施例的流程示意图。需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
此外,在本实施例中,本申请基于UDS服务的报文收发控制方法的执行主体可以是车辆本身、车辆内部集成装配的数据处理终端或者车辆外接的终端设备。为方便阐述和阅读理解,后文均以车辆作为执行主体来阐述本申请基于UDS服务的报文收发控制方法的第一实施例。
如图1所示,在本申请基于UDS服务的报文收发控制方法的第一实施例中,本申请基于UDS服务的报文收发控制方法具体包括如下步骤:
步骤S10,根据预设的请求配置参数生成对应的UDS服务请求,其中,所述服务请求中封装有服务控制类型和待处理报文的特定报文ID;
在本实施例中,车辆在控制自身所配置一个或者多个ECU进行发送报文或者接收报文的报文处理过程中,首先根据预设的请求配置参数,生成当前控制该一个或者多个ECU进行报文处理的UDS服务请求,由于需要控制该一个或者多个ECU仅针对常规应用报文或者网络管理应用报文中,某一条或者多条进行处理,车辆即在生成UDS服务请求时即在该请求中封装了控制ECU在当前进行何种报文处理的服务控制类型,和控制ECU在当前进行处理的某一条或者多条待处理报文的特定报文ID。
需要说明的是,在本实施例中,预设的请求配置参数为车辆通过自身提供的一个或者多个数据端口进行数据采集得到。示例性地,作为一种可行的实现方式,车辆可通过面向工作人员或者车辆用户提供的人机交互数据端口,采集工作人员或者用户自主执行参数配置操作进行定义的一项或者多项请求配置参数。或者,作为另一种可行的实现方式,车辆还可以通过从自身提供的与本地或者云端的数据库连接的端口,从该数据库当中直接提取得到当前用于生成UDS服务请求的请求配置参数,当然,该数据库中存储的请求配置参数,可以是工作人员或者用户预先执行相应操作以定义生成并进行存储的。
此外,需要说明的是,在本实施例中,车辆采集得到的上述请求配置参数包括但不限于:请求服务ID、子功能、通讯类型和特定报文ID。
其中,请求服务ID具体可以为:0x29;特定报文ID具体可以为16进制数据字符,如0x00—0xFF;
此外,子功能根据取值的不同,可定义控制ECU针对待处理报文进行不同的控制(发送/接收)情况,子功能具体可以包括如下表1所示的各种参数定义:
表1:子功能参数定义
此外,通讯类型用于表明要控制ECU进行处理的特定报文的类型,通讯类型具体可以包括如下表2所示的各种参数定义:
| 取值 |
描述 |
备注 |
| 0x00 |
标准帧 |
此值表示要控制的特定报文为标准帧 |
| 0x01 |
扩展帧 |
此值表示要控制的特定报文为扩展帧 |
表2:通讯类型参数定义
需要说明的是,在本实施例中,通讯类型为相比于现有UDS服务请求报文新增加的参数,该参数具体可以由车辆在生成UDS服务请求时加入到请求报文中的DATA(数据)部分的第3个字节,且,如果是该通讯类型为“标准帧”(标准帧的最高位补0x0,构成2B的标准帧ID),则DATA部分的第4字节和第5字节是特定报文ID,而如果该通讯类型是扩展帧,则DATA部分的第4字节至7字节均是特定报文ID。
在本实施例中,车辆在采集得到上述的各项请求配置参数之后,即可基于该各项配置参数各自的参数定义,生成如下表3所示用于控制车辆的一个或者多个ECU针对特定的一条或者多条报文进行恢复收发或者禁止收发的UDS服务请求:
表3
其中,该请求报文中,若第3字节取值为0x00,则请求报文中的第4、5字节为特定报文ID,第6、7字节用0x00填充;而若第3字节取值为0x01,则请求报文中的第4至7字节为特定报文ID。
步骤S20,将所述UDS服务请求下发至所述车辆的ECU,以控制所述ECU根据所述服务控制类型和所述特定报文ID恢复或者禁止对所述待处理报文的收发。
在本实施例中,车辆在按照上述过程生成UDS服务请求的报文之后,进一步在确定当前要控制的车辆的一个或者多个ECU满足执行该UDS服务请求的报文处理条件时,立即将该UDS服务请求通过自身所配置汽车总线下发至该一个或者多个ECU,从而控制该一个或者多个ECU立即根据该UDS服务请求中封装好的服务控制类型和特定报文ID,恢复对待处理报文的接收或者发送,或者,禁止对该待处理报文的接收或者发送。
可选地,在一种可行的实施例中,在上述的步骤S20之前,本申请基于UDS服务的报文收发控制方法,还可以包括:
步骤S30,在预设驻车状态下确定所述ECU是否符合报文处理条件,其中,所述报文处理条件为所述ECU在当前时刻未执行对车辆进行控制的关键操作;
需要说明的是,在本实施例中,预设驻车状态可以为:车辆当前时刻的行驶速度为“0”,且,车辆的主推进系统在当前时刻未激活。此外,上述的报文处理条件为ECU在当前时刻未执行对车辆进行控制的关键操作。
在本实施例中,车辆在生成上述的UDS服务请求之后,进一步针对自身状态进行检测,从而在检查确定当前时刻的行驶速度为“0”且车辆的主推进系统在当前时刻也未激活,以确定自身是处于预设驻车状态时,再进一步检测当前要控制的一个或者多个ECU,在当前是否有执行对车辆运行进行控制的关键操作(如控制采集并传递车辆实时行驶速度、控制监测车辆行驶过程中发动机和/或者电机的实时运行温度等)。
基于此,上述的“将所述UDS服务请求下发至所述车辆的ECU”的步骤,可以包括:
在确定所述ECU符合所述报文处理条件时,通过与所述ECU进行通信连接的汽车总线,将所述UDS服务请求下发至所述ECU。
在本实施例中,车辆在进一步检测要控制的一个或者多个ECU,在当前是否有执行对车辆运行进行控制的关键操作的过程中,一旦检测到该一个或者多个ECU在当前没有执行该关键操作,车辆则确定当前该一个或者多个ECU是符合报文处理条件的,从而,车辆便立即将已经生成的UDS服务请求,通过自身所配置的汽车总线(如CAN总线)传递至该一个或者多个ECU,以供该一个或者多个ECU在接收到UDS服务请求之后予以响应。
可选地,在另一种可行的实施例中,在上述的步骤S20,将所述UDS服务请求下发至所述车辆的ECU,以控制所述ECU根据所述服务控制类型和所述特定报文ID恢复或者禁止对所述待处理报文的收发的步骤之后,本申请基于UDS服务的报文收发控制方法,还可以包括:
步骤S40,监测所述ECU针对所述UDS服务请求反馈的响应数据;
步骤S50,若所述响应数据为否定响应码,则根据所述否定响应码生成新的UDS服务请求;
步骤S60,将所述新的UDS服务请求重新下发至所述车辆的ECU,以控制所述ECU根据所述新的UDS服务请求恢复或者禁止对所述待处理报文的收发。
在本实施例中,车辆在将上述的UDS服务请求下发至ECU以控制该ECU响应请求的过程中,ECU无论是成功响应该请求以针对上述特定报文ID所指向一条或者多条待处理报文执行相应处理,还是因报文错误而未成功响应该请求,该ECU均会向车辆反馈对应的响应数据。即,ECU在成功响应请求以针对特定的待处理报文进行恢复收发或者禁止收发之后,ECU即向车辆反馈肯定响应报文,而ECU在响应该请求失败的情况下,则仍向车辆发送相应的否定响应码。
如此,车辆在将UDS服务请求下发至ECU之后即进入针对该ECU所反馈响应数据进行监测的状态,并确定在该响应数据的类型是肯定响应报文还是否定响应码,然后,若车辆监测到ECU反馈的响应数据是否定响应码,则车辆立即按照该否定响应码对应的描述,针对当前已经生成的UDS服务请求进行调整从而生成新的UDS服务请求,最后,车辆重新按照上述步骤S20的过程将该新的UDS服务请求再次重新下发至ECU,从而控制该ECU继续对该请求予以响应来恢复或者禁止对上述待处理报文的收发。
需要说明的是,在本实施例中,ECU向车辆反馈的肯定响应报文具体可以如下表4所示:
| 字节 |
描述 |
取值 |
| #1 |
肯定响应服务ID |
0x69 |
| #2 |
子功能=[控制类型] |
0x00—0x03 |
表4:肯定响应格式
此外,在本实施例中,ECU向车辆反馈的否定响应码的具体种类可以包括如下表5所示的各种类型。
表5:否定响应码
在本实施例中,本申请基于UDS服务的报文收发控制方法通过车辆在控制自身所配置一个或者多个ECU进行发送报文或者接收报文的报文处理过程中,首先根据预设的请求配置参数,生成当前控制该一个或者多个ECU进行报文处理的UDS服务请求,由于需要控制该一个或者多个ECU仅针对常规应用报文或者网络管理应用报文中,某一条或者多条进行处理,车辆即在生成UDS服务请求时即在该请求中封装了控制ECU在当前进行何种报文处理的服务控制类型,和控制ECU在当前进行处理的某一条或者多条待处理报文的特定报文ID;车辆在按照上述过程生成UDS服务请求的报文之后,进一步在确定当前要控制的车辆的一个或者多个ECU满足执行该UDS服务请求的报文处理条件时,立即将该UDS服务请求通过自身所配置汽车总线下发至该一个或者多个ECU,从而控制该一个或者多个ECU立即根据该UDS服务请求中封装好的服务控制类型和特定报文ID,恢复对待处理报文的接收或者发送,或者,禁止对该待处理报文的接收或者发送。
如此,本申请通过生成封装有服务控制类型和待处理报文的特定报文ID的UDS服务请求,从而车辆的ECU即可通过解析该UDS服务请求以确定服务控制类型和特定报文ID,进而响应请求以仅针对该特定报文ID指向的待处理报文执行相应功能操作。即,本申请技术方案实现了使用UDS服务控制车辆ECU进行某条或多条特定报文的发送或接收。
进而,在进行实车测试时,通过本申请技术方案来使用UDS服务控制车辆ECU进行某条或多条特定报文的发送或接收,能够极大程度上确保模拟测试环境的稳定(车辆ECU在模拟发送报文到汽车总线时仅发送模拟报文,从而令测试避免了ECU发送原始报文的影响),并且,采用本申请技术方案还可以通过在实车测试环境中,定义特定报文ID以指定ECU的待处理报文,从而模拟极端环境。
进一步地,基于上述本申请基于UDS服务的报文收发控制方法的第一实施例,提出本申请基于UDS服务的报文收发控制方法的第二实施例。在本实施例中,本申请基于UDS服务的报文收发控制方法的执行主体是车辆的ECU。
在本实施例中,本申请基于UDS服务的报文收发控制方法,还可以包括:
步骤A,接收所述车辆下发的UDS服务请求;
步骤B,解析所述UDS服务请求以确定所述UDS服务请求中封装的服务控制类型和待处理报文的特定报文ID;
步骤C,根据所述服务控制类型和所述特定报文ID,恢复或者禁止对所述待处理报文的收发。
在本实施例中,车辆的ECU在接收到上述车辆通过请求配置参数生成的UDS服务请求之后,立即针对该UDS服务请求进行解析,从而自该UDS服务请求中,确定该UDS服务请求中封装的服务控制类型和当前ECU需要进行处理的一条或者多条特定的待处理报文的特定报文ID。之后,ECU即可进一步根据该服务控制类型和该特定报文ID,恢复对待处理报文的接收或者发送,或者,禁止对该待处理报文的接收或者发送。
可选地,在一种可行的实施例中,上述的步骤B中“解析所述UDS服务请求以确定所述UDS服务请求中封装的服务控制类型”的步骤,可以包括:
步骤B1,解析所述UDS服务请求以提取所述UDS服务请求中各报文字节的字节取值;
步骤B2,根据各所述报文字节中子功能字节的字节取值确定所述UDS服务请求中封装的服务控制类型。
在本实施例中,由于车辆在生成上述的UDS服务请求时,在该请求报文的DATA部分的某一个字节中封装了子功能参数,因此,ECU在解析该UDS服务请求时,首先解析确定出该UDS服务请求中的多个报文字节,之后,进一步从该多个报文字节当中确定出封装了该子功能参数的子功能字节,进而,基于该子功能字节的字节取值,确定出UDS服务请求中封装的服务控制类型。
示例性地,在本实施例中,假定车辆在根据上述的请求配置参数生成UDS服务请求时,将上述表1所示“表示恢复指定通讯类型报文的接收”这一子功能参数的取值“0x00”,添加在了该UDS服务请求中的第二字节,则ECU在接收到该UDS服务请求之后,即可从该UDS服务请求中的第二字节——子功能字节中,基于该子功能字节对应的取值“0x00”,确定当前所接收到的UDS服务请求中封装的服务控制类型为“恢复指定通讯类型报文的接收”。
可选地,在一种可行的实施例中,上述的步骤B中“解析所述UDS服务请求以确定所述UDS服务请求中封装的特定报文ID”的步骤,可以包括:
步骤B3,根据各所述报文字节中通讯类型字节的字节取值,在各所述报文字节中确定待处理报文的特定报文ID字节;
步骤B4,根据所述特定报文ID字节的字节取值确定所述UDS服务请求中封装的待处理报文的特定报文ID。
在本实施例中,由于车辆在生成上述的UDS服务请求时,在该请求报文的DATA部分的某一个字节中添加了通信类型参数,且,由于不同的通信类型表示该UDS服务请求报文DATA部分的不同字节代表特定报文ID,因此,ECU在解析该UDS服务请求时,首先从该UDS服务请求中的多个报文字节中,确定封装了该通讯类型参数的通讯类型字节,然后基于该通讯类型字节的字节取值,进一步从该多个报文字节当中确定出封装了特定报文ID参数的特定报文ID字节,进而,基于该子字节的字节取值确定出UDS服务请求中封装的特定报文ID字节。
示例性地,在本实施例中,假定车辆在根据上述的请求配置参数生成UDS服务请求时,将上述表2所示“表示要控制的特定报文为标准帧”这一通讯类型参数的取值“0x00”,添加在了该UDS服务请求中的第三字节,则ECU在接收到该UDS服务请求之后,即可从该UDS服务请求中的第三字节——通讯类型字节中,基于该子功能字节对应的取值“0x00”,确定当前所接收到的UDS服务请求中报文DATA部分的第4字节和第5字节为特定报文ID字节,之后,ECU即可读取该第4字节和第5字节的字节取值,确定当前所接收到的UDS服务请求中封装的待处理报文的特定报文ID。
可选地,在一种可行的实施例中,假定车辆的ECU正在收发的报文类型为标准帧,发送的报文ID为:0x713、0x7DE、0x7EE和0x7DF。而此时若车辆需要控制ECU禁止发送0x713这条特定报文,则车辆可基于需求具体生成如下表6所示格式的UDS服务请求。
表6
之后,ECU在针对该UDS服务请求予以响应并成功禁止发送0x713这条特定报文之后,立即向车辆反馈如下表7所示格式的肯定响应报文。
| 字节 |
描述 |
取值 |
| #1 |
肯定响应服务ID |
0x69 |
| #2 |
子功能=[控制类型] |
0x03 |
表7
可选地,在一种可行的实施例中,假定车辆的ECU正在收发的报文类型为扩展帧,且具体接收的报文ID为:0x18DBF19Fx、0x18FF779Fx、0x18FF639Fx和0x18EA009Fx。而此时若车辆需要控制ECU接收0x18EA009Fx这条报文,则车辆可基于需求具体生成如下表8所示格式的UDS服务请求。
| 字节 |
参数名称 |
取值及含义 |
| #1 |
请求服务ID |
0x29 |
| #2 |
子功能=[控制类型] |
0x02 |
| #3 |
通讯类型 |
0x01 |
| #4 |
特定报文ID高字节 |
0x18 |
| #5 |
特定报文ID中高字节 |
0xEA |
| #6 |
特定报文ID中低字节 |
0x00 |
| #7 |
特定报文ID低字节 |
0x9F |
表8
之后,ECU在针对该UDS服务请求予以响应并成功禁止接收0x18EA009Fx这条特定报文之后,则立即向车辆反馈如下表9所示格式的肯定响应报文。
表9
可选地,在另一种可行的本实施例中,本申请基于UDS服务的报文收发控制方法,还可以包括:
步骤D,对所述车辆下发的UDS服务请求逐项进行报文检查;
步骤E,若当前项报文检查对应的报文检查结果为未通过,则生成当前项报文检查对应的否定响应码,并将所述否定响应码反馈至所述车辆,以供所述车辆根据所述否定响应码生成新的UDS服务请求;
步骤F,若当前项报文检查对应的报文检查结果为通过,则继续进行下一项报文检查直至各项检查结束。
如图2所示的应用流程,在本实施例中,ECU在接收到车辆下发的UDS服务请求,并针对该UDS服务请求进行响应的过程中,ECU还进一步针对该UDS服务请求逐项进行报文长度、子功能、参数以及子功能执行条件等报文检查。
如此,ECU在进行任意一项检查对应的报文检查结果为未通过,则ECU立即生成当前项报文检查对应的否定响应码,然后,ECU则将该否定响应码通过汽车总线反馈至车辆,如此,车辆即可基于该否定响应码来执行上述步骤S40至步骤S60的过程以生成新的UDS服务请求。
此外,如果ECU在进行任意一项检查对应的报文检查结果为通过,则ECU立即继续进行下一项报文检查,如此,直到全部报文检查均通过之后,即可立即开始按照该UDS服务请求中的封装好的服务控制类型和特定报文ID,恢复对待处理报文的接收或者发送,或者,禁止对该待处理报文的接收或者发送。
在本实施例中,车辆的ECU在接收到上述车辆通过请求配置参数生成的UDS服务请求之后,立即针对该UDS服务请求进行解析,从而自该UDS服务请求中,确定该UDS服务请求中封装的服务控制类型和当前ECU需要进行处理的一条或者多条特定的待处理报文的特定报文ID。之后,ECU即可进一步根据该服务控制类型和该特定报文ID,恢复对待处理报文的接收或者发送,或者,禁止对该待处理报文的接收或者发送。
如此,本申请通过生成封装有服务控制类型和待处理报文的特定报文ID的UDS服务请求,从而车辆的ECU即可通过解析该UDS服务请求以确定服务控制类型和特定报文ID,进而响应请求以仅针对该特定报文ID指向的待处理报文执行相应功能操作。即,本申请技术方案实现了使用UDS服务控制车辆ECU进行某条或多条特定报文的发送或接收。
此外,本申请还提供一种基于UDS服务的报文收发控制装置,如图3所示,本申请基于UDS服务的报文收发控制装置应用于应用于车辆。本申请基于UDS服务的报文收发控制装置包括:
请求生成模块,用于根据预设的请求配置参数生成对应的UDS服务请求,其中,所述服务请求中封装有服务控制类型和待处理报文的特定报文ID;
请求下发模块,用于将所述UDS服务请求下发至所述车辆的ECU,以供所述ECU根据所述服务控制类型和所述特定报文ID恢复或者禁止对所述待处理报文的收发;
所述基于UDS服务的报文收发控制装置还应用于所述车辆的ECU,所述装置还包括:
请求接收模块,用于接收所述车辆下发的UDS服务请求;
请求解析模块,用于解析所述UDS服务请求以确定所述UDS服务请求中封装的服务控制类型和待处理报文的特定报文ID;
请求响应模块,用于根据所述服务控制类型和所述特定报文ID,恢复或者禁止对所述待处理报文的收发。
可选地,本申请基于UDS服务的报文收发控制装置,还包括:
条件检测模块,用于在预设驻车状态下确定所述ECU是否符合报文处理条件,其中,所述报文处理条件为所述ECU在当前时刻未执行对车辆进行控制的关键操作;
请求下发模块,还用于在确定所述ECU符合所述报文处理条件时,通过与所述ECU进行通信连接的汽车总线,将所述UDS服务请求下发至所述ECU。
可选地,本申请基于UDS服务的报文收发控制装置,还包括:
反馈监测模块,用于监测所述ECU针对所述UDS服务请求反馈的响应数据;
请求调整模块,用于若所述响应数据为否定响应码,则根据所述否定响应码生成新的UDS服务请求;
本申请基于UDS服务的报文收发控制装置的请求下发模块,还用于将所述新的UDS服务请求重新下发至所述车辆的ECU,以控制所述ECU根据所述新的UDS服务请求恢复或者禁止对所述待处理报文的收发。
可选地,请求解析模块,包括:
提取单元,用于解析所述UDS服务请求以提取所述UDS服务请求中各报文字节的字节取值;
服务类型确定单元,用于根据各所述报文字节中子功能字节的字节取值确定所述UDS服务请求中封装的服务控制类型。
可选地,请求解析模块,还包括:
确定单元,用于根据各所述报文字节中通讯类型字节的字节取值,在各所述报文字节中确定待处理报文的特定报文ID字节;
ID确定单元,用于根据所述特定报文ID字节的字节取值确定所述UDS服务请求中封装的待处理报文的特定报文ID。
可选地,本申请基于UDS服务的报文收发控制装置,还包括:
报文检查模块,用于对所述车辆下发的UDS服务请求逐项进行报文检查;若当前项报文检查对应的报文检查结果为未通过,则生成当前项报文检查对应的否定响应码,并将所述否定响应码反馈至所述车辆,以供所述车辆根据所述否定响应码生成新的UDS服务请求;以及,若当前项报文检查对应的报文检查结果为通过,则继续进行下一项报文检查直至各项检查结束。
本申请基于UDS服务的报文收发控制装置的具体实施方式与上述基于UDS服务的报文收发控制方法各实施例基本相同,在此不再赘述。
此外,本申请实施例还提供一种如上述任一实施例中所提及的车辆。
参照图4,图4是本申请实施例方案所提及车辆涉及的硬件运行环境的设备结构示意图。
如图4所示,该车辆可以包括:处理器1001,例如CPU,存储器1005,通信总线1002。其中,通信总线1002用于实现处理器1001和存储器1005之间的连接通信。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储设备。
可选地,该车辆还可以包括ECU和矩形用户接口、网络接口、摄像头、RF(RadioFrequency,射频)电路,传感器、音频电路、WiFi模块等等。矩形用户接口可以包括显示屏(Display)、输入子模块比如键盘(Keyboard),可选矩形用户接口还可以包括标准的有线接口、无线接口。网络接口可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
本领域技术人员可以理解,图4中示出的结构并不构成对车辆的限定,基于实际应用的不同设计需要,在不同可行的实施方式当中,车辆当然还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图4所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块以及基于UDS服务的报文收发控制程序。操作系统是管理和控制基于车辆硬件和软件资源的程序,支持基于UDS服务的报文收发控制程序以及其它软件和/或程序的运行。网络通信模块用于实现存储器1005内部各组件之间的通信,以及与基于UDS服务的报文收发控制装置中其它硬件和软件之间通信。
在图4所示的车辆中,处理器1001用于执行存储器1005中存储的基于UDS服务的报文收发控制程序,实现上述任一实施例所述的基于UDS服务的报文收发控制方法的步骤。
本申请车辆的具体实施方式与上述基于UDS服务的报文收发控制方法各实施例基本相同,在此不再赘述。
此外,本申请实施例还提供了一种计算机存储介质,且所述计算机存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序还可被一个或者一个以上的处理器执行以用于实现上述任一项所述的基于UDS服务的报文收发控制方法的步骤。
本申请计算机存储介质的具体实施方式与上述基于UDS服务的报文收发控制方法各实施例基本相同,在此不再赘述。
此外,本申请还提供一种计算机程序产品、包括计算机程序,该计算机程序被处理器执行时实现上述的基于UDS服务的报文收发控制方法的步骤。
本申请计算机程序产品的具体实施方式与上述基于UDS服务的报文收发控制方法各实施例基本相同,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是车载电脑,智能手机,计算机,或者服务器等)执行本申请各个实施例所述的方法。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。