中图分类号:TP311 文献标识码:A 文章编号:2096-4706(2025)07-0186-07
Abstract: In order to solve the problem of configuration and data management of vehicle data recorder for a special vehicle,a data parsing and management software based on WinForm is designed.Its development mainly includes nterface design,databasedesignandcorefunctiondesign.Among them,theinterfaceuses SunnyUI,thedatabaseuses MySQL,thecore functiondesignselectsSocket,FTP,USBandRFICtechnologyandusesmulti-treadedparsingtoparsedataandstoreitinto thedatabase.Usingthemodulardesignmethod,thispaperdesignsthefunctionsofuipmentmanagement,istoricaldtabasic dataand configuration management,soas toreproduce and analyze the data stored inthe vehicledatarecorder,which helps understand thedetailsofvehicleoperationandfault information,thereby improvingtheefciencyof equipment maintenance support.
Keywords:vehicle data recorder;WinForm; SunnyUI;MySQL;modular design
0 引言
为了应对特种车辆信息化中整车工况记录的需求,车载数据记录仪作为车辆的标配,用于分析整车健康状况,监控整个生命周期。文献[1]提供了一种综合保障信息设备,对装备实现精准管控、精准使用、精准维修,提高了装备的使用效益,在部队使用中发挥了重要的保障支持作用。文献[2]提供了一种车辆网络设备数据记录系统及记录装置,解决了传统记录设备工作方式单一及使用环境局限性等缺点,使得车辆装备能够获得及时、有效且经济的维修保障,从而充分发挥装备的效能。文献[3]提供了一种车载数据采集电路及装置,适用于大数据量存储的用车场景。文献[4]设计出了一种通用性强的陆军车载信息采集装置,不仅节约了研制成本,而且维护也十分方便。文献[5]设计研究了一种特种车辆车载数据记录仪,该系统由安装在特种车辆上的车载数据记录仪和专用上位机软件组成。车载数据记录仪通过多个传感器实时采集车辆的各种信息,并进行存储、处理和上传。为了解决某型特种车辆新设计的车载数据记录仪的数据处理问题,本文设计了基于WinForm的数据解析管理软件。
1 系统概述
车载数据记录仪对整车综合电子信息系统进行数据采集,通过车辆控制总线接口获取车辆底盘设备(动力传动总成控制盒、ABS、行车仪表、采集驱动盒等)的运行状态和故障信息,通过网络接口获取车辆核心处理机和任务核心处理机的技术状态参数。存储数据支持通过USB3.0接口和网络接口进行导出,关键数据使用射频接口通过IC卡导出。
数据解析管理软件用于对车载数据记录仪进行配置及数据管理,通过网络、USB及IC卡导出车载数据记录仪存储的数据,进行解析管理,支撑其他业务场景应用,为装备的日常管理、维修保障、研制试验、装备检测、装备健康管理等提供全方位的数据支撑。
整个系统的信息交互关系如图1所示。
2 总体架构
数据解析管理软件基于WinForm可视化设计界面,采用模块化设计思想,实现数据管理、数据导出、解析管理及车载数据记录仪配置管理。按照总体设计思路,各模块作用如下:
1)设备管理。通过网络在线访问车载数据记录仪,对车载数据记录仪存储的设备数据、历史故障进行在线解析查看,导出及清理存储数据,校正数据记录仪时间。
2)历史数据。对网络或USB导出的数据进行入库解析,过滤查询设备及故障数据;读取、解析及入库IC卡数据,过滤查询IC卡数据;离线解析指定的数据文件。
3)基础数据。管理车载数据记录仪采集的车辆身份信息及IC卡信息,避免数据记录仪存储数据无法确定所属车辆。
4)配置管理。对依赖的基础运行环境所需的数据库进行初始化、备份、还原操作;鉴权USB移动存储设备,避免非授权USB移动存储设备转存车载数据记录仪存储数据;对系统的数据库信息、本地存储数据目录、访问记录仪端口IP及读卡器参数进行配置;测试IC卡功能是否正常。
总体设计架构如图2所示。

