SDIO
SDIO(Secure Digital Input Output)は、SDメモリカードと同一の物理層・電気仕様を用いながら、メモリではなくI/O機能(無線LANやBluetooth、センサ、モデム等)をホストに提供する拡張規格である。SDホストコントローラを流用でき、1-bit/4-bit幅と最大50 MHzのクロック(High-Speed)により、組込み機器で汎用性とコスト効率を両立する。SPI互換モードも備え、マイコンからSoCまで幅広い採用実績がある。
定義と位置づけ
SDIOはSD Associationが策定したI/Oカード規格で、メモリ機能を持たない点がSDメモリと異なる。カードは「関数(Function)」という概念で機能を提供し、共通機能0(Fn0)に加えて最大7つ(Fn1〜Fn7)のI/O機能を搭載可能である。ホストは標準化されたレジスタ空間とコマンド群を用いて各関数を列挙・有効化し、データ転送と割込み制御を行う。
物理層と電気的仕様
信号はCLK、CMD、DAT0〜DAT3(4-bit時)を使用し、基本電圧は3.3 Vである。High-Speed時のクロックは50 MHzまで、標準は25 MHzで動作する。ラインはプルアップ抵抗によるバス占有制御が必要で、トレース長やインピーダンス整合、立上り時間管理が信号品質を左右する。高速動作時はグランド参照の配線、スタブ短縮、適切な終端やレベルシフタ選定が望ましい。
プロトコルとコマンド
制御系はCMD52(IO_RW_DIRECT)とCMD53(IO_RW_EXTENDED)が中核である。CMD52は1バイト単位でレジスタへ即時アクセスし、CMD53はブロックまたはバイトマルチでデータ転送する。カード共通制御レジスタ(CCCR)、関数基本レジスタ(FBR)、カード情報構造(CIS)により機能特性と能力を記述する。データ路はCRC保護され、4-bit幅×50 MHz時の理論値は200 Mb/sだが、コマンド・転送単位・待ち時間のオーバヘッドで実効は低下する。
初期化と機能発見
ホストは電源投入後、カードをリセットしてI/O準備状態を確認する。ついでCCCRを読み、FBRから各関数の存在とベースアドレスを把握し、CISのタプルを走査してベンダ固有特性やブロックサイズを確定する。必要な関数を有効化(Enable)し、割込みやDMAを設定してデータパスを開く。この列挙手順により、汎用ドライバで異機種のSDIOモジュールを扱える。
割込みとデータ転送
SDIOではDAT1ラインを用いたカード割込み通知が可能で、ホストは割込み許可後にサービスルーチンでステータスレジスタを参照する。ポーリングに比べ遅延と電力を抑制できる。大容量データはCMD53のブロック転送とホスト側DMAを組み合わせ、ブロックサイズは関数ごとに最適化する。低遅延要求(例:無線スタックの制御経路)は小ブロック・高頻度、スループット重視は大ブロック・低頻度が有利である。
性能と最適化
実効スループットは、バス幅/クロック、ブロック長、割込み頻度、カード内部待ち時間で決まる。例として4-bit・50 MHz・ブロック512 Bでの理論上限は200 Mb/sだが、制御オーバヘッドとプロトコル待ちにより100 Mb/s級の到達は困難で、数十Mb/s台が現実的である。最適化は(1)ブロック長の整合、(2)多重バッファとDMA、(3)割込み合算、(4)ホスト/カード双方の待ち削減が要点となる。
用途と実装上の注意
代表的な用途は無線LAN、Bluetooth、GNSS、バーコード/センサI/Oなどである。実装では電源シーケンスとリセット、ESD対策、RF共存(無線モジュール併用時のレイアウト分離)、クロック近傍のループ最小化、コーナケース(カード抜去、復帰、バスエラー)への耐性が重要となる。量産ではEMI評価、温度ドリフト、コネクタ耐久や接触抵抗の管理も不可欠である。
SDメモリ/他インタフェースとの比較
-
SDメモリ:物理層は共通だが、メモリはブロックストレージ、SDIOはI/O機能提供という目的が異なる。
-
SPI:配線とIPは簡素だが帯域は限定される。既存SPIホストで簡易接続する用途に適す。
-
I2C:低速・少配線で制御向け。高スループット用途ではSDIOが有利。
-
USB:汎用性・帯域は高いがPHY/スタックが重い。SoC資源や消費電力とのトレードオフで選択する。
規格のバージョンと互換性
SDIOは2.0以降でHigh-Speed(50 MHz)を定義し、旧来カードとも後方互換を保つ。UHS系は主にメモリ向けで、SDIO製品では未対応や制限付き実装が多い。ホスト側は必ず対応速度・幅(1-bit/4-bit)・電圧を確認し、必要に応じてSPIモードへのフォールバックを準備する。
検証・信頼性・量産試験
-
機能:列挙、Enable/Disable、割込み、エラー回復(Timeout/CRC)
-
性能:ブロック長掃引、往復遅延、スループット、CPU負荷、消費電力
-
環境:温度/電圧/周波数マージン、ESD、EFT/Surge、振動と接触抵抗
-
互換:異ベンダカード/ホストでの相互接続、SPIモード動作確認
コメント(β版)