(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 (43)申请公布日 (21)申请号 202011285189.5
(22)申请日 2020.11.17
(71)申请人 重庆美沣秦安汽车驱动系统有限公
司
地址 400000 重庆市九龙坡区兰美路701号
附1号
(72)发明人 唐远明 孙德山 王礼亮 饶宇衡
丁帮伟 周康春 陈勇 宋丽
李超 洪继超 江昆 田小杰
(74)专利代理机构 成都华风专利事务所(普通
合伙) 51223
代理人 张巨箭
(51)Int.Cl.
H04L 12/26(2006.01)
H04L 12/40(2006.01)
G06F 21/60(2013.01)
(54)发明名称一种基于CAN通信矩阵的汽车通信数据转换方法及存储介质(57)摘要本发明公开了一种基 于CAN通信矩阵的汽车通信数据转换方法及存储介质,所述方法包括:对包含汽车通信数据的CAN通信矩阵文件进行拆分并读取拆分后的数据;根据所述拆分后的数据创建一个矩阵并进行旋转,对旋转前后的矩阵进行比较,基于比较的结果得出真实的CAN通信矩阵文件信息。本发明的数据转换方法实现从CAN 通信矩阵文件到新的CAN通信矩阵文件,解决不同车厂间DBC格式差异的问题,可以将读取数据不正确或者经过加密的CAN通信矩阵文件还原为可以正常使用的CAN通信矩阵文件,方便后续把它转换为DBC格式,或者根据不同厂家的加密格 式对其进行加密或者反加密。权利要求书1页 说明书5页 附图5页CN 112491648 A 2021.03.12
C N 112491648
A
1.一种基于CAN通信矩阵的汽车通信数据转换方法,其特征在于:所述方法包括以下内容:
对包含汽车通信数据的CAN通信矩阵文件进行拆分并读取拆分后的数据;
根据所述拆分后的数据创建一个矩阵并进行旋转,对旋转前后的矩阵进行比较,基于比较的结果得出真实的CAN通信矩阵信息。
2.根据权利要求1所述的一种基于CAN通信矩阵的汽车通信数据转换方法,其特征在于:
所述基于比较的结果得出真实的CAN通信矩阵信息包括:利用for循环将比较的结果写入TABLE文件中并利用writetable将TABLE文件导出为excel文件。
3.根据权利要求2所述的一种基于CAN通信矩阵的汽车通信数据转换方法,其特征在于:
所述利用for循环将比较的结果写入TABLE文件中包括:用一个系数作为循环技术,读取TABLE文件的行,用一个累加值将起始位写入相应的信号位置。
4.根据权利要求1所述的一种基于CAN通信矩阵的汽车通信数据转换方法,其特征在于:在所述对包含汽车通信数据的CAN通信矩阵文件进行拆分前包括通信矩阵数据获取步骤;
所述通信矩阵数据获取步骤包括:导入excel格式的can message文件并创建一个TXT 文件,向所述TXT文件中写入id名、长度、偏移量信息。
5.根据权利要求4所述的一种基于CAN通信矩阵的汽车通信数据转换方法,其特征在于:
所述通信矩阵数据获取步骤还包括:以1行、n列的cell格式文件的形式读取所述TXT文件。
6.根据权利要求5所述的一种基于CAN通信矩阵的汽车通信数据转换方法,其特征在于:所述对包含汽车通信数据的CAN通信矩阵文件进行拆分并读取拆分后的数据包括:
利用函数,以分隔符‘:’、‘@’、‘|’对所述cell格式文件进行拆分;利用if语句读取拆分后的数据。
7.根据权利要求6所述的一种基于CAN通信矩阵的汽车通信数据转换方法,其特征在于:所述拆分后的数据包括长度和起始位数据信息。
8.根据权利要求1所述的一种基于CAN通信矩阵的汽车通信数据转换方法,其特征在于:
所述创建一个矩阵并进行旋转包括:根据can报文的字节数创建对应的矩阵,
将所述矩阵顺时针旋转90度。
9.根据权利要求1所述的一种基于CAN通信矩阵的汽车通信数据转换方法,其特征在于:
所述对旋转前后的矩阵进行比较包括:读取旋转后的数值并与旋转前的数值进行比较,生成一个0/1矩阵,对所述0/1矩阵进行镜像。
10.一种存储介质,其上存储有计算机指令,其特征在于,所述计算机指令运行时执行权利要求1‑9中任意一项所述的一种基于CAN通信矩阵的汽车通信数据转换方法的内容。
权 利 要 求 书1/1页CN 112491648 A
一种基于CAN通信矩阵的汽车通信数据转换方法及存储介质
技术领域
[0001]本发明涉及汽车网络测试领域,特别是涉及一种基于CAN通信矩阵的汽车通信数据转换方法及存储介质。
背景技术
[0002]CAN通信矩阵通常由整车厂完成定义,车辆网络中的各个节点需要遵循该通讯矩阵才能完成信息的交互和共享,通常CAN通信矩阵以excel格式给出;可以把它理解成汽车各控制器进行信息交互所使用的字典。CAN通信矩阵会被写入到汽车的各控制器,每个控制器人手一本字典,各控制器通过上述方式进行交互的方式被称为can通讯,can信息通过双绞线传递。
[0003]现有对CAN通信矩阵的处理多半是把它其转换为DBC文件,亦或者改变其起始位startbit等信息对其加密,是一种单向的行为,不涉及对CAN通信矩阵与DBC文件间进行双向交互,CAN通信矩阵的给予方用其专用软件或是特定逻辑是能打开的,但是将给予方提供的CAN通信矩阵编写成DBC时,常规软件读取不到正确数据,它不与接收方所使用的软件兼容,亦或者是CAN通信矩阵是加密过后的CAN通信矩阵,导致无法获取正确的CAN通信矩阵数据。
发明内容
[0004]本发明主要提供一种基于CAN通信矩阵的汽车通信数据转换方法及存储介质,能够解决现有技术中给予方提供的CAN通信矩阵经过加密或者与接收方软件不兼容,导致无法获取正确的CAN通信矩阵数据的问题。
[0005]为解决上述技术问题,本发明采用的一个技术方案是:提供一种基于CAN通信矩阵的汽车通信数据转换方法及存储介质。
[0006]一种基于CAN通信矩阵的汽车通信数据转换方法,包括以下内容:
[0007]对包含汽车通信数据的CAN通信矩阵文件中的通信矩阵数据进行拆分并读取拆分后的数据;
[0008]根据所述拆分后的数据创建一个矩阵并进行旋转,对旋转前后的矩阵进行比较,基于比较的结果得出真实的CAN通信矩阵文件信息。
[0009]优选地,所述基于比较的结果得出真实的CAN通信矩阵文件信息包括:利用for循环将比较的结果写入TABLE文件中并利用writetable将TABLE文件导出为excel文件。[0010]优选地,所述利用for循环将比较的结果写入TABLE文件中包括:用一个系数作为循环技术,读取TABLE文件的行,用一个累加值将起始位starbit写入相应的信号signal位置。
[0011]优选地,在所述对CAN通信矩阵文件中的通信矩阵数据进行拆分前包括通信矩阵数据获取步骤;
[0012]所述通信矩阵数据获取步骤包括:导入excel格式的can message文件并创建一个
TXT文件,向所述TXT文件中写入id名、长度、偏移量信息。
[0013]优选地,所述通信矩阵数据获取步骤还包括:以1行、n列的cell格式文件的形式读取所述TXT文件。
[0014]优选地,所述对CAN通信矩阵文件中的通信矩阵数据进行拆分并读取拆分后的数据包括:
[0015]利用函数,以分隔符‘:’、‘@’、‘|’对所述cell格式文件进行拆分;利用if语句读取拆分后的数据。所述拆分后的数据包括长度和起始位数据信息。
[0016]优选地,所述创建一个矩阵并进行旋转包括:根据can报文的字节数创建对应的矩阵,将所述矩阵顺时针旋转90度。
[0017]优选地,所述对旋转前后的矩阵进行比较包括:读取旋转后的数值并与旋转前的数值进行比较,生成一个0/1矩阵,对所述0/1矩阵进行镜像。
[0018]提供一种存储介质,其上存储有计算机指令,其特征在于:所述计算机指令运行时执行权利要求1‑9中任意一项所述的一种基于CAN通信矩阵的汽车通信数据转换方法的内容。
[0019]本发明的有益效果是:(1)区别于现有技术,本发明对CAN通信矩阵文件中的通信矩阵数据进行拆分,根据所述拆分后的数据创建一个矩阵并进行旋转,通过对旋转前后的矩阵进行比较,反算出原始CAN通信矩阵并且能导出为DBC文件,解决不同车厂间DBC格式差异的问题,可以将读取数据不正确或者经过加密的CAN通信矩阵还原为可以正常使用的CAN 通信矩阵,方便后续把它转换为DBC格式,或者根据不同厂家的加密格式对其进行加密,或者反加密;(2)先对CAN通信矩阵导出为DBC文件,再将DBC文件旋转处理后输出新的CAN通信矩阵,实现CAN通信矩阵与DBC文件之间的双向交互。
附图说明
[0020]图1是本发明一种CAN通信矩阵数据转换方法流程图;
[0021]图2是Can message的导入以及前处理流程图;
[0022]图3是Can message矩阵示意图;
[0023]图4是Can message矩阵信息拆分处理示意图;
[0024]图5是拆分后数据转换为正确值的流程示意图;
[0025]图6是、图7分别是旋轴前后的矩阵示意图;
[0026]图8是0/1矩阵示意图;
[0027]图9是当前0/1矩阵镜像后的示意图。
具体实施方式
[0028]为了使本发明的目的、技术方案和有益效果更加清楚和完整,以下实施例结合附图对本发明作进一步地阐述。
[0029]实施例1
[0030]在该实施例中,提供一种基于CAN通信矩阵的汽车通信数据转换方法及存储介质,如图1所示,该方法包括以下内容:
[0031]对包含汽车通信数据的CAN通信矩阵文件中的通信矩阵数据进行拆分并读取拆分
后的数据;根据所述拆分后的数据创建一个矩阵并进行旋转,对旋转前后的矩阵进行比较,基于比较的结果得出真实的CAN通信矩阵文件信息。
[0032]本发明原理是:拥有了CAN通信矩阵(excel格式),但使用时发现该CAN通信矩阵读出来的数值不正确,原因是它不与所使用的软件兼容,亦或者是CAN通信矩阵是加密过后的CAN通信矩阵,比如所有的起始位starbit位全加1所以,需要经过转换,把它还原为可以正常使用的CAN通信矩阵(excel格式),也就是本发明的主要内容是将excel转换为新的excel。将CAN通信矩阵导入到编程软件中,导出为DBC不是本文的目的,亦或者是将DBC转化为CAN通信矩阵,可以看成是便利性的附加功能。
[0033]转换后的数据可以通过软件的信号发送模块,给汽车发送信号,如发送仪表盘转速信号,仪表转速盘与修正后CAN通信矩阵数据的预期值相同,说明修改正确;又比如,踩踏加速踏板信号,使用修改后的DBC文件,读取的实际值和预期值相同,或者通过诊断仪比较数据等方式判定转换后的数据位真实值。
[0034]所述基于比较的结果得出真实的CAN通信矩阵x文件信息包括:利用for循环将比较的结果写入TABLE文件中并利用writetable将TABLE文件导出为excel文件。
[0035]所述利用for循环将比较的结果写入TABLE文件中包括:用一个系数作为循环技术,读取TABLE文件的行,用一个累加值将起始位starbit写入相应的信号signal位置。[0036]进一步地,在所述对CAN通信矩阵文件中的通信矩阵数据进行拆分前包括通信矩阵数据获取步骤;
[0037]所述通信矩阵数据获取步骤包括:导入excel格式的can message文件并创建一个TXT文件,向所
述TXT文件中写入id名、长度、偏移量信息。
[0038]进一步地,所述通信矩阵数据获取步骤还包括:以1行、n列的cell格式文件的形式读取所述TXT文件。
[0039]进一步地,所述对can matrix文件中的通信矩阵数据进行拆分并读取拆分后的数据包括:
[0040]利用函数,以分隔符‘:’、‘@’、‘|’对所述cell格式文件进行拆分;利用if语句读取拆分后的数据。
[0041]进一步地,所述拆分后的数据包括长度和起始位数据信息。
[0042]进一步地,根据can报文的字节数创建对应的矩阵,将所述矩阵顺时针旋转90度。[0043]进一步地,所述对旋转前后的矩阵进行比较包括:读取旋转后的数值并与旋转前的数值进行比较,生成一个0/1矩阵,对所述0/1矩阵进行镜像。
[0044]实施例2
[0045]在该实施例中,以CAN通信矩阵信息的起始位startbit转换为例,说明本发明的数据转换过程。
[0046]如图2所示,首先进行Can message的导入和前处理,DBC的Message和signal都有固定的语法形
式方便进行批量化处理。具体地,加载excel格式的can message文件到软件中,使用readtable函数将EXCEL文件生成为TABLE文件,或者是手动拖拽入软件,不同的导入方法每列的format可能会不同。
[0047]接着利用软件自带的函数创建txt文件,并向文件写入数据,然后向TXT文件中写入id名,长度,偏移量等信息,该步是程序写入的重点步骤,如图3所示,实现方法为:首先读