デバイス・ボード

SBC(シングルボードコンピュータ)

1枚の基板で完結する小型PC。Raspberry Piが代表。

概要

SBC(Single Board Computer:シングルボードコンピュータ)は、CPU・メモリ・ストレージインターフェース・各種I/Oポートを1枚の基板上に実装した小型コンピュータです。電源を入れるだけで動作し、OSのインストールとアプリケーション開発をすぐに開始できます。

一般的なPCと比較して非常に小型・低コストでありながら、LinuxやAndroid・場合によってはWindowsを動かす能力を持ちます。最も有名な製品がRaspberry Piで、世界中の教育機関・メーカーズ・プロトタイプ開発者に広く使われています。

SBCはSoM(System on Module)と異なり、それ単体でコンピュータとして機能します。SDカードやeMMCにOSイメージを書き込み、HDMIでモニターに接続、USBでキーボード/マウスを繋げばデスクトップPCとして使えます。一方でキャリアボードを別途設計する必要がなく、プロトタイプから少量生産まで幅広く活用できます。

歴史・背景

SBCの概念自体は1970年代から存在します。1976年にはJohan Monarkという研究者がMotorolaの6800を使ったシングルボードコンピュータを設計しました。1977年にはNational Semiconductor SC/MPを使ったNSC800が登場し、教育・評価用途のSBCが市場に出始めます。

1980年代にはIntel SBC 80/10・SBC 86/12などが産業用コントローラとして使われました。しかし本格的なSBC普及のきっかけとなったのは2012年のRaspberry Pi Model Bの登場です。

Raspberry Pi財団はもともとプログラミング教育を普及させる目的でRaspberry Piを開発しました。35ドルという低価格・LinuxのサポートとGPIOピン・豊富なコミュニティにより爆発的な普及を遂げます。2023年には累計販売台数が5000万台を超えました。

Raspberry Piの成功に続き、ODROID・PINE64・Rock Pi・Orange Pi・Banana Piなど多数の競合SBCが登場。またNVIDIA JetsonのようなAI特化型SBCも普及しています。

技術仕様

代表的なSBC製品比較

製品SoCRAM動作周波数用途
Raspberry Pi 5BCM2712 (Cortex-A76×4)4〜8GB2.4GHz汎用
Raspberry Pi 4 BBCM2711 (Cortex-A72×4)1〜8GB1.8GHz汎用
Raspberry Pi Zero 2 WRP3A0 (Cortex-A53×4)512MB1GHz超小型
NVIDIA Jetson NanoTegra X14GB1.43GHzエッジAI
BeagleBone BlackAM335x (Cortex-A8)512MB1GHz産業・教育
ODROID-N2+S922X (Cortex-A73×4+A53×2)2〜4GB2.4GHz高性能メディア
Rock Pi 4RK3399 (Cortex-A72×2+A53×4)1〜4GB1.8GHz汎用

標準的なI/O仕様(Raspberry Pi 5の例)

GPIO:        40ピン(GPIOx26 + 電源・GND)
USB:         USB3.0×2、USB2.0×2
HDMI:        microHDMI×2(最大4K@60Hz)
カメラ:      MIPI CSI-2×2
ディスプレイ: MIPI DSI×2
Ethernet:    GbE(1Gbps)
Wi-Fi:       IEEE 802.11ac(2.4/5GHz)
Bluetooth:   BT 5.0 / BLE
ストレージ:  microSDカード + PCIe 2.0(M.2 HAT経由)
GPIO電圧:    3.3V(5V非耐性!)
GPIO最大電流: 16mA/ピン(合計50mA)

GPIOピン配置(40ピンヘッダー抜粋)

ピン1  : 3.3V電源
ピン2  : 5V電源
ピン3  : GPIO2 (I2C1_SDA)
ピン5  : GPIO3 (I2C1_SCL)
ピン8  : GPIO14 (UART_TX)
ピン10 : GPIO15 (UART_RX)
ピン11 : GPIO17
ピン19 : GPIO10 (SPI0_MOSI)
ピン21 : GPIO9  (SPI0_MISO)
ピン23 : GPIO11 (SPI0_SCLK)
ピン39 : GND
ピン40 : GPIO21

動作原理

