CN116074232A - 一种基于dbc文件解析生成车载网关路由表的处理方法 - Google Patents
一种基于dbc文件解析生成车载网关路由表的处理方法 Download PDFInfo
- Publication number
- CN116074232A CN116074232A CN202211730579.8A CN202211730579A CN116074232A CN 116074232 A CN116074232 A CN 116074232A CN 202211730579 A CN202211730579 A CN 202211730579A CN 116074232 A CN116074232 A CN 116074232A
- Authority
- CN
- China
- Prior art keywords
- dbc
- file
- message
- signal
- routing table
- 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.)
- Pending
Links
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/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/84—Mapping; Conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种基于DBC文件生成车载网关路由表的处理方法,包括:根据厂商提供的excel文件,制作的DBC文件和编写转发关系的可识别文档,所述DBC文件使用CANOE生成,后期可用于报文的收发解析,编写转发关系文档;通过DBC解析模块对所述DBC文件解析生成基础信号量表。通过转发链接模块对转发关系文档进行处理生成转发关系列表,最终将基础信号表和转发关系列表放在一起生成HEX文件与BIN文件;通过上述HEX文件与BIN文件通过文件传输手段传递给MCU。最终MCU按照特定格式解析表格,MCU根据表格进行信号的转发处理。本发明的优点是:可自定义的转发关系,可以让客户在报文定义方面拥有更多的灵活度。
Description
技术领域
本发明涉及一种基于DBC文件解析生成车载网关路由表的处理方法。
背景技术
随着汽车通信需求和要求的提高,汽车各个通道之间的CAN网关通信也越来越重要。但是随着各个公司的不同业务需求,CAN网关的转发路由表也不尽相同。CN114979314A的专利文献公开了一种汽车CAN数据自动解析方法及系统、计算机可读存储介质、电子设备,该方法包括的步骤为:编辑DBC文件,删除不需要解析的CAN信号的定义信息并加载编辑后的DBC文件;加载第i个CAN报文文件,识别编辑后的DBC文件中需要解析的CAN信号的ID,基于ID对CAN报文文件进行处理,即删除CAN报文文件中不需要的报文帧;找到处理之后的CAN报文文件的首帧报文ID以及首帧报文ID对应的所有报文帧位置。该技术能够从原始报文数据中提取出指定信号的1Hz报文数据,在解析计算时只针对1Hz的报文数据,在处理长时间的过程数据时,1Hz的解析结果数据也使得最终的数据分析处理更加便利,还可以实现多CAN报文文件的自动化处理,使得CAN报文解析工作的效率显著提升。但是显著缺点是:不能实现对DBC文件制作问题的解析,最终找到DBC缺少元素。CN210609213U的专利文献公开了一种可配置化协议转换网关,包括MCU、CAN控制器、收发器、文件传输模块;所述MCU为主控芯片,通过并口eim与CAN控制器连接;通过文件传输模块将外部配置文件写入MCU中;所述CAN控制器为CAN报文收发芯片,通过收发器接收发送外部报文;所述文件传输模块包括WIFI、以太网、USB、SD卡、EMC、QSPI。其显著效果是:具备更多路CAN信号的网关,并且能够导入DBC文件自动生成相应代码;可以通过脚本实现CAN信号的解析;实现不同网段和不同网络协议之间的信号交互;可通过FTP在线更新数据;支持USB、TF、以太网等相关需求的功能定制;实现网关路由相关功能,并且使得配置路由信息表更简单。但是,本方案缺少对于具体信号的转换处理。
发明内容
本发明的目的在于克服上述不足,并实现基于DBC文件解析生成车载网关路由表的处理方法,其有效解决CAN报文转发excel关系表转化为可供操作的数据列表的问题。
为了实现上述目的,本发明采用的技术方案为:一种基于DBC文件生成车载网关路由表的处理方法,其特征在于,包括:
根据厂商提供的excel文件,自行制作网关路由表基础信号节点的DBC文件和网关路由表转发关系的DBC后缀文件,上述DBC文件使用CANdb++生成CAN.dbc,根据CAN.dbc标准格式的关键字,建构解析DBC模块框架;
根据所述解析DBC模块框架编写解析DBC模块,通过所述解析DBC模块解析CAN.dbc获取到最基础的路由信号节点;
创建connect.txt的转发关系文件,前期修改填充其中元素,后期制作完成则更改后缀为connect.dbc文件;
最后,根据connect.dbc文件自定义的关键字,建构DBC链接解析框架,编写链接解析模块,完成对于转发关系文档的解析,获取到路由表节点间联系的线性关系。
进一步地,建构解析DBC模块框架,包括:
手动使用CANdb++生成CAN.dbc文件;
使用fopen函数打开对应的CAN.dbc文件;
根据DBC标准的BO_SG_BA_解析获取报文信息,信号信息,周期信息,生成对应日志;
获取到的上述信息,填入对应的数组,分别为发送报文数组,发送信号数组,接收报文数组,接收信号数组,数组直接的联系依据报文ID和信号起始位相连;
以写的方式打开一个hex文件,结合转发关系生成的数组,把所有数组放在一个结构体内,最后按照hex文件格式定义输出信息到固定的hex文件。
进一步地,打开对应的CAN.dbc文件,包括:打开和应用程序同一文件下的DBC文件和DBC后缀文件,文件命名格式CAN.DBC和CONNECT.DBC。
进一步地,所述解析获取报文信息,包括:标准DBC文件关键字的解析,DBC的BO_关键字,包含报文的ID和长度,节点,通过特殊命名节点知晓其所在CAN网络,接收报文通道号,发送还是接收报文。
进一步地,DBC文件后缀关键字解析,包括:自定义关键字,STS_关键字包含了M报文的i信号转发到N报文的j信号,操作模式,操作数,值改变表,根据报文ID和基础信号表相关联,MTM_关键字解析,完整转发关系,M报文数据转发到N报文上,M和N分属不同CAN网络。
进一步地,所述生成对应日志,包括:根据所解析的关键字行生成对应的log.txt文本格式的记录日志,另外一个解析日志则是data.txt,这个文件包含了路由表所有元素的打印信息,如果发现打印信息对不上,则根据log.txt的解析关键字信息,排查路由表解析问题。
进一步地,所述按照hex文件格式定义输出信息到固定的hex文件,包括:根据解析到报文的所有信息,报文ID,报文长度,所属通道号,接收或者发送,信号起始位,长度,信号格式,信号对信号转发关系,报文对报文转发关系,未接收信号发送默认值,未接收到报文发送固定值,操作模式,操作数,值改变表等所有路由表构成信息,转换成有意义数形成固定数组表格。
进一步地,还包括:通过将表格转换成字符形式的数据,按照HEX和BIN文件格式去填充数据,最终生成HEX文件和BIN文件。
进一步地,建构DBC链接解析框架,包括:
第一步:打开转发关系文档,此处为使用fopen函数打开工作目录下的connect.dbc文档;
第二步:解析connect.dbc内自定义的转发关系关键字;
第三步:STS_等信号关系转换成数组,生成转发关系表,STS_关键字后含有接收报文ID,接收信号起始位,发送报文ID,发送信号起始位,两个坐标确定一个点,STS_含有两个点坐标,包括:报文ID和信号长度;
第四步:根据STS_自定义的值改变信号定义格式,解析每个信号转发时是否需要数据转换;
第五步:将数据转换解析后的数据存放到数据改变表内;
第六步:所有表格生成后,自动地形成连接关系网,接收报文ID信号起始位对应发送报文ID信号起始位就完全链接了。
本发明的有益效果为:
实现简单,通过基于DBC文件设计规范,excel报文转发列表,转换为最终报文收发的路由表所需要经过的操作流程。最终效果为excel转换表手动生成DBC文件,编写自定义转发关系文档,程序根据DBC文件和转发关系文档,生成对应的HEX和bin文件。最终CAN报文转发路由表由网关根据对应HEX和bin文件提取出来,去形成可供依据的CAN报文转发关系。能够实现CAN报文转发excel关系表转化为可供操作的数据列表。根据DBC文件去制作路由表,可将解析报文文件利用起来,不用制作多余的信号文件。拥有两种可烧录文件格式,能更好适用于上位机或其余文件传输手段。可自定义的转发关系,可以让客户在报文定义方面拥有更多的灵活度。满足不同元器件直接报文信号的差异。日志模块,DBC和自定义的转发关系文档可能会解析错误。可通过日志解析文档和基础信号表文档找出程序设计缺陷或者显示DBC文件或转发关系文档格式的问题。
附图说明
图1是本发明的一种基于DBC文件解析生成车载网关路由表的处理方法实施例的流程图;
图2是本发明的解析DBC模块框架设计流程图;
图3是本发明的DBC链接解析框架设计流程图。
具体实施方式
如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。说明书后续描述为实施本申请的较佳实施方式,然所述描述乃以说明本申请的一般原则为目的,并非用以限定本申请的范围。本申请的保护范围当视所附权利要求所界定者为准。
请参照图1至图3,本发明提供一种基于DBC文件解析生成网关路由表的方法,包括:
根据厂商提供的excel文件,自行制作网关路由表基础信号节点的DBC文件和网关路由表转发关系的DBC后缀文件,上述DBC文件使用CANdb++生成CAN.dbc,根据CAN.dbc标准格式的关键字,建构解析DBC模块框架;
根据所述解析DBC模块框架编写解析DBC模块,通过所述解析DBC模块解析CAN.dbc获取到最基础的路由信号节点;
创建connect.txt的转发关系文件,前期修改填充其中元素,后期制作完成则更改后缀为connect.dbc文件;
最后,根据connect.dbc文件自定义的关键字,建构DBC链接解析框架,编写链接解析模块,完成对于转发关系文档的解析,获取到路由表节点间联系的线性关系。
如图1所示,本发明实施例的流程具体包括:
第一步:根据厂商提供的excel自行制作DBC文件和以DBC为后缀的连接文档。
第二步:因为两者都以DBC为后缀,所以简称DBC解析程序。但前者为CANdb++可解析的标准DBC文件,后者则可以根据自身PC环境选择文档的后缀。只需改动打开文件命名,.txt后缀文档亦可。
第三步:根据标准DBC文件与转发关系DBC文件,解析完生成的路由表数组,往打开的hex和bin文件写入数据。
第四步:把生成的hex和bin文件通过文件传输手段,传输到MCU中去,MCU根据格式转换,生成可供依据的转发路由表。
第五步:接收到其他ECU的消息,通过转换发送到其他CAN网络的ECU节点。
本发明基于DBC文件设计规范,excel报文转发列表,转换为最终报文收发的路由表所需要经过的操作流程。最终效果为excel转换表手动生成DBC文件,编写自定义转发关系文档,程序根据DBC文件和转发关系文档,生成对应的HEX和bin文件。最终CAN报文转发路由表由网关根据对应HEX和bin文件提取出来,去形成可供依据的CAN报文转发关系。
作为具体的实施例,根据厂商提供的excel文件,自行制作DBC文件和转发关系的DBC后缀文件,上述DBC文件使用CANOE生成,后期报文收发解析都可以使用,上述转发关系的DBC后缀文件是自定义文件,专用于描述报文转发关系,这个路由表生成最重要的就是两点,信号到信号,报文到报文的链接。可以把信号和报文看作节点,报文是信号起始位固定为0的特殊节点,是在数轴上的节点,信号则是数轴之外的节点。信号节点(所属报文ID,信号起始位)报文节点(报文ID)。转发关系只需要把这两者联系起来就好。那么转发关系就需要一行体现四个坐标。标准DBC文件没有这样的定义,所以新增转发关系文档。并把其少有的转换关系也定义其中。例如信号值接收和发送不一致,信号实际意义前后定义0点定义不同,一个标识-150,一个标识-2000。这类的转换定义也需要归属的转发文档中去。
DBC解析模块:解析DBC获取网关转发需要的信息,如:报文的ID,所属网络,报文数据长度,信号的起始位,长度,格式等等,所有信息构成路由表的基础节点。
转发解析模块:解析各类的文件后缀转发关系文档,没有特殊文件头的文档都行,自定义节点直接的连接转换关系,CAN3网络M报文的A信号发生数值变化后,赋值给CAN4网络N报文的B信号。最终把所有的这类转换关系解析完成。构成路由表的链接转换关系。
日志模块:根据解析文件输出解析日志,日志包含两个文件,一个log.txt文件,用于输出每一个解析关键字所在行是否解析有误。一个data.txt文件,用于描述整个路由表的元素信息。
hex和bin生成模块:通过解析转发关系文档和DBC文件获取的信息表格,集合形成路由表,按照hex和bin文件格式进行打印输出。
本发明增加了日志模块,如果新增DBC过程中遗漏或出现信号和报文不匹配的问题,可以根据日志解析文档和厂商的excel报文定义表格对照,从而找到DBC制作发生的错误。厘定CAN网络转发表,生成可以供网关识别的转发关系。可以使用一个通用的转换程序,将不同的CAN网关转发需求统合在一起,实现一套流程转发各种CAN报文。
本发明自定义关键字的STS中含有详细信号转换的处理。例:值改变表,此信息可用于解决新旧产品换代出现的报文定义不一致的问题。例:某家新产品信号定义信号值为0x55表示正常,厂商则采用之前的老器件,发送报文0xAA表示正常。此时网关路由表根据信号是否有值改变列表,从中找出对应关系。接收0xAA发送0x55,从而达到新旧产品的兼容。
如图2所示,本实施例的具体流程包括:
第一步:路由表由基础节点列表和转换关系列表共同构成。
第二步:所有表格共同组成了路由表结构体,其中包含了发送报文信息表,接收报文信息表,发送报文信号表,接收报文信号表,接收报文信号链接表,接收报文信号值改变表。
第三步:使用fopen函数打开对应的gateway.hex文件,填充hex文件头格式,填充hex数据格式,填充hex结尾格式。Hex文件头包含了flash烧录地址,hex文件数据则是数据每行默认填充数量。Hex文件尾为固定格式。
第四步:通过脚本文件,调用hex转bin工具,生成对应的bin文件。
本发明的实施例基于DBC文件设计规范,excel报文转发列表,转换为最终报文收发的路由表所需要经过的操作流程。最终效果为excel转换表手动生成DBC文件,编写自定义转发关系文档,程序根据DBC文件和转发关系文档,生成对应的HEX和BIN文件。最终CAN报文转发路由表由网关根据对应HEX和BIN文件提取出来,去形成可供依据的CAN报文转发关系。
人为根据excel报文转发表编写上述两个文件进行解析,生成对应可执行的HEX和BIN文件。最终通过升级协议把新的转发关系烧录到对应的flash中。新的转发关系只需要变更对应的路由转发表即可。不用去频繁变更程序,方便后期维护。不用每个CAN网关产品维护一套代码,可以多个CAN网关共用一套转发代码逻辑,路由转发表根据各个厂商需求,人工编写上述两个文件完成后,解析生成获得。
根据DBC文件和转换关系的DBC后缀文件去生成可供MCU操作报文的路由转发表。第一步是根据厂商提供的CAN报文转发协议的excel,去决定报文在网关怎么转发,需要做什么操作。例:ID为0x18FF06F3的报文要经过网关转发到另一个CAN网络中去,在另一个CAN网络此报文ID变更为0x18FF1023,转发的信号还需要做个比较,将其中的较小值放到0x18FF1023中数据段的7,8字节。这里面信号和报文的转发链接就是网关需要去做的事情。将接收到的报文转换成下一路CAN网络需要的数据。
如果仅仅只是做个比较这类操作:其他CAN节点接收到信号也能做类似操作,但是网关的作用不仅仅只是这样。还包括了将多路CAN网络的报文信息整合以及将CAN网络分区,只传递CAN网络需要的报文,这样会极大的降低CAN网络通信的占用率。所以网关整合报文信息很有必要,其中的CAN路由表更是重中之重,这张路由表决定了报文接收之后处理的方式。
这张路由表由于各个厂商的需求不同,所以表的具体内容也是各异。但是对于所有厂商来说,对于报文的操作模式无非以下这些:比较大小,相对零点偏移,数据变动等等。
由于路由表各异,操作大致类似。所以这个路由表被单独拿出来处理,这个表的生成则是根据DBC文件和单独的解析DBC去做的。有两个好处,
1.DBC文件在报文收发和后期维护的时候可以直观的看出信号值是否出错。所以DBC文件一般是必须要做的,这个DBC文件流程中则可以解析出报文的基础数据,重复利用。
2.则是厂商如果提供DBC文件,则可以省略掉做DBC文件的时间。直接用于路由表的生成,可以直接使用现成的。
但是DBC文件只是一种解析式的文件,只包含信息如下:报文的ID,报文信号位置,信号长度等等。这造成了无法使用DBC去体现网关转发报文之间的联系。所以在基础DBC文件解析基础上,流程中增加了转发关系的DBC文件。
这个DBC文件不是标准DBC文件,只是DBC后缀。具体的格式定义可以自行定义,在标识报文收发关系得时候更加自由。
整个网关路由表的元素:基础报文信息,报文信息转发关系这两者具备后,就可以完整的生成出路由表了。
其中DBC文件解析最重要的就是关键字的解析了。BO_标识报文的信息,后面主要是报文的ID,报文的长度,报文的发送和接受者。
本发明这里根据关键字识别,提取到上述信息。并把这类信息填充到路由表中去,路由表就有了报文层面的基础信息了,报文ID,报文长度。再根据网关特别定义,把收发报文的节点命名有特殊含义,例如收发节点命名为CAN3_RCV标识这个是CAN3这路CAN网络接收到的报文信息。这样就可以把通道号,是接收报文还是发送报文的信息填充到路由表中了。
SG_标识信号基础信息,根据SG定义的格式,23|16标识起始位置23位,信号长度16bit。这些类似的定义,可以获取到信号起始位,长度,储存格式(intel|motorola),信号精度等等。
还有一些其余关键字,可以获取报文的收发周期。
另外,还有一些和网关收发无关的信息量,例如报文的信号量含义表。整个DBC解析完成,就可以获取到报文的基础信息了。只是基础信息还没有关联,接收到报文信息后,数据不知道填充到发送报文的那个数据域位置。需要做什么样的转换。
如图3所示,本实施例的具体流程包括:
第一步:打开转发关系文档,此处为使用fopen函数打开工作目录下的connect.dbc文档。
第二步:解析connect.dbc内自定义的转发关系关键字。
第三步:STS_等信号关系转换成数组,生成转发关系表。STS_关键字后含有接收报文ID,接收信号起始位,发送报文ID,发送信号起始位,两个坐标确定一个点,STS_含有两个点坐标,(报文ID,信号长度)就可以直接画上连接线了。
第四步:根据STS_自定义的值改变信号定义格式,解析每个信号转发时是否需要数据转换。
第五步:将数据转换解析后的数据存放到数据改变表内。
第六步:所有表格生成后,自动的形成连接关系网。接收报文ID信号起始位对应发送报文ID信号起始位就完全链接了。
作为具体的实施例,包括:打开对应DBC文件和DBC文件后缀文件;根据关键字进行解析;生成对应日志;存放到路由表数组,生成HEX文件。
作为具体的实施例,所述打开对应DBC文件和DBC文件后缀文件,包括:打开和应用程序同一文件下的DBC文件和DBC后缀文件。文件命名格式CAN.DBC和CONNECT.DBC,根据个人环境不同,可自行修改链接关系模块,最终结果不受影响,例:可自行定义转发关系文档后缀,.txt后缀不影响解析流程。.xlsx的excel格式自行修改解析流程都可以,较为灵活。
作为具体的实施例,所述根据关键字进行解析,包括:标准DBC文件关键字的解析,DBC的BO_关键字,包含报文的ID和长度,节点,通过特殊命名节点可知晓其所在CAN网络,接收报文通道号,发送还是接收报文。特殊命名:CAN3_RECV,CAN4_SEND,通道3接收报文,通道4发送报文解析SG_关键字,其中包含信号的长度,格式,起始位等系列信息。BA_包含报文的发送周期信息等等。
DBC文件后缀关键字解析:自定义关键字,STS_关键字包含了M报文的i信号转发到N报文的j信号,操作模式,操作数,值改变表。根据报文ID和基础信号表相关联。MTM_关键字解析,完整转发关系,M报文数据转发到N报文上。M和N分属不同CAN网络。
作为具体的实施例,所述生成日志,包括:根据所解析的关键字行生成对应的log.txt文本格式的记录日志,另外一个解析日志则是data.txt,这个文件包含了路由表所有元素的打印信息,如果发现打印信息对不上。则可以根据log.txt的解析关键字信息,排查路由表解析问题。另外可将路由表可视化,增加路由表烧录之前的可靠性。
作为具体的实施例,所述存放到对应的数组中,生成HEX文件,包括:根据解析到报文的所有信息,报文ID,报文长度,所属通道号,接收或者发送,信号起始位,长度,信号格式,信号对信号转发关系,报文对报文转发关系,未接收信号发送默认值,未接收到报文发送固定值,操作模式,操作数,值改变表等所有路由表构成信息,转换成有意义数形成固定数组表格。通过将表格转换成字符形式的数据,按照hex和bin文件格式去填充数据,最终生成hex文件和bin文件。
作为具体的实施例,解析对应的链接DBC文件。关键字是可以自定义的,会有很大的灵活性在里面。STS关键字表示是信号对应信号的关系,例:0x18FF06F3的接收报文来自CAN3的网络,需要发送到CAN4的通道网络中去,需要发送的ID为0x18562413,其中把来自0x18FF06F3中起始位置为24长度为16bit的信号,填充到0x18562413中的48起始位,长度为16的数据域中去。
这时候STS就表示了其中转发的关系,报文0x18FF06F3对应报文0x18562413,源起始位24目标起始位48,操作模式为0,操作数为0。表示仅仅只是一个简单的信号移位不涉及到数据变化,精度变换等等复杂操作。
MTM就比较简单,是报文直接完整转发的对应关系,只是报文ID发生或不发生改变而已。大多数厂商会在经过网关转发后将报文ID变动。
还有一些其他关键字,例如:信号的固定值,报文的固定值这类关键字解析,表示没有接收到信号,报文发送的默认值,有效信号的默认值。
整体生成HEX流程如上,将DBC文件解析数据和链接DBC文件解析数据存放到报文路由表的结构体数组中,在按照HEX文件的基础格式去生成HEX文件。首先做个开头,表示HEX文件烧录位置。
接着把结构体数组按照一个字节一个字节的往HEX文件的数据域中去填数据。其中HEX文件涉及到一行写多少,这行数据是什么类型的数据。这些按照固定格式填充就好。
然后加上固定的HEX文件结尾,标识整个HEX文件的结束。
最后通过HEX转BIN根据,将HEX文件生成BIN文件格式。最后通过j-flash打开验证BIN文件中的数据是否无损。发现数据完好无丢失。
报文的id和报文长度等等一些列信息,最终通过转换形成了HEX文件。最后只需要把HEX文件烧录到MCU中去,在通过强制转换,就可以把整个路由表的转换关系和基础报文信息得到。最后利用这个路由表信息,实现对于各路报文接收和发送的一个处理。
本发明的有益效果:
实现简单,可以精细化操作报文信号,报文的操作模式和操作数是仿IO复用原理实现的。可以实现部分特殊信号修改都有对应的操作实现。如:相对零点的偏移,前后单位不一致导致的精度转换,前后数值定义不一样的数据转换,这三种场景分别定义为模式1,2,3。操作数则可以代表不同含义例如:相对零点偏移,操作数则可以是零点偏移数值,精度转换,操作数1,2字节可以表示前者精度最小倍数,3,4字节表示后者信号的最小倍数,根据操作数的具体数值,信号可实现精度转换。
上述说明示出并描述了本申请的若干优选实施例,但如前所述,应当理解本申请并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述申请建构范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本申请的精神和范围,则都应在本申请所附权利要求的保护范围内。
Claims (10)
1.一种基于DBC文件生成车载网关路由表的处理方法,其特征在于,包括:
根据厂商提供的excel文件,自行制作网关路由表基础信号节点的DBC文件和网关路由表转发关系的DBC后缀文件,上述DBC文件使用CANdb++生成CAN.dbc,根据CAN.dbc标准格式的关键字,建构解析DBC模块框架;
根据所述解析DBC模块框架编写解析DBC模块,通过所述解析DBC模块解析CAN.dbc获取到最基础的路由信号节点;
创建connect.txt的转发关系文件,前期修改填充其中元素,后期制作完成则更改后缀为connect.dbc文件;
最后,根据connect.dbc文件自定义的关键字,建构DBC链接解析框架,编写链接解析模块,完成对于转发关系文档的解析,获取到路由表节点间联系的线性关系。
2.根据权利要求1所述的基于DBC文件解析生成车载网关路由表的处理方法,建构解析DBC模块框架,包括:
手动使用CANdb++生成CAN.dbc文件;
使用fopen函数打开对应的CAN.dbc文件;
根据DBC标准的BO_SG_BA_解析获取报文信息,信号信息,周期信息,生成对应日志;
获取到的上述信息,填入对应的数组,分别为发送报文数组,发送信号数组,接收报文数组,接收信号数组,数组直接的联系依据报文ID和信号起始位相连;
以写的方式打开一个hex文件,结合转发关系生成的数组,把所有数组放在一个结构体内,最后按照hex文件格式定义输出信息到固定的hex文件。
3.根据权利要求2所述的基于DBC文件解析生成车载网关路由表的处理方法,其特征在于,打开对应的CAN.dbc文件,包括:打开和应用程序同一文件下的DBC文件和DBC后缀文件,文件命名格式CAN.DBC和CONNECT.DBC。
4.根据权利要求3所述的基于DBC文件解析生成车载网关路由表的处理方法,其特征在于,所述解析获取报文信息,包括:标准DBC文件关键字的解析,DBC的BO_关键字,包含报文的ID和长度,节点,通过特殊命名节点知晓其所在CAN网络,接收报文通道号,发送还是接收报文。
5.根据权利要求4所述的基于DBC文件解析生成车载网关路由表的处理方法,其特征在于,DBC文件后缀关键字解析,包括:自定义关键字,STS_关键字包含了M报文的i信号转发到N报文的j信号,操作模式,操作数,值改变表,根据报文ID和基础信号表相关联,MTM_关键字解析,完整转发关系,M报文数据转发到N报文上,M和N分属不同CAN网络。
6.根据权利要求3所述的基于DBC文件解析生成车载网关路由表的处理方法,所述生成对应日志,包括:根据所解析的关键字行生成对应的log.txt文本格式的记录日志,另外一个解析日志则是data.txt,这个文件包含了路由表所有元素的打印信息,如果发现打印信息对不上,则根据log.txt的解析关键字信息,排查路由表解析问题。
7.根据权利要求4所述的基于DBC文件解析生成车载网关路由表的处理方法,其特征在于,所述按照hex文件格式定义输出信息到固定的hex文件,包括:根据解析到报文的所有信息,报文ID,报文长度,所属通道号,接收或者发送,信号起始位,长度,信号格式,信号对信号转发关系,报文对报文转发关系,未接收信号发送默认值,未接收到报文发送固定值,操作模式,操作数,值改变表等所有路由表构成信息,转换成有意义数形成固定数组表格。
8.根据权利要求7所述的基于DBC文件解析生成车载网关路由表的处理方法,其特征在于,还包括:通过将表格转换成字符形式的数据,按照HEX和BIN文件格式去填充数据,最终生成HEX文件和BIN文件。
9.根据权利要求2所述的基于DBC文件解析生成车载网关路由表的处理方法,其特征在于,建构DBC链接解析框架,包括:
第一步:打开转发关系文档,此处为使用fopen函数打开工作目录下的connect.dbc文档;
第二步:解析connect.dbc内自定义的转发关系关键字;
第三步:STS_等信号关系转换成数组,生成转发关系表,STS_关键字后含有接收报文ID,接收信号起始位,发送报文ID,发送信号起始位,两个坐标确定一个点,STS_含有两个点坐标,包括:报文ID和信号长度;
第四步:根据STS_自定义的值改变信号定义格式,解析每个信号转发时是否需要数据转换;
第五步:将数据转换解析后的数据存放到数据改变表内;
第六步:所有表格生成后,自动地形成连接关系网,接收报文ID信号起始位对应发送报文ID信号起始位就完全链接了。
10.一种计算机可读存储介质,其特征在于,所述可读存储介质中存储有程序,所述程序由硬件执行,以实现如权利要求1至9任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211730579.8A CN116074232A (zh) | 2022-12-30 | 2022-12-30 | 一种基于dbc文件解析生成车载网关路由表的处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211730579.8A CN116074232A (zh) | 2022-12-30 | 2022-12-30 | 一种基于dbc文件解析生成车载网关路由表的处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116074232A true CN116074232A (zh) | 2023-05-05 |
Family
ID=86174252
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211730579.8A Pending CN116074232A (zh) | 2022-12-30 | 2022-12-30 | 一种基于dbc文件解析生成车载网关路由表的处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116074232A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116599890A (zh) * | 2023-07-13 | 2023-08-15 | 岚图汽车科技有限公司 | 一种车载网络通信数据路由表生成控制方法及相关设备 |
-
2022
- 2022-12-30 CN CN202211730579.8A patent/CN116074232A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116599890A (zh) * | 2023-07-13 | 2023-08-15 | 岚图汽车科技有限公司 | 一种车载网络通信数据路由表生成控制方法及相关设备 |
CN116599890B (zh) * | 2023-07-13 | 2023-10-20 | 岚图汽车科技有限公司 | 一种车载网络通信数据路由表生成控制方法及相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108600192B (zh) | 一种基于正则表达式的dbc文件解析及报文分析方法 | |
CN102098131B (zh) | 一种基于动态参数配置的串口数据帧通用组帧解帧方法 | |
US6373822B1 (en) | Data network protocol conformance test system | |
CN102480462B (zh) | 通用协议适配方法及装置 | |
CN111191422B (zh) | 一种文件格式转换方法、装置和计算机可读存储介质 | |
CN101651683B (zh) | 一种信令消息解析源代码生成方法 | |
CN103686848B (zh) | 一种家庭物联网报文处理方法、网关、平台及系统 | |
CN109768970A (zh) | 一种基于可配置的通用协议生成方法 | |
KR20050030288A (ko) | Ip 패킷의 버전을 변환하는 장치 및 방법 | |
CN103020024B (zh) | 一种文件格式转换方法 | |
CN116074232A (zh) | 一种基于dbc文件解析生成车载网关路由表的处理方法 | |
CN113612654B (zh) | 一种基于数据库的车载网关功能测试方法 | |
CN100571190C (zh) | 在网络环境中压缩标题和复用分组的装置和方法 | |
CN108536435A (zh) | 一种自动生成can通信代码的方法 | |
CN112787927A (zh) | 一种分段路由报文转发方法、装置及预设逻辑电路单元 | |
CN104199625A (zh) | 一种将打印数据转换输出的方法、装置及系统 | |
CN104951482B (zh) | 一种操作Sparse格式的镜像文件的方法及装置 | |
CN113225320A (zh) | 一种用户可配置报文格式保密的网络报文解析方法 | |
CN110839022A (zh) | 一种基于xml语言的车载控制软件通信协议解析方法 | |
CN116521602A (zh) | 一种总线数据的传输方法和装置及存储介质 | |
CN110099033B (zh) | 一种下位机架构 | |
CN108763127B (zh) | 源数据与目标数据相互转换的Modbus适配器的实现方法 | |
CN1738224B (zh) | Tdm数据与帧格式转换的电路及方法、传输交换系统及方法 | |
CN102404215B (zh) | 过滤数据库表项同步方法、装置及网络设备 | |
CN211296738U (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 |