(57)【要約】【課題】バッファでの同一ブロックの保持時間の短縮、又はブロック再送の高速化を通し、ホストとの間の実質的なブロック転送時間を短縮し、それにより高速ネットワーク等に容易に対応し、かつデータ転送について高い信頼性を維持するデータ転送装置を提供する。【解決手段】無線インタフェースカード１０Ａでは、無線モジュール１が外部ネットワークからパケットＰを受信し、パケットバッファ１ａへ蓄積する。受信バッファ制御部２Ａはパケットバッファ１ａ内のパケットＰからデータを一ブロックＢＲずつ分離し、受信バッファ２ａへ転送する。転送バッファ制御部３ＡはそのブロックＢＲを受信バッファ２ａから転送バッファ３ａへ転送し、更に転送バッファ３ａからホストＨへ送出する。それにより、再送用ブロックを転送バッファ３ａに保持し、受信バッファ２ａにはパケットバッファ１ａから次のブロックを直ちに転送する。【選択図】　　　　図１
2004056348.tif 000002
【特許請求の範囲】
【請求項１】
（Ａ）　（ａ）　パケットバッファを含み、（ｂ）　外部から伝送されたパケットを受信し、前記パケットバッファへ一時記憶するための伝送データ受信部；
（Ｂ）　（ａ）　ホストとの間のデータ通信単位であるブロック、と実質的に等しいサイズを持つ受信バッファを含み、（ｂ）　前記パケットバッファへ一時記憶された前記パケットを前記ブロックごとに分割し、前記受信バッファへ転送するための受信バッファ制御部；及び、
（Ｃ）　（ａ）　前記ブロックと実質的に等しいサイズを持つ副バッファを含み、（ｂ）前記ブロックを前記受信バッファから前記副バッファへ転送するための副バッファ制御部；
を有し、
（Ｄ）　前記ホストからブロック送出命令を受信するとき、前記受信バッファから前記副バッファへ未送ブロックを転送し、かつ前記受信バッファ又は前記副バッファのいずれかから前記ホストへその未送ブロックを送出し；
（Ｅ）　前記ホストからブロック再送命令を受信するとき、前記副バッファから前記ホストへ送出済ブロックを再送し；
（Ｆ）　前記ブロックの一つを前記受信バッファから前記副バッファへ転送し終えた時と実質上同時に、次の前記ブロックを前記パケットバッファから前記受信バッファへ転送し始める；
データ転送装置。
【請求項２】
前記ブロック送出命令の受信時、前記未送ブロックを前記受信バッファから前記副バッファへ転送し、更に前記副バッファから前記ホストへ送出する、
請求項１記載のデータ転送装置。
【請求項３】
前記ブロック送出命令の受信時、前記未送ブロックを前記受信バッファから前記副バッファへ転送し、同時にその未送ブロックを前記受信バッファから前記ホストへ送出する、
請求項１記載のデータ転送装置。
【請求項４】
前記ホストから読み出し命令を受信し、その宛先アドレスが、（ａ）　前記受信バッファに対応するとき、前記読み出し命令を前記ブロック送出命令とみなし、（ｂ）　前記副バッファに対応するとき、前記読み出し命令を前記ブロック再送命令とみなす、
請求項１記載のデータ転送装置。
【請求項５】
前記ホストから読み出し命令を受信するとき、その宛先アドレスを示すデータの特定ビットに基づき、前記読み出し命令を前記ブロック送出命令又は前記ブロック再送命令のいずれかとして識別する、
請求項１記載のデータ転送装置。
【請求項６】
（Ａ）　パケットバッファを含み、外部から伝送されたパケットを受信し、前記パケットを前記パケットバッファへ一時記憶するための伝送データ受信部；及び、
（Ｂ）　（ａ）　ホストとの間のデータ通信単位であるブロック、と実質的に等しいサイズを持つブロックバッファを含み、（ｂ）　前記パケットバッファへ一時記憶された前記パケットを前記ブロックごとに分割し、前記ブロックバッファへ転送し、（ｃ）　前記ホストから読み出し命令を受信するとき、その宛先アドレスに応じ前記ブロックバッファから、前記パケットの未送ブロックを前記ホストへ送出し、又は送出済ブロックを前記ホストへ再送するためのバッファ制御部；
を有するデータ転送装置。
【請求項７】
前記読み出し命令が特定の宛先アドレスを含むとき、前記読み出し命令を前記ブロック再送命令とみなす、
請求項６記載のデータ転送装置。
【請求項８】
前記読み出し命令の宛先アドレスを示すデータの特定ビットに基づき、前記読み出し命令を前記ブロック再送命令とみなす、
請求項６記載のデータ転送装置。
【請求項９】
（Ａ）　（ａ）　ホストとの間のデータ通信単位であるブロック、と実質的に等しいサイズを持つ送信バッファを含み、（ｂ）　前記ホストから書き込み命令と外部への送信対象ブロックとを受信するとき、その送信対象ブロックを前記送信バッファへ書き込み、（ｃ）　前記書き込み命令の宛先アドレスに応じ、前記送信バッファに保持された前記送信対象ブロックを、未送ブロック又は再送ブロックのいずれかとして識別するための送信バッファ制御部；及び、
（Ｂ）　（ａ）　パケットバッファを含み、（ｂ）　前記送信対象ブロックを前記送信バッファから前記パケットバッファへ転送し、（ｃ）　複数の前記送信対象ブロックから一つのパケットを構成し、前記パケットごとに外部へ送信するための伝送データ送信部；
を有するデータ転送装置。
【請求項１０】
前記書き込み命令が特定の宛先アドレスを含むとき、前記書き込み命令を前記ブロック再送通知とみなす、
請求項９記載のデータ転送装置。
【請求項１１】
前記書き込み命令の宛先アドレスを示すデータの特定ビットに基づき、前記書き込み命令を前記ブロック再送通知とみなす、
請求項９記載のデータ転送装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ホストと外部との間で無線等により伝送されるデータを中継するためのデータ転送装置に関する。
【０００２】
【従来の技術】
パーソナルコンピュータ、携帯電話、携帯情報端末（ＰＤＡ）等の情報処理機器、及びディジタルテレビ等の情報家電では、ＬＡＮ、インターネット、又はディジタル放送等を通し伝送される映像音声データを、リアルタイムにかつスムーズに処理できることが、特に重要である。従って、情報処理機器等の本体（ホスト）とネットワーク等との間のインタフェースとして機能する装置（以下、データ転送装置という）には、高速でかつスムーズなデータ転送能力が求められる。
【０００３】
ネットワーク等、特に無線ＬＡＮでは、データ伝送速度がホストのデータ処理速度より一般にかなり小さい。更に、ネットワーク等での伝送データ形態（例えば、フォーマット及び伝送単位）は、ホスト内部でのデータ形態とは一般に異なる。
データ転送装置は内部にバッファを備える。ホスト又はネットワーク等の一方からデータが入力されるとき、その入力データはバッファへ一時記憶される。バッファ内のデータは、送出先であるホスト又はネットワーク等の他方に適したデータ形態へ変換され、その送出先に適したデータ転送速度で送出される。こうして、データ転送装置はホストとネットワーク等との間で、それぞれのデータ処理速度及びデータ形態の相違を調整し、スムーズなデータ交換を実現する。
【０００４】
データ転送装置には、様々な機種のホスト間で汎用のものがある。汎用型装置には、特にカード形状の小型のもの（以下、インタフェースカードという）がある。インタフェースカードは小型であるので、主に携帯用情報処理機器での使用に有利である。
インタフェースカードには、例えば無線モジュールを含むもの（以下、無線インタフェースカードという）がある。無線インタフェースカードはホストと外部の無線ＬＡＮ等との間で無線によるデータ交換を実現する。
図１１は、ホストＨと外部の無線ＬＡＮ等との間でのデータ交換時、従来の無線インタフェースカード１００内でのデータの流れを示すブロック図である。
無線インタフェースカード１００は、無線モジュール１、受信バッファ制御部２、送信バッファ制御部５、及びホストインタフェース４を有する。
【０００５】
無線モジュール１は、アンテナＡとパケットバッファ１ａとを含む。
無線モジュール１はアンテナＡを通し、外部の無線ＬＡＮ等から伝送データＰを受信し、逆にその無線ＬＡＮ等へ伝送データＰを送信する。伝送データＰは通常、パケットごとに伝送される。ここで、一パケット当たりのデータ量は固定でも可変でも良い。
パケットバッファ１ａは例えばＳＲＡＭであり、そのデータ容量は一パケット当たりの最大データ量より十分に大きい。アンテナＡを通し受信された伝送データは順次、パケットバッファ１ａへ蓄積される。
【０００６】
受信バッファ制御部２は受信バッファ２ａを含む。受信バッファ２ａは例えば先入れ先出し（ＦＩＦＯ）メモリであり、一定のデータ容量を持つ。その一定のデータ量は、ホストＨへのデータ転送単位（以下、ブロックという）に実質的に等しい。ここで、一ブロックのサイズは一パケットのサイズより一般に小さい。
伝送データＰの一パケットがパケットバッファ１ａへ蓄積されるとき、受信バッファ制御部２はそのパケットの先頭から一ブロックＢＲを分離し、受信バッファ２ａへ転送する。受信バッファ２ａが満杯になるとき、受信バッファ制御部２は割込信号Ｉｎｔを、ホストインタフェース４を通しホストＨへ送出する。それにより、ホストＨに対し、受信バッファからのデータ読み出しを要求する。
【０００７】
ホストインタフェース４は例えば、コマンド線ＣＭＤ、複数のデータ線ＤＡＴ、及びクロック線ＣＬＫを含むバス６でホストＨへ接続される。そのバス６を通し、ホストインタフェース４は、受信バッファ制御部２又は送信バッファ制御部５とホストＨとの間で交換される信号を、例えば次のように中継する。
受信バッファ制御部２により出力された割込信号Ｉｎｔ又はブロックＢＲは、データ線ＤＡＴを通しホストＨへ送出される。送信バッファ制御部５により出力されたビジー信号Ｂｓｙも同様に、データ線ＤＡＴを通しホストＨへ送出される。
更に、データ線ＤＡＴを通しホストＨから送信対象ブロックＢＴが受信されるとき、その送信対象ブロックＢＴは送信バッファ制御部５へ転送される。
【０００８】
ホストＨから発行されたコマンドは、コマンド線ＣＭＤを通し受信され、解読される。その解読を通し、コマンドが正常に受信されたか否か、が判断され、それぞれの判断結果を示すレスポンス（ＡＣＫ又はＮＡＫ）が、コマンド線ＣＭＤを通しホストＨへ返信される。
正常に受信されたコマンドが、特に読み出し命令Ｒ又は書き込み命令Ｗであるとき、そのコマンドはその宛先アドレスに応じ、受信バッファ制御部２又は送信バッファ制御部５へ通知される。
ホストＨとの間でのデータ通信時、ホストインタフェース４はクロック線ＣＬＫを通し、伝送クロックをホストＨから受信する。ホストＨとホストインタフェース４との間のデータ通信は、その伝送クロックに従い、同期通信で実行される。
【０００９】
送信バッファ制御部５は送信バッファ５ａを含む。送信バッファ５ａは例えばＦＩＦＯメモリであり、一ブロックに実質的に等しい一定のデータ容量を持つ。
ホストＨから送出された送信対象ブロックＢＴがホストインタフェース４により受信されるとき、送信バッファ制御部５はその送信対象ブロックＢＴを、送信バッファ５ａへ転送する。
送信バッファ５ａが満杯になるとき、送信バッファ制御部５は送信対象ブロックＢＴを、送信バッファ５ａから無線モジュール１のパケットバッファ１ａへ転送する。
無線モジュール１は、送信バッファ５ａから転送される送信対象ブロックＢＴをパケットバッファ１ａへ蓄積する。更に、そのように蓄積された複数の送信対象ブロックＢＴから一つのパケットＰを構成し、アンテナＡを通し、外部の無線ＬＡＮ等へ無線で送信する。
【００１０】
図１２は、無線インタフェースカード１００からホストＨへのブロック転送時、ホストインタフェース４とホストＨとの間で交換される信号のタイミング図である。図１２では、コマンド線ＣＭＤ及びデータ線ＤＡＴ上の信号に対し、矢印でそれぞれの伝送方向が示される。すなわち、左向きの矢印は無線インタフェースカード１００からホストＨへの伝送（以下、上り方向伝送という）を、右向きの矢印はその逆の伝送（以下、下り方向伝送という）を、それぞれ示す。
図１３は、同じブロック転送時、無線インタフェースカード１００でのデータの流れを模式的に示す図である。
【００１１】
図１２の（ａ）、及び図１３の（ａ）と（ｂ）は、ブロック転送の開始時に対応する。図１３の（ａ）に示されるように、無線モジュール１は、アンテナＡを通し受信した伝送データＰをパケットバッファ１ａへ順次蓄積する。伝送データＰの一つのパケットＰ１の全てがパケットバッファ１ａへ蓄積された時、受信バッファ制御部２は、図１３の（ｂ）に示されるように、その一パケットＰ１の先頭から一ブロックＢ１を分離し、受信バッファ２ａへ転送する。受信バッファ２ａが満杯になるとき、受信バッファ制御部２は、図１２の（ａ）に示されるように、ホストＨへの割込信号Ｉｎｔをアサートする。
【００１２】
割込信号Ｉｎｔは、例えば図１２の（ａ）に示されるように、データ線ＤＡＴの一本を通しホストＨへ伝送される。ホストＨは割込信号Ｉｎｔの受信時、コマンド線ＣＭＤを通し割込解除信号ＣＬＲをホストインタフェース４へ送出する。ホストインタフェース４は割込解除信号ＣＬＲに対するレスポンスｒをホストＨへ、コマンド線ＣＭＤを通し返信する。それと共に、受信バッファ制御部２へ割込解除信号ＣＬＲを通知する。それにより、受信バッファ制御部２は割込信号Ｉｎｔをネゲートする。こうして、受信バッファ２ａからホストＨへのブロック転送準備が完了する。
【００１３】
ホストＨはコマンド線ＣＭＤを通し、読み出し命令Ｒをホストインタフェース４へ送出する。ホストインタフェース４は、その読み出し命令Ｒに対するレスポンスｒを返信すると共に、受信バッファ制御部２へその読み出し命令Ｒを通知する。それにより、受信バッファ制御部２はデータ線ＤＡＴを通し、受信バッファ２ａに蓄積された一ブロックＢ１をホストＨへ送出する（図１３の（ｃ）参照）。
【００１４】
ホストＨは転送された一ブロックＢ１に対し、誤り検出を実行する。誤り検出の終了時、ホストＨは、図１２の（ａ）に示されるように、書き込み命令Ｗをホストインタフェース４へ送出し、ホストインタフェース４からのレスポンスｒを待つ。そのレスポンスｒがホストインタフェース４による書き込み命令Ｗの正常な受信を示すとき、ホストＨはその書き込み対象データとして誤り検出結果を、ホストインタフェース４へデータ線ＤＡＴを通し送出する。
受信バッファ制御部２はホストインタフェース４を通し、その誤り検出結果を受信する。更に、それに対する応答として、受信された誤り検出結果を示すデータについて行った誤り検出の結果ｃｒｃを、データ線ＤＡＴを通しホストＨへ返送する。
【００１５】
ホストＨから「符号誤りなし（ＯＫ）」を示す誤り検出結果が正常に受信されるとき、図１３の（ｄ）に示されるように、受信バッファ制御部２はパケットバッファ１ａから次のブロックＢ２を受信バッファ２ａへ転送する。その後、ホストＨから新たな読み出し命令Ｒを受信した時、受信バッファ２ａからホストＨへ、次のブロックＢ２を送出する。
【００１６】
ホストＨから「符号誤り有り（ＮＧ）」を示す誤り検出結果が正常に受信されるとき、図１２の（ｂ）及び図１３の（ｅ）に示されるように、受信バッファ制御部２は受信バッファ２ａに記憶された元のブロックＢ１をそのまま保持する。その後、ホストＨから新たな読み出し命令Ｒを受信した時、受信バッファ２ａからホストＨへ、同じブロックＢ１を再送する。
【００１７】
図１４は、無線インタフェースカード１００からホストＨへのブロック転送開始時、ホストＨ、ホストインタフェース４、受信バッファ制御部２、及び無線モジュール１の間で交換される信号のフロー図である。
ホストＨとホストインタフェース４との間でのデータ転送速度は、伝送クロックの周波数で実質上決定される。伝送クロック周波数はホストＨごとに異なり、更に、同じホストＨでもその動作状況に応じ変化する。しかし、受信バッファ２ａからホストＨへの一ブロック当たりの転送時間（以下、ブロック転送時間という）は、パケットバッファ１ａから受信バッファ２ａへのブロック転送時間と、一般に同程度として良い。
【００１８】
図１４に示されるブロック転送開始時での信号のフローは、ほぼブロック転送時間程度の期間ごとに、以下のようなステップＳ１〜Ｓ６に分割される。更に、それぞれのステップの間に割り込みステップＳｉｎｔとエラーチェックステップＳＷとが、以下のように挿入される。
＜ステップＳ１＞
パケットバッファ１ａに記憶されたパケットの先頭から最初のブロックＢ１が、無線モジュール１から受信バッファ制御部２へ転送される。
【００１９】
＜割り込みステップＳｉｎｔ＞
受信バッファ２ａが満杯になるとき、受信バッファ制御部２は割込信号Ｉｎｔをアサートする。ホストＨはその割込信号Ｉｎｔに応じ、割込解除信号ＣＬＲを受信バッファ制御部２へ返信する。ホストインタフェース４はその割込解除信号ＣＬＲを正常に受信したか否かをチェックし、その結果をレスポンスｒで返信する。正常に受信された割込解除信号ＣＬＲは、ホストインタフェース４により受信バッファ制御部２へ通知される。その通知時、受信バッファ制御部２は割込信号Ｉｎｔをネゲートする。
割り込みステップＳｉｎｔの時間は、割り込み時でのホストＨの動作状況に応じ変化する。
受信バッファ２ａでは、割込信号Ｉｎｔの送出から割込解除信号ＣＬＲの正常な受信まで、データがそのまま保持される。
【００２０】
＜ステップＳ２＞
割込解除信号ＣＬＲがホストインタフェース４により正常に受信された時、ホストＨは読み出し命令Ｒを受信バッファ制御部２へ送出する。ホストインタフェース４はその読み出し命令Ｒを正常に受信したか否かをチェックし、その結果をレスポンスｒで返信する。読み出し命令Ｒの正常な受信時、ホストインタフェース４はその読み出し命令Ｒを受信バッファ制御部２へ通知する。その通知時、受信バッファ制御部２は受信バッファ２ａからホストＨへ最初のブロックＢ１を送出する。
【００２１】
＜エラーチェックステップＳＷ＞
ホストＨは転送されたブロックＢ１の符号誤りをチェックする。更に、書き込み命令Ｗを発行し、その誤り検出結果の送出を通知する。ホストインタフェース４はその書き込み命令Ｗを正常に受信したか否かをチェックし、その結果をレスポンスｒで返信する。書き込み命令Ｗの正常な受信時、ホストインタフェース４はその書き込み命令Ｗを受信バッファ制御部２へ通知する。
【００２２】
書き込み命令Ｗがホストインタフェース４により正常に受信された時、ホストＨは誤り検出結果を受信バッファ制御部２へ送出する。誤り検出結果は書き込み命令Ｗの書き込み対象データとして、データ線ＤＡＴを通し伝送される。従って、ホストインタフェース４はその誤り検出結果を受信バッファ制御部２へ単に中継する。受信バッファ制御部２は、誤り検出結果を示すデータを受信し、その符号誤りをチェックする。更に、そのチェック結果ｃｒｃを、ホストインタフェース４とデータ線ＤＡＴとを通しホストＨへ返信する。
【００２３】
ホストＨからの誤り検出結果が正常に受信される時、受信バッファ制御部２はその誤り検出結果に応じ、次にホストＨへ送出すべきブロックを選択し、受信バッファ２ａに保持する。すなわち、第二のブロックＢ２をパケットバッファ１ａから受信バッファ２ａへ転送し、又は最初のブロックＢ１を受信バッファ２ａに維持する。
図１４では、ステップＳ２で転送された最初のブロックＢ１に対し、ホストＨによる誤り検出結果は「符号誤り有り（ＮＧ）」を示す。従って、受信バッファ制御部２は、最初のブロックＢ１をそのまま、受信バッファ２ａに維持する。
【００２４】
＜ステップＳ３＞
直前のエラーチェックステップＳＷで受信バッファ制御部２から返信されたチェック結果ｃｒｃが、誤り検出結果ＮＧの受信バッファ制御部２による正常な受信を示すとき、ホストＨは読み出し命令Ｒを受信バッファ制御部２へ送出する。その読み出し命令Ｒが正常に受信されたか否かを、ホストインタフェース４はチェックし、そのチェック結果をレスポンスｒで返信する。読み出し命令Ｒの正常な受信時、ホストインタフェース４はその読み出し命令Ｒを受信バッファ制御部２へ通知する。その通知時、受信バッファ制御部２は受信バッファ２ａからホストＨへ、最初のブロックＢ１を再送する。
【００２５】
＜エラーチェックステップＳＷ＞
ホストＨは先のエラーチェックステップＳＷと同様に、再送されたブロックＢ１に対し符号誤りをチェックし、その結果を受信バッファ制御部２へ通知する。受信バッファ制御部２はその誤り検出結果に応じ、上記と同様なブロック選択を実行する。
このように、受信バッファ制御部２からホストＨへ一ブロックが転送されるごとに、エラーチェックステップＳＷが実行される。
図１４では、再送されたブロックＢ１に対し、誤り検出結果は「符号誤りなし（ＯＫ）」を示す。
【００２６】
＜ステップＳ４＞
誤り検出結果ＯＫの正常な受信時、受信バッファ制御部２は、無線モジュール１のパケットバッファ１ａに記憶されたパケットから第二のブロックＢ２を分離し、受信バッファ２ａへ転送する。
＜ステップＳ５＞
直前のエラーチェックステップＳＷで受信バッファ制御部２から返信されたチェック結果ｃｒｃが、誤り検出結果ＯＫの受信バッファ制御部２による正常な受信を示すとき、ホストＨは読み出し命令Ｒを受信バッファ制御部２へ送出する。ホストインタフェース４はその読み出し命令Ｒを正常に受信したか否かをチェックし、その結果をレスポンスｒで返信する。読み出し命令Ｒの正常な受信時、ホストインタフェース４は読み出し命令Ｒを受信バッファ制御部２へ通知する。その通知時、受信バッファ制御部２は受信バッファ２ａからホストＨへ第二のブロックＢ２を送出する。
【００２７】
＜エラーチェックステップＳＷ＞
第二のブロックＢ２について、エラーチェックステップＳＷが上記のものと同様に実行される。
図１４では、第二のブロックＢ２に対し、誤り検出結果は「符号誤りなし（ＯＫ）」を示す。
＜ステップＳ６＞
誤り検出結果ＯＫの正常な受信時、受信バッファ制御部２は、無線モジュール１のパケットバッファ１ａに記憶されたパケットから第三のブロックＢ３を分離し、受信バッファ２ａへ転送する。
以下、同様なステップが繰り返される。
【００２８】
上記のように、従来の無線インタフェースカード１００は、パケットバッファ１ａと受信バッファ２ａとの二種類のバッファを利用し、外部の無線ＬＡＮ等からの伝送データＰのパケットをブロックごとに分割し、ホストＨへ転送する。それにより無線ＬＡＮ等での伝送データ形態（パケット）をホストＨでのデータ形態（ブロック）へ変換する。更に、ホストＨは伝送クロックの周波数の調整を通し、データ転送速度を制御する。こうして、ホストＨは無線ＬＡＮ等からデータをスムーズに受信する。
【００２９】
ホストＨは上記の通り、転送されたブロックの符号誤りの有無を、書き込み命令Ｗの書き込み対象データとして、受信バッファ制御部２へ通知する。通知された誤り検出結果が「符号誤り有り」を示すとき、受信バッファ制御部２は同じブロックを再送する。この再送処理により、データの欠落が防止される。こうして、従来の無線インタフェースカード１００は、ホストＨによるデータ受信について、信頼性を高く維持する。
【００３０】
図１５は、ホストＨから無線インタフェースカード１００へのブロック転送時、ホストインタフェース４とホストＨとの間で交換される信号のタイミング図である。図１５では図１２と同様に、コマンド線ＣＭＤ及びデータ線ＤＡＴ上の信号に対し、矢印でそれぞれの伝送方向が示される。すなわち、左向きの矢印は上り方向伝送を、右向きの矢印は下り方向伝送を、それぞれ示す。
【００３１】
図１５の（ａ）はブロック転送の開始時に対応する。ホストＨはコマンド線ＣＭＤを通し、書き込み命令Ｗをホストインタフェース４へ送出する。ホストインタフェース４はその書き込み命令Ｗに対し、レスポンスｒを送出する。
書き込み命令Ｗの正常な受信時、ホストインタフェース４は送信バッファ制御部５へその書き込み命令Ｗを通知する。一方、ホストＨは送信バッファ制御部５へ最初のブロックＢ１を、データ線ＤＡＴを通し送出する。ホストインタフェース４はそのブロックＢ１を送信バッファ制御部５へ中継する。送信バッファ制御部５は、受信したブロックＢ１を送信バッファ５ａに蓄積し、誤り検出を行う。更に、その誤り検出結果ｃｒｃをホストＨへ、ホストインタフェース４とデータ線ＤＡＴとを通し返送する。
【００３２】
送信バッファ制御部５は、誤り検出結果ｃｒｃの送出から所定時間、ビジー信号Ｂｓｙをアサートする。それにより、ホストＨによる書き込み命令Ｗの発行間隔、すなわち、送信バッファ５ａの更新間隔を所定の大きさ以上に維持し、上書きによる送信対象ブロックの損傷を防ぐ。
【００３３】
ホストＨは返送された誤り検出結果ｃｒｃから、最初のブロックＢ１について、転送エラーの有無を判断する。誤り検出結果ｃｒｃが転送成功を示すとき、ホストＨは新たな書き込み命令Ｗを、ビジー信号Ｂｓｙのネゲート時に、ホストインタフェース４へ送出する。ホストインタフェース４は、その書き込み命令Ｗに対しレスポンスｒを送出する。
書き込み命令Ｗの正常な受信時、ホストインタフェース４は送信バッファ制御部５へその書き込み命令Ｗを通知する。一方、ホストＨは送信バッファ制御部５へ、二番目のブロックＢ２を送出する。ホストインタフェース４は、その二番目のブロックＢ２を送信バッファ制御部５へ中継する。送信バッファ制御部５はそのブロックＢ２を送信バッファ５ａに蓄積し、誤り検出を行う。更に、その誤り検出結果ｃｒｃをホストＨへ返送し、所定時間ビジー信号Ｂｓｙをアサートする。
【００３４】
ホストＨは返送された誤り検出結果ｃｒｃから、二番目のブロックＢ２について、転送エラーの有無を判断する。誤り検出結果ｃｒｃが転送成功を示すとき、ホストＨは更に新たな書き込み命令Ｗを、ビジー信号Ｂｓｙのネゲート時に、ホストインタフェース４へ送出する。
以降、送信対象ブロックのそれぞれについて、上記と同様な操作が繰り返される。
【００３５】
送信バッファ制御部５からホストＨへ返送された誤り検出結果ｃｒｃが転送エラーを示すとき、次のようにブロックの再送が行われる。
図１５の（ｂ）は、最初のブロックＢ１の再送時のタイミング図である。
送信バッファ制御部５は上記の説明の通り、ホストＨから転送された最初のブロックＢ１に対し誤り検出を行う。その結果、符号誤りが検出されたとき、送信バッファ制御部５は受信済の最初のブロックＢ１を破棄する。更に、「符号誤り有り」を示す誤り検出結果ｃｒｃを、ホストＨへ返送する。
最初のブロックＢ１が符号誤りを含むことをその誤り検出結果ｃｒｃが示すとき、ホストＨは再送通知信号ＲＴＹをホストインタフェース４へ、コマンド線ＣＭＤを通し送出する。ホストインタフェース４はその再送通知信号ＲＴＹに対し、レスポンスｒを送出する。
【００３６】
再送通知信号ＲＴＹの正常な受信時、ホストインタフェース４は送信バッファ制御部５へその再送通知信号ＲＴＹを通知する。
ホストＨは送信バッファ制御部５へ最初のブロックＢ１を、データ線ＤＡＴを通し再送する。ホストインタフェース４はその再送ブロックＢ１を送信バッファ制御部５へ中継する。送信バッファ制御部５は、受信した再送ブロックＢ１を送信バッファ５ａに蓄積し、誤り検出を行う。更に、その誤り検出結果ｃｒｃをホストＨへ返送する。
こうして、最初のブロックＢ１の再送が完了する。
【００３７】
図１６はホストＨから無線インタフェースカード１００へのブロック転送開始時、ホストＨ、ホストインタフェース４、送信バッファ制御部５、及び無線モジュール１の間で交換される信号についてのフロー図である。
ホストＨとホストインタフェース４との間でのデータ転送速度は、伝送クロックの周波数で実質上決定される。伝送クロック周波数はホストＨごとに異なり、更に、同じホストＨでもその動作状況に応じ変化する。しかし、ホストＨから送信バッファ５ａへのブロック転送時間は、送信バッファ５ａからパケットバッファ１ａへのブロック転送時間と、一般に同程度として良い。
【００３８】
図１６に示されるブロック転送開始時での信号のフローは、ほぼブロック転送時間程度の期間ごとに、以下のようなステップＴ１〜Ｔ５に分割される。更に、それぞれのステップの間に、エラー通知ステップＴＥ及び再送通知ステップＴＷが以下のように挿入される。
【００３９】
＜ステップＴ１＞
ホストＨは書き込み命令Ｗをホストインタフェース４へ送出する。ホストインタフェース４はその書き込み命令Ｗに対し、レスポンスｒを送出する。
書き込み命令Ｗの正常な受信時、ホストインタフェース４は送信バッファ制御部５へその書き込み命令Ｗを通知する。一方、ホストＨは送信バッファ制御部５へ最初のブロックＢ１を送出する。ホストインタフェース４はそのブロックＢ１を送信バッファ制御部５へ中継する。送信バッファ制御部５は、受信したブロックＢ１を送信バッファ５ａに蓄積する。
【００４０】
＜エラー通知ステップＴＥ＞
送信バッファ制御部５は、送信バッファ５ａに蓄積した最初のブロックＢ１に対し誤り検出を行う。ここで、最初のブロックＢ１について、転送エラーがあったとする。送信バッファ制御部５は、その誤り検出結果ＮＧをホストＨへ返送する。更に、誤り検出結果ＮＧの送出から所定時間後、ビジー信号Ｂｓｙをネゲートする。
【００４１】
＜再送通知ステップＴＷ＞
ホストＨは、ビジー信号Ｂｓｙのネゲート時、再送通知信号ＲＴＹをホストインタフェース４へ送出する。ホストインタフェース４はその再送通知信号ＲＴＹに対し、レスポンスｒを送出する。
再送通知信号ＲＴＹの正常な受信時、ホストインタフェース４は送信バッファ制御部５へその再送通知信号ＲＴＹを通知する。そのとき、送信バッファ制御部５は、受信済の最初のブロックＢ１を破棄する。
【００４２】
＜ステップＴ２＞
再送通知信号ＲＴＹがホストインタフェース４により正常に受信された時、ホストＨは書き込み命令Ｗを送信バッファ制御部５へ送出する。ホストインタフェース４はその書き込み命令Ｗを正常に受信したか否かをチェックし、その結果をレスポンスｒで返信する。書き込み命令Ｗの正常な受信時、ホストインタフェース４はその書き込み命令Ｗを送信バッファ制御部５へ通知する。一方、ホストＨは送信バッファ制御部５へ最初のブロックＢ１を再送する。ホストインタフェース４はその再送ブロックＢ１を送信バッファ制御部５へ中継する。送信バッファ制御部５は、受信した再送ブロックＢ１を送信バッファ５ａに蓄積する。
【００４３】
＜ステップＴ３＞
送信バッファ制御部５は、送信バッファ５ａに蓄積した再送ブロックＢ１に対し誤り検出を行う。ここで、再送ブロックＢ１は正常に転送され、符号誤りを含まなかったとする。送信バッファ制御部５はその誤り検出結果ＯＫをホストＨへ返送する。更に、再送ブロックＢ１を送信バッファ５ａから無線モジュール１のパケットバッファ１ａへ転送する。その転送完了時、ビジー信号Ｂｓｙをネゲートする。
【００４４】
＜ステップＴ４＞
ビジー信号Ｂｓｙのネゲート時、ホストＨは書き込み命令Ｗを送信バッファ制御部５へ送出する。ホストインタフェース４はその書き込み命令Ｗを正常に受信したか否かをチェックし、その結果をレスポンスｒで返信する。書き込み命令Ｗの正常な受信時、ホストインタフェース４はその書き込み命令Ｗを送信バッファ制御部５へ通知する。一方、ホストＨは送信バッファ制御部５へ、第二のブロックＢ２を送出する。ホストインタフェース４はそのブロックＢ２を送信バッファ制御部５へ中継し、送信バッファ制御部５はそのブロックＢ２を送信バッファ５ａに蓄積する。
【００４５】
＜ステップＴ５＞
送信バッファ制御部５は、送信バッファ５ａに蓄積した第二のブロックＢ２に対し誤り検出を行う。ここで、第二のブロックＢ２は正常に転送され、符号誤りを含まなかったとする。送信バッファ制御部５はその誤り検出結果ＯＫをホストＨへ返送する。更に、第二のブロックＢ２を送信バッファ５ａから無線モジュール１のパケットバッファ１ａへ転送する。その転送完了時、ビジー信号Ｂｓｙをネゲートする。
以下、同様なステップが繰り返される。
無線モジュール１は、パケットバッファ１ａへ蓄積された複数の送信対象ブロックから一つのパケットを構成し、外部の無線ＬＡＮ等へ送出する。
【００４６】
上記のように、従来の無線インタフェースカード１００は、送信バッファ５ａとパケットバッファ１ａとの二種類のバッファを利用し、ホストＨから受信した複数の送信対象ブロックを一つのパケットにまとめ、外部の無線ＬＡＮ等へ送出する。それにより、ホストＨとの間での通信データ形態（ブロック）を無線ＬＡＮ等での伝送データ形態（パケット）へ変換する。更に、ホストＨは伝送クロックの周波数の調整を通し、データ転送速度を制御する。こうして、ホストＨは無線ＬＡＮ等へデータをスムーズに送信する。
【００４７】
送信バッファ制御部５は上記の通り、転送されたブロックの符号誤りの有無をホストＨへ通知する。通知された誤り検出結果が「符号誤り有り」を示すとき、ホストＨは同じブロックを再送する。この再送処理により、データの欠落が防止される。こうして、従来の無線インタフェースカード１００は、ホストＨによるデータ送信について、信頼性を高く維持する。
【００４８】
【発明が解決しようとする課題】
従来のデータ転送装置は、外部から受信したデータをホストへ転送するとき、上記の無線インタフェースカード１００のように、一ブロックを転送するごとにホストからの書き込み命令を待つ。その書き込み命令に伴って転送される誤り検出結果に応じ、次に転送すべきブロックとして、前回と同じもの又は次のもののいずれかを選択する。
そのとき、受信バッファは、ホストへ転送し終えた一ブロックを、ホストからの誤り検出結果の返送まで、保持し続けなければならなかった。その誤り検出結果が「符号誤り有り」を示すとき、受信バッファはそのブロックを更に、正常に再送し終えるまで維持しなければならなかった。こうして、従来のデータ転送装置では、受信バッファによる同一ブロックの保持時間を、ある限度を超えては短縮できなかった。
【００４９】
一方、従来のデータ転送装置は、ホストへのブロック転送と並行し、ネットワーク等からの伝送データを専用のバッファへ蓄積し続ける。例えば図１３に示されるように、受信バッファ制御部２によるブロックＢ１の転送と並行し、無線モジュール１は伝送データＰの次のパケットＰ２をパケットバッファ１ａの空き領域へ蓄積する。パケットバッファ１ａからの伝送データＰの溢れを防ぐには、受信バッファによる同一ブロックの保持時間を、従来のものより更に短縮しなければならなかった。
【００５０】
従来のデータ転送装置では、ホストから外部へデータを送信するとき、上記の無線インタフェースカード１００のように、複数のブロックをパケットバッファ１ａに集め、それらから一つのパケットを構成し、外部へ送出する。従って、外部への実質的なデータ送信速度の向上には、ホストからのブロック転送の実質的な高速化が求められた。それには、ホストからのブロック転送について、特にブロック再送を更に、迅速にしなければならなかった。
【００５１】
本発明は、バッファでの同一ブロックの保持時間の短縮、又はブロック再送の高速化を通し、ホストとの間の実質的なブロック転送時間を短縮し、それにより高速ネットワーク等に容易に対応し、かつデータ転送について高い信頼性を維持するデータ転送装置、の提供を目的とする。
【００５２】
【課題を解決するための手段】
本発明の一つの観点によるデータ転送装置は、
（Ａ）　（ａ）　パケットバッファを含み、（ｂ）　外部から伝送されたパケットを受信し、パケットバッファへ一時記憶するための伝送データ受信部；
（Ｂ）　（ａ）　ホストとの間のデータ通信単位であるブロック、と実質的に等しいサイズを持つ受信バッファを含み、（ｂ）　パケットバッファへ一時記憶されたパケットをブロックごとに分割し、受信バッファへ転送するための受信バッファ制御部；及び、
（Ｃ）　（ａ）　ブロックと実質的に等しいサイズを持つ副バッファを含み、（ｂ）　ブロックを受信バッファから副バッファへ転送するための副バッファ制御部；
を有し、
（Ｄ）　ホストからブロック送出命令を受信するとき、受信バッファから副バッファへ未送ブロックを転送し、かつ受信バッファ又は副バッファのいずれかからホストへその未送ブロックを送出し；
（Ｅ）　ホストからブロック再送命令を受信するとき、副バッファからホストへ送出済ブロックを再送し；
（Ｆ）　ブロックの一つを受信バッファから副バッファへ転送し終えた時と実質上同時に、次のブロックをパケットバッファから受信バッファへ転送し始める。
ここで、受信バッファ及び副バッファは、好ましくはＦＩＦＯメモリである。
【００５３】
データ転送装置からホストへのブロック転送にエラーがあるとき、ホストは一般に、そのデータ転送装置に対し送出済ブロックの再送を指示する。そのとき、上記のデータ転送装置は、副バッファから送出済ブロックを再送する。従って、受信バッファは送出済ブロックを保持しなくても良く、特に副バッファへそのブロックを転送した後、直ちに次の未送ブロックを上書きされても良い。
それにより、上記のデータ転送装置では、ホストへのブロック転送の開始時、最初のブロックに続き二番目のブロックが、最初のブロックの再送の有無に関わらず、直ちにパケットバッファから受信バッファへ転送される。
その結果、上記のデータ転送装置では、パケット内の最初の二つのブロックに対し、パケットバッファから受信バッファへの転送が従来のデータ転送装置より速い。特に、受信バッファによる最初のブロックの保持時間が短い。こうして、パケットバッファでは、その最初の二つのブロックに相当する記録領域が速やかに開放され、次のパケットの記憶領域として速やかに確保される。それ故、パケットバッファからパケットのデータが溢れることを回避できる。
【００５４】
上記のデータ転送装置は、上記のブロック送出命令の受信時、未送ブロックを受信バッファから副バッファへ転送し、更に副バッファからホストへ送出しても良い。そのとき、副バッファからホストへのその未送ブロックの送出と実質上並行し、パケットバッファから受信バッファへ次の未送ブロックが転送される。その結果、ホストへ一ブロックを送出し終えた時、副バッファにはその送出済ブロックが保持され、受信バッファには次の未送ブロックが保持される。
ホストはそのデータ転送装置に対し、受信バッファ又は副バッファのいずれかからの読み出しを指示するだけで、次の未送ブロックの転送又は送出済ブロックの再送を選択できる。例えば、読み出し命令の宛先を受信バッファ又は副バッファのいずれかに指定するだけで、その読み出し命令をブロック送出命令又はブロック再送命令として使い分けできる。従って、ホストは、従来のデータ転送装置との間のブロック転送とは異なり、一ブロックの転送ごとに、次の未送ブロックの転送又は送出済ブロックの再送をそれぞれ指示するためだけのハンドシェイクを行わなくても良い。
こうして、ブロック転送のプロトコルが従来のものより簡素であるので、ブロック転送が従来のデータ転送装置より速い。更に、ブロック転送に対する制御について、ホストの負担を軽減できる。それにより、ＣＰＵのパワーが比較的小さいホストについても、上記のデータ転送装置は高い信頼性を維持できる。
【００５５】
上記のデータ転送装置は、上記のブロック送出命令の受信時、未送ブロックを受信バッファから副バッファへ転送し、同時にその未送ブロックを受信バッファからホストへ送出しても良い。このデータ転送装置では、最初の二つのブロックだけでなく全てのブロックについて、ホストへの一ブロックの転送終了時、その転送エラーの有無に関わらず、次の未送ブロックが直ちにパケットバッファから受信バッファへ転送される。その転送の間にホストからブロック再送命令を受信したとき、副バッファから送出済ブロックが再送される。
その結果、上記のデータ転送装置では、パケット内の全てのブロックに対し、パケットバッファから受信バッファへの転送が従来のデータ転送装置より速い。特に、受信バッファによる同一ブロックの保持時間が短い。こうして、パケットバッファでは記録領域が速やかに開放され、次のパケットの記憶領域として速やかに確保される。それ故、パケットバッファからパケットのデータが溢れることを回避できる。
【００５６】
上記のデータ転送装置では、未送ブロックは受信バッファから送出され、送出済ブロックは副バッファから再送される。ホストはそのデータ転送装置に対し、受信バッファ又は副バッファのいずれかからの読み出しを指示するだけで、次の未送ブロックの転送又は送出済ブロックの再送を選択できる。例えば、読み出し命令の宛先を受信バッファ又は副バッファのいずれかに指定するだけで、その読み出し命令をブロック送出命令又はブロック再送命令として使い分けできる。従って、ホストは、従来のデータ転送装置との間のブロック転送とは異なり、一ブロックの転送ごとに、次の未送ブロックの転送又は送出済ブロックの再送をそれぞれ指示するためだけのハンドシェイクを行わなくても良い。
こうして、ブロック転送のプロトコルが従来のものより簡素であるので、ブロック転送が従来のデータ転送装置より速い。更に、ブロック転送に対する制御について、ホストの負担を軽減できる。それにより、ＣＰＵのパワーが比較的小さいホストについても、上記のデータ転送装置は高い信頼性を維持できる。
【００５７】
ホストからの指示が、次の未送ブロックの転送又は送出済ブロックの再送のいずれであるのかを、上記のデータ転送装置は好ましくは次のように判断する。
ホストから読み出し命令を受信し、その宛先アドレスが、（ａ）　受信バッファに対応するとき、その読み出し命令をブロック送出命令とみなし、（ｂ）　副バッファに対応するとき、その読み出し命令をブロック再送命令とみなす。
その他に、ホストから読み出し命令を受信するとき、その宛先アドレスを示すデータの特定ビットに基づき、その読み出し命令をブロック送出命令又はブロック再送命令のいずれかとして識別しても良い。例えば、その特定ビットが「１」のとき、その読み出し命令がブロック再送命令とみなされ、「０」のときブロック送出命令とみなされても良い。
上記の判断により、ホストは共通の読み出し命令の宛先アドレスを付け替えるだけで、次の未送ブロックの転送又は送出済ブロックの再送をそれぞれ指示できる。従って、ブロック転送に対する制御について、ホストの負担を軽減できる。
【００５８】
本発明の別の観点によるデータ転送装置は、
（Ａ）　パケットバッファを含み、外部から伝送されたパケットを受信し、そのパケットをパケットバッファへ一時記憶するための伝送データ受信部；及び、
（Ｂ）　（ａ）　ホストとの間のデータ通信単位であるブロック、と実質的に等しいサイズを持つブロックバッファを含み、（ｂ）　パケットバッファへ一時記憶されたパケットをブロックごとに分割し、ブロックバッファへ転送し、（ｃ）　ホストから読み出し命令を受信するとき、その宛先アドレスに応じブロックバッファから、パケットの未送ブロックをホストへ送出し、又は送出済ブロックをホストへ再送するためのバッファ制御部；
を有する。
【００５９】
ここで、ホストからの読み出し命令は、その宛先アドレスとして、好ましくはブロックバッファを指定するものと特定のものとのいずれかを含む。上記のデータ転送装置はそのとき、ブロックバッファのアドレスを宛先アドレスとして含む読み出し命令をブロック送出命令とみなし、特定の宛先アドレスを含む読み出し命令をブロック再送命令とみなす。
その他に、上記のデータ転送装置は、読み出し命令の宛先アドレスを示すデータの特定ビットに基づき、その読み出し命令をブロック再送命令とみなしても良い。例えば、その特定ビットが「１」のとき、その読み出し命令がブロック再送命令とみなされ、「０」のときブロック送出命令とみなされても良い。
【００６０】
上記の判断により、ホストは上記のデータ転送装置に対し、共通の読み出し命令の宛先アドレスを付け替えるだけで、次の未送ブロックの転送又は送出済ブロックの再送をそれぞれ指示できる。従って、ホストは、従来のデータ転送装置との間のブロック転送とは異なり、一ブロックの転送ごとに、次の未送ブロックの転送又は送出済ブロックの再送をそれぞれ指示するためだけのハンドシェイクを行わなくても良い。
こうして、ブロック転送のプロトコルが従来のものより簡素であるので、ブロック転送が従来のデータ転送装置より速い。更に、ブロック転送に対する制御について、ホストの負担を軽減できる。それにより、ＣＰＵのパワーが比較的小さいホストについても、上記のデータ転送装置は高い信頼性を維持できる。
【００６１】
本発明の更に別の観点によるデータ転送装置は、
（Ａ）　（ａ）　ホストとの間のデータ通信単位であるブロック、と実質的に等しいサイズを持つ送信バッファを含み、（ｂ）　ホストから書き込み命令と外部への送信対象ブロックとを受信するとき、その送信対象ブロックを送信バッファへ書き込み、（ｃ）　書き込み命令の宛先アドレスに応じ、送信バッファに保持された送信対象ブロックを、未送ブロック又は再送ブロックのいずれかとして識別するための送信バッファ制御部；及び、
（Ｂ）　（ａ）　パケットバッファを含み、（ｂ）　送信対象ブロックを送信バッファからパケットバッファへ転送し、（ｃ）　複数の送信対象ブロックから一つのパケットを構成し、パケットごとに外部へ送信するための伝送データ送信部；
を有する。
【００６２】
ここで、ホストからの書き込み命令は、その宛先アドレスとして、好ましくは送信バッファを指定するものと特定のものとのいずれかを含む。上記のデータ転送装置はそのとき、送信バッファのアドレスを宛先アドレスとして含む書き込み命令を次ブロックの送出通知とみなし、特定の宛先アドレスを含む書き込み命令をブロック再送通知とみなす。
その他に、上記のデータ転送装置は、書き込み命令の宛先アドレスを示すデータの特定ビットに基づき、その書き込み命令をブロック再送通知とみなしても良い。例えば、その特定ビットが「１」のとき、その書き込み命令がブロック再送通知とみなされ、「０」のとき次ブロックの送出通知とみなされても良い。
【００６３】
上記の判断により、ホストは上記のデータ転送装置に対し、共通の書き込み命令の宛先アドレスを付け替えるだけで、次の送信対象ブロックの転送又は送出済ブロックの再送をそれぞれ通知できる。従って、ホストは、従来のデータ転送装置との間のブロック転送とは異なり、送出済ブロックの再送を予め通知するためだけのハンドシェイクを行わなくても良い。
こうして、ブロック転送のプロトコルが、特にブロック再送について従来のものより簡素であるので、ブロック転送が従来のデータ転送装置より速い。更に、ブロック転送に対する制御について、ホストの負担を軽減できる。それにより、ＣＰＵのパワーが比較的小さいホストについても、上記のデータ転送装置は高い信頼性を維持できる。
【００６４】
【発明の実施の形態】
以下、本発明の最適な実施の形態について、その好ましい実施例を挙げて、図面を参照しつつ説明する。
【００６５】
《実施例１》
図１は、外部無線ＬＡＮからホストＨへのデータ転送時、本発明の実施例１による無線インタフェースカード１０Ａ内でのデータの流れを示すブロック図である。無線インタフェースカード１０Ａはデータ転送装置であり、例えば外部無線ＬＡＮを通し伝送されるデータＰを受信し、ホストＨへ転送する。
無線インタフェースカード１０Ａは無線モジュール１、受信バッファ制御部２Ａ、転送バッファ制御部３Ａ、及びホストインタフェース４を有する。
【００６６】
無線モジュール１は、例えばブルートゥース（Ｂｌｕｅｔｏｏｔｈ、登録商標）の通信方式に従う。無線モジュール１はアンテナＡとパケットバッファ１ａとを含む。アンテナＡは無線ＬＡＮから伝送データＰを受信する。伝送データＰは通常、所定のパケットごとに伝送される。ここで、一パケット当たりのデータ量は一般に可変であり、平均約１ｋＢである。更に、それぞれのパケットは約４００ｋｂｐｓで伝送される。
無線モジュール１はブルートゥース（登録商標）の他に、固定パケット長を用いる通信方式に従っても良い。
パケットバッファ１ａは好ましくはＳＲＡＭであり、そのデータ容量は一パケット当たりの最大データ量より十分に大きく、例えば２ｋＢである。アンテナＡを通し受信された伝送データＰは順次、パケットバッファ１ａへ蓄積される。一パケット当たりの蓄積時間は、平均約２０ｍ秒程度である。
【００６７】
受信バッファ制御部２Ａは受信バッファ２ａを含む。受信バッファ２ａは好ましくはＦＩＦＯメモリであり、一定のデータ容量を持つ。その一定のデータ量は、ホストＨへのデータ転送単位（以下、ブロックという）に実質的に等しく、例えば５１２Ｂである。
伝送データＰの一パケットがパケットバッファ１ａへ蓄積されるとき、受信バッファ制御部２Ａはそのパケットの先頭から一ブロックＢＲを分離し、受信バッファ２ａへ転送する。パケットバッファ１ａから受信バッファ２ａへのブロック転送は、無線インタフェースカード１０Ａの内部クロックに同期する。そのとき、データは１バイト当たり２クロックで転送される。内部クロック周波数が例えば約１５ＭＨｚであるとき、約７．５ＭＢｐｓ＝６０Ｍｂｐｓのデータ転送速度が実現される。従って、パケットバッファ１ａから受信バッファ２ａへのブロック転送は、一ブロック当たり約７０μ秒で実行される。
受信バッファ２ａが満杯になるとき、受信バッファ制御部２Ａは、転送バッファ制御部３Ａ及びホストインタフェース４を通しホストＨへ割込信号Ｉｎｔを送出し、ホストＨによるブロックの読み出しを要求する。
【００６８】
転送バッファ制御部３Ａは転送バッファ３ａを含む。転送バッファ３ａは受信バッファ２ａと同様にＦＩＦＯメモリであり、そのデータ容量は一ブロックと実質的に等しく、５１２Ｂである。
ホストＨからの読み出し命令Ｒの受信時、転送バッファ制御部３Ａはその読み出し命令Ｒの宛先アドレスに応じ、受信バッファ２ａ又は転送バッファ３ａのいずれかからホストＨへブロックを転送する。
【００６９】
例えば、宛先アドレスが転送バッファ３ａに対応するとき、転送バッファ制御部３Ａは転送バッファ３ａからブロックを転送する。一方、宛先アドレスが受信バッファ２ａに対応するとき、転送バッファ制御部３Ａは、まず受信バッファ２ａから新たなブロックＢＲを転送バッファ３ａへ転送し、続いて転送バッファ３ａからホストＨへそのブロックＢＲを転送する。
その他に、転送バッファ制御部３Ａは、宛先アドレスを示すデータ内の特定ビット、例えば最上位ビットに基づき、ブロックの転送元を識別しても良い。すなわち、最上位ビットが「０」のときは受信バッファ２ａからブロックを転送し、「１」のときは転送バッファ３ａからブロックを転送しても良い。
以下、宛先アドレスを受信バッファ２ａに対応させた読み出し命令Ｒをブロック送出命令Ｒｎとし、宛先アドレスを転送バッファ３ａに対応させた読み出し命令Ｒをブロック再送命令Ｒｔとする。
【００７０】
受信バッファ２ａから転送バッファ３ａへのブロック転送は、無線インタフェースカード１０Ａの内部クロックに同期する。そのとき、データは１バイト当たり２クロックで転送される。内部クロック周波数が例えば約１５ＭＨｚであるとき、約７．５ＭＢｐｓ＝６０Ｍｂｐｓのデータ転送速度が実現される。従って、受信バッファ２ａから転送バッファ３ａへのブロック転送は、一ブロック当たり約７０μ秒で実行される。
【００７１】
ホストインタフェース４は、コマンド線ＣＭＤ、クロック線ＣＬＫ、及び複数のデータ線ＤＡＴを含むバス６でホストＨと接続され、ホストＨと、受信バッファ制御部２Ａ又は転送バッファ制御部３Ａとの間で交換される信号を中継する。
ホストインタフェース４は特に、ホストＨから発行されたコマンドを、コマンド線ＣＭＤを通し受信し、解読する。更に、その解読を通し、コマンドが正常に受信されたか否かを判断し、それぞれの判断結果を示すレスポンス（ＡＣＫ又はＮＡＫ）を、コマンド線ＣＭＤを通しホストＨへ返信する。
【００７２】
ホストインタフェース４は例えば、データ線ＤＡＴの一本を通し、受信バッファ制御部２Ａからの割込信号ＩｎｔをホストＨへ送出する。その割込信号Ｉｎｔに応じ、ホストＨから発行された読み出し命令Ｒをコマンド線ＣＭＤを通し受信し、転送バッファ制御部３Ａへ通知する。更に、その通知を受け、転送バッファ３ａから送出されたブロックＢＲを、データ線ＤＡＴを通しホストＨへ送出する。
【００７３】
ホストインタフェース４とホストＨとの間のデータ通信は、ホストＨによる伝送クロックに従い、同期通信で実行される。そのとき、伝送クロックはクロック線ＣＬＫを通し、ホストＨからホストインタフェース４へ伝送される。伝送クロック周波数はホストＨの機種及び使用状況により、０近くから最大約２５ＭＨｚまで変動し得る。約２５ＭＨｚの伝送クロック周波数では、転送バッファ３ａからホストＨへのブロック転送は、一ブロック当たり約５０μ秒で実行される。
【００７４】
図２は、無線インタフェースカード１０ＡからホストＨへのブロック転送時、ホストインタフェース４とホストＨとの間で交換される信号のタイミング図である。図２では、コマンド線ＣＭＤ及びデータ線ＤＡＴ上の信号に対し、矢印でそれぞれの伝送方向が示される。すなわち、左向きの矢印は無線インタフェースカード１０ＡからホストＨへの伝送（以下、上り方向伝送という）を、右向きの矢印はその逆方向の伝送（以下、下り方向伝送という）をそれぞれ示す。
図３は、同じブロック転送時、パケットバッファ１ａ、受信バッファ２ａ、及び転送バッファ３ａ間でのブロック転送を模式的に示す図である。
【００７５】
図２と図３とは共にブロック転送の開始時に対応する。図３の（ａ）に示されるように、無線モジュール１はアンテナＡを通し受信した伝送データＰを、パケットバッファ１ａへ順次蓄積する。伝送データＰの最初のパケットＰ１の全てがパケットバッファ１ａへ蓄積された時、受信バッファ制御部２Ａは、図３の（ｂ）に示されるように、そのパケットＰ１の先頭から最初のブロックＢ１を分離し、受信バッファ２ａへ転送する。受信バッファ２ａが満杯になるとき、受信バッファ制御部２Ａは、ホストＨに対する割込信号Ｉｎｔをアサートする。
【００７６】
割込信号Ｉｎｔは図２に示されるように、データ線ＤＡＴの一本を通しホストＨへ送出される。ホストＨは割込信号Ｉｎｔの受信時、割込解除信号ＣＬＲをホストインタフェース４へ、コマンド線ＣＭＤを通し送出する。ホストインタフェース４は割込解除信号ＣＬＲに対するレスポンスｒを、コマンド線ＣＭＤを通しホストＨへ返信する。それと共に、受信バッファ制御部２Ａへ割込解除信号ＣＬＲを通知する。受信バッファ制御部２Ａは割込解除信号ＣＬＲの受信時、割込信号Ｉｎｔをネゲートする。こうして、受信バッファ２ａからホストＨへのブロック転送準備が完了する。
【００７７】
ホストＨはコマンド線ＣＭＤを通し、ブロック送出命令Ｒｎをホストインタフェース４へ送出する。ホストインタフェース４は、ブロック送出命令Ｒｎに対するレスポンスｒを返信すると共に、転送バッファ制御部３Ａ及び受信バッファ制御部２Ａへブロック送出命令Ｒｎを通知する。
転送バッファ制御部３Ａはブロック送出命令Ｒｎの受信時、図３の（ｃ）に示されるように、受信バッファ２ａから転送バッファ３ａへ最初のブロックＢ１を転送する。その転送が終了した時直ちに、受信バッファ制御部２Ａはパケットバッファ１ａから受信バッファ２ａへ次のブロックＢ２を転送する。それらの転送と並行し、パケットバッファ１ａの空き領域へは伝送データＰの新たなパケットＰ２が蓄積される。
【００７８】
転送バッファ制御部３Ａは更に、図２及び図３の（ｄ）に示されるように、転送バッファ３ａから最初のブロックＢ１を、データ線ＤＡＴを通しホストＨへ送出する。
ホストＨは転送された最初のブロックＢ１に対し、誤り検出を実行する。誤り検出の結果が「符号誤りなし」を示すとき、ホストＨはブロック送出命令Ｒｎを発行し、次のブロックの送出を指示する。一方、誤り検出の結果が「符号誤り有り」を示すとき、ホストＨはブロック再送命令Ｒｔを発行し、最初のブロックＢ１の再送を指示する。
【００７９】
図２では、最初に転送された最初のブロックＢ１が符号誤りを含むときが例示される。
ホストＨはコマンド線ＣＭＤを通し、ブロック再送命令Ｒｔをホストインタフェース４へ送出する。ホストインタフェース４はブロック再送命令Ｒｔに対するレスポンスｒを返信すると共に、転送バッファ制御部３Ａへブロック再送命令Ｒｔを通知する。転送バッファ制御部３Ａは最初のブロックＢ１を、その転送後も転送バッファ２ａに保持する。図３の（ｅ）に示されるように、転送バッファ制御部３Ａはブロック再送命令Ｒｔの受信時、転送バッファ３ａから最初のブロックＢ１をホストＨへ再送する。
【００８０】
ホストＨは再送された最初のブロックＢ１に対し、誤り検出を実行する。誤り検出の結果に応じ、ホストＨは次に発行すべき読み出し命令を、ブロック送出命令Ｒｎ又はブロック再送命令Ｒｔのいずれかに決定する。
図２では、再送された最初のブロックＢ１が符号誤りを含まないときが例示される。
ホストＨはコマンド線ＣＭＤを通し、ブロック送出命令Ｒｎをホストインタフェース４へ送出する。ホストインタフェース４はブロック送出命令Ｒｎに対するレスポンスｒを返信すると共に、転送バッファ制御部３Ａへブロック送出命令Ｒｎを通知する。
図３の（ｆ）に示されるように、転送バッファ制御部３Ａはブロック送出命令Ｒｎの受信時、受信バッファ２ａから転送バッファ３ａへ次のブロックＢ２を転送する。その転送が終了した時直ちに、受信バッファ制御部２Ａはパケットバッファ１ａから受信バッファ２ａへ更にその次のブロックＢ３を転送する。
こうして、実施例１による無線インタフェースカード１０Ａはブロック転送を実行する。
【００８１】
図４は、無線インタフェースカード１０ＡからホストＨへのブロック転送開始時、ホストＨ、ホストインタフェース４、転送バッファ制御部３Ａ、受信バッファ制御部２Ａ、及び無線モジュール１の間で交換される信号のフロー図である。
ホストＨによる伝送クロック、及び無線インタフェースカード１０Ａの内部クロックが約１５〜２５ＭＨｚ程度の周波数であるとき、ホストＨ、ホストインタフェース４、転送バッファ制御部３Ａ、受信バッファ制御部２Ａ、及び無線モジュール１のそれぞれの間での一ブロック当たりの転送時間（以下、ブロック転送時間という）はいずれも約５０〜７０μ秒程度であり、実質上等しいとみなせる。
【００８２】
図４に示されるブロック転送開始時での信号のフローは、ほぼブロック転送時間程度の期間ごとに、以下のようなステップＳ１〜Ｓ８に分割される。
＜ステップＳ１＞
パケットバッファ１ａに蓄積されたパケットの先頭から最初のブロックＢ１が分離され、無線モジュール１から受信バッファ制御部２Ａへ転送される。
＜割り込みステップＳｉｎｔ＞
受信バッファ２ａが満杯になるとき、受信バッファ制御部２ＡはホストＨに対する割込信号Ｉｎｔをアサートする。ホストＨはその割込信号Ｉｎｔに応じ、割込解除信号ＣＬＲを受信バッファ制御部２Ａへ返信する。ホストインタフェース４はその割込解除信号ＣＬＲを正常に受信したか否かをチェックし、その結果をレスポンスｒで返信する。正常に受信された割込解除信号ＣＬＲは、ホストインタフェース４により受信バッファ制御部２Ａへ通知される。その通知時、受信バッファ制御部２Ａは割込信号Ｉｎｔをネゲートする。
割り込みステップＳｉｎｔの時間は、割り込み時でのホストＨの動作状況に応じ変化する。
受信バッファ２ａでは、割込信号Ｉｎｔの送出から割込解除信号ＣＬＲの正常な受信まで、データがそのまま保持される。
【００８３】
＜ステップＳ２＞
ホストＨはブロック送出命令Ｒｎをホストインタフェース４へ送出する。ホストインタフェース４は、そのブロック送出命令Ｒｎを正常に受信したか否かをチェックし、その結果をレスポンスｒで返信する。ブロック送出命令Ｒｎの正常な受信時、ホストインタフェース４はそのブロック送出命令Ｒｎを、転送バッファ制御部３Ａへ通知する。その通知時、転送バッファ制御部３Ａは、受信バッファ２ａから転送バッファ３ａへ最初のブロックＢ１を転送する。
＜ステップＳ３＞
受信バッファ２ａから転送バッファ３ａへのブロック転送が終了した時、転送バッファ制御部３Ａは転送バッファ３ａからホストＨへ最初のブロックＢ１を送出する。それと並行し、受信バッファ制御部２Ａはパケットバッファ１ａから受信バッファ２ａへ次のブロックＢ２を転送する。
【００８４】
＜ステップＳ４＞
ホストＨは転送された最初のブロックＢ１に対し、符号誤りを検出する。更にその検出結果に応じ、ブロック送出命令Ｒｎ又はブロック再送命令Ｒｔのいずれかを選択し、転送バッファ制御部３Ａへ送出する。
ホストＨがブロック送出命令Ｒｎ又はブロック再送命令Ｒｔのいずれかを発行するまで、転送バッファ３ａはデータをそのまま保持する。一方、受信バッファ２ａは次のブロックＢ２を保持する。
【００８５】
図４では、ホストＨは最初のブロックＢ１に対し「符号誤り有り」と判断し、ブロック再送命令Ｒｔを発行する。ホストインタフェース４はそのブロック再送命令Ｒｔを正常に受信したか否かをチェックし、その結果をレスポンスｒで返信する。ブロック再送命令Ｒｔの正常な受信時、ホストインタフェース４はそのブロック再送命令Ｒｔを転送バッファ制御部３Ａへ通知する。その通知時、転送バッファ制御部３Ａは転送バッファ３ａから最初のブロックＢ１をホストＨへ再送する。
【００８６】
＜ステップＳ５＞
ホストＨは再送された最初のブロックＢ１に対し、符号誤りを検出する。更にその検出結果に応じ、ブロック送出命令Ｒｎ又はブロック再送命令Ｒｔのいずれかを選択し、転送バッファ制御部３Ａへ送出する。
ホストＨがブロック送出命令Ｒｎ又はブロック再送命令Ｒｔのいずれかを発行するまで、受信バッファ２ａと転送バッファ３ａとはデータをそのまま保持する。
【００８７】
図４では、ホストＨは再送された最初のブロックＢ１に対し「符号誤りなし」と判断し、ブロック送出命令Ｒｎを発行する。ホストインタフェース４はそのブロック送出命令Ｒｎを正常に受信したか否かをチェックし、その結果をレスポンスｒで返信する。ブロック送出命令Ｒｎの正常な受信時、ホストインタフェース４はそのブロック送出命令Ｒｎを転送バッファ制御部３Ａへ通知する。その通知時、転送バッファ制御部３Ａは受信バッファ２ａから転送バッファ３ａへ次のブロックＢ２を転送する。
【００８８】
＜ステップＳ６＞
受信バッファ２ａから転送バッファ３ａへのブロック転送が終了した時、転送バッファ制御部３Ａは転送バッファ３ａからホストＨへ次のブロックＢ２を送出する。それと並行し、受信バッファ制御部２Ａはパケットバッファ１ａから受信バッファ２ａへ更に次のブロックＢ３を転送する。
＜ステップＳ７＞
ホストＨは転送された次のブロックＢ２に対し、符号誤りを検出する。更にその検出結果に応じ、ブロック送出命令Ｒｎ又はブロック再送命令Ｒｔのいずれかを選択し、転送バッファ制御部３Ａへ送出する。
図４では、ホストＨは次のブロックＢ２に対し「符号誤りなし」と判断し、ブロック送出命令Ｒｎを発行する。ホストインタフェース４はそのブロック送出命令Ｒｎを正常に受信したか否かをチェックし、その結果をレスポンスｒで返信する。ブロック送出命令Ｒｎの正常な受信時、ホストインタフェース４はそのブロック送出命令Ｒｎを転送バッファ制御部３Ａへ通知する。その通知時、転送バッファ制御部３Ａは受信バッファ２ａから転送バッファ３ａへ、更に次のブロックＢ３を転送する。
【００８９】
＜ステップＳ８＞
受信バッファ２ａから転送バッファ３ａへのブロック転送が終了した時、転送バッファ制御部３Ａは転送バッファ３ａからホストＨへ更に次のブロックＢ３を送出する。それと並行し、受信バッファ制御部２Ａはパケットバッファ１ａから受信バッファ２ａへ次のブロックＢＲ４を転送する。
以下、同様なステップが繰り返される。
【００９０】
実施例１による無線インタフェースカード１０Ａは上記の通り、パケットバッファ１ａと受信バッファ２ａとの他に、副バッファとして転送バッファ３ａを有する。無線インタフェースカード１０Ａはブロックを、受信バッファ２ａから一旦転送バッファ３ａへ転送し、転送バッファ３ａからホストＨへ送出する。それにより、転送バッファ３ａで送出済ブロックを保持し、受信バッファ２ａでは次の未送ブロックを保持する。
ホストＨは、読み出し命令の宛先アドレスを受信バッファ２ａ又は転送バッファ３ａのいずれかに対応させるだけで、共通の読み出し命令をブロック送出命令Ｒｎ又はブロック再送命令Ｒｔとして使い分けできる。従って、ホストＨは、従来のデータ転送装置との間のブロック転送とは異なり、一ブロックの転送ごとに、次の未送ブロックの転送又は送出済ブロックの再送のいずれかを指示するためだけのハンドシェイクを行わなくても良い。実際、図４に示される実施例１でのフロー図には、図１４に示される従来のデータ転送装置でのフロー図とは異なり、エラーチェックステップＳＷが含まれない。
【００９１】
こうして、ブロック転送のプロトコルが従来のものより簡素であるので、ブロック転送が従来のデータ転送装置より速い。更に、ブロック転送に対する制御について、ホストＨの負担を軽減できる。それにより、ＣＰＵのパワーが比較的小さいホストに対し、無線インタフェースカード１０Ａはスムーズなブロック転送を実現できる。
【００９２】
実施例１による無線インタフェースカード１０Ａでは、図４のステップＳ３に示されるように、最初のブロックＢ１が転送バッファ３ａからホストＨへ送出されると同時に、次のブロックＢ２がパケットバッファ１ａから受信バッファ２ａへ転送される。その二番目のブロックＢ２の転送は特に、最初のブロックＢ１がホストＨにより正常に受信されたか否かに関わらない。従って、最初のブロックＢ１のホストＨへの送出にエラーが生じても、ステップＳ３の終了時には二番目のブロックＢ２までがパケットバッファ１ａから受信バッファ２ａへ転送し終わる。このブロック転送は、図１４に示される従来のものより、一ステップだけ速い。そのことは、実施例１では受信バッファ２ａによる最初のブロックＢ１の保持時間がせいぜい一ステップ程度に限られることから理解される。
【００９３】
こうして、実施例１による無線インタフェースカード１０Ａでは、ブロック転送の開始時、最初の二つのブロックに対するパケットバッファ１ａから受信バッファ２ａへの転送が、従来の装置より実質的に速い。従って、パケットバッファ１ａでの空き領域が素早く、かつ大きく確保されるので、パケットバッファ１ａからパケットのデータが溢れない。その結果、データ転送の信頼性を向上できる。
【００９４】
《実施例２》
図５は、外部無線ＬＡＮからホストＨへのデータ転送時、本発明の実施例２による無線インタフェースカード１０Ｂ内でのデータの流れを示すブロック図である。無線インタフェースカード１０Ｂは、実施例１による無線インタフェースカード１０Ａと同様なデータ転送装置である。
無線インタフェースカード１０Ｂは無線モジュール１、受信バッファ制御部２Ｂ、コピーバッファ制御部３Ｂ、及びホストインタフェース４を有する。
無線モジュール１、ホストインタフェース４、及びバス６は実施例１によるものと同様であるので、それらの説明は実施例１でのものを援用する。
【００９５】
受信バッファ制御部２Ｂは受信バッファ２ａを含む。受信バッファ２ａは好ましくはＦＩＦＯメモリであり、一定のデータ容量を持つ。その一定のデータ量は、ホストＨへのデータ転送単位（ブロック）に実質的に等しく、例えば５１２Ｂである。
コピーバッファ制御部３Ｂはコピーバッファ３ｂを含む。コピーバッファ３ｂは受信バッファ２ａと同様にＦＩＦＯメモリであり、そのデータ容量は一ブロックと実質的に等しく、例えば５１２Ｂである。
【００９６】
伝送データＰの一パケットがパケットバッファ１ａへ蓄積されるとき、受信バッファ制御部２Ｂはそのパケットの先頭から一ブロックＢＲを分離し、受信バッファ２ａへ転送する。パケットバッファ１ａから受信バッファ２ａへのブロック転送は、無線インタフェースカード１０Ｂの内部クロックに同期する。そのとき、データは１バイト当たり２クロックで転送される。内部クロック周波数が例えば約１５ＭＨｚであるとき、約７．５ＭＢｐｓ＝６０Ｍｂｐｓのデータ転送速度が実現される。従って、パケットバッファ１ａから受信バッファ２ａへのブロック転送は、一ブロック当たり約７０μ秒で実行される。
受信バッファ２ａが満杯になるとき、受信バッファ制御部２Ｂは、ホストインタフェース４を通しホストＨへ割込信号Ｉｎｔを送出し、ホストＨによるブロックの読み出しを要求する。
【００９７】
ホストＨからのブロック送出命令Ｒｎが受信される時、受信バッファ制御部２Ｂは受信バッファ２ａからホストＨへブロックＢＲを転送する。その転送と同時に、同じブロックＢＲを受信バッファ２ａからコピーバッファ３ｂへ転送する。受信バッファ２ａからコピーバッファ３ｂへのブロック転送は、無線インタフェースカード１０Ｂの内部クロックに同期する。そのとき、データは１バイト当たり２クロックで転送される。内部クロック周波数が例えば約１５ＭＨｚであるとき、約７．５ＭＢｐｓ＝６０Ｍｂｐｓのデータ転送速度が実現される。従って、受信バッファ２ａからコピーバッファ３ｂへのブロック転送は、一ブロック当たり約７０μ秒で実行される。
【００９８】
コピーバッファ３ｂには、受信バッファ２ａからホストＨへ送出されたブロックＢＲのコピー、すなわち送出済ブロックが保持される。一方、受信バッファ２ａには、一ブロックのホストＨへの送出後直ちに、次の未送ブロックが転送される。こうして、コピーバッファ３ｂには送出済ブロックが保持されると共に、受信バッファ２ａには次の未送ブロックが保持される。従って、ホストＨからのブロック再送命令Ｒｔが受信される時、コピーバッファ制御部３Ｂがコピーバッファ３ｂからホストＨへ送出済ブロックＢｓを送出する。
【００９９】
ブロック送出命令とブロック再送命令とは、実施例１と同様に、共通の読み出し命令の宛先アドレスで識別される。ホストインタフェース４はホストＨから正常に受信された読み出し命令を解読し、その宛先アドレスに応じ、受信バッファ制御部２Ｂへブロック送出命令Ｒｎとして、又はコピーバッファ制御部３Ｂへブロック再送命令Ｒｔとして、それぞれ通知する。
例えば、宛先アドレスが受信バッファ２ａに対応するとき、その読み出し命令をブロック送出命令Ｒｎとみなす。一方、宛先アドレスがコピーバッファ３ｂに対応するとき、その読み出し命令をブロック再送命令Ｒｔとみなす。
ホストインタフェース４はその他に、読み出し命令により含まれ、宛先アドレスを示すデータ内の特定ビット、例えば最上位ビットに基づき、ブロックの転送元バッファを識別しても良い。例えば最上位ビットが「０」のときはその読み出し命令をブロック送出命令Ｒｎとみなす。一方、最上位ビットが「１」のときはその読み出し命令をブロック再送命令Ｒｔとみなす。
【０１００】
実施例２による無線インタフェースカード１０ＢからホストＨへのブロック転送時に、ホストインタフェース４とホストＨとの間で交換される信号のタイミングは、図２に示される実施例１によるものと同様である。従って、実施例２での信号のタイミングについては図２を参照する。
図６は、同じブロック転送時、パケットバッファ１ａ、受信バッファ２ａ、及びコピーバッファ３ｂ間でのブロック転送を模式的に示す図である。
【０１０１】
図２と図６とは共にブロック転送の開始時に対応する。図６の（ａ）に示されるように、無線モジュール１はアンテナＡを通し受信した伝送データＰを、パケットバッファ１ａへ順次蓄積する。伝送データＰの最初のパケットＰ１の全てがパケットバッファ１ａへ蓄積された時、受信バッファ制御部２Ｂは、図６の（ｂ）に示されるように、そのパケットＰ１の先頭から最初のブロックＢ１を分離し、受信バッファ２ａへ転送する。受信バッファ２ａが満杯になるとき、受信バッファ制御部２Ｂは、ホストＨに対する割込信号Ｉｎｔをアサートする。
【０１０２】
割込信号Ｉｎｔは図２に示されるように、データ線ＤＡＴの一本を通しホストＨへ送出される。ホストＨは割込信号Ｉｎｔの受信時、割込解除信号ＣＬＲをホストインタフェース４へ、コマンド線ＣＭＤを通し送出する。ホストインタフェース４は割込解除信号ＣＬＲに対するレスポンスｒを、コマンド線ＣＭＤを通しホストＨへ返信する。それと共に、受信バッファ制御部２Ｂへ割込解除信号ＣＬＲを通知する。受信バッファ制御部２Ｂは割込解除信号ＣＬＲの受信時、割込信号Ｉｎｔをネゲートする。こうして、受信バッファ２ａからホストＨへのブロック転送準備が完了する。
【０１０３】
ホストＨはコマンド線ＣＭＤを通し、ブロック送出命令Ｒｎをホストインタフェース４へ送出する。ホストインタフェース４はブロック送出命令Ｒｎに対するレスポンスｒを返信すると共に、受信バッファ制御部２Ｂへブロック送出命令Ｒｎを通知する。
受信バッファ制御部２Ｂはブロック送出命令Ｒｎの受信時、図６の（ｃ）に示されるように、受信バッファ２ａからホストインタフェース４を通しホストＨへ、最初のブロックＢ１を送出する。それと同時に、コピーバッファ３ｂへも、最初のブロックＢ１を転送する。更に、その転送終了時直ちに、パケットバッファ１ａから受信バッファ２ａへ次のブロックＢ２を転送する。
上記の転送と並行し、パケットバッファ１ａの空き領域へは伝送データＰの新たなパケットＰ２が蓄積される。
【０１０４】
ホストＨは転送された最初のブロックＢ１に対し、誤り検出を実行する。誤り検出の結果が「符号誤りなし」を示すとき、ホストＨはブロック送出命令Ｒｎを発行する。一方、誤り検出の結果が「符号誤り有り」を示すとき、ホストＨはブロック再送命令Ｒｔを発行する。
図２では、最初に転送された最初のブロックＢ１が符号誤りを含むときが例示される。
ホストＨはブロック再送命令Ｒｔを、コマンド線ＣＭＤを通し、ホストインタフェース４へ送出する。ホストインタフェース４は、ブロック再送命令Ｒｔに対するレスポンスｒを返信すると共に、コピーバッファ制御部３へブロック再送命令Ｒｔを通知する。
コピーバッファ制御部３Ｂは、ブロック再送命令Ｒｔの受信時、図６の（ｄ）に示されるように、コピーバッファ３ｂから最初のブロックＢ１をホストＨへ再送する。
【０１０５】
ホストＨは再送された最初のブロックＢ１に対し、誤り検出を実行する。誤り検出の結果に応じ、ホストＨは次に発行すべき読み出し命令を、ブロック送出命令Ｒｎ又はブロック再送命令Ｒｔのいずれかに決定する。
図２では、再送された最初のブロックＢ１が符号誤りを含まないときが例示される。
ホストＨはブロック送出命令Ｒｎを、コマンド線ＣＭＤを通し、ホストインタフェース４へ送出する。ホストインタフェース４は、ブロック送出命令Ｒｎに対するレスポンスｒを返信すると共に、受信バッファ制御部２Ｂへブロック送出命令Ｒｎを通知する。
【０１０６】
受信バッファ制御部２Ｂはブロック送出命令Ｒｎの受信時、図６の（ｅ）に示されるように、受信バッファ２ａからホストインタフェース４を通しホストＨへ次のブロックＢ２を送出する。それと同時に、コピーバッファ３ｂへ同じブロックＢ２を転送する。更に、その転送終了時直ちに、パケットバッファ１ａから受信バッファ２ａへ、その次のブロックＢ３を転送する。
こうして、実施例２による無線インタフェースカード１０Ｂはブロック転送を実行する。
【０１０７】
図７は、無線インタフェースカード１０ＢからホストＨへのブロック転送開始時、ホストＨ、ホストインタフェース４、コピーバッファ制御部３Ｂ、受信バッファ制御部２Ｂ、及び無線モジュール１の間で交換される信号のフロー図である。
ホストＨによる伝送クロック、及び無線インタフェースカード１０Ｂの内部クロックが約１５〜２５ＭＨｚ程度の周波数であるとき、ホストＨ、ホストインタフェース４、コピーバッファ制御部３Ｂ、受信バッファ制御部２Ｂ、及び無線モジュール１のそれぞれの間でのブロック転送時間はいずれも約５０〜７０μ秒であり、実質上等しいとみなせる。
【０１０８】
図７に示されるブロック転送開始時での信号のフローは、ほぼブロック転送時間程度の期間ごとに、以下のようなステップＳ１〜Ｓ７に分割される。
＜ステップＳ１＞
パケットバッファ１ａに蓄積されたパケットの先頭から最初のブロックＢ１が分離され、無線モジュール１から受信バッファ制御部２Ｂへ転送される。
＜割り込みステップＳｉｎｔ＞
受信バッファ２ａが満杯になるとき、受信バッファ制御部２ＢはホストＨに対する割込信号Ｉｎｔをアサートする。ホストＨはその割込信号Ｉｎｔに応じ、割込解除信号ＣＬＲを受信バッファ制御部２Ｂへ返信する。ホストインタフェース４はその割込解除信号ＣＬＲを正常に受信したか否かをチェックし、その結果をレスポンスｒで返信する。正常に受信された割込解除信号ＣＬＲは、ホストインタフェース４により受信バッファ制御部２Ｂへ通知される。その通知時、受信バッファ制御部２Ｂは割込信号Ｉｎｔをネゲートする。
割り込みステップＳｉｎｔの時間は、割り込み時でのホストＨの動作状況に応じ変化する。
受信バッファ２ａでは、割込信号Ｉｎｔの送出から割込解除信号ＣＬＲの正常な受信まで、データがそのまま保持される。
【０１０９】
＜ステップＳ２＞
ホストＨはブロック送出命令Ｒｎをホストインタフェース４へ送出する。ホストインタフェース４は、そのブロック送出命令Ｒｎを正常に受信したか否かをチェックし、その結果をレスポンスｒで返信する。ブロック送出命令Ｒｎの正常な受信時、ホストインタフェース４はそのブロック送出命令Ｒｎを、受信バッファ制御部２Ｂへ通知する。その通知時、受信バッファ制御部２Ｂは、受信バッファ２ａからホストＨへ最初のブロックＢ１を送出し、同時にコピーバッファ３ｂへ最初のブロックＢ１を転送する。
【０１１０】
＜ステップＳ３＞
受信バッファ２ａから最初のブロックＢ１を転送し終える時、受信バッファ制御部２Ｂは、パケットバッファ１ａから受信バッファ２ａへ次のブロックＢ２を転送する。
ホストＨは転送された最初のブロックＢ１に対し、符号誤りを検出する。更にその誤り検出結果に応じ、ブロック送出命令Ｒｎ又はブロック再送命令Ｒｔのいずれかを選択し、ホストインタフェース４へ送出する。
ホストＨがブロック送出命令Ｒｎ又はブロック再送命令Ｒｔのいずれかを発行するまで、コピーバッファ３ｂは送出済の最初のブロックＢ１を保持する。一方、受信バッファ２ａは次のブロックＢ２を保持する。
【０１１１】
図７では、ホストＨは転送された最初のブロックＢ１に対し「符号誤り有り」と判断し、ブロック再送命令Ｒｔを発行する。ホストインタフェース４はそのブロック再送命令Ｒｔを正常に受信したか否かをチェックし、その結果をレスポンスｒで返信する。ブロック再送命令Ｒｔの正常な受信時、ホストインタフェース４はそのブロック再送命令Ｒｔをコピーバッファ制御部３Ｂへ通知する。その通知時、コピーバッファ制御部３Ｂは、コピーバッファ３ｂから最初のブロックＢ１をホストＨへ再送する。
【０１１２】
＜ステップＳ４＞
ホストＨは再送された最初のブロックＢ１に対し、符号誤りを検出する。更にその検出結果に応じ、ブロック送出命令Ｒｎ又はブロック再送命令Ｒｔのいずれかを選択し、ホストインタフェース４へ送出する。
ホストＨがブロック送出命令Ｒｎ又はブロック再送命令Ｒｔのいずれかを発行するまで、受信バッファ２ａとコピーバッファ３ｂとはデータをそのまま保持する。
【０１１３】
図７では、ホストＨは再送された最初のブロックＢ１に対し「符号誤りなし」と判断し、ブロック送出命令Ｒｎを発行する。ホストインタフェース４はそのブロック送出命令Ｒｎを正常に受信したか否かをチェックし、その結果をレスポンスｒで返信する。ブロック送出命令Ｒｎの正常な受信時、ホストインタフェース４はそのブロック送出命令Ｒｎを受信バッファ制御部２Ｂへ通知する。その通知時、受信バッファ制御部２Ｂは、受信バッファ２ａからホストＨへ次のブロックＢ２を送出し、同時にコピーバッファ３ｂへそのブロックＢ２を転送する。
【０１１４】
＜ステップＳ５＞
受信バッファ２ａから二番目のブロックＢ２を転送し終える時、受信バッファ制御部２Ｂは、パケットバッファ１ａから受信バッファ２ａへ、三番目のブロックＢ３を転送する。
ホストＨは転送された二番目のブロックＢ２に対し、符号誤りを検出する。更にその誤り検出結果に応じ、ブロック送出命令Ｒｎ又はブロック再送命令Ｒｔのいずれかを選択し、ホストインタフェース４へ送出する。
ホストＨがブロック送出命令Ｒｎ又はブロック再送命令Ｒｔのいずれかを発行するまで、コピーバッファ３ｂは送出済の二番目のブロックＢ２を保持する。一方、受信バッファ２ａは三番目のブロックＢ３を保持する。
図７では、ホストＨは二番目のブロックＢ２に対し「符号誤りなし」と判断し、ブロック送出命令Ｒｎを発行する。ホストインタフェース４はそのブロック送出命令Ｒｎを正常に受信したか否かをチェックし、その結果をレスポンスｒで返信する。ブロック送出命令Ｒｎの正常な受信時、ホストインタフェース４はそのブロック送出命令Ｒｎを受信バッファ制御部２Ｂへ通知する。
【０１１５】
＜ステップＳ６＞
受信バッファ制御部２Ｂはブロック送出命令Ｒｎに従い、受信バッファ２ａからホストＨへ三番目のブロックＢ３を送出し、同時にコピーバッファ３ｂへそのブロックＢ３を転送する。
＜ステップＳ７＞
受信バッファ２ａから三番目のブロックＢ３を転送し終える時、受信バッファ制御部２Ｂは、パケットバッファ１ａから受信バッファ２ａへ、四番目のブロックＢ４を転送する。
ホストＨは転送された三番目のブロックＢ３に対し、符号誤りを検出する。更にその誤り検出結果に応じ、ブロック送出命令Ｒｎ又はブロック再送命令Ｒｔのいずれかを選択し、ホストインタフェース４へ送出する。
ホストＨがブロック送出命令Ｒｎ又はブロック再送命令Ｒｔのいずれかを発行するまで、コピーバッファ３ｂは送出済の三番目のブロックＢ３を保持する。一方、受信バッファ２ａは四番目のブロックＢ４を保持する。
【０１１６】
図７では、ホストＨは三番目のブロックＢ３に対し「符号誤りなし」と判断し、ブロック送出命令Ｒｎを発行する。ホストインタフェース４はそのブロック送出命令Ｒｎを正常に受信したか否かをチェックし、その結果をレスポンスｒで返信する。ブロック送出命令Ｒｎの正常な受信時、ホストインタフェース４はそのブロック送出命令Ｒｎを受信バッファ制御部２Ｂへ通知する。
以下、同様なステップが繰り返される。
【０１１７】
実施例２による無線インタフェースカード１０Ｂは上記の通り、パケットバッファ１ａと受信バッファ２ａとの他に、副バッファとしてコピーバッファ３ｂを有する。無線インタフェースカード１０Ｂはブロックを、受信バッファ２ａからホストＨへ送出すると同時に、コピーバッファ３ｂへ転送する。それにより、コピーバッファ３ｂで送出済ブロックを保持し、受信バッファ２ａでは次の未送ブロックを保持する。
ホストＨは、読み出し命令の宛先アドレスを受信バッファ２ａ又はコピーバッファ３ｂのいずれかに対応させるだけで、共通の読み出し命令をブロック送出命令Ｒｎ又はブロック再送命令Ｒｔとして使い分けできる。従って、ホストＨは、従来のデータ転送装置との間のブロック転送とは異なり、一ブロックの転送ごとに、次の未送ブロックの転送又は送出済ブロックの再送のいずれかを指示するためだけのハンドシェイクを行わなくても良い。実際、図７に示される実施例２でのフロー図には、図１４に示される従来のデータ転送装置でのフロー図とは異なり、エラーチェックステップＳＷが含まれない。
【０１１８】
こうして、ブロック転送のプロトコルが従来のものより簡素であるので、ブロック転送が従来のデータ転送装置より速い。更に、ブロック転送に対する制御について、ホストＨの負担を軽減できる。それにより、ＣＰＵのパワーが比較的小さいホストに対し、無線インタフェースカード１０Ｂはスムーズなブロック転送を実現できる。
【０１１９】
実施例２による無線インタフェースカード１０Ｂでは、図７のステップＳ３、Ｓ５、及びＳ７に示されるように、一つのブロックが受信バッファ２ａからホストＨへ送出されると直ちに、次のブロックがパケットバッファ１ａから受信バッファ２ａへ転送される。そのとき、受信バッファ２ａへの次のブロックの転送は特に、前のブロックがホストＨにより正常に受信されたか否かに関わらない。従って、前のブロックのホストＨへの送出にエラーが生じても、ステップＳ３、Ｓ５、及びＳ７のそれぞれの終了時には、次のブロックがパケットバッファ１ａから受信バッファ２ａへ転送される。このブロック転送は、図１４に示される従来のものより一ステップだけ速い。そのことは、実施例２では受信バッファ２ａによる同一ブロックの保持時間がせいぜい一ステップ程度に限られることから理解される。
【０１２０】
こうして、実施例２による無線インタフェースカード１０Ｂでは、全てのブロックに対するパケットバッファ１ａから受信バッファ２ａへの転送が、従来の装置より実質的に速い。従って、パケットバッファ１ａでの空き領域が素早く、かつ大きく確保されるので、パケットバッファ１ａからパケットのデータが溢れない。その結果、データ転送の信頼性を向上できる。
【０１２１】
《実施例３》
図８は、ホストＨから外部無線ＬＡＮへのデータ転送時、本発明の実施例３による無線インタフェースカード２０内でのデータの流れを示すブロック図である。無線インタフェースカード２０は、実施例１と実施例２とのそれぞれによる無線インタフェースカードと同様なデータ転送装置である。
無線インタフェースカード２０は無線モジュール１、送信バッファ制御部５、及びホストインタフェース４を有する。
無線モジュール１、ホストインタフェース４、及びバス６は実施例１によるものと同様であるので、それらの説明は実施例１でのものを援用する。
【０１２２】
送信バッファ制御部５は送信バッファ５ａを含む。送信バッファ５ａは好ましくはＦＩＦＯメモリであり、一定のデータ容量を持つ。その一定のデータ量は、ホストＨへのデータ転送単位（ブロック）に実質的に等しく、例えば５１２Ｂである。
ホストＨから送出された送信対象ブロックＢＴがホストインタフェース４により受信されるとき、送信バッファ制御部５はその送信対象ブロックＢＴを、送信バッファ５ａへ転送する。
送信バッファ５ａが満杯になるとき、送信バッファ制御部５は送信対象ブロックＢＴを、送信バッファ５ａから無線モジュール１のパケットバッファ１ａへ転送する。
無線モジュール１はパケットバッファ１ａへ蓄積された複数の送信対象ブロックＢＴから一つのパケットＰを構成し、アンテナＡを通し、外部の無線ＬＡＮ等へ無線で送信する。
【０１２３】
ホストＨからの書き込み命令Ｗの受信時、送信バッファ制御部５はその書き込み命令Ｗの宛先アドレスに応じ、その書き込み命令Ｗに続く送信対象ブロックＢＴが、新たなブロック又は再送ブロックのいずれであるのかを識別する。
例えば、宛先アドレスが送信バッファ５ａに対応するとき、送信バッファ制御部５は送信対象ブロックＢＴを、新たなブロックとして認識する。一方、宛先アドレスが送信バッファ５ａのアドレスとは別の特定のものに対応するとき、送信バッファ制御部５は送信対象ブロックＢＴを、再送ブロックとして認識する。
その他に、送信バッファ制御部５は、書き込み命令Ｗの宛先アドレスを示すデータ内の特定ビット、例えば最上位ビットに基づき、送信対象ブロックを識別しても良い。すなわち、最上位ビットが「０」のときは送信対象ブロックを新たなブロックとして認識し、「１」のときは再送ブロックとして認識する。
以下、宛先アドレスを送信バッファ２ａに対応させた書き込み命令Ｗをブロック送出通知Ｗｎとし、宛先アドレスを上記の特定アドレスに対応させた書き込み命令Ｗをブロック再送通知Ｗｔとする。
【０１２４】
図９は、ホストＨから無線インタフェースカード２０へのブロック転送時、ホストインタフェース４とホストＨとの間で交換される信号のタイミング図である。図９では図４及び図７と同様に、コマンド線ＣＭＤ及びデータ線ＤＡＴ上の信号に対し、矢印でそれぞれの伝送方向が示される。すなわち、左向きの矢印は上り方向伝送を示し、右向きの矢印は下り方向伝送を示す。
【０１２５】
図９はブロック転送の開始時に対応する。ホストＨはコマンド線ＣＭＤを通し、ブロック送出通知Ｗｎをホストインタフェース４へ送出する。ホストインタフェース４はそのブロック送出通知Ｗｎに対し、レスポンスｒを送出する。
ブロック送出通知Ｗｎの正常な受信時、ホストインタフェース４は送信バッファ制御部５へそのブロック送出通知Ｗｎを通知する。一方、ホストＨは送信バッファ制御部５へ最初のブロックＢ１を、データ線ＤＡＴを通し送出する。ホストインタフェース４はそのブロックＢ１を送信バッファ制御部５へ中継する。送信バッファ制御部５は、受信した最初のブロックＢ１を送信バッファ５ａに蓄積し、誤り検出を行う。更に、その誤り検出結果をホストＨへ、ホストインタフェース４とデータ線ＤＡＴとを通し返送する。
【０１２６】
送信バッファ制御部５は、誤り検出結果の送出から所定時間、ビジー信号Ｂｓｙをアサートする。それにより、ホストＨによる書き込み命令Ｗの発行間隔、すなわち送信バッファ５ａの更新間隔を所定の大きさ以上に維持し、上書きによる送信対象ブロックの損傷を防ぐ。
【０１２７】
ここで、送信バッファ制御部５がホストＨから転送された最初のブロックＢ１に対し符号誤りを検出した、と想定する。そのとき、送信バッファ制御部５は受信済の最初のブロックＢ１を破棄する。更に、「符号誤り有り」を示す誤り検出結果ＮＧを、ホストＨへ返送する。
返送された誤り検出結果ＮＧが「符号誤り有り」を示すことから、ホストＨは、最初のブロックＢ１の転送にエラーが有った、と判断する。その判断に基づき、ホストＨはブロック再送通知Ｗｔをホストインタフェース４へ、コマンド線ＣＭＤを通し送出する。ホストインタフェース４はそのブロック再送通知Ｗｔに対し、レスポンスｒを送出する。
【０１２８】
ブロック再送通知Ｗｔの正常な受信時、ホストインタフェース４は送信バッファ制御部５へそのブロック再送通知Ｗｔを通知する。一方、ホストＨは送信バッファ制御部５へ最初のブロックＢ１を、データ線ＤＡＴを通し再送する。ホストインタフェース４はその再送ブロックＢ１を送信バッファ制御部５へ中継する。送信バッファ制御部５は、受信した再送ブロックＢ１を送信バッファ５ａに蓄積し、誤り検出を行う。更に、その誤り検出結果をホストＨへ返送する。
こうして、最初のブロックＢ１の再送が実行される。
【０１２９】
ここで、送信バッファ制御部５は、ホストＨから再送された最初のブロックＢ１に対し符号誤りを検出しなかった、と想定する。そのとき、送信バッファ制御部５は「符号誤りなし」を示す誤り検出結果ＯＫを、ホストＨへ返送する。
返送された誤り検出結果ＯＫが「符号誤りなし」を示すことから、ホストＨは、再送ブロックＢ１の転送に成功した、と判断する。その判断に基づき、ホストＨは次のブロックについてのブロック送出通知Ｗｎをホストインタフェース４へ、コマンド線ＣＭＤを通し送出する。ホストインタフェース４はそのブロック送出通知Ｗｎに対し、レスポンスｒを送出する。
【０１３０】
ブロック送出通知Ｗｎの正常な受信時、ホストインタフェース４は送信バッファ制御部５へそのブロック送出通知Ｗｎを通知する。一方、ホストＨは送信バッファ制御部５へ次のブロックＢ２を、データ線ＤＡＴを通し再送する。ホストインタフェース４はその新たなブロックＢ２を送信バッファ制御部５へ中継する。送信バッファ制御部５は、受信したブロックＢ２を送信バッファ５ａに蓄積し、誤り検出を行う。更にその誤り検出結果をホストＨへ返送する。
以降、送信対象ブロックのそれぞれについて、上記と同様な操作が繰り返される。
【０１３１】
図１０は、ホストＨから無線インタフェースカード２０へのブロック転送開始時、ホストＨ、ホストインタフェース４、送信バッファ制御部５、及び無線モジュール１の間で交換される信号のフロー図である。
ホストＨとホストインタフェース４との間でのデータ転送速度は、伝送クロックの周波数で実質上決定される。伝送クロック周波数はホストＨごとに異なり、更に、同じホストＨでもその動作状況に応じ変化する。しかし、ホストＨから送信バッファ５ａへのブロック転送時間は、送信バッファ５ａからパケットバッファ１ａへのブロック転送時間と、一般に同程度として良い。
【０１３２】
図１０に示されるブロック転送開始時での信号のフローは、ほぼブロック転送時間程度の期間ごとに、以下のようなステップＴ１〜Ｔ５に分割される。更に、それぞれのステップの間に、エラー通知ステップＴＥが以下のように挿入される。
【０１３３】
＜ステップＴ１＞
ホストＨはブロック送出通知Ｗｎをホストインタフェース４へ送出する。ホストインタフェース４はそのブロック送出通知Ｗｎに対し、レスポンスｒを送出する。
ブロック送出通知Ｗｎの正常な受信時、ホストインタフェース４は送信バッファ制御部５へそのブロック送出通知Ｗｎを通知する。一方、ホストＨは送信バッファ制御部５へ最初のブロックＢ１を送出する。ホストインタフェース４はそのブロックＢ１を送信バッファ制御部５へ中継する。送信バッファ制御部５は、受信した最初のブロックＢ１を送信バッファ５ａに蓄積する。
【０１３４】
＜エラー通知ステップＴＥ＞
送信バッファ制御部５は、送信バッファ５ａに蓄積した最初のブロックＢ１に対し誤り検出を行う。ここで、最初のブロックＢ１について転送エラーが有った、と想定する。送信バッファ制御部５は、その誤り検出結果ＮＧをホストＨへ返送し、所定時間、ビジー信号Ｂｓｙをアサートする。更に、受信済の最初のブロックＢ１を破棄する。
【０１３５】
＜ステップＴ２＞
ホストＨは、誤り検出結果ＮＧの受信に応じ、最初のブロックＢ１の再送を決定する。それにより、ビジー信号Ｂｓｙのネゲート時、ブロック再送通知Ｗｔをホストインタフェース４へ送出する。ホストインタフェース４はそのブロック再送通知Ｗｔに対しレスポンスｒを送出する。
ブロック再送通知Ｗｔの正常な受信時、ホストインタフェース４は送信バッファ制御部５へそのブロック再送通知Ｗｔを通知する。一方、ホストＨは送信バッファ制御部５へ最初のブロックＢ１を再送する。ホストインタフェース４はその再送ブロックＢ１を送信バッファ制御部５へ中継する。送信バッファ制御部５は、受信した再送ブロックＢ１を送信バッファ５ａに蓄積する。
【０１３６】
＜ステップＴ３＞
送信バッファ制御部５は、送信バッファ５ａに蓄積した再送ブロックＢ１に対し誤り検出を行う。ここで、再送ブロックＢ１は正常に転送され、符号誤りを含まなかった、と想定する。送信バッファ制御部５はその誤り検出結果ＯＫをホストＨへ返送する。更に、再送ブロックＢ１を送信バッファ５ａから無線モジュール１のパケットバッファ１ａへ転送する。その転送完了時、ビジー信号Ｂｓｙをネゲートする。
【０１３７】
＜ステップＴ４＞
ホストＨは、誤り検出結果ＯＫの受信に応じ、次の新たなブロックＢ２の送出を決定する。それにより、ビジー信号Ｂｓｙのネゲート時、ホストＨはブロック送出通知Ｗｎを送信バッファ制御部５へ送出する。ホストインタフェース４はそのブロック送出通知Ｗｎを正常に受信したか否かをチェックし、その結果をレスポンスｒで返信する。
ブロック送出通知Ｗｎの正常な受信時、ホストインタフェース４はそのブロック送出通知Ｗｎを送信バッファ制御部５へ通知する。一方、ホストＨは送信バッファ制御部５へ、次の新たなブロックＢ２を送出する。ホストインタフェース４はそのブロックＢ２を送信バッファ制御部５へ中継し、送信バッファ制御部５はそのブロックＢ２を送信バッファ５ａに蓄積する。
【０１３８】
＜ステップＴ５＞
送信バッファ制御部５は、送信バッファ５ａに蓄積した二番目のブロックＢ２に対し誤り検出を行う。ここで、二番目のブロックＢ２は正常に転送され、符号誤りを含まなかった、と想定する。送信バッファ制御部５はその誤り検出結果ＯＫをホストＨへ返送する。更に、二番目のブロックＢ２を送信バッファ５ａから無線モジュール１のパケットバッファ１ａへ転送する。その転送完了時、ビジー信号Ｂｓｙをネゲートする。
以下、同様なステップが繰り返される。
無線モジュール１は、パケットバッファ１ａへ蓄積された複数の送信対象ブロックから一つのパケットを構成し、外部無線ＬＡＮ等へ送出する。
【０１３９】
実施例３による無線インタフェースカード２０は上記の通り、送信バッファ５ａとパケットバッファ１ａとの二種類のバッファを利用し、ホストＨから受信した複数の送信対象ブロックを一つのパケットにまとめ、外部無線ＬＡＮ等へ送出する。それにより、ホストＨとの間での通信データ形態（ブロック）を無線ＬＡＮ等での伝送データ形態（パケット）へ変換する。更に、ホストＨは伝送クロックの周波数の調整を通し、ブロック転送速度を制御する。こうして、ホストＨは無線ＬＡＮ等へデータをスムーズに送信する。
【０１４０】
送信バッファ制御部５は、転送されたブロックごとに、その符号誤りの有無をホストＨへ通知する。通知された誤り検出結果が「符号誤り有り」を示すとき、ホストＨは同じブロックを再送する。この再送処理により、データの欠落が防止される。こうして、無線インタフェースカード２０は、ホストＨによるデータ送信について、信頼性を高く維持する。
【０１４１】
実施例３による無線インタフェースカード２０に対し、ホストＨは、書き込み命令の宛先アドレスを送信バッファ５ａ又は特定アドレスのいずれかに対応させるだけで、共通の書き込み命令をブロック送出通知Ｗｎ又はブロック再送通知Ｗｔとして使い分けできる。従って、ホストＨは無線インタフェースカード２０に対しては、従来のデータ転送装置とは異なり、ブロック再送を予め通知しなくても良い。実際、図１０に示される実施例３でのフロー図には、図１６に示される従来のデータ転送装置でのフロー図とは異なり、再送通知ステップＴＷが含まれない。
【０１４２】
こうして、ブロック転送のプロトコルが、特にブロック再送について従来のものより簡素であるので、ブロック転送が従来のデータ転送装置より速い。更に、ブロック転送に対する制御について、ホストＨの負担を軽減できる。それによりＣＰＵのパワーが比較的小さいホストに対し、無線インタフェースカード２０はスムーズなブロック転送を実現できる。
【０１４３】
【発明の効果】
本発明の一つの観点によるデータ転送装置は、パケットバッファと受信バッファとの他に副バッファを有する。ホストへのブロック転送時、送出済ブロックは副バッファに保持され、転送エラーが生じた時は副バッファから再送される。従って、受信バッファは送出済ブロックを保持しなくても良く、特に副バッファへそのブロックを転送した後、直ちに次の未送ブロックを上書きされても良い。それにより、ホストへのブロック転送の開始時、最初のブロックに続き二番目のブロックが、最初のブロックの再送の有無に関わらず、直ちにパケットバッファから受信バッファへ転送される。
その結果、上記のデータ転送装置では、パケット内の最初の二つのブロックに対し、パケットバッファから受信バッファへの転送が従来のデータ転送装置より速い。特に、受信バッファによる最初のブロックの保持時間が短い。こうして、パケットバッファでは、その最初の二つのブロックに相当する記録領域が速やかに開放され、次のパケットの記憶領域として速やかに確保される。それ故、パケットバッファからパケットのデータが溢れることを回避できる。
【０１４４】
上記のデータ転送装置は、ブロック送出命令の受信時、未送ブロックを受信バッファから副バッファへ転送し、更に副バッファからホストへ送出しても良い。その他に、ブロック送出命令の受信時、未送ブロックを受信バッファから副バッファへ転送し、同時にその未送ブロックを受信バッファからホストへ送出しても良い。それにより、副バッファには送出済ブロックが保持され、受信バッファには次の未送ブロックが保持される。
【０１４５】
ホストはそのデータ転送装置に対し、受信バッファ又は副バッファのいずれかからの読み出しを指示するだけで、次の未送ブロックの転送又は送出済ブロックの再送を選択できる。
例えば、読み出し命令の宛先アドレスを受信バッファ又は副バッファのいずれかに対応させるだけで、その読み出し命令をブロック送出命令又はブロック再送命令として使い分けできる。
その他に、宛先アドレスを示すデータの特定ビットに基づき、その読み出し命令をブロック送出命令又はブロック再送命令のいずれかとして識別しても良い。例えば、その特定ビットが「１」のとき、その読み出し命令がブロック再送命令とみなされ、「０」のときブロック送出命令とみなされても良い。
【０１４６】
従って、ホストは上記のデータ転送装置に対しては、従来のデータ転送装置とは異なり、一ブロックの転送ごとに、次の未送ブロックの転送又は送出済ブロックの再送をそれぞれ指示するためだけのハンドシェイクを行わなくても良い。
こうして、ブロック転送のプロトコルが従来のものより簡素であるので、ブロック転送が従来のデータ転送装置より速い。更に、ブロック転送に対する制御について、ホストの負担を軽減できる。それにより、ＣＰＵのパワーが比較的小さいホストについても、上記のデータ転送装置は高い信頼性を維持できる。
【０１４７】
上記のデータ転送装置では、特に未送ブロックを受信バッファから副バッファとホストとの両方へ同時に送出するとき、全てのブロックについてパケットバッファから受信バッファへの転送が従来のデータ転送装置より速い。特に、受信バッファによる同一ブロックの保持時間が短い。従って、パケットバッファでの記録領域の開放が特に速やかであるので、パケットバッファからパケットのデータが溢れることが十分に回避できる。
【０１４８】
本発明の別の観点によるデータ転送装置は、ホストからの読み出し命令の宛先アドレスに基づき、共通の読み出し命令をブロック送出命令又はブロック再送命令のいずれかとして識別する。
例えば、ブロックバッファのアドレスを宛先アドレスとして含む読み出し命令をブロック送出命令とみなし、特定の宛先アドレスを含む読み出し命令をブロック再送命令とみなす。
その他に、上記のデータ転送装置は、読み出し命令の宛先アドレスを示すデータの特定ビットに基づき、その読み出し命令をブロック再送命令とみなしても良い。例えば、その特定ビットが「１」のとき、その読み出し命令がブロック再送命令とみなされ、「０」のときブロック送出命令とみなされても良い。
【０１４９】
上記の判断により、ホストは上記のデータ転送装置に対し、共通の読み出し命令の宛先アドレスを付け替えるだけで、次の未送ブロックの転送又は送出済ブロックの再送をそれぞれ指示できる。従って、ホストは、従来のデータ転送装置との間のブロック転送とは異なり、一ブロックの転送ごとに、次の未送ブロックの転送又は送出済ブロックの再送をそれぞれ指示するためだけのハンドシェイクを行わなくても良い。
こうして、ブロック転送のプロトコルが従来のものより簡素であるので、ブロック転送が従来のデータ転送装置より速い。更に、ブロック転送に対する制御について、ホストの負担を軽減できる。それにより、ＣＰＵのパワーが比較的小さいホストについても、上記のデータ転送装置は高い信頼性を維持できる。
【０１５０】
本発明の更に別の観点によるデータ転送装置は、ホストからの書き込み命令の宛先アドレスに基づき、共通の書き込み命令をブロック送出通知又はブロック再送通知のいずれかとして識別する。
例えば、ブロックバッファのアドレスを宛先アドレスとして含む書き込み命令をブロック送出通知とみなし、特定の宛先アドレスを含む書き込み命令をブロック再送通知とみなす。
その他に、上記のデータ転送装置は、書き込み命令の宛先アドレスを示すデータの特定ビットに基づき、その書き込み命令をブロック再送通知とみなしても良い。例えば、その特定ビットが「１」のとき、その書き込み命令がブロック再送通知とみなされ、「０」のときブロック送出通知とみなされても良い。
【０１５１】
上記の判断により、ホストは上記のデータ転送装置に対し、共通の書き込み命令の宛先アドレスを付け替えるだけで、次の送信対象ブロックの転送又は送出済ブロックの再送をそれぞれ通知できる。従って、ホストは、従来のデータ転送装置との間のブロック転送とは異なり、送出済ブロックの再送を予め通知するためだけのハンドシェイクを行わなくても良い。
こうして、ブロック転送のプロトコルが、特にブロック再送について従来のものより簡素であるので、ブロック転送が従来のデータ転送装置より速い。更に、ブロック転送に対する制御について、ホストの負担を軽減できる。それにより、ＣＰＵのパワーが比較的小さいホストについても、上記のデータ転送装置は高い信頼性を維持できる。
【図面の簡単な説明】
【図１】外部無線ＬＡＮからホストＨへのデータ転送時、本発明の実施例１による無線インタフェースカード１０Ａ内でのデータの流れを示すブロック図である。
【図２】本発明の実施例１による無線インタフェースカード１０ＡからホストＨへのブロック転送時、ホストインタフェース４とホストＨとの間で交換される信号のタイミング図である。
【図３】本発明の実施例１による無線インタフェースカード１０Ａで、図２に示されたものと同じブロック転送時、パケットバッファ１ａ、受信バッファ２ａ、及び転送バッファ３ａでのブロック転送を模式的に示す図である。（ａ）〜（ｆ）はそれぞれ、ブロック転送の開始からほぼ一ステップごとに、各バッファ間でのブロック転送を示す。
【図４】本発明の実施例１による無線インタフェースカード１０ＡからホストＨへのブロック転送開始時、ホストＨ、ホストインタフェース４、転送バッファ制御部３Ａ、受信バッファ制御部２Ａ、及び無線モジュール１の間で交換される信号のフロー図である。
【図５】外部無線ＬＡＮからホストＨへのデータ転送時、本発明の実施例２による無線インタフェースカード１０Ｂ内でのデータの流れを示すブロック図である。
【図６】本発明の実施例２による無線インタフェースカード１０ＢからホストＨへのブロック転送時、パケットバッファ１ａ、受信バッファ２ａ、及びコピーバッファ３ｂでのブロック転送を模式的に示す図である。（ａ）〜（ｅ）はそれぞれ、ブロック転送の開始からほぼ一ステップごとに、各バッファ間でのブロック転送を示す。
【図７】本発明の実施例２による無線インタフェースカード２０からホストＨへのブロック転送開始時、ホストＨ、ホストインタフェース４、コピーバッファ制御部３Ｂ、受信バッファ制御部２Ｂ、及び無線モジュール１の間で交換される信号のフロー図である。
【図８】ホストＨから外部無線ＬＡＮへのデータ転送時、本発明の実施例３による無線インタフェースカード２０内でのデータの流れを示すブロック図である。
【図９】ホストＨから本発明の実施例３による無線インタフェースカード２０へのブロック転送時、ホストインタフェース４とホストＨとの間で交換される信号のタイミング図である。
【図１０】ホストＨから本発明の実施例３による無線インタフェースカード２０へのブロック転送開始時、ホストＨ、ホストインタフェース４、送信バッファ制御部５、及び無線モジュール１の間で交換される信号のフロー図である。
【図１１】ホストＨと外部の無線ＬＡＮ等との間でのデータ交換時、従来の無線インタフェースカード１００内でのデータの流れを示すブロック図である。
【図１２】従来の無線インタフェースカード１００からホストＨへのブロック転送時、ホストインタフェース４とホストＨとの間で交換される信号のタイミング図である。（ａ）はブロック転送の開始直後のタイミング図であり、（ｂ）は（ａ）に示されたものに続く部分である。
【図１３】従来の無線インタフェースカード１００で、図１２に示されたものと同じブロック転送時、パケットバッファ１ａ及び受信バッファ２ａでのブロック転送を模式的に示す図である。（ａ）〜（ｅ）はそれぞれ、ブロック転送の開始からほぼ一ステップごとに、各バッファ間でのブロック転送を示す。
【図１４】従来の無線インタフェースカード１００からホストＨへのブロック転送開始時、ホストＨ、ホストインタフェース４、受信バッファ制御部２、及び無線モジュール１の間で交換される信号のフロー図である。
【図１５】ホストＨから従来の無線インタフェースカード１００へのブロック転送時、ホストインタフェース４とホストＨとの間で交換される信号のタイミング図である。（ａ）はブロック転送の開始直後のタイミング図であり、（ｂ）は最初のブロックＢ１の再送を含むときのタイミング図である。
【図１６】ホストＨから従来の無線インタフェースカード１００へのブロック転送開始時、ホストＨ、ホストインタフェース４、送信バッファ制御部５、及び無線モジュール１の間で交換される信号についてのフロー図である。
【符号の説明】
Ａ　　　　アンテナ
Ｐ　　　　伝送データ
ＢＲ　　　ブロック
Ｉｎｔ　　　割り込み信号
Ｒ　　　　読み出し命令
６　　　　バス
ＣＭＤ　　　コマンド線
ＣＬＫ　　　クロック線
ＤＡＴ　　　データ線
【図１】
2004056348.tif 000003
【図２】
2004056348.tif 000004
【図３】
2004056348.tif 000005
【図４】
2004056348.tif 000006
【図５】
2004056348.tif 000007
【図６】
2004056348.tif 000008
【図７】
2004056348.tif 000009
【図８】
2004056348.tif 000010
【図９】
2004056348.tif 000011
【図１０】
2004056348.tif 000012
【図１１】
2004056348.tif 000013
【図１２】
2004056348.tif 000014
【図１３】
2004056348.tif 000015
【図１４】
2004056348.tif 000016
【図１５】
2004056348.tif 000017
【図１６】
2004056348.tif 000018