ホーム/ 組込み・IoT

組込み・IoT

組込み・IoT

マイコン・RTOS・割り込み・シリアルバス・低電力… 組込みとリアルタイムの仕組みを、まず TL;DR でつかみ、そこから原理まで。

解説記事

原理・深掘り

組込みとリアルタイムの仕組みを、まず TL;DR で要点をつかみ、そこから原理まで。

3つの要点応用

BLEと組込み無線

コイン電池で数年動くセンサをBLEで作れるようになる。GAP/GATTの役割分担、アドバタイズと接続、サービスとキャラクタリスティック、低消費電力設計を原理から押さえ、無線スタックとアプリを正しく分離できる。

3つの要点応用

CANバス

1本の車内配線に何十ものECUを共存させ、ノイズの海でも通信が壊れない理由が分かる。差動信号とビットアービトレーションという2つの原理から、CANが40年生き残った堅牢さを腑に落とす。

3つの要点応用

DMA転送

CPUを回さずにデータを運ぶ仕組みが腑に落ちる。DMAコントローラが転送を肩代わりし、CPUは割り込みで完了だけ受け取る——高スループットと低CPU負荷が両立する理由を原理から理解できる。

3つの要点応用

GPIOとピン多重化

1本のピンがなぜ入力にも出力にもUARTにもなるのかが原理から腑に落ちる。入出力モード・プルアップ・オープンドレイン・オルタネート機能・ドライブ強度まで、基板設計とレジスタ設定で刺さる勘所を押さえられる。

3つの要点応用

MCUのクロックツリーとPLL

「なぜ CPU は 168MHz なのにペリフェラルは 42MHz なのか」がクロックツリーで腑に落ちる。発振源・PLL 逓倍・分周・ゲーティングを原理から押さえれば、周波数設定と消費電力・EMI を狙って詰められる。

3つの要点応用

RTOSのIPC(セマフォ・ミューテックス・キュー)

セマフォとミューテックスの違いを即答できる。同期・相互排除・通信を切り分け、優先度継承やキューの動作、ISRでの禁じ手を原理で押さえる。

3つの要点応用

RTOSのスケジューリング(RMS・EDF)

組込みで「なぜ締切に間に合うのか」を数式レベルで保証できる。RMSとEDFの使い分け、応答時間解析、そして優先度逆転を潰す優先度継承まで、スケジューリングの原理を一本で押さえられる。

3つの要点応用

USBデバイスの基礎(組込み)

自作機器をPCに挿すだけで認識させる仕組みが腑に落ちる。列挙・ディスクリプタ・エンドポイント・転送タイプ・デバイスクラスを原理から押さえ、CDC・HID・MSCを正しく選び分けられる。

3つの要点応用

ウォッチドッグタイマ

暴走した組み込み機器が自力で復帰する仕組みが原理から分かる。番犬タイマのキックとリセット、ウィンドウ方式、独立クロックが最後の砦になる理由を理解できる。

3つの要点応用

シリアルバス(I2C・SPI・UART)

基板上のチップ間配線に迷わなくなる。I2C・SPI・UART の信号線・速度・配線数・同期非同期を原理から並べ、どれをいつ選ぶかを判断できるようになる。

3つの要点応用

セキュアブートとTrustZone

改ざんされたファームを起動させず、鍵を攻撃者から守る仕組みが原理からつかめる。不変なRoot of Trustを起点にした信頼の連鎖と、TrustZoneが安全/非安全領域をハードで隔離する理由を、なぜそうなるかから理解できる。

3つの要点応用

センサインタフェース

センサ値が「なぜかふらつく・ずれる」の原因を原理から潰せる。アナログ/デジタル接続の選び方、ADC取り込み、サンプリングとノイズ対策、キャリブレーションまでを一本の筋で押さえられる。

3つの要点応用

センサフュージョンとIMU

IMUの姿勢が「じわじわ傾く・振動で暴れる」を原理から止められる。加速度・ジャイロ・地磁気それぞれの弱点と、相補フィルタ/カルマンフィルタでの補い合い、クォータニオン姿勢とバイアス補正までを一本の筋で押さえられる。

3つの要点応用

タイマ/カウンタ(PWM・キャプチャ・コンペア)

モータ制御やLED調光、周期測定でつまずく前に読む。カウンタとプリスケーラで時間を刻み、コンペアでPWMを吐き、キャプチャでパルス幅を測る——タイマ周辺機能の内部動作を原理から押さえられる。

