05092024

Last update2016/05/28 14:38

Back 現在地: Home パートナー segger-tools ドライバ

ドライバ


ドライバ

EMFILEは、ハードウェアのどのような種類に協力するように設計されています。EMFILEと特定のハードウェアを使用するには、そのハードウェア用の、いわゆるデバイスドライバが必要です。デバイスドライバは、ハードウェアと、これらの関数へのポインタを保持するグローバルテーブルにアクセスするための基本的なI / Oの関数で構成されています。
ドライバーはEMFILEで利用可能なショー、以下のリストは。

  • コンパクトフラッシュカード&IDEドライバ
  • マルチメディア&SDカードドライバ
  • NAND型フラッシュドライバ
  • NORフラッシュドライバ
  • RAMディスクドライバ
  • WinDriveドライバ

 
 
 
 
 
 
 
 
 
 
 
 
 

コンパクトフラッシュカードやIDEドライバ

サポートされるハードウェア

EMFILEのコンパクトフラッシュ&IDEのデバイスドライバは、真のIDEまたはメモリカードモードを使用してCFとして知られているほとんどのATA HDドライブやコンパクトフラッシュストレージカードにアクセスするために使用することができます。

オペレーションの理論

コンパクトフラッシュ

コンパクトフラッシュは小さく、リムーバブル大容量ストレージデバイスです。コンパクトフラッシュストレージカードは、50ミル(1.27 mm)のセンターで25メスコンタクトずつ2行で構成される50ピンコネクタ付きのマッチ箱サイズのパッケージのシングルチップのコントローラとフラッシュメモリモジュール(複数可)が含まれています。コントローラのデータが書き込まれ、フラッシュメモリモジュール(s)から読み取ることができるように、ホストシステムとのインターフェイス。

すなわち二つの異なるコンパクトフラッシュタイプ、CFタイプIとCFタイプIIがあります。CFタイプIとCF Type IIカードの唯一の違いは、カードの厚みです。CFタイプIは、3.3 mm厚とCF Type IIのカードは厚さ5mmですです。CFタイプIのカードはCFタイプIまたはCF Type IIスロットで動作します。CF Type IIカードは、CF Type IIスロットに収まります。電気的インタフェースは同じです。コンパクトフラッシュは、CFタイプIカードで主にも、CFタイプIとCF Type IIのカードの両方で使用可能です。マイクロドライブはCF Type IIカードです。ほとんどのCF I / OカードはCFタイプIですが、いくつかのCFタイプII I / Oカードがあります。

コンパクトフラッシュカードはフラッシュ技術、バッテリーは無期限にデータを保持するために必要としない不揮発性ストレージソリューションを使用して設計されています。コンパクトフラッシュカード仕様バージョン2.0は16MB/secと、最大137ギガバイトの容量のデータレートをサポートしています。CFカードは、小さなディスクドライブに必要な電力のわずか5%を消費する。

コンパクトフラッシュカードは、3.3Vと5Vの両方の動作をサポートし、3.3Vと5Vシステム間で互換性があります。これは、任意のCFカードのいずれかの電圧で動作できることを意味します。他のスモールフォームファクタのフラッシュカードは、3.3Vまたは5Vで動作するように利用できるかもしれないが、任意の単一のカードには、電圧の一方のみで動作することができます。CF +データストレージカードは、磁気ディスク(IBMマイクロドライブ)を使用しても利用可能です。

動作モード(インタフェースモード)
コンパクトフラッシュカードは、3つのモードで動作することができます。

  • メモリカードモード
  • I / Oカードモード
  • True IDEモード

操作のサポートされているモード(インタフェースモード)
現在、TRUE IDEとメモリカードモードがサポートされています。

IDE(ATA)ドライブ

ちょうどコンパクトフラッシュカードのように、ATAドライブは、ドライブの機械的なハードウェアを駆動し、制御するための組み込みのコントローラを持っている。実際にATAドライブを接続する2つのタイプがあります。5.25と3.5インチドライブは、IDEコントローラに接続するための40ピンオスインターフェイスを使用しています。主にノートブックおよび組み込みシステムで使用されている2.5および1.8インチドライブは、50ピンオスインターフェイスを持っている。

動作モード(インタフェースモード)
ATAドライブが異なる様々なモードで動作することができます。

  • PIO(I / Oプログラム)
  • マルチワードDMA
  • ウルトラDMA

