(57)【要約】【課題】  ホスト装置とのデータ通信において、ホスト装置がデータ転送の待機命令を実行した場合、待機命令解除後すぐにデータを出力できる機能拡張カードを提供する。【解決手段】  機能拡張カード１０２は、ホスト装置１０１から入力した待機命令を検出する待機命令検出部を有する入出力部１０３と、機能モジュール１０８と、バッファメモリ１０７と、機能モジュール１０８および入出力部１０３が受信したデータをバッファメモリ１０７へ書き込み、バッファメモリ１０７からデータを読み出して機能モジュール１０８および入出力部１０３に出力するバッファ制御部１０６とを有し、バッファ制御部１０６はホスト装置１０１からの待機命令を受信している間は、機能モジュール１０８からバッファメモリ１０７へのデータの書き込みのみを行い、バッファメモリ１０７からのデータの読み出し及び入出力部１０３へのデータの出力を行わないようにする。【選択図】    図１
2005341309.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置からのホストクロックを受信するためのクロック線と、前記ホスト装置とデータの送受信を行うためのデータ線と、前記ホスト装置から受信した待機命令を検出する待機命令検出部とを有する入出力部と、
１つ以上の機能モジュールと、
データを記憶するバッファメモリと、
前記機能モジュールおよび前記入出力部から入力したデータを前記バッファメモリへ書き込み、前記バッファメモリに記憶されているデータを読み出して前記機能モジュールおよび前記入出力部に出力するバッファ制御部と、
を備え、
前記バッファ制御部は、前記ホスト装置からの前記待機命令を受信している間は、前記機能モジュールから前記バッファメモリへのデータの書き込みのみを行い、前記バッファメモリからのデータの読み出し、及び前記入出力部へのデータの出力は行なわないことを特徴とする機能拡張カード。
【請求項２】
請求項１記載の機能拡張カードにおいて、
前記バッファ制御部は、前記ホスト装置から前記待機命令を受信している間に、前記機能モジュールから入力したデータを前記バッファメモリの容量分書き込んだ場合は、前記機能モジュールからのデータの入力を停止することを特徴とする機能拡張カード。
【請求項３】
請求項１または請求項２に記載の機能拡張カードにおいて、
内部クロックを生成する内部クロック生成部と、
前記内部クロックと前記ホストクロックとを切り替えて出力するクロック切り替え部と、
をさらに備え、
前記バッファ制御部は、前記ホスト装置からの前記待機命令を受信していない間は前記ホスト装置から入力した前記ホストクロックで動作し、前記ホスト装置からの前記待機命令を受信している間は前記内部クロック生成部が生成した内部クロックで動作することを特徴とする機能拡張カード。
【請求項４】
請求項１から請求項３のいずれかの請求項に記載の機能拡張カードにおいて、
前記バッファメモリはＦＩＦＯ（First-in First-out）バッファであることを特徴とする機能拡張カード。
【請求項５】
ホスト装置からのホストクロックを受信するためのクロック線と、前記ホスト装置とデータの送受信を行うためのデータ線と、前記ホスト装置から受信した待機命令を検出する待機命令検出部とを有する入出力部と、
１つ以上の機能モジュールと、
データを記憶するバッファメモリと、を備える機能拡張カードの制御方法において、
前記機能拡張カードが前記ホスト装置から前記待機命令を受信していない間は、前記機能モジュール及び前記入出力部から前記バッファメモリへのデータの書き込み、前記バッファメモリからのデータの読み出し、及び前記バッファメモリから前記機能モジュールまたは前記入出力部へのデータの転送を行い、
前記機能拡張カードが前記ホスト装置から前記待機命令を受信している間は、前記機能モジュールから前記バッファメモリへのデータの書き込みは行うが、前記バッファメモリからのデータの読み出し、及び前記バッファメモリから前記入出力部へのデータの転送は行なわないことを特徴とする機能拡張カードの制御方法。
【請求項６】
請求項５に記載の機能拡張カードの制御方法において、
前記機能拡張カードが前記ホスト装置からの前記待機命令を受信している間に、前記機能モジュールから前記バッファメモリへデータを容量分書き込んだ場合は、前記機能モジュールから前記バッファメモリへのデータの書き込みを停止することを特徴とする機能拡張カードの制御方法。
【請求項７】
請求項５に記載の機能拡張カードの制御方法において、
前記機能拡張カードは内部クロックを生成する内部クロック生成部をさらに備え、
前記機能拡張カードが前記ホスト装置から前記待機命令を受信していない間は、前記ホストクロックに基づいて、前記機能モジュール及び前記入出力部から前記バッファメモリへのデータの書き込み、前記バッファメモリからのデータの読み出し、及び前記バッファメモリから前記機能モジュールまたは前記入出力部へのデータの転送を行い、
前記機能拡張カードが前記ホスト装置から前記待機命令を受信している間は、前記内部クロックに基づいて、前記機能モジュールから前記バッファメモリへのデータの書き込みは行うが、前記バッファメモリからのデータの読み出し、及び前記バッファメモリから前記入出力部へのデータの転送は行なわないことを特徴とする機能拡張カードの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｂｌｕｅｔｏｏｔｈ、無線ＬＡＮ、カメラなどの機能モジュールを搭載した機能拡張カード及びその制御方法に関する。
【背景技術】
【０００２】
近年、Ｂｌｕｅｔｏｏｔｈ、無線ＬＡＮ、カメラなどの機能モジュールを搭載した機能拡張カードが開発され、市場に普及してきた。例えば、Ｂｌｕｅｔｏｏｔｈを搭載した機能拡張カードをＰＤＡ（Personal Digital Assistants、ホスト装置）に装着し、機能拡張カード内の映像データや音声データをＰＤＡに転送し、ＰＤＡの液晶ディスプレイ及びスピーカから映像や音声を出力する技術や、ＰＤＡ内の映像データや音声データを機能拡張カードに転送し、機能拡張カードから他のＢｌｕｅｔｏｏｔｈ装置に無線通信する技術が確立されている。
【０００３】
一般に、ホスト装置と機能拡張カードとの間で行なわれるデータ転送は、ホスト装置をマスターとするマスター／スレーブ通信方式で行なわれる。この方式では、ホスト装置がコマンドを機能拡張カードに送信し、それに対して機能拡張カードが応答（レスポンス）をホスト装置に返す。ホスト装置および機能拡張カードは、コマンドおよびレスポンスを送受信した後、必要に応じてデータ転送を行なうことができる。ホスト装置は、データ転送のタイミングおよび転送するデータのサイズを決定し、それに従って機能拡張カードはデータを受信又は送信する。データ転送などに使用するクロックはホスト装置が機能拡張カードに出力する。
【０００４】
ホスト装置と機能拡張カードとの間で行われるデータ転送の方法の一つにマルチブロック転送と呼ばれる方法がある。マルチブロック転送とは、データが所定以上の長さを有する場合、一般的には所定のブロックサイズ以上の長さを有する場合、そのデータを所定のブロックサイズの複数のデータブロックに分割した後に、または分割するのと同時に、複数のデータブロックを断続的に転送する方法である。
【０００５】
マルチブロック転送方法を用いて機能拡張カードからホスト装置にデータを転送する場合（マルチブロックリード転送と呼ぶ）、ホスト装置は、機能拡張カードから内部のデータバッファに転送されたデータの処理がデータ転送に対して間に合わず、データ転送を一時的に停止したい場合がある。この場合、機能拡張カードに対して待機命令を送ることができる。具体的には、例えば、データブロックとデータブロックとの間のタイミングにおいて、データ線の一部をＬｏｗにドライブすることでデータ転送を停止する。機能拡張カードはそれを検出し、ホスト装置へのデータ出力を停止する。なお、クロックの転送を停止する方法もあるが、この方法では、クロックの転送を停止しているため、ホスト装置はデータ線以外の信号線（例えばコマンド線）を使用して機能拡張カードの他の領域にアクセスすることができない、というデメリットがある。
【０００６】
以下、従来の機能拡張カードについて図６を用いて説明する。図６は、機能拡張カードの構成例を示すブロック図である。図６において、機能拡張カード６０２はホスト装置６０１（例えばＰＤＡ）と通信を行う。ホスト装置６０１は機能拡張カードを装着するスロットを有している。ホスト装置６０１と機能拡張カード６０２とは、クロック線６０９、コマンド線６１０、及びデータ線６１１で接続されている。機能拡張カード６０２は、ホスト装置６０１との通信を実行する入出力部６０３と、データを一時記憶するバッファメモリ６０７と、バッファメモリ６０７に対するデータの読み書きを制御するバッファ制御部６０６と、種々の機能を実行する機能モジュール６０８（例えばＢｌｕｅｔｏｏｔｈ）とを有する。入出力部６０３は、ホスト装置６０１から送信されたクロックを受信し、バッファ制御部６０６に出力するクロック制御部６０４と、ホスト装置６０１からの待機命令を検出する待機命令検出部６０５とを有する。
【０００７】
以上のように構成される従来の機能拡張カードの動作について説明する。機能モジュール６０８が外部装置、例えば通信相手となっているＢｌｕｅｔｏｏｔｈ装置からデータを受信すると、バッファ制御部６０６は機能モジュール６０８が受信したデータをバッファメモリ６０７に書き込む。そしてホスト装置６０１からの命令に応じて、バッファ制御部６０６はバッファメモリ６０７のデータを所定のブロックサイズ分読み出し、入出力部６０３に出力する。入出力部６０３はデータ線６１１を使用してデータをホスト装置６０１に転送する。バッファ制御部６０６はバッファメモリ６０７のデータ残量が所定の閾値より少なくなったとき、機能モジュール６０８からの次のデータをバッファメモリ６０７に書き込む。そしてバッファメモリ６０７に所定のブロックサイズ分以上データが蓄積されたところで、バッファ制御部６０６は再度バッファメモリ６０７のデータを所定のブロックサイズ分読み出し、入出力部６０３に出力する。入出力部６０３はデータ線６１１を使用してデータをホスト装置６０１に転送する。このようにして、機能拡張カード６０２は断続的にデータをホスト装置６０１に転送する。一般的に、機能モジュール６０８が外部装置からデータを受信する速度より、ホスト装置６０１が機能拡張カード６０２からデータを読み出す速度の方が速いため、データブロックとデータブロックとの間においても、バッファ制御部６０６は機能モジュール６０８からのデータをバッファメモリ６０７に書き込んでいる。
【０００８】
次に、マルチブロックリード転送中に、ホスト装置から待機命令を受信したときの従来の機能拡張カードの動作について説明する。
マルチブロックリード転送中に、ホスト装置６０１がデータブロックとデータブロックとの間のタイミングに、データ線の一部をＬｏｗにドライブすることで待機命令を実行した場合、待機命令検出部６０５はこれを検出し、待機命令検出信号をクロック制御部６０４に出力する。待機命令検出信号を入力したクロック制御部６０４はバッファ制御部６０６へのクロックの出力を停止する。バッファ制御部６０６はクロック制御部６０４から出力されたクロックで動作しているため、バッファメモリ６０７のデータを読み出して入出力部６０３へ出力することができなくなる。ホスト装置６０１は、このようにしてマルチブロックリード転送を中断している間、すなわち、待機命令を実行している間に、内部のデータバッファに転送されたデータの処理を行なうことができる。
【０００９】
そして、ホスト装置６０１が待機命令を解除する、すなわち、すべてのデータ線を開放すると、待機命令検出部６０５はこれを検出し、待機命令検出信号の出力を停止する。クロック制御部６０４はバッファ制御部６０６へのクロックの出力を再開する。バッファ制御部６０６は機能モジュール６０８からのデータをバッファメモリ６０７に書き込み、所定のブロックサイズ分以上データが蓄積されたところで入出力部６０３にデータを出力し、入出力部６０３はそのデータをデータ線６１１経由でホスト装置６０１に転送する。
【特許文献１】特開平１１−３３８８３２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上記従来の機能拡張カードでは以下に示す課題があった。機能拡張カード６０２は、ホスト装置６０１が待機命令を実行している間、バッファ制御部６０６の動作を停止するため、バッファ制御部６０６は機能モジュール６０８からのデータをバッファメモリ６０７に書き込まない。このため、待機命令解除後に、機能モジュール６０８がバッファメモリ６０７に次のデータを書き込む時間が必要になり、このため、待機命令解除後、機能拡張カード６０２がホスト装置１０１に次のデータを出力するまでに時間を要するという課題があった。
【００１１】
よって、本発明では、ホスト装置とのデータ通信において、ホスト装置がデータ転送の待機命令を実行した場合、待機命令解除直後にホスト装置にデータを出力できる機能拡張カードを提供することを目的とする。
【００１２】
また、本発明では、ホスト装置が待機命令中に機能拡張カードへのクロックの出力を停止した場合でも、待機命令解除後すぐにデータを出力できる機能拡張カードを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するため、本発明の請求項１に係る機能拡張カードは、ホスト装置からのホストクロックを受信するためのクロック線と、前記ホスト装置とデータの送受信を行うためのデータ線と、前記ホスト装置から受信した待機命令を検出する待機命令検出部とを有する入出力部と、１つ以上の機能モジュールと、データを記憶するバッファメモリと、前記機能モジュールおよび前記入出力部から入力したデータを前記バッファメモリへ書き込み、前記バッファメモリに記憶されているデータを読み出して前記機能モジュールおよび前記入出力部に出力するバッファ制御部と、を備え、前記バッファ制御部は、前記ホスト装置からの前記待機命令を受信している間は、前記機能モジュールから前記バッファメモリへのデータの書き込みのみを行い、前記バッファメモリからのデータの読み出し、及び前記入出力部へのデータの出力は行なわないことを特徴とする。
【００１４】
また、本発明の請求項２に係る機能拡張カードは、請求項１記載の機能拡張カードにおいて、前記バッファ制御部は、前記ホスト装置から前記待機命令を受信している間に、前記機能モジュールから入力したデータを前記バッファメモリの容量分書き込んだ場合は、前記機能モジュールからのデータの入力を停止することを特徴とする。
【００１５】
また、本発明の請求項３に係る機能拡張カードは、請求項１または請求項２に記載の機能拡張カードにおいて、内部クロックを生成する内部クロック生成部と、前記内部クロックと前記ホストクロックとを切り替えて出力するクロック切り替え部とをさらに備え、前記バッファ制御部は、前記ホスト装置からの前記待機命令を受信していない間は前記ホスト装置から入力した前記ホストクロックで動作し、前記ホスト装置からの前記待機命令を受信している間は前記内部クロック生成部が生成した内部クロックで動作することを特徴とする。
【００１６】
また、本発明の請求項４に係る機能拡張カードは、請求項１から請求項３のいずれかの請求項に記載の機能拡張カードにおいて、前記バッファメモリはＦＩＦＯ（First-in First-out）バッファであることを特徴とする。
【００１７】
また、本発明の請求項５に係る機能拡張カードの制御方法は、ホスト装置からのホストクロックを受信するためのクロック線と、前記ホスト装置とデータの送受信を行うためのデータ線と、所定のブロックサイズに分割されたデータを前記ホスト装置に送信するときに、前記ホスト装置から受信した待機命令を検出する待機命令検出部とを有する入出力部と、１つ以上の機能モジュールと、データを記憶するバッファメモリと、を備える機能拡張カードの制御方法において、前記機能拡張カードが前記ホスト装置から前記待機命令を受信していない間は、前記機能モジュール及び前記入出力部から前記バッファメモリへのデータの書き込み、前記バッファメモリからのデータの読み出し、及び前記バッファメモリから前記機能モジュールまたは前記入出力部へのデータの転送を行い、前記機能拡張カードが前記ホスト装置から前記待機命令を受信している間は、前記機能モジュールから前記バッファメモリへのデータの書き込みは行うが、前記バッファメモリからのデータの読み出し、及び前記バッファメモリから前記入出力部へのデータの転送は行なわないことを特徴とする。
【００１８】
また、本発明の請求項６に係る機能拡張カードの制御方法は、請求項５に記載の機能拡張カードの制御方法において、前記機能拡張カードが前記ホスト装置からの前記待機命令を受信している間に、前記機能モジュールから前記バッファメモリへデータを容量分書き込んだ場合は、前記機能モジュールから前記バッファメモリへのデータの書き込みを停止することを特徴とする。
【００１９】
また、本発明の請求項７に係る機能拡張カードの制御方法は、請求項５に記載の機能拡張カードの制御方法において、前記機能拡張カードは内部クロックを生成する内部クロック生成部をさらに備え、前記機能拡張カードが前記ホスト装置から前記待機命令を受信していない間は、前記ホストクロックに基づいて、前記機能モジュール及び前記入出力部から前記バッファメモリへのデータの書き込み、前記バッファメモリからのデータの読み出し、及び前記バッファメモリから前記機能モジュールまたは前記入出力部へのデータの転送を行い、前記機能拡張カードが前記ホスト装置から前記待機命令を受信している間は、前記内部クロックに基づいて、前記機能モジュールから前記バッファメモリへのデータの書き込みは行うが、前記バッファメモリからのデータの読み出し、及び前記バッファメモリから前記入出力部へのデータの転送は行なわないことを特徴とする。
【発明の効果】
【００２０】
本発明の機能拡張カードは、ホスト装置からのホストクロックを受信するためのクロック線と、前記ホスト装置とデータの送受信を行うためのデータ線と、前記ホスト装置から受信した待機命令を検出する待機命令検出部とを有する入出力部と、１つ以上の機能モジュールと、データを記憶するバッファメモリとを備え、前記ホスト装置からの待機命令を受信していない間は、前記機能モジュールおよび前記入出力部から入力したデータを前記バッファメモリへ書き込み、また、前記バッファメモリに記憶されているデータを読み出して前記機能モジュールおよび前記入出力部に出力するが、前記ホスト装置からの前記待機命令を受信している間は、前記機能モジュールから前記バッファメモリへのデータの書き込みは行うが、前記バッファメモリからのデータの読み出し、及び前記入出力部へのデータの出力は行なわないことを特徴とする。これにより、データブロックとデータブロックとの間において、前記ホスト装置が待機命令を実行した場合でも、前記機能モジュールのデータを前記バッファメモリに書き込んでおくことができるので、待機命令解除後にすぐにデータをホスト装置に転送できる。
【００２１】
また、本発明の機能拡張カードは、内部クロックを生成する内部クロック生成部をさらに備え、前記ホスト装置からの前記待機命令を受信していない間は、前記ホストクロックに基づいて、前記機能モジュールおよび前記入出力部から入力したデータを前記バッファメモリへ書き込み、また、前記バッファメモリに記憶されているデータを読み出して前記機能モジュールおよび前記入出力部に出力するが、前記ホスト装置からの前記待機命令を受信している間は、前記内部クロックに基づいて、前記機能モジュールから前記バッファメモリへのデータの書き込みは行うが、前記バッファメモリからのデータの読み出し、及び前記バッファメモリから読み出したデータの前記入出力部への出力は行なわないことを特徴とする。これにより、前記ホスト装置が待機命令実行中にクロックを停止した場合でも、前記機能モジュールのデータを前記バッファメモリに書き込んでおくことができるので、待機命令解除後にすぐにデータをホスト装置に転送できる。
【００２２】
また、本発明の機能拡張カードは、前記ホスト装置からの待機命令を受信している間に、前記機能モジュールから前記バッファメモリへデータを容量分書き込んだ場合は、前記機能モジュールから前記バッファメモリへのデータの書き込みを停止するようにした。これにより、機能拡張カードの省電力化を実現することができる。
【００２３】
また、本発明の機能拡張カードは、データを記憶する前記バッファメモリをＦＩＦＯバッファとした。これにより、バッファメモリの容量を小さくして、機能拡張カードのサイズを小さくし、低コスト化を実現することができる。
【発明を実施するための最良の形態】
【００２４】
以下、本発明の実施の形態に係る機能拡張カード及びその制御方法について、図を用いて説明する。
【００２５】
（実施の形態１）
本発明の実施の形態１に係る機能拡張カード及びその制御方法について図１〜図３を用いて説明する。
図１は実施の形態１に係る機能拡張カードの構成を示すブロック図である。図１において、機能拡張カード１０２はホスト装置１０１と通信を行う。ホスト装置１０１は機能拡張カード１０２を装着するスロットを有している。ホスト装置１０１は携帯情報端末である。また、ホスト装置１０１は任意のデジタル信号処理装置であっても良い。具体的には、コンピュータ、デジタルＡＶ装置、デジタルカメラ、又は携帯電話等である。
【００２６】
機能拡張カード１０２は、ホスト装置１０１との通信を実行する入出力部１０３と、バッファメモリ１０７と、バッファメモリ１０７に対してデータの読み書きなどの制御を行なうバッファ制御部１０６と、種々の機能を実行する機能モジュール１０８とを有する。例えば、機能モジュール１０８としてはＢｌｕｅｔｏｏｔｈが挙げられる。また、機能モジュール１０８は、例えば、ＰＨＳ、ＧＰＳ、カメラであっても良い。
【００２７】
入出力部１０３は、ホスト装置１０１から入力したホストクロックをバッファ制御部１０６に出力するクロック制御部１０４と、マルチブロックリード転送において、ホスト装置１０１からの待機命令を検出する待機命令検出部１０５とを有する。待機命令検出部１０５は待機命令を検出すると待機命令検出信号をバッファ制御部１０６に出力する。
【００２８】
バッファ制御部１０６は、バッファメモリ１０７に対するデータの読み書き及び入出力部１０３とのデータの入出力を行なうバッファ制御部Ａ１１２と、バッファメモリ１０７に対するデータの読み書き及び機能モジュール１０８とのデータの入出力を行なうバッファ制御部Ｂ１１３とを有する。
【００２９】
以上のように構成される機能拡張カード１０２とホスト装置１０１とは、クロック線１０９、コマンド線１１０、及び複数のデータ線１１１で接続される。その他、ホスト装置１０１から機能拡張カード１０２に電力を供給する電源線、及びグラウンド線で接続される（図示せず）。ホスト装置１０１と機能拡張カード１０２とは、ホスト装置１０１をマスターとし機能拡張カード１０２をスレーブとするマスター／スレーブ方式で通信を行う。
【００３０】
以下、本実施の形態１の機能拡張カード１０２の各構成要素について説明する。入出力部１０３は、クロック線１０９を介してホスト装置１０１からホストクロックを受信する。また、コマンド線１１０を介して、ホスト装置１０１から送信されたコマンドを受信し、そのコマンドに対するレスポンスをホスト装置１０１に送信する。また、データ線１１１を介して、ホスト装置１０１から送信されたデータを受信し、又はバッファ制御部１０６から出力されたデータをホスト装置１０１に送信する。
【００３１】
バッファ制御部１０６はクロック制御部１０４から出力されたホストクロックを入力して動作する。バッファ制御部１０６内のバッファ制御部Ａ１１２は入出力部１０３から入力したデータをバッファメモリ１０７に書き込む。またバッファメモリ１０７からデータを読み出して入出力部１０３に出力する。バッファ制御部Ａ１１２は待機命令検出部１０５から待機命令検出信号を入力した場合は動作を停止する。具体的には、バッファ制御部Ａ１１２へのホストクロックの入力を待機命令検出信号によってマスクすると、バッファ制御部Ａ１１２は動作を停止する。バッファ制御部１０６内のバッファ制御部Ｂ１１３は機能モジュール１０８から入力したデータをバッファメモリ１０７に書き込む。またバッファメモリ１０７からデータを読み出して機能モジュール１０８に出力する。バッファ制御部Ｂ１１３は待機命令検出信号を入力した場合でも動作を停止せずに、ホストクロックで動作をするが、バッファメモリ１０７の容量分データを書き込むと動作を停止する。具体的には、バッファ制御部Ｂ１１３へのホストクロックの入力を待機命令検出信号によってマスクすることで、バッファ制御部Ｂ１１３は動作を停止する。
【００３２】
ホスト装置１０１が待機命令を解除すると、待機命令検出部１０５はバッファ制御部１０６への待機命令検出信号の出力を停止し、バッファ制御部Ａ１１２およびバッファ制御部Ｂ１１３にはホストクロックが入力される。バッファ制御部Ａ１１２はバッファメモリ１０７のデータを読み出して入出力部１０３に出力する。バッファ制御部Ｂ１１３はバッファメモリ１０７のデータ残量がある閾値を下回ったときに動作を再開し、機能モジュール１０８からのデータを再度バッファメモリ１０７に書き込む。
【００３３】
以上のような本実施の形態１の機能拡張カード１０２に対するマルチブロックリード転送時の制御方法について図２、３を用いて説明する。 図２は、ホスト装置１０１が機能拡張カード１０２からの複数のデータブロックを断続的に読み取るときに（マルチブロックリード転送中）、ホスト装置１０１が待機命令を発行した場合の、ホスト装置１０１と機能拡張カード１０２との間の、コマンド、レスポンス、データ、待機命令のやり取りを時系列に示す図である。図２に示すように、ホスト装置１０１をマスターとし、機能拡張カード１０２をスレーブとするマスター／スレーブ方式の通信でマルチブロックリード転送を行う場合、ホスト装置１０１から機能拡張カード１０２へのコマンドの送信と、機能拡張カード１０２からホスト装置１０１へのレスポンスの送信とが交互に行われ、その後、複数のデータブロックが断続的に転送される。
【００３４】
図３は、マルチブロックリード転送時の機能拡張カード１０２の制御方法を表すフローチャート図である。図３は、マルチブロックリード転送において、ホスト装置１０１が発行した待機命令を機能拡張カード１０２が受信したタイミングから、待機命令が解除されてバッファメモリ１０７に書き込まれたデータをホスト装置１０１に出力するタイミングまでの期間について示している。
【００３５】
以下、図３の各ステップについて説明する。なお、待機命令実行中の時間は機能モジュール１０８からのデータをバッファ制御部１０６がバッファメモリ１０７に書き込む時間よりも長いものとする。
【００３６】
まず、機能拡張カード１０２は、マルチブロックリード転送中に、データブロックとデータブロックとの間の期間にホスト装置１０１から待機命令を入力する（ステップＳ３０１）。具体的には、ホスト装置１０１がデータ線の一部をＬｏｗにドライブすることによって、機能拡張カード１０２に対して待機命令を伝達する。
【００３７】
次に、バッファ制御部Ａ１１２は動作を停止する（ステップ３０２）。これにより、機能拡張カード１０２からホスト装置１０１へのデータの出力が停止される。
【００３８】
次に、バッファ制御部Ｂ１１３は機能モジュール１０８からのデータをバッファメモリ１０７に書き込み（ステップ３０３）、バッファメモリ１０７の容量分書き込んだかどうかを判別する（ステップ３０４）。ステップＳ３０４でバッファメモリ１０７にデータを書き込める領域が残っていると判別した場合、再度ステップ３０３、３０４を繰り返す。一方、ステップ３０４でバッファメモリ１０７にデータを書き込める領域が残っていないと判別した場合は、バッファ制御部Ｂ１１３は動作を停止する（ステップ３０５）。このようして、ステップ３０５でバッファ制御部１０６は全体の動作を停止する。
【００３９】
次に、待機命令が解除される（ステップＳ３０６）と、バッファ制御部１０６は全体の動作を開始し、バッファ制御部Ａ１１２はバッファメモリ１０７内のデータを読み出して、入出力部１０３に出力する。そして、入出力部１０３は入力したデータをデータ線１１１経由でホスト装置１０１に転送する（ステップ３０７）。すなわち、バッファメモリ１０７に書き込まれたデータのホスト装置１０１への出力を再開する。
【００４０】
以上のように、本実施の形態1における機能拡張カード１０２では、ホスト装置１０１から待機命令を受信している間でも、バッファ制御部Ｂ１１３がホストクロックで動作して、機能モジュール１０８のデータをバッファメモリ１０７に書き込む。これにより、待機命令が解除された後すぐに、バッファメモリ１０７のデータをホスト装置１０１に転送することができる。
【００４１】
また、本実施の形態1における機能拡張カード１０２は、待機命令受信中において、バッファ制御部Ｂ１１３が機能モジュール１０８からバッファメモリ１０７へのデータの書き込みを完了すると、バッファ制御部１０６全体の動作が停止するようにしたことから、省電力化を実現することができる。
【００４２】
（実施の形態２）
次に、本発明の実施の形態２に係る機能拡張カード及びその制御方法について図４、５を用いて説明する。図４は、実施の形態２に係る機能拡張カードの構成を示すブロック図である。図４に示す実施の形態２に係る機能拡張カード４０２が図１に示す実施の形態１に係る機能拡張カード１０２と異なる点は以下の通りである。
【００４３】
機能拡張カード４０２は、内部クロックを生成する内部クロック生成部４１５を新たに備え、また、バッファ制御部１０６内にクロック切り替え部４１４を新たに備える。クロック切り替え部４１４はクロック制御部４０４からホストクロックを入力し、また、内部クロック生成部４１５から内部クロックを入力し、待機命令検出信号を元にバッファ制御部Ａ１１２およびバッファ制御部Ｂ１１３に出力するクロックを切り替える。クロック切り替え部４１４は、通常、ホストクロックを選択して出力し、待機命令検出信号を入力した場合は内部クロックを選択して出力する。一方、待機命令検出信号を入力した場合はバッファ制御部Ｂ１１３にのみ内部クロックを出力し、バッファ制御部Ａ１１２にはいずれのクロックも出力しない。
【００４４】
また、待機命令検出部４０５は待機命令検出信号をバッファ制御部１０６だけでなくクロック制御部４０４にも出力する。また、クロック制御部４０４は待機命令検出信号を入力するとホストクロックをバッファ制御部１０６に出力しない。また、機能モジュール１０８は一定の転送速度、具体的には、ホスト装置１０１と機能拡張カード４０２との間のデータ転送速度よりも遅い速度で、外部装置からデータを受信する。また、バッファメモリ１０７はＦＩＦＯバッファである。
【００４５】
以上のように構成される本実施の形態２の機能拡張カード４０２におけるマルチブロックリード転送時の制御方法について図５を用いて説明する。図５は、機能拡張カード４０２の制御方法を示すフローチャート図である。この図５は、マルチブロックリード転送において、ホスト装置１０１が発行した待機命令を機能拡張カード１０２が受信したタイミングから、待機命令が解除されてバッファメモリ１０７に書き込まれたデータをホスト装置１０１に出力するタイミングまでの期間について示している。
【００４６】
以下、図５の各ステップについて説明する。なお、待機命令実行中の時間は機能モジュール１０８からのデータをバッファ制御部１０６がバッファメモリ１０７に書き込む時間よりも長いものとする。また、待機命令実行中のホスト装置１０１はホストクロックを機能拡張カード４０２に転送するのを停止するものとする。
【００４７】
まず、機能拡張カード４０２は、マルチブロックリード転送中のデータブロックとデータブロックとの間の期間にホスト装置１０１から待機命令を入力する（ステップＳ５０１）。具体的には、ホスト装置１０１がデータ線の一部をＬｏｗにドライブすることによって、機能拡張カード４０２に対して待機命令を伝達する。
【００４８】
次に、ホスト装置１０１が機能拡張カード４０２へのクロックの送信を停止する（ステップＳ５０２）と、クロック切り替え部４１４は出力するクロックをホストクロックから内部クロック生成部４１５が生成した内部クロックに切り替えて出力する（ステップＳ５０３）。このとき、クロック切り替え部４１４はバッファ制御部Ａ１１２にはいずれのクロックも出力しないことから、バッファ制御部Ａ１１２は動作を停止する（ステップＳ５０４）。これにより、機能拡張カード４０２からホスト装置１０１にデータが出力されなくなる。
【００４９】
次に、バッファ制御部Ｂ１１３は、内部クロックにより動作し、機能モジュール１０８からのデータをバッファメモリ１０７に書き込み（ステップＳ５０５）、バッファメモリ１０７の容量分データを書き込んだかどうかを判別する（ステップ５０６）。ステップＳ３０６で、バッファメモリ１０７にデータを書き込める領域が残っていると判別した場合、再度ステップＳ５０５、５０６を繰り返す。一方、ステップＳ５０６でバッファメモリ１０７にデータを書き込める領域が残っていないと判別した場合は、バッファ制御部Ｂ１１３は動作を停止する（ステップＳ５０７）。これにより、ステップＳ５０７でバッファ制御部１０６は全体の動作を停止する。
【００５０】
次に、ホスト装置１０１からの待機命令が解除される（ステップＳ５０８）と、クロック切り替え部４１４は出力するクロックをクロック制御部４０４から入力したホストクロックに切り替える（ステップＳ５０９）。そして、ホスト装置１０１が機能拡張カード４０２へのクロック供給を再開する（ステップＳ５１０）と、バッファ制御部１０６内のバッファ制御部Ａ１１２は動作を再開し、機能拡張カード４０２はホスト装置１０１にデータを出力する（ステップＳ５１１）。すなわち、バッファメモリ１０７に書き込まれたデータのホスト装置１０１への出力を再開する。
【００５１】
以上のように、本実施の形態２における機能拡張カード４０２は、待機命令受信中にホスト装置１０１からのホストクロックの供給が停止した場合においても、内部クロック生成部４１５が生成した内部クロックでバッファ制御部Ｂ１１３が動作して、機能モジュール１０８からのデータをバッファメモリ１０７に書き込むようにした。これにより、待機命令が解除された後すぐに、バッファメモリ１０７のデータをホスト装置１０１に転送することができる。
【００５２】
また、本実施の形態２における機能拡張カード４０２は、待機命令受信中において、バッファ制御部Ｂ１１３が機能モジュール１０８からバッファメモリ１０７へのデータの書き込みを完了すると、バッファ制御部１０６全体の動作が停止するようにしたことから、省電力化を実現することができる。
【００５３】
また、本実施の形態２における機能拡張カード４０２は、バッファメモリ１０７をＦＩＦＯメモリにすることで、バッファメモリの容量を小さくできるので、機能拡張カード４０２の大きさを小さくして、低コスト化を実現することができる。
【産業上の利用可能性】
【００５４】
本発明は、ホスト装置との間でマルチブロックリード転送かつ待機命令の実行を行なう機能拡張カード、およびその制御方法として有用である。
【図面の簡単な説明】
【００５５】
【図１】本発明の実施の形態１に係る機能拡張カードの構成を示すブロック図である。
【図２】本発明の実施の形態１に係る機能拡張カードとホスト装置のデータ転送における、コマンド、レスポンス及びデータ伝送のタイミングを示す図である。
【図３】本発明の実施の形態１に係る機能拡張カードの制御方法を示すフローチャート図である。
【図４】本発明の実施の形態２に係る機能拡張カードの構成を示すブロック図である。
【図５】本発明の実施の形態２に係る機能拡張カードの制御方法を示すフローチャート図である。
【図６】従来の機能拡張カードの構成例を示すブロック図である。
【符号の説明】
【００５６】
１０１、６０１  ホスト装置 
１０２、４０２、６０２  機能拡張カード
１０３、６０３  入出力部 
１０４、４０４、６０４  クロック制御部 
１０５、４０５、６０５  待機命令検出部 
１０６、６０６  バッファ制御部
１０７、６０７  バッファメモリ 
１０８、６０８  機能モジュール 
１０９、６０９  クロック線
１１０、６１０  コマンド線
１１１、６１１  データ線 
１１２  バッファ制御部Ａ 
１１３  バッファ制御部Ｂ
４１４  クロック切り替え部 
４１５  内部クロック生成部 
【図１】
2005341309.tif 000003
【図２】
2005341309.tif 000004
【図３】
2005341309.tif 000005
【図４】
2005341309.tif 000006
【図５】
2005341309.tif 000007
【図６】
2005341309.tif 000008