SD/SDIOホストコントローラ3.0の設計と実装
長年にわたり、SDカードはデータ・ストレージの業界におけるデファクト・スタンダードであった。SDカードはフラッシュベースのメモリーカードで、大容量、コンパクトなパッケージ、セキュリティでよく知られています。SDカードは、デジタルカメラ、スマートフォン、タブレット、その他のポータブル機器など、何千もの製品に使用されています。
SD/SDIOホストコントローラIPコアは、組み込みシステムがFPGAのI/Oピンを介してSDカードまたはSDIOデバイスにアクセスすることを可能にし、システムの他の部分との統合を容易にします。プロセッサとSDカード間の仲介役として機能し、SDドライバとSDカード間のコマンドおよびデータ通信を可能にします。
iWaveSD/SDIOホストコントローラIPは、SDホストコントローラ仕様バージョン3.0および物理層仕様バージョン3.0に完全に準拠しています。これにより、ホストはSDメモリカードまたはSDIOデバイスにアクセスできます。このIPは、すべてのSD/SDIOコマンドをネイティブにサポートし、SD、MicroSD、SDHC、SDXC、およびSDIOカードをサポートします。
SD/SDIO Host Controller 3.0 IPのブロック図は以下の通りである:
- SDカードにコマンドを送信し、SDカードからの応答を受信するために必要なロジックを実装するコマンド・パス・ロジック。
- データ・パス・ロジックは、ホストとSDカード間のデータの書き込みと読み出しのプロセスを管理します。バッファ・ブロックは、各読み取り/書き込み方向で最大2KBのFIFOを扱うことができる。
- 標準の SDホスト・レジスタ・セットには、SD ホスト・コントローラのすべてのコンフィギュレーションとステータス情報が格納されます。レスポンス・レジスタ、コマンド生成レジスタ、バッファ・ポート、コンフィギュレーション、割り込みコントロール・レジスタなど、SDホスト仕様に従っていくつかのレジスタが実装されています。
- ADMAモジュールは、書き込みおよび読み出し動作中、ホスト・メモリとのデータ転送を管理する。
- チューニング・ブロックは、FPGA デバイス固有の IO プリミティブを使用して、SD 仕様に従ってチューニング・ロジックを実装します。
SDホスト・コントローラーIPは、デフォルト・スピード、最大104Mbpsの高速動作、1ビットおよび4ビットのSDトランザクションをサポートします。内蔵の2KBデータ・バッファは、低割り込みレイテンシでホスト・プロセッサとの効率的な通信を可能にします。
SD/SDIOホストコントローラの主な特徴は以下の通りです。
- SDR12、SDR25、DDR50、SDR50、SDR104モードを含むデフォルトスピードとハイスピードをサポート
- ADMA2(スキャッターギャザー)エンジンを搭載
- プログラム可能な1ビット、4ビットバス幅
- シングルブロックとマルチブロックの両方のデータ転送に対応
- ホスト・プロセッサ向け32ビットAXI4メモリ・マップド・インターフェースをサポート
- SDホストコントローラ向け32ビットAXI4 liteインターフェースをサポート
- コマンドとデータの巡回冗長検査(CRC)
- レスポンス、データ、CRCトークン、ビジー状態のタイムアウト監視をサポート。
- 以下のUHS -I 動作モードをサポートし、市場で入手可能なあらゆるカードとの互換性を保証します。
- SDR12 - 最大25MHz 1.8V信号のSDR
- SDR25 - 最大50MHz 1.8V信号のSDR
- SDR50 - 最大100MHz 1.8V信号のSDR
- SDR104 - 最大208MHz 1.8V信号のSDR
メリット
- IPアーキテクチャはパワーマネージメント技術を活用しており、低消費電力アプリケーションに最適です。
- 高度にコンフィギュラブルなIPにより、迅速なシステム統合を実現し、設計リスクとコストを低減
- 低レイテンシーと高帯域幅による最高のシステムパフォーマンス
- 幅広い規格をサポートすることで、組み込みや拡張ストレージのシステム柔軟性を実現
- IPは、前世代および次世代のSD規格との互換性を保証します。
SDホスト・コントローラIPはVerilog HDLで開発され、Xilinx、Intel、Lattice、Microchipなどの複数のFPGAプラットフォームで検証されています。詳細については、リソース使用に関する資料をご覧ください。
SDホストコントローラIPには、次の2つのタイプがあります。
- 非SoC FPGAデバイス用簡易ベアメタルドライバ
- FPGAベンダーは、AXI4-liteインターフェイスを使用してレジスタをコンフィギュレーションするために、ソフトコア上のベアメタルSDドライバをサポートしている。
- ベアメタルSDドライバは、SDカードの初期化と、IP機能の証明に必要な基本的な書き込み/読み取り操作をサポートします。
- SoCデバイス用Linuxドライバ
- SOCデバイスがサポートするArmコア上で動作するLinux SDドライバは、AXI4-liteインターフェイスを使用してレジスタを構成し、AXI4-MMインターフェイスはDMAモードでのデータ転送に使用されます。
- 標準Linuxドライバでサポートされているマウント、パトリフィケーション、その他全ての操作が可能。
iWaveは、RTLコードまたはネットリスト、合成スクリプト、テスト環境、および包括的なドキュメントで構成されるSD/SDIOホストコントローラIPの完全なIPソリューションを提供しており、そのすべてがワールドクラスの顧客サポートによって裏付けられています。
詳細はmktg@iwavesystems.com。
続きを読む