CN113905095B - 一种基于can通信矩阵的数据生成方法及装置 - Google Patents
一种基于can通信矩阵的数据生成方法及装置 Download PDFInfo
- Publication number
- CN113905095B CN113905095B CN202111495387.9A CN202111495387A CN113905095B CN 113905095 B CN113905095 B CN 113905095B CN 202111495387 A CN202111495387 A CN 202111495387A CN 113905095 B CN113905095 B CN 113905095B
- Authority
- CN
- China
- Prior art keywords
- format
- information
- motorola
- signal
- bit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000004891 communication Methods 0.000 title claims abstract description 91
- 239000011159 matrix material Substances 0.000 title claims abstract description 91
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000003491 array Methods 0.000 claims description 8
- 238000004458 analytical method Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40215—Controller Area Network CAN
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40267—Bus for use in transportation systems
- H04L2012/40273—Bus for use in transportation systems the transportation system being a vehicle
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Library & Information Science (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- Human Computer Interaction (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种基于CAN通信矩阵的数据生成方法及装置,该方法包括:读取用户输入的参数信息,确定所述参数信息包含的第一信息、第二信息以及第三信息;解析所述第一信息确定对应的CAN通信矩阵Excel文件;遍历所述对应的CAN通信矩阵Excel文件,解析所述第二信息获取所述对应的CAN通信矩阵Excel文件中与所述第二信息对应的描述内容;解析所述第三信息并结合所述描述内容执行位运算,生成CAN信号数据。本发明提高了生成CAN信号数据的准确率。
Description
技术领域
本发明涉及自动驾驶技术领域,尤其涉及一种基于CAN通信矩阵的数据生成方法及装置。
背景技术
一个高级辅助驾驶系统在研发过程中需要精心大量、长周期的测试验证后才能上市销售。测试阶段经常需要模拟生成各种CAN报文数据,将各种CAN报文数据发送给设备中的算法模块,观察算法的输出结果是否符合预期。
传统技术一般采用手工计算或使德国Vector公司的CANoe/CANalyzer等工具来实现。具体如下:
1)采用手工计算。需要每次查阅CAN通信矩阵文档,找到目标信号的相关描述,根据字节序/位序/传输顺序的查阅,进行位运算等,最终得出目标信号。整个计算过程繁琐、复杂、耗时长、容易出错,而且对数学功底要求高。
2)采用CANoe/CANalyzer等工具。由于厂商提供的CAN通信矩阵往往是excel格式,而这些工具只支持解析dbc格式,需要使用CANdb++之类的工具逐个手动编辑来转换格式。而且CANoe/CANalyzer等工具只支持Intel格式,不支持Motorola格式。当厂商提供的CAN通信矩阵是Motorola格式时,需要人工进行格式转化,其中涉及位运算等易错操作。因此,整个计算过程虽然相对全手工计算减少了一定计算量,但依然繁琐、耗时长、容易出错。
发明内容
本发明的目的在于提供一种基于CAN通信矩阵的数据生成方法及装置,以解决现有技术中获取CAN报文数据效率低的问题。
为实现上述目的,本发明提供一种基于CAN通信矩阵的数据生成方法,包括:
读取用户输入的参数信息,确定所述参数信息包含的第一信息、第二信息以及第三信息;
解析所述第一信息确定对应的CAN通信矩阵Excel文件;
遍历所述对应的CAN通信矩阵Excel文件,解析所述第二信息获取所述对应的CAN通信矩阵Excel文件中与所述第二信息对应的描述内容;
解析所述第三信息并结合所述描述内容执行位运算,生成CAN信号数据。
优选地,所述CAN通信矩阵Excel文件包括排列格式,所述排列格式包括Intel格式、Motorola MSB格式以及Motorola LSB格式。
优选地,所述解析所述第三信息并结合所述描述内容执行位运算,包括:
解析所述第三信息并与所述Intel格式、所述Motorola MSB格式以及所述Motorola LSB格式进行匹配,确定所述Intel格式的起始位、所述Motorola MSB格式的起始位以及所述Motorola LSB格式的起始位;
所述第三信息包括信号起始值和信号长度值,将所述第三信息中的信号起始值作为所述Motorola LSB格式的起始位;
计算所述信号起始值与所述信号长度值的和再减去数值1,确定所述Intel格式的起始位和所述Motorola MSB格式的起始位。
优选地,所述生成CAN信号数据,包括:
设置所述CAN信号数据中的字节数组包含高字节位和低字节位;
所述第三信息还包括信号值,根据所述第三信息确定所述Intel格式的起始位、所述Motorola MSB格式的起始位以及所述Motorola LSB格式的起始位后,将所述信号值按格式依次填写所述CAN信号数据中的字节数组,生成CAN信号数据;其中,
将所述Intel格式的所述信号值按照方向从所述高字节位至所述低字节位填写,将所述Motorola MSB格式和所述Motorola LSB格式的所述信号值按照方向从所述低字节位至所述高字节位填写。
本发明还提供了一种基于CAN通信矩阵的数据生成装置,包括:
数据读取模块,用于读取用户输入的参数信息,确定所述参数信息包含的第一信息、第二信息以及第三信息;
第一解析模块,用于解析所述第一信息确定对应的CAN通信矩阵Excel文件;
第二解析模块,用于遍历所述对应的CAN通信矩阵Excel文件,解析所述第二信息获取所述对应的CAN通信矩阵Excel文件中与所述第二信息对应的描述内容;
生成模块,用于解析所述第三信息并结合所述描述内容执行位运算,生成CAN信号数据。
优选地,所述第一解析模块,还用于所述CAN通信矩阵Excel文件包括排列格式,所述排列格式包括Intel格式、Motorola MSB格式以及Motorola LSB格式。
优选地,所述生成模块,还用于:
解析所述第三信息并与所述Intel格式、所述Motorola MSB格式以及所述Motorola LSB格式进行匹配,确定所述Intel格式的起始位、所述Motorola MSB格式的起始位以及所述Motorola LSB格式的起始位;
所述第三信息包括信号起始值和信号长度值,将所述第三信息中的信号起始值作为所述Motorola LSB格式的起始位;
计算所述信号起始值与所述信号长度值的和再减去数值1,确定所述Intel格式的起始位和所述Motorola MSB格式的起始位。
优选地,所述生成模块,还用于:
设置所述CAN信号数据中的字节数组包含高字节位和低字节位;
所述第三信息还包括信号值,根据所述第三信息确定所述Intel格式的起始位、所述Motorola MSB格式的起始位以及所述Motorola LSB格式的起始位后,将所述信号值按格式依次填写所述CAN信号数据中的字节数组,生成CAN信号数据;其中,
将所述Intel格式的所述信号值按照方向从所述高字节位至所述低字节位填写,将所述Motorola MSB格式和所述Motorola LSB格式的所述信号值按照方向从所述低字节位至所述高字节位填写。
本发明还提供一种终端设备,包括:
一个或多个处理器;
存储器,与所述处理器耦接,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上任一项所述的基于CAN通信矩阵的数据生成方法。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述的基于CAN通信矩阵的数据生成方法。
相对于现有技术,本发明的有益效果在于:
本发明通过读取用户输入的参数信息,确定参数信息包含的第一信息、第二信息以及第三信息;解析第一信息确定对应的CAN通信矩阵Excel文件;遍历对应的CAN通信矩阵Excel文件,解析第二信息获取对应的CAN通信矩阵Excel文件中与第二信息对应的描述内容;解析第三信息并结合描述内容执行位运算,生成CAN信号数据。通过解析参数信息定位对应的CAN通信矩阵Excel文件并与其中描述内容进行匹配,生成CAN信号数据,提高了生成CAN信号数据的准确率。
进一步的,本发明还区分了三种格式转换为报文数据的过程,分别为Intel格式、Motorola MSB格式以及Motorola LSB格式,相较于现有技术,CANoe/CANalyzer等工具只支持Intel格式且不支持Motorola格式来说,更具有实用性,更能快速的生成CAN信号数据。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明某一实施例提供的基于CAN通信矩阵的数据生成方法的流程示意图;
图2是本发明又一实施例提供的基于CAN通信矩阵的数据生成方法的流程示意图;
图3是本发明某一实施例提供的基于CAN通信矩阵的数据生成装置的结构示意图;
图4是本发明又一实施例提供的基于CAN通信矩阵的数据生成装置的结构示意图;
图5是本发明某一实施例提供的终端设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,文中所使用的步骤编号仅是为了方便描述,不对作为对步骤执行先后顺序的限定。
应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1,本发明某一实施例提供一种基于CAN通信矩阵的数据生成方法。如图1所示,该基于CAN通信矩阵的数据生成方法包括步骤S10至步骤S40。各步骤具体如下:
S10:读取用户输入的参数信息,确定所述参数信息包含的第一信息、第二信息以及第三信息。
具体的,运用本发明的一种基于CAN通信矩阵的数据生成方法开发一种跨平台工具,支持Windows/Linux/Mac等主流操作系统,并且提供桌面端以及命令行工具两种界面。
下面结合Linux系统的命令行工具进行说明,比如在Linux终端输入"generate_can_data --help",可以查看该命令行工具的用法。用户需要提供的第一个参数是设备名字,然后是CAN信号信息,包括信号名字及信号的取值。
用户在Linux系统终端上输入命令后,会立即启动该命令行工具,其中,参将命令中的设备名称参数作为第一信息、将命令中的信号名字作为第二信息以及将命令中的信号取值作为第三信息。
S20:解析所述第一信息确定对应的CAN通信矩阵Excel文件。
具体的,通过解析设备名字参数,找到对应设备的CAN通信矩阵Excel文件。CAN通信矩阵Excel文件包括排列格式,排列格式包括Intel格式、Motorola MSB格式以及Motorola LSB格式。
S30:遍历所述对应的CAN通信矩阵Excel文件,解析所述第二信息获取所述对应的CAN通信矩阵Excel文件中与所述第二信息对应的描述内容。
具体的,根据步骤S20查找到的对应的设备的CAN通信矩阵Excel文件,解析用户输入的信号名字,找到对应的设备的CAN通信矩阵Excel文件中对应的描述内容。
S40:解析所述第三信息并结合所述描述内容执行位运算,生成CAN信号数据。
结合步骤S30中的描述内容,解析用户输入的信号取值,执行数学运算,其中,在运算时需要区分Intel/Motorola MSB/Motorola LSB等格式,根据start bit和bit length的取值,进行一些位运算及其他数学运算,最后生成CAN信号数据。
具体的,CAN通信矩阵Excel文件的表格里有一列“排列格式(Byte Order)”,会说明格式,比如是“Intel”,“Motorola MSB”或“Motorola LSB”。一个CAN报文由8个字节组成,因此共有8*8=64位(bit)。一个CAN报文包含若干个信号,每个信号占据若干位,采用(startbit, bit length)来表示一个信号,其中start bit信号起始值代表这个信号的起始位,bit length信号长度值代表这个信号的长度。当要生成一个CAN报文时,实际上就是将这个报文的每个信号设置成对应的值。当一个报文含有多个信号时,可以使用叠加的方法,先计算单独设置每个信号时生成的报文数据,再将这些报文数据逐字节加起来,得到最终期望的报文。由于叠加的过程就是简单的加法运算,不作赘述,下面只讨论如何只需设置一个信号的场景。
在一具体的实施例中,假设要生成一个CAN报文,其中需要包含车速speed为80km/h这个信号,通信矩阵给出的车速信号的start bit为24,bit length为16,精度为0.015625。生成CAN信号数据的步骤如下:
1)先对车速转换精度,得到speed = 80 / 0.05625 = 1423 (向上取整)。
2)将车速化为二进制形式,得到binarySpeed = 101,1000,1111。
3)当车速的二进制串长度小于bit length时,在前面填0直到长度一致,即:binarySpeed = 0000, 0101, 1000, 1111。
4)定义一个长度为8的字节数组并初始化为全0:char data[8] = {0},将以上转化的二进制字符串binarySpeed中的每一位分别填到字节数组的某个位置中,首先确定不同格式填写的起始位,然后确定移动方向,具体如下:
A、解析第三信息并与Intel格式、Motorola MSB格式以及Motorola LSB格式进行匹配,确定Intel格式的起始位、Motorola MSB格式的起始位以及Motorola LSB格式的起始位,第三信息包括信号起始值和信号长度值,将第三信息中的信号起始值作为MotorolaLSB格式的起始位,计算信号起始值与信号长度值的和再减去数值1,确定Intel格式的起始位和Motorola MSB格式的起始位。
具体的,Intel格式和Motorola LSB格式的start bit对应的是最低有效位,而最高有效位等于(start bit + bit length - 1),因而需要调整。Motorola MSB格式的startbit对应的是最高有效位,因而不需调整。以本实施例而言,Intel格式和Motorola LSB格式的起始位置实际上为24+16-1=39,而Motorola MSB格式的起始位置就是24,不需调整。
B、设置CAN信号数据中的字节数组包含高字节位和低字节位。第三信息还包括信号值,根据第三信息确定Intel格式的起始位、Motorola MSB格式的起始位以及MotorolaLSB格式的起始位后,将信号值按格式依次填写CAN信号数据中的字节数组,生成CAN信号数据,其中,将Intel格式的信号值按照方向从高字节位至低字节位填写,将Motorola MSB格式和Motorola LSB格式的信号值按照方向从低字节位至高字节位填写。
具体的,确认起始位置后,逐位将binarySpeed的每一位填到字节数组的对应位即可。当填完字节数组的一个字节时,需要接着填下一个字节时,这时便遇到第二个需要区分格式的情况:Intel格式是按照从高字节到低字节的方向填写,而Motorola格式(不管是Motorola MSB还是Motorola LSB)都是按照从低字节往高字节的方向填写。对于本实施例而言:Intel格式的起始位置为39,对应第5个字节,填完第5个字节后,接下来应该填第4个字节,Motorola LSB格式的起始位置也是39,对应第5个字节,但填完第5个字节后,接下来应该填第6个字节。
本发明通过读取用户输入的参数信息,确定参数信息包含的第一信息、第二信息以及第三信息;解析第一信息确定对应的CAN通信矩阵Excel文件;遍历对应的CAN通信矩阵Excel文件,解析第二信息获取对应的CAN通信矩阵Excel文件中与第二信息对应的描述内容;解析第三信息并结合描述内容执行位运算,生成CAN信号数据。通过解析参数信息定位对应的CAN通信矩阵Excel文件并与其中描述内容进行匹配,生成CAN信号数据,提高了生成CAN信号数据的准确率。
请参阅图2,在一具体实施例中,上述步骤S40解析所述第三信息并结合所述描述内容执行位运算,生成CAN信号数据,还包括以下子步骤:
S41:第三信息包括信号值,在CAN信号数据内设置字节数组,将信号值转换为二进制表示。
假设要生成一个CAN报文,其中需要包含车速speed为80km/h这个信号,通信矩阵给出的车速信号的start bit为24,bit length为16,精度为0.015625。先对车速转换精度,得到speed = 80 / 0.05625 = 1423 (向上取整)。将车速化为二进制形式,得到binarySpeed = 101,1000,1111。当车速的二进制串长度小于bit length时,在前面填0直到长度一致,即:binarySpeed = 0000, 0101, 1000, 1111。
S42:将信号值转换为二进制后的值填入字节数组。
定义一个长度为8的字节数组并初始化为全0:char data[8] = {0},将以上转化的二进制字符串binarySpeed中的每一位分别填到字节数组的某个位置中。
S43:区分三种格式进行填写,生成CAN信号数据。
首先确定不同格式填写的起始位,然后确定移动方向,具体如下:
A、解析第三信息并与Intel格式、Motorola MSB格式以及Motorola LSB格式进行匹配,确定Intel格式的起始位、Motorola MSB格式的起始位以及Motorola LSB格式的起始位,第三信息包括信号起始值和信号长度值,将第三信息中的信号起始值作为MotorolaLSB格式的起始位,计算信号起始值与信号长度值的和再减去数值1,确定Intel格式的起始位和Motorola MSB格式的起始位。
具体的,Intel格式和Motorola LSB格式的start bit对应的是最低有效位,而最高有效位等于(start bit + bit length - 1),因而需要调整。Motorola MSB格式的startbit对应的是最高有效位,因而不需调整。以本实施例而言,Intel格式和Motorola LSB格式的起始位置实际上为24+16-1=39,而Motorola MSB格式的起始位置就是24,不需调整。
B、设置CAN信号数据中的字节数组包含高字节位和低字节位。第三信息还包括信号值,根据第三信息确定Intel格式的起始位、Motorola MSB格式的起始位以及MotorolaLSB格式的起始位后,将信号值按格式依次填写CAN信号数据中的字节数组,生成CAN信号数据,其中,将Intel格式的信号值按照方向从高字节位至低字节位填写,将Motorola MSB格式和Motorola LSB格式的信号值按照方向从低字节位至高字节位填写。
具体的,确认起始位置后,逐位将binarySpeed的每一位填到字节数组的对应位即可。当填完字节数组的一个字节时,需要接着填下一个字节时,这时便遇到第二个需要区分格式的情况:Intel格式是按照从高字节到低字节的方向填写,而Motorola格式(不管是Motorola MSB还是Motorola LSB)都是按照从低字节往高字节的方向填写。对于本实施例而言:Intel格式的起始位置为39,对应第5个字节,填完第5个字节后,接下来应该填第4个字节,Motorola LSB格式的起始位置也是39,对应第5个字节,但填完第5个字节后,接下来应该填第6个字节。
本发明通过读取用户输入的参数信息,确定参数信息包含的第一信息、第二信息以及第三信息;解析第一信息确定对应的CAN通信矩阵Excel文件;遍历对应的CAN通信矩阵Excel文件,解析第二信息获取对应的CAN通信矩阵Excel文件中与第二信息对应的描述内容;解析第三信息并结合描述内容执行位运算,生成CAN信号数据。通过解析参数信息定位对应的CAN通信矩阵Excel文件并与其中描述内容进行匹配,生成CAN信号数据,提高了生成CAN信号数据的准确率,彻底避免了手动生成报文数据时效率低、耗时长、出错率高等问题。
请参阅图3,本发明另一实施例提供一种基于CAN通信矩阵的数据生成装置,包括数据读取模块11、第一解析模块12、第二解析模块13以及生成模块14:
数据读取模块11,用于读取用户输入的参数信息,确定所述参数信息包含的第一信息、第二信息以及第三信息。
具体的,运用本发明的一种基于CAN通信矩阵的数据生成方法开发一种跨平台工具,支持Windows/Linux/Mac等主流操作系统,并且提供桌面端以及命令行工具两种界面。
下面结合Linux系统的命令行工具进行说明,比如在Linux终端输入"generate_can_data --help",可以查看该命令行工具的用法。用户需要提供的第一个参数是设备名字,然后是CAN信号信息,包括信号名字及信号的取值。
用户在Linux系统终端上输入命令后,会立即启动该命令行工具,其中,参将命令中的设备名称参数作为第一信息、将命令中的信号名字作为第二信息以及将命令中的信号取值作为第三信息。
第一解析模块12,用于解析所述第一信息确定对应的CAN通信矩阵Excel文件。
具体的,通过解析设备名字参数,找到对应设备的CAN通信矩阵Excel文件。CAN通信矩阵Excel文件包括排列格式,排列格式包括Intel格式、Motorola MSB格式以及Motorola LSB格式。
第二解析模块13,用于遍历所述对应的CAN通信矩阵Excel文件,解析所述第二信息获取所述对应的CAN通信矩阵Excel文件中与所述第二信息对应的描述内容。
具体的,根据查找到的对应的设备的CAN通信矩阵Excel文件,解析用户输入的信号名字,找到对应的设备的CAN通信矩阵Excel文件中对应的描述内容。
生成模块14,用于解析所述第三信息并结合所述描述内容执行位运算,生成CAN信号数据。
结合描述内容,解析用户输入的信号取值,执行数学运算,其中,在运算时需要区分Intel/Motorola MSB/Motorola LSB等格式,根据start bit和bit length的取值,进行一些位运算及其他数学运算,最后生成CAN信号数据。
具体的,CAN通信矩阵Excel文件的表格里有一列“排列格式(Byte Order)”,会说明格式,比如是“Intel”,“Motorola MSB”或“Motorola LSB”。一个CAN报文由8个字节组成,因此共有8*8=64位(bit)。一个CAN报文包含若干个信号,每个信号占据若干位,采用(startbit, bit length)来表示一个信号,其中start bit信号起始值代表这个信号的起始位,bit length信号长度值代表这个信号的长度。当要生成一个CAN报文时,实际上就是将这个报文的每个信号设置成对应的值。当一个报文含有多个信号时,可以使用叠加的方法,先计算单独设置每个信号时生成的报文数据,再将这些报文数据逐字节加起来,得到最终期望的报文。由于叠加的过程就是简单的加法运算,不作赘述,下面只讨论如何只需设置一个信号的场景。
在一具体的实施例中,假设要生成一个CAN报文,其中需要包含车速speed为80km/h这个信号,通信矩阵给出的车速信号的start bit为24,bit length为16,精度为0.015625。生成CAN信号数据的步骤如下:
1)先对车速转换精度,得到speed = 80 / 0.05625 = 1423 (向上取整)。
2)将车速化为二进制形式,得到binarySpeed = 101,1000,1111。
3)当车速的二进制串长度小于bit length时,在前面填0直到长度一致,即:binarySpeed = 0000, 0101, 1000, 1111。
4)定义一个长度为8的字节数组并初始化为全0:char data[8] = {0},将以上转化的二进制字符串binarySpeed中的每一位分别填到字节数组的某个位置中,首先确定不同格式填写的起始位,然后确定移动方向,具体如下:
A、解析第三信息并与Intel格式、Motorola MSB格式以及Motorola LSB格式进行匹配,确定Intel格式的起始位、Motorola MSB格式的起始位以及Motorola LSB格式的起始位,第三信息包括信号起始值和信号长度值,将第三信息中的信号起始值作为MotorolaLSB格式的起始位,计算信号起始值与信号长度值的和再减去数值1,确定Intel格式的起始位和Motorola MSB格式的起始位。
具体的,Intel格式和Motorola LSB格式的start bit对应的是最低有效位,而最高有效位等于(start bit + bit length - 1),因而需要调整。Motorola MSB格式的startbit对应的是最高有效位,因而不需调整。以本实施例而言,Intel格式和Motorola LSB格式的起始位置实际上为24+16-1=39,而Motorola MSB格式的起始位置就是24,不需调整。
B、设置CAN信号数据中的字节数组包含高字节位和低字节位。第三信息还包括信号值,根据第三信息确定Intel格式的起始位、Motorola MSB格式的起始位以及MotorolaLSB格式的起始位后,将信号值按格式依次填写CAN信号数据中的字节数组,生成CAN信号数据,其中,将Intel格式的信号值按照方向从高字节位至低字节位填写,将Motorola MSB格式和Motorola LSB格式的信号值按照方向从低字节位至高字节位填写。
具体的,确认起始位置后,逐位将binarySpeed的每一位填到字节数组的对应位即可。当填完字节数组的一个字节时,需要接着填下一个字节时,这时便遇到第二个需要区分格式的情况:Intel格式是按照从高字节到低字节的方向填写,而Motorola格式(不管是Motorola MSB还是Motorola LSB)都是按照从低字节往高字节的方向填写。对于本实施例而言:Intel格式的起始位置为39,对应第5个字节,填完第5个字节后,接下来应该填第4个字节,Motorola LSB格式的起始位置也是39,对应第5个字节,但填完第5个字节后,接下来应该填第6个字节。
本发明通过读取用户输入的参数信息,确定参数信息包含的第一信息、第二信息以及第三信息;解析第一信息确定对应的CAN通信矩阵Excel文件;遍历对应的CAN通信矩阵Excel文件,解析第二信息获取对应的CAN通信矩阵Excel文件中与第二信息对应的描述内容;解析第三信息并结合描述内容执行位运算,生成CAN信号数据。通过解析参数信息定位对应的CAN通信矩阵Excel文件并与其中描述内容进行匹配,生成CAN信号数据,提高了生成CAN信号数据的准确率。
请参阅图4,在一具体实施例中,生成模块14还包括数据转换模块141、数据填入模块142以及数据生成模块143:
数据转换模块141,用于第三信息包括信号值,在CAN信号数据内设置字节数组,将信号值转换为二进制表示。
假设要生成一个CAN报文,其中需要包含车速speed为80km/h这个信号,通信矩阵给出的车速信号的start bit为24,bit length为16,精度为0.015625。先对车速转换精度,得到speed = 80 / 0.05625 = 1423 (向上取整)。将车速化为二进制形式,得到binarySpeed = 101,1000,1111。当车速的二进制串长度小于bit length时,在前面填0直到长度一致,即:binarySpeed = 0000, 0101, 1000, 1111。
数据填入模块142,用于将信号值转换为二进制后的值填入字节数组。
定义一个长度为8的字节数组并初始化为全0:char data[8] = {0},将以上转化的二进制字符串binarySpeed中的每一位分别填到字节数组的某个位置中。
数据生成模块143,用于区分三种格式进行填写,生成CAN信号数据。
首先确定不同格式填写的起始位,然后确定移动方向,具体如下:
A、解析第三信息并与Intel格式、Motorola MSB格式以及Motorola LSB格式进行匹配,确定Intel格式的起始位、Motorola MSB格式的起始位以及Motorola LSB格式的起始位,第三信息包括信号起始值和信号长度值,将第三信息中的信号起始值作为MotorolaLSB格式的起始位,计算信号起始值与信号长度值的和再减去数值1,确定Intel格式的起始位和Motorola MSB格式的起始位。
具体的,Intel格式和Motorola LSB格式的start bit对应的是最低有效位,而最高有效位等于(start bit + bit length - 1),因而需要调整。Motorola MSB格式的startbit对应的是最高有效位,因而不需调整。以本实施例而言,Intel格式和Motorola LSB格式的起始位置实际上为24+16-1=39,而Motorola MSB格式的起始位置就是24,不需调整。
B、设置CAN信号数据中的字节数组包含高字节位和低字节位。第三信息还包括信号值,根据第三信息确定Intel格式的起始位、Motorola MSB格式的起始位以及MotorolaLSB格式的起始位后,将信号值按格式依次填写CAN信号数据中的字节数组,生成CAN信号数据,其中,将Intel格式的信号值按照方向从高字节位至低字节位填写,将Motorola MSB格式和Motorola LSB格式的信号值按照方向从低字节位至高字节位填写。
具体的,确认起始位置后,逐位将binarySpeed的每一位填到字节数组的对应位即可。当填完字节数组的一个字节时,需要接着填下一个字节时,这时便遇到第二个需要区分格式的情况:Intel格式是按照从高字节到低字节的方向填写,而Motorola格式(不管是Motorola MSB还是Motorola LSB)都是按照从低字节往高字节的方向填写。对于本实施例而言:Intel格式的起始位置为39,对应第5个字节,填完第5个字节后,接下来应该填第4个字节,Motorola LSB格式的起始位置也是39,对应第5个字节,但填完第5个字节后,接下来应该填第6个字节。
本发明通过读取用户输入的参数信息,确定参数信息包含的第一信息、第二信息以及第三信息;解析第一信息确定对应的CAN通信矩阵Excel文件;遍历对应的CAN通信矩阵Excel文件,解析第二信息获取对应的CAN通信矩阵Excel文件中与第二信息对应的描述内容;解析第三信息并结合描述内容执行位运算,生成CAN信号数据。通过解析参数信息定位对应的CAN通信矩阵Excel文件并与其中描述内容进行匹配,生成CAN信号数据,提高了生成CAN信号数据的准确率,彻底避免了手动生成报文数据时效率低、耗时长、出错率高等问题。
请参阅图5,本发明某一实施例提供一种终端设备,包括:
一个或多个处理器;
存储器,与所述处理器耦接,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上所述的基于CAN通信矩阵的数据生成方法。
处理器用于控制该终端设备的整体操作,以完成上述的基于CAN通信矩阵的数据生成方法的全部或部分步骤。存储器用于存储各种类型的数据以支持在该终端设备的操作,这些数据例如可以包括用于在该终端设备上操作的任何应用程序或方法的指令,以及应用程序相关的数据。该存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。
在一示例性实施例中,终端设备可以被一个或多个应用专用集成电路(Application Specific 1ntegrated Circuit,简称AS1C) 、数字信号处理器(DigitalSignal Processor,简称DSP) 、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD) 、现场可编程门阵列(Field Programmable Gate Array ,简称FPGA) 、控制器、微控制器、微处理器或其他电子元件实现,用于执行如上述任一项实施例所述的基于CAN通信矩阵的数据生成方法,并达到如上述方法一致的技术效果。
在另一示例性实施例中,还提供一种包括计算机程序的计算机可读存储介质,该计算机程序被处理器执行时实现如上述任一项实施例所述的基于CAN通信矩阵的数据生成方法的步骤。例如,该计算机可读存储介质可以为上述包括计算机程序的存储器,上述计算机程序可由终端设备的处理器执行以完成如上述任一项实施例所述的基于CAN通信矩阵的数据生成方法,并达到如上述方法一致的技术效果。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (6)
1.一种基于CAN通信矩阵的数据生成方法,其特征在于,包括:
读取用户输入的参数信息,确定所述参数信息包含的第一信息、第二信息以及第三信息;
解析所述第一信息确定对应的CAN通信矩阵Excel文件;
遍历所述对应的CAN通信矩阵Excel文件,解析所述第二信息获取所述对应的CAN通信矩阵Excel文件中与所述第二信息对应的描述内容;
解析所述第三信息并结合所述描述内容执行位运算,生成CAN信号数据;所述CAN通信矩阵Excel文件包括排列格式,所述排列格式包括Intel格式、Motorola MSB格式以及Motorola LSB格式;
所述解析所述第三信息并结合所述描述内容执行位运算,包括:
解析所述第三信息并与所述Intel格式、所述Motorola MSB格式以及所述MotorolaLSB格式进行匹配,确定所述Intel格式的起始位、所述Motorola MSB格式的起始位以及所述Motorola LSB格式的起始位;
所述第三信息包括信号起始值和信号长度值,将所述第三信息中的信号起始值作为所述Motorola LSB格式的起始位;
计算所述信号起始值与所述信号长度值的和再减去数值1,确定所述Intel格式的起始位和所述Motorola MSB格式的起始位。
2.根据权利要求1所述的基于CAN通信矩阵的数据生成方法,其特征在于,所述生成CAN信号数据,包括:
设置所述CAN信号数据中的字节数组包含高字节位和低字节位;
所述第三信息还包括信号值,根据所述第三信息确定所述Intel格式的起始位、所述Motorola MSB格式的起始位以及所述Motorola LSB格式的起始位后,将所述信号值按格式依次填写所述CAN信号数据中的字节数组,生成CAN信号数据;其中,
将所述Intel格式的所述信号值按照方向从所述高字节位至所述低字节位填写,将所述Motorola MSB格式和所述Motorola LSB格式的所述信号值按照方向从所述低字节位至所述高字节位填写。
3.一种基于CAN通信矩阵的数据生成装置,其特征在于,包括:
数据读取模块,用于读取用户输入的参数信息,确定所述参数信息包含的第一信息、第二信息以及第三信息;
第一解析模块,用于解析所述第一信息确定对应的CAN通信矩阵Excel文件;
第二解析模块,用于遍历所述对应的CAN通信矩阵Excel文件,解析所述第二信息获取所述对应的CAN通信矩阵Excel文件中与所述第二信息对应的描述内容;
生成模块,用于解析所述第三信息并结合所述描述内容执行位运算,生成CAN信号数据
所述CAN通信矩阵Excel文件包括排列格式,所述排列格式包括Intel格式、MotorolaMSB格式以及Motorola LSB格式;
所述生成模块,还用于:
解析所述第三信息并与所述Intel格式、所述Motorola MSB格式以及所述MotorolaLSB格式进行匹配,确定所述Intel格式的起始位、所述Motorola MSB格式的起始位以及所述Motorola LSB格式的起始位;
所述第三信息包括信号起始值和信号长度值,将所述第三信息中的信号起始值作为所述Motorola LSB格式的起始位;
计算所述信号起始值与所述信号长度值的和再减去数值1,确定所述Intel格式的起始位和所述Motorola MSB格式的起始位。
4.根据权利要求3所述的基于CAN通信矩阵的数据生成装置,其特征在于,所述生成模块,还用于:
设置所述CAN信号数据中的字节数组包含高字节位和低字节位;
所述第三信息还包括信号值,根据所述第三信息确定所述Intel格式的起始位、所述Motorola MSB格式的起始位以及所述Motorola LSB格式的起始位后,将所述信号值按格式依次填写所述CAN信号数据中的字节数组,生成CAN信号数据;其中,
将所述Intel格式的所述信号值按照方向从所述高字节位至所述低字节位填写,将所述Motorola MSB格式和所述Motorola LSB格式的所述信号值按照方向从所述低字节位至所述高字节位填写。
5.一种终端设备,其特征在于,包括:
一个或多个处理器;
存储器,与所述处理器耦接,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-2任一项所述的基于CAN通信矩阵的数据生成方法。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-2任一项所述的基于CAN通信矩阵的数据生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111495387.9A CN113905095B (zh) | 2021-12-09 | 2021-12-09 | 一种基于can通信矩阵的数据生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111495387.9A CN113905095B (zh) | 2021-12-09 | 2021-12-09 | 一种基于can通信矩阵的数据生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113905095A CN113905095A (zh) | 2022-01-07 |
CN113905095B true CN113905095B (zh) | 2022-04-05 |
Family
ID=79025432
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111495387.9A Active CN113905095B (zh) | 2021-12-09 | 2021-12-09 | 一种基于can通信矩阵的数据生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113905095B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114691604B (zh) * | 2022-02-25 | 2024-05-14 | 智己汽车科技有限公司 | 一种dbc信号导出起始位格式转换方法及系统 |
CN114691605B (zh) * | 2022-02-25 | 2024-05-14 | 智己汽车科技有限公司 | 一种dbc信号起始位格式转换方法及系统 |
CN116016724B (zh) * | 2023-01-06 | 2024-05-14 | 一汽解放汽车有限公司 | 一种报文的解析方法、装置、设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN207719863U (zh) * | 2018-01-17 | 2018-08-10 | 惠州市汇宇通电子有限公司 | 一种带can通讯电动摩托车类保护板 |
WO2021184689A1 (zh) * | 2020-03-16 | 2021-09-23 | 平安科技(深圳)有限公司 | 模型数据处理方法、装置、设备及计算机可读存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1181652C (zh) * | 2003-04-15 | 2004-12-22 | 北京四方继保自动化有限公司 | 一种基于现场可编程门阵列实现的本地网通信的方法 |
CN108667679B (zh) * | 2017-03-30 | 2023-05-26 | 长城汽车股份有限公司 | 一种转换方法和装置 |
CN108829647A (zh) * | 2018-05-04 | 2018-11-16 | 天津大学 | 一种数据转换方法及装置 |
US11410258B2 (en) * | 2019-10-10 | 2022-08-09 | Board of Trustees, California State University | Method and system for distribution of university student degree completion data |
WO2021174919A1 (zh) * | 2020-03-06 | 2021-09-10 | 平安科技(深圳)有限公司 | 简历数据信息解析及匹配方法、装置、电子设备及介质 |
-
2021
- 2021-12-09 CN CN202111495387.9A patent/CN113905095B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN207719863U (zh) * | 2018-01-17 | 2018-08-10 | 惠州市汇宇通电子有限公司 | 一种带can通讯电动摩托车类保护板 |
WO2021184689A1 (zh) * | 2020-03-16 | 2021-09-23 | 平安科技(深圳)有限公司 | 模型数据处理方法、装置、设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113905095A (zh) | 2022-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113905095B (zh) | 一种基于can通信矩阵的数据生成方法及装置 | |
CN113434328B (zh) | 一种分散控制系统逻辑组态编译纠错方法和系统 | |
CN110990051B (zh) | 软件包依赖关系的维护方法、装置、介质和设备 | |
CN115983173A (zh) | 寄存器模型生成方法、装置、计算机设备及存储介质 | |
CN115190188A (zh) | Can报文解析方法、装置、计算机存储介质及电子设备 | |
CN112035308A (zh) | 系统接口测试表格的生成方法及装置 | |
CN115169307A (zh) | 基于表格的数据处理方法、装置、设备及存储介质 | |
CN108334313A (zh) | 用于大型soc研发的持续集成方法、装置及代码管理系统 | |
CN114253642B (zh) | 系统信息处理方法、装置、电子设备及介质 | |
CN115080113A (zh) | 项目代码检测方法和装置、可读存储介质、电子设备 | |
CN113220591A (zh) | 生成测试数据的方法及装置 | |
CN107861725B (zh) | 一种iOS数据反向自动解析策略 | |
CN112737831A (zh) | 一种固件升级包处理方法、装置、电子设备和存储介质 | |
CN111176998B (zh) | 一种液压控制软件的配置项测试方法 | |
CN110569065B (zh) | 基于域填充的处理器指令编码自动生成方法及装置 | |
CN117369789B (zh) | 基于可视化配置工具生成代码的方法及可视化显示设备 | |
CN112509629B (zh) | J750系统数据下载方法、系统、电子设备及存储介质 | |
CN115047835B (zh) | 基于dcs系统定期试验数据获取方法、装置、设备及介质 | |
CN112101025B (zh) | 拼音标注方法、装置、电子设备及存储介质 | |
CN115470214A (zh) | Dbc文件的生成方法、装置和电子设备 | |
CN114385132A (zh) | 一种断言代码生成方法、装置、设备及介质 | |
CN118426811A (zh) | 一种bios更新方法、装置、设备及可读存储介质 | |
CN116542230A (zh) | 文书自动生成方法、装置、计算机设备及存储介质 | |
CN115658036A (zh) | 一种寄存器模型验证输出方法、装置、设备及存储介质 | |
CN118377712A (zh) | 一种仿真模型测试一体化方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: Floor 25, Block A, Zhongzhou Binhai Commercial Center Phase II, No. 9285, Binhe Boulevard, Shangsha Community, Shatou Street, Futian District, Shenzhen, Guangdong 518000 Patentee after: Shenzhen Youjia Innovation Technology Co.,Ltd. Address before: 518051 401, building 1, Shenzhen new generation industrial park, No. 136, Zhongkang Road, Meidu community, Meilin street, Futian District, Shenzhen, Guangdong Province Patentee before: SHENZHEN MINIEYE INNOVATION TECHNOLOGY Co.,Ltd. |