UIC322H USB-CAN 高速絶縁プロトコルコンバータ

UIC322H 5000VDC 完全絶縁 USB to CAN アダプタ。産業グレード設計、CAN 2.0A/B サポート、最大 1 Mbps。

# UIC322H USB-CAN 高速絶縁プロトコルコンバータ > 産業グレード設計の 5000VDC 完全絶縁 USB to CAN アダプタ --- ## 製品概要 UIC322H は、産業環境向けに設計された高性能 USB-to-CAN アダプタです。Silicon Labs CP2102N USB-to-シリアルコントローラをベースに、Windows、Linux(カーネル 3.0.0-19 以降)、macOS、Android を含む幅広い OS 互換性を提供します。 本アダプタは USB と CAN Bus 間で **5000 VDC 絶縁**(電源およびデータ)を提供し、USB 仮想 COM ポートのボーレートは最大 2 Mbps、CAN Bus ビットレートは最大 1 Mbps をサポートします。TX/RX ラインは **±8 kV(接触)** および **±15 kV(空気)** の強化 ESD 保護を備え、ホスト USB ポートと接続された CAN デバイスを電圧スパイク、静電放電、過渡サージから保護します。 ::: tip 主な利点 - **5000 VDC 完全絶縁**(電源 + 信号) - **USB 給電**、USB 2.0 準拠、フルスピード(12 Mbps) - **CAN 2.0A**(標準フレーム)および **CAN 2.0B**(拡張フレーム)サポート - 堅牢な鋳造金属筐体の産業グレード設計 ::: --- ## 特長 :::grid{cols=2 style=card} **絶縁と保護** - 5000 VDC 完全絶縁(電源 + 信号) - ESD 保護:±8 kV(接触)、±15 kV(空気) - IEC 61000-4-2 レベル 4 準拠 **CAN インターフェース** - CAN 2.0A / CAN 2.0B サポート - ビットレート:50k ~ 1000k bps - ISO 11898 準拠 ::: :::grid{cols=2 style=card} **USB インターフェース** - USB 2.0 フルスピード(12 Mbps) - 仮想 COM ポート:9,600 ~ 2,000,000 bps - プラグ&プレイ、外部電源不要 **動作モード** - ノーマルモード - ループバックモード(内部テスト) - リスンオンリーモード ::: --- ## ブロック図 ![UIC322H ブロック図](/media/uic322h/1782291813736-8qkc14.png) *図:UIC322H 内部機能アーキテクチャ — USB to CAN、5000VDC 絶縁* --- ## 製品モデル UIC322H はスタンドアロンの USB-to-CAN アダプタです。UIROBOT プロトコルコンバータファミリーの一部です。 | モデル | インターフェース | CAN チャンネル | 絶縁 | ESD 保護 | ホスト接続 | |-------|--------------|-------------|------|---------|----------| | **UIC322H** | USB 2.0(仮想 COM)| 1 x CAN 2.0B | 5000 VDC | ±15 kV(空気)| USB Type-A | | UIC321H | RS232 | 1 x CAN 2.0B | 2500 VDC | — | DB9 / 端子台 | | UIC324H | RS485 | 1 x CAN 2.0B | 2500 VDC | — | 端子台 | --- ## 仕様 ### 一般情報 | パラメータ | 仕様 | |-----------|------| | 型番 | UIC322H | | 対応 OS | Windows(32/64 ビット)、Linux(カーネル 3.0.0-19+)、macOS 8+、Android | | USB インターフェース | Type A、鋳造アルミニウム合金、USB 1.1/2.0 | | 電源 | USB ポートから供給(外部電源不要)| ### 絶縁と保護 | パラメータ | 仕様 | |-----------|------| | USB/CAN 絶縁 | 5000 VDC | | ESD 保護(TX/RX)| ±8 kV(接触)| | IEC 61000-4-2(直接放電)| 15 kV(レベル 4)| | IEC 61000-4-2(空気放電)| 15 kV(レベル 4)| | MIL-STD-883 Method 3015.7 | 15 kV | ::: warning 重要 5000 VDC 絶縁は、ホストコンピュータと CAN Bus デバイスの両方をグランドループと電圧過渡から保護します。最適なパフォーマンスのためには適切な接地を確保してください。 ::: ### CAN インターフェース | パラメータ | 仕様 | |-----------|------| | コネクタ | フリップクリップペアコネクタ、2×2 ピン | | 信号 | 絶縁 CANH、CANL、CGND(オプション)| | ビットレート | 50k、125k、250k、500k、800k、1000k bps | | 物理層 | ISO 11898 準拠 | ### USB 仮想 COM パラメータ | パラメータ | 仕様 | |-----------|------| | データビット | 8(固定)| | ストップビット | 1(固定)| | パリティ | なし(固定)| | 対応ボーレート | 9,600 / 14,400 / 16,000 / 19,200 / 28,800 / 38,400 / 51,200 / 56,000 / 57,600 / 64,000 / 76,800 / 115,200 / 128,000 / 153,600 / 230,400 / 250,000 / 256,000 / 460,800 / 500,000 / 576,000 / 921,600 / 1,000,000 / 1,200,000 / 1,500,000 / 2,000,000 bps | ### 機械的・環境的仕様 | パラメータ | 仕様 | |-----------|------| | 筐体 | アルミニウム | | ケーブル長 | 1 ft(30 cm)| | 重量 | 50 g | | 動作温度 | -40°C ~ +85°C | | 動作湿度 | 5% ~ 85% RH | | 保証 | 1 年間限定保証 | --- ## 配線 ![UIC322H 配線図](/media/uic322h/1782291812232-y1iypq.jpeg) *図:UIC322H 配線 — 白(CANH)、緑(CANL)、黒(CGND)* ### 電線色コード | 色 | 信号 | 説明 | |----|------|------| | 白 | CH | CAN High | | 緑 | CL | CAN Low | | 黒 | CGND | CAN Ground | ### 終端抵抗 ::: tip UIC322H にはソフトウェア設定で有効化できる内蔵 120Ω 終端抵抗が含まれています。複数ノードのネットワークでは、CAN バスの両端で終端抵抗を有効にしてください。 ::: --- ## クイックスタート ### 通信アーキテクチャ ```mermaid graph LR A[ホスト PC] -->|USB| B[UIC322H] B -->|CAN Bus| C[CAN デバイス] subgraph "UIC322H 内部" D[CP2102N USB チップ] --> E[UART] E --> F[DSP] F --> G[デジタルアイソレータ] G --> H[CAN ドライバ] end ``` ### 初期化手順 1. **シリアルポート設定** - データビット:8 - ストップビット:1 - パリティ:なし - サポートされているボーレートのいずれかを選択 2. **UART ボーレート初期化** ::: warning 重要な手順 COM ポートを開いた後、1 バイト `0x55` を UIC322H に送信します。このコマンドにより UIC322H 側の UART ボーレートがホストと一致するように設定されます。 ::: 3. **CAN コントローラ初期化** - **CAN-CFG フレーム** を送信して内部 CAN コントローラを設定 - CAN ビットレートを設定(50k / 125k / 250k / 500k / 800k / 1000k bps) - 動作モードを設定(ノーマル / ループバック / リスンオンリー) 4. **CAN メッセージの送受信** - 送信:**CAN-TXM フレーム** を UIC322H に送信 - 受信:CAN メッセージ受信時に UIC322H が **CAN-RXM フレーム** を送信 5. **エラーハンドリング** - エラー発生時、UIC322H が **ERR-MSG フレーム** をホストに送信 ### 通信フロー ![UIC322H 通信フロー](/media/uic322h/1782291814728-ikknd7.png) ```mermaid sequenceDiagram participant H as ホスト participant U as UIC322H participant C as CAN Bus H->>U: 0x55(UART 初期化) U->>H: ACK H->>U: CAN-CFG フレーム U->>H: ACK(必要な場合) loop データ交換 H->>U: CAN-TXM フレーム U->>C: CAN メッセージ C->>U: CAN メッセージ U->>H: CAN-RXM フレーム end ``` --- ## UART プロトコル ### UART メッセージフレーム構造 すべての通信は固定長(**18 バイト**)の UART フレームを使用します: | バイト | 0 | 1 | 2-16 | 17-18 | 19 | |------|---|---|------|-------|----| | 名称 | AA | CW | ペイロード | CRC | CC | ::: note フレームフィールド - **AA**: フレームヘッダ、通常 0xAA(CRC 不要の場合は 0xAD) - **CW**: UART メッセージ制御ワード - **ペイロード**: 15 バイト、コマンドタイプに依存 - **CRC**: CRC-16/MODBUS(付録 1 参照) - **CC**: フレーム終了マーカー、常に 0xCC ::: ::: tip エンディアン すべてのマルチバイト数値フィールドは **リトルエンディアン** 形式で送信されます。 - 例:0x87654321 → 0x21、0x43、0x65、0x87 の順に送信 ::: ### CAN-CFG フレーム(設定) ホストは初期化中に CAN-CFG フレームを送信する必要があります: | バイト | 0 | 1 | 2 | 3-4 | 5-6 | 7-10 | 11-14 | 15-16 | 17 | |------|---|---|---|-----|-----|------|-------|-------|----| | 名称 | AA | CW | CFG | 00 | BR0-BR1 | FT0-FT3 | MK0-MK3 | CRC | CC | #### 設定フィールド | フィールド | バイト | 説明 | |----------|------|------| | CW | 1 | 0x01 または 0x81(ACK 要求)| | CFG | 1 | EID:0=標準 ID(11 ビット)、1=拡張 ID(29 ビット)| | BR1:BR0 | 2 | CAN ビットレート:50、125、250、500、800、1000(Kbps)| | FT3:FT0 | 4 | CAN メッセージフィルタ | | MK3:MK0 | 4 | CAN メッセージフィルタマスク | #### 動作モード | MD1 | MD0 | モード | 説明 | |-----|-----|-------|------| | 0 | 0 | ノーマル | 標準動作 | | 0 | 1 | ループバック | 内部テストモード | | 1 | 0 | リスンオンリー | 送信せず受信のみ | | 1 | 1 | モニタオール | 全メッセージ受信(エラーを含む)| ### CAN-TXM フレーム(送信) | バイト | 0 | 1 | 2-5 | 6 | 7-14 | 15-16 | 17 | |------|---|---|-----|---|------|-------|----| | 名称 | AA | CW | ID0-ID3 | DLC | B0-B7 | CRC | CC | | フィールド | バイト | 説明 | |----------|------|------| | CW | 1 | 0x03 または 0x83(ACK 要求)| | ID3:ID0 | 4 | CAN ID(32 ビット)| | DLC | 1 | データ長制御バイト | | LEN | — | 有効データバイト数 | | RTR | — | 0=通常メッセージ、1=リモート送信要求 | | IDE | — | 0=標準 CAN ID(11 ビット)、1=拡張 CAN ID(29 ビット)| | B0-B7 | 8 | CAN メッセージデータバイト | ### CAN-RXM フレーム(受信) | バイト | 0 | 1 | 2-5 | 6 | 7-14 | 15-16 | 17 | |------|---|---|-----|---|------|-------|----| | 名称 | AA | CW | ID0-ID3 | DLC | B0-B7 | CRC | CC | | フィールド | バイト | 説明 | |----------|------|------| | CW | 1 | 0xD0 | | ID3:ID0 | 4 | CAN ID(32 ビット)| | DLC | 1 | データ長制御バイト | | B0-B7 | 8 | CAN メッセージデータバイト | --- ## エラーメッセージ エラー発生時、UIC322H はエラーフレームをホストに送信します: ### エラーコード | コード | 16 進数 | エラータイプ | 説明 | |-------|---------|------------|------| | 0x00 | F0 00 | CAN 未初期化 | CAN-CFG 前に CAN-TXM を受信 | | 0x01 | F0 01 | 不明な CW | 認識されない制御ワード | | 0x02 | F0 02 | CRC エラー | CRC 整合性チェック失敗 | | 0x03 | F0 03 | 無効なビットレート | サポート外の CAN ビットレート | | 0x10 | F1 00 | フレーム長不足 | UART フレーム < 18 バイト | | 0x11 | F1 01 | CAN TX/RX エラー | CAN 送受信エラー | ### エラーフレーム形式 ``` AA F0 [エラーコード] [データ...] [CRC0] [CRC1] CC ``` ::: danger 重要 エラーコード 0x00 を受信した場合、CAN メッセージを送信する前に CAN-CFG フレームが送信されていることを確認してください。 ::: --- ## デバイス情報の取得 シリアル番号などのデバイス情報を取得するには: **要求(ホスト → UIC322H):** ```hex AA 00 00 00 00 00 00 00 00 00 00 00 00 00 00 AB 01 CC ``` または(CRC なし): ```hex AD 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 CC ``` **応答(UIC322H → ホスト):** ```hex AA 00 SN0 SN1 SN2 SN3 00 00 00 00 00 00 00 00 00 CRC0 CRC1 CC ``` SN3:SN2:SN1:SN0 がデバイスのシリアル番号(32 ビット)です。 ::: tip 例 応答:`AA 00 01 02 03 04 00 00 00 00 00 00 00 00 00 1E D6 CC` シリアル番号:`0x04030201`(16 進数)= `006-730-5985`(10 進数) ::: --- ## 付録 1:CRC-16/MODBUS サンプルコード UIC322H UART プロトコルで使用される CRC-16/MODBUS の計算方法を示す C コード: ```c // CRC 下位バイトルックアップテーブル(256 エントリ) unsigned char tblCRCLo[256] = { /* ... データシートの完全なテーブルを参照 ... */ }; // CRC 上位バイトルックアップテーブル(256 エントリ) unsigned char tblCRCHi[256] = { /* ... データシートの完全なテーブルを参照 ... */ }; // CRC-16/MODBUS 計算 // buf: CW バイトから始まるデータへのポインタ // qty: 処理するバイト数(UIC322H の場合、qty = 14) unsigned short RtuCrc16(unsigned char* buf, unsigned int qty) { unsigned char crcH = 0xFF; unsigned char crcL = 0xFF; int idx = 0; while (qty--) { idx = crcL ^ *buf++; crcL = crcH ^ tblCRCHi[idx]; crcH = tblCRCLo[idx]; } return (crcH << 8) | crcL; } ``` ::: tip 使用方法 CW バイトへのポインタと長さ 14 を指定して `RtuCrc16()` を呼び出すと、任意の UART フレームの CRC を計算できます。 ::: --- ## 安全上の注意事項 ### 電気的安全 | 危険 | 予防措置 | |------|----------| | 絶縁電圧 | 5000 VDC の絶縁定格を超えないでください。適切な接地を確保してください。 | | ESD | 取り扱い時は静電対策を行ってください。コネクタに触れる前に静電気を放電してください。 | | 電源 | デバイスは USB 給電です。USB ポートが十分な電流を供給できることを確認してください。 | ### 運用上の安全 | 危険 | 予防措置 | |------|----------| | 動作温度 | -40°C ~ +85°C の範囲内で使用してください。極端な温度にさらさないでください。 | | 湿度 | 5% ~ 85% RH 以内に保ってください。結露環境では使用しないでください。 | | ケーブル | USB ケーブルに急な曲げや引っ張りを加えないでください。最小曲げ半径:3 cm。 | ### CAN Bus 安全 | 危険 | 予防措置 | |------|----------| | 終端抵抗 | CAN バスの両端で内蔵 120Ω 抵抗を有効にしてください。 | | ホットプラグ | 通電中の CAN 配線の抜き差しは避けてください。 | | 配線 | CANH および CANL にはツイストペアケーブルを使用してください。CAN 配線は高圧線から離して配線してください。 | --- ## ダウンロード - 📖 [UIC322H データシート V5.12 (PDF)](https://www.uirobot.com/uploads/files/Manual_UIC322H%20V5.12.pdf) - 📖 [StepEva3 ユーザーマニュアル V4.7 (PDF)](https://www.uirobot.com/uploads/files/Manual_StepEva3%20V4.7.pdf) - 💻 [CP2102N USB ドライバ](https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers) - 💻 [Python CAN Bus サンプルコード](/docs/python-examples) - 💻 [Arduino CAN Bus サンプルコード](/docs/arduino-examples) --- ## 関連ドキュメント - [クイックスタートガイド](/docs/quick-start) - [CAN Bus プロトコル仕様](/docs/can-bus-protocol) - [Python CAN Bus サンプルコード](/docs/python-examples) - [Arduino CAN Bus サンプルコード](/docs/arduino-examples) --- ## サポート ::: faq **Q: 対応しているオペレーティングシステムは?** A: Windows(32/64 ビット)、Linux(カーネル 3.0.0-19+)、macOS 8+、Android です。 **Q: 外部電源は必要ですか?** A: いいえ、UIC322H は USB ポートから直接給電されます。 **Q: 最大 CAN ビットレートは?** A: 最大 CAN ビットレートは 1000 kbps(1 Mbps)です。 **Q: 終端抵抗を有効にするには?** A: 終端抵抗は CAN-CFG フレームの設定で有効にできます。 ::: --- *最終更新: 2026-07-03 | データシート V5.12 に基づく*