一、前言
因为本人是使用NeuSar进行工作,而不是维克多的工具链,可能会有些偏差,申明,本篇博客只作为工作笔记,不做任何其他用途,禁止转载;
二、DBC
一般情况下,dbc是由客户输入,但是客户输入的东西参差不齐,到手里需要自己改改改,甚至有时候版本不一致还需要重新做,大概需要注意以下几个点
1.dbc建立过程
1)新建
如果未提供通用模板,需要自建要注意以下几点:
- 模板选用:点击File中Create database后选用模板,按需求选择;
- 属性(attributes):在CANdb++中,通过View栏中attributes选项进行属性添加;
属性包括总线类型,CANFD_BRS,诊断部分,报文周期,报文发送方式
2)关系建立
- signal关联到Message可以直接鼠标拖动,或者右键Message,选择Edit Message,在signals栏中点击Add,添加signal;
- Message关联到Network:
① Tx部分:Tx部分可以直接鼠标拖动到Network中的Tx Message中,也可以右键Message(或双击),在Transmitters栏中点击Add选择节点;
② Rx部分:Rx部分需要双击节点或右键,在Mapped Rx Sig栏中,点击(推荐Add:all form one message)选择报文作为Rx;
2.CAN/CAN FD
使用CAN FD格式,记得在属性里将CANFD_BRS置1,并把报文Type改为CANFD;
3.诊断报文
诊断报文不同的是属性,在属性中添加下面几项,
三、配置过程
1.DBC的导入
如前言,使用NeuSar进行图解,但由于涉及是否侵权未知,仅截取片段,只作为工作笔记,不做任何其他用途,如有侵权及时删除
- 在NeuSar中,将dbc文件添加到工程目录的Import\Communication文件夹中
- 在已打开的工程中,在BSW栏的BSWCommunicationDataImpore中,点击Select File添加dbc,如原工程已存在,需要先Delete,然后Import Data再进行导入。导入完成点击Import Data,选择变更项。
- 下图是导入两路can
2.配置项变更
在NeuSar中,导入/更改DBC造成的配置项变成主要有以下几个
1)BSWM
在BSWM中,一般只需要重新关联can,找到有红色叹号的项,删除之前的关联项重新选择,因为不同的dbc导入后,名字会发生变化,之前的关联项就失效了
2)CAN
CAN模块重新导入dbc后需要选择每路Can的地址(可以这么理解,实际上就是CAN1/CAN2……)并设置时钟频率,在CanControllerBaudrateConfigs中设置波特率,直接抄500K,PropSeg 7,Seg1 4,Seg2 4, SyncJumpWidth 4;如果需要CanFD还需要添加一栏
3)CAN IF
自动生成
4)CAN TP
设置传输层的一些时间参数等,按需设置
5)COM
- 在Com模块的ComlPdus中设置接收报文的回调函数
- 在ComSignals中设置超时时间,首次超时和接收超时,每条报文设置一个signal即可
6)PDUR
- PduRRoutingTables中,PduRMaxRoutingPathCnt为报文数,需要重新核定
7)Dcm
- 和诊断相关,在DcmDsp中,需要重新关联Can