掌桥专利:专业的专利平台
掌桥专利
首页

一种ECU故障信息的获取方法及系统

文献发布时间:2023-06-19 11:39:06


一种ECU故障信息的获取方法及系统

技术领域

本发明涉及整车数据采集和故障诊断技术领域,更具体的说,涉及一种ECU故障信息的获取方法及系统。

背景技术

在整车研发阶段,OEM(Original Equipment Manufacturer,原始设备制造商)提出的诊断规范要求ECU(Electronic Control Unit,电子控制单元)供应商在ECU内部记录该ECU或其他ECU的故障码和快照信息,从而可以根据ECU记录的故障码对车辆进行故障分析。

随着汽车电子技术的飞速发展,ECU的功能越来越多,ECU与ECU直接的信息交互与软件逻辑也变得更加复杂。在整车研发阶段,ECU通常会出现一些偶发故障,比如,ECU内部软件BUG(漏洞)导致的偶发故障。由于ECU故障发生时可能不具备整车CAN(ControllerArea Network,控制器局域网络)数据采集条件,无法进行数据采集,而仅通过诊断故障代码等获取的信息量有限,因此对于ECU的偶发故障不能准确定位故障产生原因。为解决这一问题,现有技术采用的方案为:搭建CAN报文数据采集环境,复现ECU故障操作过程,抓取整车故障状态的CAN报文并进行故障分析。现有方案能否抓取到故障时刻的整车CAN数据取决于是否能够复现故障,某些特殊工况才能复现或者复现概率较低的故障不太可能花费大量人力去长期监控并采集整车CAN总线数据。采用现有方案解决这类难复现的故障就会非常困难,甚至只能在没有整车数据的情况下去梳理软件逻辑漏洞,这种解决问题的方法耗时较长。与此同时,现有方案中对于复杂问题通常还需要ECU供应商到达故障车辆现场进行故障复现和分析,从而需要耗费大量的人力和时间。

发明内容

有鉴于此,本发明公开一种ECU故障信息的获取方法及系统,以实现准确的抓取故障时间点,精确采集故障瞬时的车辆数据,对故障ECU准确定位故障产生原因,省去搭建CAN报文数据采集环境过程,而且无需ECU供应商到达故障车辆现场进行故障复现和分析,大大节省人力和时间。

一种ECU故障信息的获取方法,应用于网关,所述获取方法包括:

获取ECU上报的故障ECU信息,所述故障ECU信息包括:故障ECU ID以及故障模块;

根据所述故障ECU信息确定对应的故障ECU,并向所述故障ECU发送故障通知报文,所述故障通知报文中携带有所述故障ECU出现异常的故障模块标识以及所述故障ECU ID;

获取所述故障ECU发送的在故障期间缓存的ECU故障运行日志,所述ECU故障运行日志包括:ECU故障前运行日志、ECU故障中运行日志和ECU故障后运行日志;

将所述ECU故障运行日志以及自身在与所述故障期间相同时间段缓存的整车CAN报文数据一同上传至远程服务器。

可选的,所述根据所述故障ECU信息确定对应的故障ECU,并向所述故障ECU发送故障通知报文,具体包括:

根据所述故障ECU信息确定所述故障ECU所属的目标网段;

向所述目标网段发送所述故障通知报文。

可选的,在所述根据所述故障ECU信息确定对应的故障ECU,并向所述故障ECU发送故障通知报文之后,还包括:

当在预设时间段内未接收到所述故障ECU发送的ECU故障运行日志时,将故障ECU通信超时作为所述ECU故障运行日志的标识。

可选的,所述网关缓存所述整车CAN报文数据采用用户数据报协议UDP帧格式,所述UDP帧包括:UDP报头,记为第一UDP报文,以及应用数据,记为第一应用数据;

所述第一应用数据包括:数据头SOF、数据类型DataTpye、数据长度DataLen、时间戳TimeStamp、多个CAN报文数据和数据结尾EOF;

