如何通過CANdb++創建一個新的DBC(二)


1.創建DBC

通過File-Create Database新建了一個命名為xxx的CAN數據庫,創建后打開的是Overall View窗口。

 2.創建Node對象

Overall VIew的左側邊欄選擇Network nodesNew一個新節點,命名后確定。如下圖:

 

注意:初次創建時,上圖中藍框的Address是不可編輯的,我們需設置屬性后方能編輯該值

3.定義各項屬性(此步驟與2無先后順序的限制)

從菜單欄的View進入Attributes Definitions窗口,在窗口中New各種屬性。若不知道具體的屬性名稱,類型,值等,可查看Help文檔

 

 此處我只簡單的配了幾個屬性,可以看到其中有一項是NmStationAddress,設置此項后,創建節點時的Address值就可編輯了。

回看剛在Overall View新創建的PEPS節點,選擇Attributes,可以看到我們新配置的與Node相關的屬性已經添加進來了。

 

 4.創建Signal對象

Overall View的左側邊欄選擇SignalsNew創建信號。填好名字、字節序、單位(可不填)、值類型、精度、偏移量, 最小值和最大值通過計算得出,確定創建。

 

 注意1:需要說明的是其中有個Init. Value,創建時我並沒有設置,點開藍色的鏈接彈出框提示如下圖,首先它與Signal對象的兩個屬性有關,並說明了原始值與物理值的轉換公式。舉個簡單例子,比如冷卻液溫度可能為-5℃稱之為物理值(物理意義上的值,直觀的被人們所認知),通過該公式換算后在報文中可能其原始值為10.

 

 注意2其中還有個Value Table,初次創建是處於none不可選狀態。可以通過View-Vaule Tables窗口New新建,回到Overall View的Signal對象即可選擇配置value table了

 

 

 

 根據信號矩陣表重復此步驟的操作創建眾多的信號對象信息

5. 創建Message對象

Overall View的左側邊欄選擇Message對象,New創建消息,填好名字、DLC、ID,其中cycle time與在屬性視圖創建的與Message對象相關的GenMsgCycleTime關聯。

 

 選中剛創建的消息對象,通過彈出框的Add配置該Message對象的Signal對象,和發送者

 

 

 

值得一提的是屬性頁的配置可以通過雙擊對應的屬性選項修改值,比如修改報文周期為200ms

 

 重復步驟5創建多條消息

6. 配置Node對象的對外發送消息與接收的報文信號

通過Overall View左側邊欄的Network nodes選項,選中相應的節點,右鍵菜單的Edit Node, 分別根據Mapped Rx Sig.頁和Tx Message頁添加信息配置

 

 

 

 

 7.數據庫檢查

以上6步操作完成后,保存新創建的數據庫文件,從File選擇Consistency Check執行檢查。結果展示如下圖,提示的信息可以不關注,因為這兩項配置點在創建DBC時可以不填寫。

 

 最終我的DBC結構像下圖這樣

 

 -----------------------------------以上完--------------------------------

總結:單個創建還是太慢了,而且從通信矩陣中錄入這些信息創建DBC很有可能人工輸入錯誤而不易發現。咱們還是推薦從數據源頭實現自動化轉換DBC的方式,自己去寫代碼實現這個功能吧。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM