APP下载

基于通信矩阵转化成DBC数据库的研究

2018-10-08曾桂芬

汽车电器 2018年9期
关键词:报文类别表格

曾桂芬

(上汽通用五菱汽车股份有限公司,广西 柳州 545007)

在汽车网络测试中,往往需要工作人员将通信矩阵的表格文件制作成DBC数据库文件。而这一过程往往会耗费工作人员较长的时间做文件转换处理,因此会降低数据转换效率。

针对上述问题,本文提出一种方法能通过自动读取表格文件中的通信矩阵数据来写入DBC文件,从而节省时间,加快数据转换速率,由此提高数据转换效率。其设置了多个功能窗口,便于用户的理解与使用;自动化水平高,一键式转换,转换过程稳、准、快。

1 系统总体架构

该方法主要包括:通过整理建立汽车电子电器架构设计中通信层设计工程师需求;整理分析通信矩阵模板用于网络通信设计;运用C++程序编写解析算法解析通信矩阵,并编写算法按照DBC 标准格式生成DBC文件。具体实现方法如图1所示。

1)在Excel中确定通信矩阵模板,填写基本信息。

2)调用POI函数解析Excel。新建工程和类,并将POI组件导入到工程中,并准备一个Excel文件,放置在D盘的根目录。打开Excel文件,获取表格信息,循环读取表格并输出其内容。

3)通过自己对网络测试的深度研究,整理出一张错误检索表,包括70多项检索内容,使得系统通过检索能自动识别填写的Excel中存在的错误。比如检查对象为报文类型,检查内容为报文类型是否为空,报文类型是否正确(报文类型只能是Normal、NM、Diag),模版对应的位置是否正确,错误级别是错误还是警告。

4)建立链表结构存储Excel数据项。建立信号类、报文类、节点类用于存放通信矩阵中的信息属性。①信号类:信号名称、信号描述、开始字节、开始位、信号的发送类型、位的长度、数据类型、参数因子、偏移量、物理的最大值、物理的最小值、总线值最大值、总线值最小值、初始值、无效值、非使能值、单位、信号值描述、接收节点、BM的ID、车辆级别。②报文类:报文名字、报文类型、报文ID、报文的发送类型、报文长度、报文的发送节点、报文的描述、报文周期时间、延迟时间、个数等。③节点类:名字、描述、节点备注,建立报文链表、信号链表、节点链表,链表中存放通信矩阵内容。

5)根据vector设计的DBC文件格式对链表结构中的数据进行解析,得到解析结果。

6)按文件格式填写DBC文件。

2 读取通信矩阵

通信矩阵模板为Excel表格文件,通信矩阵模板中具有固定列表头,如:报文名称、报文类型、报文标识符、报文发送类型、报文周期时间、报文长度、报文描述、信号名称、信号排列格式、信号起始字节、信号起始位、信号发送类型、信号长度、信号数据类型、信号精度、信号偏移量、信号物理最小值、信号物理最大值、信号总线最大值、信号总线初始值、信号总线无效值、信号总线非使能值、信号值描述、报文发送的快速周期、报文快速发送的次数、报文延时时间、发送节点、接收节点等表头,而表头下有相应的内容,如图2所示。通信矩阵的数据,是由用户或工作人员根据需求填写的基本信息,如报文名称M5G、报文标识符0XC000等。

通信矩阵模板可以从预先设置好的包含多种模板的数据库系统中下载得到,之后由用户根据需求在模板中填写数据信息,从而得到包含通信矩阵数据的表格文件。

本方法中可以利用POI(Apache PO)读取表格文件中的通信矩阵数据。由此,调用POI函数对.xls或.xlsx格式档案读和写的功能,通过新建工程和类,从而将POI组件导入到工程中,再将表格文件放置到合适的存储目录下,从而打开该表格文件,实现对表格文件中的通信矩阵数据的读取,并输出读取出的通信矩阵数据。

图2 通信矩阵

3 解析通信矩阵

对通信矩阵数据进行解析,是指对通信矩阵数据中的信息进行解析来得到能够写入到DBC文件中的内容。具体的,本研究中可基于预设的DBC文件格式对通信矩阵数据进行解析,从而得到解析结果。该解析结果中为DBC文件格式对应的信息内容。

同时可以利用通过网络测试研究所整理出的错误检索表(图3),来自动识别表格文件如Excel中存在的错误。

在检测出错误之后,发送提示信息给用户,由用户进行修改操作,本实施例在接收用户的修改操作之后,对相应的数据进行更正,从而提高表格文件的准确率,进而提高转换后得到的DBC文件的准确性。

图3 解析错误表

4 生成DBC数据库

按照DBC文件格式(图4),将解析结果中的数据写入到生成的DBC文件中,从而得到表格文件转换后的DBC文件,可以用于后续测试等应用。

首先,建立链表结构。链表结构中包括至少一个链表类别,链表类别包括至少一个类别属性,类别属性具有属性值,在新建的链表结构中类别属性的属性值为空。

通过建立链表结构,包含报文链表、信号链表、节点链表等多个链表类别,用于存放通信矩阵数据中的相应内容。

将通信矩阵读取出的数据存储在链表结构中。其中,通信矩阵数据中包括至少一个信息类别,信息类别包括至少一个信息属性,信息属性具有属性值。通信矩阵数据中信息类别与链表结构中链表类别相对应,将信息类别中的信息属性与链表类别中的类别属性相对应,将信息属性的属性值与类别属性的属性值相对应,从而将通信矩阵数据中的信息内容按照以上的对应关系存储到链表结构中。

图4 DBC 文件图

基于预设的DBC文件格式对链表结构中的通信矩阵数据进行解析,从而得到解析结果,进而按照DBC文件格式,将解析结果中的数据写入到生成的DBC文件中,完成Excel表格文件到DBC文件的转换。

研究通过建立链表结构来存储通信矩阵数据,再进行数据解析,从而达到将通信矩阵数据按照类别拆分的目的,由此经过数据转换后,能够得到拆分的DBC文件,无需单独进行数据库拆分操作,进一步提高了数据转换效率。

5 方法验证分析

本方法创新点在于发明了一种快速通过Excel文件创建DBC数据库的方法。通过整理建立汽车电子电器架构设计中通信层设计工程师需求,整理分析通信矩阵模板用于网络通信设计,运用C ++程序编写解析算法解析通信矩阵,并编写算法按照DBC 标准格式生成DBC文件,减少DBC文件建立时间。如图5~图7所示。

图5 DBC部分文件图

图6 通信矩阵部分图

6 结束语

本方法对通信矩阵的格式规范,用代码分析其内容,自动生成汽车测试所需要的通信数据库。快速完成通信矩阵与DBC数据库之间的转换功能的运用,可以把工程师从繁琐复杂的数据库建立工作中解脱出来,工程师只需要填写Excel的通信矩阵即可进行数据库的创建。

图7 Excel to DBC过程图

通信矩阵转DBC数据库完成通信矩阵的错误检测功能,错误检测功能会根据DBC数据库的相应规则进行通信矩阵的检测,并指导工程师完成通信矩阵的修改,此功能保证了通信矩阵可以正确快速地转化为数据库。数据库的拆分还可以帮助工程师快速拆分不同节点的接收信号,大大提高了工作效率。

猜你喜欢

报文类别表格
基于J1939 协议多包报文的时序研究及应用
以太网QoS技术研究及实践
《现代临床医学》来稿表格要求
组成语
一起去图书馆吧
浅析反驳类报文要点
一种基于FPGA的网络串口管理系统的设计
简析基于概率预测的网络数学模型建构
履历表格这样填
表格图的妙用