(57)【特許請求の範囲】
【請求項１】
各フレームで転送する周期転送のデータ量を制御するＵＳＢホスト装置であって、
前記データ量を簡易計算で計算する第一の計算手段と、
前記第一の計算手段で計算された前記データ量が、ＵＳＢの転送許可基準値を超えている場合、詳細計算で前記フレームごとの前記データ量を計算する第二の計算手段と、
前記第一の計算手段で計算された前記データ量もしくは前記第二の計算手段で計算された前記データ量に基づき、前記周期転送の登録の判断と登録処理とを行う登録手段と
を有することを特徴とするＵＳＢホスト装置。
【請求項２】
各フレームで転送する周期転送のデータ量を制御するＵＳＢホスト装置が実行する制御方法であって、
前記データ量を簡易計算で計算する第一の計算工程と、
前記第一の計算工程で計算された前記データ量が、ＵＳＢの転送許可基準値を超えている場合、詳細計算で前記フレームごとの前記データ量を計算する第二の計算工程と、
前記第一の計算工程で計算された前記データ量もしくは前記第二の計算工程で計算された前記データ量に基づき、前記周期転送の登録の判断と登録処理とを行う登録工程と
を有することを特徴とする制御方法。
【請求項３】
各フレームで転送する周期転送のデータ量の制御をコンピュータに実行させるプログラムであって、
前記データ量を簡易計算で計算する第一の計算工程と、
前記第一の計算工程で計算された前記データ量が、ＵＳＢの転送許可基準値を超えている場合、詳細計算で前記フレームごとの前記データ量を計算する第二の計算工程と、
前記第一の計算工程で計算された前記データ量もしくは前記第二の計算工程で計算された前記データ量に基づき、前記周期転送の登録の判断と登録処理とを行う登録工程と
を前記コンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＵＳＢホスト装置、制御方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、ほぼ全ての機器において、プリンタ、デジタルカメラ等をＰＣと接続する規格として、ＵＳＢ（Universal Serial Bus）インタフェースが用いられるようになった。ＵＳＢは、各々の機器が動作中に接続・切断が容易に行える等の利便性に優れている。ＵＳＢには、４８０Mbpsと１２Mbpsと１．５Mbpsとの３つの転送速度モードがあるので、機器については、その要求する機能に合った転送速度で構築することが可能である。
さらに、ＵＳＢは、ＵＳＢホスト装置と称される機器とＵＳＢデバイスと称される機器とを接続して利用する規格であり、特にＵＳＢホスト装置は、ＰＣを想定して規格化され、ＵＳＢデバイスは、周辺機器を想定して規格化されている。ＵＳＢホスト装置が主な処理を行うので、ＵＳＢデバイスの構成を極力小さくする工夫がなされている。ここで、ＵＳＢ規格については、ＵＳＢ規格の全貌が開示されている（例えば、非特許文献１）。
また、ＵＳＢホスト装置については、その大規模な仕様を実現するために多種の実装が世に出回らないように、いくつかの規格が提示されている。その代表的なものにＥＨＣＩ（Enhanced Host Controller Interface）がある（例えば、非特許文献２）。また、ＯＨＣＩ（Open Host Controller Interface）がある（例えば、非特許文献３）。また、ＵＨＣＩ（Universal Host Controller Interface）がある（例えば、非特許文献４）。いずれも、そのハードウェアの機能と、ソフトウェア（デバイスドライバ）の機能とのインタフェース（レジスタ、共有メモリ）を規定することでＵＳＢ規格の乱立を避けている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Compaq、Hewlett-Packard、Intel、Lucent、Microsoft、NEC、Philips、「Universal Serial Bus Specification」Revision 2.0、April 27、2000
【非特許文献２】Intel、「Enhanced Host Controller Interface Specification for Universal Serial Bus」 Revision 1.0、March 12、2002
【非特許文献３】Compaq、Microsoft、National Semiconductor、「Open Host Controller Interface Specification」Release 1.0a、09/14/99 2:33PM
【非特許文献４】Intel、「Universal Host Controller Interface」Design Guide REVISION 1.1、March 1996
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、製品の多様化に伴い、組込み機器と称されるようなある分野に特化した、小型で、低コストである機器にもＵＳＢホスト装置に係る機能を搭載する傾向にある。その際、機能的に貧困な機器であるにもかかわらず、その新規な開発に要するコスト等の問題から従来のＰＣに搭載されていたＥＨＣＩ等といったＵＳＢホスト装置に係る機能を実現するハードウェアを搭載することが多い。
ＥＨＣＩにおいては、特に周期転送について、フレームに送信する転送データリストを利用する環境に合わせて最低でも２５６フレーム分ＲＡＭ上に持たなければならない。さらに、それぞれのフレームでＵＳＢ規格の転送限界量を超えないようにソフトウェアで制御する必要がある。
それぞれのフレームでＵＳＢ規格の転送限界量を超えないようにソフトウェアで制御するには、一般的には各フレームに転送データリストを登録する際にそのリストを手繰って転送量を算出する。それが転送限界量を超えていないかを判断するか、又は、登録された時点での転送量をＲＡＭ等に保存しておく方法が考えられる。
しかしながら、前者では登録時のＣＰＵパワーを必要とする。後者ではＲＡＭ容量を必要とするために、ＣＰＵパワー、ＲＡＭ容量といった資源に乏しい組込み機器におけるＵＳＢホスト装置に係る機能の実現を困難なものにしている。
【０００５】
本発明はこのような問題点に鑑みなされたもので、周期転送のデータ量をより容易に制御することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、各フレームで転送する周期転送のデータ量を制御するＵＳＢホスト装置であって、前記データ量を簡易計算で計算する第一の計算手段と、前記第一の計算手段で計算された前記データ量が、ＵＳＢの転送許可基準値を超えている場合、詳細計算で前記フレームごとの前記データ量を計算する第二の計算手段と、前記第一の計算手段で計算された前記データ量もしくは前記第二の計算手段で計算された前記データ量に基づき、前記周期転送の登録の判断と登録処理とを行う登録手段とを有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、周期転送のデータ量をより容易に制御できる。
【図面の簡単な説明】
【０００８】
【図１】機能構成の例を示す図である。
【図２】ハードウェア構成の例を示す図である。
【図３】登録された周期転送とフレームとの関係を概念的に示す図である。
【図４】転送量簡易計算処理に係るフローチャートを示す図である。
【図５】転送量詳細計算処理に係るフローチャートを示す図である。
【図６】計算方法切替処理に係るフローチャートを示す図である。
【図７】周期転送登録処理に係るフローチャートを示す図である。
【図８】周期転送登録処理に係るフローチャートを示す図である。
【図９】計算方法切替処理の差し替え部分に係るフローチャートを示す図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について図面に基づいて説明する。
【００１０】
図１は、本実施形態に係るＵＳＢホストシステム（ＵＳＢホスト装置）１０１の機能構成を示す概念図である。
図１において、１０１は、ＵＳＢホストシステム、１０２は、ＵＳＢケーブル、１０３は、ＵＳＢホスト機能、１０４は、転送量簡易計算機能である。また、１０５は、転送量詳細計算機能、１０６は、計算方法切替機能、１０７は、周期転送登録機能、１０８は、転送許可基準値である。
ＵＳＢホストシステム１０１は、ＵＳＢケーブル１０２を介して（場合によりＵＳＢハブシステムを介することもある。）、ＵＳＢデバイス（図示せず。）と接続されることでＵＳＢサービスを提供する。ＵＳＢデバイスは、複数であることも考えられ、その場合にＵＳＢケーブル１０２は、複数のＵＳＢホストシステム１０１と接続することも可能である。
ＵＳＢホスト機能１０３では、ＵＳＢ規格を満足させるための処理を行う。例えば、ＥＨＣＩ規格等で定められるハードウェア機能やソフトウェア機能は、ＵＳＢホスト機能１０３に含まれる。ただし、本実施形態に係る転送量（転送負荷）の計算や、転送がＵＳＢ規格を満足するように収める機能は含まない。また、ＵＳＢホスト機能１０３は、ＵＳＢデバイスから受けた構成情報（各種のDescriptor）や内部状態（例えば、標準リクエストの応答内容、ＵＳＢ状態）等の情報を他の構成要素へ通知することができる。なお、本実施形態の説明では、ＵＳＢホスト機能１０３にＥＨＣＩ規格を含む形態で説明をする。
【００１１】
周期転送を保持するＵＳＢデバイスがＵＳＢホストシステム１０１に接続されると、ＵＳＢデバイスから周期転送の登録が要求される。ＵＳＢホストシステム１０１は、周期転送の登録要求をＵＳＢホスト機能１０３で処理し、ＵＳＢデバイスから与えられる情報を保持する。ＵＳＢデバイスから与えられる情報のうち、例えば、周期転送の転送データ量（EndpointDescriptorにおけるwMaxPacketSizeの値）が利用される。
本実施形態では、計算方法切替機能１０６により転送量簡易計算機能１０４が最初に転送データ計算機能として選択されている。転送量簡易計算機能１０４は、ＵＳＢホスト機能１０３が保持する転送データ量をもとに簡易的に転送量を計算し（後述の図４）、計算した転送量を計算方法切替機能１０６へ通知する。
計算方法切替機能１０６は、転送量簡易計算機能１０４によって通知された値（転送量）を転送許可基準値１０８と比較する。転送許可基準値１０８は、周期転送を登録するか否かを判断するための基準値であり、１フレームで転送できる周期転送の最大のデータサイズである。比較の結果、転送量簡易計算機能１０４によって渡された値が転送許可基準値１０８を超えていない場合は、転送量簡易計算機能１０４は、超えていない旨（換言するならば、該当する周期転送が登録可能であること）を周期転送登録機能１０７へ通知する。周期転送登録機能１０７は、超えていない旨の通知を受け取ると、該当する周期転送をＵＳＢホスト機能１０３に登録する。登録された周期転送は、ＵＳＢホスト機能１０３によって、適切な時点で転送（データの送受信）が行われるようになる。
【００１２】
転送許可基準値１０８との比較で、転送量簡易計算機能１０４によって渡された値が転送許可基準値１０８を超えていた場合には、計算方法切替機能１０６は、転送データ計算機能を転送量詳細計算機能１０５へ切り替える。計算方法切替機能１０６により上記切り替えが行われると、転送量詳細計算機能１０５は、転送量を計算し（後述の図５）、計算した転送量を計算方法切替機能１０６へ通知する。
計算方法切替機能１０６は、転送量詳細計算機能１０５によって通知された値（転送量）と転送許可基準値１０８とを比較する。転送量詳細計算機能１０５によって通知された値が転送許可基準値１０８を超えていない場合は、転送量詳細計算機能１０５は、超えていない旨を周期転送登録機能１０７へ通知する。周期転送登録機能１０７は、超えていない旨の通知を受け取ると、該当する周期転送をＵＳＢホスト機能１０３に登録する。この場合も同様に、登録された周期転送は、ＵＳＢホスト機能１０３によって、適切な時点で転送が行われるようになる。他方、転送量詳細計算機能１０５によって通知された値が転送許可基準値１０８を超えていた場合は、転送量詳細計算機能１０５は、周期転送登録機能１０７への通知を断念するので、該当する周期登録のパイプでの通信は、行われなくなる。
【００１３】
ここで、計算方法切替機能１０６は、転送量簡易計算機能１０４及び転送量詳細計算機能１０５で得られた値を転送許可基準値１０８と比較する際、転送許可基準値１０８については、各々で異なる値でも同一の値でもよい。例えば、非特許文献２に記載されている様に、重みを加味した値（転送量及び転送許可基準値１０８）を用いることも可能である。
また、転送量が転送許可基準値１０８を超え、該当する周期登録が登録されない場合、ＵＳＢホストシステム１０１においては、様々な構成を採用できる。すなわち、該当するＵＳＢデバイスを機能させない、該当パイプを中止する（該当する周期登録のパイプに対してSetFeature標準リクエストによってStall状態へ遷移させる）、ＵＳＢデバイスへは無通知等の構成を採用できる。
また、ＵＳＢデバイスが切断された場合は、ＵＳＢホスト機能１０３は、ＵＳＢデバイスの切断を検知し、登録されている周期転送を削除する。このとき、ＵＳＢホスト機能１０３は、削除した周期転送の転送データ量を転送量簡易計算機能１０４と転送量詳細計算機能１０５とに通知する。転送量簡易計算機能１０４と転送量詳細計算機能１０５とでは、通知された転送データ量を保持データから減じる。ここで、例えば、転送量簡易計算機能１０４については切断されたＵＳＢデバイスに対して転送データ量を減じる作業を行わないことも可能である。
なお、登録フレーム番号１０９は、第２の実施形態で用いられ、簡易計算遷移判断機能１１０は、第３の実施形態で用いられるものである。
【００１４】
図２は、本実施形態に係るＵＳＢホストシステム１０１のハードウェア構成の一例を示す図である。
図２において、２０１は、ＭＰＵ（マイクロプロセッサ）、２０２は、ＲＯＭ、２０３は、ＲＡＭ、２０４は、Ｉ／Ｏコントローラ、２０５は、ＵＳＢホストコントローラ、２０６は、バスを示している。
ＵＳＢホストシステム１０１は、マイクロプロセッサ２０１、ＲＯＭ２０２、ＲＡＭ２０３、Ｉ／Ｏコントローラ２０４、ＵＳＢホストコントローラ２０５、及びバス２０６を含んで構成される。また、必要なモジュールを自由に組み合わせることができ、例えばＩ／Ｏコントローラ２０４の機構等を介して他のハードウェアを付加することができる。
なお、本図は、あくまでも本実施形態に係るＵＳＢホストシステム１０１のハードウェア構成の一例を示す。したがって、各モジュールを単一バスで接続しない構成、Ｉ／Ｏコントローラ２０４を介してＵＳＢホストコントローラ２０５を接続する等、さらに複数の演算装置にて構成する等、形態としては様々なものを適宜採用できる。
また、本実施形態では、マイクロプロセッサ２０１が、ＲＯＭ２０２に格納されたプログラムの手順に従って処理を行うことによって、ＵＳＢホストシステム１０１における機能及び後述するフローチャートに係る処理が実現される。
【００１５】
図３は、本実施形態に係るＵＳＢホストシステム１０１における、登録された周期転送とフレームとの関係を概念的に示した図である。
図３において、３０１は、フレームを示し、３０２は、パイプＡの周期転送情報リストａ、３０３は、パイプＡの周期転送情報リストｂ、３０４は、パイプＡの周期転送情報リストｃである。また、３０５は、パイプＡの周期転送情報リストｄ、３０６は、パイプＢの周期転送情報リストａ、３０７は、パイプＢの周期転送情報リストｂ、３０８は、パイプＣの周期転送情報リストａである。
フレーム番号１のフレームでは、パイプＡを介してＸバイトのデータを転送し、パイプＢを介してＹバイトのデータを転送するスケジュールであることがわかる。なお、各パイプの転送データ量は、ＵＳＢデバイスが接続されるとＵＳＢホスト機能１０３が保持する、EndpointDescriptorに記述されているwMaxPacketSizeより得られる数値である。
また、周期転送の登録の順番は、パイプＡ、パイプＢ、パイプＣの順であり、登録順にリストが接続されている。
【００１６】
ここで、転送量簡易計算機能１０４が計算方法切替機能１０６へ通知する転送量について説明する。算出される転送量は、例えば、パイプＡについての周期転送の登録時はＸバイト、パイプＢについての周期転送の登録時はＸ＋Ｙバイト、パイプＣについての周期転送の登録点はＸ＋Ｙ＋Ｚとなる。
また、転送量詳細計算機能１０５が計算方法切替機能１０６へ通知する転送量について説明する。算出される転送量は、例えば、パイプＣについての周期転送の登録時ではフレーム番号１についてはＸ＋Ｙバイト、フレーム番号２については０バイト、フレーム番号３についてはＸバイトとなる。また、フレーム番号４については０バイト、フレーム番号５についてはＸ＋Ｙ＋Ｚバイト、フレーム番号６については０バイト、フレーム番号７についてはＸバイト、フレーム番号８については０バイトとなる。
なお、転送データ量としては、ＵＳＢホスト機能１０３がＵＳＢデバイスから通知される最大パケットサイズを直接利用するが、非特許文献２に記載されているように、ヘッダやＣＲＣ等の影響を考慮し、重み付けした値を利用することも可能である。
【００１７】
図４は、本実施形態に係るＵＳＢホストシステム１０１の転送量簡易計算機能１０４における転送量簡易計算処理を示している。
本転送量簡易計算処理は、ＵＳＢホストシステム１０１が起動し、ＵＳＢホストシステム１０１としてのサービス（機能）を提供するまでに開始される。
ステップＳ４０１において、転送量簡易計算機能１０４は、簡易的に計算して保持するデータ（保持データ）の初期化を行う。保持データとしては、例えば、使用するマイクロプロセッサ２０１やバス２０６が４バイト幅である場合、使用するプログラム言語上で４バイト幅の整数を１つ用意するとよい。また、転送データ量の値として重み付けを行わない場合、転送量簡易計算機能１０４は、０に初期化する。転送量簡易計算機能１０４は、続いてステップＳ４０２の処理を行う。
ステップＳ４０２において、転送量簡易計算機能１０４は、同じくＵＳＢホスト機能１０３が保持する、最大パケットサイズ（EndpointDescriptorにおけるwMaxPacketSizeの値）を取得することで、転送データ量を取得する。転送量簡易計算機能１０４は、続いてステップＳ４０３の処理を行う。
【００１８】
ステップＳ４０３において、転送量簡易計算機能１０４は、保持データとステップＳ４０２で得た転送データ量とを合算し、新たな保持データとする。転送量簡易計算機能１０４は、続いてステップＳ４０４の処理を行う。
ステップＳ４０４において、転送量簡易計算機能１０４は、ステップＳ４０３にて合算した結果（転送量）を計算方法切替機能１０６へ通知する。転送量簡易計算機能１０４は、続いてステップＳ４０５の処理を行う。
ステップＳ４０５において、転送量簡易計算機能１０４は、例えば計算方法切替機能１０６よる比較の結果を受け取ることにより、計算方法切替機能１０６が計算方法を切り替えたか否かを判断する。切り替えられていない場合は、転送量簡易計算機能１０４は、ステップＳ４０６の処理を行い、切り替えられた場合は、転送量簡易計算処理を終了する。
ステップＳ４０６において、転送量簡易計算機能１０４は、周期転送登録機能１０７へ該当する周期転送が登録可能であることを通知する。転送量簡易計算機能１０４は、続いてステップＳ４０２の処理を行う。
なお、ステップＳ４０５にて計算方法が切り替えられたか否かを判断する際に、切り替えられていない場合に、その時点で新たな保持データとする処理を行うことも可能である。
【００１９】
図５は、本実施形態に係るＵＳＢホストシステム１０１の転送量詳細計算機能１０５における転送量詳細計算処理を示している。
本転送量詳細計算処理は、ＵＳＢホストシステム１０１が起動し、ＵＳＢホストシステム１０１としてのサービス（機能）を提供するまでに開始される。
ステップＳ５０１において、転送量詳細計算機能１０５は、メモリ上に用意したフレーム毎に保持するデータ（保持データ）の初期化を行う。転送量詳細計算機能１０５は、続いてステップＳ５０２の処理を行う。
ステップＳ５０２において、転送量詳細計算機能１０５は、同じくＵＳＢホスト機能１０３が保持する最大パケットサイズを取得することで、転送データ量を取得する。転送量詳細計算機能１０５は、続いてステップＳ５０３の処理を行う。
ステップＳ５０３において、転送量詳細計算機能１０５は、登録するフレームの保持データと、登録予定の周期転送に係るパイプに対する転送データ量とを合算する。転送量詳細計算機能１０５は、続いてステップＳ５０４の処理を行う。
ステップＳ５０４において、転送量詳細計算機能１０５は、ステップＳ５０３で合算した結果（フレーム毎の転送量）を計算方法切替機能１０６へ通知する。転送量詳細計算機能１０５は、続いてステップＳ５０５の処理を行う。
【００２０】
ステップＳ５０５において、転送量詳細計算機能１０５は、計算方法切替機能１０６の返答から登録可能であるか否かを判断する。登録可能である場合は、転送量詳細計算機能１０５は、ステップＳ５０６の処理を行い、登録可能でない場合は、ステップＳ５０２の処理を行う。
ステップＳ５０６において、転送量詳細計算機能１０５は、周期転送登録機能１０７に該当する周期転送が登録可能であることを通知する。転送量詳細計算機能１０５は、続いてステップＳ５０７の処理を行う。
ステップＳ５０７において、転送量詳細計算機能１０５は、ステップＳ５０３で合算した結果を各フレームの新たな保持データとする。転送量詳細計算機能１０５は、続いてステップＳ５０２の処理を行う。
【００２１】
なお、ステップＳ５０１で用意するフレーム毎の保持データの数としては、ＵＳＢホスト機能１０３が要求する数を用意する。例えば、周期転送を行うためのリストが５１２フレーム分を要求していた場合、５１２個用意する。
また、送信（ＯＵＴ）方向については、ステップＳ５０２で利用する転送データ量として、最大パケットサイズの値ではなく、実際に送信するデータパケット長を利用することも可能である。さらに、ステップＳ５０６の処理とステップＳ５０７の処理とは、処理の順序を入れ替えてもよい。
ここで、図５では、各フレームの転送量をメモリ上に保持する方法にて説明したが、これをメモリ上に保持しなくとも実現できる。すなわち、メモリ上に保持しない構成を採用する場合、ステップＳ５０１及びステップＳ５０７は、必要なくなる。また、ステップＳ５０３にて合算処理を行う代わりに、例えば、各フレーム内で転送されるデータを保持するリスト情報を全て手繰り、転送量を計算する。この場合、ＵＳＢホスト機能１０３等に、そのフレームに転送されるべき転送データ量を保持するリスト情報が必要になる。この実装方法の場合、メモリ量の消費は少なくなるが、登録毎に全てのフレームの転送量を計算する必要がある。
【００２２】
図６は、本実施形態に係るＵＳＢホストシステム１０１の計算方法切替機能１０６における計算方法切替処理を示している。
本計算方法切替処理は、ＵＳＢホストシステム１０１が起動し、ＵＳＢホストシステム１０１としてのサービス（機能）を提供するまでに開始される。
ステップＳ６０１において、計算方法切替機能１０６は、転送データ計算機能として転送量簡易計算機能１０４を設定する。計算方法切替機能１０６は、続いてステップＳ６０２の処理を行う。
ステップＳ６０２において、計算方法切替機能１０６は、転送データ計算機能から転送量が渡されるのを待ち、転送データ計算機能から渡された転送量が転送許可基準値１０８を超えているか否かを判断する。計算方法切替機能１０６は、超えていないと判断した場合、判断した結果（例えば、超えていない旨）を転送量簡易計算機能１０４へ通知し、ステップＳ６０２の処理を行い、超えていると判断した場合、ステップＳ６０３の処理を行う。
【００２３】
ステップＳ６０３において、計算方法切替機能１０６は、転送データ計算機能を転送量詳細計算機能１０５に切り替える。計算方法切替機能１０６は、続いてステップＳ６０４の処理を行う。
ステップＳ６０４において、計算方法切替機能１０６は、転送データ計算機能から転送量が渡されるのを待ち、転送データ計算機能から渡された転送量が転送許可基準値１０８を超えているか否かを判断する。そして、判断した結果を転送量詳細計算機能１０５へ通知する。計算方法切替機能１０６は、続いてステップＳ６０４の処理を行う。
【００２４】
図７は、本実施形態に係るＵＳＢホストシステム１０１の周期転送登録機能１０７における周期転送登録処理を示している。
本周期転送登録処理は、ＵＳＢホストシステム１０１が起動し、ＵＳＢホストシステム１０１としてのサービス（機能）を提供するまでに開始される。
ステップＳ７０１において、周期転送登録機能１０７は、登録予定の周期転送について算出された転送量が超過しているか否かの通知を待つ。周期転送登録機能１０７は、転送量が転送許可基準値１０８を超過している旨の通知を受信した場合は、ステップＳ７０１の処理を行い、転送量が転送許可基準値１０８を超過していない旨の通知を受信した場合は、ステップＳ７０２の処理を行う。
ステップＳ７０２において、周期転送登録機能１０７は、登録予定の周期転送をＵＳＢホスト機能１０３へ登録する。周期転送登録機能１０７は、続いてステップＳ７０１の処理を行う。
以上のように構成（実装）することで、周期転送の登録の判断と登録処理とを行う周期転送登録機能１０７を有するＵＳＢホストシステム１０１を構築することができる。このような構成によれば、周期転送がＵＳＢ規格の転送限界量を超えないようにＵＳＢホストシステム１０１が制御する際に、消費するＣＰＵパワーやＲＡＭ容量をより削減することができる。
【００２５】
＜第２の実施形態＞
第２の実施形態を図１、図３〜図４、図８を参照して説明する。なお、第１の実施形態に係る構成と同様の構成については、説明を適宜省略する。
図１に示す１０９は、登録フレーム番号である。本実施形態では、ＵＳＢホストシステム１０１は、転送量簡易計算機能１０４における転送量の計算の際に、特定のフレームだけの転送量を計算し、保持する。この特定のフレームの番号を登録フレーム番号１０９とし、転送量簡易計算機能１０４と周期転送登録機能１０７とで登録フレーム番号１０９を共有する。
周期転送登録機能１０７は、転送量簡易計算機能１０４が計算方法切替機能１０６にて選択されている間は、周期転送を登録する際に常に登録フレーム番号１０９に周期転送の周期が重なるように周期転送を登録する。
ここで、図３に示すフレーム３０１のフレーム番号５が登録フレーム番号１０９である場合について説明する。計算方法切替機能１０６により転送量簡易計算機能１０４が選択されている場合、周期転送登録機能１０７は、必ずどの周期転送もフレーム番号５を起点とする周期で登録を行う。
また、図４に示すステップＳ４０２において、転送量簡易計算機能１０４は、登録予定の周期転送の転送データ量を取得する。本実施形態では、ここで得られる転送データ量は全てフレーム番号５（換言するならば、登録フレーム番号１０９）のフレームに登録される周期転送の転送データ量となる。
【００２６】
図８は、本実施形態に係るＵＳＢホストシステム１０１の周期転送登録機能１０７における周期転送登録処理を示している。
本周期転送登録処理は、ＵＳＢホストシステム１０１が起動し、ＵＳＢホストシステム１０１としてのサービス（機能）を提供するまでに開始される。
ステップＳ８０１において、周期転送登録機能１０７は、登録フレーム番号を選択する。周期転送登録機能１０７は、続いてステップＳ８０２の処理を行う。
ステップＳ８０２において、周期転送登録機能１０７は、ＵＳＢホスト機能１０３に係る周期転送の登録を待ち、周期転送を登録する場合、計算方法切替機能１０６によって転送量詳細計算機能１０５が選択されているか否かを判断する。周期転送登録機能１０７は、転送量詳細計算機能１０５が選択されている場合、ステップＳ８０４の処理を行い、転送量詳細計算機能１０５が選択されていない場合、ステップＳ８０３の処理を行う。
ステップＳ８０３において、周期転送登録機能１０７は、登録予定の周期転送を、登録フレーム番号１０９が起点になるように登録する。周期転送登録機能１０７は、続いてステップＳ８０２の処理を行う。
ステップＳ８０４において、周期転送登録機能１０７は、登録予定の周期転送を登録する。周期転送登録機能１０７は、続いてステップＳ８０２の処理を行う。
【００２７】
ここで、本実施形態では、転送許可基準値１０８を超えた場合に、例えば周期転送登録機能１０７が他のフレーム番号を選択し、それを登録フレーム番号１０９として再び転送量簡易計算機能１０４で処理を行う構成を採用することもできる。この場合、登録フレーム番号１０９を変更した後は、周期転送登録機能１０７は、変更前に登録したフレームに周期転送を登録しないように処理する必要がある。この処理は、ステップＳ８０２にて条件付で周期転送を登録する際に鑑みるのが適当である。
ここで、例えば、フレーム毎に１ビットのフラグをもち、周期転送登録機能１０７は、登録フレーム番号を変更する際に、周期転送が登録されているフレームにフラグを立てておく。周期転送登録機能１０７は、以降に周期転送を登録する際には本フラグを参照し、すでに利用しているフレームであった場合、ＵＳＢ規格を遵守した上で登録するフレームを変更する。例えば、周期転送登録機能１０７は、周期を短くする方向でフレームを選択していき、登録できるフレームを発見したら登録、できなければ登録できない周期転送として処理する。
以上のように実装することで各フレームに転送する周期転送のデータ量をソフトウェアで管理するＵＳＢホストシステム１０１では、複数の転送量を計算する転送データ計算機能を実現する。また、ＵＳＢホストシステム１０１では、転送量の計算方法を切り替える計算方法切替機能１０６、周期転送の登録の判断と登録処理とを行う周期転送登録機能１０７と実現する。
なお、本実施形態に係るその他の構成及び動作は、第１の実施形態と同様である。
【００２８】
＜第３の実施形態＞
本実施形態を図１及び図９を参照して説明する。なお、第１の実施形態に係る構成と同様の構成については、説明を適宜省略する。
図１に示す１１０は、簡易計算遷移判断機能である。本実施形態では、計算方法切替機能１０６により転送量簡易計算機能１０４が最初に選択されている。この状況下において、転送量が転送許可基準値１０８を超えると、転送量簡易計算機能１０４から転送量詳細計算機能１０５に切り替えられる。さらにこの状況下で、簡易計算への切り替え条件が満たされると、再び転送量簡易計算機能１０４に切り替えられる。
【００２９】
本実施形態において、計算方法切替処理は、図６のステップＳ６０４を図９に示すステップＳ９０１，Ｓ９０２に差し替えることで実現できる。
計算方法切替機能１０６は、ステップＳ６０３の処理を行うと、続いてステップＳ９０１の処理を行う。
ステップＳ９０１において、計算方法切替機能１０６は、転送データ計算機能から渡された転送量が転送許可基準値１０８を超えているか判断し、その結果を転送データ計算機能へ通知する。計算方法切替機能１０６は、続いてステップＳ９０２の処理を行う。
ステップＳ９０２において、計算方法切替機能１０６は、簡易計算への切り替え条件を満足しているか否かを簡易計算遷移判断機能１１０による判断結果にて判定する。切り替え条件を満足している場合は、計算方法切替機能１０６は、ステップＳ６０１の処理を行い、切り替え条件を満足していなければステップＳ９０１の処理を行う。
【００３０】
ここで、簡易計算遷移判断機能１１０は、転送量詳細計算機能１０５に切り替えられてから経過した時間にて遷移の判断を下すことができる。時間の設定については、接続され得るＵＳＢデバイスの機能や利用方法、利用形態等に依存する。例えば、よく利用する機能にかかる時間や、ユーザの使用履歴から時間を決定することができる。どのような時間を設定しても本実施形態を実現できるが、時間が短いとＣＰＵパワーの消費が大きくなり、逆に長いと得られる効果が少なくなる。
また、簡易計算遷移判断機能１１０は、転送量詳細計算機能１０５に切り替えられてから周期転送の登録を判断した回数にて遷移の判断を下すことができる。回数の設定についても時間の設定同様、接続され得るＵＳＢデバイスの機能や利用方法、利用形態等に依存する。例えば、よく利用する機能が終了するまでに登録される回数や、ユーザの使用履歴から回数を決定することができる。回数が少ないとＣＰＵパワーの消費が大きくなり、逆に多いと得られる効果が少なくなる。
さらに、簡易計算遷移判断機能１１０は、転送量詳細計算機能１０５に切り替えられてからＵＳＢデバイスが切断される回数、又は周期転送の登録を削除する回数にて遷移の判断を下すことができる。上記同様、回数の設定についても、接続され得るＵＳＢデバイスの機能や利用方法、利用形態等に依存する。例えば、よく利用する機能が終了するまでに削除される回数や、ユーザの使用履歴から回数を決定することができる。回数が少ないとＣＰＵパワーの消費が大きくなり、逆に多いと得られる効果が少なくなる。
以上のように実装することで、周期転送の登録の判断と登録処理とを行う周期転送登録機能１０７を有するＵＳＢホストシステム１０１を構築することができる。
【００３１】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００３２】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００３３】
１０１  ＵＳＢホストシステム、１０２  ＵＳＢケーブル、１０３  ＵＳＢホスト機能、１０４  転送量簡易計算機能、１０５  転送量詳細計算機能、１０６  計算方法切替機能、１０７  周期転送登録機能、１０８  転送許可基準値
【図１】
0005574671.tif 000002
【図２】
0005574671.tif 000003
【図３】
0005574671.tif 000004
【図４】
0005574671.tif 000005
【図５】
0005574671.tif 000006
【図６】
0005574671.tif 000007
【図７】
0005574671.tif 000008
【図８】
0005574671.tif 000009
【図９】
0005574671.tif 000010