一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种DBC信号起始位格式转换方法及系统与流程

2022-07-02 09:42:58 来源:中国专利 TAG:

一种dbc信号起始位格式转换方法及系统
技术领域
1.本发明属于汽车数据库开发技术领域,更具体地,涉及一种dbc信号起始位格式转换方法及系统。


背景技术:

2.dbc文件是描述can网络节点间的数据通讯的文件,.dbc文件是一个ascii格式的文件,其.dbc扩展名可用于定义can网络。汽车网络开发过程中,离不开dbc数据库,随着汽车技术的发展,汽车上的ecu节点和报文数目越来越多,手动编辑dbc文件不仅耗费了工程师大量的时间,而且容易出错。为了解决该问题,目前有很多转换dbc的工具,有的采用excel vba,有的采用python。然而,这些转换工具在转换过程中都会面临motorola格式信号起始位在文件格式与在candb 中不同的问题,很多工具都是直接将设计的起始位填入,再在candb 中进行调整以最终完成dbc的编制工作。由于在生成文件之后还需要进行人工操作,容易导致总线解析错误或软件编写错误。


技术实现要素:

3.针对现有技术的以上缺陷或改进需求,本发明提供了一种dbc信号起始位格式转换方法及系统,能有效解决现有dbc转换工具转换motorola格式信号时出现的文本格式定义起始位与文件起始位不同的问题,生成正确的dbc文件。
4.为实现上述目的,按照本发明的一个方面,提供了一种dbc信号起始位格式转换方法,包括:定义写入文本格式规范;提取excel文件中的数据信息,获得起始位、字节长度和字节顺序;判断字节顺序对应的信号格式;在字节顺序为intel格式时,根据定义写入文本格式规范,将最低信号位lsb填入文本格式中;在字节顺序为motorola格式时,进一步判定信号的最低信号位lsb和最高信号位msb是否在同一字节中,并计算最高信号位msb,根据定义写入文本格式规范,将最高信号位msb填入文本格式中。
5.在一些实施方式中,进一步判定信号的最低信号位lsb和最高信号位msb是否在同一字节中具体为:判断最低信号位lsb所在字节的最大bit位加1减去最低信号位lsb是否小于8,是则认定信号的最低信号位lsb和最高信号位msb在同一字节中,否则认定信号的最低信号位lsb和最高信号位msb不在同一字节中。
6.在一些实施方式中,信号的最低信号位lsb和最高信号位msb在同一字节中时,采用第一策略计算得到最高信号位msb;信号的最低信号位lsb和最高信号位msb不在同一字节中时,采用第二策略计算得到最高信号位msb。
7.在一些实施方式中,采用第一策略计算得到最高信号位msb=lsb bitlen-1,其中,bitlen为字节长度。
8.在一些实施方式中,采用第二策略计算得到最高信号位msb具体为:计算最低信号位lsb所在字节的占用位数n(lsb)以及最低信号位lsb所在字节需要占用的剩余字节数r=bitlen-n(lsb),其中,bitlen为字节长度;明确最高信号位msb所在字节及最高信号位msb
所在字节需要占用的位数n(msb)=r;计算最高信号位msb所在字节的最小bit位msb(min);计算得到最高信号位msb=msb(min) n(msb)-1。
9.在一些实施方式中,定义写入文本格式规范为:起始位| 字节长度 @ 字节顺序。
10.在一些实施方式中,起始位为最低信号位lsb或者最高信号位msb,字节顺序对应intel格式或者motorola格式。
11.在一些实施方式中,用0和1其中之一代表intel格式,另一代表motorola格式。
12.在一些实施方式中,首先判断字节顺序是否为intel格式,在判定字节顺序不是intel格式时,进一步判断字节顺序是否为motorola格式。
13.在一些实施方式中,在判定字节顺序不是motorola格式时,判定excel文件中数据信息的字节格式异常,并报错。
14.根据本发明的另一方面,提供了一种dbc信号起始位格式转换系统,包括:文本格式规范定义模块,用于定义文本格式的写入规范;文件信息提取模块,用于提取excel文件中的数据信息,获得起始位、字节长度和字节顺序;格式判断模块,用于判断字节顺序对应的信号格式;写入模块,用于根据信号格式及文本格式的写入规范,在文本格式中写入对应的内容。
15.在一些实施方式中,写入模块用于在格式判断模块判断信号格式为intel格式时,根据定义写入文本格式规范,将lsb填入文本格式中。
16.在一些实施方式中,格式判断模块用于在判断信号格式为motorola格式时,进一步判定信号的lsb和msb是否在同一字节中。
17.在一些实施方式中,判定信号的lsb和msb是否在同一字节中具体为:判断lsb所在字节的最大bit位加1减去lsb是否小于8,是则认定信号的lsb和msb在同一字节中,否则认定信号的lsb和msb不在同一字节中。
18.在一些实施方式中,该系统还包括计算模块,用于根据信号的lsb和msb是否在同一字节中,采用不同的策略计算得到msb。
19.在一些实施方式中,计算模块用于在格式判断模块认定信号的lsb和msb在同一字节中时,计算得到msb=lsb bitlen-1,其中,bitlen为字节长度。
20.在一些实施方式中,计算模块用于在格式判断模块认定信号的lsb和msb不在同一字节中时,通过如下方式计算得到msb:计算最低信号位lsb所在字节的占用位数n(lsb)以及最低信号位lsb所在字节需要占用的剩余字节数r=bitlen-n(lsb),其中,bitlen为字节长度;明确最高信号位msb所在字节及最高信号位msb所在字节需要占用的位数n(msb)=r;计算最高信号位msb所在字节的最小bit位msb(min);计算得到最高信号位msb=msb(min) n(msb)-1。
21.在一些实施方式中,写入模块用于在格式判断模块判断信号格式为motorola格式时,根据定义写入文本格式规范,将计算模块计算得到的msb写入文本格式中。
22.在一些实施方式中,该系统还包括提示模块,用于在格式判断模块判定字节顺序既不是intel格式,又不是motorola格式时,判定excel文件中数据信息的字节格式异常,并报错。
23.根据本发明的又一方面,提供了一种车辆,包括上述dbc信号起始位格式转换系统。
24.根据本发明的又一方面,提供了一种电子设备,包括:处理器;与处理器通信连接的存储器;存储器存储有可被处理器执行的指令,指令被处理器执行,以使处理器能够执行上述方法。
25.根据本发明的又一方面,提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令被处理器执行时实现上述方法。
26.总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:将candb 中定义motorola格式信号的起始位准确地计算转换为文本格式中所需的起始位,使得转换计算生成的dbc文件通过candb 打开后起始位即为设计所需。
附图说明
27.图1是intel格式信号在candb 中打开时的示意图;图2是motorola格式信号在candb 中打开时的示意图;图3是本发明实施例的dbc文件转换方法流程图;图4是本发明一实施例的电子设备的结构框图。
具体实施方式
28.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。正如本领域技术人员可以认识到的那样,在不脱离本技术的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。
29.无论是motorola格式还是intel格式,在candb 中打开的dbc文件起始位都为最低信号位(lsb),如图1和图2所示,intel格式和motorola格式均为起始位30、信号长度为24 bit的信号。而在文本格式中,intel格式定义的起始位为最低信号位(lsb),motorola格式定义的起始位为最高信号位(msb),因此导致无法将motorola格式在candb 中定义好的起始位直接写入文本格式,而是需要将lsb转换为msb后再写入文本格式生成dbc文件,这样转换计算生成的dbc文件通过candb 打开后起始位即为设计所需。
30.如图3所示,本发明实施例的dbc信号起始位格式转换方法包括如下步骤:定义写入文本格式规范。在一些实施例中,文本格式规范为:起始位| 字节长度 @ 字节顺序。其中,起始位为最低信号位lsb或者最高信号位msb。字节长度用bitlen表示。字节顺序用byte order表示,字节顺序有两种,分别对应intel格式和motorola格式。在一些实施例中,用0和1代表intel格式和motorola格式。在一些实施例中,用0代表intel格式,用1代表motorola格式。在一些实施例中,用0代表motorola格式,用1代表intel格式。
31.提取excel文件中的数据信息,获得起始位、字节长度和字节顺序。
32.判断字节顺序是否为intel格式,是则根据定义写入文本格式规范,将lsb填入文本格式中。在一些实施方式中,在文本格式中写入lsb | bitlen @ byte order,例如,lsb | bitlen @ 1;否则进一步判断字节顺序是否为motorola格式。
33.在判定字节顺序不是motorola格式时,判定excel文件中数据信息的字节格式异常,并报错;在判定字节顺序是motorola格式时,进一步判定信号的lsb和msb是否在同一字
节中。
34.在一些实施方式中,判定信号的lsb和msb是否在同一字节中具体为:判断lsb所在字节的最大bit位加1减去lsb是否小于8,是则认定信号的lsb和msb在同一字节中,否则认定信号的lsb和msb不在同一字节中。
35.根据信号的lsb和msb是否在同一字节中,采用不同的策略计算得到msb。
36.在一些实施方式中,在认定信号的lsb和msb在同一字节中时,计算得到msb=lsb bitlen-1。
37.在一些实施方式中,在认定信号的lsb和msb不在同一字节中时,通过如下方式计算得到msb。
38.具体地,计算lsb所在字节的占用位数n(lsb)以及lsb所在字节需要占用的剩余字节数r=bitlen-n(lsb),其中,n(lsb)=((int(lsb/ 8) 1) * 8
ꢀ‑ꢀ
lsb)
ꢀ‑ꢀ
8 * int( (bitlen
ꢀ‑ꢀ
( (int(lsb / 8) 1) * 8
ꢀ‑ꢀ
lsb)
ꢀ‑ꢀ
1) / 8),int()表示对()内的数取整数。
39.根据lsb所在字节需要占用的剩余字节数r,明确msb所在字节及msb所在字节需要占用的位数n(msb)=r。
40.计算msb所在字节的最小bit位msb(min)=(int(lsb/8)
ꢀ‑ꢀ
(int((bitlen
ꢀ‑ꢀ
((int(lsb / 8) 1) * 8
ꢀ‑ꢀ
lsb)
ꢀ‑ꢀ
1) / 8) 1)) * 8。
41.计算得到msb=msb(min) n(msb)-1。
42.根据定义写入文本格式规范,将msb填入文本格式中,生成dbc文件。在一些实施方式中,在文本格式中写入msb | bitlen @ byte order,例如msb | bitlen @0。
43.通过上述方法,对motorola格式信号的起始位进行转换后,生成正确的dbc文件,该文件通过candb 打开后起始位即为设计所需。
44.对应地,本发明实施例还提供了一种dbc信号起始位格式转换系统,包括:文本格式规范定义模块,用于定义文本格式的写入规范。在一些实施例中,文本格式规范为:起始位| 字节长度 @ 字节顺序。
45.文件信息提取模块,用于提取excel文件中的数据信息,获得起始位、字节长度和字节顺序。
46.格式判断模块,用于判断字节顺序对应的信号格式。
47.写入模块,用于根据信号格式及文本格式的写入规范,在文本格式中写入对应的内容。在一些实施方式中,在格式判断模块判断信号格式为intel格式时,写入模块根据定义的写入文本格式规范,将lsb填入文本格式中,例如,写入模块在文本格式中写入lsb | bitlen @ byte order。
48.在一些实施方式中,格式判断模块判断信号格式为motorola格式时,进一步判定信号的lsb和msb是否在同一字节中。在一些实施方式中,判定信号的lsb和msb是否在同一字节中具体为:判断lsb所在字节的最大bit位加1减去lsb是否小于8,是则认定信号的lsb和msb在同一字节中,否则认定信号的lsb和msb不在同一字节中。
49.计算模块,用于根据信号的lsb和msb是否在同一字节中,采用不同的策略计算得到msb。在一些实施方式中,在格式判断模块认定信号的lsb和msb在同一字节中时,计算模块计算得到msb=lsb bitlen-1。
50.在一些实施方式中,在格式判断模块认定信号的lsb和msb不在同一字节中时,计算模块通过如下方式计算得到msb。
51.具体地,计算lsb所在字节的占用位数n(lsb)以及lsb所在字节需要占用的剩余字节数r=bitlen-n(lsb),其中,n(lsb)=((int(lsb/ 8) 1) * 8
ꢀ‑ꢀ
lsb)
ꢀ‑ꢀ
8 * int( (bitlen
ꢀ‑ꢀ
( (int(lsb / 8) 1) * 8
ꢀ‑ꢀ
lsb)
ꢀ‑ꢀ
1) / 8),int()表示对()内的数取整数。
52.根据lsb所在字节需要占用的剩余字节数r,明确msb所在字节及msb所在字节需要占用的位数n(msb)=r。
53.计算msb所在字节的最小bit位msb(min)=(int(lsb/8)
ꢀ‑ꢀ
(int((bitlen
ꢀ‑ꢀ
((int(lsb / 8) 1) * 8
ꢀ‑ꢀ
lsb)
ꢀ‑ꢀ
1) / 8) 1)) * 8。
54.计算得到msb=msb(min) n(msb)-1。
55.在一些实施方式中,在格式判断模块判断信号格式为motorola格式时,写入模块根据定义的写入文本格式规范,将计算模块计算得到的msb写入文本格式中,生成dbc文件。例如,写入模块在文本格式中写入msb | bitlen @ byte order。
56.提示模块,用于在格式判断模块判定字节顺序既不是intel格式,又不是motorola格式时,判定excel文件中数据信息的字节格式异常,并报错。
57.本技术实施例还提供了一种车辆,在一些实施方式中,车辆可以包括以上所述的dbc信号起始位格式转换系统。
58.图4为根据本技术一实施例的电子设备的结构框图。本技术实施例还提供了一种电子设备,如图4所示,该电子设备包括:至少一个处理器401,以及与至少一个处理器401通信连接的存储器403。存储器403内存储有可被至少一个处理器401执行的指令。指令被至少一个处理器401执行。处理器401执行该指令时实现上述实施例中的驾驶场景重构方法。存储器403和处理器401的数量可以为一个或多个。该电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本技术的实现。
59.该电子设备还可以包括通信接口405,用于与外界设备进行通信,进行数据交互传输。各个设备利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器401可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示图形用户界面(graphical user interface,gui)的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
60.可选的,在具体实现上,如果存储器403、处理器401及通信接口405集成在一块芯片上,则存储器403、处理器401及通信接口405可以通过内部接口完成相互间的通信。
61.应理解的是,上述处理器可以是中央处理器(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processing,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(advanced risc machines,arm)架构的处理器。
62.本技术实施例提供了一种计算机可读存储介质(如上述的存储器403),其存储有计算机指令,该程序被处理器执行时实现本技术实施例中提供的方法。
63.可选的,存储器403可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据驾驶场景重构方法的电子设备的使用所创建的数据等。此外,存储器403可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器403可选包括相对于处理器401远程设置的存储器,这些远程存储器可以通过网络连接至驾驶场景重构方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
64.在本说明书的描述中,参考术语
“ꢀ
一个实施例”、
“ꢀ
一些实施例”、
“ꢀ
示例”、
“ꢀ
具体示例”、或
“ꢀ
一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包括于本技术的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
65.此外,术语
“ꢀ
第一”、
“ꢀ
第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有
“ꢀ
第一”、
“ꢀ
第二”的特征可以明示或隐含地包括至少一个该特征。在本技术的描述中,
“ꢀ
多个”的含义是两个或两个以上,除非另有明确具体的限定。
66.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或多个(两个或两个以上)用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分。并且本技术的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能。
67.在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
68.应理解的是,本技术的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。上述实施例方法的全部或部分步骤是可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步
骤之一或其组合。
69.此外,在本技术各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。上述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。该存储介质可以是只读存储器,磁盘或光盘等。
70.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献