3 界面设计
相对于DevExpress、DotNetBar及CSkin,界面控件非开源,采用SunnyUI封装的控件进行界面设计及美化。SunnyUI是基于.NetFramework4.0、.Net6、.Net8框架的C#WinForm开源控件库、工具类库、扩展类库、多页面开发框架,具体特点如下:
1)开源控件库。基于.NetFramework4.0,原生控件开发,参考Element主题风格,包含按钮、编辑框、下拉框、数据表格、工控仪表、统计图表等常用控件超过70个,满足常规开发需求。每个控件都精雕细琢,注重细节。包含Element风格主题11个,其他主题6个,可通过多彩主题模式自定义主题。包含主题管理组件UIStyleManager,可自由切换主题。
2)工具库。收集整理开发过程中经常用到的工具类库。
3)扩展库。收集整理开发过程中经常用到的扩展类库。
4)多页面框架。参考Element,包含7种常用框架风格,只需几行简单的代码即可创建多页面程序,其支撑组件包括UIForm、UIPage、UIFrame等。结合常用控件库,即可快速开发WinForm应用程序。
本文采用MDI界面设计方式,通过一二级菜单导航各功能,底部采用状态栏设计界面,界面设计简洁、明了,运行界面如图3所示。

4数据库设计
MySQL是最流行的关系型数据库管理系统之一,采用SQL语言访问数据库,通用性较强。目前使用该数据库的主流公司与组织有Facebook、GitHub、YouTube、Twitter、PayPal、诺基亚、Spotify、Netflix等。MySQL软件采用了双授权政策,分为社区版(免费)和商业版。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库[6]。
考虑单机使用环境,数据处理后入库量在百万级,故采用MySQL作为后台数据存储。设计出用户信息表、IC卡信息表、车辆信息表、DM1故障表、自编码故障表、CAN数据表、网络数据表、故障数据表及IC数据表。其中,用户信息表、IC卡信息表、车辆信息表、DM1故障表、自编码故障表存储软件使用的基础信息;CAN数据表、网络数据表、故障数据表及IC数据表存储数据解析结果。以车辆信息编号1、编号2作为外键,确认车载数据记录仪解析后的数据所属车辆。
用户信息表用于存储用户信息,包括用户编码、用户名称、用户角色及创建时间字段,如表1所示。

IC卡信息表用于存储IC卡信息,包含卡编码、编号1、编号2、创建时间及卡用途字段,如表2所示。

车辆信息表用于存储车辆信息,包含编号1、编号2、设备类型、车辆类型、车辆编码、设备编码、列装时间及车辆用途字段,如表3所示。

DM1故障表用于存储DM故障信息,DM作为J19139协议定义的诊断故障信息,以便做故障诊断及辅助维修,包括设备名称、SPN、FMI及故障描述字段,如表4所示。

自编码故障表用于存储车载数据记录仪整理的自定义故障信息,包括设备名称、设备内码及故障描述字段,如表5所示。

CAN数据表用于存储解析的CAN报文信息,包括编号1、设备名称、发生时间、毫秒时间、CANID、CAN数据长度、CAN数据字段,如表6所示。

网络数据表用于存储解析的网络报文信息,包括编号1、设备名称、发生时间、毫秒时间、网络数据字段,如表7所示。

故障数据表用于存储解析的故障文件信息,包括编号1、设备名称、发生时间、毫秒时间、故障类型、故障信息,如表8所示。

IC数据表用于存储解析的IC卡信息,包括编号1、编号2、写卡时间、当次启动数、当日记录数、故障记录数、总摩托小时、总负载摩托小时、总里程、本次里程等,如表9所示。

采用ADO.NET模型,项目中添加对MySQL.Data.dll的 引用,导入(Imports)MySQL.Data和MySQL.Data.MySQLClient两个命名空间,对创建连接、打开连接、关闭连接、增删改查、事务处理等数据库操作进行封装,形成MySQLHelper类。后续数据库操作只需调用此类的相应方法即可。
5 核心功能设计
5.1 网络通信设计
为与车载记录仪进行消息交互,采用Socket通信传递,其中车载数据记录仪作为Socket服务端,数据解析管理软件作为Socket客户端。由于数据量小、传输时间短、性能要求高,采用面向连接的TCP协议进行交互。引入System.Net.Sockets命名空间的TcpClient类和NetworkStream类,TcpClient类用于连接建立、监听及关闭,NetworkStream类用于网络数据流读写[7]。
通信交互格式按同步字符、令牌、消息标识、命令码、错误码、数据区。
为了保证数据安全性,网络连接时采用AES加密方式。AES是广泛使用的对称加密算法,是一种基于有限域的对称密码机制。AES加密算法将明文和密钥作为输入,按照特定的算法和流程进行计算,生成密文作为输出。
数据解析管理软件进行设备连接时,发送开始同步请求。车载数据记录仪接收到后,返回一串数据区。数据解析管理软件对数据区进行AES加密后,发送同步校验请求。车载数据记录仪根据密钥解密比对成功后,允许数据解析管理软件进行后续操作,包括访问车载数据记录仪存储的数据,对车载数据记录仪进行数据查看、数据导出、数据清理及网络授时。连接鉴权流程如图4所示。为了检测连接状态,采用心跳机制,当超过心跳时间,断开连接。

