Kvaser的TRX工具是一款可以基于C語言編程環境下的T腳本編寫軟件。通過此軟件我們可以實現既定CAN ID報文的定義和收發。這里我們通過使用雙通道的CAN memorator記錄儀與兩條CAN卡實現單通道、雙通道的數據通訊。
1、 Memorator Configuration
Kvaser對于CAN記錄儀專門設計了一款軟件CAN memorator config tool來完成對不同記錄儀的配置。這里我們選用的是kvaser memorator Pro 2XHS來作為報文收發存儲單元。其配置界面如下:
打開軟件先實現connect,若正常連接,在主界面會出現連接記錄儀的實物圖片。在軟件界面左側我們會發現可以對相關屬性的配置界面。例如下圖所示的CAN配置界面:
在這里我們就可以對所選擇通道的波特率、芯片參數、模式等等進行定義和更改。同時可以在Define中添加自主定義的signal,或者在數據庫中導入基于CAN報文格式的DBC文件和uef文件,添加過濾和trigger機制。
同時,我們可以注意到存儲上的Flash disk功能,這里可以對存儲卡上的文件進行查看處理以及執行對SD卡的相關操作。
2、 單通道數據通訊
2.1 TRX軟件
Kvaser TRX軟件是一款基于C語言模型設計的用于kvaser eagle以及kvaser memorator定制的T腳本語言??梢詫崿F基本message收發,定時器設置等功能。這里我們僅對軟件操作簡單描述,具體請參照Help文檔。
軟件主界面用于代碼鍵入和修改,書寫規范類似于C語言,界面如下:
Project界面:每一個T腳本程序都包含一個T文件以及一個project文件。要注意的是,我們每次打開一個腳本均需要先打開project文件,再導入T文件,這樣才會真正實現程序的編譯。檢查窗口如下:
Build與output界面:build可以查看編譯過程中是否有錯誤,只有編譯成功才能進行程序運行。Output界面我們可以看到程序實際運行過程中我們想要顯示部分,同時可以選擇不同的slot。其對應界面如下:
窗口工具欄:
其中undo與redo是撤銷與返回按鍵,同時有一個硬件端顯示如:kvaser memorator Pro 2*HS V2 #0代表的是通道1。點擊下拉可以觀察目前所有連接到的CAN卡硬件。三角形符號是一鍵編譯快捷方式。這里要注意的是,在我們出現程序問題和連接硬件通訊問題需要對代碼進行更改的時候,要切換在線或是離線模式。截圖如下:
2.2單通道通訊
使用T腳本進行報文傳輸最重要的一點是要保持波特率的一致性。單通道代碼如下:
這里我們選擇的是通道1,波特率設置的是250Kbit/s,驅動模式選擇normal,總線on,之后定義想要傳輸的message報文屬性。通過canWrite便可以實現傳輸。在canking中的output界面我們收的報文如下:
注意在結束端需要on stop然后關閉總線。
3、 雙通道通訊
雙通道通訊下我們既可以給每個通道安排一個CAN卡,也可以兩個通道只使用一個CAN卡通訊。這可以理解為單總線與雙總線的概念。下圖所示為單個CAN下的程序代碼:
在這個程序下我們可以發現除了添加了兩個通道,還添加了canMessage程序段,因為我們知道CAN的報文發送發送方式是廣播形式的,當channel1有接收到id為100的報文時,會發出一條300的報文視為回應。同理與channel0。同時為達到這種回應型的效果,我們必須保證兩個通道的波特率設為同一值,這里我定義的是250Kbit/s,其在canking的輸出窗口報文如下圖所示:
我們也可以模擬雙總線的通訊方式,使用兩個connector。這樣我們可以設置兩個不同的波特率,其output界面如下:
可以發現在通道顯示上會出現兩個通道。需要注意的是,在設置不同波特率的情形下,是不可以將兩個connector連在一起的,這樣會出現總線傳輸混亂的情況。