前言
使用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的配置屬性完全一樣,除了一個一個配置屬性去增刪查改外,還有什么更簡單的辦法?
審核編輯:湯梓紅
-
模塊
+關注
關注
7文章
2611瀏覽量
47006 -
文件格式
+關注
關注
0文章
17瀏覽量
15054 -
DBC
+關注
關注
2文章
53瀏覽量
7694 -
davinci
+關注
關注
0文章
21瀏覽量
12378 -
Vector
+關注
關注
3文章
53瀏覽量
8522
原文標題:DBC文件格式錯誤導致Davinci Configurator報錯問題總結
文章出處:【微信號:汽車電子嵌入式,微信公眾號:汽車電子嵌入式】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論