USB CANアダプター ASCIIコマンドリファレンス

概要: USB CANアダプターは仮想シリアルポートとして登録され、シンプルなASCIIコマンドで制御できます。全てのコマンドは改行文字CR(0xD)で終了し、エラー時は0x7(BELL)が返されます。

基本情報・ヘルプコマンド

コマンド 応答 機能 利用可能状態
H[CR] [CR] サポートされているコマンド一覧を表示 常時
h[CR] [CR] サポートされているコマンド一覧を表示 常時
?[CR] [CR] サポートされているコマンド一覧を表示 常時
V[CR] VXXXX[CR] ファームウェアバージョンを取得 常時
N[CR] TXXXXXXXX[CR] シリアル番号を取得(10進数) 常時
RST[CR] - USB CANアダプターをリセット 常時

チャンネル制御コマンド

チャンネルオープン

コマンド 応答 機能 前提条件
O[CR] [CR] 通常モードでチャンネルをオープン ビットレート設定済み
L[CR] [CR] リッスンオンリーモードでチャンネルをオープン ビットレート設定済み
Y[CR] [CR] ループバックモードでチャンネルをオープン ビットレート設定済み
モードの説明:

チャンネルクローズ

コマンド 応答 機能 前提条件
C[CR] [CR] CANチャンネルをクローズ チャンネルオープン状態

ビットレート設定コマンド

標準ビットレート設定

コマンド 応答 ビットレート 前提条件
S00[CR] [CR] 5Kbps チャンネルクローズ状態
S0[CR] [CR] 10Kbps チャンネルクローズ状態
S1[CR] [CR] 20Kbps チャンネルクローズ状態
S2[CR] [CR] 50Kbps チャンネルクローズ状態
S3[CR] [CR] 100Kbps チャンネルクローズ状態
S4[CR] [CR] 125Kbps チャンネルクローズ状態
S5[CR] [CR] 250Kbps チャンネルクローズ状態
S6[CR] [CR] 500Kbps チャンネルクローズ状態
S7[CR] [CR] 800Kbps チャンネルクローズ状態
S8[CR] [CR] 1Mbps チャンネルクローズ状態
注意: USB-CAN-SI-Mは20K~1Mビットのみサポート

カスタムビットレート設定

コマンド 応答 機能 前提条件
sXXXXXXXXX[CR] [CR] カスタムビットレートを設定 チャンネルクローズ状態
例: s013070603[CR] = 150kbps設定
設定方法: CAN Bitrate Calculator プログラムを使用して値を計算

データ送信コマンド

標準フレーム送信(11bit ID)

コマンド 応答 機能 前提条件
tiiildddd...dd[CR] z[CR] 標準CANフレームを送信 チャンネルオープン状態
riiil[CR] z[CR] 標準リモートリクエストフレームを送信 チャンネルオープン状態
パラメータ説明:
例:

拡張フレーム送信(29bit ID)

コマンド 応答 機能 前提条件
Tiiiiiiiildddd...dd[CR] Z[CR] 拡張CANフレームを送信 チャンネルオープン状態
Riiiiiiiil[CR] Z[CR] 拡張リモートリクエストフレームを送信 チャンネルオープン状態
パラメータ説明:
例:

フィルタリング設定コマンド

アクセプタンスマスク設定

コマンド 応答 機能 前提条件
miii[CR] [CR] 標準フレーム用アクセプタンスマスクを設定 チャンネル初期化済み
miiiiiiii[CR] [CR] 拡張フレーム用アクセプタンスマスクを設定 チャンネル初期化済み
マスクの仕組み:
例: m700[CR] → ビット10,9,8をチェック、ビット7-0は無視

アクセプタンスコード設定

コマンド 応答 機能 前提条件
Miii[CR] [CR] 標準フレーム用アクセプタンスコードを設定 マスク設定後
Miiiiiiii[CR] [CR] 拡張フレーム用アクセプタンスコードを設定 マスク設定後
フィルタの仕組み:
例: M1FF[CR] → 上記マスクと組み合わせて0x100-0x1FFの範囲を通過

その他の設定コマンド

タイムスタンプ設定

コマンド 応答 機能 前提条件
Z1[CR] [CR] 受信フレームのタイムスタンプをONに設定 チャンネルクローズ状態
Z0[CR] [CR] 受信フレームのタイムスタンプをOFFに設定 チャンネルクローズ状態

ステータス確認

コマンド 応答 機能 前提条件
F[CR] XX[CR] CANバスステータスフラグを取得 常時

ステータスフラグ詳細

Last Error Code(LEC)- ビット2,1,0

コード 意味
000 エラーなし
001 スタッフエラー:5個以上の同じビットが連続
010 フォーマットエラー:固定フォーマット部分が間違い
011 ACKエラー:送信メッセージが他ノードで応答されない
100 ビット1エラー:リセッシブ送信時にドミナントを検出
101 ビット0エラー:ドミナント送信時にリセッシブを検出
110 CRCエラー:CRCチェックサムが不正
111 未使用

その他のステータスビット

ビット 意味
3 メッセージ送信成功(1=成功)
4 メッセージ受信成功(1=成功)
5 エラーパッシブ状態(1=パッシブ)
6 エラー警告ステータス(1=警告レベル到達)
7 バスオフステータス(1=バスオフ状態)

実用的な使用例

基本的な送信シーケンス

S6[CR] # 500kbpsに設定 O[CR] # チャンネルをオープン t0023112233[CR] # ID=002h, DLC=3, Data=11 22 33を送信 C[CR] # チャンネルをクローズ

フィルタリング設定例

C[CR] # チャンネルをクローズ(設定変更のため) m700[CR] # マスク設定:上位3ビットをチェック M100[CR] # コード設定:0x100-0x1FFの範囲を通過 O[CR] # チャンネルをオープン

ステータス確認例

F[CR] # ステータス取得 # 応答例:20[CR] = ビット5が1(エラーパッシブ状態)

重要な注意事項

  1. コマンド実行順序: ビットレート設定 → チャンネルオープン → データ送信
  2. フィルタ設定順序: アクセプタンスマスク → アクセプタンスコード
  3. 設定変更: ビットレート、タイムスタンプ設定はチャンネルクローズ時のみ
  4. エラーハンドリング: 全てのエラーは0x7(BELL)で応答
  5. データフォーマット: 全ての数値は16進数で指定
  6. DLC制限: データ長は最大8バイト

トラブルシューティング

よくあるエラーと対処法