每个所述CAN报文数据包括:时间偏移Timeoffset、CAN报文数据的唯一编码ID、CAN报文数据长度DLC和CAN报文的数据场Data;

其中,所述时间戳TimeStamp为网关接收或发送CAN报文时的实时钟RTC时间;

所述时间偏移Timeoffset表示网关接收或发送CAN报文时的时间与所述时间戳TimeStamp的时间差。

可选的,所述ECU故障运行日志包括:编码文本和数据信息,所述编码文本为所述故障ECU对所述ECU故障运行日志中的文本信息编码得到。

可选的,所述将所述ECU故障运行日志和所述整车CAN报文数据一同上传至远程服务器,具体包括:

将所述ECU故障运行日志和所述整车CAN报文数据通过以太网上传至TBOX,由所述TBOX将所述ECU故障运行日志和所述整车CAN报文数据一同上传至所述远程服务器。

可选的,所述ECU故障运行日志在以太网中传输时采用的是UDP帧格式,UDP帧包括:UDP报头,记为第二UDP报头,以及应用数据,记为第二应用数据;

所述第二应用数据包括:帧起始SOF、数据类型DataTpye、数据长度Datalen、多个ECU运行日志和帧结束EOF;

每个所述ECU运行日志包括:ECU编号ECU_Num、故障模块编号Model_Num和多个ECU运行日志的数据Data。

一种ECU故障信息的获取系统,应用于网关,所述获取系统包括:

故障信息获取单元,用于获取ECU上报的故障ECU信息,所述故障ECU信息包括:故障ECU ID以及故障模块;

报文发送单元,用于根据所述故障ECU信息确定对应的故障ECU,并向所述故障ECU发送故障通知报文,所述故障通知报文中携带有所述故障ECU出现异常的故障模块标识以及所述故障ECU ID;

故障运行日志获取单元,用于获取所述故障ECU发送的在故障期间缓存的ECU故障运行日志,所述ECU故障运行日志包括:ECU故障前运行日志、ECU故障中运行日志和ECU故障后运行日志;

数据上传单元,用于将所述ECU故障运行日志以及自身在与所述故障期间相同时间段缓存的整车CAN报文数据一同上传至远程服务器。

可选的,所述报文发送单元具体用于:

根据所述故障ECU信息确定所述故障ECU所属的目标网段;

向所述目标网段发送所述故障通知报文。

可选的,还包括:

通信超时标记单元,用于在所述报文发送单元根据所述故障ECU信息确定对应的故障ECU,并向所述故障ECU发送故障通知报文之后,当在预设时间段内未接收到所述故障ECU发送的ECU故障运行日志时,将故障ECU通信超时作为所述ECU故障运行日志的标识。

从上述的技术方案可知,本发明公开了一种ECU故障信息的获取方法及系统,网关获取ECU上报的故障ECU信息,根据故障ECU信息确定对应的故障ECU,并向故障ECU发送故障通知报文,故障通知报文中携带有故障ECU出现异常的故障模块标识和故障ECU ID,获取故障ECU发送的在故障期间缓存的ECU故障运行日志,并将ECU故障运行日志以及自身在与故障期间相同时间段缓存的整车CAN报文数据一同上传至远程服务器。本发明中所有ECU实时缓存ECU运行日志,网关实时缓存整车CAN报文数据,因此,当某个ECU发生偶发故障时,可以直接获取故障ECU在故障期间缓存的ECU故障运行日志以及网关在相同时间段缓存的整车CAN报文数据,由于ECU故障运行日志包括:ECU故障前运行日志、ECU故障中运行日志和ECU故障后运行日志,因此,网关通过将ECU故障运行日志和整车CAN报文数据一同上传至远程服务器,可便于后续对故障ECU准确定位故障产生原因。从而实现了准确的抓取故障时间点,精确采集故障瞬时的车辆数据,对故障ECU准确定位故障产生原因,省去搭建CAN报文数据采集环境过程,而且无需ECU供应商到达故障车辆现场进行故障复现和分析,大大节省了人力和时间。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据公开的附图获得其他的附图。

