(57)【要約】【課題】データ伝送効率を向上させたワイヤレスＵＳＢホスト装置を提供する。【解決手段】ワイヤレスＵＳＢデバイスとの間において、ワイヤレスＵＳＢによる伝送データの通信を行なうためのワイヤレスＵＳＢホスト装置において、伝送データの通信を行なう際の単位時間当たりの伝送データ量を算出し、伝送データ量に基づいて伝送データの通信を行なう際のデータレートを動的に調整し、伝送データの通信を行なうことを特徴とするワイヤレスＵＳＢホスト装置を提供することにより上記課題を解決する。【選択図】  図１
2010088000.tif 000002
【特許請求の範囲】
【請求項１】
ワイヤレスＵＳＢデバイスとの間において、ワイヤレスＵＳＢによる伝送データの通信を行なうためのワイヤレスＵＳＢホスト装置において、
前記伝送データの通信を行なう際の単位時間当たりの伝送データ量を算出し、
前記伝送データ量に基づいて前記伝送データの通信を行なう際のデータレートを動的に調整し、
前記データレートに基づき前記伝送データの通信を行なうことを特徴とするワイヤレスＵＳＢホスト装置。
【請求項２】
前記データレートの動的な調整は、前記ワイヤレスＵＳＢホスト装置における送信と受信の双方向について行なわれるものであることを特徴とする請求項１に記載のワイヤレスＵＳＢホスト装置。
【請求項３】
前記伝送データ量は、ＤＭＡ転送のために設定されたデータサイズの値に基づき算出するものであることを特徴とする請求項１または２に記載のワイヤレスＵＳＢホスト装置。
【請求項４】
前記データサイズの値は対応させたテーブルの配列として記憶されているものであって、
前記テーブルはチェーンとして用いられるものであることを特徴とする請求項３に記載のワイヤレスＵＳＢホスト装置。
【請求項５】
前記データレートの調整は、前記単位時間当たりの伝送データ量を所定の基準値と比較し、
前記比較の結果に基づき前記データレートを変更し調整するものであることを特徴とする請求項１から４のいずれかに記載のワイヤレスＵＳＢホスト装置。
【請求項６】
前記基準値との比較は、現在のレートよりも下げるか否かを判断するものであることを特徴とする請求項５に記載のワイヤレスＵＳＢホスト装置。
【請求項７】
前記基準値との比較は、現在のレートよりも上げるか否かを判断するものであることを特徴とする請求項５または６に記載のワイヤレスＵＳＢホスト装置。
【請求項８】
前記データレートの調整は、所定の時間ごとに定期的に行なわれるものであることを特徴とする請求項１から７のいずれかに記載のワイヤレスＵＳＢホスト装置。
【請求項９】
前記データレートは、ベンダーの独自の設定を格納するレジスタ群の領域内において設定されるものであることを特徴とする請求項１から８に記載のいずれかに記載のワイヤレスＵＳＢホスト装置。
【請求項１０】
前記伝送データのファイルの最後となる伝送データには、前記ファイルの最後の伝送データである旨を示すデータパターンが含まれており、
前記データパターンを検出した場合には、前記データレートの調整を行なわないことを特徴とする請求項１から９のいずれかに記載のワイヤレスＵＳＢホスト装置。
【請求項１１】
前記データレートの動的な調整は、アイソクロナス転送モードにおいて行なうことを特徴とする請求項１から１０のいずれかに記載のワイヤレスＵＳＢホスト装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ワイヤレスＵＳＢホスト装置に関する。
【背景技術】
【０００２】
ワイヤレスＵＳＢは、短距離間の有線通信規格として広く普及しているＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）を拡張して、有線通信の安全性と速度を確保しながら、無線通信の使いやすさを実現させた技術規格である。
【０００３】
ワイヤレスＵＳＢにおいては、無線技術としてＵＷＢ（Ｕｌｔｒａ  Ｗｉｄｅ  Ｂａｎｄ）技術が採用されている。ＵＷＢは、３．１ＧＨｚから１０．６ＧＨｚまでの７．５ＧＨｚの周波数帯域を使用する無線方式である。このワイヤレスＵＳＢは、無線ＬＡＮと比較して、高速、かつ、安全であるという特徴を有しており、次世代の無線技術として注目されているものであり、プリンタやスキャナ等やビデオ、オーディオ等の情報の通信に用いることができる。
【０００４】
ワイヤレスＵＳＢは中心となるワイヤレスＵＳＢホストと、このワイヤレスＵＳＢにより制御される複数のワイヤレスＵＳＢデバイスによって構成されている。
【０００５】
例えば、ワイヤレスＵＳＢホストからワイヤレスＵＳＢデバイスへのデータ伝送においては、ワイヤレスＵＳＢホストが、事前に、どのワイヤレスＵＳＢデバイスあてに、いつデータを送るかを通知する。それに対して、ワイヤレスＵＳＢデバイスは、その通知された時間に送信されるデータを受信する。
【０００６】
一方、ワイヤレスＵＳＢデバイスからワイヤレスＵＳＢホストへのデータ伝送においては、ワイヤレスＵＳＢホストが、事前に、どのワイヤレスＵＳＢデバイスがいつデータを送るべきかを通知する。それに対し、ワイヤレスＵＳＢデバイスは、その通知された時間にデータを転送する。
【０００７】
このように、ワイヤレスＵＳＢホストとワイヤレスＵＳＢデバイスの間における通信は、ワイヤレスＵＳＢホストがワイヤレスＵＳＢデバイスを制御する方式で行なわれる。
【０００８】
また、ワイヤレスＵＳＢホストとワイヤレスＵＳＢデバイスとの間におけるデータ転送効率、即ち、単位時間当たりの通信データ量となるスループット値を高めるためには、基本的には、ワイヤレスＵＳＢデバイスがサポートするデータレートの中で、最も高いレートであることが望ましい。
【０００９】
しかしながら、ワイヤレスＵＳＢホストとワイヤレスＵＳＢデバイス間の距離や、周囲の電波状況等により、ワイヤレスＵＳＢデバイスがサポートするデータレートの中で最も高いデータレートにおける伝送が、必ずしも、最もスループットを高くするものとならない場合がある。よってスループットを高めるため、データレートを動的に変更する方法が考えられている。例えば、無線ＬＡＮにおける技術の中には、データレートと必要最小受信レベルしきい値の対応が規定されており、あるデータレートにおける情報の伝送中における受信レベルが、そのレートに対する最小受信レベルしきい値を下回った場合、自動的にレートを下げるという方法が用いられている。
【００１０】
また、特許文献１では、無線ＬＡＮにおいて、データ受信側の機器から送信側の機器に対して、正しくデータを受信したことを通知するためのＡＣＫパケットが送られない場合には、データ送信側が、送信データレートを下げる方法が記載されている。
【００１１】
また、特許文献２では、受信データの誤りの有無を調べることにより、伝送失敗率を求め、得られた失敗率に基づき伝送レートを変化させる方法が記載されている。
【特許文献１】特開２００５−１０２２２８号公報
【特許文献２】特開２００３−５１７８１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
ところで、ワイヤレスＵＳＢは、３．１ＧＨｚから１０．６ＧＨｚまでの広い周波数帯域をベースとしており、無線ＬＡＮにおける技術のような、データレートと必要最小受信レベルしきい値の対応関係は、周波数帯によって変化するため、一様にはならないという問題点を有している。
【００１３】
また、特許文献１に記載されている方法では、データ受信側の機器から送信側の機器に対して、正しくデータを受信したことを通知するためのＡＣＫパケットを利用している。このような方法をワイヤレスＵＳＢに適用すると、ワイヤレスＵＳＢホスト機器をデータ送信側として用いた場合には、このような方法を用いてデータレートの調整を行なうことが可能であるが、データ受信側として用いた場合には、データレートの調整を行なうことができないといった問題点を有していた。
【００１４】
また、特許文献２に記載されている方法では、受信データの誤りの有無を調べることにより、伝送失敗率を求める。よって、ワイヤレスＵＳＢホスト機器をデータ送信側として用いる場合には、データレートの調整を行なうことができない。さらに、受信データの誤りの有無を調べるため、処理が重くなる傾向にある。
【００１５】
本発明は、このような問題に対しなされたものであり、ワイヤレスＵＳＢにおけるデータ通信において、データ伝送効率を向上させたワイヤレスＵＳＢホスト装置を提供することができる。また、ワイヤレスＵＳＢホストからワイヤレスＵＳＢデバイスへ、また、ワイヤレスＵＳＢデバイスからワイヤレスＵＳＢホストへの双方におけるデータ伝送において、データ伝送効率を向上させたワイヤレスＵＳＢホスト装置を提供するものである。
【課題を解決するための手段】
【００１６】
本発明は、ワイヤレスＵＳＢデバイスとの間において、ワイヤレスＵＳＢによる伝送データの通信を行なうためのワイヤレスＵＳＢホスト装置において、前記伝送データの通信を行なう際の単位時間当たりの伝送データ量を算出し、前記伝送データ量に基づいて前記伝送データの通信を行なう際のデータレートを動的に調整し、前記データレートに基づき前記伝送データの通信を行なうことを特徴とする。
【００１７】
また、本発明は、前記データレートの動的な調整は、前記ワイヤレスＵＳＢホスト装置における送信と受信の双方向について行なわれるものであることを特徴とする。
【００１８】
また、本発明は、前記伝送データ量は、ＤＭＡ転送のために設定されたデータサイズの値に基づき算出するものであることを特徴とする。
【００１９】
また、本発明は、前記データサイズの値は対応させたテーブルの配列として記憶されているものであって、前記テーブルはチェーンとして用いられるものであることを特徴とする。
【００２０】
また、本発明は、前記データレートの調整は、前記単位時間当たりの伝送データ量を所定の基準値と比較し、前記比較の結果に基づき前記データレートを変更し調整するものであることを特徴とする。
【００２１】
また、本発明は、前記基準値との比較は、現在のレートよりも下げるか否かを判断するものであることを特徴とする。
【００２２】
また、本発明は、前記基準値との比較は、現在のレートよりも上げるか否かを判断するものであることを特徴とする。
【００２３】
また、本発明は、前記データレートの調整は、所定の時間ごとに定期的に行なわれるものであることを特徴とする。
【００２４】
また、本発明は、前記データレートは、ベンダーの独自の設定を格納するレジスタ群の領域内において設定されるものであることを特徴とする。
【００２５】
また、本発明は、前記伝送データのファイルの最後となる伝送データには、前記ファイルの最後の伝送データである旨を示すデータパターンが含まれており、前記データパターンを検出した場合には、前記データレートの調整を行なわないことを特徴とする。
【００２６】
また、本発明は、前記データレートの動的な調整は、アイソクロナス転送モードにおいて行なうことを特徴とする。
【発明の効果】
【００２７】
本発明によれば、ワイヤレスＵＳＢにおけるデータ通信において、データ伝送効率を向上させたワイヤレスＵＳＢホスト装置を提供することができる。また、ワイヤレスＵＳＢホストからワイヤレスＵＳＢデバイスへ、また、ワイヤレスＵＳＢデバイスからワイヤレスＵＳＢホストへの双方におけるデータ伝送において、データ伝送効率を向上させたワイヤレスＵＳＢホスト装置を提供することができる。
【発明を実施するための最良の形態】
【００２８】
次に、本発明を実施するための最良の形態について、以下に説明する。
【００２９】
〔第１の実施の形態〕
第１の実施の形態について説明する。本実施の形態は、ワイヤレスＵＳＢホストからワイヤレスＵＳＢデバイス（不図示）へのデータ伝送、即ち、ワイヤレスＵＳＢホストにおける送信方向においてデータレートを変更することが可能なワイヤレスＵＳＢホスト装置である。
【００３０】
図１に、本実施の形態におけるワイヤレスＵＳＢホスト装置の構成図を示す。本実施の形態におけるワイヤレスＵＳＢホスト装置は、ホストコントローラ１とターゲットデバイス２により構成されており、このホストコントローラ１とターゲットデバイス２は、ＰＣＩ−Ｅｘｐｒｅｓｓバス３を介して接続されている。
【００３１】
ホストコントローラ１は、メインＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０とメモリ１１を有しており、さらに、メモリ１１は、オペレーティングシステム１２及びデバイスドライバ１３を有している。
【００３２】
メインＣＰＵ１０は、メモリ１１内におけるオペレーティングシステム１２を実行させ、オペレーティングシステム１２上においてデバイスドライバ１３を実行させる。
【００３３】
デバイスドライバ１３は、ＰＣＩ−Ｅｘｐｒｅｓｓバス３を介してターゲットデバイス２とのデータの送受信を行なうとともに、後述するＭＡＣ部２２のレジスタに対して値の読み書きを行なうことによりターゲットデバイス２を制御する。
【００３４】
また、ターゲットデバイス２は、サブＣＰＵ２０と、メモリ２１と、ＭＡＣ部２２と、ＰＨＹ（Ｐｈｙｓｉｃａｌ  Ｌａｙｅｒ）部２３と、アンテナ２４とを備えている。
【００３５】
サブＣＰＵ２０は、サブＣＰＵ内ＤＭＡＣ３０を有している。
【００３６】
メモリ２１は、リアルタイムオペレーティングシステム２５と、ファームウェア２６とを有している。
【００３７】
ＭＡＣ部２２は、ＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）２７、送信ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）２８、受信ＦＩＦＯ２９を有しており、データフレームの生成やデータフレームのファイリング等の処理を行なう。
【００３８】
ＰＨＹ部２３は、ＲＦ部４０、ＰＨＹ／ＲＦレジスタ４１、ベースバンド部４２を有しており、周波数変換等の信号処理を行なう。ＲＦ部４０はアンテナ２４と接続されており、ベースバンド部４２は、送信部５０と受信部５１とを有している。
【００３９】
サブＣＰＵ２０は、メモリ２１を用いて、リアルタイムオペレーティングシステム２５を実行し、リアルタイムオペレーティングシステム２５上で、ＭＡＣ部２２の各部を制御するためのファームウェア２６を実行させる。
【００４０】
ホストコントローラ１におけるメモリ１１と、ターゲットデバイス２におけるメモリ２１との間のデータ転送は、ＤＭＡＣ２７によるＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送によって行なわれる。また、メモリ２１とＭＡＣ部２２内の送信ＦＩＦＯ２８と受信ＦＩＦＯ２９との間においてもデータ転送が行なわれる。このデータ転送はサブＣＰＵ内ＤＭＡＣ３０によるＤＭＡ転送によって行なわれる。
【００４１】
データを送信する場合には、メモリ１１からメモリ２１にデータがＤＭＡ転送され、その後、メモリ２１からＭＡＣ部２２内の送信ＦＩＦＯ２８にＤＭＡ転送される。一方、データを受信する場合には、ＭＡＣ部２２内の受信ＦＩＦＯ２９からメモリ２１にデータがＤＭＡ転送され、その後、メモリ２１からメモリ１１にＤＭＡ転送される。
【００４２】
ファームウェア２６を実行するサブＣＰＵ２０は、ＭＡＣ部２２における各種レジスタの設定や、ホストコントローラ１との間のデータの受送信等を行なう。また、ファームウェア２６を実行するサブＣＰＵ２０は、ＰＨＹ部２３におけるＰＨＹ／ＲＦレジスタ４１の値の読み書きをＭＡＣ−ＰＨＹ（ＷｉＭｅｄｉａ  ＭＡＣ−ＰＨＹ）バス３１を介して行なう。
【００４３】
ＭＡＣ部２２及びＰＨＹ部２３は、それぞれＷｉＭｅｄｉａ  ＭＡＣ及びＷｉＭｅｄｉａ  ＰＨＹの各仕様に基づいた処理を実行する。また、ＭＡＣ部２２及びＰＨＹ部２３との間の通信は、ＷｉＭｅｄｉａ  ＭＡＣ−ＰＨＹインターフェースの仕様により規定されており、異なるベンダーのＭＡＣ部２２とＰＨＹ部２３とを接続して使用することも可能である。
【００４４】
次に、図２に基づきＷｉＭｅｄｉａ  ＭＡＣ−ＰＨＹインターフェースの仕様について説明する。図に示すように、ＰＨＹ／ＲＦレジスタ４１に対して、ベースアドレス（基準アドレス）に対するオフセットが、０ｘ００番地から０ｘ１Ｆ番地までの範囲は、送受信するチャネルなどの動的なパラメータ設定を格納するための領域（ダイナミックレジスタ群）として規定されている。また、ベースアドレスに対するオフセットが０ｘ２０番地から０ｘ７Ｆ番地までの範囲は、ターゲットデバイス２がサポートする通信速度及び信号送出レベルの設定値の値等の静的な設定を格納するための領域（スタティックレジスタ群）として規定されている。また、ベースアドレスに対するオフセットが０ｘ８０番地から０ｘＦＦ番地までの範囲は、ベンダーによる独自の設定を格納するための領域（ベンダー領域）として規定されている。
【００４５】
図３に示すように、本実施の形態では、このベンダー領域内のレジスタ群の一つとして、例えば、オフセット０ｘＡ０番地に送信データレート設定レジスタを割り当て、０ｘＡ１番地に受信データレート設定レジスタを割り当てる。ワイヤレスＵＳＢが取り得るデータレートは、５３．３、８０、１０６．７、１６０、２００、３２０、４００、４８０Ｍｂｐｓの８通りであるため、各レジスタの下位３ビットを用いて、５３．３Ｍｂｐｓに０と、８０Ｍｂｐｓに１と、１０６．７Ｍｂｐｓに２と、１６０Ｍｂｐｓに３と、２００Ｍｂｐｓに４と、３２０Ｍｂｐｓに５と、４００Ｍｂｐｓに６と、４８０Ｍｂｐｓに７と割り当てる。よって、送信データレート設定レジスタにおいては、ＴＸ＿ＲＡＴＥが、受信データレート設定レジスタにおいては、ＲＸ＿ＲＡＴＥが、各々設けられている。尚、図３においては、割り当てられる数字は２進法で記載されている。
【００４６】
ワイヤレスＵＳＢホストとワイヤレスＵＳＢデバイスがデータ通信できるようにするためには、ワイヤレスＵＳＢデバイスが、ワイヤレスＵＳＢホストの指示に基づいて、コンフィギュレーションされることが前提となる。尚、ここで、コンフィギュレーションとは、ワイヤレスＵＳＢホストとワイヤレスＵＳＢデバイスとの間での通信が可能となるように、パケットサイズ、エンドポイント、インターフェース数、最大消費電力等のワイヤレスＵＳＢデバイスの特性を表すパラメータを設定して、ワイヤレスＵＳＢデバイスを構成することを意味するものである。
【００４７】
図４に基づき、ワイヤレスＵＳＢデバイスがコンフィギュレーションされるまでのワイヤレスＵＳＢホストとワイヤレスＵＳＢデバイスにおける情報の受け渡し、及び、ワイヤレスＵＳＢデバイスの状態遷移について説明する。
【００４８】
まず、非接続状態にあるワイヤレスＵＳＢデバイスは、ワイヤレスＵＳＢホストが送出するＭＭＣパケットをモニタし、その中のＣＨＩＤ（Ｃｏｎｎｅｃｔｉｏｎ  Ｈｏｓｔ  Ｉｄｅｎｔｉｆｉｅｒ）を調べ、自らが接続可能なワイヤレスＵＳＢホストであるか否かを調べる。接続可能なワイヤレスＵＳＢホストである場合には、ＭＭＣパケット中に含まれるワイヤレスＵＳＢデバイスからワイヤレスＵＳＢホストに通知メッセージを送るための時間について記述したＷＤＮＳＣＴＡ＿ＩＥを検出した後、その時間に、接続要求を表すＤＮ＿ＣＯＮＮＥＣＴメッセージをワイヤレスＵＳＢホストあてに送出する。ＤＮ＿ＣＯＮＮＥＣＴメッセージを受け取ったワイヤレスＵＳＢホストは、接続許可を表すＷＣＯＮＮＥＣＴＡＣＫ＿ＩＥをＭＭＣパケットに含めて、ワイヤレスＵＳＢデバイスあてに送出する。これにより、ワイヤレスＵＳＢホストとワイヤレスＵＳＢデバイスは、接続状態における非認証状態に遷移する。
【００４９】
次に、４ウェイハンドシェークという手順により、ワイヤレスＵＳＢホストとワイヤレスＵＳＢデバイスの間で、暗号鍵を作成するための情報の受け渡しを行ない接続状態における認証状態に遷移する。
【００５０】
次に、ワイヤレスＵＳＢデバイスは、ワイヤレスＵＳＢホストから送出されるワイヤレスＵＳＢデバイスを識別するためのＤｅｖｉｃｅ  Ａｄｄｒｅｓｓが０（ゼロ）に設定されたＳＥＴ＿ＡＤＤＲＥＳＳデバイスリクエストを受け取ることにより、デフォルト状態に遷移する。
【００５１】
その後、ワイヤレスＵＳＢデバイスは、ワイヤレスＵＳＢホストから送出される、Ｄｅｖｉｃｅ  Ａｄｄｒｅｓｓが０（ゼロ）以外の値に設定されたＳＥＴ＿ＡＤＤＲＥＳＳデバイスリクエストを受け取ることにより、アドレス割り当て状態に遷移する。
【００５２】
次に、ワイヤレスＵＳＢホストは、ワイヤレスＵＳＢデバイスが所有するコンフィギュレーションディスクリプタを調べるために、どのディスクリプタが欲しいかを示すパラメータに、コンフィギュレーションディスクリプタであることを示す値を設定して、ＧＥＴ＿ＤＥＳＣＲＩＰＴＯＲデバイスリクエストを発行する。これに対して、ワイヤレスＵＳＢデバイスは、自らが所有するコンフィギュレーションディスクリプタ全てをワイヤレスＵＳＢホストに通知する。
【００５３】
尚、各コンフィギュレーションディスクリプタテーブルには、それぞれを識別するための値であるｂＣｏｎｆｉｇｕｒａｔｉｏｎ  Ｖａｌｕｅが含まれている。ワイヤレスＵＳＢホストは、受け取ったコンフィギュレーションディスクリプタの内容をもとに、ワイヤレスＵＳＢデバイスをどのようにコンフィギュレーションしたいかを決定して、そのコンフィギュレーションディスクリプタに対応するｂＣｏｎｆｉｇｕｒａｔｉｏｎ  Ｖａｌｕｅをパラメータとして、ＳＥＴ＿ＣＯＮＦＩＧＵＲＡＴＩＯＮデバイスリクエストを発行する。ワイヤレスＵＳＢデバイスは、その内容に応じて、自らをコンフィギュレーションする。これにより、コンフィギュレーション状態に遷移する。
【００５４】
以上が、ワイヤレスＵＳＢにおける非接続状態からコンフィギュレーション状態に遷移するまでの流れの概要である。
【００５５】
コンフィギュレーション状態に遷移した後、ワイヤレスＵＳＢホストからワイヤレスＵＳＢデバイスへとデータを転送する場合には、ワイヤレスＵＳＢホストが送信するデータフレームのＰＨＹヘッダ中のＤａｔａ  ｒａｔｅフィールドに、送信データレートを設定する。本実施の形態では、ＤＭＡ転送によって行なわれる単位時間当たりのデータ送信量、即ち、送信スループット値を定期的に計算し、計算された送信スループット値をもとに必要に応じて、Ｄａｔａ  ｒａｔｅフィールドに設定する送信データレートを更新するという手法を用いる。
【００５６】
次に、図５に基づき本実施の形態におけるワイヤレスＵＳＢホスト装置の送信データレートの調整方法について説明する。
【００５７】
本実施の形態におけるワイヤレスＵＳＢホスト装置のＤＭＡ転送は、１つのパケットごとに、ＤＭＡ転送用バッファ及びＤＭＡディスクリプタテーブルを割り当てる。ＤＭＡディスクリプタテーブルには、ＤＭＡ転送用バッファの起点となるアドレス（以下「ＳＴＡＲＴ＿ＡＤＤ」と記す）、データサイズ（以下「ＳＩＺＥ」と記す）、次のＤＭＡデータスクリプタテーブルのアドレス（以下「ＮＥＸＴ＿ＡＤＤ」と記す）、データ送信後のステータス（以下「ＳＴＡＴＵＳ」と記す）などの情報を記憶させる。
【００５８】
そして、１からｎ番目まで（ｎは２以上の整数）のＤＭＡディスクリプタテーブルのチェーンを形成する。即ち、ｘ番目（１≦ｘ＜ｎ）のＤＭＡディスクリプタテーブルのＮＥＸＴ＿ＡＤＤには、ｘ+１番目のＤＭＡディスクリプタテーブルの先頭アドレスを設定する。そして、ｎ番目のＤＭＡディスクリプタテーブルのＮＥＸＴ＿ＡＤＤには、１番目のＤＭＡディスクリプタテーブルの先頭アドレスを設定する。ｘ番目のＤＭＡディスクリプタテーブルにおけるＳＴＡＲＴ＿ＡＤＤとＮＥＸＴ＿ＡＤＤの値は、一度、値を設定すれば、その後、データ転送中に書き換える必要はなく不変となるものである。
【００５９】
ＤＭＡディスクリプタテーブルは、ＤＭＡ送信用とＤＭＡ受信用とで、それぞれ別個なものを用いる。
【００６０】
ＤＭＡ送信用ディスクリプタテーブルにおけるＳＴＡＲＴ＿ＡＤＤ、ＳＩＺＥ、ＮＥＸＴ＿ＡＤＤ等の値の設定は、デバイスドライバ１３が行なう。デバイスドライバ１３は、オペレーティングシステム１２から渡されるデータフレームを、ＳＴＡＲＴ＿ＡＤＤに設定されるＤＭＡ転送用バッファに書き込む。そして、そのフレームサイズをＳＩＺＥに設定する。
【００６１】
本実施の形態では、このＳＩＺＥへの設定を行なう際に、ｘ番目のＤＭＡ送信用ディスクリプタテーブルに、ＳＩＺＥとしてどの値を書き込んだか、という情報を対応づけて配列の形式で記憶させておく。
【００６２】
前述のＤＭＡ送信用ディスクリプタテーブルのＳＴＡＴＵＳは、２つのフラグ情報から構成される。１つは、デバイスドライバ１３が、そのＤＭＡ送信用ディスクリプタテーブルに、次のデータを設定することが可能な状態にあるか否か、即ち、デバイスドライバ１３が設定したデータについてＤＭＡ送信済みか否かを示すＡＶＡＩＬＡＢＬＥフラッグである。デバイスドライバ１３がデータフレームのＳＩＺＥを設定した際に、このＡＶＡＩＬＡＢＬＥフラグをＯＦＦに設定する。そして、データをＤＭＡ転送すると、ＤＭＡＣ２７がＡＶＡＩＬＡＢＬＥフラグをＯＮに設定する。
【００６３】
もう一つは、ＤＭＡ転送が正しくなされたか否かを示すＣＯＲＲＥＣＴフラグである。ＤＭＡ転送を行なった後、ＤＭＡ転送が正しくなされていれば、ＤＭＡＣ２７がＣＯＲＲＥＣＴフラグをＯＮにする。一方、ＤＭＡ転送において何からのエラーが発生した場合には、ＤＭＡＣ２７がＣＯＲＲＥＣＴフラグをＯＦＦにする。ＤＭＡＣ２７は、送信データのＤＭＡ転送を終了すると、ＤＭＡ送信完了割り込みを発生させる。デバイスドライバ１３は、このＤＭＡ送信完了割り込みが発生するごとに、ＣＯＲＲＥＣＴフラグの値がＯＮであるかＯＦＦであるかを調べ、ＯＮであれば、そのときのＤＭＡ送信用ディスクリプタテーブルｘ番目に対するＳＩＺＥの値を配列から読み込んでデータサイズ累積カウンタに足し合わせた後、どのＤＭＡ送信用ディスクリプタテーブルであるかを示すカウンタを１つインクリメントする。ＣＯＲＲＥＣＴフラグの値がＯＦＦにするである場合には、データサイズ累積カウンタへの足し合わせは行なわずに、どのＤＭＡ送信用ディスクリプタテーブルであるかを示すカウンタを１つインクリメントする。
【００６４】
１番目のデータフレーム送信開始後に、ある所定の時間ごとにタイマー割り込みを発生させるタイマーを起動する。タイマー割り込みが発生すると、デバイスドライバ１３中のデータレート調整処理関数がコールされる。
【００６５】
次に、図６に基づき送信時におけるデータレート調整処理関数の流れを説明する。
【００６６】
最初に、ステップ２（Ｓ２）において、送信したファイルにファイル末尾であることを示すＥＯＦ（Ｅｎｄ  ｏｆ  Ｆｌａｇ）が含まれているか否かのチェックを行なう。ＥＯＦが含まれている場合には、その後の受信データレートの調整を必要としないため、そこでデータの受信が終了する。よって、ＥＯＦが含まれていると判断された場合には終了し、ＥＯＦが含まれていないと判断された場合には、ステップ４に移行する。
【００６７】
次に、ステップ４（Ｓ４）では、送信スループット値の計算を行なう。具体的には、データサイズ累積カウンタの値をタイマー間隔で割ることにより、送信スループット値を求める。
【００６８】
次に、ステップ６（Ｓ６）では、データサイズ累積カウンタをクリアにする。これは、次の送信スループット値を計算するために行なわれるものである。
【００６９】
次に、求めた送信スループット値をもとに、送信データレートの調整が必要であるか否かが判断される。
【００７０】
この判断を行なうために、図７に示すようなデータレートごとに、ＵＰしきい値とＤＯＷＮしきい値とを定めたテーブルを事前に作成しておく。ＵＰしきい値は、そのデータレートで十分に高い送信スループットが得られているため、その一つ上のデータレートに上げることが可能であることを示すしきい値である。一方、ＤＯＷＮしきい値は、その送信データレートでは十分な送信スループットが得られていないため、その一つ下の送信データレートに下げるべきであることを示すしきい値である。ＤＯＷＮしきい値を下回る場合の具体的な過程としては、例えば、送信側にあたるワイヤレスＵＳＢホストと受信側に当たるワイヤレスＵＳＢデバイスの間における電波状況がよくないと、ワイヤレスＵＳＢデバイスからの送信される正しくデータを受信したことを通知するためのＡＣＫパケットが届かない場合があり、このような場合には、再送が必要となるため送信ＦＩＦＯ２８が空かなくなる。この状態が続くとＤＭＡ転送が滞り、送信スループット値が低くなり、ＤＯＷＮしきい値を下回ることになる。
【００７１】
よって、ステップ８（Ｓ８）では、現在の送信データレートは、取り得る値における最低値であるか否かが判断される。現在の送信データレートが取り得る値における最低値であると判断された場合には終了し、現在の送信データレートが取り得る値における最低値でないと判断された場合には、ステップ１０に移行する。
【００７２】
次に、ステップ１０（Ｓ１０）では、送信スループット値が、現在の送信データレートにおけるＤＯＷＮしきい値を下回っているか否かが判断される。送信スループット値が現在の送信データレートにおけるＤＯＷＮしきい値を下回っていると判断された場合にはステップ１２に移行し、送信スループット値が現在の送信データレートにおけるＤＯＷＮしきい値を下回っていないと判断された場合にはステップ１６に移行する。
【００７３】
次に、ステップ１２（Ｓ１２）では、現在の送信データレートよりも１つ低いデータレートを送信データレート設定レジスタに設定する。
【００７４】
次に、ステップ１４（Ｓ１４）では、ＰＨＹ部２３において新たに設定された送信データレートを送信フレームのＰＨＹヘッダ内のＤａｔａ  ｒａｔｅフィールドに設定し終了する。
【００７５】
一方、ステップ１６（Ｓ１６）では、現在の送信データレートは、取り得る値における最高値であるか否かが判断される。現在の送信データレートが取り得る値における最高値であると判断された場合には終了し、現在の送信データレートが取り得る値における最高値でないと判断された場合には、ステップ１８に移行する。
【００７６】
次に、ステップ１８（Ｓ１８）では、送信スループット値が、現在の送信データレートにおけるＵＰしきい値を上回っているか否かが判断される。送信スループット値が現在の送信データレートにおけるＵＰしきい値を上回っていると判断された場合にはステップ２０に移行し、送信スループット値が現在の送信データレートにおけるＵＰしきい値を上回っていないと判断された場合には終了する。
【００７７】
次に、ステップ２０（Ｓ２０）では、現在の送信データレートよりも１つ高いデータレートを送信データレート設定レジスタに設定する。
【００７８】
次に、ステップ２２（Ｓ２２）では、ＰＨＹ部２３において新たに設定された送信データレートを送信フレームのＰＨＹヘッダ内のＤａｔａ  ｒａｔｅフィールドに設定し終了する。
【００７９】
このようにして、本実施の形態におけるワイヤレスＵＳＢホスト装置は、ＤＭＡ送信する際に用いるＤＭＡ送信用ディスクリプタテーブルと送信データのサイズとを対応づけて保存しておき、ＤＭＡ送信完了割り込みが発生する度に、送信データのサイズを蓄積し、タイマー割り込み発生ごとに送信スループットを計算し、その値が、その送信データレートにおけるＤＯＷＮしきい値を下回っているか否か、また、ＵＰしきい値を上回っているか否かを調べ、その結果に基づき送信データレートを上げ下げして調節するため、効率的なデータ送信が可能となる。
【００８０】
なお、以上のデータレートを動的に調整するための処理では、送信スループット値に基づき送信データレートの変更の必要性の有無を判断している。そのため、データが連続的に送信されることが前提となる。そこで、これらの調整はワイヤレスＵＳＢの仕様に定められた連続的で一定の転送速度が要求される用途で用いられるアイソクロナス転送モードの際にのみ行なわれる。
【００８１】
〔第２の実施の形態〕
第２の実施の形態は、ワイヤレスＵＳＢデバイスからワイヤレスホストへのデータ伝送、即ち、ワイヤレスＵＳＢホストにおける送信方向においてデータレートを変更することが可能なワイヤレスＵＳＢホスト装置である。
【００８２】
本実施の形態におけるワイヤレスＵＳＢホスト装置の構成及び、非接続状態からコンフィギュレーション状態に遷移するまでの流れは、第１の実施の形態と同様である。
【００８３】
コンフィギュレーション状態に遷移した後、ワイヤレスＵＳＢデバイスからワイヤレスＵＳＢホストへとデータを送信する場合には、ワイヤレスＵＳＢホストが制御パケットとなるＭＭＣパケット中の情報要素ＷＤＴＣＴＡ＿ＩＥ中のｂｍＴＸＡｔｔｒｉｂｕｔｅｓフィールドに、データレートを設定する。
【００８４】
本実施の形態では、ＤＭＡ転送によって行なわれる単位時間当たりのデータ受信量、即ち、受信スループット値を定期的に計算し、計算された受信スループット値に基づき、必要に応じてｂｍＴＸＡｔｔｒｉｂｕｔｅｓに設定するデータレートを更新するものである。
【００８５】
次に、本実施の形態における受信データレートの調整方法について説明する。
【００８６】
本実施の形態におけるワイヤレスＵＳＢホスト装置のデータ受信時においては、ＤＭＡ転送において、１つのパケットごとにＤＭＡ転送用バッファ及びＤＭＡ受信用ディスクリプタテーブルを割り当てる。
【００８７】
ＤＭＡ受信用ディスクリプタテーブルのＳＴＡＴＵＳは、ＡＶＡＩＬＡＢＬＥフラグ及びＣＯＲＲＥＣＴフラグの２つのフラグ情報により構成される。受信時においては、ＡＶＡＩＬＡＢＬＥフラグは、そのディスクリプタテーブルを次のＤＭＡ受信に使用することが可能な状態であるか否か、即ち、ＤＭＡ受信したデータをデバイスドライバ１３が読取り済みか否かを示すものである。ＣＯＲＲＥＣＴフラグは、その受信データのＤＭＡ転送が正しくなされたか否かを示す。ＤＭＡＣ２７は、受信データのＤＭＡ転送を終了すると、ＡＶＡＩＬＡＢＬＥフラグをＯＦＦに設定し、ＤＭＡ受信完了割り込みを発生させる。ＤＭＡ受信完了割り込みが発生すると、デバイスドライバ１３は、ＣＯＲＲＥＣＴフラグの値がＯＮであるかＯＦＦであるかを調べ、ＯＮであれば、ＡＶＡＩＬＡＢＬＥフラグをＯＮに設定した後、その時の受信用ディスクリプタテーブルｘ番目のＳＩＺＥに設定された分だけ、ＤＭＡ転送用バッファからデータを読み取り、オペレーティングシステム１２に転送する。そして、ＳＩＺＥの値をデータサイズ累積カウンタに足し合わせた後、どのディスクリプタテーブルであるかのカウンタを１つインクリメントする。ＣＯＲＲＥＣＴフラグの値がＯＦＦである場合には、データサイズ累積カウンタへの足し合わせは行わずに、どのＤＭＡ受信用ディスクリプタテーブルであるかを示すカウンタを１つインクリメントする。
【００８８】
１番目のデータフレーム受信開始後に、ある所定の時間ごとにタイマー割り込みを発生させるタイマーを起動する。タイマー割り込みが発生すると、デバイスドライバ１３中のデータレート調整処理関数がコールされる。
【００８９】
次に、図８に基づき受信時におけるデータレート調整処理関数の流れを説明する。
【００９０】
最初に、ステップ１０２（Ｓ１０２）において、受信したファイルにファイル末尾であることを示すＥＯＦ（Ｅｎｄ  ｏｆ  Ｆｌａｇ）が含まれているか否かのチェックを行なう。ＥＯＦが含まれている場合には、その後の受信データレートの調整を必要としないため、そこでデータの受信が終了する。よって、ＥＯＦが含まれていると判断された場合には終了し、ＥＯＦが含まれていないと判断された場合には、ステップ１０４に移行する。
【００９１】
次に、ステップ１０４（Ｓ１０４）では、受信スループット値の計算を行なう。具体的には、データサイズ累積カウンタの値をタイマー間隔で割ることにより、受信スループット値を求める。
【００９２】
次に、ステップ１０６（Ｓ１０６）では、データサイズ累積カウンタをクリアにする。これは、次の受信スループット値を計算するために行なわれるものである。
【００９３】
次に、求めた受信スループット値をもとに、受信データレートの調整が必要であるか否かが判断される。
【００９４】
次に、ステップ１０８（Ｓ１０８）では、現在の受信データレートは、取り得る値における最低値であるか否かが判断される。現在の受信データレートが取り得る値における最低値であると判断された場合には終了し、現在の受信データレートが取り得る値における最低値でないと判断された場合には、ステップ１１０に移行する。
【００９５】
次に、ステップ１１０（Ｓ１１０）では、受信スループット値が、現在の受信データレートにおけるＤＯＷＮしきい値を下回っているか否かが判断される。受信スループット値が現在の受信データレートにおけるＤＯＷＮしきい値を下回っていると判断された場合にはステップ１１２に移行し、受信スループット値が現在のデータレートにおけるＤＯＷＮしきい値を下回っていないと判断された場合にはステップ１１６に移行する。
【００９６】
次に、ステップ１１２（Ｓ１１２）では、現在の受信データレートよりも１つ低いデータレートを受信データレート設定レジスタに設定する。
【００９７】
次に、ステップ１１４（Ｓ１１４）では、ＰＨＹ部２３において新たに設定された受信データレートをＭＭＣパケット中の情報要素ＷＤＴＣＴＡ＿ＩＥ中のｂｍＴＸＡｔｔｒｉｂｕｔｅｓフィールドに設定し終了する。
【００９８】
一方、ステップ１１６（Ｓ１１６）では、現在の受信データレートは、取り得る値における最高値であるか否かが判断される。現在の受信データレートが取り得る値における最高値であると判断された場合には終了し、現在の受信データレートが取り得る値における最高値でないと判断された場合には、ステップ１１８に移行する。
【００９９】
次に、ステップ１１８（Ｓ１１８）では、受信スループット値が、現在の受信データレートにおけるＵＰしきい値を上回っているか否かが判断される。受信スループット値が現在の受信データレートにおけるＵＰしきい値を上回っていると判断された場合にはステップ１２０に移行し、受信スループット値が現在の受信データレートにおけるＵＰしきい値を上回っていないと判断された場合には終了する。
【０１００】
次に、ステップ１２０（Ｓ１２０）では、現在の受信データレートよりも１つ高いデータレートを受信データレート設定レジスタに設定する。
【０１０１】
次に、ステップ１２２（Ｓ１２２）では、ＰＨＹ部２３において新たに設定された受信データレートをＭＭＣパケット中の情報要素ＷＤＴＣＴＡ＿ＩＥ中のｂｍＴＸＡｔｔｒｉｂｕｔｅｓフィールドに設定し終了する。
【０１０２】
このようにして、本実施の形態におけるワイヤレスＵＳＢホスト装置は、ＤＭＡ受信する際に、ＤＭＡ受信完了割り込みが発生する度に、受信データのサイズを蓄積し、タイマー割り込み発生ごとに受信スループットを計算し、その値が、その受信データレートにおけるＤＯＷＮしきい値を下回っているか否か、また、ＵＰしきい値を上回っているか否かを調べ、その結果に基づき受信データレートを上げ下げして調節するため、効率的なデータ受信が可能となる。
【０１０３】
なお、以上のデータレートを動的に調整するための処理では、受信スループット値に基づき受信データレートの変更の必要性の有無を判断している。そのため、データが連続的に受信されることが前提となる。そこで、これらの調整はワイヤレスＵＳＢの仕様に定められた連続的で一定の転送速度が要求される用途で用いられるアイソクロナス転送モードの際にのみ行なわれる。
【０１０４】
以上、本発明の実施に係る形態について説明したが、上記内容は、発明の内容を限定するものではない。
【図面の簡単な説明】
【０１０５】
【図１】本発明におけるワイヤレスＵＳＢホスト装置の構成図
【図２】ＭＡＣ−ＰＨＹレジスタの説明図
【図３】データレート設定レジスタの説明図
【図４】ワイヤレスＵＳＢホストにおける状態遷移の概略説明図
【図５】ＤＭＡ転送用ディスクリプタテーブルの説明図
【図６】第１の実施の形態におけるデータレート調整のフローチャート
【図７】データレートごとのしきい値に関する説明図
【図８】第２の実施の形態におけるデータレート調整のフローチャート
【符号の説明】
【０１０６】
１      ホストコントローラ
２      ターゲットデバイス
３      ＰＣＩ−ＥＸＰＲＥＳＳバス
１０    メインＣＰＵ
１１    メモリ
１２    オペレーティングシステム
１３    デバイスドライバ
２０    サブＣＰＵ
２１    メモリ
２２    ＭＡＣ部
２３    ＰＨＹ部
２４    アンテナ
２５    リアルタイムオペレーティングシステム
２６    ファームウェア
２７    ＤＭＡＣ
２８    送信ＦＩＦＯ
２９    受信ＦＩＦＯ
３０    サブＣＰＵ内ＤＭＡＣ
３１    ＭＡＣ−ＰＨＹバス
４０    ＲＦ部
４１    ＰＨＹ／ＲＦレジスタ
４２    ベースバンド部
５０    送信部
５１    受信部
【図１】
2010088000.tif 000003
【図２】
2010088000.tif 000004
【図３】
2010088000.tif 000005
【図４】
2010088000.tif 000006
【図５】
2010088000.tif 000007
【図６】
2010088000.tif 000008
【図７】
2010088000.tif 000009
【図８】
2010088000.tif 000010