DBC文件格式错误导致Davinci Configurator报错问题总结

电子说

1.3w人已加入

描述

前言

使用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的配置属性完全一样,除了一个一个配置属性去增删查改外,还有什么更简单的办法?

模块

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分