图1为本发明实施例公开的一种ECU故障信息的获取方法流程图;

图2为本发明实施例公开的一种网关缓存整车CAN报文数据采用的数据帧格式示意图;

图3为本发明实施例公开的一种ECU故障运行日志由网关通过以太网传输至TBOX时的以太网传输帧格式示意图;

图4为本发明实施例公开的一种ECU故障信息的获取系统的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例公开了一种ECU故障信息的获取方法及系统,网关获取ECU上报的故障ECU信息,根据故障ECU信息确定对应的故障ECU,并向故障ECU发送故障通知报文,故障通知报文中携带有故障ECU出现异常的故障模块标识以及故障ECU ID,获取故障ECU发送的在故障期间缓存的ECU故障运行日志,以及获取自身在与故障期间相同时间段缓存的整车CAN报文数据,将ECU故障运行日志和整车CAN报文数据一同上传至远程服务器。本发明中所有ECU实时缓存ECU运行日志,网关实时缓存整车CAN报文数据,因此,当某个ECU发生偶发故障时,可以直接获取故障ECU在故障期间缓存的ECU故障运行日志以及网关在相同时间段缓存的整车CAN报文数据,由于ECU故障运行日志包括:ECU故障前运行日志、ECU故障中运行日志和ECU故障后运行日志,因此,网关通过将ECU故障运行日志和整车CAN报文数据一同上传至远程服务器,可便于后续对故障ECU准确定位故障产生原因。从而实现了准确的抓取故障时间点,精确采集故障瞬时的车辆数据,对故障ECU准确定位故障产生原因,省去搭建CAN报文数据采集环境过程,而且无需ECU供应商到达故障车辆现场进行故障复现和分析,大大节省了人力和时间。

参见图1,本发明实施例公开的一种ECU故障信息的获取方法流程图,该方法应用于网关,该方法包括:

步骤S101、获取ECU上报的故障ECU信息;

其中,故障ECU信息包括:故障ECU ID以及故障模块,在本实施例中,故障ECU ID可以用Byte0表示,故障模块用Byte1表示。故障ECU根据故障模块可以有选择性的传输运行日志,比如,仅传输故障相关的运行日志,以节约总线资源。

在实际应用中,车辆中的各个ECU通过CAN总线通信连接,每个ECU可以对自身或者其他关联的ECU进行异常情况检测,异常检测的逻辑由主机厂和供应商根据ECU关联性进行设计。本实施例中,预先为每个ECU分配一个CANID,用于故障上报和运行日志传输。上报的故障ECU信息可以由故障ECU发送,或者由与故障ECU存在关联的其他ECU发送。

步骤S102、根据故障ECU信息确定对应的故障ECU,并向故障ECU发送故障通知报文;

其中,故障通知报文中携带有故障ECU出现异常的故障模块标识以及故障ECU ID,ECU ID用byte0表示,故障模块用byte1表示。所有的ECU均会监控故障通知报文,当故障通知报文中的ECU ID与自身ECU ID相等时,会向网关发送在故障期间缓存的ECU故障运行日志。

具体的,网关根据故障ECU ID确定故障ECU所属的目标网段,并向该目标网段发送故障通知报文,以告知故障ECU出现异常的故障模块以及故障ECU ID,并为故障ECU分配接收缓存。本实施例中,接收缓存由多个1460字节的buffer(缓冲区)组成。网关在向故障ECU发送通知报文后,开始定时器进行计时,当定时器到达设定时间,比如1s,若故障ECU出现通信故障,则故障ECU将无法发送ECU运行日志,此时,网关在上传ECU故障运行日志至远程服务器时,会将上传的ECU故障运行日志标记为故障ECU通信超时,也即,将故障ECU通信超时作为ECU故障运行日志的标识。

因此,在步骤S102之后,还可以包括:

当在预设时间段内未接收到故障ECU发送的ECU故障运行日志时,将故障ECU通信超时作为ECU故障运行日志的标识。

步骤S103、获取故障ECU发送的在故障期间缓存的ECU故障运行日志;

