刘全周,孙德明,李占旗,高峰,辛迪宇
(中国汽车技术研究中心有限公司,天津 300384)
据统计,截至2018年9月我国机动车保有量约为2.35亿辆,仅次于美国,并且仍在快速增长,随之而来的是不断增加的交通事故。如何准确判定事故原因并进行事故责任认定是交管部门长期面临的一个问题[1]。常规情况下通过现场勘查包括车辆痕迹、碰撞位置和环境状况等信息来分析鉴定,随着高清摄像技术的发展,多角度的现场监控录像也成为了交通事故分析的重要证据,但仍有很大的局限性。特别是以后越来越多的车辆都会配置辅助驾驶功能,车辆的自主参与度越来越大,在事故发生时还要鉴定车辆本身的因素。获知事故发生的准确时间和事故过程中的车况信息对准确判定事故原因有巨大的作用[2-4]。
汽车事件数据记录系统(Event Data Recorder,EDR)是安装在车辆上,可以自动判定事故发生时间,并将相关时段的车辆信息记录、存储供后期提取的车载装置,也被成为汽车的“黑匣子”。美国是最早进行EDR研究与推广的国家,并已于2006年发布了强制性标准规范49 CFR Part 563[5],该规范定义了数据的采集、存储和读取规则。我国也已开展了EDR标准的制定工作,并于2018年6月20日发布了强制性国家标准《汽车事件数据记录系统》(征求意见稿),该标准正式实施后,我国市场M1类机动车安装的EDR产品均需遵守该标准。目前国内市场已有部分集成了该功能的ECU,但对EDR数据提取的研究却很少。最常见的商用碰撞数据提取工具是博世生产的CDR,可对部分车型的部分数据进行读取。因此,本文作者设计了一种基于UDS协议的EDR数据提取和分析方法,并开发了上位机提取软件,可实现对适配的EDR的数据提取和分析。
汽车EDR同飞机的“黑匣子”一个很大的区别是EDR仅在事故发生时存储下事件发生前和事件发生后一段时间的车辆信息,通常这段时间非常短暂。因此EDR需要具备一个必要的功能:准确地判断事件发生的时刻。判断碰撞事件发生的一个最直观的方式是通过检测车辆速度的变化来实现,当车辆的纵向或横向加速度达到相应的阈值时可认为相应类型的碰撞事件发生。因此,目前已具备EDR功能的车辆大都将EDR模块集成在带加速度传感器的气囊控制器(SDM)中。常用的确定碰撞事件的发生有两种方法:
(1)根据车辆不同方向上速度变化值来判断,当加速度超过对应阈值后触发数据记录功能,该方法下的事件记录可以是非锁定数据和锁定数据,锁定数据不可以被覆盖;
(2)当气囊被点爆后,触发EDR模块的数据记录功能,这种情况下的事件记录数据一定是被锁定的。
在产品实现上,EDR功能可以如上述集成在其他控制器,也可以由单独的ECU来实现,独立的EDR控制器也需额外配置加速度传感器,两种情况下EDR结构示意图如图1所示。
图1 两种常用EDR结构示意
所有的事件数据均存储在非易失存储器如EEROM中,且通常要可存储多个事件数据,文中数据提取工具所对应的EDR为独立的EDR控制器。
当事件记录被触发后,EDR记录下的车辆信息有3个来源:传感器信号、CAN总线上的车辆信息以及ECU内部计算的数据。
根据车辆的配置情况可将采集的数据分为两类,第一类是配备EDR的车辆必须记录的数据称为A级元素,A级元素主要为影响行车的基本信号如车速、加速踏板、制动踏板等(表1);第二类是在车辆同时配置有相关装置或相关功能时应采集的信号,称为B级元素,B级元素增加了车辆的一些辅助功能对应的信号如牵引力控制系统(TCS)状态信号、自适应巡航系统(ACC)状态信号、自动紧急制动系统(AEB)状态信号等。
表1 A级元素(部分)示例
碰撞事件触发数据记录后,所有数据可以以特定方式存储在EDR存储器内,当用户需要数据时,使用匹配的数据提取工具提取出来即可。CAN总线是当前车辆最常用的节点间通信方式,通过CAN总线读取EDR内数据相对更合理和方便。
统一诊断服务(UDS)提供了一个诊断服务的基本框架,便于用户灵活开发和使用,目前大部分车辆都支持这种诊断服务[6-8]。UDS协议中的“通过ID读数据”即0x22服务非常适合用于数据流读取,因此EDR中的数据读取完全可以通过基于UDS的0x22服务实现,此时EDR数据提取工具(Data Extraction Tool,DET)类似一个诊断仪。本文作者即采用了基于0x22服务来读取EDR数据这种方法,在同EDR建立通信并完成身份验证后,通过CAN总线将存储数据以数据流的形式提取出来。
EDR的数据提取过程(图2)主要可以分为以下几个步骤:
(1)通信连接。DET同EDR在电气上建立连接后,向EDR发送一条连接请求消息;
(2)EDR接收到DET的连接请求后会回复一条连接确认消息;
(3)DET收到连接确认后会向EDR发送车辆的VIN码(该识别码需用户输入);
(4)EDR接收到VIN码后做校验,若VIN码正确,EDR会将存储的事件目录发送给DET;
(5)DET根据事件目录选择要提取的事件后,EDR即开始向数据提取工具发送事件数据。
图2 数据提取工具同EDR交互流程示意
第(1)至(4)步是数据提取工具和EDR的前期交互,均是采用单帧报文发送的形式,第(5)步EDR向DET发送完整的事件数据时采用多帧发送,此时就需设计首帧、流控制帧、连续帧的发送。多帧发送时报文交互示意图如图3所示(基于11位功能寻址)。
图3 数据提取中事件数据发送过程示意
按照上述数据提取流程,数据提取工具从EDR提取出的报文均为原始报文,若要查看和分析事件数据,必须对提取出的报文进行解析以得到各个信号准确的信息,所以对于EDR和数据提取工具要统一一种数据排列方式,才能准确地解析报文信息。本文作者设计的数据提取方式是匹配对应开发的EDR产品,在综合考虑EDR存储效率和数据解析便利性的基础上设计了事件数据发送格式。
EDR记录的事件数据中的信号因不同的采样频率会有采集信号个数的差别,再加上信号长度的差异,并不适合使用常用的数据库的形式进行解析。本文作者设计在上位机软件中添加固定的数据解析模块对提取出的原始数据进行解析和显示。
EDR数据提取工具的通信接口模块用来连接EDR和上位机,有两个主要的作用:(1)将CAN总线上的数据和USB 总线数据相互转换;(2)当车辆因故障或其他原因无法为EDR提供供电电源或是当EDR被从车辆上拆下时,可通过接口模块向EDR供电,完成数据的提取。数据提取工具同EDR的整体连接如图4所示。
数据提取工具通信接口模块主体是使用单片机开发的协议转换电路,该接口模块满足以下要求:
(1)接口模块同EDR通过OBD-Ⅱ接口连接,支持CAN2.0B,同时兼容CAN2.0A规范,符合ISO11898-1/2/3要求;
(2)与上位机通过USB接口连接, USB接口符合USB3.0协议规范,兼容USB2.0和USB1.1;
(3)CAN通信速率范围为10 kbps~1 Mbps,且数据接收速度大于8 000帧/s,发送速度小于1 000帧/s,在通信过程中能满足不漏帧;
(4)接口模块工作时可通过USB口供电,但若需要向EDR提供工作电源(仅限于EDR被拆下,并需要匹配的接口),能通过OBD口提供12 V电压。
图4 EDR数据提取工具连接示意
EDR数据提取工具上位机软件是基于C#语言开发的,主要实现对EDR数据的提取、显示和生成报告等功能,主要功能框图如图5所示。
图5 上位机功能框图
数据提取部分可以完成和EDR的连接控制,交互流程如图2所示。在点击连接按钮并得到连接完成的反馈后,输入该EDR对应的VIN码并进行提取操作后会自动提取3个事件数据并以目录的形式显示。为了快速识别碰撞类型便于选择对应事件,在提取到数据后会自动对3个事件的加速度信号的曲线进行预览。点击某一事件名称可以预览该事件的软硬件编号和记录时间等关键信息,并且通过复选框可以选择存储一个或多个事件的数据(图6)。存储下来的数据文件使用特有的加密方式进行加密并且不可修改,只有同样的软件才可以打开该文件,确保数据的有效性和保密性。
事件数据的显示和分析都由数据分析模块完成,选择某一存储文件并打开后,同提取界面类似,会自动加载3个事件数据中对应的加速度信号的曲线预览。选择想要显示的事件名称并点击“分析”选项后会弹出数据分析窗口,在该窗口中可以在树形报文分类中添加和删除显示的信号。所有被选中的信号都有独立的纵轴,但使用同一时间轴(横轴)。因不同信号采样频率有差别,对采样频率小的信号通过在采集点之间采取平滑过渡处理来确保各个信号的时间轴相同(图7)。
图6 数据提取界面
图7 显示分析模块
生成报告模块可以对选择的事件自动生成PDF格式的文档,这样的报告格式规范、效率高并且易于非专业人员阅读。主要方式是将相应的数据填充到固定的模板中,该报告涵盖了某个碰撞事件中记录的所有信息,并对不同的信号依据其特点以文字说明、列表或曲线的形式体现。同时报告的内容包括必须条目和可选条目。
另外,还为此数据提取软件设计了固定显示功能,可在未生成报告前快速查看对一些重要信息的整理和分析(图8)。
图8 固定显示功能
设计的基于UDS协议的汽车事件数据记录系统数据提取方法主要是通过0x22服务来同EDR进行数据通信,并按照统一的数据格式进行存储和解析。依此方法开发了数据提取工具,利用上位机实现了对事件数据的提取、转存、曲线显示,并能自动生成规范的报告文档。此外,文中设计的提取工具是匹配特定的EDR使用的,当EDR标准确定后可以做部分修改使之具有通用性。