本发明涉及汽车网络测试领域,特别是涉及一种基于can通信矩阵的汽车通信数据转换方法及存储介质。
背景技术:
::can通信矩阵通常由整车厂完成定义,车辆网络中的各个节点需要遵循该通讯矩阵才能完成信息的交互和共享,通常can通信矩阵以excel格式给出;可以把它理解成汽车各控制器进行信息交互所使用的字典。can通信矩阵会被写入到汽车的各控制器,每个控制器人手一本字典,各控制器通过上述方式进行交互的方式被称为can通讯,can信息通过双绞线传递。现有对can通信矩阵的处理多半是把它其转换为dbc文件,亦或者改变其起始位startbit等信息对其加密,是一种单向的行为,不涉及对can通信矩阵与dbc文件间进行双向交互,can通信矩阵的给予方用其专用软件或是特定逻辑是能打开的,但是将给予方提供的can通信矩阵编写成dbc时,常规软件读取不到正确数据,它不与接收方所使用的软件兼容,亦或者是can通信矩阵是加密过后的can通信矩阵,导致无法获取正确的can通信矩阵数据。技术实现要素:本发明主要提供一种基于can通信矩阵的汽车通信数据转换方法及存储介质,能够解决现有技术中给予方提供的can通信矩阵经过加密或者与接收方软件不兼容,导致无法获取正确的can通信矩阵数据的问题。为解决上述技术问题,本发明采用的一个技术方案是:提供一种基于can通信矩阵的汽车通信数据转换方法及存储介质。一种基于can通信矩阵的汽车通信数据转换方法,包括以下内容:对包含汽车通信数据的can通信矩阵文件中的通信矩阵数据进行拆分并读取拆分后的数据;根据所述拆分后的数据创建一个矩阵并进行旋转,对旋转前后的矩阵进行比较,基于比较的结果得出真实的can通信矩阵文件信息。优选地,所述基于比较的结果得出真实的can通信矩阵文件信息包括:利用for循环将比较的结果写入table文件中并利用writetable将table文件导出为excel文件。优选地,所述利用for循环将比较的结果写入table文件中包括:用一个系数作为循环技术,读取table文件的行,用一个累加值将起始位starbit写入相应的信号signal位置。优选地,在所述对can通信矩阵文件中的通信矩阵数据进行拆分前包括通信矩阵数据获取步骤;所述通信矩阵数据获取步骤包括:导入excel格式的canmessage文件并创建一个txt文件,向所述txt文件中写入id名、长度、偏移量信息。优选地,所述通信矩阵数据获取步骤还包括:以1行、n列的cell格式文件的形式读取所述txt文件。优选地,所述对can通信矩阵文件中的通信矩阵数据进行拆分并读取拆分后的数据包括:利用函数,以分隔符‘:’、‘@’、‘|’对所述cell格式文件进行拆分;利用if语句读取拆分后的数据。所述拆分后的数据包括长度和起始位数据信息。优选地,所述创建一个矩阵并进行旋转包括:根据can报文的字节数创建对应的矩阵,将所述矩阵顺时针旋转90度。优选地,所述对旋转前后的矩阵进行比较包括:读取旋转后的数值并与旋转前的数值进行比较,生成一个0/1矩阵,对所述0/1矩阵进行镜像。提供一种存储介质,其上存储有计算机指令,其特征在于:所述计算机指令运行时执行权利要求1-9中任意一项所述的一种基于can通信矩阵的汽车通信数据转换方法的内容。本发明的有益效果是:(1)区别于现有技术,本发明对can通信矩阵文件中的通信矩阵数据进行拆分,根据所述拆分后的数据创建一个矩阵并进行旋转,通过对旋转前后的矩阵进行比较,反算出原始can通信矩阵并且能导出为dbc文件,解决不同车厂间dbc格式差异的问题,可以将读取数据不正确或者经过加密的can通信矩阵还原为可以正常使用的can通信矩阵,方便后续把它转换为dbc格式,或者根据不同厂家的加密格式对其进行加密,或者反加密;(2)先对can通信矩阵导出为dbc文件,再将dbc文件旋转处理后输出新的can通信矩阵,实现can通信矩阵与dbc文件之间的双向交互。附图说明图1是本发明一种can通信矩阵数据转换方法流程图;图2是canmessage的导入以及前处理流程图;图3是canmessage矩阵示意图;图4是canmessage矩阵信息拆分处理示意图;图5是拆分后数据转换为正确值的流程示意图;图6是、图7分别是旋轴前后的矩阵示意图;图8是0/1矩阵示意图;图9是当前0/1矩阵镜像后的示意图。具体实施方式为了使本发明的目的、技术方案和有益效果更加清楚和完整,以下实施例结合附图对本发明作进一步地阐述。实施例1在该实施例中,提供一种基于can通信矩阵的汽车通信数据转换方法及存储介质,如图1所示,该方法包括以下内容:对包含汽车通信数据的can通信矩阵文件中的通信矩阵数据进行拆分并读取拆分后的数据;根据所述拆分后的数据创建一个矩阵并进行旋转,对旋转前后的矩阵进行比较,基于比较的结果得出真实的can通信矩阵文件信息。本发明原理是:拥有了can通信矩阵(excel格式),但使用时发现该can通信矩阵读出来的数值不正确,原因是它不与所使用的软件兼容,亦或者是can通信矩阵是加密过后的can通信矩阵,比如所有的起始位starbit位全加1所以,需要经过转换,把它还原为可以正常使用的can通信矩阵(excel格式),也就是本发明的主要内容是将excel转换为新的excel。将can通信矩阵导入到编程软件中,导出为dbc不是本文的目的,亦或者是将dbc转化为can通信矩阵,可以看成是便利性的附加功能。转换后的数据可以通过软件的信号发送模块,给汽车发送信号,如发送仪表盘转速信号,仪表转速盘与修正后can通信矩阵数据的预期值相同,说明修改正确;又比如,踩踏加速踏板信号,使用修改后的dbc文件,读取的实际值和预期值相同,或者通过诊断仪比较数据等方式判定转换后的数据位真实值。所述基于比较的结果得出真实的can通信矩阵x文件信息包括:利用for循环将比较的结果写入table文件中并利用writetable将table文件导出为excel文件。所述利用for循环将比较的结果写入table文件中包括:用一个系数作为循环技术,读取table文件的行,用一个累加值将起始位starbit写入相应的信号signal位置。进一步地,在所述对can通信矩阵文件中的通信矩阵数据进行拆分前包括通信矩阵数据获取步骤;所述通信矩阵数据获取步骤包括:导入excel格式的canmessage文件并创建一个txt文件,向所述txt文件中写入id名、长度、偏移量信息。进一步地,所述通信矩阵数据获取步骤还包括:以1行、n列的cell格式文件的形式读取所述txt文件。进一步地,所述对canmatrix文件中的通信矩阵数据进行拆分并读取拆分后的数据包括:利用函数,以分隔符‘:’、‘@’、‘|’对所述cell格式文件进行拆分;利用if语句读取拆分后的数据。进一步地,所述拆分后的数据包括长度和起始位数据信息。进一步地,根据can报文的字节数创建对应的矩阵,将所述矩阵顺时针旋转90度。进一步地,所述对旋转前后的矩阵进行比较包括:读取旋转后的数值并与旋转前的数值进行比较,生成一个0/1矩阵,对所述0/1矩阵进行镜像。实施例2在该实施例中,以can通信矩阵信息的起始位startbit转换为例,说明本发明的数据转换过程。如图2所示,首先进行canmessage的导入和前处理,dbc的message和signal都有固定的语法形式方便进行批量化处理。具体地,加载excel格式的canmessage文件到软件中,使用readtable函数将excel文件生成为table文件,或者是手动拖拽入软件,不同的导入方法每列的format可能会不同。接着利用软件自带的函数创建txt文件,并向文件写入数据,然后向txt文件中写入id名,长度,偏移量等信息,该步是程序写入的重点步骤,如图3所示,实现方法为:首先读取canmessage的总行数,行数作为循环语句的循环次数。当使用if语句,判断第a行有字符串而第c行无字符串时,判断该行为message行;当使用if语句,判断第a行,c行都有字符串时判断该行为signal行。对于dbc文件而言,message,signal都拥有标准的书写格式,利用格式字符%d,%s等,将读取到的当前行的各列信息,如单位(rpm),填入到语句的位置。进一步地,经过处理后的txt文件中将包含符合dbc文件格式的message和signal信息,将它保存下来。进一步地,如图4所示,对canmessage矩阵信息拆分处理,读取上一步得到的txt文件,将txt文件读入软件环境,形成1行,n列的cell格式文件,利用函数,以‘:’、‘@’、‘|’,对上述cell文件进行拆分,并利用try语句,最终得到x行,n列的数据信息,接着利用if语句,读取startbit和length信息并记录。进一步地,如图5所示,读取当前的起始位startbit和长度length,并进行计算处理,以for循环形式读取当前循环的起始位startbit和长度length,此数据来自步骤7,并基于lsb和msb的位置对起始位startbit的数值进行处理。创建一个8*8矩阵,数据值0到63,并对此矩阵进行旋转,以便与所使用的can信息处理软件格式相同,并将处理完成后的此矩阵赋值于a,读取此时有效最高位(msb)的数值,假设起始位为56,长度为7,则有效最高位(msb)为起始位 长度-1,即62。将有效最高位(msb)的数值与矩阵a比较,如图8所示,对比较结果后生成的0/1矩阵进行镜像,如图9所示,读取镜像后的0/1矩阵的1所处的行列号;读取当前0/1矩阵的1所处的行列号后,将其反带回a,便求出了新的,符合厂家b书写规范的起始位startbit,如图9所示,1所处的位置为第8行第7列,反带回a中对应的值为57,此时便得出新的起始位值为57。进一步地,利用for循环将新的数值写入table文件中,此时使用了两个系数来累加,一个系数作为循环技术,读取table文件的行,另一个累加值将起始位starbit写入相应的信号signal位置,并利用writetable将tabel文件导出为excel文件。实施例3如图6、图7所示,本发明所指的矩阵旋转是对软件读取的can报文进行旋转,如id为100的这一帧报文,假设他有8字节,那么这阵报文便能传递8*8=64位的信息,在layout界面中可以看到这64位数据是按照8行8列的顺序排列成一个正方形的,如果从索引(index)的角度来看的话,把第一行,第一列,这一位置认为是1,第一行,第二列,这一位置当成2的话,可以做出一个矩阵,我可以对这个矩阵进行旋转,图6、图7显示的数值是对矩阵特定旋转后的新矩阵.现在,第x行,第y列处的数值(23),未进行矩阵旋转时的数值(2)是不同的,基于向量化,对这两个值进行比较运算来求出真实的起始位statbit值,真实的起始位statbit为矩阵第x1行,第x2列对应的数值,如图9所示,x1=8;x2=7,代表0/1矩阵中1的值在8*8矩阵中的位置为第8行,第7列,行列数的获取用库函数调用就行。第8行,第7列的值是57,如图7显示,这个1的位置是此信号的起始位(从右往左数),因为信号长度没有变,所以信号已经转换成功了。以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的
技术领域:
:,均同理包括在本发明的专利保护范围内。当前第1页1 2 3 当前第1页1 2 3 
技术特征:1.一种基于can通信矩阵的汽车通信数据转换方法,其特征在于:所述方法包括以下内容:
对包含汽车通信数据的can通信矩阵文件进行拆分并读取拆分后的数据;
根据所述拆分后的数据创建一个矩阵并进行旋转,对旋转前后的矩阵进行比较,基于比较的结果得出真实的can通信矩阵信息。
2.根据权利要求1所述的一种基于can通信矩阵的汽车通信数据转换方法,其特征在于:
所述基于比较的结果得出真实的can通信矩阵信息包括:利用for循环将比较的结果写入table文件中并利用writetable将table文件导出为excel文件。
3.根据权利要求2所述的一种基于can通信矩阵的汽车通信数据转换方法,其特征在于:
所述利用for循环将比较的结果写入table文件中包括:用一个系数作为循环技术,读取table文件的行,用一个累加值将起始位写入相应的信号位置。
4.根据权利要求1所述的一种基于can通信矩阵的汽车通信数据转换方法,其特征在于:在所述对包含汽车通信数据的can通信矩阵文件进行拆分前包括通信矩阵数据获取步骤;
所述通信矩阵数据获取步骤包括:导入excel格式的canmessage文件并创建一个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通信矩阵的汽车通信数据转换方法的内容。
技术总结本发明公开了一种基于CAN通信矩阵的汽车通信数据转换方法及存储介质,所述方法包括:对包含汽车通信数据的CAN通信矩阵文件进行拆分并读取拆分后的数据;根据所述拆分后的数据创建一个矩阵并进行旋转,对旋转前后的矩阵进行比较,基于比较的结果得出真实的CAN通信矩阵文件信息。本发明的数据转换方法实现从CAN通信矩阵文件到新的CAN通信矩阵文件,解决不同车厂间DBC格式差异的问题,可以将读取数据不正确或者经过加密的CAN通信矩阵文件还原为可以正常使用的CAN通信矩阵文件,方便后续把它转换为DBC格式,或者根据不同厂家的加密格式对其进行加密或者反加密。
技术研发人员:唐远明;孙德山;王礼亮;饶宇衡;丁帮伟;周康春;陈勇;宋丽;李超;洪继超;江昆;田小杰
受保护的技术使用者:重庆美沣秦安汽车驱动系统有限公司
技术研发日:2020.11.17
技术公布日:2021.03.12