其中,ECU故障运行日志包括:ECU故障前运行日志、ECU故障中运行日志和ECU故障后运行日志。

ECU故障运行日志的时长可以根据故障类型预先设置或由远程监控平台下发。远程监控平台亦可主动下发开始数据上传指令和停止数据上传指令,实现整车数据的远程采集。

本实施例中,ECU故障运行日志包含的内容由ECU供应商定义,主要记录ECU关键运行状态和关键数据,以方便供应商分析和定位问题。

需要特别说明的是,本发明中车内所有ECU均会缓存第一最近预设时间段(比如,最近10s)的ECU运行日志,网关从CAN总线获取并缓存第二最近预设时间段(比如,最近10s)的整车CAN报文数据。

其中,第一最近预设时间段和第二最近预设时间段的取值可以相同或是不同,具体依据实际需要而定,本发明在此不做限定。

正常情况下,车内所有ECU缓存车辆正常状态的ECU运行日志,网关缓存整车CAN报文数据,这样,当车辆出现ECU故障时,故障ECU就可以将故障期间缓存的ECU故障运行日志通过CAN总线发送至网关,网关将ECU故障运行日志和与ECU故障运行日志相同时间段的整车CAN报文数据一同上传至远程服务器,由ECU供应商下载ECU故障运行日志和整车CAN报文数据进行故障分析,ECU故障信息中保留了ECU故障发生前、发生时和发生后的ECU运行日志和整车CAN报文数据。

本实施例中,ECU针对ECU运行日志的缓存空间以及网关针对整车CAN报文数据的缓存空间均由多个buffer(缓冲区)组成,且分别能够缓存第一最近预设时间段和第二最近预设时间段的数据内容,当缓存空间已满,清空最早缓冲区缓存入的数据。

因此,步骤S103具体可以包括:

获取故障ECU发送的在故障期间缓存的ECU故障运行日志,并将ECU故障运行日志缓存至网关的第一缓存空间。

其中,网关从CAN总线获取的与故障期间相同时间段的整车CAN报文数据缓存至网关的第二缓存空间。

其中,第一缓存空间和第二缓存区为不同的缓存空间,且均由多个缓冲区组成。

步骤S104、将ECU故障运行日志以及自身在与故障期间相同时间段缓存的整车CAN报文数据一同上传至远程服务器。

综上可知,本发明公开了一种ECU故障信息的获取方法,网关获取ECU上报的故障ECU信息,根据故障ECU信息确定对应的故障ECU,并向故障ECU发送故障通知报文,故障通知报文中携带有故障ECU出现异常的故障模块标识以及故障节点ECU ID,获取故障ECU发送的在故障期间缓存的ECU故障运行日志,将ECU故障运行日志自身在与故障期间相同时间段缓存的整车CAN报文数据一同上传至远程服务器,以便后续确定故障发生原因。本发明中所有ECU实时缓存ECU运行日志,网关实时缓存整车CAN报文数据,因此,当某个ECU发生偶发故障时,可以直接获取故障ECU在故障期间缓存的ECU故障运行日志以及网关在相同时间段缓存的整车CAN报文数据,由于ECU故障运行日志包括:ECU故障前运行日志、ECU故障中运行日志和ECU故障后运行日志,因此,网关通过将ECU故障运行日志和整车CAN报文数据一同上传至远程服务器,可便于后续对故障ECU准确定位故障产生原因。从而实现了准确的抓取故障时间点,精确采集故障瞬时的车辆数据,对故障ECU准确定位故障产生原因,省去搭建CAN报文数据采集环境过程,而且无需ECU供应商到达故障车辆现场进行故障复现和分析,大大节省了人力和时间。

在实际应用中,ECU运行日志包含ECU关键运行状态和关键运行数据。由于ECU向网关发送的ECU运行日志不能影响整车通信,因此ECU发送的ECU运行日志不能占用过多总线资源。

ECU运行日志分为文本信息和数据信息,为减少总线资源的占用,可以提前对文本信息进行编码得到编码文本,并使用编码文本代替文本信息在CAN总线上传输,另外,在严格控制数据信息的长度即可减少总线资源的占用。

ECU运行日志主要记录ECU的运行状态和动作,比如,ECU正在进行报文发送,或者执行某一行代码,ECU某个模块的状态,指是ECU所处工作模式。通过“文字”加“数据”的方式就可以记录ECU的运行状态和动作,其中,文字占1字节,数据占1字节,2个字节就可以记录ECU运行日志。一条CAN报文即可传输4条日志信息,“编码”固定放在CAN报文数据场的byte0/2/4/6,“数据”固定放在byte1/3/5/7,这种传输方式称为“标准传输方式”。协议规定“协议编码”范围为0x06~0Xfe。协议把0x01—0x05预留为“扩展数据长度”。特殊情况需要传输超过1字节的数据信息,“编码”和“数据”的首字节按照“标准传输方式”填充,填充完“数据”的首字节后继续填充“扩展数据长度”,在CAN报文数据场的byte2/4/6出现小于0x06的数据就可以识别出此byte表示的是“扩展数据长度”而不是“编码”。“扩展数据长度”字段表示“扩展数据长度”字段后有几个字节也是数据信息,这种传输方式称为“扩展数据传输方式”。一条CAN报文最多传输8个字节数据,所以扩展数据长度最多为5。一条日志信息的最小长度为2字节,因此必须由文本信息和数据信息组成。若ECU运行日志中不包含数据信息,将数据信息所在字节填充为0xff表示无效。若一条报文传输了扩展数据的日志信息不够传输另一条完成的日志信息,剩余字节填充为0xff。不能将一条日志信息拆分为两条报文传输。若一条报文传输了扩展数据的日志信息还有字节剩余可继续填充日志信息,日志信息的“编码”必须固定放在CAN报文数据场的byte0/2/4/6,若byt5、byte6、byte7剩余,需要将byte5填充为0xff表示无效,byte6和byte7存放一条“标准日志信息”。

本实施例中,将ECU故障运行日志抽象成文本信息和数据信息,为减少总线资源的占用,本发明在传输文本信息之前,对文本信息进行编码得到编码文本。

例如:

表1所示的一种文本信息编码。

表1

其中,表1中的日志信息可以为ECU故障运行日志。

表1中的四条日志信息可以使用一条报文发送,数据场如表2所示。

表2

另一种文本信息编码如表3所示。

表3

表3中的日志信息的数据信息超过1字节,多余数据采用扩展数据发送,本条日志信息共占用7个字节,剩余1字节不够传输一条完整的日志信息,根据协议将最后1字节填充为0xff表示为无效,此时参见表4所示。

表4

表5

表5中的第一条日志信息的数据信息超过1字节,多余数据采用扩展数据发送,第一条日志信息共占用5个字节,剩余3字节,byte5不能存放“编码”数据,填充为0xff,byte6和byte7存放第二条日志信息,见表XX所示。

表6

ECU运行日志缓存由多个8字节的buffer组成,当前缓存buffer若没有足够空间存储一条完整的ECU运行日志,则将当前buffer剩余字节填充为0xff,并选择新的buffer缓存日志。

整车CAN报文数据包含车内所有CAN总线的报文(运行日志请求和上传报文会过滤掉不进行上传),本发明中网关缓存整车CAN报文数据采用的数据帧格式如图2所示,对数据帧中的元素解释如下:

需要说明的是,本实施例中,网关缓存整车CAN报文数据采用UDP(UserDatagramProtocol,用户数据报协议)帧格式,UDP帧包括:UDP报头和应用数据(Pay load),为便于后续区分,将图2中的UDP报头记为第一UDP报头,将图2中的应用数据记为第一应用数据。

第一应用数据(Pay load)包含的内容如下:

SOF:数据头,占用1字节,固定为0XAA。

DataTpye:数据类型,占用1字节,固定为0x01,表示CAN报文数据。

