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ピンセット |
USBからCANフレームフォーマットへの変換(V2.0)
CANフレームデータフォーマット
| CANフレームデータフォーマット | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| フレームヘッダー | フレーム長 | コマンド | 送信回数 | 時間間隔 | IDタイプ | CAN ID | フレームタイプ | idAcc | dataAcc | len | data[len] | CRC | ||||||||||
| Data0 | Data1 | Data2 | Data3 | Data4 | Data5 | Data6 | Data7 | Data8 | Data9 | Data10 | Data11 | Data12 | Data13 | Data14 | Data15 | Data16 | Data17 | Data18 | Data19 | Data20 | Data21~Data28 | Data29 |
| 16bit | 8bit | 8bit | 32bit | 16bit | 8bit | 32bit | 8bit | 8bit | 8bit * 8 | 8bit | ||||||||||||
| 55 | AA | 1e | 01 | 01 | 00 | 00 | 00 | 0a | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 08 | data[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
シリアルポートのボーレート設定コマンド
| シリアルポートのボーレート設定コマンド | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| フレームヘッダー | baudrate | databit | stopbit | parity | フレームフッター | |||||
| Data0 | Data1 | Data2 | Data3 | Data4 | Data5 | Data6 | Data7 | Data8 | Data9 | Data10 |
| 16bit | 32bit | 8bit | 8bit | 8bit | 16bit | |||||
| 0x55 | 0xAA | 0xAA | 0x55 | |||||||
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ボーレート設定コマンド | ||||
|---|---|---|---|---|
| フレームヘッダー | インデックス | フレームフッター | ||
| Data0 | Data1 | Data2 | Data3 | Data4 |
| 16bit | 8bit | |||
| 0x55 | 0x05 | 0xAA | 0x55 | |
| インデックス | ボーレート | 理想CIA | 実際CIA |
|---|---|---|---|
| index0 | 1000kbps | 75% | 75% |
| index1 | 800kbps | 80% | 80% |
| index2 | 666kbps | 80% | 83.3% |
| index3 | 500kbps | 87.5% | 87.5% |
| index4 | 400kbps | 87.5% | 85% |
| index5 | 250kbps | 87.5% | 87.5% |
| index6 | 200kbps | 87.5% | 85% |
| index7 | 125kbps | 87.5% | 87.5% |
| index8 | 100kbps | 87.5% | 87.5% |
| index9 | 80kbps | 87.5% | 86.5% |
| index10 | 50kbps | 87.5% | 87.5% |
| index11 | 40kbps | 87.5% | 85% |
| index12 | 20kbps | 87.5% | 85% |
| index13 | 10kbps | 87.5% | 85% |
| index14 | 5kbps | 87.5% | 87.5% |
PCとデバイス間のハートビート
| PCとデバイス間のハートビート | |||||
|---|---|---|---|---|---|
| フレームヘッダー | フレームフッター | ||||
| Data0 | Data1 | Data3 | Data4 | ||
| 16bit | |||||
| 0x55 | 0x04 | 0xAA | 0x55 | ||
注:CANが返すデータにおいて、CMDが00の場合、その他のCANデータは無効です。
CAN送信停止(連続送信中)
| CAN送信停止(連続送信中) | |||||
|---|---|---|---|---|---|
| フレームヘッダー | フレームフッター | ||||
| Data0 | Data1 | Data3 | Data4 | ||
| 16bit | |||||
| 0x55 | 0x03 | 0xAA | 0x55 | ||
注:現在の連続送信を停止します。
CAN受信データフレームフォーマット
| CANフレームデータフォーマット | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| フレームヘッダ | コマンド | フォーマット | CAN ID | データ | フレームフッター | ||||||||||
| Data0 | Data1 | Data2 | Data3 | Data4 | Data5 | Data6 | Data7 | Data8 | Data9 | Data10 | Data11 | Data12 | Data13 | Data14 | Data15 |
| AA | 55 | ||||||||||||||
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