操作のサポートされているモード(インタフェースモード)
現在、TRUE IDEを介してのみPIOモードがサポートされています。

ATAドライブ:ハードウェアのインターフェース

フェイルセーフ動作

予期しないリセット
データが保持されます。

停電
電 源の障害が重要になることがあります:カードが書き込み操作を完了するための十分な時間を持っていない場合、データが失われる可能性があります。対策:カードの電源供給が徐々に低下していることを確認。

平準化を着用する

コンパクトフラッシュカードは内部のコントローラによって制御される、このコントローラはまた、ウェアレベリングを処理します。したがって、ドライバは、ウェアレベリングを

処理する必要はありません。

 

 


マルチメディア&SDカードドライバ

EMFILEは、マルチメディア(MM)、セキュアデジタル(SD)およびセキュアデジタルHighCapacity(SDHC)カードの使用をサポートしています。マルチメディア&セキュアデジタル(SD)カードの2つのオプションの一般的なドライバが用意されています。マルチメディア&セキュアデジタル(SD)カードは2つの異なるモードもアクセスできます。

  • SPIモード
  • MMC / SDカードモード。

両方のモードでドライバが用意されています。これらのドライバのいずれかを使用するには、MMCドライバを構成してカードリーダーのハードウェアにアクセスするための基本的なI / O機能を提供する必要があります。このセクションでは、どちらかのマルチメディア&SDカードのSPIモードまたはマルチメディア&SDカードのモードのドライバのためにこれらのドライバとEMFILEのが必要とするすべてのハードウェアアクセスの関数のいずれかを有効にする方法について説明します。

サポートされるハードウェア

マルチメディアカード(MMC)、セキュアデジタルカード(SDカード)やセキュアデジタルHighCapacityは(SDHC)小さいサイズの因数分解した大容量ストレージデバイスです。

これらのデバイスの主要な設計目標は単純な制御部を持つカードとして実装されている、非常に低コストで大容量のストレージ製品、、、コンパクト、簡単に実装できるインターフェイスを提供することです。これらの要件は最小限に各カードの機能の低下につながる
柔軟な設計を持つためには、MMCとSDカードは、異なるI / Oモードで使用できるように設計されています:

 

  • MMC / SDカードのモード
  • SPIモード
  • ポート端子を使用して、SPIモードをエミュレート。
MMC / SDカードのモード
SPIモード
ポート端子を使用して、SPIモードをエミュレート。

MMCとSDカードの違いは、SDカードがより高いクロック周波数で動作できることです。クロックの範囲は0の間にすることができます- 25MHzの、MMCには20MHzまでしか動作できるのに対し。さらに、これらのカードの初期化が異なります。彼らは、異なる初期化する必要がありますが、初期化後、彼らは同じように動作します。
MMCとSDカードも、ピンの数が異なる。SDカードはMMCはより多くのピンがあります。彼らはピンが使用されているか使用されているモードに応じて。さらにSDカードは、カード上のデータをロックするために使用できる、書き込み禁止スイッチを、持っている。

MMC / SDカードモードでは
マルチメディアカードマルチメディアカードモード(コマンド、クロック、データおよび3倍のパワーライン)の7ピンのインタフェースを使用してください。マルチメディアカードはSDカードとは対照的に9ピンのインターフェースを(コマンド、クロック、1または4のデータと3電源線)を使用します。

SPIモードでは
両方のカードシステムは、同じピンのインタフェースを使用してください。(ChipSelect(CS)、DATAIN、DATAOUT、時計と3電源ライン)。

カードモードでのMMC / SDカードのピン説明

