1.創建DBC
通過File-Create Database新建了一個命名為xxx的CAN數據庫,創建后打開的是Overall View窗口。
2.創建Node對象
在Overall VIew的左側邊欄選擇Network nodes, New一個新節點,命名后確定。如下圖:
注意:初次創建時,上圖中藍框的Address是不可編輯的,我們需設置屬性后方能編輯該值
3.定義各項屬性(此步驟與2無先后順序的限制)
從菜單欄的View進入Attributes Definitions窗口,在窗口中New各種屬性。若不知道具體的屬性名稱,類型,值等,可查看Help文檔
此處我只簡單的配了幾個屬性,可以看到其中有一項是NmStationAddress,設置此項后,創建節點時的Address值就可編輯了。
回看剛在Overall View新創建的PEPS節點,選擇Attributes,可以看到我們新配置的與Node相關的屬性已經添加進來了。
4.創建Signal對象
在Overall View的左側邊欄選擇Signals,New創建信號。填好名字、字節序、單位(可不填)、值類型、精度、偏移量, 最小值和最大值通過計算得出,確定創建。
注意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的方式,自己去寫代碼實現這個功能吧。