インテル® Agilex™ハード・プロセッサー・システムのテクニカル・リファレンス・マニュアル

ID 683567
日付 1/25/2020
Public

このドキュメントの新しいバージョンが利用できます。お客様は次のことを行ってください。 こちらをクリック 最新バージョンに移行する。

ドキュメント目次

16.4.3.2.3. 自動停止

cmdレジスターのsend_auto_stopビットが1に設定されている場合、コントローラーは内部でSD/SDIO STOPコマンドを生成し、コマンドパスにロードします。AUTO_STOPコマンドは、MMCにおけるストリーム読み出しまたは書き込みおよび、SDカードにおけるSDメモリー転送の複数ブロック読み出しまたは書き込みを使用して、正確な数のデータバイトを送信するのに役立ちます。ソフトウェアは、以下の詳細に従いsend_auto_stopビットを設定する必要があります。

次のリストは、AUTO_STOPコマンドの条件を示しています。

  • バイトカウントが0より大きいMMCのストリーム読み出し—コントローラーは内部のSTOPコマンドを生成し、コマンドパスにロードします。これにより、データの最後のバイトがカードから読み出された際にSTOPコマンドのエンドビットが送信され、データバイトをそれ以上受信しないようにします。バイトカウントが6 (48ビット) 未満の場合、STOPコマンドのエンドビットが送信される前に、いくつかの余分なデータバイトをカードから受信します。
  • バイトカウントが0より大きいMMCのストリーム書き込み—コントローラーは内部のSTOPコマンドを生成し、コマンドパスにロードします。これにより、データの最後のバイトがカードバスで送信された際にSTOPコマンドのエンドビットが送信され、データバイトがそれ以上送信されないようにします。バイトカウントが6 (48ビット) 未満の場合、データパスはデータを最後に送信し、これらの条件を満たします。
  • バイトカウントが0より大きいSDカードの複数ブロック読み出しメモリー—ブロックサイズが4 (シングルビット・データ・バス)、16 (4ビット・データ・バス)、または32 (8ビット・データ・バス) 未満の場合、AUTO_STOPコマンドは、すべてのバイトが読み出された後にコマンドパスにロードされます。それ以外の場合はSTOPコマンドがコマンドパスにロードされるため、最後のデータブロックの受信後に、STOPコマンドのエンドビットが送信されます。
  • バイトカウントが0より大きいSDカードの複数ブロック書き込みメモリー—ブロックサイズが3 (シングルビット・データ・バス)、12 (4ビット・データ・バス)、または24 (8ビット・データ・バス) 未満の場合、AUTO_STOPコマンドは、すべてのデータブロックが送信された後にコマンドパスにロードされます。それ以外の場合はSTOPコマンドがコマンドパスにロードされるため、CRCステータスのエンドビットの受信後に、STOPコマンドのエンドビットが送信されます。
  • 自動停止時におけるホスト・ソフトウェアに向けた注意事項—AUTO_STOPコマンドが発行されている場合、ホスト・ソフトウェアは、AUTO_STOPコマンドがコントローラーによって送信されてデータ転送が完了するまで、コントローラーに新しいコマンドを発行してはなりません。AUTO_STOPコマンドを伴うデータ転送の進行中にホストが新しいコマンドを発行した場合、AUTO_STOPコマンドは、新しいコマンドが送信されてその応答を受信した後に送信されることがあります。これにより、STOPコマンドの送信が遅延し、余分なデータバイトが転送されることになります。ストリーム書き込みでは、余分なデータバイトは不正なデータであり、カードデータが破損する場合があります。データの転送が完了する前にホストによってデータの転送を終了させる場合は、SD/SDIO STOPコマンドまたはSTOP_TRANSMISSION (CMD12) コマンドを発行することができます。この場合、コントローラーはAUTO_STOPコマンドを生成しません。