5.2 网络传输设计
网络传输采用FTP进行。FTP是一种在网络中进行文件传输的广泛使用的标准协议。作为网络通信中的基础工具,FTP允许用户通过客户端软件与服务器进行交互,实现文件的上传、下载和其他文件操作。FTP工作在OSI模型的应用层,通常使用TCP作为其传输协议,确保数据传输的可靠性和顺序性[8]。
车载数据记录仪作为FTP服务端,数据解析管理软件作为FTP客户端。引入System.Net命名空间的FtpWebRequest 类、FtpWebResponse类、WebRequestMethods类及NetworkCredential类,以及System.IO命名空间的FileStream类及Stream类,将登录、上传、下载、获取指定文件列表等功能封装成FTPHelper类,为相关功能模块调用提供公共函数。
FTP传输先建立控制连接,控制连接成功建立后,进行身份验证,身份验证成功后,才可进行查看、上传及下载操作。涉及网络传输设计,主要包括网络导出、车辆信息上传及下载。
网络导出通过遍历数据记录仪存储数据结构目录,按照日期、CAN通道、设备进行过滤查询,查询后通过进度条显示导出进度,导出存储数据。网络导出界面设计如图5所示。

当设备连接成功后,若车载数据记录仪已存在录入的车辆身份信息,下载车辆身份信息文件,并对其进行展示,如图6所示;若不存在,则选择车辆信息列表中的车辆,进行录入操作,并上传此文件至车载数据记录仪中,如图7所示。


