CANOE入門(一)

轉自:https://www.cnblogs.com/fengliu-/p/7844072.html

CANOE入門(一)

CANoe是Vector公司的針對汽車電子行業的總線分析工具,現在我用CANoe7.6版本進行介紹,其他版本功能基本差不多。

硬件我使用的是CAN case XL.

1,CANoe軟件的安裝很簡單,先裝驅動,再裝軟件。安裝完成,插上USB,連接硬件,這樣在控制面板中,Vector Hardware 進行查看

image

通過查看信息可知,CANcaseXL中的兩個piggy,一個是251(高速CAN),一個是7269(LIN),另外常用的還有1054(低速CAN,或稱容錯CAN),因爲CANcaseXL中只能支持兩路通訊,這樣piggy可以自由組合

2,硬件連接正常,打開CANoe軟件

File->New Configuration 可以選擇新建工程的模版,我們這裏選擇CAN_500kBaud.tcn,這樣新建了波特率爲500K CAN工程,可以File->Save Configuration,進行保存

3,接下來就要使用CAN db++ Editor工具對總線網絡節點,消息,信號,進行定義了。

點擊工具欄的這個圖標 tmp5B ,或 開始菜單中找這個工具啓動

啓動後,File->Create Database,選擇CANTemplate.dbc,選擇目錄及文件名,進行保存

tmp5F

 

 

 

 

右鍵 Network nodes->New ,進行網絡節點的定義,這裏只需要填寫Name即可,例如:Node_A

然後添加Node_B,完成後如下圖,這樣在Network nodes目錄下面添加出來兩個節點

tmp66

 

節點添加完成後,下一步添加CAN消息,右鍵Messages->New,這是需要定義名稱,ID,DLC等信息,如下:

tmp6F

然後在Transmitters頁面,點擊Add按鈕,添加Node_A爲發送節點,意思就是說,此消息是從Node_A節點發送出來的

tmp6A

 

其實還有一種方法就是,此時暫時不定義發送節點,然後直接以拖曳的方式拖曳到發送節點上,功能上是一樣的

有了消息,消息裏攜帶的東西自然是信號咯,那麼我們開始創建一個信號

右鍵Signals->New,填寫如下信息

tmp8C

信號當然要放到消息中咯,切換到Messages頁面,Add 我們剛剛建立的Message_A,當然和上面一樣,採用拖曳的方式從Signal到Message中建立關聯也是可以的。

tmp88

上面信息中Intel模式和Motorola格式的區別如下:

tmp8A

 

 

 

 

 

用0和1來表示開關信號狀態似乎還不是很直觀,我們可以使用on和off來表示就好了,於是View->Value Tables,右鍵空白處->New,鍵入如下信息:

tmp8E tmp8F

 

 

 

定義好了之後,還需要跟信號進行關聯。右鍵需要關聯的信號->Edit Signal,Value Table 中關聯剛纔建立的那個Value Talbe項

tmp94

這樣一個信號就完成了,另外還需要加一個類似的信號,可以點擊Signal根目錄,在右邊選擇Signal複製,及粘貼,然後雙擊複製好的Signal後,進行一些編輯,然後用上面方法關聯Message即可快速建立第二個信號了,是不是很方便

繼續添加第三個信號,Indicator_A,跟上面一樣,但是我這個信號想放在Message的第二個字節的位置,怎麼辦?

其實很簡單,有兩種方法:第一種,右鍵已經關聯好的,即在Message目錄下的信號,Edit mapped signal,在彈出的對話框中的Startbit中填8,這樣就這個信號就跑到該消息的第二個字節中了。第二種方法,右鍵該消息->Edit Message,在Layout頁面中,拖動信號的色塊進行移動

tmp99

tmp9A

tmp9C

 

 

 

以上Message_A消息及消息下所定義已經定義完成

tmp9E

如法炮製另外一個消息Message_B,完成後如下圖。

tmpA1

下面創建環境變量,右鍵Environment variables

tmpAF tmpB7

 

陸續把其他環境變量加好,Indicator的Access屬性爲Write哦,加完如下:

tmpB8

數據庫的定義這款基本上就OK了。保存後關閉CANdb++ Editor,回到CANoe主程序中。

請在Configuration->Options->Configuration Settings->Channel Usage 設置使用的通訊通道,因爲這個只需要1路CAN,其他都設置爲0就可以。

點這個選項頁面tmpB9可出現Simulate Setup 界面

tmpBB

右鍵Databases->Add,把剛剛創建好的dbc給加載進來,之後再連線上右鍵->Insert Network Node

image

結果如下:

tmpBC

右鍵這個ECU模塊->Configuration,在Network Node 選擇Node_A,完成,然後添加Node_B

tmpBD

 

完成後如下圖,這樣dbc與CANoe的關聯就好了。

tmpBE

4,界面設計

網絡及相應的關係設置好之後,應該設計界面了,一個良好的界面可以直觀的顯示及控制各種信號。

界面設計工具有兩種:一種是Panel Designer,新的界面設計工具,另外一種是Panel Editor是老的界面設計工具,無論採用何種工具設計的界面,都可以和CANoe很好的兼容,沒有問題。下面我們先用第一種界面設計工具來完成界面的設計

點擊工具欄的這個圖標tmpE或File->Open Panel Designer,打開界面編輯器,界面如下:

tmp11

 

 

保存一下該界面,起名爲Panel_A,一個空的界面上可以放置右上邊若干組件。放置好之後,選中界面上的組件的時候,右下側回顯示當前選中的組件的屬性,可以更改相應的大小位置等,但最重要的是Symbol屬性,這裏要說一下,每個界面組件也都需要與CANoe關聯,否則單純的界面是沒有任何意義的,關聯主要是信號和環境變量,在Symbol屬性的Symbol Filter屬性中可以進行選擇,我們這裏關聯的是環境變量,所以選擇Environment Variable,然後再點擊上面的Symbol屬性,然後在彈出的頁面中選擇相應關聯的變量

tmp1F

完成後可以按同樣的方法設計Panel_B,也可以Save As 的方法快速建立同樣的Panel但是與環境變量的關聯和界面的文字需要進行微調。這樣兩個Panel都已完成。也已經建立了與CANoe之間的關聯。

5,CAPL編程

所有的前期準備工作和組裝工作都已完成,現在需要編寫程序使整個系統有機的運行起來。回到CANoe的Simulation Setup界面,然後點擊Node_A模塊的,像鉛筆一樣的圖標tmp22,填寫程序名稱,這裏Node_A,然後打開編程界面,完成以下程序。然後完成Node_B程序。小技巧:如果背不出具體的消息名稱,信號名稱或環境變量,可以右鍵程序空白處,你會得到意外的驚喜,試試看。

tmp3D

tmp3F

OK大功告成

6,運行

現在點擊工具欄tmp40,運行程序。注意:tmp41這裏表示實際的網絡,所有的消息是發送到物理的網絡上的,如果只是驗證程序,設置成這樣就可以了tmp43

完整運行結果如下:

tmp44

就是這樣,一步一步的,我們完成了第一個完整的CANoe應用工程,雖然這只是入門第一步,但整個CANoe的開發流程基本涵蓋,如果能跑出上面的運行結果,依然能夠給我們很多的驚喜。我們需要這樣的驚喜,因爲這是我們繼續前行的動力。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章