メインコンテンツまでスキップ

DM-USBCU1 USB-CAN変換モジュール

「USBからCANフレームフォーマットへの変換(V2.0)」の原文(中国語)

本サイト全体のライセンスはApache License 2.0ですが、本資料および原文の資料にはライセンスを設定しません。

USB-CAN変換ソフトウェア

USB-CAN変換ソフトウェアの使用マニュアルはこちらをご覧ください。

仕様情報

サイズ4x2x1cm
モデルDM-USBCU1
機器タイプCANバス
ブランド達妙
製造地中国大陸
適用シーンUSB-CAN変換
CAN解析
説明

モジュール【V3.0】 + データケーブル + 2ピン + 3ピンセット
CAN絶縁機能アップグレード済み

USBからCANフレームフォーマットへの変換(V2.0)

CANフレームデータフォーマット

CANフレームデータフォーマット
フレームヘッダーフレーム長コマンド送信回数時間間隔IDタイプCAN IDフレームタイプidAccdataAcclendata[len]CRC
Data0Data1Data2Data3Data4Data5Data6Data7Data8Data9Data10Data11Data12Data13Data14Data15Data16Data17Data18Data19Data20Data21~Data28Data29
16bit8bit8bit32bit16bit8bit32bit8bit8bit8bit * 88bit
55AA1e01010000000a000000000000000000000008data[8]crc
  • コマンド
    • 0x01 CANデータフレーム転送
    • 0x02 PCとデバイスがハンドシェイク、デバイスがOKを返す
    • 0x03 非フィードバックCAN転送、送信状態を返さない
  • IDタイプ
    • 00 標準フレーム
    • 01 拡張フレーム
  • フレームタイプ
    • 00 データフレーム
    • 01 リモートフレーム

注:その他のフォーマットはシリアル転送データ

例:

55 aa 1e 01 01 00 00 00 0a 00 00 00 00 00 00 00 00 00 08 00 00 12 23 34 45 56 67 78 89 88

シリアルポートのボーレート設定コマンド

シリアルポートのボーレート設定コマンド
フレームヘッダーbaudratedatabitstopbitparityフレームフッター
Data0Data1Data2Data3Data4Data5Data6Data7Data8Data9Data10
16bit32bit8bit8bit8bit16bit
0x550xAA0xAA0x55
typedef struct {
uint32_t baudrate; // ボーレート
uint8_t databit; // データビット
uint8_t stopbit; // ストップビット
uint8_t parity; // パリティ
} Baudrate_set_data;
// データ長ビット設定
// 0: 8bit
// 1: 9bit
switch(setdata_t->databit)
{
case 0u:
stcInitCfg.enDataLength = UsartDataBits8;
break;
case 1u:
stcInitCfg.enDataLength = UsartDataBits9;
break;
default:
stcInitCfg.enDataLength = UsartDataBits8;
break;
}

// パリティ設定
switch(setdata_t->parity)
{
case 0u:
stcInitCfg.enParity = UsartParityNone;
break;
case 1u:
stcInitCfg.enParity = UsartParityEven;
break;
case 2u:
stcInitCfg.enParity = UsartParityOdd;
break;
default:
stcInitCfg.enParity = UsartParityNone;
break;
}

// ストップビット設定
switch(setdata_t->stopbit)
{
case 0u:
stcInitCfg.enStopBit = UsartOneStopBit;
break;
case 1u:
stcInitCfg.enStopBit = UsartTwoStopBit;
break;
default:
stcInitCfg.enStopBit = UsartTwoStopBit;
break;
}

CANボーレート設定コマンド

CANボーレート設定コマンド
フレームヘッダーインデックスフレームフッター
Data0Data1Data2Data3Data4
16bit8bit
0x550x050xAA0x55
インデックスボーレート理想CIA実際CIA
index01000kbps75%75%
index1800kbps80%80%
index2666kbps80%83.3%
index3500kbps87.5%87.5%
index4400kbps87.5%85%
index5250kbps87.5%87.5%
index6200kbps87.5%85%
index7125kbps87.5%87.5%
index8100kbps87.5%87.5%
index980kbps87.5%86.5%
index1050kbps87.5%87.5%
index1140kbps87.5%85%
index1220kbps87.5%85%
index1310kbps87.5%85%
index145kbps87.5%87.5%

PCとデバイス間のハートビート

PCとデバイス間のハートビート
フレームヘッダーフレームフッター
Data0Data1Data3Data4
16bit
0x550x040xAA0x55

注:CANが返すデータにおいて、CMDが00の場合、その他のCANデータは無効です。

CAN送信停止(連続送信中)

CAN送信停止(連続送信中)
フレームヘッダーフレームフッター
Data0Data1Data3Data4
16bit
0x550x030xAA0x55

注:現在の連続送信を停止します。

CAN受信データフレームフォーマット

CANフレームデータフォーマット
フレームヘッダコマンドフォーマットCAN IDデータフレームフッター
Data0Data1Data2Data3Data4Data5Data6Data7Data8Data9Data10Data11Data12Data13Data14Data15
AA55

CANコマンド:

  • 00 ハートビート
  • 0x01 受信失敗
  • 0x11 受信成功
  • 0x02 送信失敗
  • 0x12 送信成功
  • 0x03 ボーレート設定失敗
  • 0x13 ボーレート設定成功

フォーマット: データ長を含みます。

データフレームタイプの詳細は以下の構造体を参照してください。

// CAN 返信データフォーマット
typedef struct // CAN送信機能関連構造体 16バイト
{
uint8_t frameHeader; // 送信フラグビット 0xAA
uint8_t CMD; // CANコマンド
uint8_t canDataLen:6; // データ長
uint8_t canIde:1; // ide: 0 標準フレーム、1 拡張フレーム
uint8_t canRtr:1; // rtr: 0 データフレーム、1 リモートフレーム
uint32_t CANID; // CAN ID
uint8_t canData[8]; // CANデータ
uint8_t freamEnd; // 終了マーク 0x55
} CAN_Fream;

例:

AA 11 08 00 00 00 00 00 01 02 03 04 05 06 07 55