CAN通信、もしくは、CAN FD通信を行うプログラム例です。
サンプル仕様 |
|
プログラム名 |
can_communication_callback |
送信設定の初期値 |
メッセージタイプ:CANメッセージ CAN ID:0x100 データ長:8 データ: 7:7、6:6、5:5、4:4、3:3、2:2、1:1、0:0 |
1.希望するプログラム名を指定し、プログラム実行させると、上記のような外観のCUI(Character User Interface)メニューが表示されます。
ソフトウェアのバージョンによっては外観が異なることがあります。
2.デバイス初期化処理
・CUIメニューから、[1 : CanInit]をコマンド選択すると、デバイス名を指定することができます。
指定デバイスの利用開始することをデバイスドライバへ通知します。
デバイス名を指定すると、CanInitが実行され、CUIメニューが再度表示されます。
3.チャネル番号の設定
・CUIメニューから、[2 : チャネル番号設定]をコマンド選択すると、チャネル番号を指定することができます。
チャネル番号を指定すると、CUIメニューが再度表示されます。
4.CAN通信のタイミング設定
CAN通信タイミングについては、「CAN通信の伝送時間」を参考にしてください。
CAN通信と、CAN FD通信の違いについては、「CAN 2.0B通信とCAN FD通信の違い」を参照してください。
・CUIメニューから、[3 : 通信タイミング設定]をコマンド選択すると、(トップ>通信タイミング設定)メニューが表示されます。
(トップ>通信タイミング設定)メニューから、[1 : CAN]をコマンド選択すると、<CAN通信タイミング設定のパラメータ>が表示されます。
(トップ>通信タイミング設定)メニューから、[2 : CAN FD]をコマンド選択すると、<CAN FD通信タイミング設定のパラメータ>が表示されます。
(トップ>通信タイミング設定)メニューから、[b : 戻る]をコマンド選択すると、CUIメニューが再度表示され、コマンド選択待ちとなります。
・CAN通信タイミング設定のパラメータ
<CAN通信タイミング設定のパラメータ>では、ビットレート、時間セグメント1、同期ジャンプ幅、時間セグメント2が確認できます。
<CAN通信タイミング設定のパラメータ>が表示されると、(トップ>通信タイミング設定>CAN)メニューが表示され、コマンド選択待ちとなります。
(トップ>通信タイミング設定>CAN)メニューから、[1 : CanSetCanTiming]をコマンド選択すると、タイミング設定を指定できます。
(トップ>通信タイミング設定>CAN)メニューから、[2 : CanGetCanTiming]をコマンド選択すると、デバイスに設定済の値を読み込めます。
(トップ>通信タイミング設定>CAN)メニューから、[b : 戻る]をコマンド選択すると、(トップ>通信タイミング設定)メニューが再度表示され、コマンド選択待ちとなります。
・CAN FD通信タイミング設定のパラメータ
<CAN FD通信タイミング設定のパラメータ>では、アービトレーション領域、および、データ領域のビットレート、時間セグメント1、同期ジャンプ幅、時間セグメント2が確認できます。
<CAN FD通信タイミング設定のパラメータ>が表示されると、(トップ>通信タイミング設定>CAN FD)メニューが表示され、コマンド選択待ちとなります。
(トップ>通信タイミング設定>CAN FD)メニューから、[1 : CanSetCanFdTiming]をコマンド選択すると、タイミング設定を指定できます。
(トップ>通信タイミング設定>CAN FD)メニューから、[2 : CanGetCanFdTiming]をコマンド選択すると、デバイスに設定済の値を読み込めます。
(トップ>通信タイミング設定>CAN FD)メニューから、[b : 戻る]をコマンド選択すると、(トップ>通信タイミング設定)メニューが再度表示され、コマンド選択待ちとなります。
5.受入れ対象のCAN ID設定
CAN IDのマスク指定(CanIdMask)、および、コード指定(CanIdCode)については、「CanIdMaskとCanIdCodeの設定例」を参照ください。
・CUIメニューから、[4 : 受信受容メッセージ設定]をコマンド選択すると、<受信受容設定のパラメータ>が表示されます。
<受信受容設定のパラメータ>では、メッセージタイプマスク、CAN ID マスク、および、CAN IDコードが確認できます。
(トップ>受信受容設定)メニューから、[1 : CanSetChannelAcceptance]をコマンド選択すると、受信受容設定を指定できます。
(トップ>受信受容設定)メニューから、[2 : CanGetChannelAcceptance]をコマンド選択すると、デバイスに設定済の値を読み込めます。
(トップ>受信受容設定)メニューから、[b : 戻る]をコマンド選択すると、CUIメニューが再度表示され、コマンド選択待ちとなります。
6.CAN通信の開始
・CUIメニューから、[5 : CanBusConnect]をコマンド選択すると、CAN通信が開始します。
7.送信データの設定
・CUIメニューから、[6 : 送信設定]をコマンド選択すると、<送信設定のパラメータ>が表示されます。
<送信設定のパラメータ>では、メッセージタイプ、CAN ID、データ長、および、データが確認できます。
<トップ>送信設定>メニューから、[1 : メッセージタイプ設定]をコマンド指定すると、送信するメッセージを指定できます。
<トップ>送信設定>メニューから、[2 : CAN ID設定]をコマンド指定すると、送信するCAN IDを指定できます。
<トップ>送信設定>メニューから、[3 : データ設定]をコマンド指定すると、送信するデータを指定できます。
<トップ>送信設定>メニューから、[b : 戻る]をコマンド指定すると、CUIメニューが再度表示され、コマンド指定待ちとなります。
8.CAN通信によるデータ送信
本サンプルは、1つのCANメッセージのみが送信できる仕様となっています。
・CUIメニューから、[7 : CanTrasmit]をコマンド選択すると、あらかじめ設定された送信データが送信されます。
データが送信されると、CUIメニューが再度表示され、コマンド指定待ちとなります。
[6 : 送信設定]で、送信メッセージの設定を行っていない場合は、概略項目の「送信設定の初期値」が送信されます。
9.CAN通信によるデータ受信開始・停止
・CUIメニューから、[8 : 受信開始]をコマンド選択すると、CUIメニューが再度表示され、コマンド指定待ちとなります。
その後、正常にメッセージを受信するたびに、受信メッセージが表示更新され、コマンド指定待ちとなります。
複数のメッセージを受信した場合、最新の受信メッセージで上書き表示されます。
受信メッセージには、メッセージタイプ、CAN ID、データ長、および、受信データが含まれます。
・CUIメニューから、[9 : 受信停止]をコマンド選択すると、データ受信が停止します。
受信停止すると、CUIメニューが再度表示され、コマンド指定待ちとなります。
その後、正常にメッセージを受信しても、表示更新されません。
また、全受信データは、"receive_data.csv"へ保存されます。
10.CAN通信のステータス
・CUIメニューから、[10 : CanGetChannelStatus]をコマンド選択すると、現ステータスが表示されます。
送信エラーカウントや、受信エラーカウントも、表示されます。
11.CAN通信の停止
・CUIメニューから、[11 : CanBusDisconnect]をコマンド選択すると、CAN通信が停止します。
12.デバイス終了処理
・CUIメニューから、[12 : CanExit]をコマンド選択すると、現デバイス利用が完了したことデバイスドライバへ通知します。
プログラムを終了させることなく、異なるデバイス(例:CAN001など)からCAN通信を開始できます。
再び、CAN通信処理を行う場合は、CUIメニューから[1 : CanInit]をコマンド選択し、デバイス初期化処理を行ってください。
13.プログラムの終了処理
・CUIメニューから、[q : 終了]をコマンド選択すると、プログラムが終了します。