HW Bus I2C/SPI/UART/CAN/GPIO 1980-2026(ハードウェアバス)
Hardware Bus Protocol 1980-2026。I2C Inter-Integrated Circuit (Philips Semiconductors 1982・現NXP・SDA+SCL 2-wire・100kHz Standard+400kHz Fast+1MHz Fast++3.4MHz Hi-Speed+5MHz Ultra Fast・最大127デバイス・7-bit/10-bit Address・Open-Drain+Pull-up Resistor)・SPI Serial Peripheral Interface (Motorola 1980年代・MOSI+MISO+SCLK+SS 4-wire Full-duplex・10-50MHz・QSPI Quad+Octal SPI 4/8 lane・Master-Slave単一)・UART Universal Async Receiver Transmitter (1971 Gordon Bell・RS-232・TX+RX 2-wire・9600/115200 baud・Start/Stop bit Frame・Parity Bit)・CAN Bus Controller Area Network (Bosch 1986自動車Mercedes・Differential CANH+CANL・1Mbps Classic+8Mbps CAN FD・OBD-II標準・ISO 11898)・LIN Local Interconnect 20kbps・MOST/FlexRay Auto・GPIO General Purpose IO (Push-Pull+Open-Drain+Pull-up/down・Interrupt Trigger Edge/Level)・1-Wire Maxim Dallas (15kbps)・Modbus RTU/TCP (Industrial 1979)・JTAG IEEE 1149.1 1990 (Boundary Scan+Debug)・¥0 標準・Arduino+Raspberry Pi+ESP32+STM32必須。
概要
1980年代から2026年にかけて、組み込みシステムは多種多様なハードウェアバスプロトコルに依存してきました。I²C、SPI、UART、CAN、GPIO は、センサからアクチュエータ、通信モジュールまで幅広いデバイスで標準化され、設計者はそれぞれの特性を理解しながらシステムを構築しています。
主な特徴・仕組み
| プロトコル | 代表的な発表年 | 主な構成ピン | 典型的な速度 | 典型的な電圧 | 主な用途 |
|---|---|---|---|---|---|
| I²C | 1982 | SDA, SCL | 100 kHz (標準) / 400 kHz (ファスト) / 1 MHz (ファスト++) / 3.4 MHz (Hi‑Speed) / 5 MHz (Ultra‑Fast) | 1.8 V / 3.3 V | バス型センサ、EEPROM、RTC |
| SPI | 1980年代 | MOSI, MISO, SCLK, SS | 10 MHz (標準) / 50 MHz (高速) / 100 MHz (マイクロチップ) | 1.8 V / 3.3 V | フラッシュメモリ、LCD、DAC |
| UART | 1971 | TX, RX | 9600 bps / 115200 bps / 1 Mbps (RS‑485) | 1.8 V / 3.3 V | シリアルコンソール、モデム |
| CAN | 1986 | CANH, CANL | 1 Mbps (Classic) / 8 Mbps (CAN FD) | 3.5 V (差動) | 車載ネットワーク、産業機器 |
| GPIO | 1970年代 | 任意ピン | 1 MHz (クロック) | 1.8 V / 3.3 V / 5 V | 入出力制御、割り込み |
I²C
オープンドレインでプルアップ抵抗を必要とし、最大127デバイスを同一バスで接続できる。10ビットアドレスを選択できることで、より多くのデバイスを扱える。
SPI
フルデュプレックスで、クロックに同期したデータ転送が可能。QSPI(Quad)やOctal SPI では 4〜8 ラーンを同時に使用し、フラッシュメモリの読み出し速度を数十倍に向上。
UART
非同期通信で、スタートビットとストップビットによりフレームを構成。RS‑485 互換で長距離通信が可能。
CAN
差動ラインを使用し、ノイズ耐性が高い。CAN FD ではデータフィールドを 64 バイトに拡張し、1 Mbps で 8 Mbps へのスイッチが可能。
GPIO
プッシュプル、オープンドレイン、プルアップ/プルダウンのモードが選択でき、割り込みはエッジまたはレベルでトリガ可能。
具体例・対応製品
| 製品名 | 型番 | 対応バス | 主なスペック | 参考価格 |
|---|---|---|---|---|
| NXP LPC55S69 | LPC55S69 | I²C, SPI, UART, CAN, GPIO | 2 GHz Cortex‑M33, 512 kB Flash, 128 kB RAM, 1 Mbps CAN, 5 V tolerant GPIO | 12 USD |
| STMicro STM32H743 | STM32H743 | I²C, SPI, UART, CAN, GPIO | 400 MHz Cortex‑M7, 2 MB Flash, 1 Mbps CAN FD, 48 GPIO | 18 USD |
| Texas Instruments TMS320F28335 | TMS320F28335 | I²C, SPI, UART, CAN, GPIO | 200 MHz C2000, 1 Mbps CAN, 32 GPIO, 12 bit ADC | 20 USD |
| Microchip PIC32MX470F512L | PIC32MX470F512L | I²C, SPI, UART, GPIO | 80 MHz, 512 kB Flash, 1 Mbps CAN, 48 GPIO | 10 USD |
| Renesas RA4M1 | RA4M1 | I²C, SPI, UART, CAN, GPIO | 120 MHz, 512 kB Flash, 1 Mbps CAN, 64 GPIO | 15 USD |
| Nordic nRF52840 | nRF52840 | I²C, SPI, UART, GPIO, BLE | 64 MHz, 1 Mbps CAN, 1 MB Flash, 48 GPIO | 30 USD |
| Cypress EZ‑SPIN | EZ‑SPIN | SPI, UART, GPIO | 80 MHz, 1 Mbps CAN, 32 GPIO | 25 USD |
| Silicon Labs EFM32GG | EFM32GG11B | I²C, SPI, UART, CAN, GPIO | 48 MHz, 1 Mbps CAN, 64 GPIO | 14 USD |
| Infineon XMC4500 | XMC4500 | I²C, SPI, UART, CAN, GPIO | 200 MHz, 1 Mbps CAN, 128 GPIO | 22 USD |
| Bosch MCP2515 | MCP2515 | CAN, SPI | 8 MHz, 1 Mbps CAN, 8 GPIO | 5 USD |
2025‑2026年の動向
- 5G IoT で 1.8 V I²C が主流化。
- 自動車 では CAN FD が 100 % で採用され、車載ネットワークの帯域が 8 Mbps へ拡張。
- 高速度 QSPI が 200 MHz でフラッシュ読み出しを実現。
- 低電力モード で GPIO が 0.5 V での入力を許容。
- USB‑C 互換の UART/USB 変換チップが増加。
選び方・注意点
| 観点 | チェックポイント | 具体例 |
|---|---|---|
| 速度要件 | 必要データレートを確認 | CAN FD 8 Mbps 必要なら MCP2551 では不可 |
| 電圧レベル | 3.3 V か 1.8 V か | NXP LPC55S69 は 1.8 V もサポート |
| ピン数 | 必要 GPIO 数 | STM32H743 では 64 GPIO あり |
| ノイズ耐性 | 差動ラインか単線か | CAN は差動でノイズ耐性高い |
| 電力消費 | 省電力モード | Renesas RA4M1 は 0.5 mA スリープ |
| コスト | 価格帯 | MCP2515 は 5 USD で低価格 |
| 開発環境 | SDK/IDE | STM32CubeIDE で統合開発可 |
| 規格準拠 | ISO 11898, ISO 11579 など | Bosch MCP2515 は ISO 11898-1 互換 |
関連用語との違い
| 用語 | 主な違い | 代表的な用途 |
|---|---|---|
| I²C vs. SPI | I²C は 2線、スレーブ数多;SPI は 4線、データ転送高速 | I²C はセンサ、SPI はフラッシュ |
| UART vs. RS‑485 | UART は単一データ線、RS‑485 は差動、長距離 | UART はシリアルコンソール、RS‑485 は産業機器 |
| CAN vs. LIN | CAN は差動、マルチマスター;LIN は 1線、シングルマスター | CAN は車載ネットワーク、LIN は軽量制御 |
| GPIO vs. PWM | GPIO はデジタル入出力;PWM は周期的なデジタル出力 | GPIO はスイッチ制御、PWM はモーター制御 |
| JTAG vs. SWD | JTAG は多線、デバッグ全般;SWD は 2線、ARM Cortex で標準 | JTAG は複数デバイスデバッグ、SWD は STM32 で使用 |
よくある質問 (FAQ)
Q1. I²C の最大デバイス数は127ですが、実際にそれ以上接続できますか?
A1. 127 は 7ビットアドレスでの上限です。10ビットアドレスを使用すれば 1023 まで拡張可能ですが、実装上はクロック遅延や電源ノイズが問題になるため、一般的には 127 以内で設計することが推奨されます。
Q2. CAN FD で 8 Mbps を実現するには何が必要ですか?
A2. CAN FD ではトランシーバが 8 Mbps をサポートしている必要があります。例えば、Bosch MCP2551 では Classic 1 Mbps のみで、MCP2551‑FD などの FD 対応トランシーバを選択する必要があります。
Q3. GPIO を 5 V で使用したい場合、どのような対策が必要ですか?
A3. 5 V tolerant な GPIO ピンを持つ MCU を選ぶか、レベルシフタ(例えば TXB0104)を介して電圧変換を行います。レベルシフタを使用する場合は、入力側の電圧が 3.3 V であることを確認してください。
まとめ
1980 年代から 2026 年にかけて、I²C、SPI、UART、CAN、GPIO はそれぞれ独自の特性と用途を確立し、組み込みシステムの基盤を形成してきました。最新の 5G IoT、車載ネットワーク、低電力デバイスの需要に応じて、速度・電圧・ピン数・ノイズ耐性の要件が変化しています。設計者は、プロトコルの特性を把握し、対象アプリケーションに最適なハードウェアを選択することで、信頼性と性能を両立させることができます。