SBCはLinux(Raspberry Pi OSなど)の起動から以下の流れで動作します:

  1. 電源投入: 5V USB-C(または5V GPIO)から電源供給
  2. ブートロム: SoC内蔵のROMがSDカード/eMMCからブートローダーをロード
  3. U-Boot/ファームウェア: ブートローダーがLinuxカーネルとデバイスツリーをロード
  4. カーネル起動: Linuxカーネルがドライバーを初期化
  5. ユーザースペース: systemdが各サービスを起動
  6. アプリケーション: ユーザーのPython/C++/Node.jsプログラムが動作
# Raspberry PiでGPIOを制御するPython例(RPi.GPIOライブラリ)
import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.OUT)  # GPIO17を出力に設定

try:
    while True:
        GPIO.output(17, GPIO.HIGH)  # Highに設定(3.3V)
        time.sleep(1)
        GPIO.output(17, GPIO.LOW)   # Lowに設定(0V)
        time.sleep(1)
finally:
    GPIO.cleanup()  # GPIOリソースを解放
# 新しいgpiodライブラリの使用例(Raspberry Pi 5推奨)
import gpiod
import time

with gpiod.Chip("gpiochip4") as chip:
    line = chip.get_line(17)
    line.request(consumer="example", type=gpiod.LINE_REQ_DIR_OUT)
    line.set_value(1)
    time.sleep(1)
    line.set_value(0)

用途・ユースケース

SBCが活躍する主な用途:

  • 教育・学習: プログラミング入門・電子工作・Scratch・Python学習
  • プロトタイプ開発: 製品のコンセプト検証・機能プロトタイプ作成
  • ホームオートメーション: Home Assistant・Node-REDによるスマートホーム構築
  • メディアサーバー: Kodi・Plex・RetroArchなどのメディア再生・ゲームエミュレーター
  • ネットワーク機器: Pi-hole(DNSフィルタリング)・VPNサーバー・ルーター
  • IoTゲートウェイ: センサーデータ収集・クラウド送信・ローカル処理
  • デジタルサイネージ: 店舗・施設の情報表示端末
  • AI推論: TensorFlow LiteONNX RuntimeでのエッジAI

実装・開発のポイント

電源設計

Raspberry Pi 4/5は5V 3A以上(公式は5V 5A推奨)の電源が必要です。電力不足はCPUのサーマルスロットリングや予期せぬリセットの原因になります:

# 電力警告の確認(Raspberry Pi OS)
vcgencmd get_throttled
# 0x0 = 正常、0x50005 = 電圧低下が発生

SDカードの選定と寿命対策

Raspberry Piの弱点はSDカードの書き込み寿命です:

  • Class: UHS-I U3 / A2クラス以上を推奨(ランダム書き込み性能が重要)
  • ブランド: SanDisk Endurance / Samsung PRO Endureなどの耐久モデル
  • ログのRAMDISK化: systemdのジャーナルをtmpfsに配置してSDへの書き込みを減らす
  • overlay filesystem: ルートファイルシステムを読み取り専用にしてSDを保護
# /etc/fstab でtmpfsを設定してログをRAMに置く例
tmpfs /var/log tmpfs defaults,noatime,nosuid,size=32m 0 0
tmpfs /tmp    tmpfs defaults,noatime,nosuid,size=64m 0 0

HAT(Hardware Attached on Top)

Raspberry Pi用の拡張基板をHAT(Hardware Attached on Top)と呼びます。40ピンGPIOヘッダーに差し込み、I2C EEPROMによる自動認識をサポートします。モーターHAT・カメラHAT・センサーHATなど数百種類が市販されています。

他技術との比較

SBC vs マイコン(MCU)

項目SBCMCU
OSLinux / Androidベアメタル / RTOS
プログラミングPython / C++ / Node.js など主にC/C++
起動時間数十秒数ms〜数百ms
リアルタイム性弱い(OS割り込みで揺れる)強い(割り込み応答がus〜ms)
消費電力2〜15W数mW〜数百mW
単価1,000円〜1万円数十円〜数千円

SBC vs SoM

SBCはそれ単体で動作できる完成品、SoMはキャリアボードとセットで使うモジュールです。量産製品にはSoM+カスタムキャリアボードが適し、プロトタイプ・少量生産・教育用途にはSBCが向いています。

関連用語

参考リンク