ピン番号の名前タイプ説明
1 CD/DAT3 入力/出力プッシュプルドライバを使用して このラインアップ電源は、50キロオームのプルアップ付き入力した後。これは、カードの検出に使用することができます。唯一のSDカードに関連する、プルアップ抵抗は、データ転送のためのDATA3ラインとしてこのラインを使用するための初期化手順の後に無効になっています。
2 CMD プッシュプル これは双方向ラインです。それはカードの初期化とデータ転送コマンドで使用される双方向のコマンドのチャネルです。初期化モードのためにオープンドレインと高速コマンド転送のためにプッシュプル:CMD信号は2つの動作モードを持っています。コマンドは、ホストには、カードからカードと応答するためにマルチメディアカードのバスマスタ(カードのホストコントローラ)から送信されます。
3 VSS 電源 電圧のグラウンドを供給する。
4 VDD 電源 電圧を供給する。
5 CLK 入力 この信号の各サイクルでコマンドおよびデータライン上の1ビットの転送が行われます。周波数がゼロと最大クロック周波数との間で異なる場合があります。
6 VSS2 電源 電圧のグラウンドを供給する。
7 DAT [0] 入力/出力を使用してプッシュプルドライバ DATは、双方向データチャンネルです。DAT信号はプッシュプルモードで動作します。唯一のカードまたはホストが同時にこの信号を推進しています。唯一のSDカードに関連する:データ転送では、この行は、DATA 0です。
8 DAT [1] 入力/出力プッシュプルドライバを使用して MMCカードにこの行が存在しません。唯一のSDカードに関連する:データ転送では、この行は、DATA 1です。
9 DATは、[2] 入力/出力プッシュプルドライバを使用して MMCカードにこの行が存在しません。唯一のSDカードに関連する:データ転送では、この行はDATA 2です。

SPIモードのMMC / SDカードのピン説明

ピン番号の名前タイプ説明
1 CS 入力 チップセレクトは、ハイレベルで低レベルと非アクティブで、アクティブなカードを設定します。
2 データ 入力 内のデータはカードから見られている、そのためカードに送信されるデータは、この線から受信されます。
3 VSS 電源のグランド 電圧のグラウンドを供給する。
4 VDD 電源電圧 電圧を供給する。
5 SCLK 入力 クロック信号は、ターゲットシステムによって生成されている必要があります。
カードがスレーブモードでは常にある。
6 VSS2 電源のグランド 電圧のグラウンドを供給する。
7 データ出力 出力 データの出力は、カードから見られている。ホストに転送されたデータは、このラインからカードが送られます。
8 予約 使用されていません -
9 予約 使用されていません -

追加情報

  • データ転送幅は8ビットです。
  • データは立ち下がりエッジで出力されるはずですし、次の期間まで有効である必要があります。立ち上がりエッジでデータが(つまり、読み込み)サンプリングされていることを意味します。
  • ビットの順序は、最上位ビット(MSB)が最初に送出する必要があります。
  • データの極性は、論理"1"を意味する、正常である低レベルで表現されているが、データ線と、論理"0"での高いレベルで表現されます。
  • マルチメディア&SDカードは、異なる電圧範囲をサポートしています。初期電圧は3.3Vにして下さい。

マルチメディアカードおよび/またはSDカードを使用してデザインを作成するときに電力制御を考慮する必要があります。カードのソフトウェアの電源制御を持っている能力は、より柔軟で堅牢な設計を行います。ホストは、カードが挿入または削除されているかどうかの独立したオンまたはオフカードへの電源をオンにすることができるようになります。これは、接点バウンスがカード挿入時にあるときにカードの初期化に役立ちます。ホストは、カードがカードの電源を入れると、初期化プロセスを開始する前に挿入された後、指定された時間だけ待機します。カードが不明な状態になった場合も、ホストはサイクルが電力と再初期化プロセスを開始することができます。カードのアクセスが不要な場合、パワーダウンバスにホストを可能にすることは、全体の消費電力を減らすことができます。

オペレーションの理論

シリアルペリフェラルインタフェース(SPI)バスは、ビットのクロック同期式シリアルストリームを受け入れ、ほぼすべてのデジタル電子機器を制御するための非常に緩いデファクトスタンダードです。SPIは、全二重(送信と同時に受信)で動作します。

フェイルセーフ動作

予期しないリセット
データが保持されます。

停電
電 源の障害が重要になることがあります:カードが書き込み操作を完了するための十分な時間を持っていない場合、データが失われる可能性があります。対策:カードの電源供給が徐々に低下していることを確認。

平準化を着用する

MMC / SDカードが内蔵コントローラによって制御される、このコントローラはまた、ウェアレベリングを処理します。したがって、ドライバは、ウェアレベリングを処理する必要はありません。

 

 

 


RAMディスクドライバ

EMFILEは、データストレージ用ドライブとしては、システムのRAMの一部を使用することを可能にするシンプルなRAMディスクドライバが付属しています。これは、システムの性能を調べるために、非常に便利ですし、また、システム内のテストの手順として使用することができます。

サポートされるハードウェア

