(57)【特許請求の範囲】
【請求項１】
着脱可能に取り付けられるホスト機器との間で１本のデータ通信回線を使用して、転送データをシリアルデータとして双方向通信を行うシリアルデータ通信手段と、
上記ホスト機器との間で複数本のデータ通信回線を使用して、上記転送データを複数ビット単位に分割したパラレルデータにして双方向通信を行うパラレルデータ通信手段と、
上記転送データに同期したクロックを、クロック受信端子を使用して上記ホスト機器から受信するクロック受信手段と、
上記転送データの転送開始タイミングを示すバスステート信号を、バスステート信号受信端子を使用して上記ホスト機器から受信するバスステート信号受信手段と、
上記ホスト機器から受信したコマンドの内容、及び、上記バスステート信号により示されている転送開始タイミングに応じて、上記転送データの伝送方向を制御する制御手段と、
上記シリアルデータによる通信又は上記パラレルデータによる通信を切り換える切換手段と、
上記パラレルデータによる通信に対応していることを示すパラメータ情報が記述された記憶手段とを備え、
上記シリアルデータ通信手段は、上記パラレルデータにより通信される複数本のデータ通信回線のうちの１本のデータ通信回線を共用して、ホスト機器との間の通信を行い、
上記制御手段は、上記転送データの入力時には、上記各データ通信回線毎に設けられたデータ出力ドライバの出力端を開放状態としておき、上記転送データの入力から出力への切り換え時には、上記ホスト機器側の各データ通信回線毎に設けられたホスト機器側データ出力ドライバの出力端が、上記切り換え時から１クロック以上開放状態となった後に、上記データ出力ドライバの出力端を有効にし、
上記切換手段は、上記記憶手段に記述されているパラメータ情報が上記ホスト機器によって参照されて上記パラレルデータによるデータ伝送が可能であると判断されたとき、上記パラレルデータによる通信に切り換えるインタフェース装置。
【請求項２】
上記切換手段は、上記シリアルデータによる通信を行う場合には、使用しない各データ通信回線に設けられたデータ出力ドライバの出力端を開放状態にする請求項１記載のインタフェース装置。
【請求項３】
上記切換手段は、
初期通信時には、上記シリアルデータにより通信を行い、
上記記憶手段に記述されているパラメータ情報を参照したホスト機器から受信した切換コマンドに応じて、上記シリアルデータによる通信から、上記パラレルデータによる通信に切り換える請求項１記載のインタフェース装置。
【請求項４】
着脱可能に取り付けられる外部接続機器との間で１本のデータ通信回線を使用して、転送データをシリアルデータとして双方向通信を行うシリアルデータ通信手段と、
上記外部接続機器との間で複数本のデータ通信回線を使用して、上記転送データを複数ビット単位に分割したパラレルデータにして双方向通信を行うパラレルデータ通信手段と、
上記転送データに同期したクロックを、クロック送信端子を使用して、外部接続機器に送信するクロック送信手段と、
上記転送データの転送開始タイミングを示すバスステート信号を、バスステート信号送信端子を使用して上記外部接続機器に送信するバスステート信号送信手段と、
上記外部接続機器に送信したコマンドの内容、及び、上記バスステート信号により示されている転送開始タイミングに応じて、上記転送データの伝送方向を制御する制御手段と、
上記シリアルデータによる通信又は上記パラレルデータによる通信を切り換える切換手段とを備え、
上記シリアルデータ通信手段は、上記パラレルデータにより通信される複数本のデータ通信回線のうちの１本のデータ通信回線を共用して、上記外部接続機器との間の通信を行い、
上記制御手段は、上記転送データの入力時には、上記各データ通信回線毎に設けられたデータ出力ドライバの出力端を開放状態としておき、上記転送データの入力から出力への切り換え時には、上記外部接続機器側の各データ通信回線毎に設けられた外部接続機器側データ出力ドライバの出力端が、上記切り換え時から１クロック以上開放状態となった後に、上記データ出力ドライバの出力端を有効にし、
上記切換手段は、上記外部接続機器の記憶手段に記憶されているパラメータ情報を参照して、このパラメータ情報が上記パラレルデータによる通信に対応していることを示しているとき、上記パラレルデータによる通信に切り換えるインタフェース装置。
【請求項５】
上記切換手段は、上記シリアルデータによる通信を行う場合には、使用しない各データ通信回線に設けられたデータ出力ドライバの出力端を開放状態にする請求項４記載のインタフェース装置。
【請求項６】
上記切換手段は、初期通信時には、上記シリアルデータにより通信を行い、
上記外部接続機器の記憶手段に記憶されているパラメータ情報を参照して、このパラメータ情報が上記パラレルデータによる通信に対応していることを示しているとき、上記シリアルデータによって切換コマンドを送信し、上記シリアルデータによる通信から、上記パラレルデータによる通信に切り換える請求項４記載のインタフェース装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ホスト機器と、リムーバブルな外部接続機器との間のインタフェース装置に関するものである。
【０００２】
【従来の技術】
従来よりいわゆるメモリカードと呼ばれるリムーバルなＩＣメモリ装置が知られている。
【０００３】
メモリカードは、内部に不揮発性の半導体メモリ（ＩＣメモリ）を有しており、静止画像データ、動画像データ、音声データ、音楽データ等の各種デジタルデータを格納することができる。このメモリカードは、例えば、情報携帯端末、デスクトップ型コンピュータ、ノート型コンピュータ、携帯電話機、オーディオ装置、家電装置等々のホスト機器の外部記憶メディアとして機能する。
【０００４】
従来のメモリカードに、ホスト機器との間のデータの転送を、１ビットシリアルデータ、クロック信号、バスステート信号の３つの信号を転送する３線式半２重シリアルプロトコルを用いたものがある。
【０００５】
シリアルデータ信号は、メモリカードとホスト機器との間を転送されるデータ信号である。シリアルデータ信号は、バスステート信号により規定されるステートに従い、そのデータの転送方向と属性が変化する。
【０００６】
バスステート信号は、シリアルデータ信号のステート、並びに、各ステートにおけるシリアルデータ信号の転送開始タイミングを規定する信号である。
【０００７】
クロック信号は、バス上に転送されるシリアルデータ信号及びバスステート信号のクロックである。このクロック信号は、ホスト機器からメモリカードへ転送される。クロック信号は、後述するパケット通信中の３つのステート（ＢＳ１〜ＢＳ３）のときに必ず出力される。
【０００８】
以上のような３線式半２重シリアルプロトコルを用いたメモリカードとして、本出願人が提案した日本国特許出願特願平１１−５３３０６号公報、米国特許６２５３２５９号明細書がある。
【０００９】
以下、従来のメモリカードとして、上記公報で示されているメモリカードについて説明を行う。
【００１０】
従来のメモリカードの概略平面図、並びに、端子部分の拡大図を示す。従来のメモリカード５００は、図１に示すように、カード状となっており、その端部部分にピン１〜ピン１０の１０個の端子が設けられている。
【００１１】
ピン１及びピン１０は、グランド（ＶＳＳ）端子である。ピン２は、バスステート信号がホスト機器からメモリカードへ入力されるＢＳ端子である。ピン３及びピン９は、電源電圧（ＶＣＣ）端子である。ピン４は、メモリカードとホスト機器との間に転送されるシリアルデータ信号の入出力端子（ＳＤＩＯ端子）である。ピン５及びピン７は、予備端子である。ピン６は、メモリカードがスロットに挿入されているか、或いは、挿入されていないかを、ホスト機器が判断するための挿入／抜出検出端子（ＩＮＳ端子）である。ピン８は、クロック信号が、ホスト機器からメモリカードへ入力されるクロック（ＳＣＬＫ）端子である。
【００１２】
従来のメモリカード５００とホスト機器６００との間のインタフェースのフロントエンド部分の回路構成例を図２に示す。
【００１３】
従来のメモリカード５００は、データ入力バッファ５０１Ｒと、データ出力バッファ５０１Ｓと、ＢＳ入力バッファ５０５と、ＣＬＫ入力バッファ５０６とを有している。
【００１４】
データ入力バッファ５０１Ｒ及びデータ出力バッファ５０１Ｓは、ＳＤＩＯ端子の入出力ドライバとして機能する。ＢＳ入力バッファ５０５は、ＢＳ端子の入力ドライバとして機能する。ＣＬＫ入力バッファ５０６は、ＳＣＬＫ端子の入力ドライバとして機能する。
【００１５】
ここで、データ出力バッファ５０１Ｓは、いわゆるトライステートバッファとなっている。メモリカードでは、１つの回線で双方向のデータ通信を行うので、データの入力時には、使用しない出力ドライバの出力端をハイインピーダンスとする必要がある。そのため、データ出力用のドライバとして機能するデータ出力バッファ５０１Ｓには、トライステートバッファを用いている。このデータ出力バッファ５０１Ｓには、図示しない制御部等から、イネーブル信号ＤＥ２が、制御信号として入力される。データ出力バッファ５０１Ｓは、このイネーブル信号ＤＥ２が、Ｈｉｇｈのときに出力端がハイインピーダンスとなり、Ｌｏｗのときに出力端が有効となる。
【００１６】
また、メモリカード５００は、データ入力フリップフロップ５１１Ｒと、データ出力フリップフロップ５１１Ｓと、ＢＳ入力フリップフロップ５１５とを有している。
【００１７】
データ入力フリップフロップ５１１Ｒ及びデータ出力フリップフロップ５１１Ｓは、ＳＤＩＯ端子の入出力データのラッチ回路として機能する。ＢＳ入力フリップフロップ５１５は、ＢＳ端子の入力データのラッチ回路として機能する。
【００１８】
データ入力フリップフロップ５１１Ｒには、データ入力バッファ５０１Ｒからデータが入力され、図示しない制御部等にデータが出力される。データ出力フリップフロップ５１１Ｓには、図示しない制御部等からデータが入力され、データ出力バッファ５０１Ｓにデータが出力される。ＢＳ入力用フリップフロップ５１５には、ＢＳ入力バッファ５０５からデータが入力され、図示しない制御部等にデータが出力される。
【００１９】
また、以上のような各フリップフロップには、ＳＣＬＫ端子から供給されるクロック信号が入力される。
【００２０】
ここで、データ入力フリップフロップ５１１Ｒ、ＢＳ入力フリップフロップ５１５は、それぞれクロック信号の立ち上がりエッジのタイミングに同期して、データをラッチするように動作する。一方、データ出力フリップフロップ５１１Ｓは、クロック信号の立ち下がりエッジのタイミングに同期して、データをラッチするように動作をする。
【００２１】
一方、ホスト機器６００は、データ入力バッファ６０１Ｒと、データ出力バッファ６０１Ｓと、ＢＳ出力バッファ６０５と、ＣＬＫ出力バッファ６０６とを有している。
【００２２】
データ入力バッファ６０１Ｒ及びデータ出力バッファ６０１Ｓは、ＳＤＩＯ端子の入出力ドライバとして機能する。ＢＳ出力バッファ６０５は、ＢＳ端子の出力ドライバとして機能する。ＣＬＫ出力バッファ６０６は、ＳＣＬＫ端子の出力ドライバとして機能する。
【００２３】
なお、データ出力バッファ６０１Ｓは、いわゆるトライステートバッファである。このデータ出力バッファ６０１Ｓをトライステートバッファとする理由は、メモリカード側と同様である。データ出力バッファ６０１Ｓには、イネーブル信号ＤＥ１が制御信号として入力される。データ出力バッファ６０１Ｓは、このイネーブル信号ＤＥ１が、Ｈｉｇｈのときに出力端がハイインピーダンスとなり、Ｌｏｗのときに出力端が有効となる。イネーブル信号ＤＥ１は、図示しない制御部等から出力される。
【００２４】
ホスト機器６００は、データ入力フリップフロップ６１１Ｒと、データ出力フリップフロップ６１１Ｓと、ＢＳ出力フリップフロップ６１５と、クロック発生器６１６とを有している。
【００２５】
データ入力フリップフロップ６１１Ｒ及びデータ出力フリップフロップ６１１Ｓは、ＳＤＩＯ端子の入出力データのラッチ回路として機能する。ＢＳ出力フリップフロップ６１５は、ＢＳ端子の出力データのラッチ回路として機能する。
【００２６】
クロック発生器６１６は、所定の周波数（例えば最大２０ＭＨｚ）のクロック信号を発生する。
【００２７】
データ入力フリップフロップ６１１Ｒには、データ入力バッファ６０１Ｒからデータが入力され、図示しない制御部等にデータが出力される。データ出力フリップフロップ６１１Ｓには、図示しない制御部等からデータが入力され、データ出力バッファ６０１Ｓにデータが出力される。ＢＳ出力フリップフロップ６１５には、図示しない制御部等からデータが入力され、ＢＳ出力バッファ６０５へデータが出力される。
【００２８】
また、以上のような各フリップフロップには、クロック発生器６１６から発生されるクロック信号が入力される。
【００２９】
ここで、データ入力フリップフロップ６１１Ｒ、データ出力フリップフロップ６１１Ｓ、ＢＳ出力フリップフロップ６１５は、それぞれクロック信号の立ち下がりエッジのタイミングに同期して、データをラッチするように動作する。
【００３０】
つぎに、以上のようなフロントエンド回路において、ホスト機器６００からメモリカード５００へデータ伝送する場合について説明をする。
【００３１】
まず、ホスト側のイネーブル信号ＤＥ１はＬｏｗとされ、メモリカード側のイネーブル信号ＤＥ２はＨｉｇｈとされる。そのため、ホスト側のデータ出力バッファ６０１Ｓは、出力がイネーブル状態とされ、メモリカード側のデータ出力バッファ５０１Ｓは出力がハイインピーダンス状態とされる。このことから、シリアルデータ信号（ＳＤＩＯ）は、ホスト機器６００→メモリカード５００の方向に伝送されることとなる。
【００３２】
シリアルデータ信号は、クロック信号の立ち下がりエッジに同期して、ホスト機器側のデータ出力フリップフロップ６１１Ｓから出力される。データ出力フリップフロップ６１１Ｓから出力されたシリアルデータ信号は、データ出力バッファ６０１Ｓ→ピン４→データ入力バッファ５０１Ｒを介して、メモリカード側のデータ入力フリップフロップ５１１Ｒに供給される。シリアルデータ信号は、クロック信号の立ち上がりエッジに同期して、メモリカード側のデータ入力フリップフロップ５１１Ｒに入力される。
【００３３】
つぎに、メモリカード５００からホスト機器６００へデータ伝送する場合について説明をする。
【００３４】
まず、ホスト側のイネーブル信号ＤＥ１はＨｉｇｈとされ、メモリカード側のイネーブル信号ＤＥ２はＬｏｗとされる。そのため、ホスト側のデータ出力バッファ６０１Ｓは、出力がハイインピーダンス状態とされ、メモリカード側のデータ出力バッファ５０１Ｓは出力がイネーブル状態とされる。このことから、シリアルデータ信号（ＳＤＩＯ）は、メモリカード５００→ホスト機器６００の方向に伝送されることとなる。
【００３５】
シリアルデータ信号は、クロック信号の立ち下がりエッジに同期して、メモリカード側のデータ出力フリップフロップ５１１Ｓから出力される。データ出力フリップフロップ５１１Ｓから出力されたシリアルデータ信号は、データ出力バッファ５０１Ｓ→ピン４→データ入力バッファ６０１Ｒを介して、ホスト機器側のデータ入力フリップフロップ６１１Ｒに供給される。シリアルデータ信号は、クロック信号の立ち下がりエッジに同期して、ホスト機器側のデータ入力フリップフロップ６１１Ｒに入力される。
【００３６】
なお、バスステート信号は、ホスト機器６００からメモリカード５００への一方向にデータ伝送される。すなわち、本インタフェースでは、データ通信の主導権は、ホスト機器６００側が有することとなる。
【００３７】
バスステート信号は、クロック信号の立ち下がりエッジに同期して、ホスト機器側のＢＳ出力フリップフロップ６１５から出力される。ＢＳ出力フリップフロップ６１５から出力されたバスステート信号は、ＢＳ出力バッファ６０５→ピン２→ＢＳ入力バッファ５０５を介して、メモリカード側のＢＳ入力フリップフロップ５１５に供給される。バスステート信号は、クロック信号の立ち上がりエッジに同期して、メモリカード側のＢＳ入力フリップフロップ５１５に入力される。
【００３８】
また、クロック信号は、クロック発生器６１６から発生され、ホスト機器６００の各フリップフロップに供給される。また、クロック信号は、ＣＬＫ出力バッファ６０６→ピン８→ＣＬＫ入力バッファ５０６を介して、メモリカード５００の各フリップフロップに入力される。
【００３９】
つぎに、従来のメモリカードの通信内容について説明する。
【００４０】
従来のメモリカードのインタフェースでは、バスステート信号の切り換えにより、シリアルデータ信号の属性及び方向が規定される。ステートは、パケット通信が行われないステート（ＢＳ０）と、パケット通信中の３つのステート（ＢＳ１〜ＢＳ３）の合計４つに区分される。バスステート信号は、ＨｉｇｈとＬｏｗとの切り換えタイミングで、ＢＳ０からＢＳ３まで順番にステートを切り換えていく。
【００４１】
また、各ステートでのデータの属性や方向は、メモリカードからホスト機器へデータ転送するリードプロトコルと、ホスト機器からメモリカードへデータ転送するライトプロトコルとで異なっている。また、従来のメモリカードのインタフェースでは、ＢＳ１からＢＳ３までを１つのパケットとして伝送が管理されている。ホスト機器からメモリカードへのデータ転送はライトパケットとして管理され、メモリカードからホスト機器へのデータ転送はリードパケットとして管理されている。
【００４２】
各ステートの具体的な通信内容は以下の通りである。
【００４３】
図３に、ライトパケット時の通信内容について示し、図４に、リードパケット時の通信内容を示す。
【００４４】
ＢＳ０は、メモリカードからホスト機器への割り込み信号（ＩＮＴ信号）が転送可能なステートである。
【００４５】
ＢＳ１は、ＴＰＣ（Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ  Ｃｏｍｍａｎｄ）コマンドが転送されるステートである。ＴＰＣコマンドは、ホスト機器からメモリカードへ転送される制御命令である。
【００４６】
ＢＳ２及びＢＳ３では、リードパケットとライトパケットとで、シリアルデータ信号の属性が異なる。
【００４７】
ＢＳ２は、リードパケット時には、メモリカードからホスト機器へ、ビジー（ＢＳＹ信号）及びレディ信号が転送される。ＢＳ２では、データ転送の準備が完了していない場合にメモリカードからホスト機器へビジー信号が送出され、データ転送の準備が完了するとメモリカードからホスト機器へレディー信号が送出される。
【００４８】
ＢＳ２は、ライトプロトコル時には、書き込み対象となる転送データ等が、ホスト機器からメモリカードへ転送される。
【００４９】
ＢＳ３は、リードプロトコル時には、読み出し対象となる転送データ等が、メモリカードからホスト機器へ転送される。
【００５０】
ＢＳ３は、ライトプロトコル時には、メモリカードからホスト機器へ、ビジー信号及びレディー信号が転送される。ＢＳ３では、ホスト機器からメモリカードへの転送データに対する処理が完了していない場合にメモリカードからビジー信号が送出され、処理が完了するとメモリカードからレディー信号が送出される。
【００５１】
ところで、上述したように従来のメモリカードでは、最大２０ＭＨｚの転送クロックを用いたシリアル伝送を行っている。従って、最大のデータ転送レートは２０Ｍｂｐｓであった。しかしながら、近年、メモリカード内部に設けられるフラッシュメモリが高容量化し、また、その書き込み／読み出し速度も高速となってきている。そのため、よりデータ転送レートが早いメモリカードが求められている。
【００５２】
さらに、以上のようなデータ転送レートが早いメモリカードを提案する場合、従来のメモリカードとの互換性が求められる。
【００５３】
また、従来のメモリカードでは、上述したように、クロック信号の立ち上がりに同期してホスト機器から転送されたバスステート信号を検出し、クロック信号の立ち下がりに同期してデータを送出しなければならない。
【００５４】
そのため、例えば、図５に示すように、従来のメモリカードは、クロック信号の立ち上がりエッジ（Ｔ１０１）でバスステート信号の切り替わりを検出して、次の立ち下がりエッジ（Ｔ１０２）にデータの送出を開始しなければならないので、ＢＳの切り替わりに対応するための動作時間の余裕がクロック信号の半周期分しかない。従って、従来のメモリカードでは、データの転送レートが、クロック信号の実際の周期（最小５０ｎ秒）ではなくクロック信号の周期の１／２の時間（最小２５ｎ秒）で決まってしまうこととなり、データ転送レートの高速化を図る際の制約となってしまっていた。
【００５５】
また、従来のメモリカードでは、１本のデータ線を双方向で使用しているので、バスステート信号によりステートを規定し、データの伝送方向を特定している。そのため、バスステート信号の切り換えに応じて、データの転送方向が切り替わることとなる。例えば、ライトパケットにおけるＢＳ０→ＢＳ１、ＢＳ２→ＢＳ３の切り換え時、リードパケットにおけるＢＳ０→ＢＳ１、ＢＳ１→ＢＳ２の切り換え時に、データの転送方向が切り替わる。
【００５６】
このような転送方向の切り替わりに対応するため、従来のメモリカードでは、バスステート信号の切り換えに対応して、ホスト側のイネーブル信号ＤＥ１及びメモリカード側イネーブル信号ＤＥ２の信号レベルを変化させている。
【００５７】
しかしながら、この変化タイミングは、バスステート信号が送出された後の最初の立ち下がりエッジのタイミングとなり、ホスト側イネーブル信号ＤＥ１及びメモリカード側イネーブル信号ＤＥ２の両者が、ほぼ同時に変化することとなる。そのため、例えば、どちらかのイネーブル信号の変化タイミングがずれて、ＤＥ１＝Ｌｏｗ、ＤＥ２＝Ｌｏｗという状態が発生すると、すなわち、ホスト側及びメモリカード側の出力ドライバが両者ともに有効という状態が発生すると、データバスの衝突が生じてしまう。このため、従来のメモリカードでは、このようなバスの衝突が生じないように、イネーブル信号ＤＥ１、ＤＥ２のタイミング設計を厳密に行わなければならなかった。
【００５８】
【発明が解決しようとする課題】
本発明は、従来の１ビットシリアルデータと、クロックと、バスステート信号とにより行われていたシリアル通信よりも、データ転送レートを高速にすることができるインタフェース装置を提供することを目的とする。
【００５９】
また、本発明は、従来の１ビットシリアルデータと、クロックと、バスステート信号とにより行われていたシリアル通信と互換性を保ちながら、データ転送レートを高速にすることができるインタフェース装置を提供することを目的とする。
【００６０】
また、本発明は、データバスの衝突を回避したインタフェース装置を提供することを目的とする。
【００６１】
また、本発明は、クロックをより高速にして、データ転送レートの高速化を図ったインタフェース装置を提供することを目的とする。
【００６２】
【課題を解決するための手段】
本発明にかかるインタフェース装置は、着脱可能に取り付けられるホスト機器との間で１本のデータ通信回線を使用して、転送データをシリアルデータとして双方向通信を行うシリアルデータ通信手段と、ホスト機器との間で複数本のデータ通信回線を使用して、上記転送データを複数ビット単位に分割したパラレルデータにして双方向通信を行うパラレルデータ通信手段と、転送データに同期したクロックを、クロック受信端子を使用してホスト機器から受信するクロック受信手段と、転送データの転送開始タイミングを示すバスステート信号を、バスステート信号受信端子を使用してホスト機器から受信するバスステート信号受信手段と、ホスト機器から受信したコマンドの内容、及び、バスステート信号により示されている転送開始タイミングに応じて、転送データの伝送方向を制御する制御手段と、シリアルデータによる通信又はパラレルデータによる通信を切り換える切換手段と、パラレルデータによる通信に対応していることを示すパラメータ情報が記述された記憶手段とを備え、シリアルデータ通信手段は、パラレルデータにより通信される複数本のデータ通信回線のうちの１本のデータ通信回線を共用して、ホスト機器との間の通信を行い、制御手段は、転送データの入力時には、各データ通信回線毎に設けられたデータ出力ドライバの出力端を開放状態としておき、転送データの入力から出力への切り換え時には、ホスト機器側の各データ通信回線毎に設けられたホスト機器側データ出力ドライバの出力端が、切り換え時から１クロック以上開放状態となった後に、データ出力ドライバの出力端を有効にし、切換手段は、記憶手段に記述されているパラメータ情報がホスト機器によって参照されてパラレルデータによるデータ伝送が可能であると判断されたとき、パラレルデータによる通信に切り換える。
【００６３】
本発明にかかるインタフェース装置は、着脱可能に取り付けられる外部接続機器との間で１本のデータ通信回線を使用して、転送データをシリアルデータとして双方向通信を行うシリアルデータ通信手段と、外部接続機器との間で複数本のデータ通信回線を使用して転送データを複数ビット単位に分割したパラレルデータにして双方向通信を行うパラレルデータ通信手段と、転送データに同期したクロックを、クロック送信端子を使用して、外部接続機器に送信するクロック送信手段と、転送データの転送開始タイミングを示すバスステート信号を、バスステート信号送信端子を使用して外部接続機器に送信するバスステート信号送信手段と、外部接続機器に送信したコマンドの内容、及び、バスステート信号により示されている転送開始タイミングに応じて、転送データの伝送方向を制御する制御手段と、シリアルデータによる通信又はパラレルデータによる通信を切り換える切換手段とを備え、シリアルデータ通信手段は、パラレルデータにより通信される複数本のデータ通信回線のうちの１本のデータ通信回線を共用して、外部接続機器との間の通信を行う。
【００６４】
【発明の実施の形態】
以下、本発明の実施の形態として、本発明を適用したリムーバルな小型ＩＣメモリ装置、並びに、この小型ＩＣメモリを外部記憶メディアとして用いるデータ処理装置について説明する。
【００６５】
なお、本発明の実施の形態として説明する小型ＩＣメモリ装置のことを、以下、メモリカードと呼ぶものとする。また、このメモリカードを使用するデータ処理装置のことを、ホスト機器と呼ぶものとする。
【００６６】
アウトライン
図６に、ホスト機器及びメモリカードの外観斜視図を示す。
【００６７】
メモリカード１は、内部に不揮発性の半導体メモリ（ＩＣメモリ）を有しており、静止画像データ、動画像データ、音声データ、音楽データ等の各種デジタルデータを格納することができる。このメモリカード１は、例えば、情報携帯端末、デスクトップ型コンピュータ、ノート型コンピュータ、携帯電話機、オーディオ装置、家電装置等々のホスト機器２の外部記憶メディアとして機能する。メモリカード１は、ホスト機器２に設けられているスロット３に挿入された状態で使用される。メモリカード１のスロット３に対する挿入及び抜出は、ユーザが自在に行うことができる。そのため、例えば、あるホスト機器に挿入されていたメモリカード１を抜き出して、他のホスト機器に挿入することもでき、異なるホスト機器間のデータのやり取りに用いることが可能である。
【００６８】
メモリカード１とホスト機器２との間のデータの転送は、所定のインタフェースを介して行われる。
【００６９】
背景技術において説明したメモリカードでは、１ビットシリアルデータ、クロック信号、バスステート信号の３つの信号を転送する３線式半２重シリアルプロトコルを用いたシリアルインタフェースであった。
【００７０】
これに対して、本実施の形態のメモリカード１及びホスト機器２は、従来の３線式半２重シリアルプロトコルを用いたシリアルインタフェースによってデータの転送が行えるとともに、さらに、４ビットパラレルデータ、クロック信号、バスステート信号の６つの信号を転送する６線式半２重パラレルプロトコルを用いたパラレルインタフェースでもデータの転送が行えるようになっている。これらインタフェースの詳細については後述する。また、本実施の形態のメモリカード１は、背景技術において説明したメモリカードと、外観的な機械形状に互換性があり、さらに、接続端子等にも互換性がある。
【００７１】
従って、本実施の形態のメモリカード１は、背景技術において説明したメモリカードのみに対応したホスト機器に挿入して用いることができる。また、反対に、本実施の形態のメモリカード１に対応したホスト機器２は、背景技術において説明したメモリカードを外部記憶メディアとして用いることもできる。すなわち、本実施の形態のメモリカードは、背景技術において説明したメモリカードと、互換性を有している。
【００７２】
以下、本実施の形態のメモリカードについて、背景技術において説明をしたメモリカードと適宜比較をしながら詳細に説明をしていく。なお、以下説明の際に、背景技術において説明をしたメモリカードと、本実施の形態のメモリカードとの区別を明確にする場合には、背景技術において説明をしたメモリカード及びこれに対応したホスト機器のことをタイプ１といい、本実施の形態のメモリカード及びこれに対応したホスト機器のことをタイプ２というものとする。
【００７３】
外観
図７は、本発明の実施の形態のメモリカード１を表面側から見た斜視図であり、図８は、本発明の実施の形態のメモリカード１を裏面側から見た斜視図である。
【００７４】
メモリカード１は、主面（表面１ａ及び裏面１ｂ）が略長方形とされた薄板形状となっている。メモリカード１は、主面の長手方向の長さが約５０ｍｍ、主面の短辺方向の長さが約２１．４５ｍｍ、厚さが約２．８ｍｍとなっている。また、メモリカード１は、主面が、表面１ａと裏面１ｂとに区別される。裏面１ｂの長手方向の一端には、１０個の平面電極（接続端子群４）が、短辺方向に一列に並んで設けられている。また、電極と電極との各間には、裏面１ｂから垂直に立ち上がったガード５が設けられ、接続端子への接触防止が図られている。また、メモリカード１の裏面１ｂには、誤消去禁止用のスライドスイッチ６が設けられている。
【００７５】
また、ホスト機器２のスロット３は、以上のような形状のメモリカード１に対応した凹状の形状となっていて、メモリカード１が挿入可能である。さらに、このスロット３は、メモリカード１が挿入されたときには、このメモリカード１が脱落しないように保持することができる。また、スロット３には、メモリカード１の１０個の平面電極に対応した位置に、１０個の接点が設けられている。そのため、メモリカード１が接続端子群４の方向からスロット内部に差し込まれることにより（図７のＸ方向にメモリカード１が差し込まれることにより）、これらのスロット３内の接点と、メモリカード１の各接続端子とが電気的に接続されることとなる。
【００７６】
なお、メモリカード１及びスロット３の形状は、タイプ１及びタイプ２ともに、同一の形状となっており、相互に機械的な互換性を有している。
【００７７】
本実施の形態のメモリカードの電気的機能
図９に、メモリカード１の内部ブロック構成図を示す。
【００７８】
メモリカード１は、シリアルインタフェース回路（Ｉ／Ｆ）１１と、パラレルインタフェース回路（Ｉ／Ｆ）１２と、レジスタ回路１３と、データバッファ回路１４と、ＥＣＣ回路１５と、メモリＩ／Ｆシーケンス回路１６と、不揮発性半導体メモリ１７と、発振制御回路１８とを備えて構成される。
【００７９】
シリアルＩ／Ｆ回路１１は、３線式半２重シリアルプロトコルを用いて、ホスト機器２との間でデータの転送を行う回路である。パラレルＩ／Ｆ回路１２は、６線式半２重パラレルプロトコルを用いて、ホスト機器２との間でデータの転送を行う回路である。メモリカード１とホスト機器２との間のデータの転送は、シリアルＩ／Ｆ回路１１又はパラレルＩ／Ｆ１２のうち、いずれか一方の回路のみで行われる。そのため、メモリカード１では、３線式半２重シリアルプロトコルでデータ転送する場合には、シリアルＩ／Ｆ回路１１が使用され、６線式半２重パラレルプロトコルでデータ転送がされる場合には、パラレルＩ／Ｆ回路１２が使用されることとなる。なお、ここでは、シリアルＩ／Ｆ回路１１とパラレルＩ／Ｆ回路１２とを別の回路として表しているが、２つの機能を１つの回路で構成し、レジスタ回路１３内の設定値に応じてインタフェースプロトコルが切り換わるように構成してもよい。
【００８０】
レジスタ回路１３は、例えば、ホスト機器から転送されたコマンド、メモリカード１内の内部状態、アクセスするデータのアドレス、コマンドを実行する際に必要な諸処のパラメータ、不揮発性半導体メモリ１７内のファイル管理情報等を記憶する回路である。このレジスタ回路１３に記憶されている情報は、メモリＩ／Ｆシーケンス回路１６からアクセスされたり、或いは、ホスト機器２から所定のコマンドを与えることによりアクセスされたりする。
【００８１】
データバッファ回路１４は、不揮発性半導体メモリ１７へ書き込まれるデータ、並びに、不揮発性半導体メモリ１７から読み出されたデータを、一時的に保存するメモリ回路である。データバッファ回路１４は、所定のデータ書き込み単位（例えば、フラッシュメモリのページサイズと同一の５１２バイト）分のデータ容量を有している。
【００８２】
ＥＣＣ回路１５は、不揮発性半導体メモリ１７へ書き込まれるデータに対して誤り訂正コード（ＥＣＣ）を付加する。また、ＥＣＣ回路１５は、不揮発性半導体メモリ１７から読み出したデータに付加されている誤り訂正コードに基づき、この読み出したデータに対する誤り訂正処理を行う。例えば、誤り訂正コードは、５１２バイトのデータ単位に対して３バイト分付加される。
【００８３】
メモリＩ／Ｆシーケンス回路１６は、レジスタ回路１３内に格納されているコマンドや各種情報に従い、データバッファ１４と不揮発性半導体メモリ１７との間のデータのやり取りを制御する。
【００８４】
不揮発性半導体メモリ１７は、例えば、フラッシュメモリ等の不揮発性の半導体メモリである。
【００８５】
発振制御回路１８は、本メモリカード１内の動作クロックを発生する。
【００８６】
以上のような構成のメモリカード１では、例えば、ホスト機器２からインタフェースを介して与えられる各種コマンドに従い、例えば、データの書き込み、データの読み出し、消去等の動作を行う。
【００８７】
例えば、メモリカード１は、ホスト機器２からシリアルＩ／Ｆ又はパラレルＩ／Ｆを介して転送されてきたデータを一旦データバッファ回路１４に格納し、ＥＣＣを付加して不揮発性半導体メモリ１７の所定のアドレス領域に記憶させる。また、メモリカード１は、不揮発性半導体メモリ１７の所定のアドレスに記憶されているデータをデータバッファ回路１４に格納し、このデータバッファ回路１４上でエラー訂正を行い、シリアルＩ／Ｆ又はパラレルＩ／Ｆを介してホスト機器２へ転送する。
【００８８】
端子
つぎに、メモリカードとホスト機器とを接続する各接続端子の機能について、タイプ１のメモリカードと比較しながら説明をする。
【００８９】
なお、以下、メモリカード側の接続端子に図１０のように端子番号を付けて、１０個の端子を特定して説明を行う。すなわち、接続端子群４が向かって左側に位置するようにメモリカードを配置して裏面側から接続端子を見たときに、図１０に示すように１０個の接続端子が見える。これらの接続端子に対して、上から順番にピン１からピン１０まで番号を付けて説明を行う。また、ここでは、メモリカード側の端子についてしか説明をしないが、ホスト機器側の対応する端子も同一のピン番号で同様の機能を有しているものとする。
【００９０】
（タイプ１の端子）
まず、タイプ１のメモリカードの接続端子について説明をする。
【００９１】
図１１に、タイプ１の接続端子の機能を示す。
【００９２】
ピン１（ＶＳＳ端子）は、ＶＳＳ（基準０ボルト電圧）が接続される。このＶＳＳ端子は、ホスト機器側のグランドとメモリカード側のグランドとを接続し、ホスト機器とメモリカードとの０ボルト基準電位を一致させる。
【００９３】
ピン２（ＢＳ端子）は、バスステート信号がホスト機器からメモリカードへ入力される。バスステート信号については、詳細を後述する。
【００９４】
ピン３（ＶＣＣ端子）は、電源電圧（ＶＣＣ）がホスト機器からメモリカードへ供給される。メモリカードの動作可能な電源電圧は例えば２．７〜３．６ボルトであり、この範囲の電圧が供給される。
【００９５】
ピン４（ＳＤＩＯ端子）は、メモリカードとホスト機器との間に転送されるシリアルデータ信号が入出力される。
【００９６】
ピン５（Ｒｅｓｅｒｖｅｄ端子）は、予備の端子で、特に機能はない。
【００９７】
ピン６（ＩＮＳ端子）は、メモリカードがスロットに挿入されているか、或いは、挿入されていないかを、ホスト機器が判断するための挿入／抜出検出に用いられる。具体的には、図１２に示すように、メモリカード側のＩＮＳ端子は、Ｖｓｓに接続されている。一方、ホスト機器側のＩＮＳ端子は、抵抗ＲＩＮＳを介して電源電圧（Ｖｃｃ）にプルアップされている。そのため、ホスト機器側からＩＮＳ端子の電圧レベルを検出した場合、ホスト機器２にメモリカードが挿入されていればＬｏｗレベルとなり、ホスト機器２にメモリカードが挿入されていなければＨｉｇｈレベルとなる。従って、ホスト機器は、このＩＮＳ端子の電圧レベルを判断することによって、メモリカードが挿入されているか、挿入されていないかを判断することができる。
【００９８】
ピン７（Ｒｅｓｅｒｖｅｄ端子）は、予備の端子で、特に機能はない。
【００９９】
ピン８（ＳＣＬＫ）は、ＳＤＩＯ端子で転送するシリアルデータのクロック信号が、ホスト機器からメモリカードへ入力される。
【０１００】
ピン９（ＶＣＣ端子）は、電源電圧（ＶＣＣ）がホスト機器からメモリカードへ供給される。ピン９は、ピン３と内部で接続されている。
【０１０１】
ピン１０（ＶＳＳ端子）は、ＶＳＳと接続される。ピン１と内部で接続されている。
【０１０２】
（タイプ２の端子の説明）
つぎに、本実施の形態メモリカード（タイプ２）の接続端子について説明をする。図１３にタイプ２の接続端子の機能を示す。なお、タイプ２は、３線式半２重シリアルプロトコルを用いたシリアルインタフェースと、６線式半２重パラレルプロトコルを用いたパラレルインタフェースの両者のインタフェースを用いることができるので、図１３にはインタフェース毎に区別してその機能を示している。
【０１０３】
ピン１（ＶＳＳ端子）は、ＶＳＳ（基準０ボルト電圧）が接続される。このＶＳＳ端子は、ホスト機器側のグランドとメモリカード側のグランドとを接続し、ホスト機器とメモリカードとの０ボルト基準電位を一致させる。シリアルインタフェースでもパラレルインタフェースでも共通して用いられ、機能は同一である。
【０１０４】
ピン２（ＢＳ端子）は、バスステート信号がホスト機器からメモリカードへ入力される。シリアルインタフェースでもパラレルインタフェースでも共通して用いられ、機能は同一である。
【０１０５】
ピン３（ＤＡＴＡ１端子）は、シリアルインタフェースで用いる場合には、出力ドライバの出力端がハイインピーダンス（すなわち、開放状態）とされ、特に機能はない。一方、パラレルインタフェースで用いる場合には、メモリカードとホスト機器との間に転送される４ビットパラレルデータのうちの下位から２ビット目のデータ信号（ＤＡＴＡ１）が入出力される。
【０１０６】
ここで、半２重プロトコルの場合、１つの回線で双方向のデータ通信が行われる。そのため、インタフェース回路を作成する場合、図１４に示すように、入出力端子に入力ドライバ２１と出力ドライバ２２とを接続することとなる。データ出力時には、出力ドライバ２２のみが必要となり、入力ドライバ２１は特に必要はないが、一般にドライバの入力インピーダンスは非常に高いため、通信するデータに対しては特に影響は与えないので、入力ドライバ２１はそのままとしておく。反対に、データ入力時には、入力ドライバ２１のみが必要となり、出力ドライバ２２は特に必要がない。しかしながら、データ入力時に出力ドライバ２２をそのままにしておくと、出力ドライバ２２から出力される信号や出力ドライバ２２自身の出力インピーダンスによって、回線を伝送するデータに影響を与えてしまう可能性がある。そのため、半２重プロトコルを用いたインタフェースでは、一般に、データの入力時には、出力ドライバ２２の出力端をハイインピーダンス、すなわち、開放状態としている。本実施の形態のインタフェースも、データ入力時には、出力ドライバの出力端をハイインピーダンスとしている。出力ドライバ２２の出力端をハイインピーダンスとする手法はどのようなものでもよいが、例えば、図１４に示すようなトライステートバッファを用いても良いし、開閉型スイッチを用いて開放してもよい。
【０１０７】
ピン３では、シリアルプロトコルで用いる場合には、以上のようにデータの入出力の切換時に用いられるハイインピーダンス機能を用いて、出力ドライバの出力端をハイインピーダンスとしている。なお、以下のピン５、ピン７でも同様である。
【０１０８】
ピン４（ＳＤＩＯ／ＤＡＴＡ０端子）は、シリアルインタフェースで用いる場合には、メモリカードとホスト機器との間に転送されるシリアルデータ（ＳＤＩＯ）信号が入出力される。一方、パラレルインタフェースで用いる場合には、メモリカードとホスト機器との間に転送される４ビットパラレルデータのうちの最下位ビットのデータ信号（ＤＡＴＡ０）が入出力される。
【０１０９】
ピン５（ＤＡＴＡ２端子）は、シリアルインタフェースで用いる場合には、出力ドライバの出力端がハイインピーダンス（すなわち、開放状態）とされ、特に機能はない。一方、パラレルインタフェースで用いる場合には、メモリカードとホスト機器との間に転送される４ビットパラレルデータのうちの下位から３ビット目のデータ信号（ＤＡＴＡ２）が入出力される。
【０１１０】
ピン６（ＩＮＳ端子）は、メモリカードがスロットに挿入されているか、或いは、挿入されていないかを、ホスト機器が判断するための挿入／抜出検出に用いられる。このＩＮＳ端子は、タイプ１と同一の構成で挿入／抜出検出が行われる。また、シリアルインタフェースでもパラレルインタフェースでも共通して用いられ、機能は同一である。
【０１１１】
ピン７（ＤＡＴＡ３端子）は、シリアルインタフェースで用いる場合には、出力ドライバの出力端がハイインピーダンス（すなわち、開放状態）とされ、特に機能はない。一方、パラレルインタフェースで用いる場合には、メモリカードとホスト機器との間に転送される４ビットパラレルデータのうちの最上位ビットのデータ信号（３）が入出力される。
【０１１２】
ピン８（ＳＣＬＫ）は、クロック信号がホスト機器から入力される。シリアルインタフェースでもパラレルインタフェースでも共通に用いられ、機能は同一である。
【０１１３】
ピン９（ＶＣＣ端子）は、電源電圧（ＶＣＣ）がホスト機器から供給される。シリアルインタフェースでもパラレルインタフェースでも共通に用いられ、機能は同一である。メモリカードの動作可能な電源電圧は、例えば、２．７〜３．６ボルトである。
【０１１４】
ピン１０（ＶＳＳ端子）は、ＶＳＳと接続される。ピン１と内部で接続されている。シリアルインタフェースでもパラレルインタフェースでも共通に用いられ、機能は同一である。
【０１１５】
以上のようなタイプ１のメモリカードと本実施の形態のメモリカード（タイプ２）との端子関係を比較すると、ピン１（ＶＳＳ端子）、ピン２（ＢＳ端子）、ピン６（ＩＮＳ端子）、ピン８（ＳＣＬＫ端子）、ピン９（ＶＣＣ端子）、ピン１０（ＶＳＳ端子）が共通している。
【０１１６】
また、ピン４に関しては、タイプ２の端子機能が、シリアルインタフェースのときにはシリアルデータ信号の入出力に切り換えられ、パラレルインタフェースときにはパラレルデータ信号の最下位ビットの入出力に切り換えられる。
【０１１７】
そのため、タイプ２のメモリカードは、もし、タイプ１のみに対応したホスト機器に挿入されたとしても、このホスト機器とシリアルインタフェースでデータの伝送を行うことができる。また、タイプ２のホスト機器は、もし、タイプ１のメモリカードが挿入されたとしても、このタイプ１のメモリカードとシリアルインタフェースでデータの伝送をすることができる。
【０１１８】
以上のように、タイプ２の本実施の形態のメモリカード及びホスト機器では、タイプ１のメモリカード及びホスト機器（タイプ１）に対して端子の互換性を有している。
【０１１９】
なお、ピン３に関しては、タイプ１ではＶＣＣ端子、タイプ２ではＤＡＴＡ１端子となっているが、タイプ２のホスト機器に、タイプ１のメモリカードが挿入されたとしても、ピン９にもう一つＶＣＣ端子があるので、ホスト機器からメモリカードへの電源供給は可能となる。また、反対に、タイプ１のホスト機器に、タイプ２のメモリカードが挿入されたとしても、メモリカードの端子機能がシリアルインタフェースに設定されれば、メモリカードのピン３がハイインピーダンス（開放状態）となるので、ホスト機器側にもメモリカード側にも、特に影響は与えられない。また、このピン３は、端子に直接設けられたプルダウン抵抗（図１４参照）によって、電源電圧（Ｖｃｃ）→プルダウン抵抗→グランド（Ｖｓｓ）というＤＣ電流が生じてしまうが、例えばスイッチによりこのプルダウン抵抗をオープンにしてもよいし、或いは、十分大きなプルダウン抵抗を設けておけば、特に問題はない。また、さらに、ホスト機器側で、ピン３をオープンとするようにしてもよい。
【０１２０】
メモリカードとホスト機器間のインタフェースのシステム構成
図１５に、本実施の形態のメモリカードとホスト機器との間のデータ伝送をするためのインタフェースの機能構成図を示す。
【０１２１】
ホスト機器２は、ファイルマネージャ３１と、ＴＰＣインタフェース３２と、シリアルインタフェース３３と、パラレルインタフェース３４とから構成される。また、メモリカード１は、シリアルインタフェース３５と、パラレルインタフェース３６と、レジスタ３７と、データバッファ３８と、メモリコントローラ３９と、メモリ４０とから構成される。
【０１２２】
ファイルマネージャ３１は、ホスト機器のオペレーションシステム上で、メモリカード１内に格納されているファイル、並びに、ホスト機器の他のメディアに格納されているファイルの管理を行う。
【０１２３】
ＴＰＣインタフェース３２は、ファイルマネージャ３１の下位レイヤとなる。ＴＰＣインタフェース３２は、本メモリカードのインタフェース特有のコマンド（ＴＰＣ：Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ  Ｃｏｍｍａｎｄ）により、メモリカード１内のレジスタ３７及びデータバッファ３８へアクセスを行う。
【０１２４】
シリアルインタフェース３３、３５は、ＴＰＣインタフェースの下位レイヤとなり、本インタフェースシステムの物理階層である。シリアルインタフェース３３、３５は、１ビットシリアルデータ、クロック、バスステート信号の３つの信号を転送する３線式半２重シリアルプロトコルに従い、データ転送を行う。
【０１２５】
パラレルインタフェース３４、３６は、ＴＰＣインタフェースの下位レイヤとなり、本インタフェースシステムの物理階層である。パラレルインタフェース３４、３６は、４ビットパラレルデータ、クロック、バスステート信号の６つの信号を転送する６線式半２重シリアルプロトコルに従い、データ転送を行う。
【０１２６】
レジスタ３７は、ホストから転送されたコマンド、メモリカードの内部状態、メモリのデータアドレス、コマンドを実行する際に必要な諸処のパラメータ、メモリ内のファイル管理情報等を格納する。
【０１２７】
データバッファ３８は、メモリ４０へ書き込まれるデータ、並びに、メモリ４０から読み出されたデータを、一時的に保存するバッファ領域である。
【０１２８】
メモリコントローラ３９は、レジスタ回路１３内に格納されているコマンド並びに各種情報に従い、データバッファ３８とメモリ４０との間のデータのやり取りを制御し、データの読み出し、書き込み、消去を行う。
【０１２９】
メモリ４０は、データのメモリ領域であり、メモリコントローラ３９を通して、独自のモデルとして仮想化されている。
【０１３０】
以上のような構成のホスト機器及びメモリカードでは、ファイルマネージャ３１に管理されている他のメディアに格納されているデータを、上記パラレルインタフェース又はシリアルインタフェースを介してメモリ４０に転送することができる。また、メモリ４０に格納されているデータを、上記パラレルインタフェース又はシリアルインタフェースを介してファイルマネージャに管理されている他のメディアに転送することができる。
【０１３１】
また、以上のような構成のホスト機器及びメモリカードは、シリアルインタフェース及びパラレルインタフェースの選択を以下のように行う。
【０１３２】
メモリカードとホスト機器との間のデータ伝送のためのインタフェースでは、まず、電源投入時には、ホスト側もメモリカード側も、シリアルインタフェースを用いて動作を開始する。このようにすることによって、ホスト機器がタイプ１に対応しているがメモリカードはタイプ２に対応している、といったタイプが異なる場合にも、データ伝送が可能となる。また、反対に、ホスト機器はタイプ２に対応しているがメモリカードはタイプ１に対応している、といった場合にも、データ伝送が可能となる。
【０１３３】
続いて、ホスト機器がタイプ１に対応したものである場合には、そのままシリアルインタフェースでデータ通信を継続する。
【０１３４】
反対に、ホスト機器がタイプ２に対応したものである場合には、ホスト機器２は、挿入されているメモリカードがタイプ１かタイプ２かを判断する。その判断は、例えば、メモリカードのレジスタ内の所定のパラメータを、タイプ１とタイプ２とで異なる値としておけばよい。このようにレジスタ内の所定のパラメータの値を記述しておくことによって、ホスト機器側からレジスタ値をアクセスするＴＰＣコマンドを送信し、その値を参照し、判断することができる。
【０１３５】
ホスト機器は、挿入されているメモリカードがタイプ１であれば、そのままシリアルインタフェースを用いて通信を続ける。また、もし、挿入されているメモリカードがタイプ２であれば、インタフェースを切り換える旨を示すＴＰＣコマンドを送信して、レジスタ３７内の特定のパラメータを書き換える。このレジスタ内の特定の値が書き換えられると、ホスト機器とメモリカードは、パラレルインタフェースを用いてデータ伝送を開始する。
【０１３６】
なお、パラレルインタフェースからシリアルインタフェースに変更したい場合には、ホスト機器から再度所定のＴＰＣコマンドを送信して、上記特定のパラメータを初期値に書き換えることによって行う。
【０１３７】
また、挿入されているメモリカードがタイプ１に対応したものであるか、タイプ２に対応したものであるかの判断は、ホスト機器側から、ピン３の電圧レベルを参照することによっても行うことができる。
【０１３８】
メモリカードがタイプ１に対応したものであれば、ピン３にはＶＣＣが供給されている。そのため、ピン３の電圧レベルがＨｉｇｈレベルであれば、挿入されているメモリカードはタイプ１であると判断することができる。また、メモリカードがタイプ２に対応したものであれば、電源投入直後にはシリアルインタフェースに初期設定されるのでピン３の出力ドライバの出力端がハイインピーダンス（開放状態）となる。そのため、メモリカードがタイプ２に対応したものであれば、ピン３の電圧レベルがプルダウン抵抗（図１４参照）を介してグランドレベルに落ちることとなる。そのため、ピン３の電圧レベルがＬｏｗレベルであれば、挿入されているメモリカードはタイプ２であると判断することができる。
【０１３９】
シリアルインタフェース
タイプ１のメモリカードのインタフェースと、本実施の形態のシリアルインタフェースとは同一の３線式半２重シリアルプロトコルを用いてデータの伝送を行っている。以下、これらのシリアルインタフェースについて説明する。
【０１４０】
シリアルインタフェースは、図１６に示すように、バスステート信号（ＢＳ）、シリアルデータ信号（ＳＤＩＯ）、クロック信号（ＳＣＬＫ）の３本の信号で、ホスト機器とメモリカードとを接続している。
【０１４１】
シリアルデータ信号は、メモリカードとホスト機器との間を転送されるデータ信号である。シリアルデータ信号は、バスステート信号により規定されるステートに従い、そのデータの転送方向と属性が変化する。
【０１４２】
バスステート信号は、シリアルデータ信号のステート、並びに、各ステートにおけるシリアルデータ信号の転送開始タイミングを規定する信号である。このバスステート信号は、ホスト機器からメモリカードへ転送される。ステートは、パケット通信が行われない１つのステート（ＢＳ０）と、パケット通信中の３つのステート（ＢＳ１〜ＢＳ３）との合計４つのステートに区分される。バスステート信号は、ＨｉｇｈとＬｏｗとの切り換えタイミングで、ＢＳ０からＢＳ３まで順番にステートを切り換えていく。
【０１４３】
クロック信号は、バス上に転送されるシリアルデータ信号及びバスステート信号のクロックである。このクロック信号は、ホスト機器からメモリカードへ転送される。クロック信号は、パケット通信中の３つのステート（ＢＳ１〜ＢＳ３）には必ず出力される。
【０１４４】
各ステートでの通信内容は、図１７に示すようになる。
【０１４５】
ＢＳ０は、シリアルデータ（ＳＤＩＯ）ラインに、メモリカードからホスト機器への割り込み信号（ＩＮＴ信号）が転送可能なステートで、パケット通信は行われない。ＢＳ０を示すバスステート信号の信号レベルは、Ｌｏｗで表される。
【０１４６】
ＢＳ１は、シリアルデータ（ＳＤＩＯ）ラインに、ＴＰＣコマンドが転送されるステートである。ＢＳ１を示すバスステートの信号レベルはＨｉｇｈで表される。ＴＰＣコマンドは、ホスト機器からメモリカードへ転送される。ＴＰＣコマンドは、ホスト機器がメモリカードの内部にアクセスするために必要なコマンドである。ＴＰＣコマンドには、データバッファに対するデータのリード／ライト、レジスタに対するデータのリード／ライト、メモリコントローラへ与えるコマンドの設定の３つの種類の内容がある。メモリコントローラへ与えるコマンドとしては、例えば、フラッシュ制御コマンド、ファンクション制御コマンドがある。フラッシュ制御コマンドは、メモリカード内のＩＣメモリに対して直接アクセスするためのコマンドである。例えば、メモリの指定ページのデータをデータバッファへ読み出す読出コマンド、データバッファのデータを指定ページに書き込む書込コマンド、メモリ内の所定のブロックのデータを消去する消去コマンド等である。また、ファンクション制御コマンドは、メモリカード上の各ファンクションを制御するためのコマンドである。例えば、メモリカード内のクロック発振器を停止するコマンド、データバッファをクリアするコマンド等である。
【０１４７】
ＢＳ２及びＢＳ３では、メモリカードからホスト機器へデータを転送するリードプロトコルと、ホスト機器からメモリカードへデータ転送するライトプロトコルとで、シリアルデータ信号の属性が異なる。
【０１４８】
ＢＳ２は、リードプロトコル時には、シリアルデータ（ＳＤＩＯ）ラインに、ビジー（ＢＳＹ）信号及びレディ（ＲＤＹ）信号が転送される。すなわち、リードプロトコル時には、ホスト機器からのコマンドに応じてメモリカードからホスト機器へデータ転送が行われるが、その転送準備が完了していない場合にメモリカードからホスト機器へビジー信号が送出され、その転送準備が完了するとメモリカードからホスト機器へレディー信号が送出される。
【０１４９】
ＢＳ２は、ライトプロトコル時には、シリアルデータ（ＳＤＩＯ）ラインに、書き込み対象となる転送データ及びこの転送データのＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ  ｃｏｄｅｓ）が、ホスト機器からメモリカードへ転送される。ＢＳ３は、リードプロトコル時には、シリアルデータ（ＳＤＩＯ）ラインに、読み出し対象となる転送データ及びこの転送データのＣＲＣが、メモリカードからホスト機器へ転送される。
【０１５０】
ＢＳ３は、ライトプロトコル時には、シリアルデータ（ＳＤＩＯ）ラインに、ビジー信号及びレディー信号が転送される。すなわち、ライトプロトコル時には、ホスト機器からコマンドとともに書き込みデータがメモリカードへ転送されるが、その転送データに対する処理が完了していない場合にメモリカードからビジー信号が送出され、その処理が完了するとメモリカードからレディー信号が送出される。
【０１５１】
本シリアルインタフェースでは、以上のようにステートの管理がされる。なお、本インタフェースでは、ＢＳ１からＢＳ３までを１つのパケットと考え、通信エラーが発生しないかぎり１回の通信は１パケットで完了するものとしている。
【０１５２】
シリアルインタフェースでの信号タイミング
シリアルインタフェースにおける各信号の入出力タイミングについて説明をする。
【０１５３】
本シリアルインタフェースでは、次のようなタイミングで信号の入出力を行う。
【０１５４】
（１）送り側は、クロック信号の立ち下がりでシリアルデータ信号を出力する。受け側は、クロック信号の立ち上がりで、シリアルデータ信号を入力する。
【０１５５】
（２）ホスト機器は、クロック信号の立ち下がりに同期して、バスステート信号を出力する。メモリカードは、クロック信号の立ち上がりで、バスステート信号を検出する。ホスト機器は、シリアルデータ信号上の最終データのＬＳＢを出力するタイミングに同期して、新しいバスステート信号に切り換える。
【０１５６】
（３）ＴＰＣ、データ、ＣＲＣのシリアルデータ（ＳＤＩＯ）信号に転送されるデータは、ＭＳＢファーストで転送される。
【０１５７】
以上の入出力タイミングに乗っ取ったデータ転送処理の具体例について説明する。
【０１５８】
（ＢＳ１でのデータ処理）
まず、ＢＳ１のときのデータ転送処理について図１８を参照して説明する。
【０１５９】
−−−ホスト機器側のタイミング
ホスト機器は、クロック信号の任意の立ち下がりエッジ（Ｔ１）で、バスステート信号をＨｉｇｈとする。
【０１６０】
続いて、ホスト機器は、クロック信号の次の立ち上がりエッジ（Ｔ２）までに、クロック（ＳＣＬＫ）信号の供給を開始する。
【０１６１】
続いて、ホスト機器は、クロック信号の次の立ち下がりエッジ（Ｔ３）から、ＴＰＣの出力を開始する。ＴＰＣは、ＭＳＢから出力される。
【０１６２】
続いて、ホスト機器は、ＴＰＣのＬＳＢが出力されるクロック信号の立ち下がりエッジ（Ｔ５）のタイミングで、バスステート信号をＬｏｗに切り換える。
【０１６３】
続いて、ホスト機器は、クロック信号の次の立ち下がりエッジ（Ｔ７）で、ＢＳ２で伝送される転送データの出力を開始する。なお、ここでは、ライトパケット時での説明をしているが、リードパケット時には、ＢＳＹ／ＲＤＹ信号の入力となる。
【０１６４】
−−−メモリカード側のタイミング
まず、メモリカードは、タイミング（Ｔ２）でバスステート信号のＨｉｇｈを検出し、クロック信号の次の立ち上がりエッジ（Ｔ４）からＴＰＣのＭＳＢを受信する。
【０１６５】
続いて、メモリカードは、クロック信号の立ち上がりエッジ（Ｔ６）で、ＴＰＣのＬＳＢを受信する。このとき、メモリカードは、ＴＰＣのＬＳＢを受信すると同時（Ｔ６）にバスステート信号のＬｏｗを検出する。
【０１６６】
続いて、クロック信号の次の立ち下がりエッジ（Ｔ７）から、ＢＳ２に対する処理を開始する。
【０１６７】
（ＢＳ２でのデータ処理）
つぎに、ＢＳ２のときのデータの転送処理（ライトパケット時）について図１９を参照して説明する。
【０１６８】
−−−ホスト機器側のタイミング
ホスト機器は、バスステート信号をＬｏｗに切り換えた立ち下がりエッジ（Ｔ１１）のタイミングから１クロック後の立ち下がりエッジ（Ｔ１３）で、先頭データのＭＳＢからデータの転送を開始する。
【０１６９】
続いて、ホスト機器は、全転送データを送出した後、ＣＲＣを１６ビット送出する。
【０１７０】
続いて、ホスト機器は、ＣＲＣのＬＳＢが出力されるクロック信号の立ち下がりエッジ（Ｔ１５）のタイミングで、バスステート信号をＨｉｇｈに切り換える。
【０１７１】
続いて、ホスト機器は、上記タイミング（Ｔ１５）の１クロック半後のクロック信号の立ち上がりエッジ（Ｔ１８）からＢＳ３のＢＳＹ信号の受信を開始する。
【０１７２】
−−−メモリカード側のタイミング
メモリカードは、バスステート信号がＬｏｗに切り替わったタイミング（Ｔ１１）の次の立ち上がりエッジ（Ｔ１２）でバスステート信号のＬｏｗを検出する。
【０１７３】
続いて、メモリカードは、次の立ち上がりエッジ（Ｔ１４）から、転送データのＭＳＢを受信する。
【０１７４】
続いて、メモリカードは、上記タイミング（Ｔ１５）の次の立ち上がりエッジ（Ｔ１６）で、ＣＲＣのＬＳＢを受信する。このとき、メモリカードは、ＬＳＢを受信すると同時（Ｔ１６）にバスステート信号のＨｉｇｈを検出する。
【０１７５】
続いて、上記タイミング（Ｔ１６）の次の立ち下がりエッジ（Ｔ１７）から、ＢＳ３のＢＳＹ信号の出力を開始する。
【０１７６】
パラレルインタフェース
つぎにパラレルインタフェースについて説明する。
【０１７７】
パラレルインタフェースは、図２０に示すように、バスステート信号（ＢＳ）、４本のパラレルデータ信号（ＤＡＴＡ［３：０］）、クロック信号（ＳＣＬＫ）の６本の信号で、ホスト機器とメモリカードとを接続している。
【０１７８】
パラレルデータ信号は、メモリカードとホスト機器との間を転送されるデータ信号である。４ビット幅で伝送され、バスステート信号により規定されるステートに従い、そのデータの転送方向と属性が変化する。
【０１７９】
バスステート信号及びクロック信号は、シリアルインタフェースと同一である。
【０１８０】
各ステートでの通信内容は、シリアルインタフェースと同一である。ただし、ＢＳＹ信号、ＲＤＹ信号は、シリアルデータ信号と共用しているＤＡＴＡ０のラインに伝送される。
【０１８１】
パラレルインタフェースでの信号タイミング
パラレルインタフェースにおける各信号の入出力タイミングについて説明をする。
【０１８２】
本パラレルインタフェースでは、次のようなタイミングで信号の入出力を行う。
【０１８３】
（１）送り側は、クロック信号の立ち下がりでパラレルデータ信号を出力する。受け側は、クロック信号の立ち下がりで、パラレルデータ信号を入力する。
【０１８４】
このようにすることによって、シリアルインタフェースでは動作時間の余裕がクロックの半周期分しかなく、データの転送レートがクロックの周期の１／２で制約されてしまっていたが、パラレルインタフェースでは、クロックの１周期分の動作余裕とすることができるので、クロックをより高速にして高速通信が可能となる。
【０１８５】
（２）転送するデータは、８ビットデータ（バイトデータ）を、上位４ビット、下位４ビットに２分割して、４ビットパラレルデータにする。さらに、上位４ビットのデータを先に転送し、続いて、下位４ビットのデータを転送する。
【０１８６】
（３）ホスト機器は、メモリカードがクロック信号の立ち下がりを受けてから、パラレルデータを入力（ラッチ）することを考慮して、パラレルデータ信号及びバスステート信号の出力タイミングを設定する。
【０１８７】
（４）ホスト機器は、メモリカードがクロック信号の立ち下がりを受けてから、パラレルデータを出力することを考慮して、バスステート信号の入力（ラッチ）タイミングを設定する。
【０１８８】
（５）ホスト機器は、図２１に示すタイミングで、バスステート信号を変化させる。すなわち、前のステートの最終バイトの上位４ビットが、入力（ラッチ）されるタイミングと同じタイミングで、バスステート（ＢＳ）信号が入力（ラッチ）されるようにする。なお、図２１において、Ｓ１のタイミングは、バスステートの変化タイミング、及び、最終バイトの上位４ビットを出力するタイミングである。Ｓ２のタイミングは、バスステートの変化をメモリカード側が検出するタイミング、最終バイトの上位４ビットをラッチするタイミング、及び、最終バイトの下位４ビットを出力するタイミングである。Ｓ３のタイミングは、最終バイトの下位４ビットを出力するタイミング、及び、先頭バイトの上位４ビットを出力するタイミングである。Ｓ４のタイミングは、最終バイトの上位４ビットをラッチするタイミング、及び、最終バイトの下位４ビットを出力するタイミングである。
【０１８９】
（６）パラレルデータの入出力の方向切り換え時には、パラレルデータ信号の各端子に設けられている出力ドライバの出力端を、ホスト機器側及びメモリカード側同時に、１クロック分ハイインピーダンス（開放状態）としたのち、新たな方向のデータ転送を開始する。
【０１９０】
このようにすることによって、データ出力ドライバの出力端の制御のタイミングが多少ずれてもデータバスの衝突が生じない。そのため、厳格なタイミング制御をせずに、確実なデータ伝送を行うことができる。
【０１９１】
以上の入出力タイミングに乗っ取ったデータ転送処理の具体例について説明する。
【０１９２】
なお、図２２〜図２５には、バスステート信号、クロック信号、転送データを図示するとともに、ホスト側イネーブル信号（ＸＯＥｈｏｓｔ）と、メモリカード側イネーブル信号（ＸＯＥｍｓ）とを記載している。ホスト側イネーブル信号（ＸＯＥｈｏｓｔ）は、ホスト機器のパラレルデータ（ＤＡＴＡ［３：０］）の各端子に設けられている出力ドライバの出力端を、ハイインピーダンスとするための信号である。また、メモリカード側イネーブル信号（ＸＯＥｍｓ）は、メモリカードのパラレルデータ（ＤＡＴＡ［３：０］）の各端子に設けられている出力ドライバの出力端を、ハイインピーダンスとするための信号である。両者のイネーブル信号は、Ｈｉｇｈとなると出力ドライバの出力端をハイインピーダンスとし、Ｌｏｗとなると出力ドライバの出力端を有効とするように制御が行われる。
【０１９３】
また、図２２〜図２５中において、Ｘは不定値を示し、Ｚはハイインピーダンスの状態を示す。
【０１９４】
（ＢＳ１でのデータ処理）
ＢＳ１でのデータ転送処理（ＴＰＣの転送処理）について図２２を参照して説明する。
【０１９５】
−−−ホスト機器側のタイミング
ホスト機器は、クロック信号の任意の立ち下がりエッジ（Ｔ２１）で、バスステート信号をＨｉｇｈとする。
【０１９６】
続いて、ホスト機器は、クロック信号の次の立ち下がりエッジ（Ｔ２２）までに、クロック信号の供給を開始する。
【０１９７】
続いて、ホスト機器は、クロック信号の次の立ち下がりエッジ（Ｔ２３）から、ＢＳ１に対する処理を開始する。
【０１９８】
ＢＳ１に対する処理が開始されても、ホスト機器は、ホスト側イネーブル信号（ＸＯＥｈｏｓｔ）をＨｉｇｈとしたままとしておき、次のクロック信号の立ち下がりエッジ（Ｔ２４）でホスト側イネーブル信号（ＸＯＥｈｏｓｔ）をＬｏｗとする。つまり、ＢＳ１に対する処理が開始して最初の１ビット目は、パラレルデータ信号の出力ドライバの出力をハイインピーダンスとしておき、２ビット目からパラレルデータ信号の出力ドライバの出力を有効とする。なお、ＢＳ１に対する処理が開始してから２ビット目に転送されるパラレルデータの値は、Ｌｏｗを出力してメモリカード側は不定値として認識する。
【０１９９】
続いて、ホスト機器は、クロック信号の次の立ち下がりエッジ（Ｔ２５）で、ＴＰＣの上位４ビットの送出を開始する。つまり、ＢＳ１に対する処理が開始してから３ビット目に、ＴＰＣの上位４ビットを転送する。なお、ＴＰＣは、８ビットのバイトデータである。
【０２００】
続いて、ホスト機器は、クロック信号の次の立ち下がりエッジ（Ｔ２６）で、ＴＰＣの下位４ビットの送出を開始する。つまり、ＢＳ１に対する処理が開始してから４ビット目に、ＴＰＣの下位４ビットを送出する。
【０２０１】
続いて、ホスト機器は、クロック信号の次の立ち下がりエッジ（Ｔ２７）で、バスステート信号をＬｏｗとする。なお、ＢＳ１に対する処理が開始してから５ビット目は、Ｌｏｗを出力してメモリカード側は不定値として認識する。
【０２０２】
続いて、ホスト機器は、クロック信号の次の立ち下がりエッジ（Ｔ２８）で、不定値を送出するか、或いは、ホスト側イネーブル信号（ＸＯＥｈｏｓｔ）をＨｉｇｈとする。すなわち、ＢＳ１に対する処理が開始してから６ビット目は、不定値、或いは、ハインピーダンスとする。いずれにするかは、転送したＴＰＣがライト系のコマンドであるか、リード系のコマンドであるかによって異なる。ライト系のコマンドである場合には、次のステート（ＢＳ２）で伝送データの方向は反転しないため、この６ビット目はハイインピーダンスとせずにＬｏｗを出力してメモリカード側は不定値として認識する。リード系のコマンドである場合には、次のステート（ＢＳ２）で伝送データの方向が反転する。つまり、メモリカードからホスト機器へデータが送信される。そのため、この６ビット目は、ハイインピーダンスとする。
【０２０３】
そして、ホスト機器は、次の立ち下がりエッジ（Ｔ２９）で、ＢＳ１に対する処理を終了して、次のステートであるＢＳ２の処理を開始する。
【０２０４】
−−−メモリカード側のタイミング
メモリカードは、上記タイミング（Ｔ２２）で、バスステート信号のＨｉｇｈを検出する。
【０２０５】
続いて、メモリカードは、クロック信号の次の立ち下がりエッジ（Ｔ２３）から、ＢＳ１に対する処理を開始する。
【０２０６】
ＢＳ１に対する処理が開始されると、メモリカードは、まず、最初の立ち下がりエッジ（Ｔ２３）で、メモリカード側イネーブル信号（ＸＯＥｍｓ）をＨｉｇｈとする。
【０２０７】
続いて、メモリカードは、タイミング（Ｔ２４）、（Ｔ２５）で受信したデータは、無視する。ハイインピーダンス又は不定値だからである。なお、以下の（Ｔ２８）、（Ｔ２９）でも同様に無視する。
【０２０８】
続いて、メモリカードは、クロック信号の次の立ち下がりエッジ（Ｔ２６）で、ＴＰＣの上位４ビットのデータを受信する。
【０２０９】
続いて、メモリカードは、クロック信号の次の立ち下がりエッジ（Ｔ２７）で、ＴＰＣの下位４ビットのデータを受信する。
【０２１０】
続いて、メモリカードは、クロック信号の次の立ち下がりエッジ（Ｔ２８）で、バスステート信号のＬｏｗを検出する。
【０２１１】
そして、メモリカードは、クロック信号の次の立ち下がりエッジ（Ｔ２９）で、ＢＳ１に対する処理を終了して、次のステートであるＢＳ２の処理を開始する。
【０２１２】
（ＢＳ２でのデータ処理  ライトパケット時）
ＢＳ２でのデータ転送処理（ライトパケット時）について図２３を参照して説明する。
【０２１３】
−−−ホスト機器側のタイミング
ホスト機器は、クロック信号の所定の立ち下がりエッジ（Ｔ３１）で、バスステート信号をＬｏｗとする。このバスステート信号の切り換えタイミングは、図２２に示すＴ２７のタイミングである。
【０２１４】
ホスト機器は、バスステート信号がＬｏｗと切り替わったタイミングの２クロック後の立ち下がりエッジ（Ｔ３３）で、ＢＳ２の処理を開始する。なお、ホスト側イネーブル信号（ＸＯＥｈｏｓｔ）は、ＢＳ１に引き続きＬｏｗとしたままである。
【０２１５】
ホスト機器は、ＢＳ２の処理を開始したタイミング（Ｔ３３）で、先頭バイトの上位４ビットから、データの転送を開始する。
【０２１６】
続いて、ホスト機器は、全データを送出した後、ＣＲＣを１６ビット送出する。
【０２１７】
続いて、ホスト機器は、ＣＲＣの最終の４ビットデータが出力されるタイミング（Ｔ３５）の次のクロック信号の立ち下がりエッジ（Ｔ３６）のタイミングで、バスステート信号をＨｉｇｈに切り換える。なお、このときに転送されるパラレルデータの値は、ホスト側はＬｏｗを出力してメモリカード側は不定値として認識する。
【０２１８】
続いて、ホスト機器は、クロック信号の次の立ち下がりエッジ（Ｔ３７）で、ホスト側イネーブル信号（ＸＯＥｈｏｓｔ）をＨｉｇｈとする。つまり、ライトパケット時のＢＳ２の最終ビットは、ハイインピーダンスとしておく。
【０２１９】
そして、ホスト機器は、次の立ち下がりエッジ（Ｔ３８）で、ＢＳ２に対する処理を終了して、次のステートであるＢＳ３の処理を開始する。
【０２２０】
−−−メモリカード側のタイミング
メモリカードは、タイミング（Ｔ３２）で、バスステート信号のＬｏｗを検出する。
【０２２１】
続いて、メモリカードは、クロック信号の次の立ち下がりエッジ（Ｔ３３）から、ＢＳ２に対する処理を開始する。なお、メモリカード側イネーブル信号（ＸＯＥｍｓ）は、ＢＳ１に引き続きｈｉｇｈとしたままである。
【０２２２】
続いて、メモリカードは、ＢＳ２の処理を開始したクロック信号の次の立ち下がりエッジ（Ｔ３４）から、転送データの受信を開始する。
【０２２３】
続いて、メモリカードは、タイミング（Ｔ３６）でＣＲＣの最終バイトの下位４ビットを受信したのち、次の立ち下がりエッジ（Ｔ３７）で、バスステート信号のＨｉｇｈを検出する。
【０２２４】
そして、次の立ち下がりエッジ（Ｔ３８）で、メモリカード側イネーブル信号（ＸＯＥｍｓ）をＬｏｗとして、ＢＳ３のＢＳＹ信号の出力を開始する。
【０２２５】
（ＢＳ３でのデータ処理 リードパケット時）
ＢＳ３でのデータ転送処理（リードパケット時）について図２４を参照して説明する。
【０２２６】
−−−ホスト機器側のタイミング
ホスト機器は、クロック信号の所定の立ち下がりエッジ（Ｔ４１）で、バスステート信号をＨｉｇｈとする。
【０２２７】
続いて、ホスト機器は、バスステート信号がＨｉｇｈと切り替わったタイミングの２クロック後の立ち下がりエッジ（Ｔ４３）で、ＢＳ３の処理を開始する。なお、ホスト側イネーブル信号（ＸＯＥｈｏｓｔ）は、ＢＳ２に引き続きＨｉｇｈとしたままである。
【０２２８】
続いて、ホスト機器は、ＢＳ３の処理を開始したタイミング（Ｔ４３）のクロック信号の次の立ち下がりエッジ（Ｔ４４）から、転送データの受信を開始する。
【０２２９】
続いて、ホスト機器は、ＣＲＣの最終バイトの一つ前のバイトの下位４ビットを受信するタイミングで、バスステート信号をＬｏｗに切り換える。
【０２３０】
そして、ＣＲＣの最終バイトの下位４ビットを受信したのち、リードパケットを終了し、次のステートであるＢＳ０の処理を開始する。
【０２３１】
−−−メモリカード側のタイミング
メモリカードは、タイミング（Ｔ４２）で、バスステート信号のＨｉｇｈを検出する。
【０２３２】
続いて、メモリカードは、クロック信号の次の立ち下がりエッジ（Ｔ４３）から、ＢＳ３に対する処理を開始する。なお、メモリカード側イネーブル信号（ＸＯＥｍｓ）は、ＢＳ２に引き続きＬｏｗとしたままである。
【０２３３】
続いてメモリカードは、ＢＳ３の処理を開始したタイミング（Ｔ４３）で、先頭バイトの上位４ビットから、データの転送を開始する。
【０２３４】
続いて、メモリカードは、全データを送出した後、ＣＲＣを１６ビット送出する。
【０２３５】
続いて、メモリカードは、ＣＲＣの最終バイトの下位４ビットが出力されるタイミング（Ｔ４６）と同時に、バスステート信号のＬｏｗを検出し、ＢＳ３に対する処理を終了して、次のステートであるＢＳ０の処理を開始する。
【０２３６】
（ＢＳＹ信号／ＲＤＹ信号の伝送）
ＢＳ２（リードパケット時）及びＢＳ３（ライトパケット時）でのデータ転送処理（ビジー信号、レディー信号）について図２５を参照して説明する。
【０２３７】
−−−ホスト機器側のタイミング
ホスト機器は、クロック信号の所定の立ち下がりエッジ（Ｔ５１）で、バスステート信号を切り換える。ライトパケット時はバスステート信号がＨｉｇｈに切り換えられ（図２３のタイミングＴ３６）、リードパケット時はバスステート信号がＬｏｗに切り換えられる（図２２のタイミングＴ２７）。
【０２３８】
続いて、ホスト機器は、バスステート信号が切り替わったタイミングの１クロック後の立ち下がりエッジ（Ｔ５２）で、ホスト側イネーブル信号（ＸＯＥｈｏｓｔ）をＨｉｇｈとする。
【０２３９】
続いて、ホスト機器は、上記タイミング（Ｔ５２）の３クロック後の立ち下がりエッジ（Ｔ５５）から、ＢＳＹ信号の受信を開始する。
【０２４０】
続いて、ホスト機器は、１クロック毎にＨｉｇｈとＬｏｗを繰り返すトグル状態のＲＤＹ信号を、４クロック以上検出したタイミング（Ｔ５６）で、バスステート信号を切り換える。ライトパケット時はバスステート信号をＬｏｗに切り換え、リードパケット時はバスステート信号をＨｉｇｈに切り換える。
【０２４１】
そして、ホスト機器は、上記タイミング（Ｔ５６）の２クロック後のタイミング（Ｔ５８）から、次のステート（ライトパケットであればＢＳ０、リードパケットであればＢＳ３）の処理を開始する。
【０２４２】
−−−メモリカード側のタイミング
メモリカードは、タイミング（Ｔ５２）で、バスステート信号の切り替わりを検出したのち、その１クロック後の立ち下がりエッジ（Ｔ５３）で、メモリカード側イネーブル信号（ＸＯＥｍｓ）をＬｏｗとすると同時にＢＳＹ信号の出力を開始する。
【０２４３】
続いて、メモリカードは、内部処理の終了に伴い、ＢＳＹ信号からＲＤＹ信号の出力に切り換える。
【０２４４】
続いて、メモリカードは、タイミング（Ｔ５７）で、バスステート信号の切り換えを検出し、その１クロック後の立ち下がりエッジ（Ｔ５８）から、次のステート（ライトパケットであればＢＳ０、リードパケットであればＢＳ３）の処理を開始する。
【０２４５】
インタフェース回路のフロントエンド
つぎに、メモリカードとホスト機器との間のインタフェースのフロントエンド部分の具体的な回路構成例を示す。
【０２４６】
図２６に、タイプ２のメモリカードとタイプ２のホスト機器のインタフェースのフロントエンド部分の回路構成図を示す。
【０２４７】
−−メモリカード側（タイプ２）の回路構成
メモリカード１は、第１〜第４のデータ入力バッファ１０１Ｒ〜１０４Ｒと、第１〜第４のデータ出力バッファ１０１Ｓ〜１０４Ｓと、ＢＳ入力バッファ１０５と、ＣＬＫ入力バッファ１０６とを有している。
【０２４８】
第１のデータ入力バッファ１０１Ｒ及び第１のデータ出力バッファ１０１Ｓは、ＳＤＩＯ／ＤＡＴＡ０端子の入出力ドライバとして機能する。第２のデータ入力バッファ１０２Ｒ及び第２のデータ出力バッファ１０２Ｓは、ＤＡＴＡ１端子の入出力ドライバとして機能する。第３のデータ入力バッファ１０３Ｒ及び第３のデータ出力バッファ１０３Ｓは、ＤＡＴＡ２端子の入出力ドライバとして機能する。第４のデータ入力バッファ１０４Ｒ及び第４のデータ出力バッファ１０４Ｓは、ＤＡＴＡ３端子の入出力ドライバとして機能する。
【０２４９】
ＢＳ入力バッファ１０５は、ＢＳ端子の入力ドライバとして機能する。
【０２５０】
ＣＬＫ入力バッファ１０６は、ＳＣＬＫ端子の入力ドライバとして機能する。
【０２５１】
なお、第１〜第４のデータ出力バッファ１０１Ｓ〜１０４Ｓは、いわゆるトライステートバッファである。第１のデータ出力バッファ１０１Ｓには、イネーブル信号ＤＥ２が制御信号として入力される。第１のデータ出力バッファ１０１Ｓは、このイネーブル信号ＤＥ２が、Ｈｉｇｈのときに出力端がハイインピーダンスとなり、Ｌｏｗのときに出力端が有効となる。また、第２〜第４のデータ出力バッファ１０２Ｓ〜１０４Ｓには、イネーブル信号ＤＥ２０が制御信号として入力される。第２〜第４のデータ出力バッファ１０２Ｓ〜１０４Ｓは、このイネーブル信号ＤＥ２０が、Ｈｉｇｈのときに出力端がハイインピーダンスとなり、Ｌｏｗのときに出力端が有効となる。イネーブル信号ＤＥ２及びＤＥ２０は、図示しない制御部等から出力される。
【０２５２】
メモリカード１は、第１〜第４のデータ入力フリップフロップ１１１Ｒ〜１１４Ｒと、第１〜第４のデータ出力フリップフロップ１１１Ｓ〜１１４Ｓと、パラレルＢＳ入力フリップフロップ１１５と、シリアル用データ入力フリップ１２１Ｒと、シリアル用ＢＳ入力フリップフロップ１２５とを有している。
【０２５３】
第１のデータ入力フリップフロップ１１１Ｒ及び第１のデータ出力フリップフロップ１１１Ｓは、ＳＤＩＯ／ＤＡＴＡ０端子の入出力データのラッチ回路として機能する。第２のデータ入力フリップフロップ１１２Ｒ及び第２のデータ出力フリップフロップ１１２Ｓは、ＤＡＴＡ１端子の入出力データのラッチ回路として機能する。第３のデータ入力フリップフロップ１１３Ｒ及び第３のデータ出力フリップフロップ１１３Ｓは、ＤＡＴＡ２端子の入出力データのラッチ回路として機能する。第４のデータ入力フリップフロップ１１４Ｒ及び第４のデータ出力フリップフロップ１１４Ｓは、ＤＡＴＡ３端子の入出力データのラッチ回路として機能する。
【０２５４】
ＢＳ入力フリップフロップ１１５は、ＢＳ端子の入力データのラッチ回路として機能する。
【０２５５】
シリアル用データ入力フリップフロップ１２１Ｒは、シリアルインタフェースでデータ伝送される場合におけるＳＤＩＯ／ＤＡＴＡ０端子の入力データのラッチ回路として機能する。
【０２５６】
シリアル用ＢＳ入力フリップフロップ１２５は、シリアルインタフェースでデータ伝送された場合におけるＢＳ端子の入力データのラッチ回路として機能する。
【０２５７】
第１〜第４のデータ入力フリップフロップ１１１Ｒ〜１１４Ｒには、第１〜第４のデータ入力バッファ１０１Ｒ〜１０４Ｒからデータが入力され、図示しない制御部等にデータが出力される。
【０２５８】
第１〜第４のデータ出力フリップフロップ１１１Ｓ〜１１４Ｓには、図示しない制御部等からデータが入力され、第１〜第４のデータ出力バッファ１０１Ｓ〜１０４Ｓにデータが出力される。
【０２５９】
ＢＳ入力用フリップフロップ１１５には、ＢＳ入力バッファ１０５からデータが入力され、図示しない制御部等にデータが出力される。
【０２６０】
シリアル用データ入力フリップフロップ１２１Ｒには、第１のデータ入力バッファ１０１Ｒからデータが入力され、図示しない制御部等にデータが出力される。
【０２６１】
シリアル用ＢＳ入力フリップフロップ１２５には、ＢＳ入力バッファ１０５からデータが入力され、図示しない制御部等にデータが出力される。
【０２６２】
また、以上のような各フリップフロップには、ＳＣＬＫ端子から供給されるクロック信号が入力される。
【０２６３】
ここで、第１〜第４のデータ入力フリップフロップ１１１Ｒ〜１１４Ｒ、第１〜第４のデータ出力フリップフロップ１１１Ｓ〜１１４Ｓ、ＢＳ入力フリップフロップ１１５は、それぞれクロック信号の立ち下がりエッジのタイミングに同期して、データをラッチするように動作する。
【０２６４】
それに対して、シリアル用データ入力フリップフロップ１２１Ｒ、及び、シリアル用ＢＳ入力フリップフロップ１２５は、クロック信号の立ち上がりエッジのタイミングに同期して、データをラッチするように動作をする。
【０２６５】
−−−ホスト機器側の（タイプ２）の回路構成
ホスト機器２は、第１〜第４のデータ入力バッファ２０１Ｒ〜２０４Ｒと、第１〜第４のデータ出力バッファ２０１Ｓ〜２０４Ｓと、ＢＳ出力バッファ２０５と、ＣＬＫ出力バッファ２０６とを有している。
【０２６６】
第１のデータ入力バッファ２０１Ｒ及び第１のデータ出力バッファ２０１Ｓは、ＳＤＩＯ／ＤＡＴＡ０端子の入出力ドライバとして機能する。第２のデータ入力バッファ２０２Ｒ及び第２のデータ出力バッファ２０２Ｓは、ＤＡＴＡ１端子の入出力ドライバとして機能する。第３のデータ入力バッファ２０３Ｒ及び第３のデータ出力バッファ２０３Ｓは、ＤＡＴＡ２端子の入出力ドライバとして機能する。第４のデータ入力バッファ２０４Ｒ及び第４のデータ出力バッファ２０４Ｓは、ＤＡＴＡ３端子の入出力ドライバとして機能する。
【０２６７】
ＢＳ出力バッファ２０５は、ＢＳ端子の出力ドライバとして機能する。
【０２６８】
ＣＬＫ出力バッファ２０６は、ＳＣＬＫ端子の出力ドライバとして機能する。
【０２６９】
なお、第１〜第４のデータ出力バッファ２０１Ｓ〜２０４Ｓは、いわゆるトライステートバッファである。第１のデータ出力バッファ２０１Ｓには、イネーブル信号ＤＥ１が制御信号として入力される。第１のデータ出力バッファ２０１Ｓは、このイネーブル信号ＤＥ１が、Ｈｉｇｈのときに出力端がハイインピーダンスとなり、Ｌｏｗのときに出力端が有効となる。また、第２〜第４のデータ出力バッファ２０２Ｓ〜２０４Ｓには、イネーブル信号ＤＥ１０が制御信号として入力される。第２〜第４のデータ出力バッファ２０２Ｓ〜２０４Ｓは、このイネーブル信号ＤＥ１０が、Ｈｉｇｈのときに出力端がハイインピーダンスとなり、Ｌｏｗのときに出力端が有効となる。イネーブル信号ＤＥ１及びＤＥ１０は、図示しない制御部等から出力される。
【０２７０】
ホスト機器２は、第１〜第４のデータ入力フリップフロップ２１１Ｒ〜２１４Ｒと、第１〜第４のデータ出力フリップフロップ２１１Ｓ〜２１４Ｓと、ＢＳ出力フリップフロップ２１５と、クロック発生器２１６とを有している。
【０２７１】
第１のデータ入力フリップフロップ２１１Ｒ及び第１のデータ出力フリップフロップ２１１Ｓは、ＳＤＩＯ／ＤＡＴＡ０端子の入出力データのラッチ回路として機能する。第２のデータ入力フリップフロップ２１２Ｒ及び第２のデータ出力フリップフロップ２１２Ｓは、ＤＡＴＡ１端子の入出力データのラッチ回路として機能する。第３のデータ入力フリップフロップ２１３Ｒ及び第３のデータ出力フリップフロップ２１３Ｓは、ＤＡＴＡ２端子の入出力データのラッチ回路として機能する。第４のデータ入力フリップフロップ２１４Ｒ及び第４のデータ出力フリップフロップ２１４Ｓは、ＤＡＴＡ３端子の入出力データのラッチ回路として機能する。
【０２７２】
ＢＳ出力フリップフロップ２１５は、ＢＳ端子の出力データのラッチ回路として機能する。
【０２７３】
クロック発生器２１６は、所定の周波数（例えば２０ＭＨｚ）のクロック信号を発生する。
【０２７４】
第１〜第４のデータ入力フリップフロップ２１１Ｒ〜２１４Ｒには、第１〜第４のデータ入力バッファ２０１Ｒ〜２０４Ｒからデータが入力され、図示しない制御部等にデータが出力される。
【０２７５】
第１〜第４のデータ出力フリップフロップ２１１Ｓ〜２１４Ｓには、図示しない制御部等からデータが入力され、第１〜第４のデータ出力バッファ２０１Ｓ〜２０４Ｓにデータが出力される。
【０２７６】
ＢＳ出力フリップフロップ２１５には、図示しない制御部等からデータが入力され、ＢＳ出力バッファ２０５へデータが出力される。
【０２７７】
また、以上のような各フリップフロップには、クロック発生器２１６から発生されるクロック信号が入力される。
【０２７８】
ここで、第１〜第４のデータ入力フリップフロップ２１１Ｒ〜２１４Ｒ、第１〜第４のデータ出力フリップフロップ２１１Ｓ〜２１４Ｓ、ＢＳ出力フリップフロップ２１５は、それぞれクロック信号の立ち下がりエッジのタイミングに同期して、データをラッチするように動作する。
【０２７９】
以上のようなフロントエンドの回路構成を取ることにより、メモリカードとホスト機器との間で、上述したシリアルインタフェース及びパラレルインタフェースに合致したタイミングでデータの伝送を行うことができる。
【０２８０】
−−−パラレルデータ通信
つぎに、以上のようなフロントエンド回路において、ホスト機器２からメモリカード１へパラレルデータ伝送する場合について説明をする。
【０２８１】
まず、ホスト側のイネーブル信号ＤＥ１及びＤＥ１０はＬｏｗとされ、メモリカード側のイネーブル信号ＤＥ２及びＤＥ２０はＨｉｇｈとされる。そのため、ホスト側のデータ出力バッファ２０１Ｓ〜２０４Ｓは、出力がイネーブル状態とされ、メモリカード側のデータ出力バッファ１０１Ｓ〜１０４Ｓは出力がハイインピーダンス状態とされる。このことから、パラレルデータ信号（ＤＡＴＡ３：０）は、ホスト機器２→メモリカード１の方向に伝送されることとなる。
【０２８２】
パラレルデータ信号は、クロック信号の立ち下がりエッジに同期して、ホスト機器側のデータ出力フリップフロップ２１１Ｓ〜２１４Ｓから出力される。データ出力フリップフロップ２１１Ｓ〜２１４Ｓから出力されたパラレルデータ信号は、データ出力バッファ２０１Ｓ〜２０４Ｓ→ピン４、３、５、７→データ入力バッファ１０１Ｒ〜１０４Ｒを介して、メモリカード側のデータ入力フリップフロップ１１１Ｒ〜１１４Ｒに供給される。パラレルデータ信号は、クロック信号の立ち下がりエッジに同期して、メモリカード側のデータ入力フリップフロップ１１１Ｒ〜１１４Ｒに入力される。
【０２８３】
なお、このとき、シリアル用データ入力フリップフロップ１２１Ｒは、使用されない。
【０２８４】
つぎに、メモリカード１からホスト機器２へパラレルデータ伝送する場合について説明をする。
【０２８５】
まず、ホスト側のイネーブル信号ＤＥ１及びＤＥ１０はＨｉｇｈとされ、メモリカード側のイネーブル信号ＤＥ２及びＤＥ２０はＬｏｗとされる。そのため、ホスト側のデータ出力バッファ２０１Ｓ〜２０４Ｓは、出力がハイインピーダンス状態とされ、メモリカード側のデータ出力バッファ１０１Ｓ〜１０４Ｓは出力がイネーブル状態とされる。このことから、パラレルデータ信号（ＤＡＴＡ３：０）は、メモリカード１→ホスト機器２の方向に伝送されることとなる。
【０２８６】
パラレルデータ信号は、クロック信号の立ち下がりエッジに同期して、メモリカード側のデータ出力フリップフロップ１１１Ｓ〜１１４Ｓから出力される。データ出力フリップフロップ１１１Ｓ〜１１４Ｓから出力されたパラレルデータ信号は、データ出力バッファ１０１Ｓ〜１０４Ｓ→ピン４、３、５、７→データ入力バッファ２０１Ｒ〜２０４Ｒを介して、ホスト機器側のデータ入力フリップフロップ２１１Ｒ〜２１４Ｒに供給される。パラレルデータ信号は、クロック信号の立ち下がりエッジに同期して、ホスト機器側のデータ入力フリップフロップ２１１Ｒ〜２１４Ｒに入力される。
【０２８７】
なお、バスステート信号は、ホスト機器２からメモリカード１への一方向にデータ伝送される。すなわち、本インタフェースでは、データ通信の主導権は、ホスト機器２側が有することとなる。
【０２８８】
バスステート信号は、クロック信号の立ち下がりエッジに同期して、メモリカード側のＢＳ出力フリップフロップ２１５から出力される。ＢＳ出力フリップフロップ２１５から出力されたバスステート信号は、ＢＳ出力バッファ２０５→ピン２→ＢＳ入力バッファ１０５を介して、メモリカード側のＢＳ入力フリップフロップ１１５に供給される。バスステート信号は、クロック信号の下がりエッジに同期して、メモリカード側のＢＳ入力フリップフロップ１１５に入力される。なお、このとき、メモリカード側のシリアルＢＳ入力フリップフロップ１２５は使用されない。
【０２８９】
また、クロック信号は、クロック発生器２１６から発生され、ホスト機器２の各フリップフロップに供給される。また、クロック信号は、ＣＬＫ出力バッファ２０６→ピン８→ＣＬＫ入力バッファ１０６を介して、メモリカード１の各フリップフロップに入力される。
【０２９０】
−−−シリアルデータ通信
つぎに、以上のようなフロントエンド回路において、ホスト機器２からメモリカード１へシリアルデータ伝送する場合について説明をする。
【０２９１】
まず、ホスト側のイネーブル信号ＤＥ１はＬｏｗとされ、メモリカード側のイネーブル信号ＤＥ２はＨｉｇｈとされる。そのため、ホスト側のデータ出力バッファ２０１Ｓは、出力がイネーブル状態とされ、メモリカード側のデータ出力バッファ１０１Ｓは出力がハイインピーダンス状態とされる。このことから、シリアルデータ信号（ＳＤＩＯ）は、ホスト機器２→メモリカード１の方向に伝送されることとなる。
【０２９２】
また、ホスト側のイネーブル信号ＤＥ１０及びメモリカード側のイネーブル信号ＤＥ２０は、両者ともＨｉｇｈとされる。そのため、ホスト側のデータ出力バッファ２０２Ｓ〜２０４Ｓ並びにメモリカード側のデータ出力バッファ１０２Ｓ〜１０４Ｓは、出力がハイインピーダンス状態とされる。このことから、シリアルデータ信号（ＳＤＩＯ）が伝送される以外の、残りの３つのパラレルデータ信号は、データ転送がされないこととなる。
【０２９３】
シリアルデータ信号は、クロック信号の立ち下がりエッジに同期して、ホスト機器側のデータ出力フリップフロップ２１１Ｓから出力される。データ出力フリップフロップ２１１Ｓから出力されたシリアルデータ信号は、データ出力バッファ２０１Ｓ→ピン４→データ入力バッファ１０１Ｒを介して、メモリカード側のシリアルデータ入力フリップフロップ１２１Ｒに供給される。シリアルデータ信号は、クロック信号の立ち上がりエッジに同期して、メモリカード側のデータ入力フリップフロップ１２１Ｒに入力される。
【０２９４】
なお、このとき、第１〜第４のデータ入力フリップフロップ１１１Ｒ〜１１４Ｒは、全て使用されない。
【０２９５】
つぎに、メモリカード１からホスト機器２へシリアルデータ伝送する場合について説明をする。
【０２９６】
まず、ホスト側のイネーブル信号ＤＥ１はＨｉｇｈとされ、メモリカード側のイネーブル信号ＤＥ２はＬｏｗとされる。そのため、ホスト側のデータ出力バッファ２０１Ｓは、出力がハイインピーダンス状態とされ、メモリカード側のデータ出力バッファ１０１Ｓは出力がイネーブル状態とされる。このことから、シリアルデータ信号（ＳＤＩＯ）は、メモリカード１→ホスト機器２の方向に伝送されることとなる。
【０２９７】
また、ホスト側のイネーブル信号ＤＥ１０及びメモリカード側のイネーブル信号ＤＥ２０は、両者ともＨｉｇｈとされる。そのため、ホスト側のデータ出力バッファ２０２Ｓ〜２０４Ｓ並びにメモリカード側のデータ出力バッファ１０２Ｓ〜１０４Ｓは、出力がハイインピーダンス状態とされる。このことから、シリアルデータ信号（ＳＤＩＯ）が伝送される以外の、残りの３つのパラレルデータ信号は、データ転送がされないこととなる。
【０２９８】
シリアルデータ信号は、クロック信号の立ち下がりエッジに同期して、メモリカード側のデータ出力フリップフロップ１１１Ｓから出力される。データ出力フリップフロップ１１１Ｓから出力されたシリアルデータ信号は、データ出力バッファ１０１Ｓ→ピン４→データ入力バッファ２０１Ｒを介して、ホスト機器側のデータ入力フリップフロップ２１１Ｒに供給される。シリアルデータ信号は、クロック信号の立ち下がりエッジに同期して、ホスト機器側のデータ入力フリップフロップ２１１Ｒに入力される。
【０２９９】
バスステート信号は、クロック信号の立ち下がりエッジに同期して、ホスト側のＢＳ出力フリップフロップ２１５から出力される。ＢＳ出力フリップフロップ２１５から出力されたバスステート信号は、ＢＳ出力バッファ２０５→ピン２→ＢＳ入力バッファ１０５を介して、メモリカード側のＢＳ入力フリップフロップ１２５に供給される。バスステート信号は、クロック信号の立ち上がりエッジに同期して、メモリカード側のＢＳ入力フリップフロップ１２５に入力される。なお、このとき、メモリカード側のＢＳ入力フリップフロップ１１５は使用されない。
【０３００】
ホスト（タイプ１）とメモリカード（タイプ２）の接続
図２７に、タイプ２のメモリカードとタイプ１のホスト機器とを接続した場合のインタフェースのフロントエンド部分の回路構成図を示す。
【０３０１】
タイプ２のメモリカード１は、図２６において示したものと同一である。また、タイプ１のホスト機器６００は、図２において示したものと同一である。
【０３０２】
このような接続の場合、タイプ２のメモリカードのイネーブル信号ＤＥ２０を、初期値としてＨｉｇｈに設定しておけば、タイプ１のメモリカードと同一の構成となることがわかる。
【０３０３】
このような接続の場合、メモリカード側のシリアルデータ入力フリップフロップ１２１Ｒ及び第１のデータ出力フリップフロップ１１１Ｓを用いて通信を行えば、タイプ１のシリアルインタフェースと同様の通信を行うことができる。
【０３０４】
ホスト（タイプ２）とメモリカード（タイプ１）の接続
図２８に、タイプ１のメモリカードとタイプ２のホスト機器のインタフェースのフロントエンド部分の回路構成図を示す。
【０３０５】
タイプ１のメモリカード５００は、図２において示したものと同一である。また、タイプ２のホスト機器２は、図２６において示したものと同一である。
【０３０６】
このような接続の場合、タイプ２のホスト機器２のイネーブル信号ＤＥ１０を、初期値としてＨｉｇｈに設定しておけば、タイプ１のメモリカードと同一の構成となることがわかる。
【０３０７】
このような接続の場合、ホスト機器側の第１のデータ入力フリップフロップ２１１Ｒ及び第１のデータ出力フリップフロップ２１１Ｓを用いて通信を行えば、タイプ１のシリアルインタフェースと同様の通信を行うことができる。
【０３０８】
以上本発明の実施の形態として、本発明を適用したリムーバルな小型ＩＣメモリ装置、並びに、この小型ＩＣメモリを外部記憶メディアとして用いるデータ処理装置について説明をした。しかしながら、本発明のインタフェース装置は、このような小型ＩＣメモリ装置に適用することに限定されるものではない。例えば、本発明のインタフェース装置を、端子群の反対側の端子にカメラ装置が接続されたカメラモジュール等のＩＣメモリ以外の機能を有したリムーバブルな外部接続機器に適用してもよい。
【０３０９】
また、以上本発明の実施の形態として、パラレルインタフェースと、シリアルインタフェースとの両者の機能を有した小型ＩＣメモリ装置並びにデータ処理装置について説明したが、インタフェースを、パラレルインタフェースのみとしてもよい。
【発明の効果】
【０３１０】
本発明にかかるインタフェース装置では、パラレルデータの双方向通信されるパラレルデータと、ホスト機器から出力されるクロックと、パラレルデータの転送開始タイミングを示すバスステート信号とを用いて、外部接続機器とホスト機器との間のデータ通信を行う。
【０３１１】
そのため、本発明にかかるインタフェース装置では、シリアルデータと、クロックと、バスステート信号とにより行われていた通信よりも、一度に伝送できるデータ容量が複数倍となり、データ転送レートを高速にすることができる。
【０３１２】
また、本発明にかかるインタフェース装置では、パラレルデータの入力時には、複数本の各データ通信回線毎に設けられたデータ出力ドライバの出力端を開放状態としておき、パラレルデータの入力から出力への切り換え時には、通信相手のデータ出力ドライバの出力端が切り換え時から１クロック以上開放状態となった後に、自己のデータ出力ドライバの出力端を有効とする。
【０３１３】
そのため、本発明にかかるインタフェース装置では、データ出力ドライバの出力端の制御のタイミングが多少ずれてもデータバスの衝突が生じないので、厳格なタイミング制御をせずに、確実なデータ伝送を行うことができる。
【０３１４】
また、本発明にかかるインタフェース装置では、パラレルデータ及びバスステート信号の入力及び出力を行う際に、クロックの立ち上がり又は立ち下がりのいずれか一方のエッジのタイミングに同期して動作をする。
【０３１５】
このことにより、従来は動作時間の余裕がクロックの半周期分しかなく、データの転送レートがクロックの周期の１／２で制約されてしまっていたものを、クロックの１周期分の動作余裕とすることができるので、クロックをより高速にして高速通信が可能となる。
【０３１６】
また、本発明にかかるインタフェース装置では、パラレルデータの双方向通信される４ビットパラレルデータと、ホスト機器から出力されるクロックと、パラレルデータの転送開始タイミングを示すバスステート信号とを用いたパラレル通信と、シリアルデータと、クロックと、バスステート信号とにより行われていたシリアル通信とを適応的に切り換えて、外部接続機器とホスト機器間のデータ通信を行う。
【０３１７】
そのため、シリアルデータと、クロックと、バスステート信号とにより行われていたシリアル通信を行うインタフェース装置との互換性を保ちつつ、通信の高速化を図ることができる。
【図面の簡単な説明】
【図１】  図１は、従来のメモリカードの概略平面図並びに端子部分の拡大図である。
【図２】  図２は、従来のメモリカードとホスト機器との間のインタフェースのフロントエンド部分の回路構成図である。
【図３】  図３は、従来のメモリカードのライトパケット時の通信内容を説明するための図である。
【図４】  図４は、従来のメモリカードのリードパケット時の通信内容を説明するための図である。
【図５】  図５は、従来のメモリカードのインタフェースにおけるバスステートの切り替わりタイミングを説明するための図である。
【図６】  図６は、本発明の実施の形態のホスト機器及びメモリカードの外観斜視図である。
【図７】  図７は、メモリカードを表面側から見た斜視図である。
【図８】  図８は、メモリカードを裏面側から見た斜視図である。
【図９】  図９は、メモリカードの内部ブロック構成図である。
【図１０】  図１０は、メモリカードの接続端子番号を説明するための図である。
【図１１】  図１１は、従来のメモリカード（タイプ１）の接続端子の機能を説明するための図である。
【図１２】  図１２は、メモリカードの挿入／抜出検出機能を説明するための図である。
【図１３】  図１３は、本実施の形態のメモリカード（タイプ２）の接続端子の機能を説明するための図である。
【図１４】  図１４は、接続端子に設けられた入力ドライバ及び出力ドライバを説明するための図である。
【図１５】  図１５は、本実施の形態のメモリカードとホスト機器との間のデータ伝送をするためのインタフェースの機能構成図である。
【図１６】  図１６は、本実施の形態のメモリカードのシリアルインタフェースを説明するための図である。
【図１７】  図１７は、各ステートでの通信内容を説明するための図である。
【図１８】  図１８は、シリアルインタフェース時のＢＳ１でのデータ転送処理を説明するための図である。
【図１９】  図１９は、シリアルインタフェース時のＢＳ２（ライトパケット）でのデータ転送処理を説明するための図である。
【図２０】  図２０は、本実施の形態のメモリカードのパラレルインタフェースを説明するための図である。
【図２１】  図２１は、パラレルインタフェース時のバスステート信号の切り換えタイミングを説明するための図である。
【図２２】  図２２は、パラレルインタフェース時のＢＳ１でのデータ転送処理（ＴＰＣの転送処理）を説明するための図である。
【図２３】  図２３は、パラレルインタフェース時のＢＳ２でのデータ転送処理（ライトパケット）を説明するための図である。
【図２４】  図２４は、パラレルインタフェース時のＢＳ３でのデータ転送処理（リードパケット）を説明するための図である。
【図２５】  図２５は、パラレルインタフェース時のＢＳ２（リードパケット）、ＢＳ３（ライトパケット）でのデータ転送処理を説明するための図である。
【図２６】  図２６は、タイプ２のメモリカードとタイプ２のホスト機器のインタフェースのフロントエンド部分の回路構成図である。
【図２７】  図２７は、タイプ２のメモリカードとタイプ１のホスト機器のインタフェースのフロントエンド部分の回路構成図である。
【図２８】  図２８は、タイプ１のメモリカードとタイプ２のホスト機器のインタフェースのフロントエンド部分の回路構成図である。
【図１】
0004148136.tif 000002
【図２】
0004148136.tif 000003
【図３】
0004148136.tif 000004
【図４】
0004148136.tif 000005
【図５】
0004148136.tif 000006
【図６】
0004148136.tif 000007
【図７】
0004148136.tif 000008
【図８】
0004148136.tif 000009
【図９】
0004148136.tif 000010
【図１０】
0004148136.tif 000011
【図１１】
0004148136.tif 000012
【図１２】
0004148136.tif 000013
【図１３】
0004148136.tif 000014
【図１４】
0004148136.tif 000015
【図１５】
0004148136.tif 000016
【図１６】
0004148136.tif 000017
【図１７】
0004148136.tif 000018
【図１８】
0004148136.tif 000019
【図１９】
0004148136.tif 000020
【図２０】
0004148136.tif 000021
【図２１】
0004148136.tif 000022
【図２２】
0004148136.tif 000023
【図２３】
0004148136.tif 000024
【図２４】
0004148136.tif 000025
【図２５】
0004148136.tif 000026
【図２６】
0004148136.tif 000027
【図２７】
0004148136.tif 000028
【図２８】
0004148136.tif 000029