当前位置:首页 > > 汽车ECU开发

前言

使用Vector公司的Davinci Configurator工具导入Can DBC文件自动配置BSW模块本来是一件很丝滑(Vector的工具确实更好用)的工作,但是从客户那里拿到的DBC文件格式存在各种问题,导致Davinci工具也报各种错误,由于以前没有Davinci的使用经验,解决问题的过程也比较痛苦,这里把遇到的DBC文件格式错误导致Davinci报错问题记录一下。

正文

1.周期帧报文

问题:对于周期发送报文,Com模块的ComIpdus中生成的ComTxMode配置信息应该是Tx Mode: PERIOD,且只有周期报文发送的时间参数,但是实际生成Tx Mode: MIXED,且自动生成了事件帧报文发送的实际参数

DBC问题:对于周期报文,周期报文的属性参数GenMsgSendType应该为Cyclic,且报文下的每一个Siganl的GenSigSendType都应该为Cyclic实际是有问题这帧报文下有一个Signal的属性是不是Cyclic

Note: 周期报文的周期属性参数一定要是Cyclic,不能是Circular或者Period(Davinci会当成NoMsgSendType来处理)。

正确修改DBC后

2.事件帧报文

问题:对于事件触发发送报文,Com模块的ComIpdus中生成的ComTxMode配置信息应该是Tx Mode: DIRECT,且只有事件报文发送的时间参数,但是实际生成Tx Mode: MIXED,且自动生成了周期报文发送的实际参数

DBC问题:对于事件帧报文,报文的属性参数GenMsgSendType应该为OnChange/NoMsgSendType,且报文下的每一个Siganl的GenSigSendType都应该为OnWriteWithRepetition/OnChange/xxx实际是有问题这帧报文的GenMsgSendType配置为Cyclic

正确修改DBC后

3.网络管理报文

问题:网络管理发送报文的NM属性已经配置了,但是Davinci工程没有自动生成CanNm/NM相关的配置容器和参数?

DBC的问题:ECU的全局参数中没有配置NM的NmAsrNode参数。

4.诊断报文

诊断报文只要配置好:

DiagRequest:物理寻址接收报文配置属性

DiagResponse:物理寻址发送报文配置属性

DiagState:功能寻址接收报文配置属性

5. DBC文件属性配置

问题:对于普通收发的应用报文,Davinci会给这一帧报文生成Com<->PduR<->CanIf的协议栈信息,但是实际没有生成Com到CanIf的PduR路由信息。

DBC的问题:对于普通收发的应用报文,应该配置GenMsgILSupport参数为Yes。

正确修改DBC后

小知识:有时候发现一些DBC的报文缺少某些必需的配置属性,怎么给DBC添加一个配置属性?

小技巧:有时候我们发现两个DBC报文的属性差异很大,想以一个DBC为基准,修改另一个DBC的配置属性和基准DBC的配置属性完全一样,除了一个一个配置属性去增删查改外,还有什么更简单的办法?

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
关闭