概要
SoM(System on Module:システムオンモジュール)は、SoC(メインプロセッサ)・DDRメモリ・eMMCフラッシュ・電源管理IC(PMIC)・クリスタル発振器・Wi-Fi/Bluetoothモジュールなどを小さなサブ基板にまとめたモジュール製品です。「コンピュータオンモジュール(CoM)」と呼ばれることもあります。
SoMは特定の規格コネクタやスタッカブルコネクタで「キャリアボード」と呼ばれる拡張基板に接続して使います。キャリアボードはUSB・イーサネット・HDMI・CANバスなどのアプリケーション固有のインターフェースを実装します。
この構成の利点は開発速度の向上と量産品質の保証にあります。SoCまわりの複雑なDDR配線やPMIC設計をモジュールメーカーが担当するため、製品開発者はキャリアボードとアプリケーションソフトウェアに集中できます。また、SoMはFCC・CE認証を取得した状態で販売されることが多く、製品の無線認証取得コストも削減できます。
歴史・背景
SoMという概念が普及したのは2000年代後半です。組み込みLinuxの台頭とともに、SoC周辺の高速DDRメモリ配線やPMIC設計が製品開発の難所となり、その部分を専門メーカーに委ねる需要が生まれました。
初期のSoMはメーカー独自の形状・コネクタが多く、ソースの変更が困難でした。この課題に対応すべく業界標準規格が策定されます。
主要な規格:
- SMARC(Smart Mobility ARChitecture): 2012年に策定。314ピンMXM3.0コネクタを採用。産業・医療向けに普及
- Qseven: 2008年に登場。230ピンの小型モジュール。タブレット・ハンドヘルド向け
- COM Express: 2005年策定。より大型で産業PC向け。Type 6が主流
- SODIMM(独自): RaspberryPi Compute Moduleが採用する独自DDR3 SODIMMコネクタ形状
代表的なSoMメーカーとしてToradex(スイス)・Phytec(ドイツ)・Congatec(ドイツ)・Variscite(イスラエル)・Emcraft・iWave・アットマークテクノ(日本)などがあります。
技術仕様
代表的なSoM製品の仕様
| 製品 | SoC | RAM | ストレージ | 規格 |
|---|---|---|---|---|
| Toradex Verdin iMX8M Plus | NXP i.MX8M Plus | 2〜8GB LPDDR4 | 16〜64GB eMMC | Verdin |
| Variscite DART-MX8M | NXP i.MX8M | 1〜4GB LPDDR4 | 8〜64GB eMMC | 独自 |
| Raspberry Pi CM4 | BCM2711 | 1〜8GB LPDDR4 | 0〜32GB eMMC | SODIMM |
| Phytec phyCORE-AM64x | TI AM64x | 1〜4GB DDR4 | 8〜64GB eMMC | 独自 |
| SMARC 2.1 NXP i.MX8M | NXP i.MX8M Mini | 1〜4GB LPDDR4 | 8〜32GB eMMC | SMARC 2.1 |
コネクタ仕様
SMARCを例に取ると:
コネクタ: MXM3.0(314ピン)
ピン機能:
- PCIe ×1 / ×4
- USB3.0 / USB2.0
- MIPI CSI-2(カメラ)
- MIPI DSI(ディスプレイ)
- HDMI / LVDS
- GbE(RGMII)
- I2C × 2
- SPI × 1
- UART × 3
- CAN × 1
- GPIO × 8
- SDIO
- 電源(5V入力)
温度グレード
産業用SoMは以下の温度グレードで提供されます:
| グレード | 動作温度範囲 |
|---|---|
| コマーシャル | 0〜70°C |
| 産業グレード | -40〜85°C |
| 車載グレード | -40〜125°C(AEC-Q100) |
動作原理
SoMのソフトウェアスタックはSoCメーカー提供のBSP(Board Support Package)をベースにモジュールメーカーがカスタマイズしたものです:
[ユーザーアプリケーション]
↓
[OS: Embedded Linux / Android]
↓
[カーネル + デバイスドライバー]
↓
[デバイスツリー(SoM + キャリアボード合成)]
↓
[U-Boot ブートローダー]
↓
[eMMC: OSイメージ格納]
デバイスツリーはSoMの内部構成(DDR設定・PMICピン等)とキャリアボードの固有設定(GPIOマッピング・ペリフェラル有効化)を分離して記述できるため、同一SoMを異なるキャリアボードに流用しやすい設計になっています。
/* キャリアボード固有のデバイスツリーオーバーレイ例 */
/dts-v1/;
/plugin/;
&uart2 {
status = "okay"; /* キャリアボードでUART2を有効化 */
};
&i2c3 {
status = "okay";
/* キャリアボード上のセンサーを登録 */
temp_sensor: lm75@48 {
compatible = "national,lm75";
reg = <0x48>;
};
};
用途・ユースケース
SoMが特に効果を発揮するシーン:
- 産業用HMI・パネルPC: タッチパネルと組み合わせた機械操作インターフェース
- 医療機器: 患者モニター・診断装置。医療グレードの信頼性とFCC/CE認証済みモジュール
- POS端末・キオスク: 長期製品保証が必要な小売・流通向け端末
- スマート農業: フィールドゲートウェイとして屋外防水筐体に組み込む
- ロボット制御: ROS2とLinuxで動作するロボット本体制御基板
- 車載テレマティクス: GPS・LTE・CAN統合の車載ユニット
実装・開発のポイント
キャリアボード設計のコツ
SoMを使ったキャリアボード設計のポイント:
- 電源設計: SoMが必要とする電圧・電流をPMICまたはレギュレータで供給。5V単一入力のSoMが多い
- コネクタ配置: SoMコネクタ周辺のパターン設計。SMARCはMXM3.0のランドパターンに従う
- 未使用ピン処理: 未使用のUSB・PCIeは適切にターミネート
- RFアンテナ: Wi-Fi/BT用のU.FLコネクタまたはPCBアンテナの配置と離隔距離
- デバイスツリーオーバーレイ: SoMの標準DTSにキャリアボード固有の設定を追加
OTA(Over The Air)更新の考慮
SoMを採用した量産製品では、フィールドでのファームウェア更新が必要です:
# Mender OTAクライアントの設定例
# /etc/mender/mender.conf
{
"ServerURL": "https://hosted.mender.io",
"TenantToken": "your-tenant-token",
"UpdatePollIntervalSeconds": 1800
}
サプライチェーン管理
SoMのライフサイクルは製品の量産期間(5〜10年)を超えることがあります。モジュールメーカーの長期サポートポリシー(多くは10年以上)を確認し、代替モジュールへの移行計画も立案しておくことが重要です。
他技術との比較
SoM vs SBC
| 項目 | SoM | SBC |
|---|---|---|
| 形状 | コネクタでキャリアボードに接続 | 単体で完結した基板 |
| 設計自由度 | 高い(キャリアボードを自由設計) | 低い(固定I/O構成) |
| 量産適性 | 高い(認証済み・長期供給) | 低め(コンシューマ向けが多い) |
| 開発速度 | 中(キャリアボード設計が必要) | 速い(すぐ使える) |
| コスト(少量) | 高い | 安い |
| コスト(大量) | 低い(キャリアボードのシンプル化) | 中(余剰機能分を払う) |
SBC(シングルボードコンピュータ)はプロトタイプや少量生産向け、SoMは量産製品向けというのが基本的な使い分けです。ただしRaspberry Pi Compute Module 4(CM4)はSoBとSoMの中間的な存在として、中規模量産でも活用されています。