CN116074232A - 一种基于dbc文件解析生成车载网关路由表的处理方法 - Google Patents

一种基于dbc文件解析生成车载网关路由表的处理方法 Download PDF

Info

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
Application number
CN202211730579.8A
Other languages
English (en)
Inventor
孙帮海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
South Sagittarius Integration Co Ltd
Original Assignee
South Sagittarius Integration Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by South Sagittarius Integration Co Ltd filed Critical South Sagittarius Integration Co Ltd
Priority to CN202211730579.8A priority Critical patent/CN116074232A/zh
Publication of CN116074232A publication Critical patent/CN116074232A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information 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/84Mapping; Conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols 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文件解析生成车载网关路由表的处理方法
技术领域
本发明涉及一种基于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任一项所述的方法。
CN202211730579.8A 2022-12-30 2022-12-30 一种基于dbc文件解析生成车载网关路由表的处理方法 Pending CN116074232A (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116599890A (zh) * 2023-07-13 2023-08-15 岚图汽车科技有限公司 一种车载网络通信数据路由表生成控制方法及相关设备

Cited By (2)

* Cited by examiner, † Cited by third party
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