(57)【特許請求の範囲】
【請求項１】
通信相手となる通信装置からの送信指示に従って、該通信相手となる通信装置に送信すべきデータフレームを送信する通信装置であって、
前記通信相手となる通信装置に送信すべきデータフレームを生成するデータフレーム生成部と、
前記データフレームを送信できる状態になったことを示す送信可能状態通知情報を生成する送信可能状態通知情報生成部と、
前記通信相手となる通信装置からの、当該通信装置から前記通信相手となる通信装置への状態通知の指示に従って、前記送信可能状態通知情報生成部により生成された送信可能状態通知情報を送信する送信部と
を有し、
前記送信部は、前記データフレーム生成部によりデータフレームの生成が完了する前に、前記通信相手となる通信装置に、前記送信可能状態通知情報を送信する通信装置。
【請求項２】
請求項１に記載の通信装置において、
当該通信装置は、ワイヤレスＵＳＢ仕様に従う通信装置。
【請求項３】
請求項１に記載の通信装置において、
前記通信相手となる通信装置との間でデータ伝送を行うハードウェアと、
該ハードウェアを制御するドライバと
を有し、
前記送信部は、前記ドライバから前記ハードウェアへの割り込みをトリガとして、前記送信可能状態通知情報を送信する通信装置。
【請求項４】
請求項１に記載の通信装置において、
前記通信相手となる通信装置から当該通信装置から前記通信相手となる通信装置へのデータ通信であることを示す情報を受信し、該情報に対して、前記通信相手となる通信装置に送信すべきデータフレームが無いことを示す否定応答を送信した場合に、該否定応答の送信間隔を記録する送信間隔記録部
を有し、
前記送信部は、前記送信間隔記録部に記録された前記否定応答の送信間隔に基づいて、該送信間隔が所定のしきい値よりも長い場合に、前記データフレーム生成部によりデータフレームの生成が完了する前に、前記通信相手となる通信装置に、前記送信可能状態通知情報を送信する通信装置。
【請求項５】
請求項２に記載の通信装置において、
前記通信相手となる通信装置から送信されたＭＭＣ(Micro-scheduled Management Command)フレームに基づいて、該ＭＭＣフレームに含まれる当該通信装置の状態を示すデバイス通知情報要素又は当該通信装置から前記通信相手となる通信装置へのデータ通信に関する情報を示すデバイス送信情報要素が送信される時間間隔を記録する送信間隔記録部
を有し、
前記送信部は、前記送信間隔記録部に記録された前記時間間隔に基づいて、前記データフレーム生成部によりデータフレームの生成が完了する前に、前記通信相手となる通信装置に、前記送信可能状態通知情報を送信するかどうかを判定する通信装置。
【請求項６】
請求項５に記載の通信装置において、
前記送信間隔記録部により記録されるべき前記デバイス通知情報要素又は前記デバイス送信情報要素が送信される時間間隔に基づいて、デバイス通知情報要素又は前記デバイス送信情報要素の送信時間を推定する送信時間推定部
を有し、
前記送信部は、前記送信時間推定部により推定された前記送信時間に基づいて、前記データフレーム生成部によりデータフレームの生成が完了する前に、前記通信相手となる通信装置に、前記送信可能状態通知情報を送信するかどうかを判定する通信装置。
【請求項７】
請求項１に記載の通信装置において、
前記送信部に前記データフレーム生成部によりデータフレームの生成が完了する前に、前記通信相手となる通信装置に前記送信可能状態通知情報を送信させるかどうかを設定するユーザインタフェース
を有する通信装置。
【請求項８】
請求項１に記載の通信装置において、
前記通信相手となる通信装置との間でデータ伝送を行うハードウェアと、
該ハードウェアを制御するドライバと
を有し、
前記ドライバは、前記ハードウェアに前記送信可能状態通知情報を送信させるための割り込みを行い、
送信部は、前記ドライバによる前記ハードウェアへの前記送信可能状態通知情報を送信させるための割り込みをトリガとして、前記送信可能状態通知情報を送信する通信装置。
【請求項９】
通信相手となる通信装置からの送信指示に従って、該通信相手となる通信装置に送信すべきデータフレームを送信する通信装置における通信方法であって、
前記通信相手となる通信装置に送信すべきデータフレームを生成するデータフレーム生成ステップと、
前記データフレームを送信できる状態になったことを示す送信可能状態通知情報を生成する送信可能状態通知情報生成ステップと、
前記通信相手となる通信装置からの、当該通信装置から前記通信相手となる通信装置への状態通知の指示に従って、前記送信可能状態通知情報生成ステップにより生成された送信可能状態通知情報を送信する送信ステップと
を有し、
前記送信ステップは、前記データフレーム生成ステップによりデータフレームの生成が完了する前に、前記通信相手となる通信装置に、前記送信可能状態通知情報を送信する通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置に関する。
【背景技術】
【０００２】
ワイヤレスＵＳＢは、短距離間の有線通信規格として広く普及しているＵＳＢ（Universal Serial Bus）を拡張して、有線通信の安全性と速度を確保しながら、無線通信の使いやすさを持つ技術規格である。ワイヤレスＵＳＢは、ＵＳＢ−ＩＦ（USB Implementers Forum）の下部組織であるワイヤレスＵＳＢプロモータ・グループによって、仕様が作成されている。
【０００３】
ワイヤレスＵＳＢは、無線技術としてＵＷＢ(Ultra Wide Band)技術を用いる。ＵＷＢ技術は、３．１〜１０．６[GHz]の７．５[GHz]という、広い周波数帯域を使用している。標準規格の策定をおこなう米国電気電子学会（ＩＥＥＥ：The Institute of Electrical and Electronic Engineers）の、ＩＥＥＥ８０２．１５．３ａタスクグループが、ＵＷＢの物理レイヤーの標準化を担当している。
【０００４】
ＵＷＢの物理層には、ＤＳ−ＵＷＢ（Direct Spread-UWB）、ＭＢ−ＯＦＤＭ（Multi Band-Orthogonal Frequency Division Multiplexing）の２つの変調方式がある。ＤＳ−ＵＷＢは、３．１〜４．９[GHz]のローバンドと、６．２〜９．７[GHz]のハイバンドの２つのバンド（デュアルバンド）を使用する。ＤＳ−ＵＷＢでは、ＱＰＳＫまたはＢＰＳＫ（Binary Phase Shift Keying）によって１次変調をおこなった後、２次変調にＣＤＭＡ（Code Division Multiple Access）を使用してデータを運ぶ。このとき直接周波数拡散方式を使用する。ＭＢ−ＯＦＤＭは、３．１〜１０．６[GHz]の帯域を１４のバンド（周波数帯）に分割し、各バンドにて、まず、ＱＰＳＫ（Quadrature Phase Shift Keying）により、ディジタル信号を電波に乗せるための１次変調をおこない、他の電波からの干渉に強い通信を実現するための２次変調を、ＯＦＤＭ変調によって行う。ＷｉＭｅｄｉａ  Ａｌｌｉａｎｃｅと呼ばれる団体が、ＭＢ−ＯＦＤＭを利用するＰＨＹ（Physical）層の技術を、ＷｉＭｅｄｉａ  ＰＨＹとして定義している。これらの変調方式を用いて変調を行うことにより、ＵＷＢでは、１[MHz]当たりの送信電力レベルを抑制する。
【０００５】
具体的には、ＦＣＣ（米国連邦通信委員会：Federal Communications Commision）では、ＵＷＢ通信における１[MHz]当たりの送信電力レベルの規制値を表すＥＩＲＰ（Equivalant Isotropic Radiation）を、−４１．２５[dBm]以下と定めている。これは、総電力に換算すると、０．５[mW]程度であり、ＩＥＥＥ８０２．１１ｂ無線ＬＡＮおよびＰＨＳ（Personal Handyphone System）が１０[mw]であるのと比較すると、約２０分の１となる。
【０００６】
前述のＷｉＭｅｄｉａ  Ａｌｌｉａｎｃｅは、ＭＡＣ（Media Access Control）層のプロトコルを、ＷｉＭｅｄｉａ  ＭＡＣ１．０仕様として定義している。ワイヤレスＵＳＢは、ＷｉＭｅｄｉａ  ＰＨＹ、ＷｉＭｅｄｉａ  ＭＡＣという無線技術の上に、有線の、ＵＳＢ−ＩＦ（USB Implementers Forum）が作成したＵＳＢ２．０仕様（Universal Serial Bus Specification Revision 2.0）をベースとするＵＳＢ技術を搭載している。そのため、ワイヤレスＵＳＢは、通信範囲が３ｍ以内であれば、有線のＵＳＢ２．０の最大データ転送レートである４８０[Mbps]でデータを転送することが可能となる。
【０００７】
また、ワイヤレスＵＳＢは、送信電力が低いというＵＷＢの特徴を持つことにより、電波の届く範囲がおよそ１０[m]以内であることを想定したＰＡＮ（Personal Area Network）として位置づけられており、無線ＬＡＮに比べ、より高速であることに加え、盗聴のリスクが少なく、安全性が高い通信技術であるといえる。
【０００８】
ワイヤレスＵＳＢは、これらの特徴を持つことにより、今後、家庭またはオフィスなどの空間で、パソコン、プリンタなどの周辺装置との間の通信などの用途において、普及していく可能性を持っている。
【０００９】
ある空間におけるワイヤレスＵＳＢを用いた通信装置の集まりであるクラスタは、該クラスタを制御する役割を持つ１台のワイヤレスＵＳＢホストと、該ワイヤレスＵＳＢホストによって制御される１つ以上の各周辺装置に相当するワイヤレスＵＳＢデバイスから構成される。
【００１０】
例えば、パソコン、プリンタなどの周辺装置を、ワイヤレスＵＳＢによって接続させて通信をおこなう場合、パソコンがワイヤレスＵＳＢホストに相当し、プリンタなどの周辺装置がワイヤレスＵＳＢデバイスに相当する。
【００１１】
ワイヤレスＵＳＢは、ＴＤＭＡ（時分割多元接続方式：Time Division Multiple Access）を用いた技術である。ワイヤレスＵＳＢホストは、データ送受信に先立ち、ＭＭＣ（Micro-scheduled Management Command）フレームを発行する。該ＭＭＣには、ある間隔ごとに、データおよびその他の情報の送受信の対象となるワイヤレスＵＳＢデバイスを識別するためのデバイスＩＤと、時間を表すパラメータ（単位：[μsec]）と、以下に説明する情報要素ＷｘＣＴＡ＿ＩＥ（Wireless USB Channel Allocation Information Element）などの情報が含まれる。
【００１２】
ＷｘＣＴＡ＿ＩＥは、通信の種類を示す情報要素である。ＷｘＣＴＡ＿ＩＥに含まれる情報要素として、主に用いられるものには、ワイヤレスＵＳＢホストからワイヤレスＵＳＢデバイス方向のデータ通信（デバイス受信）であることを示すＷＤＲＣＴＡ＿ＩＥ（Device Receive Channel Allocation Information Element）、ワイヤレスＵＳＢデバイスからワイヤレスＵＳＢホスト方向のデータ通信（デバイス送信）であることを示すＷＤＴＣＴＡ＿ＩＥ（Device Transmit Channel Allocation Information Element）、ワイヤレスＵＳＢデバイスからワイヤレスＵＳＢホストへの状態通知（デバイス通知）であることを示すＷＤＮＴＳＣＴＡ＿ＩＥ（Device Notification Channel Allocation Information Element）の３つがある。ＭＭＣフレームの中にこれらの情報を追加することにより、ワイヤレスＵＳＢホストは、例えば、「今からｔ[μsec]後に、デバイスＩＤ＝ｘのワイヤレスＵＳＢデバイスを対象として、ワイヤレスＵＳＢホストからワイヤレスＵＳＢデバイス方向にデータフレームを送信する。」というように、事前に、ワイヤレスＵＳＢデバイスに対して通知することになる。ワイヤレスＵＳＢホストとワイヤレスＵＳＢデバイスとの間でのフロー制御手順については、ワイヤレスＵＳＢ１．０仕様（Wireless Universal Serial Bus Specification Revision 1.0）に規定されている。
【００１３】
一例として、ワイヤレスＵＳＢホストが送信するＭＭＣに含まれる、通信の種類を表すパラメータが「デバイス送信」であった場合、すなわち、ワイヤレスＵＳＢデバイスからワイヤレスＵＳＢホスト方向のデータ通信である場合の、ワイヤレスＵＳＢホストとワイヤレスＵＳＢデバイスとの間でのフロー制御手順を説明する。
【００１４】
図１は、ワイヤレスＵＳＢデバイスからワイヤレスＵＳＢホスト方向のデータ通信である場合の、ワイヤレスＵＳＢホストとワイヤレスＵＳＢデバイスとの間でのフロー制御手順の一例を示す。
【００１５】
ＭＭＣに含まれる、通信の種類を表すパラメータが「デバイス送信」であった場合（ステップＳ１０２）、対象となるワイヤレスＵＳＢデバイスは、送信すべきデータを準備できている場合には、指定された時間に、ワイヤレスＵＳＢホストに対してデータフレームを送信する（ステップＳ１０４）。
【００１６】
ＭＭＣに含まれる、通信の種類を表すパラメータが「デバイス送信」であった場合（ステップＳ１０６）、送信すべきデータフレームが無い場合には、データフレームの代わりに、送信すべきデータが無いことを示すＮＡＫ（Negative Acknowledgement）フレームを送信する（ステップＳ１０８）。ＮＡＫフレームを受け取ったワイヤレスＵＳＢホストは、通信の種類を表すパラメータの値を「デバイス通知」に設定したＭＭＣフレームを、ある間隔ごとに送信する（ステップＳ１１０、ステップＳ１１２）。
【００１７】
ワイヤレスＵＳＢデバイスは、アプリケーション層をはじめとする上位層から送信データを受け取り、その後、ワイヤレスＵＳＢ１．０仕様に定義されたデータフレームの生成を行う（ステップＳ１１４）。
【００１８】
ワイヤレスＵＳＢデバイスがデータフレームを準備できた場合には、該データフレームを準備できた直後に、通信の種類を表すパラメータの値が「デバイス通知」に設定されたＭＭＣフレームを受信した際に（ステップＳ１１６）、データを送信する状態になったことを示す、ＤＮ＿ＥＰＲｄｙ（Device Endpoints Ready）フレームを送信する（ステップＳ１１８）。
【００１９】
ＤＮ＿ＥＰＲｄｙフレームを受け取ったワイヤレスＵＳＢホストは、ワイヤレスＵＳＢデバイスがデータを送信できる状態になったことを知り、通信の種類を表すパラメータの値を「デバイス送信」に設定したＭＭＣフレームを送信する（ステップＳ１２０）。
【００２０】
該ＭＭＣフレームを受信したワイヤレスＵＳＢデバイスは、該ＭＭＣフレームで指定された時間に、データフレームを送信する（ステップＳ１２２）。
【発明の概要】
【発明が解決しようとする課題】
【００２１】
ワイヤレスＵＳＢデバイスは、ＮＡＫフレームを送信し（ステップＳ１０８）、アプリケーション層をはじめとする上位層から送信データを受け取り、ワイヤレスＵＳＢ１．０仕様に定義されたデータフレームを生成し、送信すべきデータを準備する（ステップＳ１１４）。
【００２２】
該送信すべきデータを準備した後、ワイヤレスＵＳＢデバイスは、通信の種類を表すパラメータの値が「デバイス通知」に設定されたＭＭＣフレームを受信し（ステップＳ１１６）、データを送信できる状態になったことを示す、ＤＮ＿ＥＰＲｄｙ（Device Endpoints Ready）フレームを送信する（ステップＳ１１８）。
【００２３】
ワイヤレスＵＳＢデバイスは、ワイヤレスＵＳＢホストにより通信の種類を表すパラメータの値が「デバイス送信」に設定されたＭＭＣフレームを受信する（ステップＳ１２０）。
【００２４】
ＮＡＫフレームを送信することから通信の種類を表すパラメータの値が「デバイス送信」に設定されたＭＭＣフレームを受信する過程を経ることにより、データフレームを送信することができる（ステップＳ１２２）。従って、該過程の間は、データフレームを生成済であるにも拘らず、該データフレームを送信することができない。つまり、送信すべきデータフレームが生成されてから、実際に該データフレームを送信するまでの待機時間が長くなる。
【００２５】
待機時間が長くなることにより、単位時間当たりのデータパケット伝送量を示すスループット値が低下する。
【００２６】
そこで、本発明は、上述した問題点の少なくとも１つに鑑みてなされたものであり、その目的は、データフレームを生成してから、該データフレームを送信するまでの待機時間を短縮できる通信装置、及び通信方法を提供することにある。
【課題を解決するための手段】
【００２７】
本通信装置は、
通信相手となる通信装置からの送信指示に従って、該通信相手となる通信装置に送信すべきデータフレームを送信する通信装置であって、
前記通信相手となる通信装置に送信すべきデータフレームを生成するデータフレーム生成部と、
前記データフレームを送信できる状態になったことを示す送信可能状態通知情報を生成する送信可能状態通知情報生成部と、
前記通信相手となる通信装置からの、当該通信装置から前記通信相手となる通信装置への状態通知の指示に従って、前記送信可能状態通知情報生成部により生成された送信可能状態通知情報を送信する送信部と
を有し、
前記送信部は、前記データフレーム生成部によりデータフレームの生成が完了する前に、前記通信相手となる通信装置に、前記送信可能状態通知情報を送信する。
【００２８】
本通信方法は、
通信相手となる通信装置からの送信指示に従って、該通信相手となる通信装置に送信すべきデータフレームを送信する通信装置における通信方法であって、
前記通信相手となる通信装置に送信すべきデータフレームを生成するデータフレーム生成ステップと、
前記データフレームを送信できる状態になったことを示す送信可能状態通知情報を生成する送信可能状態通知情報生成ステップと、
前記通信相手となる通信装置からの、当該通信装置から前記通信相手となる通信装置への状態通知の指示に従って、前記送信可能状態通知情報生成ステップにより生成された送信可能状態通知情報を送信する送信ステップと
を有し、
前記送信ステップは、前記データフレーム生成ステップによりデータフレームの生成が完了する前に、前記通信相手となる通信装置に、前記送信可能状態通知情報を送信する。
【発明の効果】
【００２９】
開示の通信装置及び通信方法によれば、データフレームを生成してから、該データフレームを送信するまでの待機時間を短縮することができる。
【図面の簡単な説明】
【００３０】
【図１】ワイヤレスＵＳＢホストとワイヤレスＵＳＢデバイスとの間のフロー制御手順の一例を示すシーケンス図である。
【図２】本実施例に従った無線通信装置を示す機能ブロック図である。
【図３】本実施例に従った無線通信装置の動作を示す説明図である。
【図４】無線通信装置の動作の一例を示すフローチャートである。
【図５】本実施例に従った無線通信装置の動作の一例を示すフローチャートである。
【図６】無線通信装置の動作の一例を示すシーケンス図である。
【図７】本実施例に従った無線通信装置の動作の一例を示すシーケンス図である。
【図８】本実施例に従った無線通信装置の動作の一例を示すシーケンス図である。
【図９】本変形例に従った無線通信装置の動作の一例を示すフローチャートである。
【図１０】本実施例に従った無線通信装置の動作の一例を示すフローチャートである。
【図１１】本実施例に従った無線通信装置の動作の一例を示すフローチャートである。
【図１２】本実施例に従った無線通信装置のＤＮ＿ＥＰＲｄｙ送出要求を出す際の処理を示す説明図である。
【図１３】本実施例に従った無線通信装置のＤＮ＿ＥＰＲｄｙ送出要求を出す際の処理を示す説明図である。
【図１４】本実施例に従った無線通信装置の動作の一例を示すシーケンス図である。
【図１５】本実施例に従った無線通信装置の動作の一例を示すシーケンス図である。
【発明を実施するための形態】
【００３１】
次に、本発明を実施するための形態を、以下の実施例に基づき図面を参照しつつ説明する。
なお、実施例を説明するための全図において、同一機能を有するものは同一符号を用い、繰り返しの説明は省略する。
【００３２】
＜第１の実施例＞
＜無線通信装置＞
図２は、本実施例に従った無線通信装置１００の一例を示す。本無線通信装置１００には、ワイヤレスＵＳＢデバイスが含まれる。本実施例では、一例として、無線通信装置１００にワイヤレスＵＳＢデバイスを適用した場合について説明する。
【００３３】
本無線通信装置１００は、制御部１０２と、ターゲットコントローラ１２０とを有する。制御部１０２と、ターゲットコントローラ１２０との間は、バス１６０を介して接続される。
【００３４】
制御部１０２は、メインＣＰＵ１０４と、メモリ１０６と、オペレーティングシステム(OS: Operating System)１０８と、ドライバ１１０と、アプリケーションソフトウェア１１２と、バスコントローラ１１４とを有する。
【００３５】
メインＣＰＵ（Central Processing Unit）１０４は、メモリ１０６を用いてオペレーティングシステム１０８を実行させる。メインＣＰＵ１０４は、該オペレーティングシステム１０８上でドライバ１１０を実行させる。
【００３６】
メモリ１０６内には、バス１６０を介して、ＤＭＡ（Direct Memory Access）転送を行うＤＭＡＣ（Direct Memory Access Controller）＿Ａ用のＤＭＡＣ＿Ａ用ディスクリプタテーブル１０６２を配置する。該ＤＭＡＣ＿Ａ用ディスクリプタテーブル１０６２には、ＤＭＡ転送に関するデータサイズ、ＤＭＡ転送元データ領域などの情報が格納される。
【００３７】
ドライバ１１０は、ＵＳＢを用いた各機能を実現するためのファンクションドライバ１１０２と、ＵＳＢプロトコルに基づいた通信を実現するためのＵＳＢバスドライバ１１０４とを含む。該ＵＳＢを用いた各機能には、プリンタ、スキャナ、ストレージなどの機能が含まれる。
【００３８】
ドライバ１１０は、バス１６０を介して制御部１０２とターゲットコントローラ１２０との間のデータの送受信を行う。該ドライバ１１０は、後述するＭＡＣハードウェア部１３０のレジスタに対して、値の読み書きを行う。ＭＡＣハードウェア部１３０のレジスタに対して値の読み書きを行うことにより本無線通信装置１００を制御する。
【００３９】
アプリケーションソフトウェア１１２は、ワイヤレスＵＳＢホスト（図示無し）から送信されたデータの利用、ワイヤレスＵＳＢホストへ送出すべきデータの生成を行う。
【００４０】
バスコントローラ１１４と、バスコントローラ１３２は、バスの制御を行う。
【００４１】
ターゲットコントローラ１２０は、サブＣＰＵ１２２と、メモリ１２４と、リアルタイムオペレーティングシステム(RTOS: Real Time Operating System)１２６と、ファームウェア１２８と、ＭＡＣハードウェア部１３０と、バスコントローラ１３２と、ＤＭＡＣ＿Ａ１３４と、ＤＭＡＣ＿Ｂ１３６と、ＰＨＹ部１３８と、アンテナ１５０とを有する。
【００４２】
ＭＡＣハードウェア部１３０は、ＰＨＹ（Physical Layer）部１３８との間でデータフレームの受け渡しやデータフレームのフィルタリング等の処理を行う。
【００４３】
ＰＨＹ部１３８は、周波数変換等の信号処理を行う。ＰＨＹ部１３８内のベースバンド部１３８２は、電気信号とディジタルデータとの間で変換を行う。ＲＦ部１３８４は、電気信号の周波数と無線の電波の周波数との間で周波数変換を行う。アンテナ１５０は、電波の送受信を行う。
【００４４】
サブＣＰＵ１２２は、メモリ１２４を用いてリアルタイムオペレーティングシステム１２６を実行する。サブＣＰＵ１２２は、該リアルタイムオペレーティングシステム１２６上で、ＭＡＣハードウェア部１３０の各部を制御するためのファームウェア１２８を実行させる。
【００４５】
ファームウェア１２８は、送信データフレーム生成部１２８２と、データフレーム送出部１２８４とを有する。
【００４６】
送信データフレーム生成部１２８２は、ドライバ１１０から受け取ったデータをもとに送信データフレームを生成する。データフレーム送出部１２８４は、該送信データフレーム生成部１２８２により生成されたデータフレームの送出を行う。
【００４７】
送信データフレーム生成部１２８２は、ＤＭＡＣ＿Ｂ用のディスクリプタテーブルの生成を行うＤＭＡＣ＿Ｂ用ディスクリプタテーブル生成部１２８６と、ＤＮ＿ＥＰＲｄｙフレームの送信要求を行うＤＮ＿ＥＰＲｄｙ送信要求部１２８８を有する。
【００４８】
また、データフレーム送出部１２８４は、データフレームを送出する処理に加え、ＤＮ＿ＥＰＲｄｙ送信要求部１２８８により要求されたＤＮ＿ＥＰＲｄｙフレームを送出する処理を行う。
【００４９】
ファームウェア１２８を実行するサブＣＰＵ１２２は、ＭＡＣハードウェア部１３０のレジスタ（図示無し）の設定や、制御部１０２との間のデータの送受信等を行う。
【００５０】
ＭＡＣハードウェア部１３０はＷｉＭｅｄｉａ ＭＡＣの仕様に基づいた処理を実行する。ＰＨＹ部１３８はＷｉＭｅｄｉａ ＰＨＹの仕様に基づいた処理を実行する。また、ＭＡＣハードウェア部１３０と、ＰＨＹ部１３８との間の通信は、ＷｉＭｅｄｉａ ＭＡＣ−ＰＨＹインタフェース仕様書によって規定されている。
【００５１】
＜他の無線通信装置へデータを送信する際の処理＞
本無線通信装置１００が他の無線通信装置へデータを送信する際の無線通信装置１００内の、各機能ブロックにおける処理の流れを示す。該他の無線通信装置には、ワイヤレスＵＳＢホストが含まれる。
【００５２】
図３は、本無線通信装置１００から他の無線通信装置方向にデータを送信する場合の、本無線通信装置１００内の、各ブロックにおける処理の流れを示す。
【００５３】
アプリケーションソフトウェア１１２によりデータが生成される。該データは、ドライバ１１０を経由し、メモリ１０６に格納されたＤＭＡＣ＿Ａ用ディスクリプタテーブル１０６２に含まれる情報に従って、ターゲットコントローラ１２０に転送される。
【００５４】
ターゲットコントローラ１２０では、ファームウェア１２８にて、データフレームが生成される。該データフレームは、ＭＡＣハードウェア部１３０に渡され、ＰＨＹ部１３８に入力される。ＰＨＹ部１３８では、ベースバンド部１３８２によりデータフレームが電気信号に変換され、ＲＦ部１３８４により無線の電波信号に変換される。該電波信号は、アンテナ１５０を介して送出される。
【００５５】
ドライバ１１０からファームウェア１２８への、バス１６０を介したデータ転送は、ＤＭＡ転送により行われる。該ＤＭＡ転送は、ＤＭＡＣ＿Ａ１３４により行われる。
【００５６】
ドライバ１１０は、ファームウェア１２８に渡すデータを用意し、ＤＭＡ転送における、データサイズ、ＤＭＡ転送元データ領域などの情報を記したＤＭＡＣ＿Ａ用ディスクリプタテーブル１０６２を作成する。ドライバ１１０は、ターゲットコントローラ１２０のＭＡＣハードウェア部１３０内のＤＭＡＣ＿Ａ用ＤＭＡ転送開始要求レジスタに設定する。ＤＭＡＣ＿Ａ用ＤＭＡ転送開始要求レジスタに設定することにより、ＤＭＡＣ＿Ａ１３４が、ＤＭＡＣ＿Ａ用ディスクリプタテーブルの内容に従って、ＤＭＡ転送を行うことができる。ＤＭＡＣ＿Ａ１３４はＤＭＡ転送を終了すると、ターゲットコントローラ１２０のサブＣＰＵ１２２に対して、バスインタフェース割り込みを発生させる。バスインタフェース割り込みの発生により、ファームウェア１２８は、メモリ１２４上のデータに基づいて、ワイヤレスＵＳＢ１．０仕様及びＷｉＭｅｄｉａ ＭＡＣ１．０仕様に規定されたデータフレームのフォーマットに従いデータフレームを生成する。
【００５７】
該データフレームは、ＭＡＣハードウェア用の送信キュー１２４４へ、ＤＭＡ転送によって転送される。該送信キュー１２４４は、メモリ１２４に含まれる。該ＤＭＡ転送は、ＤＭＡＣ＿Ｂ１３６により行われる。ファームウェア１２８は、ＤＭＡＣ＿Ｂ用ディスクリプタテーブル１２４２を作成した後、ＭＡＣハードウェア部１３０の、ＤＭＡＣ＿Ｂ用ＤＭＡ転送開始要求レジスタに設定する。ＤＭＡＣ＿Ｂ用ＤＭＡ転送開始要求レジスタに設定することによって、ＤＭＡＣ＿Ｂ１３６が、ＤＭＡＣ＿Ｂ用ディスクリプタテーブル１２４２の内容に従って、ＤＭＡ転送をおこなう。ＤＭＡＣ＿Ｂ１３６は、ＤＭＡ転送を終了すると、サブＣＰＵ１２２に対して、ＤＭＡ転送完了割り込みを発生させる。
【００５８】
送信キュー１２４４に格納されたデータフレームは、ＭＡＣハードウェア部１３０によりワイヤレスＵＳＢホストからのＭＭＣフレームに含まれるＷＤＴＣＴＡ＿ＩＥにて指定された時刻に送出できるように管理される。該データフレームは、ベースバンド部１３８２、ＲＦ部１３８４、及びアンテナ１５０を介して送出される。
【００５９】
ＭＡＣハードウェア部１３０は、当該無線通信装置１００がＷＤＴＣＴＡ＿ＩＥを含むＭＭＣフレームを受信した際に、該ＭＭＣフレームを受信した時点で、送信キュー１２４４にデータが格納されているかどうかを判定する。送信キュー１２４４にデータが格納されていない場合には、送信するデータが無いことを示すＮＡＫフレームを送信する。送信キュー１２４４にデータが格納されている場合には、該データを送信する。
【００６０】
ＭＡＣハードウェア部１３０は、ＮＡＫフレーム送信後、サブＣＰＵ１２２に対して、ＮＡＫフレーム送信完了割り込みを発生させる。該ＮＡＫフレーム送信完了割り込みによって、ファームウェア１２８は、該ファームウェア１２８に配置された、現在ＮＡＫ状態にあるかどうかを示すＮＡＫフラグをＴＲＵＥに設定する。
【００６１】
ＮＡＫフラグがＴＲＵＥに設定された後、ＤＭＡ転送により、ドライバ１１０から次のデータを渡されると、サブＣＰＵ１２２に対してバスインタフェース割り込みが発生する。
【００６２】
＜ファームウェアの処理＞
サブＣＰＵ１２２に対してバスインタフェース割り込みが発生した際に、ファームウェア１２８により実行される処理について説明する。
【００６３】
図４は、従来におけるバスインタフェース割り込みが発生した際の処理を示すフローチャートである。
【００６４】
サブＣＰＵに対してバスインタフェース割り込みが発生した場合には、ファームウェアは、前回バスインタフェース割り込みが発生した場合と同様に、ドライバからのデータをもとに、送信すべきデータフレームを生成する（ステップＳ４０２）。
【００６５】
ドライバは、ＤＭＡディスクリプタテーブルを作成する（ステップＳ４０４）。
【００６６】
ドライバは、ＤＭＡ転送開始要求レジスタに設定する（ステップＳ４０６）。
【００６７】
サブＣＰＵは、ＤＭＡ転送完了割り込みの発生を検知する（ステップＳ４０８）。
【００６８】
ファームウェアは、ＤＭＡ転送完了割り込みの発生を検知した時点でＮＡＫフラグがＴＲＵＥであるかどうかを判定する（ステップＳ４１０）。
【００６９】
ＮＡＫフラグがＴＲＵＥであると判定した場合（ステップＳ４１０：ＹＥＳ）、ファームウェアは、ＭＡＣハードウェア部に対して、ＮＡＫ状態が解消されたことを示す、ＤＮ＿ＥＰＲｄｙフレームの送信要求を行う（ステップＳ４１２）。
【００７０】
ファームウェアは、ＮＡＫフラグをＦＡＬＳＥに設定する（ステップＳ４１４）。
【００７１】
ステップＳ４１０において、ＮＡＫフラグがＴＲＵＥであると判定されない場合（ステップＳ４１０：ＮＯ）、換言すれば、ＦＡＬＳＥであると判定された場合、終了する。
【００７２】
図５は、本無線通信装置１００において、バスインタフェース割り込みが発生した際の処理を示すフローチャートである。
【００７３】
サブＣＰＵ１２２は、該サブＣＰＵ１２２に対してバスインタフェース割り込みが発生したかどうかを判定する（ステップＳ５０２）。
【００７４】
サブＣＰＵ１２２に対してバスインタフェース割り込みが発生したと判定された場合（ステップＳ５０２：ＹＥＳ）、ファームウェア１２８は、該バスインタフェース割り込みが発生した時点でＮＡＫフラグがＴＲＵＥ、ＦＡＬＳＥのどちらに設定されているかを調べる（ステップＳ５０４）。一方、サブＣＰＵ１２２に対してバスインタフェース割り込みが発生したと判定されない場合（ステップＳ５０２：ＮＯ）、ステップＳ５０２に戻る。サブＣＰＵ１２２に対してバスインタフェース割り込みが発生したと判定されるまで、同様の判定処理を行う。
【００７５】
ステップＳ５０４によりＮＡＫフラグがＴＲＵＥに設定されていると判定された場合（ステップＳ５０４：ＹＥＳ）、ＤＮ＿ＥＰＲｄｙ送信要求部１２８８は、ＮＡＫ状態が解消されたことを示す、ＤＮ＿ＥＰＲｄｙフレームの送信要求をＭＡＣハードウェア部１３０に対して行う（ステップＳ５０６）。
【００７６】
該ＤＮ＿ＥＰＲｄｙ送信要求部１２８８は、ＤＮ＿ＥＰＲｄｙフレームの送信要求を行った後、ファームウェア１２８に設定されるべきＮＡＫフラグをＦＡＬＳＥに設定する（ステップＳ５０８）。
【００７７】
ステップＳ５０８によりファームウェア１２８に設定されるべきＮＡＫフラグがＦＡＬＳＥに設定された後、及びステップＳ５０４によりＮＡＫフラグがＴＲＵＥに設定されていると判定されない場合、換言すればＦＡＬＳＥに設定されていると判定された場合（ステップＳ５０４：ＮＯ）、送信データフレーム生成部１２８２は、ドライバ１１０から受け取ったデータに基づいて、データフレームを生成する（ステップＳ５１０）。
【００７８】
ＤＭＡ＿Ｂ用ディスクリプタテーブル生成部１２８６は、ＤＭＡ＿Ｂ用ディスクリプタテーブル１２４２を作成する（ステップＳ５１２）。
【００７９】
サブＣＰＵ１２２は、ＭＡＣハードウェア部１３０の、ＤＭＡＣ＿Ｂ用ＤＭＡ転送開始要求レジスタに設定する（ステップＳ５１４）。ＤＭＡＣ＿Ｂ用ＤＭＡ転送開始要求レジスタに設定することにより、ＤＭＡＣ＿Ｂ１３６が、ＤＭＡＣ＿Ｂ用ディスクリプタテーブル１２４２の内容に従って、ＤＭＡ転送を行うことができる。ＤＭＡＣ＿Ｂ１３６は、ＤＭＡ転送を終了すると、サブＣＰＵ１２２に対して、ＤＭＡ転送完了割り込みを発生させる。
【００８０】
サブＣＰＵ１２２は、ＤＭＡ転送完了割り込みを検知する（ステップＳ５１６）。
【００８１】
＜本無線通信装置と他の無線通信装置との間の処理シーケンス＞
以下、従来技術の処理シーケンスのフローと、本実施例の処理シーケンスのフローとを示す。
【００８２】
以下、本無線通信装置を「ワイヤレスＵＳＢデバイス」と呼び、他の無線通信装置を「ワイヤレスＵＳＢホスト」と呼ぶ。
【００８３】
ワイヤレスＵＳＢデバイスからワイヤレスＵＳＢホスト方向のデータ通信（デバイス送信）であることを示すＷＤＴＣＴＡ＿ＩＥを含むＭＭＣフレームに対して、ワイヤレスＵＳＢデバイスはデータフレームを送出する。該データフレームの送出後、ワイヤレスＵＳＢデバイスからワイヤレスＵＳＢホスト方向のデータ通信（デバイス送信）であることを示すＷＤＴＣＴＡ＿ＩＥを含むＭＭＣフレームに対して、ワイヤレスＵＳＢデバイスはＮＡＫフレーム送信する。ＮＡＫフレームを送信した後、ワイヤレスＵＳＢデバイスからワイヤレスＵＳＢホスト方向への状態通知（デバイス通知）であることを示すＷＤＮＴＳＣＴＡ＿ＩＥを含むＭＭＣフレームに対して、ワイヤレスＵＳＢデバイスはＤＮ＿ＥＰＲｄｙを送信する。ワイヤレスＵＳＢデバイスは、再度、ワイヤレスＵＳＢホストからＷＤＴＣＴＡ＿ＩＥを含むＭＭＣフレームを受信する。該ＭＭＣフレームを受信した後、ワイヤレスＵＳＢデバイスは、データフレームを送出する。以上の１サイクルにおける一連のフローと、該フローに要する処理時間を示す。
【００８４】
なお、ワイヤレスＵＳＢホストにおける、ＷＤＴＣＴＡ＿ＩＥを含むＭＭＣフレームを送出する間隔、ＷＤＮＴＳＣＴＡ＿ＩＥを含んだＭＭＣフレームを送出する間隔は、ワイヤレスＵＳＢ１．０仕様に規定されていない。該ＷＤＴＣＴＡ＿ＩＥを含むＭＭＣフレームを送出する間隔、該ＷＤＮＴＳＣＴＡ＿ＩＥを含んだＭＭＣフレームを送出する間隔は、ワイヤレスＵＳＢホストの実装に依って異なる。本実施例では、実際に、ワイヤレスＵＳＢプロトコルアナライザを用いて、データフレームをキャプチャした結果、約１０００μｓｅｃであったため、該ＷＤＴＣＴＡ＿ＩＥを含むＭＭＣフレームを送出する間隔、該ＷＤＮＴＳＣＴＡ＿ＩＥを含んだＭＭＣフレームを送出する間隔を１０００μｓｅｃと仮定する。
【００８５】
また、ＮＡＫフレームを受信したワイヤレスＵＳＢホストが、ワイヤレスＵＳＢデバイスからワイヤレスＵＳＢホスト方向への状態通知（デバイス通知）であることを示すＷＤＮＴＳＣＴＡ＿ＩＥを送出するまでの時間についても同様に、データフレームをキャプチャした結果をもとに、１０００μｓｅｃと仮定する。
【００８６】
また、ＷＤＴＣＴＡ＿ＩＥまたはＷＤＮＴＳＣＴＡ＿ＩＥにより指定される、ワイヤレスＵＳＢデバイスからのフレーム送信時間についても、データフレームをキャプチャした結果をもとに、３０μｓｅｃ後と仮定する。
【００８７】
また、ワイヤレスＵＳＢデバイスがＮＡＫフレームを送出するまでに、ワイヤレスＵＳＢホストからのＷＤＴＣＴＡ＿ＩＥを含むＭＭＣフレームの送出と、該ＭＭＣフレームに対するワイヤレスＵＳＢデバイスからのデータフレームの送出が、５回行われると仮定する。
【００８８】
ドライバ１１０から次のデータをＤＭＡ転送によって渡され、サブＣＰＵ１２２に対してバスインタフェース割り込みが発生した際の、ファームウェア１２８における処理に要する時間について説明する。
【００８９】
サブＣＰＵ１２２は、割り込み発生後、どのような割り込みであるかをチェックする。サブＣＰＵ１２２は、ＤＭＡ転送完了を示すバスインタフェース割り込みであった場合には、ワイヤレスＵＳＢ１．０に基づいてデータフレームを生成し、ＤＭＡディスクリプタテーブルを作成し、ＤＭＡ転送開始要求レジスタへ設定する。該データフレームを生成し、ＤＭＡディスクリプタテーブルを作成し、ＤＭＡ転送開始要求レジスタへの設定を行う一連の処理は、サブＣＰＵ１２２上での命令で、約１０００命令であると推測される。
【００９０】
また、ワイヤレスＵＳＢ１．０仕様には、一つのバスインタフェース割り込みに対して、複数のデータフレームを送出する、バースト転送について記載されている。該バースト転送では、一つのＷＤＴＣＴＡ＿ＩＥに対してまとめて送信できるデータフレームの数、すなわち、バーストサイズは、最大で１６フレームと規定されている。
【００９１】
サブＣＰＵ１２２の処理能力を表す単位として、一般的に、一秒間あたりに何百万命令を処理できるかを示すＭＩＰＳ（Million Instructions Per Second）が用いられる。そして、現在、一般的な組み込み機器で使用されるサブＣＰＵ１２２は、約１００ＭＩＰＳのオーダーである。サブＣＰＵ１２２の処理能力が１００ＭＩＰＳである場合には、サブＣＰＵ１２２が、一つの命令を処理するための時間は、１００ＭＩＰＳの逆数となるので、１０ｎｓｅｃ（ｎｓｅｃは１０のマイナス９乗秒）となる。そのため、上記の一連の処理を１６フレームに対して行う場合の処理時間は、１０ｎｓｅｃ×１０００×１６＝１６０μｓｅｃとなる。そこで、以下、該処理時間が１６０μｓｅｃであると仮定する。そして、この例では、ＮＡＫフレームを送出してから９００μｓｅｃ後に、ドライバ１１０から次のデータをＤＭＡ転送によって渡され、サブＣＰＵ１２２に対してバスインタフェース割り込みが発生するものとする。
【００９２】
＜従来例＞
図６は、従来の処理シーケンスのフローを示す。
【００９３】
ワイヤレスＵＳＢホストからのＷＤＴＣＴＡ＿ＩＥを含むＭＭＣフレームの送出と、該ＭＭＣフレームに対するワイヤレスＵＳＢデバイスからのデータフレームの送出が、５回行われる（ステップＳ６０２−ステップＳ６２０）。
【００９４】
ワイヤレスＵＳＢホストからのＷＤＴＣＴＡ＿ＩＥを含むＭＭＣフレームが送出される（ステップＳ６２２）。
【００９５】
ワイヤレスＵＳＢデバイスは、ＮＡＫフレームを送出する（ステップＳ６２４）。ドライバからの全データを送出済であるためである。
【００９６】
ワイヤレスＵＳＢデバイスは、ＮＡＫフレーム送信してから９００μｓｅｃ後にドライバから新たなデータを渡されると、データフレームの送信準備を開始する（ステップＳ６２６）。データフレーム送信準備を開始する処理には、送信データフレームの生成、ＤＭＡディスクリプタテーブルの作成、ＤＭＡ転送開始要求レジスタへの設定という一連の処理が含まれる。
【００９７】
ＮＡＫフレームを送信した後の７０μｓｅｃ後に、ワイヤレスＵＳＢデバイスは、ＷＤＮＴＳＣＴＡ＿ＩＥを含むＭＭＣフレームを受信する（ステップＳ６２８）。ワイヤレスＵＳＢデバイスは、該ＭＭＣフレームにより指定される３０μｓｅｃ後までには、データフレーム送信準備が完了しないため、ＤＮ＿ＥＰＲｄｙを送出することができない（ステップＳ６３０）。
【００９８】
ステップＳ６２６によりデータフレーム送信準備が開始されてから１６０μｓｅｃ後に、データフレーム送信準備が完了し、ＤＭＡ転送完了割り込みが発生し、ＭＡＣハードウェア部に対してＤＮ＿ＥＰＲｄｙ送出を要求する（ステップＳ６３２）。
【００９９】
ステップＳ６２８により、ＷＤＮＴＳＣＴＡ＿ＩＥを含むＭＭＣフレーム受信してから１０００μｓｅｃ後に、再度ＷＤＮＴＳＣＴＡ＿ＩＥを含むＭＭＣフレームを受信する（ステップＳ６３４）。
【０１００】
ワイヤレスＵＳＢデバイスは、該ＭＭＣフレームにより指定される３０μｓｅｃ後に、ＤＮ＿ＥＰＲｄｙを送出する（ステップＳ６３６）。
【０１０１】
該ＤＮ＿ＥＰＲｄｙを送信した後、ワイヤレスＵＳＢデバイスは、９７０μｓｅｃ後に、ＷＤＴＣＴＡ＿ＩＥを含むＭＭＣフレーム受信する（ステップＳ６３８）。該ＭＭＣフレームに対し、ワイヤレスＵＳＢデバイスは、該ＭＭＣフレームにより指定された３０μｓｅｃ後にデータフレームを送出する（ステップＳ６４０）。
【０１０２】
図６に示される従来の処理シーケンスのフローでは、初めにＷＤＴＣＴＡ＿ＩＥを含むＭＭＣフレームに対してデータフレームを送出してから（ステップＳ６２０）、ＷＤＴＣＴＡ＿ＩＥを含むＭＭＣフレームに対してＮＡＫフレーム送信し（ステップＳ６２４）、ＷＤＮＴＳＣＴＡ＿ＩＥを含むＭＭＣフレームに対して送信フレームが生成された場合にＤＮ＿ＥＰＲｄｙを送信し（ステップＳ６３６）、再度、ＷＤＴＣＴＡ＿ＩＥを含むＭＭＣフレームに対してデータフレームを送出する（ステップＳ６４０）。初めにＷＤＴＣＴＡ＿ＩＥを含むＭＭＣフレームに対してデータフレームを送出してから（ステップＳ６２０）、再度、ＷＤＴＣＴＡ＿ＩＥを含むＭＭＣフレームに対してデータフレームを送出する（ステップＳ６４０）までの１サイクルにおける一連の処理時間は、８０００μｓｅｃと推定される。
【０１０３】
＜本無線通信装置における処理シーケンス＞
図７は、本実施例に従った処理シーケンスのフローを示す。
【０１０４】
ワイヤレスＵＳＢホストからのＷＤＴＣＴＡ＿ＩＥを含むＭＭＣフレームの送出と、該ＭＭＣフレームに対するワイヤレスＵＳＢデバイスからのデータフレームの送出が、５回行われる（ステップＳ７０２−ステップＳ７２０）。
【０１０５】
ワイヤレスＵＳＢホストからのＷＤＴＣＴＡ＿ＩＥを含むＭＭＣフレームが送出される（ステップＳ７２２）。
【０１０６】
ワイヤレスＵＳＢデバイスは、ＮＡＫフレームを送出する（ステップＳ７２４）。ドライバからの全データを送出済であるためである。
【０１０７】
ワイヤレスＵＳＢデバイスは、ＮＡＫフレームを送信してから（ステップＳ７２４）、９００μｓｅｃ後にドライバ１１０から新たなデータを渡されると、サブＣＰＵ１２２は、バスインタフェース割り込みが発生したことを検出する。サブＣＰＵ１２２によりバスインタフェース割り込みが発生したことが検出されると、ファームウェア１２８は、該バスインタフェース割り込みが発生した時点でＮＡＫフラグがＴＲＵＥ、ＦＡＬＳＥのどちらに設定されているかを調べる。ＮＡＫフラグがＴＲＵＥに設定されていると判定した場合、ファームウェア１２８のＤＮ＿ＥＰＲｄｙ送信要求部１２８８は、ＮＡＫ状態が解消されたことを示す、ＤＮ＿ＥＰＲｄｙフレームの送信要求をＭＡＣハードウェア部１３０に対して行う。該ＤＮ＿ＥＰＲｄｙ送信要求部１２８８は、ＤＮ＿ＥＰＲｄｙフレームの送信要求を行った後、ファームウェア１２８に設定されるべきＮＡＫフラグをＦＡＬＳＥに設定する。送信データフレーム生成部１２８２は、データフレーム送信準備を開始する。
【０１０８】
該データフレーム送信準備が開始されてから７０μｓｅｃ後に、ワイヤレスＵＳＢデバイスは、ＷＤＮＴＳＣＴＡ＿ＩＥを含むＭＭＣフレームを受信する（ステップＳ７２８）。
【０１０９】
ワイヤレスＵＳＢデバイスは、該ＭＭＣフレームにより指定される３０μｓｅｃ後までに、ＤＮ＿ＥＰＲｄｙを送出する（ステップＳ７３０）。
【０１１０】
ＤＮ＿ＥＰＲｄｙを送出してから６０μｓｅｃ後に、データフレーム送信準備が完了し、ＤＭＡ転送完了割り込みが発生する（ステップＳ７３２）。ＤＭＡ＿Ｂ用ディスクリプタテーブル生成部１２８６は、ＤＭＡ＿Ｂ用ディスクリプタテーブル１２４２を作成する。サブＣＰＵ１２２は、ＭＡＣハードウェア部１３０の、ＤＭＡＣ＿Ｂ用ＤＭＡ転送開始要求レジスタに設定する。ＤＭＡＣ＿Ｂ１３６は、ＤＭＡ転送を終了すると、サブＣＰＵ１２２に対して、ＤＭＡ転送完了割り込みを発生させる。
【０１１１】
該ＤＭＡ転送完了割り込みが発生してから９１０μｓｅｃ後に、ワイヤレスＵＳＢデバイスは、ＷＤＴＣＴＡ＿ＩＥを含むＭＭＣフレーム受信する（ステップＳ７３４）。ワイヤレスＵＳＢデバイスは、該ＭＭＣフレームにより指定された３０μｓｅｃ後にデータフレームを送出する（ステップＳ７３６）。
【０１１２】
図７に示される処理シーケンスのフローでは、ＷＤＴＣＴＡ＿ＩＥを含むＭＭＣフレームに対するデータフレームを送出してから（ステップＳ７２０）、ＷＤＴＣＴＡ＿ＩＥを含むＭＭＣフレームに対してＮＡＫフレーム送信し（ステップＳ７２４）、ＷＤＮＴＳＣＴＡ＿ＩＥを含むＭＭＣフレームに対してＤＮ＿ＥＰＲｄｙを送信し（ステップＳ７３０）、再度、ＷＤＴＣＴＡ＿ＩＥを含むＭＭＣフレームに対してデータフレームを送出する（ステップＳ７３６）。
【０１１３】
ＷＤＴＣＴＡ＿ＩＥを含むＭＭＣフレームに対するデータフレームを送出（ステップＳ７２０）してからＷＤＴＣＴＡ＿ＩＥを含むＭＭＣフレームに対してデータフレームを送出する（ステップＳ７３６）までの１サイクルにおける一連の処理時間は、７０００μｓｅｃと推定される。図７に示される処理シーケンスのフローでは、図６に示される従来の処理のシーケンスのフローに比べて１０００μｓｅｃ程度、送信すべきデータフレームを生成してから、該データフレームを送信するまでの待機時間を短縮することができる。
【０１１４】
ＮＡＫフレーム送信後、ドライバ１１０から次のデータが渡された場合に、ＭＡＣハードウェア部１３０へのＤＮ＿ＥＰＲｄｙ送信要求を先行しておこなった後、送信データフレームの生成、ＤＭＡディスクリプタテーブルの作成、ＤＭＡ転送開始要求レジスタへの設定という一連の処理からなる、データフレーム送信準備を開始することにより、次のデータフレームを実際に送出するまでに要する時間を短縮するという効果が得られる。
【０１１５】
＜変形例＞
上述した実施例では、図７に示されるように、ＷＤＮＴＳＣＴＡ＿ＩＥを含むＭＭＣフレームの受信（ステップＳ７２８）からＷＤＴＣＴＡ＿ＩＥを含むＭＭＣフレームの受信（ステップＳ７３４）までの時間間隔が１０００μｓｅｃである場合を示した。しかし、該時間間隔については、ワイヤレスＵＳＢ１．０仕様に規定されてはいないため、ワイヤレスＵＳＢホストの実装に依る。そのため、該時間間隔が短い場合には、本実施例に対して期待すべき効果が得られないこともありうる。
【０１１６】
図８は、本実施例に従った処理シーケンスのフローを示す。
【０１１７】
具体例として、ワイヤレスＵＳＢデバイスがＷＤＮＴＳＣＴＡ＿ＩＥを含むＭＭＣフレームを受信（ステップＳ８０６）してからＷＤＴＣＴＡ＿ＩＥを含むＭＭＣフレームを受信（ステップＳ８１０）するまでの時間間隔が１００μｓｅｃである場合について説明する。図８において、時間軸のスケールは、図６、及び図７の時間軸スケールとは異なる。
【０１１８】
また、図８では、ＮＡＫフレーム送信（ステップＳ８０２）以前の処理は、図７のＮＡＫフレーム送信以前の処理（ステップＳ７０２−ステップＳ７２４）と同様である。また、図７では、ＮＡＫフレームを送信してから（ステップＳ７２４）、ドライバ１１０から新たなデータを渡される（ステップＳ７２６）までの時間を９００μｓｅｃと仮定したが、図８では９６０μｓｅｃと仮定した。
【０１１９】
ワイヤレスＵＳＢデバイスでは、ＮＡＫフレーム送信（ステップＳ８０２）してから９６０μｓｅｃ後に、ターゲットコントローラ１２０は、ドライバ１１０から新たなデータを渡される。サブＣＰＵ１２２は、ＭＡＣハードウェア部１３０に対してＤＮ＿ＥＰＲｄｙ送出を要求する（ステップＳ８０４）。具体的には、サブＣＰＵ１２２は、バスインタフェース割り込みが発生したことを検出する。サブＣＰＵ１２２によりバスインタフェース割り込みが発生したことが検出されると、ファームウェア１２８は、該バスインタフェース割り込みが発生した時点でＮＡＫフラグがＴＲＵＥ、ＦＡＬＳＥのどちらに設定されているかを調べる。ＮＡＫフラグがＴＲＵＥに設定されていると判定した場合、ファームウェア１２８のＤＮ＿ＥＰＲｄｙ送信要求部１２８８は、ＮＡＫ状態が解消されたことを示す、ＤＮ＿ＥＰＲｄｙフレームの送信要求をＭＡＣハードウェア部１３０に対して行う。
【０１２０】
ＤＮ＿ＥＰＲｄｙ送出を要求してから１０μｓｅｃ後に、ワイヤレスＵＳＢデバイスは、ＷＤＮＴＳＣＴＡ＿ＩＥを含むＭＭＣフレームを受信する（ステップＳ８０６）。該ＭＭＣフレームにより指定される３０μｓｅｃ後までに、ワイヤレスＵＳＢデバイスは、ＤＮ＿ＥＰＲｄｙを送出する（ステップＳ８０８）。
【０１２１】
ワイヤレスＵＳＢデバイスによりＤＮ＿ＥＰＲｄｙが送出されてから７０μｓｅｃ後に、ワイヤレスＵＳＢホストは、ＷＤＴＣＴＡ＿ＩＥを含むＭＭＣフレームを送信する（ステップＳ８１０）。
【０１２２】
ワイヤレスＵＳＢデバイスは、該ＭＭＣフレームを受信するが、実際には、まだデータフレーム送信準備を完了していない。従って、ワイヤレスＵＳＢデバイスは、データフレームを送出することができない。すなわち、ワイヤレスＵＳＢデバイスは、再度ＮＡＫフレームを送信せざるを得ない（ステップＳ８１２）。
【０１２３】
ワイヤレスＵＳＢデバイスは、データフレーム送信準備を完了し、ＤＭＡ転送完了割り込みを検出する（ステップＳ８１４）。
【０１２４】
ワイヤレスＵＳＢホストは、ＷＤＮＴＳＣＴＡ＿ＩＥを含むＭＭＣフレームを送信する（ステップＳ８１６）。
【０１２５】
再度ＮＡＫフレームを送信せざるを得ない場合（ステップＳ８１２）には、ワイヤレスＵＳＢデバイスは、ＤＮ＿ＥＰＲｄｙフレームを再度送出する必要が生じる。該ＤＮ＿ＥＰＲｄｙフレームの送出後、ＭＡＣハードウェア部１３０へのＤＮ＿ＥＰＲｄｙ送信要求を先行して行う場合には、ＮＡＫフレームとＤＮ＿ＥＰＲｄｙフレームとを、交互に送出することになる。ＮＡＫフレームとＤＮ＿ＥＰＲｄｙフレームとが交互に送出される結果、データフレームの送信ができなくなることがある。
【０１２６】
＜本変形例に従った無線通信装置の動作＞
ＮＡＫフレームとＤＮ＿ＥＰＲｄｙフレームとが交互に送出される結果、データフレームの送信ができなくなることに対して、以下に示される処理を行うようにしてもよい。
【０１２７】
図９は、本変形例に従った無線通信装置の処理を示すフローチャートである。図９は、ＮＡＫフレーム送信間隔しきい値を用いて、ＤＮ＿ＥＰＲｄｙ送信要求を先行するかどうかを判定する。
【０１２８】
ワイヤレスＵＳＢデバイスは、ＮＡＫフレームを送出したかどうかを判定する（ステップＳ９０２）。
【０１２９】
ＮＡＫフレームを送出したと判定した場合、当該ワイヤレスＵＳＢデバイスは、前回のＮＡＫフレームを送出してからの時間間隔を算出する（ステップＳ９０４）。例えば、ＤＮ＿ＥＰＲｄｙ送出要求部１２８８は、前回のＮＡＫフレームを送出してからの時間間隔を算出する。
【０１３０】
ステップＳ９０４により算出されたＮＡＫフレームを送出してからの時間間隔が、しきい値よりも短いかどうか、換言すればしきい値未満であるかどうかを判定する（ステップＳ９０６）。例えば、ＤＮ＿ＥＰＲｄｙ送出要求部１２８８は、ステップＳ９０４により算出されたＮＡＫフレームを送出してからの時間間隔がしきい値よりも短いかどうかを判定する。
【０１３１】
ステップＳ９０４により算出されたＮＡＫフレームを送出してからの時間間隔がしきい値よりも短い、換言すればしきい値未満と判定された場合（ステップＳ９０６：ＹＥＳ）、当該ワイヤレスＵＳＢデバイスは、ＤＮ＿ＥＰＲｄｙ送信要求を先行する処理をオフに設定する（ステップＳ９０８）。例えば、ＤＮ＿ＥＰＲｄｙ送出要求部１２８８は、ステップＳ９０４により算出されたＮＡＫフレームを送出してからの時間間隔がしきい値よりも短いと判定した場合、ＤＮ＿ＥＰＲｄｙ送信要求を先行する処理をオフに設定する。
【０１３２】
一方、ステップＳ９０２によりＮＡＫフレームを送出すべきであると判定されない場合（ステップＳ９０２：ＮＯ）、及びステップＳ９０６によりＮＡＫフレームを送出してからの時間間隔がしきい値よりも短いと判定されない場合、換言すればＮＡＫフレームを送出してからの時間間隔がしきい値以上であると判定された場合（ステップＳ９０６：ＮＯ）、終了する。
【０１３３】
上述した変形例によれば、ＮＡＫフレームを送出してからの時間間隔のしきい値を設定する。ＮＡＫフレームを送出してからの時間間隔を記録する。該記録されたＮＡＫフレームを送出した時間間隔と、該しきい値とを比較する。該時間間隔がしきい値未満である場合にはＭＡＣハードウェアに対するＤＮ＿ＥＰＲｄｙ送信要求を先行する機能をオフにし、該時間間隔がしきい値以上である場合にはＭＡＣハードウェアに対するＤＮ＿ＥＰＲｄｙ送信要求を先行する機能をオンにする。
【０１３４】
また、本変形例において、受信したＷＤＮＴＳＣＴＡ＿ＩＥを含むＭＭＣフレーム、及びＷＤＴＣＴＡ＿ＩＥを含むＭＭＣフレームの時間間隔を、ファームウェア１２８内部の配列に格納するようにしてもよい。該ファームウェア１２８内部の配列に格納された時間間隔の数が予め設定された数に達した場合、該時間間隔の平均値を算出する。該平均値をもとに、ワイヤレスＵＳＢホストの、ＷＤＮＴＳＣＴＡ＿ＩＥ及びＷＤＴＣＴＡ＿ＩＥを含むＭＭＣフレームが送出される時間間隔や、ドライバ１１０から次のデータが渡された場合に、あと何μｓｅｃ後にＷＤＮＴＳＣＴＡ＿ＩＥが送られてくるかを推定する。該推定結果に基づいて、ＭＡＣハードウェア部１３０に対するＤＮ＿ＥＰＲｄｙ送信要求を先行して出すべきかどうかを判定する。
【０１３５】
具体的な例としては、ＷＤＮＴＳＣＴＡ＿ＩＥ及びＷＤＴＣＴＡ＿ＩＥを含むＭＭＣフレームが送出される時間間隔が１０００μｓｅｃ以上であるかどうか、ドライバ１１０から次のデータが渡された場合に、次にＷＤＮＴＳＣＴＡ＿ＩＥが送出されると推定されるまでの時間が、２００μｓｅｃ以上であるかどうか、という二つの判定条件を設定する。該二つの判定条件のうちいずれかの判定条件を満たしていれば、ＭＡＣハードウェア部１３０に対するＤＮ＿ＥＰＲｄｙ送信要求を先行して出すことによる効果が得られると判断する。効果が得られると判断した場合、ＤＮ＿ＥＰＲｄｙ送信要求を先行して出す機能を有効にする。
【０１３６】
図１０は、本変形例に従ったＭＭＣフレームの受信間隔の平均値を算出する処理の一例を示す。
【０１３７】
ワイヤレスＵＳＢデバイスは、ＭＭＣフレームを受信したかどうかを判定する（ステップＳ１００２）。例えば、ＤＮ＿ＥＰＲｄｙ送出要求部１２８８は、当該ワイヤレスＵＳＢデバイスにより、ＭＭＣフレームが受信されたかどうかを判定する。
【０１３８】
ＭＭＣフレームを受信したと判定した場合（ステップＳ１００２）、ワイヤレスＵＳＢデバイスは、前回のＭＭＣフレーム受信からの時間間隔を配列に格納する（ステップＳ１００４）。例えば、ＤＮ＿ＥＰＲｄｙ送出要求部１２８８は、ＭＭＣフレームを受信したと判定した場合、前回のＭＭＣフレーム受信からの時間間隔を配列に格納する。
【０１３９】
一方、ＭＭＣフレームを受信したと判定されない場合（ステップＳ１００２：ＮＯ）、ステップＳ１００２に戻る。ＭＭＣフレームを受信するまで、ＭＭＣフレームを受信したかどうかを判定する処理が行われる。
【０１４０】
ワイヤレスＵＳＢデバイスは、平均値の算出に必要となる数分のＭＭＣフレームを受信したかどうかを判定する（ステップＳ１００６）。該平均値の算出に必要となる数は予め設定される。例えば、ＤＮ＿ＥＰＲｄｙ送出要求部１２８８は、平均値の算出に必要となる数分のＭＭＣフレームを受信したかどうかを判定する。
【０１４１】
平均値の算出に必要となる数分のＭＭＣフレームを受信したと判定された場合（ステップＳ１００６：ＹＥＳ）、ワイヤレスＵＳＢデバイスは、ＭＭＣフレームの受信時間間隔の平均値を算出する（ステップＳ１００８）。例えば、ＤＮ＿ＥＰＲｄｙ送出要求部１２８８は、平均値の算出に必要となる数分のＭＭＣフレームを受信したと判定した場合、ＭＭＣフレームの受信時間間隔の平均値を算出する。
【０１４２】
一方、平均値の算出に必要となる数分のＭＭＣフレームを受信したと判定されない場合（ステップＳ１００６：ＮＯ）、ステップＳ１００２に戻る。ＭＭＣフレームを受信したかどうかを判定する処理が実施される。
【０１４３】
図１１は、本実施例に従ったＭＭＣフレームの受信間隔の平均値を算出した後、ＭＭＣフレーム受信時間間隔のしきい値を用いて、ＤＮ＿ＥＰＲｄｙ送信要求を先行させる処理をオンにするかどうかを判定する処理の一例を示す。
【０１４４】
ワイヤレスＵＳＢデバイスは、ＭＭＣフレーム受信時間間隔の平均値が１０００［μｓｅｃ］よりも短いかどうか、換言すれば１０００［μｓｅｃ］未満であるかどうかを判定する（ステップＳ１１０２）。例えば、ＤＮ＿ＥＰＲｄｙ送出要求部１２８８は、ＭＭＣフレーム受信時間間隔の平均値が１０００［μｓｅｃ］未満であるかどうかを判定する。
【０１４５】
ＭＭＣフレーム受信時間間隔の平均値が１０００［μｓｅｃ］よりも短いと判定された場合（ステップＳ１１０２：ＹＥＳ）、ワイヤレスＵＳＢデバイスは、ドライバ１１０からデータを受け取ったかどうかを判定する（ステップＳ１１０４）。例えば、ＤＮ＿ＥＰＲｄｙ送出要求部１２８８は、ＭＭＣフレーム受信時間間隔の平均値が１０００［μｓｅｃ］よりも短いと判定した場合、ドライバ１１０からデータを受け取ったかどうかを判定する。
【０１４６】
ドライバ１１０からデータを受け取ったと判定された場合（ステップＳ１１０４：ＹＥＳ）、ワイヤレスＵＳＢデバイスは、次のＷＤＮＴＳＣＴＡ＿ＩＥ受信推定時間が２００［μｓｅｃ］後以内かどうかを判定する（ステップＳ１１０６）。例えば、ＤＮ＿ＥＰＲｄｙ送出要求部１２８８は、ドライバ１１０からデータを受け取ったと判定された場合、次のＷＤＮＴＳＣＴＡ＿ＩＥ受信推定時間が２００［μｓｅｃ］後以内かどうかを判定する。
【０１４７】
次のＷＤＮＴＳＣＴＡ＿ＩＥ受信推定時間が２００［μｓｅｃ］後以内であると判定した場合（ステップＳ１１０６：ＹＥＳ）、ワイヤレスＵＳＢデバイスは、ＤＮ＿ＥＰＲｄｙ送信要求を先行させる処理をオフに設定する（ステップＳ１１０８）。例えば、ＤＮ＿ＥＰＲｄｙ送出要求部１２８８は、次のＷＤＮＴＳＣＴＡ＿ＩＥ受信推定時間が２００［μｓｅｃ］後以内であると判定した場合、ＤＮ＿ＥＰＲｄｙ送信要求を先行させる処理をオフに設定する。
【０１４８】
一方、ステップＳ１１０２によりＭＭＣフレーム受信時間間隔の平均値が１０００［μｓｅｃ］よりも長いと判定された場合、換言すれば１０００［μｓｅｃ］以上であると判定された場合（ステップＳ１１０２：ＮＯ）、ステップＳ１１０４によりドライバ１１０からデータを受け取ったと判定されない場合（ステップＳ１１０４：ＮＯ）、及びステップＳ１１０６により次のＷＤＮＴＳＣＴＡ＿ＩＥ受信推定時間が２００［μｓｅｃ］後以内であると判定されない場合（ステップＳ１１０６：ＮＯ）、終了する。例えば、ＤＮ＿ＥＰＲｄｙ送出要求部１２８８は、ＭＭＣフレーム受信時間間隔の平均値が１０００［μｓｅｃ］よりも長いと判定した場合、ドライバ１１０からデータを受け取ったと判定しない場合、及び次のＷＤＮＴＳＣＴＡ＿ＩＥ受信推定時間が２００［μｓｅｃ］後以内であると判定しない場合のいずれかに該当する場合、終了する。換言すれば、ＤＮ＿ＥＰＲｄｙ送信要求を先行させる処理をオフに設定しないで、オンのまま処理を継続する。
【０１４９】
ＤＮ＿ＥＰＲｄｙ送信要求を先行して出す機能を有効にするか否かを決定する処理は、本変形例に示されるように、ファームウェア１２８内部で、自動的に行うようにしてもよいし、オペレーションパネルなどに設定インタフェースを搭載することにより、ユーザーがこの機能を有効にするか否かを設定できるようにしてもよい。
【０１５０】
＜第２の実施例＞
＜無線通信装置＞
本実施例に従った無線通信装置について説明する。本無線通信装置１００は、図２を参照して説明した無線通信装置と同様のブロック図により説明される。
【０１５１】
以下、上述した実施例及び変形例と異なる部分について説明する。
【０１５２】
上述した無線通信装置では、ワイヤレスＵＳＢデバイス内のファームウェア１２８が、ドライバ１１０からデータを渡された場合に、ＭＡＣハードウェア部１３０に対するＤＮ＿ＥＰＲｄｙ送信要求を先行して出力する。
【０１５３】
本無線通信装置１００では、ファームウェア層と、その上位層であるドライバとを連携させることにより、より早くＭＡＣハードウェアへのＤＮ＿ＥＰＲｄｙ送出要求を出すようにする。
【０１５４】
上述した実施例では、ドライバ１１０からファームウェア１２８へのデータ転送は、ＤＭＡＣ＿Ａ１３４による、バスインタフェースを介したＤＭＡ転送により行われる。ＤＭＡ転送の際には、ＤＭＡＣ＿Ａ１３４における、ＭＡＣハードウェア用の送信キュー１２４４へのＤＭＡ転送と同様に、事前にＤＭＡディスクリプタテーブルを作成しておく必要がある。該バスインタフェースを介したＤＭＡ転送をおこなうためのＤＭＡディスクリプタテーブルの生成は、ドライバ１１０により行われる。
【０１５５】
図１２は、上述した実施例に従ったＤＮ＿ＥＰＲｄｙ送出要求を出す際の処理を示す。
【０１５６】
ＤＭＡディスクリプタテーブルの生成はドライバ１１０により行われる。ドライバ１１０は、該ドライバの上位層であるアプリケーション層１１２２からデータを渡されてから、ＤＭＡディスクリプタテーブルを生成し、ＤＭＡ転送要求を行う。該処理に要する時間により、ドライバ１１０がアプリケーション層１１２２からデータを渡されてから、ファームウェア１２８が、バスインタフェース割り込みが発生したことを検出するまでの遅延となる。
【０１５７】
本無線通信装置１００は、該遅延を低減することを目的とする。具体的には、サブＣＰＵ１２２への割り込み要因の一つとして、ＤＮ＿ＥＰＲｄｙ送出要求割り込みを新たに追加する。
【０１５８】
図１３は、本実施例に従ったＤＮ＿ＥＰＲｄｙ送出要求を出す際の処理を示す。
【０１５９】
ドライバ１１０は、該ドライバ１１０の上位層であるアプリケーション層１１２２からデータを渡されると、ＭＡＣハードウェア部１３０内の、ＤＮ＿ＥＰＲｄｙ送出要求レジスタ１３０２に設定する。ＤＮ＿ＥＰＲｄｙ送出要求レジスタに設定することより、サブＣＰＵ１２２にＤＮ＿ＥＰＲｄｙ送出要求割り込みが発生する。ファームウェア１２８は、割り込み要因を調べる。ファームウェア１２８は、ＤＮ＿ＥＰＲｄｙ送出要求割り込みであった場合には、ＭＡＣハードウェア部１３０に対してＤＮ＿ＥＰＲｄｙ送出要求を行う。
【０１６０】
本無線通信装置１００では、ＤＮ＿ＥＰＲｄｙ送出要求割り込みを用いることにより、上述した実施例及び変形例に示されるＭＡＣハードウェア部１３０へのＤＮ＿ＥＰＲｄｙ送出要求を先行して送出する度合いを、さらに大きくできる。
【０１６１】
＜無線通信装置の動作＞
ドライバ１１０と連携させてＤＮ＿ＥＰＲｄｙ送出要求を先行させる技術を用いた場合の処理のシーケンスについて説明する。
【０１６２】
図１４は、上述した実施例に従ったＤＮ＿ＥＰＲｄｙ送出要求を先行させる技術を用いない場合の処理のシーケンスを示す。
【０１６３】
図１４において、ステップＳ１４０２−Ｓ１４２０は、図７を参照して説明したシーケンスにおけるステップＳ７０６−Ｓ７２４と同様である。
【０１６４】
ワイヤレスＵＳＢホストからのＷＤＮＴＳＣＴＡ＿ＩＥを含むＭＭＣフレームが送出される（ステップＳ１４２２、Ｓ１４２４）。
【０１６５】
ワイヤレスＵＳＢデバイスは、ドライバ１１０から新たなデータを渡されると、サブＣＰＵ１２２は、バスインタフェース割り込みが発生したことを検出する。サブＣＰＵ１２２によりバスインタフェース割り込みが発生したことが検出されると、ファームウェア１２８は、該バスインタフェース割り込みが発生した時点でＮＡＫフラグがＴＲＵＥ、ＦＡＬＳＥのどちらに設定されているかを調べる。ＮＡＫフラグがＴＲＵＥに設定されていると判定した場合、ファームウェア１２８のＤＮ＿ＥＰＲｄｙ送信要求部１２８８は、ＮＡＫ状態が解消されたことを示す、ＤＮ＿ＥＰＲｄｙフレームの送信要求をＭＡＣハードウェア部１３０に対して行う（ステップＳ１４２６）。
【０１６６】
ワイヤレスＵＳＢデバイスは、ＷＤＮＴＳＣＴＡ＿ＩＥを含むＭＭＣフレームを受信する（ステップＳ１４２８）。
【０１６７】
ワイヤレスＵＳＢデバイスは、ワイヤレスＵＳＢホストに対して、ＤＮ＿ＥＰＲｄｙフレームの送信を行う（ステップＳ１４３０）。例えば、ＤＮ＿ＥＰＲｄｙ送信要求部１２８８は、ＤＮ＿ＥＰＲｄｙフレームの送信要求を行った後、ファームウェア１２８に設定されるべきＮＡＫフラグをＦＡＬＳＥに設定する。送信データフレーム生成部１２８２は、データフレーム送信準備を開始する。
【０１６８】
ワイヤレスＵＳＢデバイスでは、データフレーム送信準備が完了し、ＤＭＡ転送完了割り込みが発生する（ステップＳ１４３２）。ＤＭＡ＿Ｂ用ディスクリプタテーブル生成部１２８６は、ＤＭＡ＿Ｂ用ディスクリプタテーブル１２４２を作成する。サブＣＰＵ１２２は、ＭＡＣハードウェア部１３０の、ＤＭＡＣ＿Ｂ用ＤＭＡ転送開始要求レジスタに設定する。ＤＭＡＣ＿Ｂ１３６は、ＤＭＡ転送を終了すると、サブＣＰＵ１２２に対して、ＤＭＡ転送完了割り込みを発生させる。
【０１６９】
ワイヤレスＵＳＢホストは、ＷＤＴＣＴＡ＿ＩＥを含むＭＭＣフレームを送出する（ステップＳ１４３４）。
【０１７０】
該ＭＭＣフレームに対して、ワイヤレスＵＳＢデバイスはデータフレームを送出する（ステップＳ１４３６。
【０１７１】
図１５は、本実施例に従ったＤＮ＿ＥＰＲｄｙ送出要求を先行させる技術を用いる場合の処理のシーケンスを示す。
【０１７２】
図１５において、ステップＳ１５０２−Ｓ１５２２は、図１４を参照して説明したシーケンスにおけるステップＳ１４０２−Ｓ１４２２と同様である。
【０１７３】
ワイヤレスＵＳＢデバイスでは、ドライバ１１０から新たなデータを渡されると、ドライバ１１０は、ＭＡＣハードウェア部１３０にＤＮ＿ＥＰＲｄｙ送出要求レジスタに設定する（ステップＳ１５２４）。
【０１７４】
ワイヤレスＵＳＢホストからＷＤＮＴＳＣＴＡ＿ＩＥを含むＭＭＣフレームが送出される（ステップＳ１５２６）。
【０１７５】
ワイヤレスＵＳＢデバイスは、ワイヤレスＵＳＢホストに対して、ＤＮ＿ＥＰＲｄｙフレームの送信を行う（ステップＳ１５２８）。例えば、ＤＮ＿ＥＰＲｄｙ送信要求部１２８８は、ＤＮ＿ＥＰＲｄｙフレームの送信要求を行った後、ファームウェア１２８に設定されるべきＮＡＫフラグをＦＡＬＳＥに設定する。
【０１７６】
ワイヤレスＵＳＢデバイスでは、データフレーム送信準備が完了し、ＤＭＡ転送完了割り込みが発生する（ステップＳ１５３０）。ＤＭＡ＿Ｂ用ディスクリプタテーブル生成部１２８６は、ＤＭＡ＿Ｂ用ディスクリプタテーブル１２４２を作成する。サブＣＰＵ１２２は、ＭＡＣハードウェア部１３０の、ＤＭＡＣ＿Ｂ用ＤＭＡ転送開始要求レジスタに設定する。ＤＭＡＣ＿Ｂ１３６は、ＤＭＡ転送を終了すると、サブＣＰＵ１２２に対して、ＤＭＡ転送完了割り込みを発生させる。
【０１７７】
ワイヤレスＵＳＢホストは、ＷＤＴＣＴＡ＿ＩＥを含むＭＭＣフレームを送出する（ステップＳ１５３２）。
【０１７８】
該ＭＭＣフレームに対して、ワイヤレスＵＳＢデバイスはデータフレームを送出する（ステップＳ１５３４）。
【０１７９】
上述した実施例及び変形例では、一例としてワイヤレスＵＳＢについて説明したが、他の無線通信装置との間で、当該無線通信装置から該他の無線通信装置へのデータ通信であることを示す情報、当該無線通信装置から該他の無線通信装置への状態通知であることを示す情報、当該無線通信装置に送信すべきデータが無いことを示す情報、当該無線通信装置がデータを送信できる状態になったことを示す情報を送受信する処理を含むプロトコルに従った無線通信装置に適用できる。例えば、時分割多元接続方式を用いた無線通信技術を搭載する通信装置への応用が考えられる。
【０１８０】
また、上述した実施例及び変形例では、一例として無線通信について説明したが、他の通信装置との間で、当該通信装置から該他の通信装置へのデータ通信であることを示す情報、当該通信装置から該他の通信装置への状態通知であることを示す情報、当該通信装置に送信すべきデータが無いことを示す情報、当該通信装置がデータを送信できる状態になったことを示す情報を送受信する処理を含むプロトコルに従った通信装置に適用できる。換言すれば、無線通信に限らず有線通信にも適用できる。
【０１８１】
本実施例及び変形例によれば、通信相手となる通信装置からの送信指示に従って、該通信相手となる通信装置に送信すべきデータフレームを送信する通信装置が提供される。
【０１８２】
該通信装置は、
前記通信相手となる通信装置に送信すべきデータフレームを生成する送信データフレーム生成部としての、データフレーム生成部と、
前記データフレームを送信できる状態になったことを示す送信可能状態通知情報を生成するＤＮ＿ＥＰＲｄｙ送信要求部としての、送信可能状態通知情報生成部と、
該送信可能状態通知情報生成部により生成された送信可能状態通知情報を送信するデータフレーム送出部としての送信部と
を有し、
前記送信部は、前記データフレーム生成部によりデータフレームの生成が完了する前に、前記通信相手となる通信装置に、前記送信可能状態通知情報を送信する。
【０１８３】
通信相手となる機器（通信装置）からの送信指示情報に基づいて、データフレームおよびデータフレームを送信できる状態になったことを示す情報の送信をおこなう通信方式を用いる。データフレームを送信できる状態になったことを示す送信可能状態通知情報を送信するための処理を実施した後に、送信データフレームの生成を完了する。このため、当該通信装置が、送信一時停止状態からデータ送信再開までの時間を短縮することができる。該短縮の結果、システム全体としてのスループットを向上させることができる。
【０１８４】
さらに、
当該通信装置は、ワイヤレスＵＳＢ仕様に従う。
【０１８５】
当該通信装置が搭載する通信プロトコルとしてワイヤレスＵＳＢを適用するため、最大データ伝送レート４８０[Mbps]で通信を行う場合に、システム全体としてのスループット向上の度合いを大きくできる。
【０１８６】
さらに、
前記通信相手となる通信装置との間でデータ伝送を行うＭＡＣハードウェア部としての、ハードウェアと、
該ハードウェアを制御するドライバと
を有し、
前記送信部は、前記ドライバから前記ハードウェアへの割り込みをトリガとして、前記送信可能状態通知情報を送信する。
【０１８７】
データを送信できる状態になったことを示す送信可能状態通知情報を通信相手となる通信装置に対して送信するための処理を、ドライバからのバスインタフェース割り込みをトリガとして開始する。このため、データを送信できる状態になったことを示す情報を、誤ったタイミングで出してしまうことを抑制することができる。
【０１８８】
さらに、
前記通信相手となる通信装置から当該通信装置から前記通信相手となる通信装置へのデータ通信であることを示す情報を受信し、該情報に対して、前記通信相手となる通信装置に送信すべきデータフレームが無いことを示す否定応答を送信した場合に、該否定応答の送信間隔を記録するＤＮ＿ＥＰＲｄｙ送信要求部としての、送信間隔記録部
を有し、
前記送信部は、前記送信間隔記録部に記録された前記否定応答の送信間隔に基づいて、該送信間隔が所定のしきい値よりも長い場合に、前記データフレーム生成部によりデータフレームの生成が完了する前に、前記通信相手となる通信装置に、前記送信可能状態通知情報を送信する。
【０１８９】
送信すべきデータフレームが無い状態であることを示す情報を送出する時間間隔を記録し、該時間間隔に対するしきい値を設定し、比較することにより、該時間間隔が該しきい値よりも短い場合には、データを送信できる状態になったことを示す送信可能状態通知情報を通信相手となる通信装置に対して送信するための処理を先行しておこなう機能をオフにする。このため、ドライバからデータが渡されるタイミングのうち、効果を得ることができる場合に処理を行うことができる。
【０１９０】
さらに、
前記通信相手となる通信装置から送信されたＭＭＣ(Micro-scheduled Management Command)フレームに基づいて、該ＭＭＣフレームに含まれる当該通信装置の状態を示すデバイス通知情報要素又は当該通信装置から前記通信相手となる通信装置へのデータ通信に関する情報を示すデバイス送信情報要素が送信される時間間隔を記録するＤＮ＿ＥＰＲｄｙ送信要求部としての、送信間隔記録部
を有し、
前記送信部は、前記送信間隔記録部に記録された前記時間間隔に基づいて、前記データフレーム生成部によりデータフレームの生成が完了する前に、前記通信相手となる通信装置に、前記送信可能状態通知情報を送信するかどうかを判定する。
【０１９１】
ワイヤレスＵＳＢホストから受信したＭＭＣフレームを収集し、該ＭＭＣフレームの受信時間間隔を調べ、デバイス通知またはデバイス送信の情報要素を含むＭＭＣフレームが送出される時間間隔を算出する。該算出結果をもとに、データを送信できる状態になったことを示す送信可能状態通知情報をワイヤレスＵＳＢホストに対して送信するための処理を先行しておこなう機能を有効にするかどうかを決定する。このため、ドライバからデータが渡されるタイミングのうち、効果を得ることができる場合に処理を行うことができる。
【０１９２】
さらに、
前記送信間隔記録部により記録されるべき前記デバイス通知情報要素又は前記デバイス送信情報要素が送信される時間間隔に基づいて、デバイス通知情報要素又は前記デバイス送信情報要素の送信時間を推定するＤＮ＿ＥＰＲｄｙ送信要求部としての、送信時間推定部
を有し、
前記送信部は、前記送信時間推定部により推定された前記送信時間に基づいて、前記データフレーム生成部によりデータフレームの生成が完了する前に、前記通信相手となる通信装置に、前記送信可能状態通知情報を送信するかどうかを判定する。
【０１９３】
ワイヤレスＵＳＢホストから受信したＭＭＣフレームを収集し、該ＭＭＣフレームの受信時間間隔を調べ、次にデバイス通知又はデバイス送信の情報要素を含むＭＭＣフレームが送出される時間を推定する。該推定結果に基づいて、データを送信できる状態になったことを示す送信可能状態通知情報をワイヤレスＵＳＢホストに対して送信するための処理を先行しておこなう機能を有効にするかどうかを決定する。このため、ドライバからデータが渡されるタイミングのうち、効果を得ることができる場合に処理を行うことができる。
【０１９４】
さらに、
前記送信部に、前記データフレーム生成部によりデータフレームの生成が完了する前に、前記通信相手となる通信装置に前記送信可能状態通知情報を送信させるかどうかを設定するユーザインタフェース
を有する。
【０１９５】
データを送信できる状態になったことを示す送信可能状態通知情報を通信相手となる通信装置に対して送信するための処理を先行しておこなう機能を有効にするかどうかを、ユーザーが制御できる。このため、特にスループットの高いデータ伝送を必要としない場合には、この機能を無効にすることにより、ファームウェアにおける処理量を抑制することができる。
【０１９６】
さらに、
前記通信相手となる通信装置との間でデータ伝送を行うハードウェアと、
該ハードウェアを制御するドライバと
を有し、
前記ドライバは、前記ハードウェアに前記送信可能状態通知情報を送信させるための割り込みを行い、
送信部は、前記ドライバによる前記ハードウェアへの前記送信可能状態通知情報を送信させるための割り込みをトリガとして、前記送信可能状態通知情報を送信する。
【０１９７】
ドライバが、データフレームを送信できる状態になったことを示す送信可能状態通知情報を送信するための処理を実施し、該実施後、送信データフレームの生成を完了する処理を行うことを要求する情報を与える。このため、通信相手となる通信装置に対して送信するための処理を先行する処理を、ドライバにおけるＤＭＡディスクリプタテーブル生成処理の時間分、さらに早めることができる。
【０１９８】
本実施例及び変形例によれば、通信相手となる通信装置からの送信指示に従って、該通信相手となる通信装置に送信すべきデータフレームを送信する通信装置における通信方法が提供される。
【０１９９】
該通信方法は、
前記通信相手となる通信装置に送信すべきデータフレームを生成するデータフレーム生成ステップと、
前記データフレームを送信できる状態になったことを示す送信可能状態通知情報を生成する送信可能状態通知情報生成ステップと、
該送信可能状態通知情報生成ステップにより生成された送信可能状態通知情報を送信する送信ステップと
を有し、
前記送信ステップは、前記データフレーム生成ステップによりデータフレームの生成が完了する前に、前記通信相手となる通信装置に、前記送信可能状態通知情報を送信する。
【０２００】
以上、本発明は特定の実施例を参照しながら説明されてきたが、各実施例は単なる例示に過ぎず、当業者は様々な変形例、修正例、代替例、置換例等を理解するであろう。説明の便宜上、本発明の実施例に従った装置は機能的なブロック図を用いて説明されたが、そのような装置はハードウェアで、ソフトウエアで又はそれらの組み合わせで実現されてもよい。本発明は上記実施例に限定されず、本発明の精神から逸脱することなく、様々な変形例、修正例、代替例、置換例等が包含される。
【符号の説明】
【０２０１】
１００  無線通信装置
１０２  制御部
１０４  メインＣＰＵ(Central Processing Unit)
１０６  メモリ
１０６２  ＤＭＡＣ＿Ａ用ディスクリプタテーブル
１０８  オペレーティングシステム(OS: Operating System)
１１０  ドライバ
１１０２  ファンクションドライバ
１１０４  ＵＳＢバスドライバ
１１２  アプリケーションソフトウェア
１１２２  アプリケーション層
１１４  バスコントローラ
１２０  ターゲットコントローラ
１２２  サブＣＰＵ
１２４  メモリ
１２４２  ＤＭＡＣ＿Ｂ用ディスクリプタテーブル
１２４４  送信キュー
１２６  リアルタイムオペレーティングシステム(RTOS: Real Time Operating System)
１２８  ファームウェア
１２８２  送信データフレーム生成部
１２８４  データフレーム送出部
１２８６  ＤＭＡ＿Ｂ用ディスクリプタテーブル生成部
１２８８  ＤＮ＿ＥＰＲｄｙ送出要求部
１３０  ＭＡＣハードウェア部
１３０２  レジスタ
１３２  バスコントローラ
１３４  ＤＭＡＣ＿Ａ
１３６  ＤＭＡＣ＿Ｂ
１３８  ＰＨＹ部
１３８２  ベースバンド部
１３８４  ＲＦ部
１５０  アンテナ
１６０  バス
【先行技術文献】
【特許文献】
【０２０２】
【特許文献１】Wireless USB Specification Revision 1.0  May, 2005
【図１】
0005577769.tif 000002
【図２】
0005577769.tif 000003
【図３】
0005577769.tif 000004
【図４】
0005577769.tif 000005
【図５】
0005577769.tif 000006
【図６】
0005577769.tif 000007
【図７】
0005577769.tif 000008
【図８】
0005577769.tif 000009
【図９】
0005577769.tif 000010
【図１０】
0005577769.tif 000011
【図１１】
0005577769.tif 000012
【図１２】
0005577769.tif 000013
【図１３】
0005577769.tif 000014
【図１４】
0005577769.tif 000015
【図１５】
0005577769.tif 000016