3つの要点応用

ファームウェアデバッグ(JTAG・SWD)

printfを仕込めない・動かないファームの原因を、実機を止めて中身を覗いて突き止める術がわかる。JTAG/SWDでのブレーク、レジスタ・メモリ参照、ITM/ETMトレースまで、オンチップデバッグの仕組みを原理から押さえる。

3つの要点応用

ブートローダとOTA更新

現場に出た機器のファームを、電源が抜けても文鎮化させずに無線更新する仕組みが分かる。多段ブート・A/Bバンク・署名検証・原子的な切替という4つの原理を、なぜそうするかから理解できる。

3つの要点応用

フラッシュ/EEPROMと摩耗管理

組込みの不揮発メモリを「あと何回書けるか」で語れるようになる。消去・書込み単位の非対称、書換え寿命、ウェアレベリング、EEPROMエミュレーション、電源断でも壊れない書込み順序を原理から押さえ、フラッシュを狙って延命できる。

3つの要点応用

ベアメタルとファームウェア

OSなしで動くファームウェアの起動から実行までを一気通貫で理解できる。リセット直後にCPUが何を見て、どうやってmain()にたどり着き、なぜ無限ループで回り続けるのか——組込みの土台が原理からつかめる。

3つの要点応用

マイコン(MCU)のアーキテクチャ

CPU・フラッシュ・SRAM・ペリフェラルが1チップに載る理由が原理から腑に落ちる。ハーバード型バスとNVIC割り込みの仕組みまで押さえれば、なぜ数百円のチップが確定的に動くのか理解できる。

3つの要点応用

メモリマップドI/O

ペリフェラルを普通のポインタで叩ける理由と、volatile を外すと動かなくなる仕組みが原理から腑に落ちる。レジスタのビット操作と読み書き順序の落とし穴まで、組込みで刺さる勘所を押さえられる。

3つの要点応用

メモリ保護ユニット(MPU)

MMUのないマイコンでも、タスクの暴走やスタックオーバーフローをハードウェアで検出・封じ込められる。MPUの領域設定・特権制御・実行禁止の原理を押さえれば、堅牢な組込みシステムを設計できるようになる。

3つの要点応用

リアルタイム制約とWCET

組込みの「間に合う」を勘ではなく数値で保証できる。ハードとソフトの違い、最悪実行時間の見積り、スケジュール可能性の判定までを原理から押さえ、締切超過のリスクを設計段階で潰せる。

3つの要点応用

割り込みとISR

「なぜか反応が遅い」「たまに変数が壊れる」の正体がわかる。割り込みベクタからISR、優先度とネスト、レイテンシ、前半後半の分離、割り込み禁止までを原理から押さえ、確実に動く割り込み設計の勘所が身につく。

3つの要点応用

組込みLinux と RTOS の使い分け

組込みでLinuxとRTOSのどちらを選ぶか迷いが消える。締め切りを守れるか、割込みに何マイクロ秒で応じられるか、必要なメモリはどれだけか——決定性・フットプリント・開発性の軸で選定基準と併用構成まで原理から掴める。

3つの要点応用

組込みTCP/IPスタック

数十KBのRAMでTCP/IPを動かす勘どころが掴める。lwIPのpbufとゼロコピー、MAC/PHYのDMA連携、割込みとポーリングの選択、UDP・CoAP・MQTTの軽量プロトコル判断まで、制約下の設計を原理から見通せる。

3つの要点応用

組込みのADC/DAC

アナログとデジタルの橋渡しを原理から掌握できる。SAR ADCの動作、分解能とサンプリングレート、基準電圧が精度を決める理由、そしてDACとPWMで擬似アナログを出す仕組みまで一本の筋で押さえられる。

3つの要点応用

低電力設計とスリープモード

電池動作の組込み機器を「何年もつか」で語れるようになる。スリープ階層・電源ドメイン・平均電流の見積り・復帰時間のトレードオフを原理から押さえ、無駄な電流を狙って削れる。

3つの要点応用

例外・フォルト処理(HardFault)

「HardFaultで固まった」の原因を数分で特定できるようになる。Cortex-Mの例外モデルとフォルトステータスレジスタ、スタックフレーム解析、復旧・リセットの定石を原理から押さえ、無限ループのデバッグから脱出できる。