5.3 USB传输设计
USB存储介质凭借其容量大、体积小、传输速度快、易于携带等特点已在各类信息系统中得到广泛使用,给信息的传输和交换带来很大方便[。如果不加防护,可能会有人将车载数据记录仪中的关键数据瞬间拷走。为了保证USB数据传输安全,数据解析管理软件将USB存储设备的序列号和过滤条件采用
AES进行加密处理,生成配置文件,其时序图如图8所示。

按照日期、CAN通道、设备信息加密写入配置到USB存储设备,通过读取配置,获取写入配置信息,配置界面设计如图9所示。
开始时间 2024-11-27 自 结束时间 2024-11-28数据类型□全选/全不选 CAN通道□发动机 □abs □amt □行车仪表 □灭火抑爆控制盒□三防控制盒 □电气操控面板 □驾驶舱采集驱动盒 □选挡器□电源管理驱动装置口动力传动总成控制盒 □数据记录仪口车辆核心处理机□动力舱采集驱动盒 □载员舱采集驱动盒 □动力舱接口转换盒□综合报警器 □集成油液传感器 □蓄电池检测装置□底盘核心机 □任务核心机 □故障信息读配置 写配置 关闭
5.4 IC传输设计
Mifare1非接触式IC卡是荷兰NXP半导体公司发明的。Mifare1卡的RF非接触式接口符合ISO/IEC14443TYPEA标准[o]。Mifare1卡具有使用广泛、技术成熟、性能稳定等优点。它制卡成本低,使用简单,抗干扰能力强,安全性好,适合于一卡多用。
本系统使用的IC卡类型为S70卡,存储空间为4 K B ,分为40个扇区。 0 ~ 3 1 扇区由4块(块0、块1、块2、块3)组成, 3 2 ~ 3 9 扇区由16块组成。40个扇区的256个块按绝对地址编号为 0 ~ 2 5 5 。其中,每个扇区的最后1块均为密钥块,扇区0的块0为厂商代码,不可使用。可用空间为3440字节,约为 3 . 3 6 K B 。对扇区进行合理利用,将车辆信息、关键设备状态信息、当日记录、当次记录及故障记录写入分配至扇区中。
通过DlImport方式调用读卡器驱动库。DIlImport是C#中用于调用非托管代码的一种方法,特别是当需要在C#程序中使用由 C++ 等语言编写的DLL文件时,将驱动函数库转化为C#可调用的驱动函数。连接读卡器、打开IC卡、关闭端口、验证IC卡的扇区授权密码、读块数据、写块数据、获取错误信息及清除错误信息等常用操作,调用驱动函数并封装成CardFunc类。
IC射频操作流程如下:首先寻卡,防碰撞,选定卡片,读取IC卡中数据,验证是否为专用的IC卡。验证正确后,根据IC卡扇区地址,完成IC卡的读写操作。
数据解析管理软件用于对IC卡进行初始化,分配所属车辆身份信息。初始化成功后的卡,才能被车载数据记录仪识别,并转存关键信息数据,如图10所示。

5.5 数据解析设计
车载数据记录仪存储的设备数据及故障信息以数据文件的形式进行存储,按照同步字符、检验和、设备码、信息码、数据长度、时间戳、数据内容的格式进行文件存储。
数据解析管理软件按照设备、日期进行过滤,选择导出数据文件并进行解析入库。采用多线程方式对数据文件进行解析,通过帧头判断数据包的开始,设备码判断所属设备,信息码判断数据类型,数据长度决定读取的数据长度,计算校验和并与读取的校验和进行比对。若一致,则存储到数据库中;若不一致,则丢弃。数据入库界面如图12所示。

数据解析管理软件对读取的IC卡进行身份信息确认,判断其是否在IC卡信息列表库中及是否已入库。若未入库,则按扇区协议解析IC卡信息。解析成功后,将信息写入IC卡记录表中,并展示解析结果,解析结果界面如图13所示。

6结论
本文所开发的数据解析管理软件作为车载数据记录仪的配套软件,基于WinForm框架,界面采用SunnyUI设计,美观、简洁、友好。数据处理采用数据传输技术、数据库技术、多线程解析技术及IC卡技术,支持配置记录仪的身份信息,快速导出记录仪存储数据,在线及离线解析数据,为后续车辆故障诊断及预测性维修提供数据支撑。随着军用相关设备国产化的要求,后续软件需完成从Windows系统向国产操作系统的移植。
参考文献:
[1]张红,黄万志,刘国亮,等.一种综合保障信息设备:CN201621306439.8[P].2017-09-08.
[2]刘国亮,王闯,张中义.一种车辆网络设备数据记录系统及记录装置:CN201810089357.X[P].2018-06-29
[3]刘国亮,王闯,陈悦峰,等.一种车载数据采集电路及装置:CN201921189399.7[P].2020-02-28.[4]刘国亮.装甲某型数据采集装置的设计与实现[J].工业控制计算机,2020,33(2):26-27+29.[5]郭超维.基于北斗的野外特种车辆车载数据记录仪的研究[D].太原:中北大学,2024.[6]汪文彬,吴淑婷,马玉春.树莓派在软件工程专业教学中的应用研究[J].软件,2020,41(8):1-4.
[7]刘志军,牟凤瑞.基于C#套接字TCP网络通信研究[J].沧州师范专科学校学报,2007(3): 3 9 - 4 0 + 4 2 业
[8]喻波,苏金树,杨强,等.网络协议软件漏洞挖掘技术综述[J].软件学报,2024,35(2):872-898.
[9]段翼真,王晓程,王斌.USB存储设备安全监控系统的设计与实现[J].计算机应用,2010,30(S1):102-1 0 5 + 1 0 8
[10]王悦.RFID安全认证协议研究[J].网络安全技术与应用,2020(5):42-44.
作者简介:韩超(1990一),男,汉族,安徽合肥人,软件工程师,硕士,研究方向:机器学习、数据采集、检测仪、运维监控系统开发;夏富(1984一),男,汉族,安徽淮南人,软件工程师,本科,研究方向:数据采集、检测仪、运维监控系统开发;吴庆福(1990一),男,汉族,安徽六安人,软件工程师,本科,研究方向:数据采集、检测仪、运维监控系统开发;池东亮(1990一),男,汉族,河北张家口人,软件工程师,硕士,研究方向:嵌入式系统、数据采集、运维监控系统开发;张红(1967一),男,汉族,安徽合肥人,项目管理师,本科,研究方向:车载电源、数据采集、运维监控系统开发。