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 内部機能アーキテクチャ — 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 配線 — 白(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 フレーム** をホストに送信
### 通信フロー

```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 に基づく*