DataLen:数据长度,2字节,采用摩托罗拉格式存储,从“DataLen”开始计算到“EOF”结束,不包含“DataLen”和“EOF”所占字节。

TimeStamp:4字节,时间戳,采用摩托拉格式存储,网关接收或发送CAN报文时的RTC(Real_Time Clock,实时钟)时间,单位精确到0.1毫秒,网关上电会通过TBOX发出的时间同步内部RTC时钟。

多个CAN报文数据,每个CAN报文数据由Timeoffset、ID、DLC和Data组成,一条整车CAN数据内包含多条CAN报文数据。

Timeoffset:2字节,时间偏移,表示网关接收或发送CAN报文的时间与TimeStamp的时间差,精确到0.1毫秒;

ID:唯一编码,2字节,采用摩托罗拉格式存储,最高5位表示CAN通道编号,其余11位存储CAN报文的ID。

DLC:1字节,CAN报文数据长度。

Data:CAN报文的数据场,如图2中的Data_0,…,Data_n。

EOF:数据结尾,0xBB。

整车CAN报文数据缓存由多个1460字节的buffer组成,当前缓存buffer若没有足够空间存储一个完整的“CAN报文数据”,则选择新的buffer进行存储。

在实际应用中,ECU通过CAN总线采用提前分配的CAN报文ID将8字节的缓存中的日志发送给网关即可,ECU故障运行日志在CAN总线上传输的帧格式可以有多种,为便于理解,下面举例说明,表7所示的标准传输方式以及表8所示的扩展数据传输方式,表7和表8分别如下:

表7

表8

需要说明的是,本发明中网关为ECU故障运行日志和整车CAN报文数据均分配了单独的缓存。网关为ECU故障运行日志分配了若干长度为1460字节的缓存区,网关只需将接收到的ECU故障运行日志封装其包头即可。其中,缓存区选择1460字节的原因为:1460字节正好可以使用一帧以太网报文进行传输。

为进一步优化上述实施例,步骤S104具体可以包括:

将ECU故障运行日志和整车CAN报文数据通过以太网一同上传至TBOX,由TBOX将ECU故障运行日志和整车CAN报文数据一同上传至远程服务器。

ECU故障运行日志由网关通过以太网传输至TBOX时的以太网传输帧格式如图3所示,ECU故障运行日志在传输是采用UDP帧格式,UDP帧包括:UDP报头和应用数据(Payload),为便于与图2中的进行区分,将图3中的UDP报头记为第二UDP报头,将图3中的应用数据记为第二应用数据。

第二应用数据(Pay load)包含的内容如下:

SOF:帧起始,1字节,固定为0xAA。

DataTpye:数据类型,1字节,固定为0x02,表示ECU日志数据。

Datalen:数据长度,2字节,范围0x01-0x05AE,从“数据长度”开始计算到“数据结尾”结束,不包含“数据长度”和“数据结尾”所占字节。

多个ECU运行日志,每个ECU运行日志包括:

ECU_Num:ECU编号,1字节,0x00-0xFF,由主机厂定义;

Model_Num:故障模块编号,1字节,0x00-0xFF,由ECU供应商自定义

Data,ECU运行日志的数据,如图3中的Data_0,…,Data_7,每个Data为1字节。

EOF:帧结束,固定为0xBB,1字节。

转义处理:

ECU故障运行日志中可能会出现数据头和数据相同的数据,此时,需要进行转义处理。0xAA转义为0x1B,0xAB,0xBB转义为0x1B,0xBC,0x1B转义为0x1B,0x00。

网关缓存整车CAN总线数据时已经封装好了整车数据包头,所以直接采用以太网传输即可。整车CAN总线数据和ECU故障运行日志轮流传输,到达提前设定的传输时间或者远程服务器下发的传输时间为止。

网关缓存由多个buffer组成,采用FIFO(First Input First Output,先进先出)机制,先进入缓存的数据优先传输,buffer长度刚刚使用一帧以太网即可发送。当发生缓存溢出就取消当前正在发送的数据,并清空当前buffer用来接收来自ECU的ECU故障运行日志或整车CAN总线数据(整车CAN总线数据和ECU故障运行日志缓存是单独的),网关继续发送FIFO中下一个buffer中的数据。