RAMドライバは十分なRAMを搭載したすべてのターゲットで使用することができます。ディスクのサイズは、ドライブ用に予約されたセクタ数として定義されます。

オペレーションの理論

RAMディスクは、パーティションとして使用するために割り当てることメモリの一部です。RAMディスクドライバは、メモリの一部を受け取り、それはあなたがファイルへの保存、マウント、フォーマットできること、などがRAMのすべてのビットが幸福お使いのシステムと大きくあなたのRAMのために重要であることを覚えて、ハードドライブであるということにディスクは、お使いのシステムで利用が少ないほどメモリです。

フェイルセーフ動作

電源が失われると、RAMドライブのデータは通常、ストレージデバイスとして使用されるRAMのバッテリーバックアップを備えたシステムを除いて同様に失われます。このような理由から、安全性が唯一のそのようなバッテリーのバックアップを提供するシステムに関連している失敗する。

予期しないリセット
データが保持されます。しかし、電源障害/予期しないリセット割り込み書き込み操作した場合、セクタのデータは、部分的に無効なデータが含まれている場合があります。

電源障害
電源障害、予期しないリセットが発生すると同じ効果があります。

平準化を着用する

RAMディスクドライバは、ウェアレベリングを必要としません。

ドライバの設定

FS_RAMDISK_Configure()

説明は、
単一のRAMディスクのインスタンスを設定します。この関数は、内部からコールする必要があります FS_X_AddDevices()のインスタンスに追加した後、RAMディスクのドライバを。

プロトタイプ
ボイドFS_RAMDISK_Configure(U8ユニット、VOID * pDataに、U16 BytesPerSector、U32 NumSectors);

パラメータ 説明
ユニットの メディアの数(0 - N)。
pDataが データバッファへのポインタ。
BytesPerSector セクターあたりのバイト数。
NumSectors セクタの数。

追加情報
ディスクのサイズは、ドライブ用に予約されたセクタ数として定義されます。各セクタは512バイトで構成されています。NumSectorsの最小値は7です。BytesperSectorは、RAMディスク上の各セクタのサイズを定義します。FATファイルシステムは、512バイトの最小セクタサイズが必要です。


/************************************************* ********************
*
* FS_X_AddDevices
*
*関数の説明
*この関数は、FS_Init()中にFSによって呼び出されます。
*これは、すべてのデバイスを追加することになって、使用して主にFS_AddDevice()。
*
*注
*(1)その他のAPI関数
*この関数が呼び出されるので、他のAPI関数が、呼び出されないことがあります
初期化中に*。デバイスはこの時点ではまだ完成していません。
* /
ボイドFS_X_AddDevices(ボイド){
無効* pRamDisk;
/ /
/ / RAMディスク用のメモリ割り当て
/ /
pRamDiskは= FS_Alloc(RAMDISK_NUM_SECTORS * RAMDISK_BYTES_PER_SECTOR);
/ /
/ /ドライバの追加
/ /
FS_AddDevice(&FS_RAMDISK_Driver);
/ /
/ /ドライバの設定
/ /
FS_RAMDISK_Configureを(0、pRamDisk、RAMDISK_BYTES_PER_SECTOR、RAMDISK_NUM_SECTORS);
}

 

ドライバはEMFILEに追加

ドライバを追加するには、使用FS_AddDeviceを()ドライバのラベルでFS_RAMDISK_Driver。この関数は、内部からコールする必要がありますFS_X_AddDevices()


FS_AddDevice(&FS_RAMDISK_Driver);

ハードウェアの機能

RAMディスクドライバは、ハードウェア機能を必要としません。

追加情報

フォーマット

RAMディスクは、それぞれの起動後にフォーマットされていません。この規則の例外は、メモリ、バッテリでバックアップされるRAMディスクです。
次のコマンドですべての未フォーマットのRAMディスクをフォーマットする必要がFS_Format()あなたがそれにデータを保存する前に、機能。あなたのアプリケーションでしかRAMディスクを使用する場合 FS_FORMAT()をデバイス名として空の文字列を指定して呼び出すことができます。例えば、FS_Formatは(""、NULL);
をより、1つのRAMディスクを使用すると、デバイス名を指定する必要があります。たとえば、FS_FORMAT("ラム:0:"、NULL);最初のデバイス用とFS_FORMAT("ラム:1:"、NULL); 秒。