1-GENY移植增加CAN协议
合并两个不同的DBC文件
如果是两个不同的DBC文件需要使用文本先进行文件的合并,把对应的协议加入进来。比如添加0x375ID的协议。如下图1,2第一个是需要添加的文件:
图1
图2
然后对上面的文件进行复制加入到你的文件之中,如若你加入的ID中名称和你使用的文件有名称重复,请修改该名称,防止因函数名称相同导致函数调用出错或者编译出错。如下图3和图4。
图3
图4
添加完成后保存即可(添加完成后先使用vector CANdb++软件打开,看看会不会提示错误,如果提示错误请在记事本中查看是否是名称或者其他问题)。之后在使用geny进行代码的生成。
geny添加CAN协议
打开GENY文件,在哪个通道添加CANID协议就在选择哪个通道,其他的不要更改(如果需要更改的话,可以更改)如下图所示,
之后选择需要添加的DBC文件。如下图所示:
之后选择需要添加的协议,如下图所示,本文举例:
之后点击OK完成。
之后可以看到添加成功,如下图,所示:
如果你还需要对消息信号内单个信号进行设置,对上图所示右侧进行修改,如下图:
- 要加入到某一节点中需要对其进行更改,例如本例把0x375ID添加到IHU。如下图:
上面全部完成之后就是代码生成,然后添加到对应的文件夹里面就行。
- 代码生成
如下图所示选择代码生成的路径选择。
完成上图之后,点击如下图红色选中的部分进行代码生成。
DBC处理辅助工具的使用
找到DBC处理辅助工具并打开,如下图是DBC辅助处理工具:
- 打开软件后,选择打开文件找到需要添加的DBC文件,如下图所示:
- 完成上面后,点击文件处理,等待一会,列表里面会显示节点、消息、信号,如下图所示:
选择要添加的信号,比如我要添加IHU节点,GW_BCM_2_A消息中的所有信号,只需要先选择IHU-->GW_BCM_2_A-->信号列表包含GW_BCM_2_A消息的信号(也可根据实际需要进行选择信号的添加)。如下图所示:
完成上述之后点击生成表格,表格中包含IHU节点GW_BCM_2_A消息中的信号,如下图所示:
3-总线IL接口生成器的使用
1-打开软件选择Excel文件(由DBC处理辅助工具生成的表格文件,注意格式:需要后缀为XLSX的文件,如果不是使用Excel打开另外保存XLSX格式),如下图所示:
2-点击生成代码。
之后等待一会儿,会有提示操作完成(文件越大时间越长)。这样就操作完成了,如下图是生成的代码:
最后只需要把生成的代码文件添加到你的文件中就可以了。
4移植
如果需要添加CAN 协议,在上面3个章节完成之后就可以进行代码的移植工作。首先进行geny生成的代码移植。
geny生成的代码直接将GenBuilt中的代码进行覆盖,如下图是路径和文件假的选择:
、
在对总线IL接口生成器生成的代码进行移植,和geny一样直接把对应的文件进行覆盖,如下图所示。
在完成上面两部分之后,打开工程文件看你需要的ID是否添加进去,以0x375为例(具体有哪些文件还需要根据设计需求进行确定)。如下图:
当代码进行移植覆盖后,编译运行是否出现报错,然后根据错误描述进行更改。
当编译无误后,在进行其他代码的添加。主要就是确保你添加的协议是通的,因ID不一样添加的可能有所不同,但是主要就是以下几点:阻塞时间函数、接收发送获取等,然后编写车门状态的代码。然后使用CAN工具查看能否接收到。
确保CAN通之后,可以通过SOC查看SPI信息,这时候需要把串口接到SOC中。