为进一步优化上述实施例,在步骤S104之后,还可以包括:

当故障ECU发送ECU故障运行日志的时间达到预设时间阈值时,向故障ECU发送停止传输指令。

具体的,网关在开始接收到故障ECU发送的ECU故障运行日志时会开启一个定时器,当计时器计时结束后,网关向故障ECU发送停止传输日志的指令,故障ECU停止发送ECU故障运行日志,网关将缓存中剩余的ECU故障运行日志和整车CAN报文数据发送至TBOX。

综上可知,本发明公开了一种ECU故障信息的获取方法,网关获取ECU上报的故障ECU信息,根据故障ECU信息确定对应的故障ECU,并向故障ECU发送故障通知报文,故障通知报文中携带有故障ECU出现异常的故障模块标识以及故障ECU ID,获取故障ECU发送的在故障期间缓存的ECU故障运行日志,将ECU故障运行日志以及自身在与故障期间相同时间段缓存的整车CAN报文数据一同上传至远程服务器。本发明中所有ECU实时缓存ECU运行日志,网关实时缓存整车CAN报文数据,因此,当某个ECU发生偶发故障时,可以直接获取故障ECU在故障期间缓存的ECU故障运行日志以及网关在相同时间段缓存的整车CAN报文数据,由于ECU故障运行日志包括:ECU故障前运行日志、ECU故障中运行日志和ECU故障后运行日志,因此,网关通过将ECU故障运行日志和整车CAN报文数据一同上传至远程服务器,可便于后续对故障ECU准确定位故障产生原因。从而实现了准确的抓取故障时间点,精确采集故障瞬时的车辆数据,对故障ECU准确定位故障产生原因,省去搭建CAN报文数据采集环境过程,而且无需ECU供应商到达故障车辆现场进行故障复现和分析,大大节省了人力和时间。

另外,本发明设计了资源节约型的ECU日志传输协议,节约CAN总线资源的同时最大限度保证了日志内容的丰富性,且本协议较为灵活的满足了多种数据长度的日志信息的传输;基于本发明采用整车OTA(Over-the-Air Technology,空中下载技术)功能可以实现实车的远程调试和故障诊断;本发明可以对车内所有ECU的运行状态进行长期监控,从而丰富了ECU测试手段,有利于提高ECU的稳定定;ECU故障运行日志和整车CAN报文数据上传至TBOX的时间长度可控,从而节约了TBOX的数据流量,无需长期监控整车数据即可采集到ECU故障前后完整的数据。

与上述方法实施例相对应,本发明还公开了一种ECU故障信息的获取系统。

参见图4,本发明实施例公开的一种ECU故障信息的获取系统的结构示意图,该系统应用于网关,该系统包括:

故障信息获取单元201,用于获取ECU上报的故障ECU信息;

其中,故障ECU信息包括:故障ECU ID以及故障模块,在本实施例中,故障ECU ID可以用Byte0表示,故障模块用Byte1表示。故障ECU根据故障模块可以有选择性的传输运行日志,比如,仅传输故障相关的运行日志,以节约总线资源。

在实际应用中,车辆中的各个ECU通过CAN总线通信连接,每个ECU可以对自身或者其他关联的ECU进行异常情况检测,异常检测的逻辑由主机厂和供应商根据ECU关联性进行设计。本实施例中,预先为每个ECU分配一个CANID,用于故障上报和运行日志传输。上报的故障ECU信息可以由故障ECU发送,或者由与故障ECU存在关联的其他ECU发送。

报文发送单元202,用于根据故障ECU信息确定对应的故障ECU,并向故障ECU发送故障通知报文;

其中,故障通知报文中携带有故障ECU出现异常的故障模块标识以及故障ECU ID,ECU ID用byte0表示,故障模块用byte1表示。所有的ECU均会监控故障通知报文,当故障通知报文中的ECU ID与自身ECU ID相等时,会向网关发送在故障期间缓存的ECU故障运行日志。

