(57)【要約】【課題】接続機器からのデータのリード効率を向上させること。【解決手段】プロジェクタ１００は、ＵＳＢデバイスとの間でデータ転送を行うＵＳＢホストコントローラ１１１と、ＵＳＢデバイスに対してデータのＲｅａｄ要求を発行し、ＵＳＢデバイスからＲｅａｄ要求に対応してＡＣＫ応答を受信しなかった場合に、再送時間の経過後に、Ｒｅａｄ要求の発行を再開するＵＳＢバスドライバ１１３と、を備えた。【選択図】図４
2013029884.tif 000002
【特許請求の範囲】
【請求項１】
接続先機器との間でシリアル伝送路を介したデータ転送を行うシリアルインタフェース制御部と、
前記シリアルインタフェース制御部による前記データ転送を制御するとともに、前記接続先機器に対してデータのリード要求を発行し、所定の条件下で前記接続先機器から前記リード要求に対応して成功の応答を受信しなかった場合に、所定の再送時間の経過後に、前記リード要求の発行を再開する転送制御部と、
を備えたことを特徴とするデータ転送装置。
【請求項２】
前記転送制御部は、前記成功の応答を受信するまで前記リード要求の発行を繰り返し、前記所定の条件としての所定の累積最大受信回数だけ前記リード要求を発行しても前記接続先機器から前記リード要求に対応して成功の応答を受信しなかった場合に、前記再送時間の経過後に、前記リード要求の発行を再開すること、
を特徴とする請求項１に記載のデータ転送装置。
【請求項３】
前記転送制御部は、前記リード要求の発行を再開した後、前記成功の応答を受信するまで前記リード要求の発行を繰り返し、前記累積最大受信回数だけ前記リード要求を発行しても前記接続先機器から前記リード要求に対応して成功の応答を受信しなかった場合に、前記再送時間を増加し、増加された再送時間の経過後に、前記リード要求の発行を再開すること、
を特徴とする請求項２に記載のデータ転送装置。
【請求項４】
前記転送制御部は、前記リード要求の発行を再開した後、前記成功の応答を受信した場合に、前記増加した再送時間を、前記所定の再送時間として設定すること、
を特徴とする請求項３に記載のデータ転送装置。
【請求項５】
前記転送制御部は、前記再送時間を線形関数に従って増加すること、
を特徴とする請求項３に記載のデータ転送装置。
【請求項６】
前記転送制御部は、前記再送時間を多次関数に従って増加すること、
を特徴とする請求項３に記載のデータ転送装置。
【請求項７】
接続先機器との間でシリアル伝送路を介したデータ転送を行うシリアルインタフェース制御部と、
前記シリアルインタフェース制御部による前記データ転送を制御するとともに、前記接続先機器に対してデータのリード要求を発行し、所定の条件下で前記接続先機器から前記リード要求に対応して成功の応答を受信しなかった場合に、所定の再送時間の経過後に、前記リード要求の発行を再開する転送制御部と、
前記接続先機器から転送されたデータを投影する投影部と、
を備えたことを特徴とする画像投影装置。
【請求項８】
データ転送装置で実行されるデータ転送方法であって、
前記データ転送装置は、接続先機器との間でシリアル伝送路を介したデータ転送を行うシリアルインタフェース制御部を備え、
前記シリアルインタフェース制御部による前記データ転送を制御するステップと、
前記接続先機器に対してデータのリード要求を発行するステップと、
所定の条件下で前記接続先機器から前記リード要求に対応して成功の応答を受信しなかった場合に、所定の再送時間の経過後に、前記リード要求の発行を再開するステップと、
を含むことを特徴とするデータ転送方法。
【請求項９】
コンピュータに実行させるためのプログラムであって、
前記コンピュータは、接続先機器との間でシリアル伝送路を介したデータ転送を行うシリアルインタフェース制御部を備え、
前記シリアルインタフェース制御部による前記データ転送を制御するステップと、
前記接続先機器に対してデータのリード要求を発行するステップと、
所定の条件下で前記接続先機器から前記リード要求に対応して成功の応答を受信しなかった場合に、所定の再送時間の経過後に、前記リード要求の発行を再開するステップと、
を前記コンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送装置、画像投影装置、データ転送方法およびプログラムに関する。
【背景技術】
【０００２】
プロジェクタは、ＰＣを介することなくＵＳＢ機器を相互に接続するための規格であるＯｎ−Ｔｈｅ−Ｇｏに準拠することで、ＵＳＢメモリを直接認識し、そのＵＳＢメモリ内の映像データを投影することが可能となる。プロジェクタは、ＵＳＢメモリが接続されると、ＵＳＢメモリを認識する処理（エニュメレーション）を行う。エニュメレーション処理が完了後、プロジェクタはＵＳＢメモリが応答可能な状態にあるかどうかを確認するためのＴｅｓｔ  Ｕｎｉｔ  Ｒｅａｄｙコマンドを、ＵＳＢホストであるプロジェクタからＵＳＢデバイスであるＵＳＢメモリに送出する。ＵＳＢメモリによっては、そのＴｅｓｔ  Ｕｎｉｔ  Ｒｅａｄｙコマンドに対する成功の応答であるＡＣＫ応答に秒単位の時間を要するものがある。
【０００３】
プロジェクタは、ＵＳＢメモリからの応答を待機するために、Ｒｅａｄ要求パケット（バルク転送のＩＮトークン)を発行し、ＵＳＢメモリからＡＣＫ応答があるまでＩＮトークンを繰り返し発行し続ける。
【０００４】
しかしながら、起動時の応答が遅いＵＳＢメモリは、そのＩＮトークンに対し、まだ準備が出来ていないことを示すために、ＮＡＫ（Ｎｅｇａｔｉｖｅ  Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）応答を行う。そして、ＵＳＢメモリは、準備が完了した時点でＡＣＫ（Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）応答をＵＳＢホスト（プロジェクタ）に対して送出する。これらのＩＮトークンの発行、ＮＡＫ／ＡＣＫ応答の受信、ＮＡＫ応答を何回連続して受信したかなどの情報は、プロジェクタ内の組込機器向けのハードウェアであるＵＳＢホストコントローラによって制御および管理される。
【０００５】
プロジェクタは、ＵＳＢホストコントローラに設定したＮＡＫ累積最大受信回数の上限に達する数のＮＡＫを連続して受信すると、そのＲｅａｄ要求はエラーとなるため、ＵＳＢホストコントローラを制御する、より上位のソフトウェア階層で再送処理を行うことになる。このようなＴｅｓｔ  Ｕｎｉｔ  Ｒｅａｄｙコマンドの応答に時間を要するＵＳＢメモリをプロジェクタに接続した場合、ＵＳＢホストコントローラの性能・仕様によっては、例えば、ＩＮトークンの発行間隔が１μｓレベルで発行可能な性能のコントローラにおいて、ＮＡＫ累積最大受信回数が１０万回であったとすると、１秒程度以内にＡＣＫ応答を受信しないと、Ｔｅｓｔ  Ｕｎｉｔ  Ｒｅａｄｙコマンド実行が成功せず、プロジェクタはＵＳＢメモリが応答可能な状態ではないと判断し、ＵＳＢメモリの認識を中止することになりかねない。
【０００６】
プロジェクタがＵＳＢメモリの認識を中止するようなケースは、ＮＡＫ応答が連続し、プロジェクタ側のコマンド応答のタイムアウト時間内にＡＣＫ応答がなければ、ＵＳＢメモリの認識を中止することになり得る。
【０００７】
このため、特許文献１の技術では、ＮＡＫ累積応答数の最適化を図っているが、レスポンスを受ける毎に上限値、下限値の判定を行っている。ＵＳＢ２．０規格の転送は１μｓオーダであり、ＵＳＢ３．０規格は更にその１／１０レベルと高速であり、このような判定制御やレジスタ変更を、その都度ソフトウェアで行うことは効率が悪い。このような判定制御をＡＳIＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）等でハードウェアとして実装することが好ましいが、プロジェクタのような組込機器では、製品コストの観点からも汎用的なＵＳＢホスト制御コントローラを使用することが多い。このため、レジスタを制御する下位のドライバ層でレジスタ設定変更を行うのではなく、Ｒｅａｄ要求に対してＮＡＫ累積最大受信回数に達した場合は、ドライバ層よりも上位のプロトコル層での再送間隔を制御した方が良い。
【０００８】
また、特許文献２の技術では、ＮＡＫ応答後のＩＮトークンの再送間隔を制御しているが、ＮＡＫ応答を１回受信しただけで再送間隔を制御してしまうと、次のＩＮトークン発行までの時間が空いてしまい、Ｒｅａｄ効率が低下する。上述のＮＡＫ累積最大受信回数の制御にように、ＮＡＫ応答を受信しても一定数のＩＮトークンを連続的に発行する方がＲｅａｄ効率的には良い。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明は、上記に鑑みてなされたものであって、接続機器からのデータのリード効率を向上させることができるデータ転送装置、画像投影装置、データ転送方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するために、本発明にかかるデータ転送装置は、接続先機器との間でシリアル伝送路を介したデータ転送を行うシリアルインタフェース制御部と、前記シリアルインタフェース制御部による前記データ転送を制御するとともに、前記接続先機器に対してデータのリード要求を発行し、所定の条件下で前記接続先機器から前記リード要求に対応して成功の応答を受信しなかった場合に、所定の再送時間の経過後に、前記リード要求の発行を再開する転送制御部と、を備えたことを特徴とする。
【００１１】
本発明にかかる画像投影装置は、接続先機器との間でシリアル伝送路を介したデータ転送を行うシリアルインタフェース制御部と、前記シリアルインタフェース制御部による前記データ転送を制御するとともに、前記接続先機器に対してデータのリード要求を発行し、所定の条件下で前記接続先機器から前記リード要求に対応して成功の応答を受信しなかった場合に、所定の再送時間の経過後に、前記リード要求の発行を再開する転送制御部と、前記接続先機器から転送されたデータを投影する投影部と、を備えたことを特徴とする。
【００１２】
本発明にかかるデータ転送方法は、データ転送装置で実行されるデータ転送方法であって、前記データ転送装置は、接続先機器との間でシリアル伝送路を介したデータ転送を行うシリアルインタフェース制御部を備え、前記シリアルインタフェース制御部による前記データ転送を制御するステップと、前記接続先機器に対してデータのリード要求を発行するステップと、所定の条件下で前記接続先機器から前記リード要求に対応して成功の応答を受信しなかった場合に、所定の再送時間の経過後に、前記リード要求の発行を再開するステップと、を含むことを特徴とする。
【００１３】
本発明にかかるプログラムは、コンピュータに実行させるためのプログラムであって、前記コンピュータは、接続先機器との間でシリアル伝送路を介したデータ転送を行うシリアルインタフェース制御部を備え、前記シリアルインタフェース制御部による前記データ転送を制御するステップと、前記接続先機器に対してデータのリード要求を発行するステップと、所定の条件下で前記接続先機器から前記リード要求に対応して成功の応答を受信しなかった場合に、所定の再送時間の経過後に、前記リード要求の発行を再開するステップと、を前記コンピュータに実行させる。
【発明の効果】
【００１４】
本発明によれば、接続機器からのデータのリード効率を向上させることができるという効果を奏する。
【図面の簡単な説明】
【００１５】
【図１】図１は、実施の形態１にかかるプロジェクタの構成図である。
【図２】図２は、プロジェクタをＰＣに接続した例を示す図である。
【図３】図３は、プロジェクタにＵＳＢメモリを接続した例を示す図である。
【図４】図４は、実施の形態１のプロジェクタの機能的構成および階層構造を示す図である。
【図５】図５は、映像データリストの表示例を示す図である。
【図６】図６は、実施の形態１のデータ転送処理のシーケンス図である。
【図７】図７は、実施の形態２のデータ転送処理のシーケンス図である。
【発明を実施するための形態】
【００１６】
以下に添付図面を参照して、この発明にかかるデータ転送装置、画像投影装置、データ転送方法およびプログラムの実施の形態を詳細に説明する。
【００１７】
（実施の形態１）
図１は、実施の形態１にかかるプロジェクタの構成図である。図１に示すように、本実施の形態の画像投影装置としてのプロジェクタ１００は、映像端子１０１と、ＵＳＢ端子１０３と、操作部１０２と、Ａ／Ｄコンバータ１０４と、映像処理部１０５と、投影駆動部１０６と、投影部１０７と、ＣＰＵ１０８と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０９と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１１０と、ＵＳＢホストコントローラ１１１とを主に備えている。
【００１８】
ＣＰＵ１０８は、バス上に接続されたＡ／Ｄコンバータ１０４、映像処理部１０５、投影駆動部１０６、ＵＳＢホストコントローラ１１１を制御する。ＲＯＭ１０９には、プロジェクタ１００を制御する制御プログラムやデータ転送プログラムが格納され、ＣＰＵ１０８により当該制御プログラムやデータ転送プログラムが実行される。ＲＡＭ１１０は、ＣＰＵ１０８が制御プログラムやデータ転送プログラムを実行する際の作業メモリとして使用される。
【００１９】
Ａ／Ｄコンバータ１０４は、映像端子１０１から入力されてきたアナログの映像信号をデジタルの映像信号に変換する。映像処理部１０５は、デジタルの映像信号に対して、コントラスト調整、明るさ調整、シャープネス調整、スケーリング処理、メニュー情報の重畳（ＯＳＤ、Ｏｎ  Ｓｃｒｅｅｎ  Ｄｉｓｐｌａｙ）などの各種画像処理を行う。
【００２０】
操作部１０２は、ユーザからの各種操作を受け付けるものである。投影駆動部１０６は、投影部１０７を駆動する。投影部１０７は、映像信号を投影する。投影駆動部１０６と投影部１０７の詳細は以下のとおりである。プロジェクタ１００の投影方式としては、液晶方式やデジタルミラーデバイス（ＤＭＤ）を用いたＤＬＰ（Ｄｉｇｉｔａｌ  Ｌｉｇｈｔ  Ｐｒｏｃｅｓｓｉｎｇ）方式などがあるが、本実施の形態では、液晶方式を例にあげて説明する。液晶方式の投影部１０７は、赤（Ｒ）・緑（Ｇ）・青（Ｂ）の三原色を示す液晶パネルであり、投影駆動部１０６は、映像処理部１０５により処理された映像信号を、投影部１０７である液晶パネルで駆動するＲＧＢの映像信号に変換する。液晶パネルはプロジェクタ１００内の光源（不図示）から発せられる光を透過するように配置され、入力された映像信号に基づいた画像を形成し、プロジェクタ１００の外部にその画像を投影する。ＵＳＢホストコントローラ１１１については後述する。
【００２１】
本実施の形態のプロジェクタ１００は、図２に示すように、ＰＣ２００と接続して、ＰＣ２００の映像を投影することができる。この場合、ＰＣ２００は、プロジェクタ１００の映像端子１０１に映像ケーブルで接続され、ＰＣ２００からの映像信号を、映像端子１０１から入力して、Ａ／Ｄコンバータ１０４、映像処理部１０５、投影駆動部１０６、投影部１０７により投影が行われる。なお、ＰＣ２００からデジタル映像信号が出力されている場合は、Ａ／Ｄコンバータ１０４によりＡ−Ｄ変換処理は行わない。
【００２２】
また、本実施の形態のプロジェクタ１００は、図３に示すように、ＵＳＢメモリ３００などのストレージデバイスに投影する静止画や動画等の映像データを保存しておき、そのＵＳＢメモリ３００を直接プロジェクタ１００に接続し、ＵＳＢメモリ３００内の映像データを投影することもできる。この場合、ＵＳＢメモリ３００は、プロジェクタ１００のＵＳＢ端子１０３に接続される。
【００２３】
本実施の形態のプロジェクタ１００は、ＵＳＢのＯｎ−Ｔｈｅ−Ｇｏ規格に準拠した機能を搭載している。即ち、本実施の形態のプロジェクタ１００は、ＵＳＢホストの役割を果たすため、ＵＳＢデバイスであるＵＳＢメモリ３００内の映像データを読み出すことが可能となっている。
【００２４】
図４は、実施の形態１のプロジェクタ１００の機能的構成および階層構造を示す図である。本実施の形態のプロジェクタ１００は、図４に示すように、ハードウェアである上述のＵＳＢホストコントローラ１１１と、ＵＳＢコントローラドライバ１１２と、ＵＳＢバスドライバ１１３と、ＵＳＢマスストレージドライバ１１４と、ファイルシステム１１５と、アプリケーション１１６とを主に備えている。
【００２５】
ここで、ＵＳＢコントローラドライバ１１２、ＵＳＢバスドライバ１１３、ＵＳＢマスストレージドライバ１１４、ファイルシステム１１５、アプリケーション１１６は、いずれもソフトウェアであり、この順で下層から上層へ向うレイヤ構造となっている。
【００２６】
最下層のＵＳＢホストコントローラ１１１は、シリアルインタフェース制御部として機能し、ＵＳＢ端子１０３に接続されたＵＳＢデバイスであるＵＳＢメモリ３００の接続を検出する。また、ＵＳＢホストコントローラ１１１は、後述のＵＳＢバスドライバ１１３からの指示により、ＵＳＢデバイスに対するＲｅａｄ要求であるＩＮトークン、ＵＳＢデバイスに対するＷｒｉｔｅ要求であるＯＵＴトークンを発行する。
【００２７】
ＵＳＢデバイスは、ＵＳＢホストコントローラ１１１から発行された各トークンに対して、応答可能である場合には成功を示すＡＣＫ応答を返答し、応答不可能である場合には失敗を示すＮＡＫ応答を返答する。
【００２８】
また、ＵＳＢホストコントローラ１１１は、内部にレジスタを有しており、このレジスタには、ＮＡＫ累積最大受信回数が設定されている。ＮＡＫ累積最大受信回数は、Ｒｅａｄ要求であるＩＮトークンであれば、Ｒｅａｄ要求をエラーとして上位層に通知するためのＵＳＢデバイスによるＮＡＫ応答の連続回数である。
【００２９】
ＵＳＢコントローラドライバ１１２は、ＵＳＢホストコントローラ１１１の制御を行う。本実施の形態のＵＳＢコントローラドライバ１１２は、プロジェクタ１００の起動時の一連の初期設定処理等の中で、ＵＳＢホストコントローラ１１１内のレジスタにＮＡＫ累積最大受信回数を設定する。Ｒｅａｄ要求の動作中は、ＮＡＫ累積最大受信回数の設定値を変更しない。
【００３０】
ＵＳＢバスドライバ１１３は、転送制御部として機能し、ＵＳＢの各転送方式であるコントロール転送、インタラプト転送、バルク転送、アイソクロナス転送の制御を行う。
【００３１】
ＵＳＢバスドライバ１１３は、ＵＳＢデバイスであるＵＳＢメモリ３００に対するデータのＲｅａｄ要求（ＩＮトークン）の発行をＵＳＢホストコントローラ１１１に指示する。これにより、ＵＳＢホストコントローラ１１１は、Ｒｅａｄ要求（ＩＮトークン）の発行を繰り返し実行する。
【００３２】
そして、ＵＳＢバスドライバ１１３は、ＮＡＫ累積最大受信回数だけＲｅａｄ要求を発行しても、ＵＳＢデバイス（ＵＳＢメモリ３００）からＲｅａｄ要求に対応したＡＣＫ応答を受信しなかった場合でも、エラーを上位層に通知することは行わず、所定の再送時間の経過を待って、当該再送時間の後に、Ｒｅａｄ要求の発行を再開する指示をＵＳＢホストコントローラ１１１に行う。これにより、ＮＡＫ応答をＮＡＫ累積最大受信回数分受信した場合でも、再送時間の経過後に、ＵＳＢホストコントローラ１１１からＲｅａｄ要求の発行が再開される。ここで、再送時間は、予めＵＳＢホストコントローラ１１１のレジスタ等に保存されている。本実施の形態では、再送時間は変更されない。
【００３３】
すなわち、プロジェクタ１００からのＵＳＢメモリ３００内の映像データのＲｅａｄ効率を維持するために、ＵＳＢホストコントローラ１１１は、ＵＳＢバスドライバ１１３の制御により、ＵＳＢメモリ３００からのＡＣＫ応答が、ＮＡＫ累積最大受信回数に達するまで受信されない場合でも、連続的にＲｅａｄ要求であるＩＮトークンを発行する。特にデータ転送時は、数回ＮＡＫ応答（数μ〜数十μ秒）した後、ＡＣＫ応答するケースは通常多々あるため、連続的なＩＮトークン発行は有効である。
【００３４】
また、ＵＳＢ規格では、ＵＳＢバス上に複数のＵＳＢデバイスを接続することができる。複数のＵＳＢデバイスを接続する構成をも想定すると、ＵＳＢバス上のＩＮトークン数は制限すべきである。このため、本実施の形態では、ＵＳＢバスドライバ１１３が、ＮＡＫ応答がＮＡＫ累積最大受信回数に達した場合、次のＩＮトークン送出までの再送時間の経過後に、ＵＳＢメモリ３００に対してＩＮトークンの再送出を行うように制御する。
【００３５】
ＵＳＢマスストレージドライバ１１４は、ＵＳＢマスストレージクラスのクラスドライバであり、ＵＳＢメモリ３００をセクタ単位でＲｅａｄ／Ｗｒｉｔｅする。本実施の形態のプロジェクタ１００は、ＵＳＢマスストレージクラスに対応している。ＵＳＢメモリ３００も、ＵＳＢマスストレージクラスに対応している。このため、ＵＳＢメモリ３００をプロジェクタ１００に接続した場合、プロジェクタ１００はＵＳＢメモリ３００をストレージデバイスとして認識することができ、ＵＳＢメモリ３００内の映像データを、ファイルデータとして扱うことができる。
【００３６】
マスストレージクラスには、主として、ＵＳＢのコントロール転送、バルク転送、インタラプト転送を用いるＣＢＩ方式と、バルク転送のみで実現するＢｕｌｋ  Ｏｎｌｙ方式がある。一般的に、ＵＳＢデバイスであるＵＳＢメモリ３００は、エンドポイント数を少なく構成でき、低コストで実現可能なＢｕｌｋ  Ｏｎｌｙ方式が主流となっている。
【００３７】
本実施の形態のＵＳＢマスストレージドライバ１１４は、ＣＢＩ方式、Ｂｕｌｋ  Ｏｎｌｙ方式のいずれも対応可能であるが、上述のとおり、ＵＳＢメモリ３００はＢｕｌｋ  Ｏｎｌｙ方式が主流であることから、本実施の形態では、ＵＳＢメモリ３００はＢｕｌｋ  Ｏｎｌｙ方式であることを前提とする。ただし、Ｂｕｌｋ  Ｏｎｌｙ方式に限定されるものではなく、ＣＢＩ方式を採用することも可能である。
【００３８】
ここで、Ｂｕｌｋ  Ｏｎｌｙ方式を採用することにより、ＵＳＢホストコントローラ１１１、ＵＳＢコントローラドライバ１１２は、ＵＳＢメモリ３００の機器状態を取得するコマンドや、ＵＳＢメモリ３００内の映像データを取得するコマンド、すなわち連続的にデータのＲｅａｄ要求のコマンドにおいて、バルク転送を使用する。
【００３９】
ファイルシステム１１５は、ＵＳＢマスストレージドライバ１１４によりＵＳＢメモリ３００をセクタ単位でＲｅａｄ／Ｗｒｉｔｅ可能なため、ＵＳＢメモリ３００をファイルシステムとして認識する。
【００４０】
アプリケーション１１６は、投影駆動部１０６を制御して、ファイルシステム１１５から提供されるファイルデータ、即ちＵＳＢメモリ３００内の映像データを投影する。アプリケーション１１６は、ＵＳＢメモリ３００内の映像データファイルを、図５に示す映像データリストとして投影する。ユーザは操作部１０２から図５で表示された映像データ一覧の中から、投影を希望する映像データを選択する。アプリケーション１１６は、操作部１０２からユーザにより選択された映像データをＵＳＢメモリ３００から読みだして、当該映像データの投影処理を行う。
【００４１】
次に、以上のように構成された本実施の形態のプロジェクタ１００、ＵＳＢメモリ３００間のデータ転送処理について説明する。図６は、実施の形態１のデータ転送処理のシーケンス図である。図６において、各コマンド、応答におけるＢｕｌｋは、バルク転送であることを意味している。
【００４２】
まず、プロジェクタ１００は、ＵＳＢホストコントローラ１１１によりＵＳＢメモリ３００に対して、ＴＥＳＴ  ＵＮＩＴ  ＲＥＡＤＹコマンドを発行する（ステップＳ１１）。次に、プロジェクタ１００のＵＳＢホストコントローラ１１１は、ＵＳＢバスドライバ１１３の指示により、Ｒｅａｄ要求（ＩＮトークン）を、ＵＳＢメモリ３００に対して発行する（ステップＳ１２）。これに対して、ＵＳＢメモリ３００がまだ準備できていない場合には、ＮＡＫ応答をプロジェクタ１００に対して返答する（ステップＳ１３）。
【００４３】
このようなプロジェクタ１００からＵＳＢメモリ３００へのＲｅａｄ要求（ＩＮトークン）の発行は、ＵＳＢメモリ３００からＡＣＫ応答が返答されるまで繰り返し行う（ステップＳ１２、Ｓ１３、Ｓ１４、Ｓ１５）。ＵＳＢバスドライバ１１３は、ＮＡＫ応答が返答されるごとにその回数をカウントしている。
【００４４】
そして、ＵＳＢバスドライバ１１３は、ＮＡＫ応答の回数が、ＵＳＢホストコントローラ１１１のレジスタに設定されたＮＡＫ累積最大受信回数に到達した場合には、ＵＳＢホストコントローラ１１１のレジスタに設定された再送時間が経過するまでＲｅａｄ要求を発行せず、またエラーの通知を上位層に行わずに待機する（ステップＳ１６）。
【００４５】
そして、再送時間が経過したら、ＵＳＢバスドライバ１１３は、ＵＳＢホストコントローラ１１１に指示して、Ｒｅａｄ要求（ＩＮトークン）の発行を再開する（ステップＳ１７）。そして、ＵＳＢメモリ３００からＡＣＫ応答を受信した場合（ステップＳ１８）、ＵＳＢバスドライバ１１３は、ＵＳＢメモリ３００との接続が成功したと判断し、処理を終了する。
【００４６】
このように本実施の形態では、ＵＳＢメモリ３００等のＵＳＢデバイスに対するＲｅａｄ要求を繰り返して発行し、ＮＡＫ応答がＮＡＫ累積最大受信回数に達した場合でも、エラーとして扱わず、再送時間の経過後に、ＵＳＢデバイスに対するＲｅａｄ要求の発行を再開しているので、ＵＳＢデバイスからのデータのリード効率を向上させることができる。
【００４７】
また、Ｒｅａｄ要求（ＩＮトークン）の発行間隔が１μ秒レベルで発行可能な性能のＵＳＢホストコントローラ１１１において、ＮＡＫ累積最大受信回数が１０万回であったとすると、１秒程度以内にＡＣＫ応答を受信しないとエラーとなってしまうが、本実施の形態では、プロトコル層であるＵＳＢバスドライバ１１３でＲｅａｄ要求を再送しているので、１秒以上ＡＣＫ応答がない場合でも、コマンド通信を成功させることができる。そして、Ｒｅａｄ要求の再送間隔を設けることにより、Ｒｅａｄ要求（ＩＮトークン）送出の過多によるＵＳＢバスの負荷低減も図ることができる。
【００４８】
（実施の形態２）
実施の形態１では、ＮＡＫ応答がＮＡＫ累積最大受信回数に達した場合に待機する再送時間は固定であったが、この実施の形態２では、再送時間を可変にしている。
【００４９】
実施の形態２のプロジェクタ１００のハードウェア構成、機能的構成は、図１、図４で説明した実施の形態１と同様である。本実施の形態では、ＵＳＢバスドライバ１１３の機能が実施の形態１と異なっている。
【００５０】
本実施の形態のＵＳＢバスドライバ１１３は、ＵＳＢホストコントローラ１１１によるＲｅａｄ要求の発行の再開後、ＡＣＫ応答を受信するまでＲｅａｄ要求の発行を繰り返し、ＮＡＫ累積最大受信回数だけＲｅａｄ要求を発行してもＵＳＢメモリ３００からＡＣＫ応答を受信しなかった場合に、再送時間を増加する。コマンド通信時のＡＣＫ応答に秒単位の時間を要するＵＳＢメモリ３００の場合、一定の再送時間で再送信するよりも、再送時間を延ばしていくほうが好ましいからである。そして、ＵＳＢバスドライバ１１３は、増加された再送時間の経過後に、Ｒｅａｄ要求の発行を再開するようにＵＳＢホストコントローラ１１１を制御する。
【００５１】
また、ＵＳＢバスドライバ１１３は、Ｒｅａｄ要求の発行を再開した後、ＡＣＫ応答を受信した場合に、増加した再送時間、すなわちＡＣＫ応答が返答されたＲｅａｄ要求の再発行時点での再送時間を、新たな再送時間としてＵＳＢホストコントローラ１１１のレジスタに設定する。
【００５２】
ここで、ＵＳＢバスドライバ１１３は、再送時間を線形的に、すなわち一次関数（線形関数）に従って増加することができる。また、この他の再送時間の増加の手法として、ＵＳＢバスドライバ１１３は、再送時間を加速度的に延ばすため、再送時間を２次関数等の多次関数に従って増加してもよい。
【００５３】
次に、以上のように構成された本実施の形態のプロジェクタ１００、ＵＳＢメモリ３００間のデータ転送処理について説明する。図７は、実施の形態２のデータ転送処理のシーケンス図である。
【００５４】
ＴＥＳＴ  ＵＮＩＴ  ＲＥＡＤＹコマンドの発行から再送時間経過の待機までの処理（ステップＳ１１〜Ｓ１６）は、実施の形態１と同様である。そして、再送時間が経過したら、ＵＳＢバスドライバ１１３は、ＵＳＢホストコントローラ１１１に指示して、Ｒｅａｄ要求（ＩＮトークン）の発行を再開する（ステップＳ１７）。そして、プロジェクタ１００からＵＳＢメモリ３００へのＲｅａｄ要求（ＩＮトークン）の発行は、ＵＳＢメモリ３００からＡＣＫ応答が返答されるまで繰り返し行う（ステップＳ１７、Ｓ２１、Ｓ２２、Ｓ２３）。ＵＳＢバスドライバ１１３は、ＮＡＫ応答が返答されるごとにその回数をカウントしている。
【００５５】
そして、ＵＳＢバスドライバ１１３は、ＮＡＫ応答の回数が、ＵＳＢホストコントローラ１１１のレジスタに設定されたＮＡＫ累積最大受信回数に到達した場合には、ＵＳＢバスドライバ１１３は、再送時間を増加する（ステップＳ２４）。そして、ＵＳＢバスドライバ１１３は、増加した再送時間が経過するまでＲｅａｄ要求を発行せず、またエラーの通知を上位層に行わずに待機する（ステップＳ２５）。
【００５６】
そして、再送時間が経過したら、ＵＳＢバスドライバ１１３は、ＵＳＢホストコントローラ１１１に指示して、Ｒｅａｄ要求（ＩＮトークン）の発行を再開する（ステップＳ１２６）。そして、ＵＳＢメモリ３００からＡＣＫ応答を受信した場合（ステップＳ２７）、ＵＳＢバスドライバ１１３は、ステップＳ２４で増加した再送時間を、ＵＳＢホストコントローラ１１１のレジスタに設定された再送時間に設定して更新する（ステップＳ２８）。これ以降は、更新された再送時間が使用されることになる。
【００５７】
このように本実施の形態では、再送時間を増加してＡＣＫ応答があったＲｅａｄ要求発行時点の再送時間で更新しているので、Ｒｅａｄ効率を最適に維持することが可能となる。
【００５８】
なお、実施の形態１，２のプロジェクタ１００で実行されるデータ転送プログラムは、ＲＯＭ１０９等に予め組み込まれて提供される。
【００５９】
実施の形態１，２のプロジェクタ１００で実行されるデータ転送プログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
【００６０】
さらに、実施の形態１，２のプロジェクタ１００で実行されるデータ転送プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、実施の形態１，２のプロジェクタ１００で実行されるデータ転送プログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【００６１】
実施の形態１，２のプロジェクタ１００で実行されるデータ転送プログラムは、上述した各部（ＵＳＢコントローラドライバ１１２、ＵＳＢバスドライバ１１３、ＵＳＢマスストレージドライバ１１４、ファイルシステム１１５、アプリケーション１１６）を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ１０８が上記ＲＯＭ１０９からデータ転送プログラムを読み出して実行することにより上記各部がＲＡＭ１１０等の主記憶装置上にロードされ、ＵＳＢコントローラドライバ１１２、ＵＳＢバスドライバ１１３、ＵＳＢマスストレージドライバ１１４、ファイルシステム１１５、アプリケーション１１６が主記憶装置上に生成されるようになっている。
【００６２】
なお、上記実施の形態では、本発明のデータ転送装置をプロジェクタに適用した例を説明しているが、これに限定されるものではなく、ＵＳＢホストとなり得る装置であればいずれにも適用することができる。
【符号の説明】
【００６３】
１００  プロジェクタ
１０１  映像端子
１０２  操作部
１０３  ＵＳＢ端子
１０４  Ａ／Ｄコンバータ
１０５  映像処理部
１０６  投影駆動部
１０７  投影部
１０８  ＣＰＵ
１０９  ＲＯＭ
１１０  ＲＡＭ
１１１  ＵＳＢホストコントローラ
１１２  ＵＳＢコントローラドライバ
１１３  ＵＳＢバスドライバ
１１４  ＵＳＢマスストレージドライバ
１１５  ファイルシステム
１１６  アプリケーション
【先行技術文献】
【特許文献】
【００６４】
【特許文献１】特開２０１０−２６６５１号公報
【特許文献２】特開２００５−１２２３７２号公報
【図１】
2013029884.tif 000003
【図２】
2013029884.tif 000004
【図３】
2013029884.tif 000005
【図４】
2013029884.tif 000006
【図５】
2013029884.tif 000007
【図６】
2013029884.tif 000008
【図７】
2013029884.tif 000009