次に、本発明を実施するための形態を、以下の実施例に基づき図面を参照しつつ説明する。
なお、実施例を説明するための全図において、同一機能を有するものは同一符号を用い、繰り返しの説明は省略する。
<第1の実施例>
<無線通信装置>
図2は、本実施例に従った無線通信装置100の一例を示す。本無線通信装置100には、ワイヤレスUSBデバイスが含まれる。本実施例では、一例として、無線通信装置100にワイヤレスUSBデバイスを適用した場合について説明する。
本無線通信装置100は、制御部102と、ターゲットコントローラ120とを有する。制御部102と、ターゲットコントローラ120との間は、バス160を介して接続される。
制御部102は、メインCPU104と、メモリ106と、オペレーティングシステム(OS: Operating System)108と、ドライバ110と、アプリケーションソフトウェア112と、バスコントローラ114とを有する。
メインCPU(Central Processing Unit)104は、メモリ106を用いてオペレーティングシステム108を実行させる。メインCPU104は、該オペレーティングシステム108上でドライバ110を実行させる。
メモリ106内には、バス160を介して、DMA(Direct Memory Access)転送を行うDMAC(Direct Memory Access Controller)_A用のDMAC_A用ディスクリプタテーブル1062を配置する。該DMAC_A用ディスクリプタテーブル1062には、DMA転送に関するデータサイズ、DMA転送元データ領域などの情報が格納される。
ドライバ110は、USBを用いた各機能を実現するためのファンクションドライバ1102と、USBプロトコルに基づいた通信を実現するためのUSBバスドライバ1104とを含む。該USBを用いた各機能には、プリンタ、スキャナ、ストレージなどの機能が含まれる。
ドライバ110は、バス160を介して制御部102とターゲットコントローラ120との間のデータの送受信を行う。該ドライバ110は、後述するMACハードウェア部130のレジスタに対して、値の読み書きを行う。MACハードウェア部130のレジスタに対して値の読み書きを行うことにより本無線通信装置100を制御する。
アプリケーションソフトウェア112は、ワイヤレスUSBホスト(図示無し)から送信されたデータの利用、ワイヤレスUSBホストへ送出すべきデータの生成を行う。
バスコントローラ114と、バスコントローラ132は、バスの制御を行う。
ターゲットコントローラ120は、サブCPU122と、メモリ124と、リアルタイムオペレーティングシステム(RTOS: Real Time Operating System)126と、ファームウェア128と、MACハードウェア部130と、バスコントローラ132と、DMAC_A134と、DMAC_B136と、PHY部138と、アンテナ150とを有する。
MACハードウェア部130は、PHY(Physical Layer)部138との間でデータフレームの受け渡しやデータフレームのフィルタリング等の処理を行う。
PHY部138は、周波数変換等の信号処理を行う。PHY部138内のベースバンド部1382は、電気信号とディジタルデータとの間で変換を行う。RF部1384は、電気信号の周波数と無線の電波の周波数との間で周波数変換を行う。アンテナ150は、電波の送受信を行う。
サブCPU122は、メモリ124を用いてリアルタイムオペレーティングシステム126を実行する。サブCPU122は、該リアルタイムオペレーティングシステム126上で、MACハードウェア部130の各部を制御するためのファームウェア128を実行させる。
ファームウェア128は、送信データフレーム生成部1282と、データフレーム送出部1284とを有する。
送信データフレーム生成部1282は、ドライバ110から受け取ったデータをもとに送信データフレームを生成する。データフレーム送出部1284は、該送信データフレーム生成部1282により生成されたデータフレームの送出を行う。
送信データフレーム生成部1282は、DMAC_B用のディスクリプタテーブルの生成を行うDMAC_B用ディスクリプタテーブル生成部1286と、DN_EPRdyフレームの送信要求を行うDN_EPRdy送信要求部1288を有する。
また、データフレーム送出部1284は、データフレームを送出する処理に加え、DN_EPRdy送信要求部1288により要求されたDN_EPRdyフレームを送出する処理を行う。
ファームウェア128を実行するサブCPU122は、MACハードウェア部130のレジスタ(図示無し)の設定や、制御部102との間のデータの送受信等を行う。
MACハードウェア部130はWiMedia MACの仕様に基づいた処理を実行する。PHY部138はWiMedia PHYの仕様に基づいた処理を実行する。また、MACハードウェア部130と、PHY部138との間の通信は、WiMedia MAC−PHYインタフェース仕様書によって規定されている。
<他の無線通信装置へデータを送信する際の処理>
本無線通信装置100が他の無線通信装置へデータを送信する際の無線通信装置100内の、各機能ブロックにおける処理の流れを示す。該他の無線通信装置には、ワイヤレスUSBホストが含まれる。
図3は、本無線通信装置100から他の無線通信装置方向にデータを送信する場合の、本無線通信装置100内の、各ブロックにおける処理の流れを示す。
アプリケーションソフトウェア112によりデータが生成される。該データは、ドライバ110を経由し、メモリ106に格納されたDMAC_A用ディスクリプタテーブル1062に含まれる情報に従って、ターゲットコントローラ120に転送される。
ターゲットコントローラ120では、ファームウェア128にて、データフレームが生成される。該データフレームは、MACハードウェア部130に渡され、PHY部138に入力される。PHY部138では、ベースバンド部1382によりデータフレームが電気信号に変換され、RF部1384により無線の電波信号に変換される。該電波信号は、アンテナ150を介して送出される。
ドライバ110からファームウェア128への、バス160を介したデータ転送は、DMA転送により行われる。該DMA転送は、DMAC_A134により行われる。
ドライバ110は、ファームウェア128に渡すデータを用意し、DMA転送における、データサイズ、DMA転送元データ領域などの情報を記したDMAC_A用ディスクリプタテーブル1062を作成する。ドライバ110は、ターゲットコントローラ120のMACハードウェア部130内のDMAC_A用DMA転送開始要求レジスタに設定する。DMAC_A用DMA転送開始要求レジスタに設定することにより、DMAC_A134が、DMAC_A用ディスクリプタテーブルの内容に従って、DMA転送を行うことができる。DMAC_A134はDMA転送を終了すると、ターゲットコントローラ120のサブCPU122に対して、バスインタフェース割り込みを発生させる。バスインタフェース割り込みの発生により、ファームウェア128は、メモリ124上のデータに基づいて、ワイヤレスUSB1.0仕様及びWiMedia MAC1.0仕様に規定されたデータフレームのフォーマットに従いデータフレームを生成する。
該データフレームは、MACハードウェア用の送信キュー1244へ、DMA転送によって転送される。該送信キュー1244は、メモリ124に含まれる。該DMA転送は、DMAC_B136により行われる。ファームウェア128は、DMAC_B用ディスクリプタテーブル1242を作成した後、MACハードウェア部130の、DMAC_B用DMA転送開始要求レジスタに設定する。DMAC_B用DMA転送開始要求レジスタに設定することによって、DMAC_B136が、DMAC_B用ディスクリプタテーブル1242の内容に従って、DMA転送をおこなう。DMAC_B136は、DMA転送を終了すると、サブCPU122に対して、DMA転送完了割り込みを発生させる。
送信キュー1244に格納されたデータフレームは、MACハードウェア部130によりワイヤレスUSBホストからのMMCフレームに含まれるWDTCTA_IEにて指定された時刻に送出できるように管理される。該データフレームは、ベースバンド部1382、RF部1384、及びアンテナ150を介して送出される。
MACハードウェア部130は、当該無線通信装置100がWDTCTA_IEを含むMMCフレームを受信した際に、該MMCフレームを受信した時点で、送信キュー1244にデータが格納されているかどうかを判定する。送信キュー1244にデータが格納されていない場合には、送信するデータが無いことを示すNAKフレームを送信する。送信キュー1244にデータが格納されている場合には、該データを送信する。
MACハードウェア部130は、NAKフレーム送信後、サブCPU122に対して、NAKフレーム送信完了割り込みを発生させる。該NAKフレーム送信完了割り込みによって、ファームウェア128は、該ファームウェア128に配置された、現在NAK状態にあるかどうかを示すNAKフラグをTRUEに設定する。
NAKフラグがTRUEに設定された後、DMA転送により、ドライバ110から次のデータを渡されると、サブCPU122に対してバスインタフェース割り込みが発生する。
<ファームウェアの処理>
サブCPU122に対してバスインタフェース割り込みが発生した際に、ファームウェア128により実行される処理について説明する。
図4は、従来におけるバスインタフェース割り込みが発生した際の処理を示すフローチャートである。
サブCPUに対してバスインタフェース割り込みが発生した場合には、ファームウェアは、前回バスインタフェース割り込みが発生した場合と同様に、ドライバからのデータをもとに、送信すべきデータフレームを生成する(ステップS402)。
ドライバは、DMAディスクリプタテーブルを作成する(ステップS404)。
ドライバは、DMA転送開始要求レジスタに設定する(ステップS406)。
サブCPUは、DMA転送完了割り込みの発生を検知する(ステップS408)。
ファームウェアは、DMA転送完了割り込みの発生を検知した時点でNAKフラグがTRUEであるかどうかを判定する(ステップS410)。
NAKフラグがTRUEであると判定した場合(ステップS410:YES)、ファームウェアは、MACハードウェア部に対して、NAK状態が解消されたことを示す、DN_EPRdyフレームの送信要求を行う(ステップS412)。
ファームウェアは、NAKフラグをFALSEに設定する(ステップS414)。
ステップS410において、NAKフラグがTRUEであると判定されない場合(ステップS410:NO)、換言すれば、FALSEであると判定された場合、終了する。
図5は、本無線通信装置100において、バスインタフェース割り込みが発生した際の処理を示すフローチャートである。
サブCPU122は、該サブCPU122に対してバスインタフェース割り込みが発生したかどうかを判定する(ステップS502)。
サブCPU122に対してバスインタフェース割り込みが発生したと判定された場合(ステップS502:YES)、ファームウェア128は、該バスインタフェース割り込みが発生した時点でNAKフラグがTRUE、FALSEのどちらに設定されているかを調べる(ステップS504)。一方、サブCPU122に対してバスインタフェース割り込みが発生したと判定されない場合(ステップS502:NO)、ステップS502に戻る。サブCPU122に対してバスインタフェース割り込みが発生したと判定されるまで、同様の判定処理を行う。
ステップS504によりNAKフラグがTRUEに設定されていると判定された場合(ステップS504:YES)、DN_EPRdy送信要求部1288は、NAK状態が解消されたことを示す、DN_EPRdyフレームの送信要求をMACハードウェア部130に対して行う(ステップS506)。
該DN_EPRdy送信要求部1288は、DN_EPRdyフレームの送信要求を行った後、ファームウェア128に設定されるべきNAKフラグをFALSEに設定する(ステップS508)。
ステップS508によりファームウェア128に設定されるべきNAKフラグがFALSEに設定された後、及びステップS504によりNAKフラグがTRUEに設定されていると判定されない場合、換言すればFALSEに設定されていると判定された場合(ステップS504:NO)、送信データフレーム生成部1282は、ドライバ110から受け取ったデータに基づいて、データフレームを生成する(ステップS510)。
DMA_B用ディスクリプタテーブル生成部1286は、DMA_B用ディスクリプタテーブル1242を作成する(ステップS512)。
サブCPU122は、MACハードウェア部130の、DMAC_B用DMA転送開始要求レジスタに設定する(ステップS514)。DMAC_B用DMA転送開始要求レジスタに設定することにより、DMAC_B136が、DMAC_B用ディスクリプタテーブル1242の内容に従って、DMA転送を行うことができる。DMAC_B136は、DMA転送を終了すると、サブCPU122に対して、DMA転送完了割り込みを発生させる。
サブCPU122は、DMA転送完了割り込みを検知する(ステップS516)。
<本無線通信装置と他の無線通信装置との間の処理シーケンス>
以下、従来技術の処理シーケンスのフローと、本実施例の処理シーケンスのフローとを示す。
以下、本無線通信装置を「ワイヤレスUSBデバイス」と呼び、他の無線通信装置を「ワイヤレスUSBホスト」と呼ぶ。
ワイヤレスUSBデバイスからワイヤレスUSBホスト方向のデータ通信(デバイス送信)であることを示すWDTCTA_IEを含むMMCフレームに対して、ワイヤレスUSBデバイスはデータフレームを送出する。該データフレームの送出後、ワイヤレスUSBデバイスからワイヤレスUSBホスト方向のデータ通信(デバイス送信)であることを示すWDTCTA_IEを含むMMCフレームに対して、ワイヤレスUSBデバイスはNAKフレーム送信する。NAKフレームを送信した後、ワイヤレスUSBデバイスからワイヤレスUSBホスト方向への状態通知(デバイス通知)であることを示すWDNTSCTA_IEを含むMMCフレームに対して、ワイヤレスUSBデバイスはDN_EPRdyを送信する。ワイヤレスUSBデバイスは、再度、ワイヤレスUSBホストからWDTCTA_IEを含むMMCフレームを受信する。該MMCフレームを受信した後、ワイヤレスUSBデバイスは、データフレームを送出する。以上の1サイクルにおける一連のフローと、該フローに要する処理時間を示す。
なお、ワイヤレスUSBホストにおける、WDTCTA_IEを含むMMCフレームを送出する間隔、WDNTSCTA_IEを含んだMMCフレームを送出する間隔は、ワイヤレスUSB1.0仕様に規定されていない。該WDTCTA_IEを含むMMCフレームを送出する間隔、該WDNTSCTA_IEを含んだMMCフレームを送出する間隔は、ワイヤレスUSBホストの実装に依って異なる。本実施例では、実際に、ワイヤレスUSBプロトコルアナライザを用いて、データフレームをキャプチャした結果、約1000μsecであったため、該WDTCTA_IEを含むMMCフレームを送出する間隔、該WDNTSCTA_IEを含んだMMCフレームを送出する間隔を1000μsecと仮定する。
また、NAKフレームを受信したワイヤレスUSBホストが、ワイヤレスUSBデバイスからワイヤレスUSBホスト方向への状態通知(デバイス通知)であることを示すWDNTSCTA_IEを送出するまでの時間についても同様に、データフレームをキャプチャした結果をもとに、1000μsecと仮定する。
また、WDTCTA_IEまたはWDNTSCTA_IEにより指定される、ワイヤレスUSBデバイスからのフレーム送信時間についても、データフレームをキャプチャした結果をもとに、30μsec後と仮定する。
また、ワイヤレスUSBデバイスがNAKフレームを送出するまでに、ワイヤレスUSBホストからのWDTCTA_IEを含むMMCフレームの送出と、該MMCフレームに対するワイヤレスUSBデバイスからのデータフレームの送出が、5回行われると仮定する。
ドライバ110から次のデータをDMA転送によって渡され、サブCPU122に対してバスインタフェース割り込みが発生した際の、ファームウェア128における処理に要する時間について説明する。
サブCPU122は、割り込み発生後、どのような割り込みであるかをチェックする。サブCPU122は、DMA転送完了を示すバスインタフェース割り込みであった場合には、ワイヤレスUSB1.0に基づいてデータフレームを生成し、DMAディスクリプタテーブルを作成し、DMA転送開始要求レジスタへ設定する。該データフレームを生成し、DMAディスクリプタテーブルを作成し、DMA転送開始要求レジスタへの設定を行う一連の処理は、サブCPU122上での命令で、約1000命令であると推測される。
また、ワイヤレスUSB1.0仕様には、一つのバスインタフェース割り込みに対して、複数のデータフレームを送出する、バースト転送について記載されている。該バースト転送では、一つのWDTCTA_IEに対してまとめて送信できるデータフレームの数、すなわち、バーストサイズは、最大で16フレームと規定されている。
サブCPU122の処理能力を表す単位として、一般的に、一秒間あたりに何百万命令を処理できるかを示すMIPS(Million Instructions Per Second)が用いられる。そして、現在、一般的な組み込み機器で使用されるサブCPU122は、約100MIPSのオーダーである。サブCPU122の処理能力が100MIPSである場合には、サブCPU122が、一つの命令を処理するための時間は、100MIPSの逆数となるので、10nsec(nsecは10のマイナス9乗秒)となる。そのため、上記の一連の処理を16フレームに対して行う場合の処理時間は、10nsec×1000×16=160μsecとなる。そこで、以下、該処理時間が160μsecであると仮定する。そして、この例では、NAKフレームを送出してから900μsec後に、ドライバ110から次のデータをDMA転送によって渡され、サブCPU122に対してバスインタフェース割り込みが発生するものとする。
<従来例>
図6は、従来の処理シーケンスのフローを示す。
ワイヤレスUSBホストからのWDTCTA_IEを含むMMCフレームの送出と、該MMCフレームに対するワイヤレスUSBデバイスからのデータフレームの送出が、5回行われる(ステップS602−ステップS620)。
ワイヤレスUSBホストからのWDTCTA_IEを含むMMCフレームが送出される(ステップS622)。
ワイヤレスUSBデバイスは、NAKフレームを送出する(ステップS624)。ドライバからの全データを送出済であるためである。
ワイヤレスUSBデバイスは、NAKフレーム送信してから900μsec後にドライバから新たなデータを渡されると、データフレームの送信準備を開始する(ステップS626)。データフレーム送信準備を開始する処理には、送信データフレームの生成、DMAディスクリプタテーブルの作成、DMA転送開始要求レジスタへの設定という一連の処理が含まれる。
NAKフレームを送信した後の70μsec後に、ワイヤレスUSBデバイスは、WDNTSCTA_IEを含むMMCフレームを受信する(ステップS628)。ワイヤレスUSBデバイスは、該MMCフレームにより指定される30μsec後までには、データフレーム送信準備が完了しないため、DN_EPRdyを送出することができない(ステップS630)。
ステップS626によりデータフレーム送信準備が開始されてから160μsec後に、データフレーム送信準備が完了し、DMA転送完了割り込みが発生し、MACハードウェア部に対してDN_EPRdy送出を要求する(ステップS632)。
ステップS628により、WDNTSCTA_IEを含むMMCフレーム受信してから1000μsec後に、再度WDNTSCTA_IEを含むMMCフレームを受信する(ステップS634)。
ワイヤレスUSBデバイスは、該MMCフレームにより指定される30μsec後に、DN_EPRdyを送出する(ステップS636)。
該DN_EPRdyを送信した後、ワイヤレスUSBデバイスは、970μsec後に、WDTCTA_IEを含むMMCフレーム受信する(ステップS638)。該MMCフレームに対し、ワイヤレスUSBデバイスは、該MMCフレームにより指定された30μsec後にデータフレームを送出する(ステップS640)。
図6に示される従来の処理シーケンスのフローでは、初めにWDTCTA_IEを含むMMCフレームに対してデータフレームを送出してから(ステップS620)、WDTCTA_IEを含むMMCフレームに対してNAKフレーム送信し(ステップS624)、WDNTSCTA_IEを含むMMCフレームに対して送信フレームが生成された場合にDN_EPRdyを送信し(ステップS636)、再度、WDTCTA_IEを含むMMCフレームに対してデータフレームを送出する(ステップS640)。初めにWDTCTA_IEを含むMMCフレームに対してデータフレームを送出してから(ステップS620)、再度、WDTCTA_IEを含むMMCフレームに対してデータフレームを送出する(ステップS640)までの1サイクルにおける一連の処理時間は、8000μsecと推定される。
<本無線通信装置における処理シーケンス>
図7は、本実施例に従った処理シーケンスのフローを示す。
ワイヤレスUSBホストからのWDTCTA_IEを含むMMCフレームの送出と、該MMCフレームに対するワイヤレスUSBデバイスからのデータフレームの送出が、5回行われる(ステップS702−ステップS720)。
ワイヤレスUSBホストからのWDTCTA_IEを含むMMCフレームが送出される(ステップS722)。
ワイヤレスUSBデバイスは、NAKフレームを送出する(ステップS724)。ドライバからの全データを送出済であるためである。
ワイヤレスUSBデバイスは、NAKフレームを送信してから(ステップS724)、900μsec後にドライバ110から新たなデータを渡されると、サブCPU122は、バスインタフェース割り込みが発生したことを検出する。サブCPU122によりバスインタフェース割り込みが発生したことが検出されると、ファームウェア128は、該バスインタフェース割り込みが発生した時点でNAKフラグがTRUE、FALSEのどちらに設定されているかを調べる。NAKフラグがTRUEに設定されていると判定した場合、ファームウェア128のDN_EPRdy送信要求部1288は、NAK状態が解消されたことを示す、DN_EPRdyフレームの送信要求をMACハードウェア部130に対して行う。該DN_EPRdy送信要求部1288は、DN_EPRdyフレームの送信要求を行った後、ファームウェア128に設定されるべきNAKフラグをFALSEに設定する。送信データフレーム生成部1282は、データフレーム送信準備を開始する。
該データフレーム送信準備が開始されてから70μsec後に、ワイヤレスUSBデバイスは、WDNTSCTA_IEを含むMMCフレームを受信する(ステップS728)。
ワイヤレスUSBデバイスは、該MMCフレームにより指定される30μsec後までに、DN_EPRdyを送出する(ステップS730)。
DN_EPRdyを送出してから60μsec後に、データフレーム送信準備が完了し、DMA転送完了割り込みが発生する(ステップS732)。DMA_B用ディスクリプタテーブル生成部1286は、DMA_B用ディスクリプタテーブル1242を作成する。サブCPU122は、MACハードウェア部130の、DMAC_B用DMA転送開始要求レジスタに設定する。DMAC_B136は、DMA転送を終了すると、サブCPU122に対して、DMA転送完了割り込みを発生させる。
該DMA転送完了割り込みが発生してから910μsec後に、ワイヤレスUSBデバイスは、WDTCTA_IEを含むMMCフレーム受信する(ステップS734)。ワイヤレスUSBデバイスは、該MMCフレームにより指定された30μsec後にデータフレームを送出する(ステップS736)。
図7に示される処理シーケンスのフローでは、WDTCTA_IEを含むMMCフレームに対するデータフレームを送出してから(ステップS720)、WDTCTA_IEを含むMMCフレームに対してNAKフレーム送信し(ステップS724)、WDNTSCTA_IEを含むMMCフレームに対してDN_EPRdyを送信し(ステップS730)、再度、WDTCTA_IEを含むMMCフレームに対してデータフレームを送出する(ステップS736)。
WDTCTA_IEを含むMMCフレームに対するデータフレームを送出(ステップS720)してからWDTCTA_IEを含むMMCフレームに対してデータフレームを送出する(ステップS736)までの1サイクルにおける一連の処理時間は、7000μsecと推定される。図7に示される処理シーケンスのフローでは、図6に示される従来の処理のシーケンスのフローに比べて1000μsec程度、送信すべきデータフレームを生成してから、該データフレームを送信するまでの待機時間を短縮することができる。
NAKフレーム送信後、ドライバ110から次のデータが渡された場合に、MACハードウェア部130へのDN_EPRdy送信要求を先行しておこなった後、送信データフレームの生成、DMAディスクリプタテーブルの作成、DMA転送開始要求レジスタへの設定という一連の処理からなる、データフレーム送信準備を開始することにより、次のデータフレームを実際に送出するまでに要する時間を短縮するという効果が得られる。
<変形例>
上述した実施例では、図7に示されるように、WDNTSCTA_IEを含むMMCフレームの受信(ステップS728)からWDTCTA_IEを含むMMCフレームの受信(ステップS734)までの時間間隔が1000μsecである場合を示した。しかし、該時間間隔については、ワイヤレスUSB1.0仕様に規定されてはいないため、ワイヤレスUSBホストの実装に依る。そのため、該時間間隔が短い場合には、本実施例に対して期待すべき効果が得られないこともありうる。
図8は、本実施例に従った処理シーケンスのフローを示す。
具体例として、ワイヤレスUSBデバイスがWDNTSCTA_IEを含むMMCフレームを受信(ステップS806)してからWDTCTA_IEを含むMMCフレームを受信(ステップS810)するまでの時間間隔が100μsecである場合について説明する。図8において、時間軸のスケールは、図6、及び図7の時間軸スケールとは異なる。
また、図8では、NAKフレーム送信(ステップS802)以前の処理は、図7のNAKフレーム送信以前の処理(ステップS702−ステップS724)と同様である。また、図7では、NAKフレームを送信してから(ステップS724)、ドライバ110から新たなデータを渡される(ステップS726)までの時間を900μsecと仮定したが、図8では960μsecと仮定した。
ワイヤレスUSBデバイスでは、NAKフレーム送信(ステップS802)してから960μsec後に、ターゲットコントローラ120は、ドライバ110から新たなデータを渡される。サブCPU122は、MACハードウェア部130に対してDN_EPRdy送出を要求する(ステップS804)。具体的には、サブCPU122は、バスインタフェース割り込みが発生したことを検出する。サブCPU122によりバスインタフェース割り込みが発生したことが検出されると、ファームウェア128は、該バスインタフェース割り込みが発生した時点でNAKフラグがTRUE、FALSEのどちらに設定されているかを調べる。NAKフラグがTRUEに設定されていると判定した場合、ファームウェア128のDN_EPRdy送信要求部1288は、NAK状態が解消されたことを示す、DN_EPRdyフレームの送信要求をMACハードウェア部130に対して行う。
DN_EPRdy送出を要求してから10μsec後に、ワイヤレスUSBデバイスは、WDNTSCTA_IEを含むMMCフレームを受信する(ステップS806)。該MMCフレームにより指定される30μsec後までに、ワイヤレスUSBデバイスは、DN_EPRdyを送出する(ステップS808)。
ワイヤレスUSBデバイスによりDN_EPRdyが送出されてから70μsec後に、ワイヤレスUSBホストは、WDTCTA_IEを含むMMCフレームを送信する(ステップS810)。
ワイヤレスUSBデバイスは、該MMCフレームを受信するが、実際には、まだデータフレーム送信準備を完了していない。従って、ワイヤレスUSBデバイスは、データフレームを送出することができない。すなわち、ワイヤレスUSBデバイスは、再度NAKフレームを送信せざるを得ない(ステップS812)。
ワイヤレスUSBデバイスは、データフレーム送信準備を完了し、DMA転送完了割り込みを検出する(ステップS814)。
ワイヤレスUSBホストは、WDNTSCTA_IEを含むMMCフレームを送信する(ステップS816)。
再度NAKフレームを送信せざるを得ない場合(ステップS812)には、ワイヤレスUSBデバイスは、DN_EPRdyフレームを再度送出する必要が生じる。該DN_EPRdyフレームの送出後、MACハードウェア部130へのDN_EPRdy送信要求を先行して行う場合には、NAKフレームとDN_EPRdyフレームとを、交互に送出することになる。NAKフレームとDN_EPRdyフレームとが交互に送出される結果、データフレームの送信ができなくなることがある。
<本変形例に従った無線通信装置の動作>
NAKフレームとDN_EPRdyフレームとが交互に送出される結果、データフレームの送信ができなくなることに対して、以下に示される処理を行うようにしてもよい。
図9は、本変形例に従った無線通信装置の処理を示すフローチャートである。図9は、NAKフレーム送信間隔しきい値を用いて、DN_EPRdy送信要求を先行するかどうかを判定する。
ワイヤレスUSBデバイスは、NAKフレームを送出したかどうかを判定する(ステップS902)。
NAKフレームを送出したと判定した場合、当該ワイヤレスUSBデバイスは、前回のNAKフレームを送出してからの時間間隔を算出する(ステップS904)。例えば、DN_EPRdy送出要求部1288は、前回のNAKフレームを送出してからの時間間隔を算出する。
ステップS904により算出されたNAKフレームを送出してからの時間間隔が、しきい値よりも短いかどうか、換言すればしきい値未満であるかどうかを判定する(ステップS906)。例えば、DN_EPRdy送出要求部1288は、ステップS904により算出されたNAKフレームを送出してからの時間間隔がしきい値よりも短いかどうかを判定する。
ステップS904により算出されたNAKフレームを送出してからの時間間隔がしきい値よりも短い、換言すればしきい値未満と判定された場合(ステップS906:YES)、当該ワイヤレスUSBデバイスは、DN_EPRdy送信要求を先行する処理をオフに設定する(ステップS908)。例えば、DN_EPRdy送出要求部1288は、ステップS904により算出されたNAKフレームを送出してからの時間間隔がしきい値よりも短いと判定した場合、DN_EPRdy送信要求を先行する処理をオフに設定する。
一方、ステップS902によりNAKフレームを送出すべきであると判定されない場合(ステップS902:NO)、及びステップS906によりNAKフレームを送出してからの時間間隔がしきい値よりも短いと判定されない場合、換言すればNAKフレームを送出してからの時間間隔がしきい値以上であると判定された場合(ステップS906:NO)、終了する。
上述した変形例によれば、NAKフレームを送出してからの時間間隔のしきい値を設定する。NAKフレームを送出してからの時間間隔を記録する。該記録されたNAKフレームを送出した時間間隔と、該しきい値とを比較する。該時間間隔がしきい値未満である場合にはMACハードウェアに対するDN_EPRdy送信要求を先行する機能をオフにし、該時間間隔がしきい値以上である場合にはMACハードウェアに対するDN_EPRdy送信要求を先行する機能をオンにする。
また、本変形例において、受信したWDNTSCTA_IEを含むMMCフレーム、及びWDTCTA_IEを含むMMCフレームの時間間隔を、ファームウェア128内部の配列に格納するようにしてもよい。該ファームウェア128内部の配列に格納された時間間隔の数が予め設定された数に達した場合、該時間間隔の平均値を算出する。該平均値をもとに、ワイヤレスUSBホストの、WDNTSCTA_IE及びWDTCTA_IEを含むMMCフレームが送出される時間間隔や、ドライバ110から次のデータが渡された場合に、あと何μsec後にWDNTSCTA_IEが送られてくるかを推定する。該推定結果に基づいて、MACハードウェア部130に対するDN_EPRdy送信要求を先行して出すべきかどうかを判定する。
具体的な例としては、WDNTSCTA_IE及びWDTCTA_IEを含むMMCフレームが送出される時間間隔が1000μsec以上であるかどうか、ドライバ110から次のデータが渡された場合に、次にWDNTSCTA_IEが送出されると推定されるまでの時間が、200μsec以上であるかどうか、という二つの判定条件を設定する。該二つの判定条件のうちいずれかの判定条件を満たしていれば、MACハードウェア部130に対するDN_EPRdy送信要求を先行して出すことによる効果が得られると判断する。効果が得られると判断した場合、DN_EPRdy送信要求を先行して出す機能を有効にする。
図10は、本変形例に従ったMMCフレームの受信間隔の平均値を算出する処理の一例を示す。
ワイヤレスUSBデバイスは、MMCフレームを受信したかどうかを判定する(ステップS1002)。例えば、DN_EPRdy送出要求部1288は、当該ワイヤレスUSBデバイスにより、MMCフレームが受信されたかどうかを判定する。
MMCフレームを受信したと判定した場合(ステップS1002)、ワイヤレスUSBデバイスは、前回のMMCフレーム受信からの時間間隔を配列に格納する(ステップS1004)。例えば、DN_EPRdy送出要求部1288は、MMCフレームを受信したと判定した場合、前回のMMCフレーム受信からの時間間隔を配列に格納する。
一方、MMCフレームを受信したと判定されない場合(ステップS1002:NO)、ステップS1002に戻る。MMCフレームを受信するまで、MMCフレームを受信したかどうかを判定する処理が行われる。
ワイヤレスUSBデバイスは、平均値の算出に必要となる数分のMMCフレームを受信したかどうかを判定する(ステップS1006)。該平均値の算出に必要となる数は予め設定される。例えば、DN_EPRdy送出要求部1288は、平均値の算出に必要となる数分のMMCフレームを受信したかどうかを判定する。
平均値の算出に必要となる数分のMMCフレームを受信したと判定された場合(ステップS1006:YES)、ワイヤレスUSBデバイスは、MMCフレームの受信時間間隔の平均値を算出する(ステップS1008)。例えば、DN_EPRdy送出要求部1288は、平均値の算出に必要となる数分のMMCフレームを受信したと判定した場合、MMCフレームの受信時間間隔の平均値を算出する。
一方、平均値の算出に必要となる数分のMMCフレームを受信したと判定されない場合(ステップS1006:NO)、ステップS1002に戻る。MMCフレームを受信したかどうかを判定する処理が実施される。
図11は、本実施例に従ったMMCフレームの受信間隔の平均値を算出した後、MMCフレーム受信時間間隔のしきい値を用いて、DN_EPRdy送信要求を先行させる処理をオンにするかどうかを判定する処理の一例を示す。
ワイヤレスUSBデバイスは、MMCフレーム受信時間間隔の平均値が1000[μsec]よりも短いかどうか、換言すれば1000[μsec]未満であるかどうかを判定する(ステップS1102)。例えば、DN_EPRdy送出要求部1288は、MMCフレーム受信時間間隔の平均値が1000[μsec]未満であるかどうかを判定する。
MMCフレーム受信時間間隔の平均値が1000[μsec]よりも短いと判定された場合(ステップS1102:YES)、ワイヤレスUSBデバイスは、ドライバ110からデータを受け取ったかどうかを判定する(ステップS1104)。例えば、DN_EPRdy送出要求部1288は、MMCフレーム受信時間間隔の平均値が1000[μsec]よりも短いと判定した場合、ドライバ110からデータを受け取ったかどうかを判定する。
ドライバ110からデータを受け取ったと判定された場合(ステップS1104:YES)、ワイヤレスUSBデバイスは、次のWDNTSCTA_IE受信推定時間が200[μsec]後以内かどうかを判定する(ステップS1106)。例えば、DN_EPRdy送出要求部1288は、ドライバ110からデータを受け取ったと判定された場合、次のWDNTSCTA_IE受信推定時間が200[μsec]後以内かどうかを判定する。
次のWDNTSCTA_IE受信推定時間が200[μsec]後以内であると判定した場合(ステップS1106:YES)、ワイヤレスUSBデバイスは、DN_EPRdy送信要求を先行させる処理をオフに設定する(ステップS1108)。例えば、DN_EPRdy送出要求部1288は、次のWDNTSCTA_IE受信推定時間が200[μsec]後以内であると判定した場合、DN_EPRdy送信要求を先行させる処理をオフに設定する。
一方、ステップS1102によりMMCフレーム受信時間間隔の平均値が1000[μsec]よりも長いと判定された場合、換言すれば1000[μsec]以上であると判定された場合(ステップS1102:NO)、ステップS1104によりドライバ110からデータを受け取ったと判定されない場合(ステップS1104:NO)、及びステップS1106により次のWDNTSCTA_IE受信推定時間が200[μsec]後以内であると判定されない場合(ステップS1106:NO)、終了する。例えば、DN_EPRdy送出要求部1288は、MMCフレーム受信時間間隔の平均値が1000[μsec]よりも長いと判定した場合、ドライバ110からデータを受け取ったと判定しない場合、及び次のWDNTSCTA_IE受信推定時間が200[μsec]後以内であると判定しない場合のいずれかに該当する場合、終了する。換言すれば、DN_EPRdy送信要求を先行させる処理をオフに設定しないで、オンのまま処理を継続する。
DN_EPRdy送信要求を先行して出す機能を有効にするか否かを決定する処理は、本変形例に示されるように、ファームウェア128内部で、自動的に行うようにしてもよいし、オペレーションパネルなどに設定インタフェースを搭載することにより、ユーザーがこの機能を有効にするか否かを設定できるようにしてもよい。
<第2の実施例>
<無線通信装置>
本実施例に従った無線通信装置について説明する。本無線通信装置100は、図2を参照して説明した無線通信装置と同様のブロック図により説明される。
以下、上述した実施例及び変形例と異なる部分について説明する。
上述した無線通信装置では、ワイヤレスUSBデバイス内のファームウェア128が、ドライバ110からデータを渡された場合に、MACハードウェア部130に対するDN_EPRdy送信要求を先行して出力する。
本無線通信装置100では、ファームウェア層と、その上位層であるドライバとを連携させることにより、より早くMACハードウェアへのDN_EPRdy送出要求を出すようにする。
上述した実施例では、ドライバ110からファームウェア128へのデータ転送は、DMAC_A134による、バスインタフェースを介したDMA転送により行われる。DMA転送の際には、DMAC_A134における、MACハードウェア用の送信キュー1244へのDMA転送と同様に、事前にDMAディスクリプタテーブルを作成しておく必要がある。該バスインタフェースを介したDMA転送をおこなうためのDMAディスクリプタテーブルの生成は、ドライバ110により行われる。
図12は、上述した実施例に従ったDN_EPRdy送出要求を出す際の処理を示す。
DMAディスクリプタテーブルの生成はドライバ110により行われる。ドライバ110は、該ドライバの上位層であるアプリケーション層1122からデータを渡されてから、DMAディスクリプタテーブルを生成し、DMA転送要求を行う。該処理に要する時間により、ドライバ110がアプリケーション層1122からデータを渡されてから、ファームウェア128が、バスインタフェース割り込みが発生したことを検出するまでの遅延となる。
本無線通信装置100は、該遅延を低減することを目的とする。具体的には、サブCPU122への割り込み要因の一つとして、DN_EPRdy送出要求割り込みを新たに追加する。
図13は、本実施例に従ったDN_EPRdy送出要求を出す際の処理を示す。
ドライバ110は、該ドライバ110の上位層であるアプリケーション層1122からデータを渡されると、MACハードウェア部130内の、DN_EPRdy送出要求レジスタ1302に設定する。DN_EPRdy送出要求レジスタに設定することより、サブCPU122にDN_EPRdy送出要求割り込みが発生する。ファームウェア128は、割り込み要因を調べる。ファームウェア128は、DN_EPRdy送出要求割り込みであった場合には、MACハードウェア部130に対してDN_EPRdy送出要求を行う。
本無線通信装置100では、DN_EPRdy送出要求割り込みを用いることにより、上述した実施例及び変形例に示されるMACハードウェア部130へのDN_EPRdy送出要求を先行して送出する度合いを、さらに大きくできる。
<無線通信装置の動作>
ドライバ110と連携させてDN_EPRdy送出要求を先行させる技術を用いた場合の処理のシーケンスについて説明する。
図14は、上述した実施例に従ったDN_EPRdy送出要求を先行させる技術を用いない場合の処理のシーケンスを示す。
図14において、ステップS1402−S1420は、図7を参照して説明したシーケンスにおけるステップS706−S724と同様である。
ワイヤレスUSBホストからのWDNTSCTA_IEを含むMMCフレームが送出される(ステップS1422、S1424)。
ワイヤレスUSBデバイスは、ドライバ110から新たなデータを渡されると、サブCPU122は、バスインタフェース割り込みが発生したことを検出する。サブCPU122によりバスインタフェース割り込みが発生したことが検出されると、ファームウェア128は、該バスインタフェース割り込みが発生した時点でNAKフラグがTRUE、FALSEのどちらに設定されているかを調べる。NAKフラグがTRUEに設定されていると判定した場合、ファームウェア128のDN_EPRdy送信要求部1288は、NAK状態が解消されたことを示す、DN_EPRdyフレームの送信要求をMACハードウェア部130に対して行う(ステップS1426)。
ワイヤレスUSBデバイスは、WDNTSCTA_IEを含むMMCフレームを受信する(ステップS1428)。
ワイヤレスUSBデバイスは、ワイヤレスUSBホストに対して、DN_EPRdyフレームの送信を行う(ステップS1430)。例えば、DN_EPRdy送信要求部1288は、DN_EPRdyフレームの送信要求を行った後、ファームウェア128に設定されるべきNAKフラグをFALSEに設定する。送信データフレーム生成部1282は、データフレーム送信準備を開始する。
ワイヤレスUSBデバイスでは、データフレーム送信準備が完了し、DMA転送完了割り込みが発生する(ステップS1432)。DMA_B用ディスクリプタテーブル生成部1286は、DMA_B用ディスクリプタテーブル1242を作成する。サブCPU122は、MACハードウェア部130の、DMAC_B用DMA転送開始要求レジスタに設定する。DMAC_B136は、DMA転送を終了すると、サブCPU122に対して、DMA転送完了割り込みを発生させる。
ワイヤレスUSBホストは、WDTCTA_IEを含むMMCフレームを送出する(ステップS1434)。
該MMCフレームに対して、ワイヤレスUSBデバイスはデータフレームを送出する(ステップS1436。
図15は、本実施例に従ったDN_EPRdy送出要求を先行させる技術を用いる場合の処理のシーケンスを示す。
図15において、ステップS1502−S1522は、図14を参照して説明したシーケンスにおけるステップS1402−S1422と同様である。
ワイヤレスUSBデバイスでは、ドライバ110から新たなデータを渡されると、ドライバ110は、MACハードウェア部130にDN_EPRdy送出要求レジスタに設定する(ステップS1524)。
ワイヤレスUSBホストからWDNTSCTA_IEを含むMMCフレームが送出される(ステップS1526)。
ワイヤレスUSBデバイスは、ワイヤレスUSBホストに対して、DN_EPRdyフレームの送信を行う(ステップS1528)。例えば、DN_EPRdy送信要求部1288は、DN_EPRdyフレームの送信要求を行った後、ファームウェア128に設定されるべきNAKフラグをFALSEに設定する。
ワイヤレスUSBデバイスでは、データフレーム送信準備が完了し、DMA転送完了割り込みが発生する(ステップS1530)。DMA_B用ディスクリプタテーブル生成部1286は、DMA_B用ディスクリプタテーブル1242を作成する。サブCPU122は、MACハードウェア部130の、DMAC_B用DMA転送開始要求レジスタに設定する。DMAC_B136は、DMA転送を終了すると、サブCPU122に対して、DMA転送完了割り込みを発生させる。
ワイヤレスUSBホストは、WDTCTA_IEを含むMMCフレームを送出する(ステップS1532)。
該MMCフレームに対して、ワイヤレスUSBデバイスはデータフレームを送出する(ステップS1534)。
上述した実施例及び変形例では、一例としてワイヤレスUSBについて説明したが、他の無線通信装置との間で、当該無線通信装置から該他の無線通信装置へのデータ通信であることを示す情報、当該無線通信装置から該他の無線通信装置への状態通知であることを示す情報、当該無線通信装置に送信すべきデータが無いことを示す情報、当該無線通信装置がデータを送信できる状態になったことを示す情報を送受信する処理を含むプロトコルに従った無線通信装置に適用できる。例えば、時分割多元接続方式を用いた無線通信技術を搭載する通信装置への応用が考えられる。
また、上述した実施例及び変形例では、一例として無線通信について説明したが、他の通信装置との間で、当該通信装置から該他の通信装置へのデータ通信であることを示す情報、当該通信装置から該他の通信装置への状態通知であることを示す情報、当該通信装置に送信すべきデータが無いことを示す情報、当該通信装置がデータを送信できる状態になったことを示す情報を送受信する処理を含むプロトコルに従った通信装置に適用できる。換言すれば、無線通信に限らず有線通信にも適用できる。
本実施例及び変形例によれば、通信相手となる通信装置からの送信指示に従って、該通信相手となる通信装置に送信すべきデータフレームを送信する通信装置が提供される。
該通信装置は、
前記通信相手となる通信装置に送信すべきデータフレームを生成する送信データフレーム生成部としての、データフレーム生成部と、
前記データフレームを送信できる状態になったことを示す送信可能状態通知情報を生成するDN_EPRdy送信要求部としての、送信可能状態通知情報生成部と、
該送信可能状態通知情報生成部により生成された送信可能状態通知情報を送信するデータフレーム送出部としての送信部と
を有し、
前記送信部は、前記データフレーム生成部によりデータフレームの生成が完了する前に、前記通信相手となる通信装置に、前記送信可能状態通知情報を送信する。
通信相手となる機器(通信装置)からの送信指示情報に基づいて、データフレームおよびデータフレームを送信できる状態になったことを示す情報の送信をおこなう通信方式を用いる。データフレームを送信できる状態になったことを示す送信可能状態通知情報を送信するための処理を実施した後に、送信データフレームの生成を完了する。このため、当該通信装置が、送信一時停止状態からデータ送信再開までの時間を短縮することができる。該短縮の結果、システム全体としてのスループットを向上させることができる。
さらに、
当該通信装置は、ワイヤレスUSB仕様に従う。
当該通信装置が搭載する通信プロトコルとしてワイヤレスUSBを適用するため、最大データ伝送レート480[Mbps]で通信を行う場合に、システム全体としてのスループット向上の度合いを大きくできる。
さらに、
前記通信相手となる通信装置との間でデータ伝送を行うMACハードウェア部としての、ハードウェアと、
該ハードウェアを制御するドライバと
を有し、
前記送信部は、前記ドライバから前記ハードウェアへの割り込みをトリガとして、前記送信可能状態通知情報を送信する。
データを送信できる状態になったことを示す送信可能状態通知情報を通信相手となる通信装置に対して送信するための処理を、ドライバからのバスインタフェース割り込みをトリガとして開始する。このため、データを送信できる状態になったことを示す情報を、誤ったタイミングで出してしまうことを抑制することができる。
さらに、
前記通信相手となる通信装置から当該通信装置から前記通信相手となる通信装置へのデータ通信であることを示す情報を受信し、該情報に対して、前記通信相手となる通信装置に送信すべきデータフレームが無いことを示す否定応答を送信した場合に、該否定応答の送信間隔を記録するDN_EPRdy送信要求部としての、送信間隔記録部
を有し、
前記送信部は、前記送信間隔記録部に記録された前記否定応答の送信間隔に基づいて、該送信間隔が所定のしきい値よりも長い場合に、前記データフレーム生成部によりデータフレームの生成が完了する前に、前記通信相手となる通信装置に、前記送信可能状態通知情報を送信する。
送信すべきデータフレームが無い状態であることを示す情報を送出する時間間隔を記録し、該時間間隔に対するしきい値を設定し、比較することにより、該時間間隔が該しきい値よりも短い場合には、データを送信できる状態になったことを示す送信可能状態通知情報を通信相手となる通信装置に対して送信するための処理を先行しておこなう機能をオフにする。このため、ドライバからデータが渡されるタイミングのうち、効果を得ることができる場合に処理を行うことができる。
さらに、
前記通信相手となる通信装置から送信されたMMC(Micro-scheduled Management Command)フレームに基づいて、該MMCフレームに含まれる当該通信装置の状態を示すデバイス通知情報要素又は当該通信装置から前記通信相手となる通信装置へのデータ通信に関する情報を示すデバイス送信情報要素が送信される時間間隔を記録するDN_EPRdy送信要求部としての、送信間隔記録部
を有し、
前記送信部は、前記送信間隔記録部に記録された前記時間間隔に基づいて、前記データフレーム生成部によりデータフレームの生成が完了する前に、前記通信相手となる通信装置に、前記送信可能状態通知情報を送信するかどうかを判定する。
ワイヤレスUSBホストから受信したMMCフレームを収集し、該MMCフレームの受信時間間隔を調べ、デバイス通知またはデバイス送信の情報要素を含むMMCフレームが送出される時間間隔を算出する。該算出結果をもとに、データを送信できる状態になったことを示す送信可能状態通知情報をワイヤレスUSBホストに対して送信するための処理を先行しておこなう機能を有効にするかどうかを決定する。このため、ドライバからデータが渡されるタイミングのうち、効果を得ることができる場合に処理を行うことができる。
さらに、
前記送信間隔記録部により記録されるべき前記デバイス通知情報要素又は前記デバイス送信情報要素が送信される時間間隔に基づいて、デバイス通知情報要素又は前記デバイス送信情報要素の送信時間を推定するDN_EPRdy送信要求部としての、送信時間推定部
を有し、
前記送信部は、前記送信時間推定部により推定された前記送信時間に基づいて、前記データフレーム生成部によりデータフレームの生成が完了する前に、前記通信相手となる通信装置に、前記送信可能状態通知情報を送信するかどうかを判定する。
ワイヤレスUSBホストから受信したMMCフレームを収集し、該MMCフレームの受信時間間隔を調べ、次にデバイス通知又はデバイス送信の情報要素を含むMMCフレームが送出される時間を推定する。該推定結果に基づいて、データを送信できる状態になったことを示す送信可能状態通知情報をワイヤレスUSBホストに対して送信するための処理を先行しておこなう機能を有効にするかどうかを決定する。このため、ドライバからデータが渡されるタイミングのうち、効果を得ることができる場合に処理を行うことができる。
さらに、
前記送信部に、前記データフレーム生成部によりデータフレームの生成が完了する前に、前記通信相手となる通信装置に前記送信可能状態通知情報を送信させるかどうかを設定するユーザインタフェース
を有する。
データを送信できる状態になったことを示す送信可能状態通知情報を通信相手となる通信装置に対して送信するための処理を先行しておこなう機能を有効にするかどうかを、ユーザーが制御できる。このため、特にスループットの高いデータ伝送を必要としない場合には、この機能を無効にすることにより、ファームウェアにおける処理量を抑制することができる。
さらに、
前記通信相手となる通信装置との間でデータ伝送を行うハードウェアと、
該ハードウェアを制御するドライバと
を有し、
前記ドライバは、前記ハードウェアに前記送信可能状態通知情報を送信させるための割り込みを行い、
送信部は、前記ドライバによる前記ハードウェアへの前記送信可能状態通知情報を送信させるための割り込みをトリガとして、前記送信可能状態通知情報を送信する。
ドライバが、データフレームを送信できる状態になったことを示す送信可能状態通知情報を送信するための処理を実施し、該実施後、送信データフレームの生成を完了する処理を行うことを要求する情報を与える。このため、通信相手となる通信装置に対して送信するための処理を先行する処理を、ドライバにおけるDMAディスクリプタテーブル生成処理の時間分、さらに早めることができる。
本実施例及び変形例によれば、通信相手となる通信装置からの送信指示に従って、該通信相手となる通信装置に送信すべきデータフレームを送信する通信装置における通信方法が提供される。
該通信方法は、
前記通信相手となる通信装置に送信すべきデータフレームを生成するデータフレーム生成ステップと、
前記データフレームを送信できる状態になったことを示す送信可能状態通知情報を生成する送信可能状態通知情報生成ステップと、
該送信可能状態通知情報生成ステップにより生成された送信可能状態通知情報を送信する送信ステップと
を有し、
前記送信ステップは、前記データフレーム生成ステップによりデータフレームの生成が完了する前に、前記通信相手となる通信装置に、前記送信可能状態通知情報を送信する。
以上、本発明は特定の実施例を参照しながら説明されてきたが、各実施例は単なる例示に過ぎず、当業者は様々な変形例、修正例、代替例、置換例等を理解するであろう。説明の便宜上、本発明の実施例に従った装置は機能的なブロック図を用いて説明されたが、そのような装置はハードウェアで、ソフトウエアで又はそれらの組み合わせで実現されてもよい。本発明は上記実施例に限定されず、本発明の精神から逸脱することなく、様々な変形例、修正例、代替例、置換例等が包含される。