1. 程式人生 > >CANoe入門基礎教程(一)

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的開發流程基本涵蓋,如果能跑出上面的執行結果,依然能夠給我們很多的驚喜。我們需要這樣的驚喜,因為這是我們繼續前行的動力。

相關推薦

CANoe入門基礎教程

CANoe是Vector公司的針對汽車電子行業的匯流排分析工具,現在我用CANoe7.6版本進行介紹,其他版本功能基本差不多。 硬體我使用的是CAN case XL. 1,CANoe軟體的安裝很簡單,先裝驅動,再裝軟體。安裝完成,插上USB,連線硬體,這樣在控制面板中

Linux入門基礎命令

linux運維Linux入門基礎命令內部命令常駐內存:由shell自帶的,而且通過某命令形式提供help:獲取所有內部命令列表(下圖只截取了一部分)enable COMMAND:執行此命令可以啟用COMMAND命令enable -n COMMAND:執行此命令可以禁用COMMAND命令enable -n:查看

python基礎教程

底層 技術分享 包括 什麽事 inpu 內容 很多 運算 下劃線   之所以選擇py交易有以下幾點:1、python是膠水語言(跨平臺),2、python無所不能(除了底層),3、python編寫方便(notepad++等文本編輯器就能搞事情),4、滲透方面很多腳本都是py

ThinkJS框架入門詳細教程開發環境

install devel 版本 開發 conf doc 瀏覽器 打開 變量 一、前端標配環境 1、nodeJS正確安裝,可以參考:http://www.cnblogs.com/chengxs/p/6221393.html 2、git正確安裝,可以參考:http://w

jQuery EasyUI快速入門實戰教程-入門

jquery javascript easyui 1、jQuery EasyUI概述jQuery EasyUI是一組基於jQuery的UI插件集合體,而jQuery EasyUI的目標就是幫助web開發者更輕松的打造出功能豐富並且美觀的UI界面。開發者不需要編寫復雜的javascript,也不需要

Golang入門基礎教程Hello World

剛開始接觸一門語言,首先要做的肯定是最經典的Hello World 了,現在,讓我們通過golang來實現一些列印helloworld。 編輯一個檔名為main.go的golang檔案,檔案內容如下: package main import "fmt" func main(){

Golang 入門基礎教程Windows下安裝GOlang基礎環境

GO對於Windows平臺的使用者提供了兩種安裝方法,原始碼安裝和安裝程式安裝。 安裝程式安裝 官方下載MSI安裝程式,執行 msi 安裝程式,跟著提示一步一步就可以講Go基礎環境安裝到系統中了。預設安裝路徑為:C:/Go。 原始碼安裝 官方下載原始碼檔案,解壓縮到任意目

Golang 入門基礎教程Linux 平臺下安裝Golang基礎環境

Linux平臺下安裝Golang的話可以直接下載官方原始碼包, 注意:如果系統內安裝過其他版本的Golang原始碼包,必須先將之前的清除掉 1、解壓原始碼包 解壓原始碼包到 /usr/local目錄下 > sudo tar -C /usr/local

10分鐘HTML5入門基礎知識

毫無疑問,對於開發人員而言, HTML5 已是一個熱點話題。如果你需要快速瞭解HTML5的功能的基本原理,閱讀本文是你最好的選擇。 本文來自The Code Project的付費搜尋位置,由Solution Center提供。這裡的文章致力於向大家提供我們認為對開發人員來說有用和有價值

Lua入門基礎知識

Lua是一種輕量小巧的指令碼語言,用標準C語言編寫,並以原始碼形式開放。其目的是為了嵌入應用程式中,從而為應用程式提供靈活的擴充套件和訂製功能。 LUA線上中文手冊: http://cloudwu.github.io/lua53doc/contents.html 1.1Lua語法 單行註釋:

Spring入門詳細教程

一、spring概述 Spring是一個開放原始碼的設計層面框架,他解決的是業務邏輯層和其他各層的鬆耦合問題,因此它將面向介面的程式設計思想貫穿整個系統應用。Spring是於2003 年興起的一個輕量級的Java 開發框架,由Rod Johnson建立。簡單來說,Spring是一個分層的JavaSE/EE&

MongoDB基礎教程

1。連線mongodb cmd進入mongo/bin目錄下,輸入: mongo 2。建立資料庫 如果資料庫不存在建立資料庫,否則開啟該資料庫。 use 資料庫名 EG:建立資料庫runoob use runoob 建立並檢視當前使用的資

Scala基礎教程:簡介、環境安裝

Scala基礎語法 如果有很好的瞭解Java語言,那麼將很容易學習Scala。 Scala和Java間的最大語法的區別在於;行結束符是可選的。考慮Scala程式它可以被定義為通過呼叫彼此方法進行通訊的物件的集合。現在,簡要地看看什麼叫做類,物件,方法和臨時變數。 ·    

ASP.NET Identity入門系列教程 初識Identity

摘要 通過本文你將瞭解ASP.NET身份驗證機制,表單認證的基本流程,ASP.NET Membership的一些弊端以及ASP.NET Identity的主要優勢。 目錄 身份驗證(Authentication)和授權(Authorization) 我們先來思考一個問題:如何構建安全的WEB應

OGRE 引擎官方基礎教程

先決條件: 1.本範例假設你能夠設定和編譯一個OGRE應用程式,具體方法見設定方法,並且具備一定的 C++語言程式設計基礎。 開始工作: 建立一個工程,命名為Tutorial,這裡採用 Visual Studio 2010,加入下列檔案 BaseApplication

Junit 例項精講基礎教程 認識Junit基本註解@Before、@After、@Test、@BeforeClass、@AfterClass

關於Junit,官文甚至不做過多解釋:Junit只是一個用於單元測試的小框架,是基於xUnit架構的一個實現。 系列教程基於Maven。 1. 引入Junit依賴 <dependencies> <dependenc

微控制器入門基礎:Keil基本操作

Keil基本操作     文/阿丘  2018/3/28一、概述    工欲善其事必先利其器。Keil uVersion 4.0(後文簡稱為Keil 4.0)是微控制器程式開發的整合開發環境(IDE),集成了C編譯器、巨集彙編、聯結器、庫管理和一個功能強大的模擬偵錯程式。 

資料探勘入門系列教程之親和性分析

資料探勘入門系列教程(一)之親和性分析 教程系列簡介 系列地址:https://www.cnblogs.com/xiaohuiduan/category/1661541.html 該教程為入門教程,為博主學習資料探勘的學習路徑步驟。教程為入門教程,從最簡單的開始。使用的程式語言為Pytho

JavaScript基礎入門教程

構造 圖片 def type 屬於 string 意思 原則 原始類型 js的數據類型   雖然js屬於弱類型語言,但其總共有6種數據類型。弱類型的意思是定義的變量沒有類型的區分,比如先執行 var num=123; 定義了一變量num存儲整數,可接下來執行 num="he

Elasticsearch 教程基礎入門

Q:有哪些東西你以為很貴其實很便宜。A:大學剛畢業的我 簡介 Elasticsearch是一個高度可擴充套件的、開源的、基於 Lucene 的全文搜尋和分析引擎。它允許您快速,近實時地儲存,搜尋和分析大量資料,並支援多租戶。 Elasticsearch也使用Java開發並使用 Lucene