在实际应用中,报文发送单元202具体可以用于:

根据故障ECU信息确定故障ECU所属的目标网段,向目标网段发送故障通知报文。

故障运行日志获取单元203,用于获取故障ECU发送的在故障期间缓存的ECU故障运行日志;

其中,ECU故障运行日志包括:ECU故障前运行日志、ECU故障中运行日志和ECU故障后运行日志。

ECU故障运行日志的时长可以根据故障类型预先设置或由远程监控平台下发。远程监控平台亦可主动下发开始数据上传指令和停止数据上传指令,实现整车数据的远程采集。

本实施例中,ECU故障运行日志包含的内容由ECU供应商定义,主要记录ECU关键运行状态和关键数据,以方便供应商分析和定位问题。

需要特别说明的是,本发明中车内所有ECU均会缓存第一最近预设时间段(比如,最近10s)的ECU运行日志,网关从CAN总线获取并缓存第二最近预设时间段(比如,最近10s)的整车CAN报文数据。

其中,第一最近预设时间段和第二最近预设时间段的取值可以相同或是不同,具体依据实际需要而定,本发明在此不做限定。

数据上传单元204,用于将ECU故障运行日志以及自身在与故障期间相同时间段缓存的整车CAN报文数据一同上传至远程服务器。

综上可知,本发明公开了一种ECU故障信息的获取系统,网关获取ECU上报的故障ECU信息,根据故障ECU信息确定对应的故障ECU,并向故障ECU发送故障通知报文,故障通知报文中携带有故障ECU出现异常的故障模块标识以及故障节点ECU ID,获取故障ECU发送的在故障期间缓存的ECU故障运行日志,将ECU故障运行日志自身在与故障期间相同时间段缓存的整车CAN报文数据一同上传至远程服务器,以便后续确定故障发生原因。本发明中所有ECU实时缓存ECU运行日志,网关实时缓存整车CAN报文数据,因此,当某个ECU发生偶发故障时,可以直接获取故障ECU在故障期间缓存的ECU故障运行日志以及网关在相同时间段缓存的整车CAN报文数据,由于ECU故障运行日志包括:ECU故障前运行日志、ECU故障中运行日志和ECU故障后运行日志,因此,网关通过将ECU故障运行日志和整车CAN报文数据一同上传至远程服务器,可便于后续对故障ECU准确定位故障产生原因。从而实现了准确的抓取故障时间点,精确采集故障瞬时的车辆数据,对故障ECU准确定位故障产生原因,省去搭建CAN报文数据采集环境过程,而且无需ECU供应商到达故障车辆现场进行故障复现和分析,大大节省了人力和时间。

上述实施例中,网关根据故障ECU ID确定故障ECU所属的目标网段,并向该目标网段发送故障通知报文,以告知故障ECU出现异常的故障模块以及故障ECU ID,并为故障ECU分配接收缓存。本实施例中,接收缓存由多个1460字节的buffer(缓冲区)组成。网关在向故障ECU发送通知报文后,开始定时器进行计时,当定时器到达设定时间,比如1s,若故障ECU出现通信故障,则故障ECU将无法发送ECU运行日志,此时,网关在上传ECU故障运行日志至远程服务器时,会将上传的ECU故障运行日志标记为故障ECU通信超时,也即,将故障ECU通信超时作为ECU故障运行日志的标识。

因此,获取系统还可以包括:

通信超时标记单元,用于在报文发送单元202根据故障ECU信息确定对应的故障ECU,并向故障ECU发送故障通知报文之后,当在预设时间段内未接收到故障ECU发送的ECU故障运行日志时,将故障ECU通信超时作为ECU故障运行日志的标识。

需要特别说明的是,系统实施例中各组成部分的具体工作原理,请参见方法实施例对应部分,此处不再赘述。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

相关技术
  • 一种ECU故障信息的获取方法及系统
  • 洗衣机及其故障信息获取方法和故障信息获取系统
技术分类

06120113008344