-
智能汽车功能配置复杂,车载电子控制单元(electronic control unit, ECU)数量多,对行车数据处理效率要求高。车辆各域控制器(domain control unit, DCU)管理并采集ECU数据,通过CAN总线传输到汽车事件记录仪(黑匣子),快速准确地提取这些数据是检测与分析车辆行驶状态的关键。车载数据提取包括数据导出及数据处理两部分。数据导出方面,文献[1]利用车辆CAN-BUS实时数据采集系统挖掘和检测行车信息,建立车辆异常检测系统。文献[2]通过CAN总线网络实现车辆数据提取。文献[3]利用串口通信将车辆运行数据发送至监测站,实现车辆路线的跟踪。以上方式均能实现车载数据的稳定导出,但有线通信受地点和物理接口限制,传输速度慢、移动性较差。文献[4]提出了一种基于红外通讯的VeLC系统,实现车载光通信。文献[5]将无线通信引入到车载数据采集系统中,实现无线局域网数据通信。但无线信号不稳定,误操作可能产生传输中断问题,多任务断点续传方法可记录中断处信息,避免数据重复传输。FTP(file transfer protocol)协议是一种专用于远程文件传输的应用层协议[6]。现有的FTP工具进行多任务传输前会临时创建一个存储文件名称等信息的列表,文件传输数目越大,临时空间就越大。传输工具异常中断后临时空间销毁,再次连接只能续传上次中断处的单个文件,其余任务只能重选重传。为优化任务管理,文献[7]设计了一种新的调度方式,通过预先预约将文件分块,从而实现网络资源的最优化分配,但该方式无法应用于文件数目较多的情况。文献[8]提出一种可扩展的动态哈希方案,用于记录分布不均匀的文件,该方案适用于多文件的加解密,但哈希过程会影响传输效率。文献[9]提到日志归并树结构,并在此基础上对批量搜索做出改进,遍历树的方式切换速度快,但文件结构本身是利用叶子和非叶子结点分别保存文件和文件夹信息的树,算法本身有冗余。文献[10]提出扁平轻量级文件系统,使目录内容和树结构扁平化,提高访问速度。
数据处理方面,导出完成后,需对其中的有效数据进行甄别以便分析。车载域控制器产生的日志信息都是周期性的时间序列数据,在大量日志信息中查找指定时间段的数据帧可看作精确线性搜索问题[11]。常见的线性搜索方法有进退法、二分法、黄金分割法等[12],多用于函数值可计算的单谷函数。log文件中数据帧长度不固定,帧之间没有分隔标识,以上检索方式均不适用。共轭梯度法、牛顿切线法[13]等不适用于离散的时间戳序列,而传统顺序检索方式效率太低。为提高智能车载域控制器的数据传输效率及有效数据的搜索速度,本文基于FTP传输方式设计新的导出任务管理方法,优化传统断点续传方法,使之能应用于多文件及文件夹的任务传输。在有效数据的搜索方面,通过分析车载日志数据帧特点,提出变步长搜索方式,实现时间序列数据快速精确搜索定位,减少无效数据处理时间损耗。
-
FTP文件传输异常中断时,断点续传可以将文件指针直接定位到中断位置,避免数据重复传输。现有的多任务管理方式多采用树形结构,任务中断后再次重启需要重新生成目录树,这种方式效率不高。传输任务过程中,利用不同文件名代表不同任务,文件夹上下层切换操作相对独立,即对目录树的每次操作只能用到一小部分,利用这一特性,可对导出前获取传输任务的步骤作出改进,将生成树目录的步骤分解为每次进入文件夹后独立生成临时子项列表。在这种管理方式下,系统完成列表所有子项操作后将该列表销毁,降低同级文件夹之间的耦合性。
用户设定日志导出条件后由系统直接进行任务解析,选择需要导出的log文件,如图3所示。图中1~5为用户创建新导出任务的过程,2a、3b为断点续传任务流程路线。可以看到,新系统在遍历文件树过程中,进入下层非叶子结点时创建临时字符串列表,该列表在退出当前文件夹后自动销毁。根据服务器端获取的文件信息特点[16],系统利用换行符统计文件数目,将文件、文件夹名截取出来存储至该列表。依靠这些信息实现文件树上下层切换以及文件绝对路径的拼接。文件绝对路径分为3个部分:1)用户在界面显示的列表中手动双击进入的文件夹名称;2)遍历目录树过程系统自动进入的非叶子子目录;3)树叶子结点存储的文件名称。这种方式与传统方式相比,实现了各级文件路径与名称的分离。导出任务进行时,各级文件信息都是从服务器端临时获取,信息独立为多任务断点续传提供了条件。文件分多包传输,除最后一包,其余包均为固定大小。每包传输过程分为获取缓冲区数据和写入本地文件两个步骤,每一步都有相应反馈。若反馈传输出错,则自动重传当前文件。传输完成后根据文件字节数对比判断传输是否成功。
任务断点续传是根据上述文件名称存储特点,在任务管理阶段创建临时文件,利用任务路径记录导出进度。每完成一条任务删除相应记录,保证下次传输可以精确定位到尚未完成的任务。
-
前面将包含有效数据的多个log文件导出到本地之后,其中的无效数据数量仍然庞大,需进一步处理。如图4所示,先将导出到本地的log文件按时间顺序合并成一个文件,该文件中的数据仍按时间顺序存储。因此,有效数据必然连续存放,无效数据只存在于文件头和尾。找到首个有效数据帧后,逐帧进行格式转换,直到再次查找到无效帧后停止转换。因此本文的重点就是研究如何快速找到第一帧有效数据,跳过文件开头的无效数据。
日志数据是按时间戳单向递增的离散型序列,如图5a所示。若想快速查找有效数据首帧并计算其帧数,应将问题转换成线性搜索问题求解。线性搜索问题是给定条件为指定闭区间和已知函数体,求单谷函数最优点;而当前问题是已知最优点函数值和函数整体趋势,求解目标帧在海量数据中的精确位置。将时间值T作为因变量,在日志中的帧数n作自变量,建立数学模型:
$$ T = f(n)\begin{array}{*{20}{c}} {}&{} \end{array}n \in {N^*} $$ (1) 车载ECU日志的每一帧数据由各个域控制器定时产生,车辆运行时,每秒采集的总帧数波动不大,时间戳可近似看作线性增长。设最优点时间为Tb,计算当前帧时间与最优点时间差的绝对值,可以直观看出当前时间与最优点的“距离”,从图5b可以看出,此时区间内已明显存在“最优点”。
$$ g(n) = |T - {T_b}| = |f(n) - {T_b}|\begin{array}{*{20}{c}} {}&{} \end{array}n \in {N^*} $$ (2) 从几何意义上来看,解决该问题实际上是搜索函数在有限区间的最小点。由于时间−帧数函数无法求导,所以本文通过改进hooke-jeeves搜索法,使其更适用于不定长单调离散数据搜索。
hooke-jeeves算法是一种非线性函数优化方法,利用迭代计算逐渐逼近目标函数最优解[17]。该算法的基本思路为:查找过程分为探测和爬行两种操作,其中探测操作寻找函数下降方向,确定下一个数据点,如果新的数据点比原基点更优,则进行爬行操作,继续寻找下一点,若新点劣于原基点,则退回到基点重新探测,具体分为以下5个步骤。
1) 取一个点作探测基点
$ {x_1} $ ,n个方向分别设为$ {e_i}(i = 1,2, \cdots ,n) $ ,设定初始步长为$ \delta $ ,步长缩减率为$ \beta \in (0,1) $ ,步长增加率$ \tau > 1 $ ,加速因子$ \alpha \geqslant 1 $ ,精度要求为$ \varepsilon $ ,置$ {t_1} = {x_1} $ ,循环步数$ k = 1 $ ,$ i = 1 $ 。2) 若探测到更优点
$ f({t_i} + \delta {e_i}) < f({t_i}) $ ,则置$ {t_{i + 1}} = {t_i} + \delta {e_i} $ 。3) 若最终
$ i < n $ ,则置$ i = i + 1 $ ,转步骤2),若以上情况都没有实现函数值下降,则$ {t_{i + 1}} = {t_i} $ ,转步骤5)。4) 若
$ f({t_{n + 1}}) < f({x_k}) $ ,即探测结果优于此次探测出发点,则进行爬行操作,置$ {x_{k + 1}} = {t_{n + 1}} $ 。令$ {t_i} = {x_{k + 1}} + \alpha ({x_{k + 1}} - {x_k}) $ ,置$ k = k + 1 $ ,$ i = 1 $ ,转步骤2)。5) 若
$ \delta < \varepsilon $ ,则停止迭代,得到点$ {x_k} $ (满足精度要求的“最优点”),否则置$ \delta = \beta \delta $ ,$ {t_1} = {x_k} $ ,$ {x_{k + 1}} = {x_k} $ ,转步骤2)。搜索过程中步长根据相应参数进行调整,且计算结果好坏与初值选择相关。但是在有效数据搜索过程中,初值固定且在数据量很大的情况下步长不易确定。本文以hooke-jeeves算法为基础,提出更适用于日志数据查找的变步长提取方法。
搜索准备阶段,首先计算首帧与目标帧时间差。若差值大于100 s,则将时间戳相同的数据帧分为一组,可大致看作与图5b类似的线性问题,利用该特性快速逼近目标值;否则,直接进入搜索阶段。从图2可以看到,从时间戳到行驶数据长度之间共14字节。根据该特点,直接计算无需逐帧转换的数据字节数,据此改变文件内部指针指向,避免每帧时间戳的提取转换及比对。而Data字段长度由DLC指定,所以搜索过程中每帧DLC部分仍需计算。一个5 MB的log文件大约有14万帧,跳过大部分无效帧,可以大大减少数据处理时间。根据域控制器定时产生数据的特点,算法首先提取前20帧数据,利用不同ID大致估计域控制器数目为num,对试验车辆进行统计,得出每个域控制器每秒大约反馈50~140帧数据。为保证不越过最优点,数据帧线性部分增长斜率
$ h $ 设置为:$$ h = 50{\text{num}} $$ (3) 计算目标时间
$ {T_t} $ 与首帧时间$ {T_1} $ 的秒数差,得到首次跳转距离:$$ l = ({T_t} - {T_1})h $$ (4) 跳转后记录当前帧时间
$ {T_i}(i = 1,2, \cdots ) $ ,若$ ({T_i} - {T_1}) < 10\;{\text{s}} $ ,则进行下一步搜索,否则重复上述过程,最后记录内部指针所在帧的帧数$ {n_c} $ 与时间戳时间$ {T_c} $ 。搜索阶段,距离目标点不大于100 s时,此时数据帧不再适合分组讨论,线性方式不适用该区间的目标搜索,此时问题变换为类似图5c曲线的单谷函数最优点搜索问题。利用hooke-jeeves算法进一步逼近,该算法需要对不同方向函数值下降速度进行比对以保证最优。但是log文件仅需朝着帧数增加的方向搜索,所以该搜索模式可以进行简化。设定步长为k,步长缩减率
$ \beta = 0.5 $ ,将探测与爬行两步结合,首先计算搜索准备阶段记录的时间$ {T_c} $ 与目标时间$ {T_t} $ 的差值:$$ \Delta T = {T_t} - {T_c} $$ (5) 逼近过程如图6所示,每次跳转之后需计算
$ \Delta T $ 。若$ \Delta T > 2 $ ,则按照设定步长继续跳转,若$ 1 < \Delta T \leqslant 2 $ ,则设定步长为$ k = \beta k $ ,期间若有$ \Delta T < 0 $ 的情况则提前开始减速。当$ \Delta T \leqslant 1 $ 时将步长设为1,单帧搜索直到查找到第一帧满足设定条件的数据。
Efficient Transmission and Variable Step Extraction for Data in Intelligent Vehicle Domain Controller
-
摘要: 首先,针对智能车载域控制器的多任务信息特点,提出了基于多任务网络通信的数据导出系统。该系统将任务管理所需绝对路径分解为低耦合度的子目录字段,把单文件断点续传功能扩展到多任务场景,提高数据传输效率。其次,根据行车数据存储特点提出变步长数据提取方法,利用时间戳信息实现有效数据的快速检索定位。实验结果表明,该方法实现了数据的高效传输和准确提取,证明了该方法的有效性。Abstract: In view of the multi-task information characteristics of the intelligent vehicle domain controller, a data export system for multi-task network communication is proposed. The system decomposes the absolute path required by task management into sub directory fields with low coupling, extends the function of single-file breakpoint resuming to multi-task scenarios to improve the efficiency of data transmission. Next, according to the storage characteristics of driving data, a variable-step data extraction method is proposed, and the time stamp information is used to realize the rapid retrieval and positioning of effective data. The experimental results show that the method achieves efficient data transmission and accurate extraction, which proves the effectiveness of the method.
-
Key words:
- black box /
- breakpoint resume /
- data extraction /
- FTP transfer /
- hooke-jeeves /
- pattern search /
- variable step size
-
[1] LI X H, ZHANG H Y, MIAO Y B, et al. CAN bus messages abnormal detection using improved SVDD in internet of vehicle[J]. IEEE Internet of Things Journal, 2021, 9(5): 3359-3371. [2] HAN M L, KWAK B I, KIM H K. Event-Triggered interval-based anomaly detection and attack identification methods for an in-vehicle network[J]. IEEE Transactions on Information Forensics and Security, 2021, 16(3): 2941-2956. [3] OLIVEIRA F J N. A real-time embedded system for monitoring of cargo vehicles, using controller area network (CAN)[J]. IEEE Latin America Transactions, 2016, 14(3): 1086-1092. doi: 10.1109/TLA.2016.7459583 [4] ESO E, GHASSEMLOOY Z, ZVANOVEC S, et al. Fundamental analysis of vehicular light communications and the mitigation of sunlight noise[J] IEEE Transactions on Vehicular Technology, 2021, 70(6): 5932-5943. [5] HUANG C C, LIN L C. Wireless power and bidirectional data transfer scheme for battery charger[J]. IEEE Transactions on Power Electronics, 2018, 33(6): 4679-4689. doi: 10.1109/TPEL.2017.2725940 [6] NETTO E J, PAULICENA H E, SILVA A R, et al. Analysis of energy consumption using HTTP and FTP protocols over IEEE 802.11[J]. IEEE Latin America Transactions, 2014, 12(4): 668-674. doi: 10.1109/TLA.2014.6868868 [7] RAJAH K, RANKA S, XIA Y. Advance reservations and scheduling for bulk transfers in research networks[J]. IEEE Transactions on Parallel and Distributed Systems, 2008, 20(11): 1682-1697. [8] DU D H C, TONG S R. Multilevel extendible hashing: A file structure for very large databases[J]. IEEE Transactions on Knowledge and Data Engineering, 1991, 3(3): 357-370. doi: 10.1109/69.91065 [9] ZHAO X, LAM K Y, ZHU C J, et al. MVLevelDB: Using log-structured tree to support temporal queries in IoT[J]. IEEE Internet of Things Journal, 2021, 21(9): 1109-1120. [10] FU S, HE L, HUANG C, et al. Performance optimization for managing massive numbers of small files in distributed file systems[J]. IEEE Transactions on Parallel and Distributed Systems, 2014, 26(12): 3433-3448. [11] 王荣德, 荆一楠, 王欢, 等. 基于时间戳索引的log文件并行检索技术研究[J]. 计算机应用与软件, 2011, 28(2): 145-147. doi: 10.3969/j.issn.1000-386X.2011.02.043 WANG R D, JING Y N, WANG H, et al. Research on log file parallel research technology based on timestamp indexing[J]. Computer Applications and Software, 2011, 28(2): 145-147. doi: 10.3969/j.issn.1000-386X.2011.02.043 [12] MOHAMMADI H, SOLTANOLKOTABI M, JOVANOVIC M R. On the linear convergence of random search for discrete-time LQR[J]. IEEE Control Systems Letters, 2020, 5(3): 989-994. [13] ALESSANDRI A, GAGGERO M. Fast moving horizon state estimation for discrete-time systems using single and multi iteration descent methods[J]. IEEE Transactions on Automatic Control, 2017, 62(2): 4499-4511. [14] BOZORGI A M, FARASAT M, MAHMOUD A. A time and energy efficient routing algorithm for electric vehicles based on historical driving data[J] IEEE Transactions on Intelligent Vehicles, 2017, 2(4): 308-320. [15] MARCHETTI M, STABILI D. READ: Reverse engineering of automotive data frames[J]. IEEE Transactions on Information Forensics and Security, 2019, 14(4): 1083-1097. doi: 10.1109/TIFS.2018.2870826 [16] MACHAEL K G. FTP access as a user-defined file system[J]. Operating Systems Review, 1994, 2(28): 73-80. [17] WANG S, DA X, LI M, et al. Adaptive backtracking search optimization algorithm with pattern search for numerical optimization[J]. Journal of Systems Engineering and Electronics, 2016, 27(2): 395-406. doi: 10.1109/JSEE.2016.00041 [18] 孙韩林, 金跃辉, 高雪松, 等. FTP协议的测试及分析[J]. 计算机工程, 2008, 34(23): 133-138. doi: 10.3969/j.issn.1000-3428.2008.23.048 SUN H L, JIN Y H, GAO X S, et al. Measurement and analysis of FTP protocol[J]. Computer Engineering, 2008, 34(23): 133-138. doi: 10.3969/j.issn.1000-3428.2008.23.048 [19] LIU K. TCP performance over mobile data networks[D]. Hong Kong, China: The Chinese University of Hong Kong, 2004.