MAX II CPLDを使用したIDE/ATAコントローラ

MAX II CPLD を使用した
IDE/ATA コントローラ
この資料は英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。こちらの日本語版は参考用としてご利用
ください。設計の際には、最新の英語版で内容をご確認ください。
2007 年 12 月 ver. 1.0
はじめに
IDE/ATA
コントローラ
および
インタフェー
ス
Application Note 495
フロッピー・ドライブ、CD-ROM ドライブ、およびハードディスク・ドライブな
どのストレージ・デバイスは IDE/ATA インタフェースを介してコンピュータに
接続されます。このデザイン例では、MAX® II CPLD を使用した IDE/ATA コン
トローラの実装について説明します。ホスト・コンピュータやマイクロプロセッ
サ・システムはこのコントローラを介して、標準 Integrated Drive Electronics
(IDE)デバイスに接続することができます。
コントローラとハード・ドライブに独自技術が使用されている場合、あるメーカ
のコントローラを別メーカのハード・ドライブに接続すると正常に動作しません
でした。IDE はコンピュータにおけるハード・ドライブの使用を標準化するため
に作成されました。IDE はコントローラとハード・ドライブを組み合わせるとい
うコンセプトに基づいて、インタフェース・コストを削減しファームウェアの実
装を容易にします。チップ上のコントローラを使用して、ホスト・コンピュータ
との間でデータの転送が可能になりました。
ATA(Advanced Technology Attachment)コントローラとも呼ばれる IDE コン
トローラは、ホストマイクロプロセッサ・システムと標準 IDE デバイス間の非同
期パラレル・インタフェースです。したがって、IDE コントローラは(すべての)
IDE デバイスをホストに接続する手段を提供するので、ホスト・アダプタと呼ぶ
ことができます。
当初から ATA インタフェースは頻繁にアップグレードされ、新バージョンが導
入されてきました。このデザイン例では ATA-5 インタフェースと互換性のある
IDE コントローラを実装しています。ATA-5 標準は 2 モードの動作 —PIO モード
と DMA モード — をサポートしますが、このデザインは PIO モード(モード 0)
に限定され、1 個のデバイスだけがコントローラ(マスタ)に接続されます。
図 1 に、IDE/ATA インタフェースのブロック図を示します。
Altera Corporation
AN-495-1.0/JP
1
MAX II CPLD を使用した IDE/ATA コントローラ
図 1.
IDE/ATA インタフェースの基本ブロック図
注 (1)
clk
rstn
ddo[15:0]
arst
iderst
ddoe
ideen
da[2:0]
piordyen
piorqst
piotaddr[3:0]
cs0n
CPU
Interface
PIO
Controller
Block
IDE
Interface
cs1n
diorn
diown
piodatain[15:0]
dstrb
piowe
ddi[15:0]
piodataout[15:0]
iordy
pioack
intrrqstsignal
intrq
MAX II CPLD
図 1 の注 :
(1)
IDE/ATA インタフェースは次の 3 ブロックで構成されています。CPU からのコマンドを受信する CPU インタフェース・ブロッ
ク、PIO ステート・マシンを含む PIO コントローラ・ブロック、および IDE デバイスが要求する信号を生成してホスト(コンピュー
タ)とのデータ転送を実行する IDE インタフェース・ブロック。
MAX II CPLD
を使用した
IDE/ATA
コントローラ
IDE インタフェースは PIO モードと DMA モードの 2 つのモードのデータ転送を
サポートします。
このデザイン例はモード0のPIOデータ転送に限定されています。
異なる PIO モードと DMA モードについて詳しくは、以下のサイトで入手可能な
ATA/ATAPI-5 規格を参照してください。
www.t13.org/Documents/UploadedDocuments/project/d1321r3-ATA-ATAPI5.pdf
2
Altera Corporation
2007 年 12 月
MAX II CPLD を使用した IDE/ATA コントローラ
表 1 に、2 ページの図 1 で示される信号の概要について説明します。
表 1.
インタフェース信号の説明 (1 / 2)
サイズ
入力 / 出力
説明
clk
1
入力
プロセッサのクロックと同じです。この例は 100 MHz の
クロック周波数で動作します。
arst
1
入力
コントローラをリセットするための非同期アクティブLow
リセット。
iderst
1
入力
IDEデバイスをリセットするためのアクティブHigh信号。
ideen
1
入力
IDEデバイスをイネーブルするためのアクティブHigh信号。
pioiordyen
1
入力
IDEデバイスからの IORDY 信号をイネーブルするための
アクティブ High 信号。
piorqst
1
入力
PIO のデータ転送サイクルを開始するためのアクティブ
High 信号。
pioaddr[3:0]
4
入力
デバイスのアドレスを選択するための 4 ビット・バスで、
IDE デバイスのチップ・セレクト信号です。
piodatain[15:0]
16
入力
IDE デバイスにデータを送信するための 16 ビット・バス
piowe
1
入力
データ転送の方向を設定するためのアクティブHigh信号。
piowe = 1; 書き込み動作
piowe = 0; 読み出し動作
intrrqstsignal
1
出力
CPU に割り込むための信号
pioack
1
出力
PIOのリード/ライト・サイクルの終わりを示すための信号。
piodataout [15:0]
16
出力
IDE デバイスからのデータ読み出しを保持するための 16
ビット・バス。
rstn
1
出力
IDEデバイスをリセットするためのアクティブLow信号。
ddo [15:0]
16
出力
CPU が送信したデータをデバイスに転送する 16 ビット・
データ・バス。下位 8 ビットは 8 ビット・データ転送に
使用されます。
da [2:0]
3
出力
3 ビット・アクティブ High 信号。デバイスのレジスタま
たはデータ・ポートにアクセスするためにホストによっ
てアサートされる 2 進コード化アドレスです。
信号
Altera Corporation
2007 年 12 月
3
MAX II CPLD を使用した IDE/ATA コントローラ
表 1.
インタフェース信号の説明 (2 / 2)
サイズ
入力 / 出力
説明
それぞれ
1 ビット
出力
コマンド・ブロックまたはコントロール・ブロック・レ
ジスタを選択するために使用されるホストからのアクティ
ブ Low チップ・セレクト信号。
CS0=0; コントロール・レジスタを選択
CS1= 0; コマンド・レジスタを選択
CS0、CS1= 0/1; DIOR-/DIOW- の遷移を無視してデータ・
バスを解放します。
diorn
1
出力
デバイス・レジスタまたはデータ・ポートを読み出すた
めにホストによってアサートされるアクティブ Low スト
ローブ信号。
diown
1
出力
デバイス・レジスタまたはデータ・ポートに書き込むた
めにホストによってアサートされるアクティブ Low スト
ローブ信号。
dstrb
1
出力
デバイスからの data-in strobe 信号。dstrb の立ち
上がりエッジでデバイスからのデータがホストにラッチ
されます。
ddi [15:0]
16
入力
IDE デバイスから読み出されたデータを含む 16 ビット・
データ・バス。
iordy
1
入力
デバイスがデータ転送要求に応答する準備ができていな
いときに、この信号をネゲートして任意のホスト・レジ
スタ・アクセス ( 読み出しまたは書き込み ) のホスト転
送サイクルを延長します。モード 0 ではオプションです
が、より高度なモードに必要です。
intrq
1
入力
ホストにイベントを通知するために選択されたデバイス
によって使用されます。このイベントが発生するとデバ
イスの内部割り込み保留状態が設定されます。
ddoe
1
出力
IDE デバイスからデータを読み出すのに使用されます。
この信号が Low になった後に、 ddi バス上のデータが
データ・ライン piodataout 上に出力されます。
信号
cs0n, cs1n
4
Altera Corporation
2007 年 12 月
MAX II CPLD を使用した IDE/ATA コントローラ
CPU インタフェース・ブロック
CPU インタフェース・ブロックはホスト CPU からの信号を受信して、CPLD の
内部レジスタに格納します。これらの内部レジスタの情報に応じて、PIO コント
ローラは PIO のリードおよびライト動作のさまざまなステートを通過します。
PIO コントローラ・ブロック
PIO コントローラ・ブロックには PIO ステート・マシンがあります。ホストが
リードまたはライト要求を送信するたびに、ステート・マシンは適切なリードま
たはライト・ステートになってデータを転送します。このブロックのpiomodecontroller
と呼ばれるモジュールによってステートが決まり、それに従ってステート・マシ
ンの動作が進行します。runoncecounter と呼ばれる別のモジュールがカウント値
をロードして、リードまたはライト・タイミング要件に従って必要な遅延を生成
します。piomodet1、piomodet2、piomodet4、および piomodeteoc と呼ば
れるパラメータによってカウンタ値がロードされます。このデザイン例でロード
されるデフォルト値は、100 MHz の周波数で動作するプロセッサ用のものです。
これらのパラメータ値は、異なる周波数で動作するプロセッサ用に変更すること
ができます。updowncounter と呼ばれる 3 番目のモジュールが、各クロック・パ
ルスでロードされるカウント値をデクリメントして必要な遅延を生成します。
PIO の読み出しおよび書き込みの波形とタイミング仕様について詳しくは、以下
のサイトで入手可能な ATA/ATAPI-5 規格を参照してください。
www.t13.org/Documents/UploadedDocuments/project/d1321r3-ATA-ATAPI5.pdf
IDE インタフェース・ブロック
この IDE インタフェース・ブロックは IDE デバイスのアドレス指定された内部レ
ジスタにデータがロードされるか、またはそのレジスタからデータがロードされ
るように適切なインタフェース信号を生成します。選択される内部レジスタは、
da[2:0]、cs0n、および cs1n ラインの値によって異なります。読み出しまたは
書き込み動作はそれぞれ、diorn および diown ラインにより指示されます。
IDE デバイスの各種内部レジスタとそれらの選択方法について詳しくは、以下の
サイトで入手可能な ATA/ATAPI-5 規格を参照してください。
www.t13.org/Documents/UploadedDocuments/project/d1321r3-ATA-ATAPI5.pdf
Altera Corporation
2007 年 12 月
5
MAX II CPLD を使用した IDE/ATA コントローラ
実装
このデザイン例は、EPM570 デバイスなどの MAX II デバイス、または必要な汎
用 I/O(GPIO) ピン数と LE 数を備えたその他の MAXII CPLD を使用して実装す
ることができます。
ソース・
コード
このデザイン例は Verilog を使用して作成しており、MDN-B2 デモ・ボードを使
用したデモとなっています。ソース・コード、テストベンチ、および完成した
Quartus II プロジェクトは、以下から入手可能です。
www.altera.co.jp/literature/an/an495.zip
まとめ
6
このデザイン例が示すとおり、MAXII CPLD は IDE/ATA コントローラの実装時
に効率的に利用できます。標準化された ATA インタフェースにより、MAX II
CPLD を利用して任意のストレージ・デバイスをホスト・マイクロコントローラ
またはプロセッサ・システムにインタフェースすることができます。MAX II CPLD
は高集積度の I/O 数、低コスト、容易なパワーオン・シーケンス、および多電圧
機能を備え、IDE/ATA コントローラの実装に最適なデバイスとなっています。
Altera Corporation
2007 年 12 月
関連情報
■ MAX II CPLD ホームページ :
www.altera.co.jp/products/devices/cpld/max2/mx2-index.jsp
関連情報
■ MAX II デバイスの資料ページ :
www.altera.co.jp/literature/lit-max2.jsp
■ MAX II パワーダウン・デザイン :
www.altera.co.jp/support/examples/max/exm-power-down.html
■
MAX II アプリケーション・ノート :
●
●
表 2 に、このアプリケーション・ノートの改訂履歴を示します。
改訂履歴
表 2.
「AN 422: MAX II CPLD を使用したポータブル・システムにおける消費
電力の管理」
「AN 428: MAX II CPLD のデザイン・ガイドライン」
改訂履歴
日付 & ドキュメント・
バージョン
2007 年 12 月 v1.0
101 Innovation Drive
San Jose, CA 95134
www.altera.com
Literature Services:
[email protected]
Altera Corporation
変更内容
初版
概要
—
Copyright © 2007 Altera Corporation. All rights reserved. Altera, The Programmable Solutions Company, the stylized
Altera logo, specific device designations, and all other words and logos that are identified as trademarks and/or service
marks are, unless noted otherwise, the trademarks and service marks of Altera Corporation in the U.S. and other
countries. All other product or service names are the property of their respective holders. Altera products are protected
under numerous U.S. and foreign patents and pending applications, maskwork rights, and copyrights. Altera warrants
performance of its semiconductor products to current specifications in accordance with Altera's standard warranty, but
reserves the right to make changes to any products and services at any time without notice. Altera assumes no
responsibility or liability arising out of the application or use of any information, product, or service described herein
except as expressly agreed to in writing by Altera Corporation. Altera customers are advised to
obtain the latest version of device specifications before relying on any published information and
before placing orders for products or services.
7