(57)【要約】【課題】ＡＲＱ方式を採用する通信装置において、再送バッファのサイズを大きくすることなく、送信データの品質劣化を少なくすることが可能な通信装置を提供する。【解決手段】信号制御部１４０は、管理表１４１に基づき、メモリ１３５に格納されている送信データの中で最も早く書き換えられる可能性のある受信側に未達の送信データを検出するとともに、メモリ１３５に格納しておく必要のない送達済みの送信データを格納している送信データ格納領域のうち、検出した未達の送信データを格納する送信データ格納領域よりも後に新しい送信データが書き込まれる送信データ格納領域を検出し、検出した未達の送信データをメモリ１３５から読み出し、読み出した未達の送信データを、検出した送信データ格納領域に格納する。【選択図】      図２
2005005968.tif 000002
【特許請求の範囲】
【請求項１】
誤り制御方式として自動再送要求を採用し、送信データを受信する受信側から該送信データの送達状態を示す送達状態情報を受け取る通信装置に設けられる再送バッファ制御装置であって、
送信データ格納領域を有し、該送信データ格納領域に前記送信データを格納する再送バッファと、
前記送達状態情報に基づき、前記再送バッファに格納されている送信データの中から前記受信側に未達の送信データを読み出し、前記受信側に送達済みの送信データを格納する送信データ格納領域の中で前記読み出した受信側に未達の送信データを格納する送信データ格納領域よりも後に新しい送信データが書き込まれる送信データ格納領域に、前記読み出した受信側に未達の送信データを格納する再送バッファ制御手段と
を含むことを特徴とする再送バッファ制御装置。
【請求項２】
請求項１に記載の再送バッファ制御装置において、
前記再送バッファは、前記新しい送信データの直前の送信データを格納した送信データ格納領域のアドレスよりも大きい値のアドレスを有する送信データ格納領域に該新しい送信データを格納し、
前記再送バッファ制御手段は、前記受信側に送達済みの送信データを格納する送信データ格納領域の中で前記読み出した受信側に未達の送信データを格納している送信データ格納領域のアドレスよりも大きいアドレスを有する送信データ格納領域に、前記読み出した受信側に未達の送信データを格納する
ことを特徴とする再送バッファ制御装置。
【請求項３】
請求項１または２に記載の再送バッファ制御装置において、
前記再送バッファ制御手段は、前記送達状態情報を記録する送達状態記録手段を含むことを特徴とする再送バッファ制御装置。
【請求項４】
請求項３に記載の再送バッファ制御装置において、
前記再送バッファ制御手段は、前記受信側に未達の送信データの格納先を示す格納先情報を前記送達状態記録手段に記録し、前記読み出した受信側に未達の送信データが格納された送信データ格納領域に格納されていた受信側に送達済みの送信データに対する送達状態を前記送達状態記録手段から削除することを特徴とする再送バッファ制御装置。
【請求項５】
請求項１ないし４のいずれかに記載の再送バッファ制御装置と、再送バッファ制御装置が有する再送バッファに格納された送信データを前記受信側に送信する送信部とを含むことを特徴とする通信装置。
【請求項６】
誤り制御方式として自動再送要求を採用し、送信データを受信する受信側から該送信データの送達状態を示す送達状態情報を受け取る通信装置における再送バッファ制御方法であって、
前記送達状態情報に基づき、送信データ格納領域に前記送信データを格納する再送バッファに格納されている送信データの中から前記受信側に未達の送信データを読み出し、前記受信側に送達済みの送信データを格納する送信データ格納領域の中で前記読み出した受信側に未達の送信データを格納する送信データ格納領域よりも後に新しい送信データが書き込まれる送信データ格納領域に、前記読み出した受信側に未達の送信データを格納する再送バッファ制御ステップを含むことを特徴とする再送バッファ制御方法。
【請求項７】
請求項６に記載の再送バッファ制御方法において、
前記新しい送信データの直前の送信データを格納した送信データ格納領域のアドレスよりも大きい値のアドレスを有する送信データ格納領域に該新しい送信データを格納する格納ステップをさらに有し、
前記再送バッファ制御ステップは、前記受信側に送達済みの送信データを格納する送信データ格納領域の中で前記読み出した受信側に未達の送信データを格納している送信データ格納領域のアドレスよりも大きいアドレスを有する送信データ格納領域に、前記読み出した受信側に未達の送信データを格納する
ことを特徴とする再送バッファ制御方法。
【請求項８】
請求項６または７に記載の再送バッファ制御方法において、
前記送達状態情報を送達状態記録手段に記録する記録ステップをさらに含むことを特徴とする再送バッファ制御方法。
【請求項９】
請求項８に記載の再送バッファ制御方法において、
前記再送バッファ制御ステップは、前記受信側に未達の送信データの格納先を示す格納先情報を前記送達状態記録手段に記録し、前記読み出した受信側に未達の送信データが格納された送信データ格納領域に格納されていた受信側に送達済みの送信データに対する送達状態を前記送達状態記録手段から削除する
ことを特徴とする再送バッファ制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、誤り制御方式としてＡＲＱ（自動再送要求：Ａｕｔｏｍａｔｉｃ  Ｒｅｐｅａｔ  Ｒｅｑｕｅｓｔ）を採用する通信装置、その通信装置に設けられる再送バッファ制御装置および再送バッファ制御方法に関し、特には、再送バッファ内のデータの格納位置を制御する再送バッファ制御装置、再送バッファ制御方法および通信装置に関する。
【０００２】
【従来の技術】
ＡＲＱを用いた従来の通信装置において、データ送信側が有する再送バッファを制御する装置が存在する。
【０００３】
再送バッファには複数の送信データが順番に格納され、再送バッファのすべての送信データ格納領域に送信データを格納すると、新たな送信データは最も古い送信データを格納している送信データ格納領域に格納される。
【０００４】
伝播路が劣悪な環境、例えば電界強度が小さかったり、フェージングが存在したりするような場合には、送信データが受信側へ誤りなく伝達される確率が減少し、ＡＲＱ方式を用いた場合には、結果として送信データの再送が繰り返され、再送バッファには受信側に未送達の送信データが蓄積されていく。
【０００５】
図１０は、再送が繰り返された状況での再送バッファ１の記憶内容を説明するための説明図である。図１０では、再送バッファ１としてリングバッファを用いている。なお、再送バッファとしてリングバッファを用いることは一般的なことである。
【０００６】
図１０において、「△」は上位レイヤから新たに流入した送信待ち状態の未送信の送信データ（新規データ）であり、「ＯＫ」は受信側よりＡＣＫ（送達完了）の通知を受信済みの送信データであり、「ＮＧ」は受信側よりＮＡＣＫ（送達未完）の通知だけを受信した送信データである。
【０００７】
図１０に示した「ＯＫ」と「ＮＧ」の各送信データは、図面下の行へ進むほど現在時刻に近い時刻に再送バッファ１に流入したものである。
【０００８】
図１０に示した「△」の各送信データは、図面下の行へ進むほど現在時刻に近い時刻に再送バッファ１に流入したものである。
【０００９】
図１０（ａ）に示した状態より後に上位レイヤから新たに流入した送信待ち状態の未送信の送信データは、図１０（ａ）の「ＯＫ」１ａの箇所から図面下に向かって格納されていく。
【００１０】
伝播状態が劣悪であると、再送を繰り返しているが送達確認ＡＣＫを得られずに未送達の状態となる送信データ（図１０において「ＮＧ」で示した送信データ）がいつまでも再送バッファ１に蓄積されたままになる。
【００１１】
未送達の送信データは、やがては新規に再送バッファ１へ流入する新規データ（図１０において「△」で示した送信データ）に上書きされ、結局、未送達の送信データは受信側へ正しく送信されないままで終わる。
【００１２】
図１０（ｂ）は、図１０（ａ）の状態から３行分の送信データが新たに再送バッファ１に流入されたときの再送バッファ１の状態を示した図である。
【００１３】
図１０（ｂ）では、「ＮＧ」の上に新規データが上書きされている（同図において「▲」で図示してある）。よって、未送達の状態の送信データが削除され、通信品質が低下してしまう。
【００１４】
特許文献１と特許文献２には、再送バッファを制御する装置が記載されている。
【００１５】
特許文献１（特開２００２−２７１４３５号公報）には、再送バッファとしての送信バッファに所定の空き領域が存在する場合、送信バッファに格納された送信データの送信範囲を示す送信ウインドウの強制的なシフトを止め、正常受信が確認されていない送信データに対して再送の機会を増大させる通信装置が開示されている。
【００１６】
また、特許文献２（特開平１１−３５５２５４号公報）には、測定された伝送データ品質に基づき再送バッファとして用いるメモリの使用範囲を変え、仮にデータ品質が良好で再送バッファの使用範囲が狭まった場合には、メモリの空いた記憶領域を別の処理のために割り振るという機能をもつ通信装置が開示されている。
【００１７】
【特許文献１】
特開２００２−２７１４３５号公報
【特許文献２】
特開平１１−３５５２５４号公報
【００１８】
【発明が解決しようとする課題】
特許文献１に記載の装置によれば、送信バッファに流入する新たな送信データのデータ量が少なければ、正常受信が確認されていないデータの再送の機会は増えるが、送信バッファに流入する新たな送信データのデータ量が多い場合、正常受信が確認されていない送信データが格納されている送信データ記憶領域に新たな送信データが書き込まれることになる。
【００１９】
したがって、正常受信が確認されていないデータを廃棄することになってしまう。つまり、図１０を用いて説明した問題は十分に解決されない。この問題を解決するには、送信バッファのメモリの容量を、データ流入量が多い場合に必要な容量にしておかねばならない。
【００２０】
また、特許文献２に記載の装置の場合、伝送データ品質がよいときには送信バッファの容量を小さくできるが、劣悪な通信環境でもデータ通信の信頼性を維持するには、すなわち、図１０を用いて説明した問題を解決するためには、送信バッファのメモリの容量を、劣悪な環境でもデータ伝送が可能となる容量とせねばならない。
【００２１】
記録デバイスとしてのバッファ（メモリ）は、容量の小さなものを使用する方が装置価格の点または構成の小型化の点から望ましい。
【００２２】
本発明の目的は、ＡＲＱ方式を採用する通信装置において、再送バッファのサイズを大きくすることなく、送信データの品質劣化を少なくすることが可能な通信装置を提供することである。
【００２３】
【課題を解決するための手段】
上記課題を解決するため、本発明の再送バッファ制御装置と再送バッファ制御方法および通信装置は、誤り制御方式として自動再送要求を採用し、送信データを受信する受信側から該送信データの送達状態を示す送達状態情報を受け取り、再送バッファの送信データ格納領域に前記送信データを格納し、前記送達状態情報に基づき、前記再送バッファに格納されている送信データの中から前記受信側に未達の送信データを読み出し、前記受信側に送達済みの送信データを格納する送信データ格納領域の中で前記読み出した受信側に未達の送信データを格納する送信データ格納領域よりも後に新しい送信データが書き込まれる送信データ格納領域に、前記読み出した受信側に未達の送信データを格納することを特徴とする。
【００２４】
上記の発明によれば、受信側に未達の送信データを読み出し、再送バッファに格納しておく必要のない送達済みの送信データを格納していた送信データ格納領域のうち、読み出した未達の送信データを格納する送信データ格納領域よりも時間的に後に新しい送信データが書き込まれる送信データ格納領域に、読み出した未達の送信データを格納するので、再送バッファの格納領域を大きくしなくても、受信側に未達の送信データが削除されにくくなり、未達の送信データが削除されることにより生じる伝送データの品質の低下を防止可能となる。
【００２５】
また、受信側に未達の送信データを格納する領域を、再送バッファに格納しておく必要のない送達済みの送信データを格納していた送信データ格納領域としているので、送達済みの送信データを格納していた送信データ格納領域を有効に利用することが可能となる。
【００２６】
また、本発明の再送バッファ制御装置と再送バッファ制御方法および通信装置は、前記新しい送信データの直前の送信データを格納した送信データ格納領域のアドレスよりも大きい値のアドレスを有する送信データ格納領域に該新しい送信データを格納し、前記受信側に送達済みの送信データを格納する送信データ格納領域の中で前記読み出した受信側に未達の送信データを格納している送信データ格納領域のアドレスよりも大きいアドレスを有する送信データ格納領域に、前記読み出した受信側に未達の送信データを格納することを特徴とする。
【００２７】
上記の発明によれは、再送バッファのアドレスに基づいて、読み出した未達の送信データを格納している送信データ格納領域よりも後に新しい送信データが書き込まれる送信データ格納領域を選出することが可能となる。したがって、再送バッファのアドレスを送信データ格納領域の選出用として兼用できる。
【００２８】
また、本発明の再送バッファ制御装置と再送バッファ制御方法および通信装置は、送達状態記録手段に送達状態情報を記録するので、送達状態情報の確認が容易となる。
【００２９】
また、本発明の再送バッファ制御装置と再送バッファ制御方法および通信装置は、前記受信側に未達の送信データの格納先を示す格納先情報を前記送達状態記録手段に記録し、前記読み出した受信側に未達の送信データが格納された送信データ格納領域に格納されていた送信データに対する送達状態を前記送達状態記録手段から削除するので、読み出した未達の送信データの再送バッファ上での位置を送達状態記録手段により確認可能となる。
【００３０】
【発明の実施の形態】
以下、本発明の実施の形態を図面に示す一実施例に基づき説明する。
【００３１】
図１は、本発明の一実施例の通信装置を含む通信システムを示したブロック図である。
【００３２】
図１において、通信システムは、通信装置１０と受信側１１とを含む。通信装置１０と受信側１１とは、伝送路１２を介してデータ通信を行う。
【００３３】
通信装置１０は、情報出力部１００と、送信機制御部１０１と、フォーマット変換部１０２と、再送制御部１０３と、符号化・拡散部１０５と、データ送信部１０６と、データ受信部１１８と、逆拡散・復号部１１９とを含む。
【００３４】
伝送路１２は、下り伝播路１０７と上り伝播路１１５とを含む。
【００３５】
受信側１１は、データ受信部１０８と、逆拡散・復号部１０９と、ゲート１１０と、フォーマット逆変換部１１１と、情報受信部１１２と、送達検査部１１３と、符号化・拡散部１１６と、データ送信部１１７とを含む。
【００３６】
通信装置１０は、誤り制御方式として自動再送要求を採用し、送信データを受信する受信側１１から該送信データの送達状態を示す送達状態情報（本実施例では、ＡＣＫまたはＮＡＣＫ）を受け取る。
【００３７】
情報出力部１００は、パケットデータｓ１００をフォーマット変換部１０２に出力する。
【００３８】
フォーマット変換部１０２は、入力するパケットデータｓ１００をブロック形式データ（送信データ）ｓ１０２へ変換し、ブロック形式データｓ１０２を再送制御部１０３に出力する。
【００３９】
フォーマット変換部１０２は、情報出力部１００すなわち上位層（上位レイヤ）の装置から出力される様々なサイズのパケットデータを、等長なブロックへ組み立て直す。この技術は、公知技術であり、データを等長とすることで送受信時における各種信号処理を容易に行えるようになる。
【００４０】
送信機制御部１０１は、フレーム区切り信号ｓ１０１を再送制御部１０３に出力する。フレームとは送信データ単位長のことで、例えば３ＧＰＰ（３ｒｄ  Ｇｅｎｅｒａｔｉｏｎ  Ｐａｒｔｎｅｒｓｈｉｐ  Ｐｒｏｊｅｃｔ）のセクタ長に相当する。
【００４１】
再送制御部１０３へは、逆拡散・復号部１１９から出力される送達情報（本実施例では、ＡＣＫまたはＮＡＣＫ）ｓ１２１も入力する。
【００４２】
再送バッファ制御装置としての再送制御部１０３は、概略的には、ブロック形式データ（送信データ）ｓ１０２を一時蓄積する再送バッファ（メモリ）と、再送バッファ内の送信データを管理する管理表とを含み、送達情報ｓ１２１の値に基づき、再送制御部１０３内の再送バッファに蓄積されている送信データのうち適切なものを選択し、選択した送信データを下り送信データｓ１０３として出力する。
【００４３】
また、再送制御部１０３は、再送制御部１０３内の再送バッファに蓄積されている送信データにシーケンス番号（ＳＮ）を付与し、下り送信データｓ１０３を送信する際、送信する下り送信データｓ１０３に付与したシーケンス番号（ＳＮ）を下り制御情報ｓ１０４として出力する。
【００４４】
符号化・拡散部１０５は、下り送信データｓ１０３と下り制御情報ｓ１０４とを入力し、下り送信データｓ１０３と下り制御情報ｓ１０４のそれぞれに対して、誤り訂正符号化と変調と拡散符号による拡散を行う。
【００４５】
符号化・拡散部１０５は、誤り訂正符号化の際、下り送信データｓ１０３に対しては、受信側１１が行う送達確認が容易になるように、伝送単位毎に、ＣＲＣ（ｃｙｃｌｉｃ  ｒｅｄｕｎｄａｎｃｙ  ｃｈｅｃｋ）計算を行う。具体的には、下り送信データｓ１０３を構成するビット列を割り算しその剰余ビットを制御情報に付加するという動作である。
【００４６】
なお、伝送単位としては、フレーム、あるいはブロック形式データｓ１０２を構成する個々のブロックを用いる。
【００４７】
また、ＣＲＣ計算は、従来のＡＲＱ方式において実施されている公知技術である。
【００４８】
符号化・拡散部１０５は、下り送信データｓ１０３と下り制御情報ｓ１０４とのそれぞれに対して、誤り訂正符号化と変調と拡散符号による拡散を行った後、それらを合成して下り送信ビット列ｓ１０５を生成し、生成した下り送信ビット列ｓ１０５をデータ送信部１０６に出力する。
【００４９】
データ送信部１０６は、下り送信ビット列（ベースバンド）ｓ１０５をＲＦ帯の信号へ変換して下り送信信号ｓ１０６を生成し、生成した下り送信信号ｓ１０６をデータ送信部１０６内の送信機（不図示）から出力する。
【００５０】
なお、符号化・拡散部１０５とデータ送信部１０６とで送信部を構成する。
【００５１】
下り送信信号ｓ１０６は、下り伝播路１０７を通り、受信側１１（具体的には、データ受信部１０８）によって受信される。
【００５２】
データ受信部１０８は、下り伝播路１０７を介して入力する下り受信信号ｓ１０７（下り受信信号ｓ１０７は、下り送信信号ｓ１０６と同じ。）をベースバンド信号の下り受信ビット列ｓ１０８に変換し、下り受信ビット列ｓ１０８を逆拡散・復号部１０９に出力する。
【００５３】
逆拡散・復号部１０９は、下り受信ビット列ｓ１０８に対して逆拡散と復調と誤り訂正復号を行って、送信側（通信装置１０）の下り送信データｓ１０３および下り制御情報ｓ１０４にそれぞれ対応する下り受信データｓ１０９および下り制御情報ｓ１１０を生成する。
【００５４】
逆拡散・復号部１０９は、下り送信データｓ１０３を復元した下り受信データｓ１０９をゲート１１０と送達検査部１１３とに出力し、下り制御情報（シーケンス番号ＳＮ）ｓ１０４を復元した下り制御信号ｓ１１０を送達検査部１１３に出力する。
【００５５】
送達検査部１１３は、下り受信データｓ１０９のＣＲＣ計算を行う。具体的には、下り受信データｓ１０９を構成するビット列を、「送信側（通信装置１０）の符号化・拡散部１０５においてＣＲＣ計算のために使用した生成多項式」によって割り算し、その剰余が、誤りなく受信された場合の所定の値になるかどうか確認する。
【００５６】
前記剰余が前記所定の値になると、送達検査部１１３は下記（ア）と（イ）の処理を行う。
【００５７】
（ア）ゲート制御信号ｓ１１３をオンにしてゲート１１０を開く。
【００５８】
これにより、下り受信データｓ１０９がゲート１１０を通過してフォーマット逆変換部１１１に入力する。フォーマット逆変換部１１１は、下り受信データｓ１０９をパケットデータｓ１００と同等のパケットデータｓ１１２に復元し、パケットデータｓ１１２を情報受信部１１２に出力する。以上の動作により、パケットデータの伝送が完了する。
【００５９】
（イ）下り制御情報ｓ１１０としての本伝送単位のシーケンス番号ＳＮと、そのシーケンス番号ＳＮが付与された下り送信データＳ１０３の送達状態を示すＡＣＫとを含む情報としての送達情報ｓ１１４を、符号化・拡散部１１６へ出力する。
【００６０】
一方、前記剰余が前記所定の値にならない場合、送達検査部１１３は下記（ウ）と（エ）の処理を行う。
【００６１】
（ウ）ゲート制御信号ｓ１１３をオフにしてゲート１１０を閉じる。
【００６２】
これにより下り受信データｓ１０９は情報受信部１１２に届かなくなる。
【００６３】
（エ）下り制御情報ｓ１１０としての本伝送単位のシーケンス番号ＳＮと、そのシーケンス番号ＳＮが付与された下り送信データＳ１０３の送達状態を示すＮＡＣＫとを含む情報としての送達情報ｓ１１４を、符号化・拡散部１１６へ出力する。
【００６４】
符号化・拡散部１１６は、入力する送達情報ｓ１１４に対して誤り訂正符号化と変調と拡散を施して上り制御信号ｓ１１６を生成し、上り制御信号ｓ１１６をデータ送信部１１７へ出力する。
【００６５】
データ送信部１１７は、上り制御信号ｓ１１６をＲＦ帯信号の上り送信信号ｓ１１７に変換し、上り送信信号ｓ１１７を送信する。
【００６６】
上り送信信号ｓ１１７は、上り伝播路１１５を通過し、通信装置１０のデータ受信部１１８に入力する。
【００６７】
データ受信部１１８は、上り伝播路１１５を介して入力する上り受信信号ｓ１１８（上り受信信号ｓ１１８は、上り送信信号ｓ１１７と同じ。）をベースバンド信号の上り受信ビット列ｓ１１９に変換し、上り受信ビット列ｓ１１９を逆拡散・復号部１１９に出力する。
【００６８】
逆拡散・復号部１１９は、上り受信ビット列ｓ１１９に対して逆拡散と復調と誤り訂正復号を行って、送達情報ｓ１１４に相当するビット列を送達情報ｓ１２１として復元し、送達情報ｓ１２１を再送制御部１０３に出力する。
【００６９】
再送制御部１０３は、送達情報ｓ１２１に含まれるシーケンス番号ＳＮと、同じく送達情報ｓ１２１に含まれるＡＣＫまたはＮＡＣＫとに基づき、シーケンス番号ＳＮが付与された下り送信データｓ１０３が受信側１１へ届いたか否かを判断する。
【００７０】
再送制御部１０３は、送達情報ｓ１２１にＡＣＫが含まれるなら、送達情報ｓ１２１に含まれるシーケンス番号ＳＮが付与された下り送信データｓ１０３の再送を打ち切り、送達情報ｓ１２１にＮＡＣＫが含まれるなら、送達情報ｓ１２１に含まれるシーケンス番号ＳＮが付与された下り送信データの再送を行う。
【００７１】
図２は、再送制御部１０３の一例を示した回路図である。
【００７２】
以下、図２を参照して、再送制御部１３について説明する。なお、図２において、図１に示した信号と同一の信号には、同一符号を附してある。
【００７３】
再送制御部１０３は、バッファ１３１と、アドレス生成回路１３２と、再送バッファとしてのメモリ１３５と、再送バッファ制御手段１４２とを含む。
【００７４】
再送バッファ制御手段１４２は、スイッチ１３３と、スイッチ１３４と、スイッチ１３６と、バッファ１３７と、信号制御部１４０と、送達状態記録手段としての管理表１４１とを含む。
【００７５】
メモリ１３５は、送信データ格納領域を有し、送信データ格納領域に送信データ（ブロック形式データ）を格納する。また、メモリ１３５は、新しい送信データを送信データ格納領域に格納する際、新しい送信データの直前の送信データを格納した送信データ格納領域のアドレスよりも大きい値のアドレスにより指定される送信データ格納領域に新しい送信データを格納する。
【００７６】
再送バッファ制御手段１４２は、受信側１１から通知される送達情報ｓ１２１に基づき、メモリ１３５に格納されている送信データの中から受信側１１に未達の送信データを読み出し、受信側１１に送達済みの送信データを格納する送信データ格納領域の中で前記読み出した受信側１１に未達の送信データを格納する送信データ格納領域よりも時間的に後に新しい送信データが書き込まれる送信データ格納領域に、前記読み出した受信側に未達の送信データを格納する。
【００７７】
具体的には、再送バッファ制御手段１４２は、受信側１１に送達済みの送信データを格納する送信データ格納領域の中で、前記読み出した受信側１１に未達の送信データを格納している送信データ格納領域のアドレスよりも大きいアドレスを有する送信データ格納領域に、前記読み出した受信側に未達の送信データを格納する。
【００７８】
また、再送バッファ制御手段１４２は、受信側１１から受け取った送達情報ｓ１２１に含まれる送達状態情報（ＡＣＫまたはＮＡＣＫ）に応じた情報を管理表１４１に記録する。
【００７９】
また、再送バッファ制御手段１４２は、受信側１１に未達の送信データの格納先を示す格納先情報（具体的にはメモリ１３５の開始アドレス）を管理表１４１に記録し、前記読み出した受信側１１に未達の送信データが格納された送信データ格納領域に格納されていた送達済みの送信データに対する送達状態を管理表１４１から削除する（具体的には「ＮＵＬＬ」にする）。
【００８０】
バッファ１３１は、入力するブロック形式データｓ１０２を蓄積する。なお、バッファ１３１は、数フレーム分の送信データに相当するブロック形式データｓ１０２を蓄積する容量をもつ。
【００８１】
バッファ１３１は、入力端子ｉｎと、入力端子ｃと、出力端子ｏｕｔと、出力端子ｃｌｋとを備え、入力端子ｃへの入力パルスであるフレーム区切り信号ｓ１０１をトリガとして、内部に蓄積した送信データを出力端子ｏｕｔから出力する。
【００８２】
また、バッファ１３１は、内部に蓄積した送信データの出力期間においては、出力する送信データのレートに等しい周波数のクロックＣＬＫを出力端子ｃｌｋ端子から出力する。バッファ１３１から出力されるクロックＣＬＫは、アドレス生成回路１３２へ入力する。
【００８３】
アドレス生成回路１３２は、入力するクロックＣＬＫの立ち上がりエッジ数をカウントし、カウントした立ち上がりエッジ数にオフセット値を加えたライトアドレスＷＰを、各クロックエッジに同期して出力する。アドレス生成回路１３２が有するカウンタのカウント範囲は、メモリ１３５のアドレス空間のサイズ（アドレス数）に一致させておく。
【００８４】
アドレス生成回路１３２が出力するライトアドレスＷＰは、信号制御部１４０およびスイッチ１３４へ入力する。
【００８５】
また、バッファ１３１は、バッファ１３１の入力端子ｃへのフレーム区切り信号ｓ１０１の到来前の１フレームの間にバッファ１３１へ入力されたブロック形式データｓ１０２であるブロック形式データＤａｔａ１（送信データ）を、スイッチ１３３へ出力する。
【００８６】
スイッチ１３３とスイッチ１３４のそれぞれは、入力端子ａと、入力端子ｂと、入力端子ｃと、出力端子ｏｕｔとを備え、入力端子ｃへの入力値が“０”のとき入力端子ａへ入力する信号を出力端子ｏｕｔから出力し、入力端子ｃへの入力値が“１”のとき入力端子ｂへ入力する信号を出力端子ｏｕｔから出力する。
【００８７】
スイッチ１３３の入力端子ｃへ入力する信号Ｃ２とスイッチ１３４の入力端子ｃへ入力する信号Ｃ１とは、信号制御部１４０によって適宜制御される。
【００８８】
スイッチ１３３の出力端子ｏｕｔはメモリ１３５の入力端子ｄｉｎと接続し、スイッチ１３４の出力端子ｏｕｔはメモリ１３５の入力端子ａｄｄｒと接続している。
【００８９】
メモリ１３５は、再送する送信データを蓄積する目的で使用され、入力端子ｄｉｎと、入力端子ａｄｄｒと、入力端子ｗｅｎと、入力端子ｒｅｎと、出力端子ｄｏｕｔとを有する。
【００９０】
スイッチ１３３とスイッチ１３４のそれぞれの入力端子ｃへの入力値がともに“０”であるとき、スイッチ１３３の出力端子ｏｕｔからは送信データＤａｔａ１が出力され、出力された送信データＤａｔａ１はメモリ１３５の入力端子ｄｉｎへ入力し、かつスイッチ１３４の出力端子ｏｕｔからはライトアドレスＷＰが出力され、出力されたライトアドレスＷＰはメモリ１３５の入力端子ａｄｄｒへ入力する。
【００９１】
また、スイッチ１３３とスイッチ１３４のそれぞれの入力端子ｃへの入力値がともに“１”であるとき、スイッチ１３３の出力端子ｏｕｔからはバッファ１３７の出力である送信データＤａｔａ３が出力され、出力された送信データＤａｔａ３はメモリ１３５の入力端子ｄｉｎへ入力し、かつスイッチ１３４の出力端子ｏｕｔからは信号制御部１４０の出力であるアドレスＡｄｒｓが出力され、出力されたアドレスＡｄｒｓはメモリ１３５の入力端子ａｄｄｒ端子へ入力する。
【００９２】
メモリ１３５は、入力端子ｗｅｎの入力値Ｗが“１”かつ入力端子ｒｅｎの入力値Ｒが“０”のとき、入力端子ａｄｄｒへの入力値が示すアドレスへ入力端子ｄｉｎに入力するデータを書き込む。
【００９３】
また、メモリ１３５は、入力端子ｗｅｎの入力値Ｗが“０”かつ入力端子ｒｅｎの入力値Ｒが“１”のとき、入力端子ａｄｄｒの入力値が示すアドレスのデータを出力端子ｄｏｕｔから出力する。
【００９４】
なお、信号Ｗと信号Ｒは信号制御部１４０から出力され、信号制御部１４０はＷ＝“１”かつＲ＝“０”なる組合せとＷ＝“０”かつＲ＝“１”なる組合せとしか出力されない。
【００９５】
本実施例では、信号Ｃ１と信号Ｃ２と信号Ｗと信号Ｒとに基づき、メモリ１３５に関する入出力データを制御する。
【００９６】
メモリ１３５の出力端子ｄｏｕｔからの出力である送信データＤａｔａ２は、スイッチ１３６およびバッファ１３７へ入力される。なお、スイッチ１３６は、スイッチ１３４と同じ機能をもつ。
【００９７】
バッファ１３７は、メモリ１３５内の所望の送信データ格納領域に格納されている送信データをメモリ１３５内の別の送信データ格納領域へコピーするために用いられる。さらに言えば、メモリ１３５に格納されていく送信側１１に未達の送信データを一時的に格納するために用いられる。
【００９８】
バッファ１３７は、ＦＩＦＯ（ｆｉｒｓｔ−ｉｎ  ｆｉｒｓｔ−ｏｕｔ）型の記憶デバイスであり、１フレームで伝送されるデータ量を蓄積するのに十分な容量をもつ。
【００９９】
バッファ１３７は、入力端子ｄｉｎから入力した送信データＤａｔａ２を、入力した順番を保ったまま出力端子ｄｏｕｔから出力する機能をもつ。
【０１００】
バッファ１３７への送信データＤａｔａ２の書込みは、バッファ１３７の入力端子ｗｅｎの入力値が“１”のときに行われ、バッファ１３７からの送信データの読み出しは、バッファ１３７の入力端子ｒｅｎの入力値が“１”のときに行われる。
【０１０１】
なお、バッファ１３７の入力端子ｗｅｎへ入力する信号Ｒとバッファ１３７の入力端子ｒｅｎへ入力する信号Ｗとが同時に“１”にならないように、信号Ｒと信号Ｗとは信号制御部１４０により制御される。
【０１０２】
メモリ１３５内の所望の送信データ格納領域に格納されている送信データをメモリ１３５内の別の送信データ格納領域へコピーするとき、信号Ｃ３を“１”に設定すればバッファ１３６からの出力が「０」となり、コピー中の送信データが下り送信データｓ１０３として外部（受信側１１）へ出力されることはない。
【０１０３】
信号制御部１４０は、信号Ｃ１と信号Ｃ２と信号Ｃ３と信号Ｗと信号ＲとアドレスＡｄｒｓとを制御して、メモリ１３５に関する入出力データを制御する。また、信号制御部１４０は、送信データＤａｔａ１に対してシーケンス番号ＳＮを付与する。
【０１０４】
図３は、管理表１４１の一例を示した図である。管理表１４１は、メモリによって構成される。なお、管理表１４１は図３に示したものに限るものではなく、適宜変更可能である。
【０１０５】
図３において、管理表１４１は、シーケンス番号ＳＮ欄１４１ａと、開始アドレス欄１４１ｂと、送達状態欄１４１ｃと、再送回数欄１４１ｄとを含む。
【０１０６】
シーケンス番号ＳＮ欄１４１ａには、送信データＤａｔａ１に付与されたシーケンス番号ＳＮ（データ管理単位）が記録される。本実施例では、シーケンス番号ＳＮを０から１２７まで有している。なお、管理表１４１が有するシーケンス番号は、０から１２７に限らず、適宜変更可能である。
【０１０７】
管理表１４１において、各シーケンス番号ＳＮは、そのシーケンス番号ＳＮが付与された送信データがメモリ１３５において格納されている送信データ格納領域の開始アドレスと、そのシーケンス番号ＳＮが付与された送信データの送達情報と、そのシーケンス番号ＳＮが付与された送信データの再送回数とに関連づけて記憶される。
【０１０８】
開始アドレスとは、メモリ１３５において、シーケンス番号ＳＮが付与された送信データを格納する送信データ格納領域の最初のアドレスである。
【０１０９】
送達情報とは、送信データに対する送達確認情報であるＡＣＫまたはＮＡＣＫに応じた情報で、ＡＣＫが受信されれば、ＡＣＫに応じた送信データに付与されたシーケンス番号ＳＮに関連づけられた送達状態欄１４１ｃに「ＯＫ」が書き込まれ、ＮＡＣＫが受信されれば、ＮＡＣＫに応じた送信データに付与されたシーケンス番号ＳＮに関連づけられた送達状態欄１４１ｃに「ＮＧ」が書き込まれる。
【０１１０】
なお、送達状態欄１４１ｃは、送信データを送信済みだが送達確認情報（ＡＣＫまたはＮＡＣＫ）がまだ受信されていない場合には空欄とする。
【０１１１】
例えば、図３において、シーケンス番号ＳＮ＝０に対応する送達状態欄は「ＮＧ」だが、これはシーケンス番号ＳＮ＝０が付された送信データの送達情報ｓ１２１としてＮＡＣＫが受信されＡＣＫはまだ受信されていないことを示す。
【０１１２】
なお、図３のシーケンス番号ＳＮ＝７２の行の送達状態欄１４１ｃに示されている「ＮＵＬＬ」の意味は後述する。
【０１１３】
再送回数は、送信回数が増えるごとに１ずつ増加し、また、メモリ１３５に流入しメモリ１３５には記録されているが未送信の送信データに対しては、再送回数欄１４１ｄに−１が書き込まれる（図３のシーケンス番号ＳＮ＝４４参照）。
【０１１４】
次に、動作の概要を説明する。
【０１１５】
図４（ａ）はメモリ１３５の一部を模式的に示した模式図であり、図３に対応した内容となっている。同図において、１３５ａは送信データ格納領域であり、１３５ｂは送信データ格納領域１３５ａのアドレスである。
【０１１６】
図４（ａ）において、例えばアドレス２６０以上２７０未満がＯＫ（７０）の領域であることを示す。なお、ＯＫ（７０）とは、シーケンス番号ＳＮ＝７０が付与された送信データがＡＣＫを受信済みであることを示す。
【０１１７】
また、アドレス２７０以上２８５未満がＮＧ（７１）の領域であり、アドレス２８５以上２９５未満の領域がＮＧ（７３）の領域である。なお、ＮＧ（７１）とは、シーケンス番号ＳＮ＝７１が付与された送信データがＮＡＣＫのみを受信し、ＡＣＫを未受信であることを示す。
【０１１８】
したがって、シーケンス番号ＳＮ＝７１が付与された送信データとシーケンス番号ＳＮ＝７３が付与された送信データとは、受信側１１へ未達ということが確認できる。
【０１１９】
シーケンス番号ＳＮ＝７１が付与された送信データとシーケンス番号ＳＮ＝７３が付与された送信データとは、受信側１１からＡＣＫを受信するまで再送が繰り返される。
【０１２０】
シーケンス番号ＳＮ＝７１が付与された送信データとシーケンス番号ＳＮ＝７３が付与された送信データとに対するＡＣＫを受信側１１から受け取ることができないうちに、メモリ１３５に新規送信データが次々と流入してくると、シーケンス番号ＳＮ＝７１が付与された送信データとシーケンス番号ＳＮ＝７３が付与された送信データは未達のまま新規送信データによって上書きされ、受信側１１に送信されなくなってしまう。
【０１２１】
この問題を解決するために、本実施例では、図４（ａ）の「ＮＧ」の領域（ＳＮ＝７１、７３）に格納されている受信側に未達の送信データを、図４（ｂ）に示すように「ＯＫ」の領域（ＳＮ＝７４、７５）へ上書きする。具体的には、図４（ａ）のアドレス２７０以上２９５未満の送信データ格納領域に格納されている送信データを、アドレス２９０以上３１５未満の送信データ格納領域へ上書きするのである。
【０１２２】
したがって、送信データ格納領域のアドレスの小さい側から該アドレスの大きい側へ向かってメモリ１３５へ新規データの上書きを行う場合、受信側１１へ未達の送信データが新規データによって上書きされるまでの時間が延長される。
【０１２３】
換言すると、新規送信データが図４の上（アドレスの小さいほう）から下（アドレスの大きいほう）へ向けてライトされていく場合、受信側１１へ未達の送信データを、該送信データが格納されている送信データ格納領域より下（送信データ格納領域のアドレスが大きいほう）の送信データ格納領域にコピーすることにより、メモリ１３５の格納容量を大きくしなくても、受信側１１へ未達の送信データが新規送信データによって上書きされるまでの時間を延長可能となり、未達の送信データの再送の機会を増大させることができる。
【０１２４】
なお、図４（ｂ）の３００で示した領域は、上書き前のシーケンス番号ＳＮ＝７３が付与された送信データを格納している送信データ格納領域であるが、これは上書き後に残したままでも問題はない。
【０１２５】
本実施例では、受信側１１へ未達の送信データのメモリ１３５でのコピー処理は、管理表１４１において、ＮＧとなっている送達状態欄に関連づけられたシーケンス番号ＳＮより数が大きいシーケンス番号ＳＮに関連づけられている送達状態欄に「ＯＫ」が存在する場合に行われる。
【０１２６】
図３において、新規送信データがライトされたメモリ１３５の送信データ格納領域は、送信回数が−１となっているシーケンス番号ＳＮ＝４４が付与された送信データが格納されている送信データ格納領域、すなわちメモリ１３５のアドレス１５０以降の送信データ格納領域である。
【０１２７】
本実施例では、再送バッファ制御手段１４２が、そのシーケンス番号ＳＮ＝４４からシーケンス番号ＳＮを増加させていき、シーケンス番号ＳＮに関連づけられた送達状態欄１４１ｃに「ＮＧ」、「ＯＫ」の順番が現れたとき（図３ではシーケンス番号ＳＮ＝７５）、「ＮＧ」、「ＯＫ」の順番で現れた「ＮＧ」に対応する送信データを、「ＮＧ」、「ＯＫ」の順番で現れた「ＯＫ」に対応する送信データが格納されている送信データ格納領域に書き込む。
【０１２８】
なお、「ＯＫ」、「ＮＧ」の各領域は連続して取り扱う。具体的には、図３においては、「ＯＫ」の領域をシーケンス番号ＳＮ＝７４とシーケンス番号ＳＮ＝７５との連続した領域とし、「ＮＧ」の領域をシーケンス番号ＳＮ＝７１からシーケンス番号ＳＮ＝７３までの連続した領域とする。
【０１２９】
未達の送信データが上書きされた「ＯＫ」領域に対応する管理表１４１の開始アドレス欄１４１ｂと送達状態欄１４１ｃには「ＮＵＬＬ」を記録し、以後の管理表１４１の上書き領域の検索動作においては「ＮＵＬＬ」の行は検索対象から外される。
【０１３０】
図５は、図４（ｂ）に対応する管理表１４１を示した図であり、図３においてＮＧ（シーケンス番号ＳＮ＝７１、７３）の下行にあったＯＫの行（シーケンス番号ＳＮ＝７４、７５）が「ＮＵＬＬ」で上書きされている。
【０１３１】
以上の動作を繰り返し行うことにより、メモリ１３５内で孤立して存在する未達の送信データは、送信データ格納領域のアドレスのより大きな方向へコピーされてまとめられていく。
【０１３２】
本実施例は、管理表１４１を基にメモリ１３５の上書き（コピー）操作を行い、上書き（コピー）結果に応じて管理表１４１を更新する。管理表１４１の更新を適当な間隔で実行することにより、送達済みの送信データを格納している領域が無駄にメモリ１３５に残ることがなくなり、未達の送信データがメモリ１３５上で新規送信データ書込み位置から離れた場所に残留することになるので、未達の送信データが新規送信データにより上書きされる確率が減少する。
【０１３３】
さらには、メモリ１３５の容量を大きくすることなく、未達の送信データが新規送信データにより上書きされる確率が減少する。
【０１３４】
なお、メモリ１３５の容量を大きくした状態で、未達の送信データを送達済みの送信データを格納している領域にコピーするようにしてもよい。この場合も、未達の送信データが新規送信データにより上書きされる確率が減少する。
【０１３５】
次に、再送制御部１０３の動作を具体的に説明する。
【０１３６】
図６は、メモリ１３５へのライト動作と、送達情報ｓ１２１の管理表１４１への反映と、送信データ再送時のメモリ１３５からの送信データのリード動作の手順を説明するためのフローチャートである。
【０１３７】
図６において、ステップ２０２からステップ２１０までが、再送制御部１０３へ流入したブロック形式データ（送信データ）ｓ１０２をメモリ１３５へライトし、再送制御部１０３へ流入したブロック形式データ（送信データ）ｓ１０２に関する情報を管理表１４１へ書き込む手順である。
【０１３８】
ステップ２１１は、受信側１１から送信される送達情報ｓ１２１に応じた情報を管理表１４１へ書き込むで順である。
【０１３９】
ステップ２２１からステップ２２７までが、メモリ１３５にライトされたブロック形式データ（送信データ）ｓ１０２を受信側１１へ送信し、その送信回数を管理表１４１へ書き込む手順である。
【０１４０】
ステップ２２８は、管理表１４１に記録されている送達状態情報に基づき、メモリ１３５の送信データ格納領域に格納されている送信データの中から受信側１１に未達の送信データを読み出し、受信側１１に送達済みの送信データを格納する送信データ格納領域の中で前記読み出した受信側１１に未達の送信データを格納する送信データ格納領域よりも後に新しい送信データが書き込まれる送信データ格納領域に、前記読み出した受信側に未達の送信データを格納する手順である。
【０１４１】
なお、ステップ２２８の詳細な動作は、図７と図８と図９に示してある。
【０１４２】
以下、図６を参照して、メモリ１３５へのライト動作と、送達情報ｓ１２１の管理表１４１への反映と、送信データ再送時のメモリ１３５からの送信データのリード動作の手順を説明する。
【０１４３】
信号制御部１４０は、以下の（１）〜（４）の変数を有する。
（１）管理表１４１上の読出し位置のシーケンス番号ＳＮを示す読出しシーケンス番号ＳＮ（Ｒ）
（２）管理表１４１上の書込み位置のシーケンス番号ＳＮを示す書込みシーケンス番号ＳＮ（Ｗ）
（３）書込みシーケンス番号ＳＮ（Ｗ）が示すシーケンス番号ＳＮと関連づけられた開始アドレスの値を示すＮｅｘｔ  Ａｄｄｒｅｓｓ
（４）送信予定の送信データに付与されているシーケンス番号よりも１だけ大きいのシーケンス番号を示すＳＮ＃ＮＥＸＴ変数
なお、書込みシーケンス番号ＳＮ（Ｗ）が示すシーケンス番号ＳＮと関連づけられた開始アドレスを「開始アドレス（ＳＮ（Ｗ））」とし、読込みシーケンス番号ＳＮ（Ｒ）が示すシーケンス番号ＳＮと関連づけられた開始アドレスを「開始アドレス（ＳＮ（Ｒ））」とする。
【０１４４】
信号制御部１４０は、ステップ２０２において、読出しシーケンス番号ＳＮ（Ｒ）と書込みシーケンス番号ＳＮ（Ｗ）とに初期値−１をセットする。さらに、信号制御部１４０は、変数Ｎｅｘｔ  ａｄｄｒｅｓｓに初期値０をセットし、開始アドレス（ＳＮ（Ｗ）＝−１）を０にセットする。
【０１４５】
なお、本実施例では、シーケンス番号ＳＮは０以上の値しか取りえないが、初期値−１は動作開始時において管理表１４１のシーケンス番号ＳＮ＝０の行に情報を書き込むための特別な設定である。
【０１４６】
この後、ステップ２０３において、信号制御部１４０は、フレーム区切り信号ｓ１０１をモニタし、フレーム先頭位置の識別パルスであるフレーム区切り信号ｓ１０１を待つ。
【０１４７】
フレーム先頭位置の識別パルスであるフレーム区切り信号ｓ１０１が到来すると、信号制御部１４０は、ステップ２０５において、信号Ｗと信号Ｒと信号Ｃ１〜Ｃ３の設定を行う。具体的には、信号Ｗを“１”にセットし、信号Ｒを“０”にセットし、信号Ｃ１を“０”にセットし、信号Ｃ２を“０”にセットし、信号Ｃ３を“１”にセットする。
【０１４８】
ステップ２０５の設定により、メモリ１３５へブロック形式データ（送信データ）ｓ１０２を書き込む準備が整う。
【０１４９】
次に、ステップ２０６において、時間ｔ１だけ待機する。
【０１５０】
この時間ｔ１の間に、バッファ１３１内にブロック形式データ（送信データ）ｓ１０２が溜まっていたならば、溜まっていたブロック形式データ（送信データ）ｓ１０２は、ブロック形式データ（送信データ）Ｄａｔａ１としてスイッチ１３３を経由してメモリ１３５の入力端子ｄｉｎへ入力し、同時にアドレス生成回路１３２がライトアドレスＷＰを生成し、生成されたライトアドレスＷＰがスイッチ１３４を介してメモリ１３５の入力端子ａｄｄｒへ入力する。
【０１５１】
したがって、メモリ１３５のアドレスＷＰから始まる送信データ格納領域へブロック形式データ（送信データ）Ｄａｔａ１が書き込まれる。
【０１５２】
ここで時間ｔ１は、一般に１フレーム伝送所要時間の数分の１とする。
【０１５３】
ブロック形式データｓ１０２は、符号化・拡散前であるため、時間ｔ１内に１フレーム分データのメモリ１３５への転送は完了する。
【０１５４】
ステップ２０７において、信号制御部１４０は、管理表１４１に記録されている開始アドレス（ＳＮ（Ｗ））（ＳＮ（Ｗ）が示すシーケンス番号に関連づけられている開始アドレス）とライトアドレスＷＰとを比較し、ライトアドレスＷＰが大きければ流入データ（新規送信データ）有りと判断し、ステップ２０８において書込みシーケンス番号ＳＮ（Ｗ）を１進める。
【０１５５】
続いて、ステップ２０９において、信号制御部１４０は、管理表１４１において書込みシーケンス番号ＳＮ（Ｗ）が示すシーケンス番号ＳＮに関連づけられている開始アドレス欄１４１ｂに変数Ｎｅｘｔ  Ａｄｄｒｓｓｓを書き込み、管理表１４１において書込みシーケンス番号ＳＮ（Ｗ）が示すシーケンス番号ＳＮに関連づけられている送達状態欄１４１ｃを空欄（空欄は未送信を示す）にし、管理表１４１において書込みシーケンス番号ＳＮ（Ｗ）が示すシーケンス番号ＳＮに関連づけられている再送回数欄１４１ｄに−１を書き込む。
【０１５６】
信号制御部１４０は、ステップ２１０で、ライトアドレスＷＰを、書込みシーケンス番号ＳＮ（Ｗ）が現状よりも１だけ進んだときの開始アドレスとして使用するために、ライトアドレスＷＰに１を加算した値をＮｅｘｔ  Ａｄｄｒｓｓｓに書き込む。
【０１５７】
信号制御部１４０は、次に、ステップ２１１において、送達情報ｓ１２１として、シーケンス番号ＳＮと、ＡＣＫまたはＮＡＣＫとを受信し、管理表１４１において、受信したシーケンス番号ＳＮに関連づけられている送達状態欄１４１ｃに、受信したＡＣＫまたは受信したＮＡＣＫに応じた送達状態を書き込む。
【０１５８】
具体的には、送達情報ｓ１２１がＡＣＫを含む場合、信号制御部１４０は管理表１４１の送達状態欄１４１ｃ（管理表１４１において、受信したシーケンス番号ＳＮに関連づけられている送達状態欄１４１ｃ）へ「ＯＫ」を書込む。また、送達情報ｓ１２１がＮＡＣＫを含む場合、信号制御部１４０は管理表１４１の送達状態欄１４１ｃ（管理表１４１において、受信したシーケンス番号ＳＮに関連づけられている送達状態欄１４１ｃ）へ「ＮＧ」を書き込む。
【０１５９】
管理表１４１において、「ＯＫ」が書き込まれた送達状態欄１４１ｃに関連づけられたシーケンス番号ＳＮが付与された送信データは再送されなくなる。
【０１６０】
次に、ステップ２２１に進み、信号制御部１４０は、管理表１４１で、読出しシーケンス番号ＳＮ（Ｒ）が示すシーケンス番号ＳＮを進めていき、読出しシーケンス番号ＳＮ（Ｒ）が示すシーケンス番号ＳＮに関連づけられている送達状態欄において最初に「送達状態欄＝ＮＧまたは空欄」  が成立するシーケンス番号ＳＮを検索し、検索したシーケンス番号ＳＮを読出しシーケンス番号ＳＮ（Ｒ）へ代入する。
【０１６１】
ステップ２２１で検索したシーケンス番号ＳＮが代入されたＳＮ（Ｒ）は、次回送信される送信データに付与されたシーケンス番号ＳＮとなる。
【０１６２】
続いて、ステップ２２２において、信号制御部１４０は、信号Ｗと信号Ｒと信号Ｃ１〜Ｃ３の設定を行う。具体的には、信号Ｗを“０”にセットし、信号Ｒを“１”にセットし、信号Ｃ１を“１”にセットし、信号Ｃ３を“０”にセットする。
【０１６３】
ステップ２２２の設定により、メモリ１３５の出力端子ｄｏｕｔからメモリ１３５の送信データ格納領域に格納されている送信データが下り送信データｓ１０３として出力されるようになる。
【０１６４】
その後、信号制御部１４０は、アドレスＡｄｒｓを変えながらメモリ１３５内の送信データを出力していく。
【０１６５】
ステップ２２２において、信号制御部１４０は、アドレスＡｄｒｓの初期値として、読出しシーケンス番号ＳＮ（Ｒ）が示すシーケンス番号ＳＮに関連づけられている開始アドレス（開始アドレス（ＳＮ（Ｒ）））を設定する。
【０１６６】
ステップ２２３では、管理表１４１において、読出しシーケンス番号ＳＮ（Ｒ）が示すシーケンス番号ＳＮを進めていき、読出しシーケンス番号ＳＮ（Ｒ）が示すシーケンス番号ＳＮに関連づけられている開始アドレス欄１４１ｂにおいて最初に開始アドレスが「ＮＵＬＬ」と異なるものを検索し、検索した開始アドレスに関連づけられているシーケンス番号ＳＮを検索し、検索したシーケンス番号ＳＮをＳＮ＃ＮＥＸＴ変数へ代入する。
【０１６７】
ステップ２２３で検索したシーケンス番号ＳＮは、メモリ１３５から読み出す送信データすなわち受信側１１に送信する送信データに付与されたシーケンス番号ＳＮよりも１だけ大きいシーケンス番号ＳＮとなる。
【０１６８】
なお、ＳＮ＃ＮＥＸＴ変数は、信号制御部１４０に格納される。
【０１６９】
ステップ２２４では、信号制御部１４０は、下り制御情報ｓ１０４として、読出しシーケンス番号ＳＮ（Ｒ）が示すシーケンス番号ＳＮを出力する。
【０１７０】
ステップ２２５では、信号制御部１４０は、アドレスＡｄｒｓの値を１だけ大きくする。
【０１７１】
ステップ２２６では、信号制御部１４０は、アドレスＡｄｒｓが、ＳＮ＃ＮＥＸＴ変数に登録されたシーケンス番号に関連づけられた開始アドレスから１を引いたアドレスと一致したか判断し、一致していない場合はステップ２２５に戻り、一致した場合はアドレスＡｄｒｓの増加を止めてメモリ１３５からの送信データの読み出しを終了する。
【０１７２】
ステップ２２２からステップ２２６の動作を行うことにより、受信側１１へ送信する送信データがメモリ１３５から順次読み出されて出力される。ステップ２２２によって信号Ｃ３が“０”となっているので、ステップ２２５でメモリ１３５から読み出されて出力された送信データは、スイッチ１３６を介して下り送信データｓ１０３として受信側１１に出力される。
【０１７３】
ステップ２２６において、アドレスＡｄｒｓがＳＮ＃ＮＥＸＴ変数に登録されたシーケンス番号に関連づけられた開始アドレスから１を引いたアドレスと一致して、メモリ１３５からの送信データの読み出しが終了すると、信号制御部１４０は、ステップ２２７で、管理表１４１において、読出しシーケンス番号ＳＮ（Ｒ）が示すシーケンス番号ＳＮに関連づけられている再送回数に１を加算し、コピー対象送信データの検索およびコピー対象送信データのコピーのステップ２２８へ移る。
【０１７４】
次に、図６のステップ２２８の詳細を説明する。
【０１７５】
図７は、図６のステップ２２８の詳細を説明するためのフローチャートである。以下、図７を参照して、図６のステップ２２８の詳細を説明する。
【０１７６】
図７に示した手順を行うにあたり、信号制御部１４０は、以下の（５）〜（１０）の変数を用い、信号制御部１４０内に設定する。
（５）コピー対象送信データのシーケンス番号を示すコピー対象シーケンス番号ＳＮ’
（６）管理表１４１において、送達状態欄＝ＮＧを未検出なら“０”、送達状態欄＝ＮＧを検出済みなら“１”とするフラグＦ１
（７）管理表１４１において、送達状態欄＝ＮＧを検出し、その後、送達状態欄＝ＯＫを検出した場合に“１”となるフラグＦ２
（８）管理表１４１において、最初に検出した送達状態欄＝ＮＧに関連づけてあるシーケンス番号ＳＮを示すＮＧ開始ＳＮ
（９）管理表１４１において、最初に検出した送達状態欄＝ＯＫに関連づけてあるシーケンス番号ＳＮを示すＯＫ開始ＳＮ
（１０）管理表１４１において、最後に検出した送達状態欄＝ＯＫに関連づけてあるシーケンス番号ＳＮを示すＯＫ終了ＳＮ
まず、図７のステップ２３２において、信号制御部１４０は、フラグＦ１とフラグＦ２とを“０”にセットし、書込みシーケンス番号ＳＮ（Ｗ）が示すシーケンス番号ＳＮに１を加えたシーケンス番号をコピー対象シーケンス番号ＳＮ’に設定する。
【０１７７】
ステップ２３４では、管理表１４１において、コピー対象シーケンス番号ＳＮ’が示すシーケンス番号に関連づけられている送達状態欄（送達状態欄（ＳＮ’））に「ＮＵＬＬ」が記載されている場合、ステップ２５６に移り、コピー対象シーケンス番号ＳＮ’が示すシーケンス番号に１を加えたシーケンス番号をコピー対象シーケンス番号ＳＮ’に代入する。
【０１７８】
ステップ２３４で、管理表１４１において、コピー対象シーケンス番号ＳＮ’が示すシーケンス番号に関連づけられている送達状態欄（送達状態欄（ＳＮ’））に「ＮＵＬＬ」が記載されていない場合、信号制御部１４０は、ステップ２３６以後、コピー対象シーケンス番号ＳＮ’が示すシーケンス番号に関連づけられている送達状態欄の値に応じて下記（カ）〜（ク）のように手順を分ける。
【０１７９】
（カ）  ステップ２３６で送達状態欄が「ＮＧ」であれば、信号制御部１４０は、ステップ２５０でフラグＦ１の値とフラグＦ２の値を評価し、（Ｆ１、Ｆ２）＝（０、０）であれば、ステップ２５２においてフラグＦ１を“１”にセットするとともにＮＧ開始ＳＮにコピー対象シーケンス番号ＳＮ’が示すシーケンス番号を代入してステップ２５６へ進み、ステップ２５０において（Ｆ１、Ｆ２）＝（１、０）であれば、ステップ２５６へ進む。
【０１８０】
ステップ２５０において（Ｆ１、Ｆ２）＝（１、１）であれば、信号制御部１４０は、メモリ１３５の他の送信データ格納領域へコピーすべき未達の送信データとそのコピー領域が見つかったと判断し、ステップ２３８で未達送信データコピーを行い、ステップ２３９で管理表１４１の書換えを行う。
【０１８１】
（キ）ステップ２３６で送達状態欄が「ＯＫ」であれば、信号制御部１４０は、ステップ２５３でフラグＦ１の値とフラグＦ２の値を評価し、（Ｆ１、Ｆ２）＝（１、０）であれば、ステップ２５４において、フラグＦ２を“１”にセットし、かつコピー対象シーケンス番号ＳＮ’が示すシーケンス番号をＯＫ開始ＳＮに代入し、かつコピー対象シーケンス番号ＳＮ’が示すシーケンス番号をＯＫ終了ＳＮに代入してステップ２５６へ進む。
【０１８２】
ステップ２５３で、（Ｆ１、Ｆ２）＝（１、１）であれば、ステップ２５５において、コピー対象シーケンス番号ＳＮ’が示すシーケンス番号をＯＫ終了ＳＮに代入してステップ２５６へ進む。ステップ２５３で、（Ｆ１、Ｆ２）＝（０、０）であればステップ２５６へ進む。
【０１８３】
（ク）ステップ２３６で送達状態欄が空欄であれば、信号制御部１４０は、ステップ２３７でフラグＦ１の値とフラグＦ２の値を評価し、（Ｆ１、Ｆ２）＝（１、１）であれば、信号制御部１４０は、メモリ１３５の他の送信データ格納領域へコピーすべき未達の送信データとそのコピー領域が見つかったと判断し、ステップ２３８で未達送信データのコピーを行い、ステップ２３９で管理表１４１の書換えを行う。
【０１８４】
ステップ２３７において、（Ｆ１、Ｆ２）＝（１、１）でないと、信号制御部１４０は、メモリ１３５の他の送信データ格納領域へコピーすべき未達の送信データとそのコピー領域が見つからないまま、書込みシーケンス番号ＳＮ（Ｗ）が示すシーケンス番号までコピー対象シーケンス番号ＳＮ’が示すシーケンス番号が移動してしまったと判断し、図７に示した動作を終了する。
【０１８５】
なお、図７のステップ２５６で、仮に、コピー対象シーケンス番号ＳＮ’が示すシーケンス番号が管理表１４１のサイズ（管理表１４１におけるシーケンス番号の最大値）を超えてしまう場合には、シーケンス番号をモジュロ（モジョロ＝管理表サイズ÷ＳＮ’の余り）に置き換えて動作を続ける。
【０１８６】
また、ステップ２５７で、コピー対象シーケンス番号ＳＮ’が示すシーケンス番号が、書込みシーケンス番号ＳＮ（Ｗ）が示すシーケンス番号と一致しない限り、動作はステップ２３４に戻り継続される。
【０１８７】
図８は、図７のステップ２３８の詳細を説明するためのフローチャートである。以下、図８を参照して、図７のステップ２３８を説明する。
【０１８８】
信号制御部１４０は、ステップ２７２において、管理表１４１を用いることにより、ＮＧ開始ＳＮと、ＯＫ開始ＳＮと、コピー対象シーケンス番号ＳＮ’から、コピー先開始アドレスと、コピー先終了アドレスと、コピー元開始アドレスと、コピー元終了アドレスとを求める。
【０１８９】
具体的には、信号制御部１４０は、管理表１４１に基づき、コピー対象シーケンス番号ＳＮ’が示すシーケンス番号に関連づけられた開始アドレスから、ＯＫ開始ＳＮが示すシーケンス番号に関連づけられた開始アドレスを引き、それにＮＧ開始ＳＮが示すシーケンス番号に関連づけられた開始アドレスを加算したアドレスを、コピー先開始アドレスとする。
【０１９０】
さらに、信号制御部１４０は、管理表１４１に基づき、コピー対象シーケンス番号ＳＮ’が示すシーケンス番号に関連づけられた開始アドレスから１を引いたアドレスをコピー先終了アドレスとする。
【０１９１】
さらに、信号制御部１４０は、管理表１４１に基づき、ＮＧ開始ＳＮが示すシーケンス番号に関連づけられた開始アドレスをコピー元開始アドレスとする。
【０１９２】
さらに、信号制御部１４０は、管理表１４１に基づき、ＯＫ開始ＳＮが示すシーケンス番号に関連づけられた開始アドレスから１を引いたアドレスをコピー元終了アドレスとする。
【０１９３】
次に、ステップ２３７とステップ２７４において、信号制御部１４０は、信号Ｃ１〜Ｃ３および信号Ｗと信号Ｒとを定め、メモリ１３５内データがバッファ１３７へ書き込みされるようにする。
【０１９４】
具体的には、信号制御部１４０は、ステップ２７３において信号Ｃ１〜Ｃ３のそれぞれを“１”にセットし、ステップ２７４において信号Ｗを“０”にセットし、信号Ｒを“１”にセットする。
【０１９５】
次に、信号制御部１４０は、ステップ２７５からステップ２７７により、アドレスＡｄｒｓの値をコピー元開始アドレスからコピー元終了アドレスまで順次増加する。
【０１９６】
ステップ２７５からステップ２７７により、アドレスＡｄｒｓの値に該当する送信データ（受信側に未送信の送信データの中で最も早く新規送信データに書き換えられる可能性のあるもの）が順次メモリ１３５から読み出されて出力され、出力された送信データＤａｔａ２（受信側に未送信の送信データ）はバッファ１３７の入力端子ｄｉｎへ入力し、バッファ１３７にライトされる。
【０１９７】
次に、信号制御部１４０は、ステップ２７８において、信号Ｗを“１”にセットし、かつ信号Ｒを“０”にセットして、バッファ１３７に格納された送信データ（受信側に未送信の送信データの中で最も早く新規送信データに書き換えられる可能性のあるもの）のリード動作を開始する。
【０１９８】
バッファ１３７はＦＩＦＯタイプの記憶デバイスであるので、アドレス未指定でもライトされた順にデータがリードされる。
【０１９９】
信号制御部１４０は、ステップ２７８で信号Ｗを“１”にセットした後に、ステップ２７９〜２８１において、アドレスＡｄｒｓをコピー先開始アドレスからコピー先終了アドレスへ順次設定する。
【０２００】
メモリ１３５は、ステップ２７９〜２８１で設定されたアドレス（受信側１１に送達済みの送信データを格納する送信データ格納領域の中で前記読み出した受信側に未達の送信データを格納している送信データ格納領域のアドレスよりも大きいアドレス）を有する送信データ格納領域へバッファ１３７から読み出されたデータが書き込まれる。
【０２０１】
換言すると、信号制御部１４０は、受信側１１に送達済みの送信データを格納する送信データ格納領域の中で、読み出した受信側に未達の送信データを格納する送信データ格納領域よりも後に新しい送信データが書き込まれる送信データ格納領域に、読み出した受信側に未達の送信データを格納する。
【０２０２】
よって、本実施例によれば、メモリ１３５の格納領域を大きくしなくても、受信側に未達の送信データが削除されにくくなり、未達の送信データが削除されることにより生じる伝送データの品質の低下を防止可能となる。
【０２０３】
また、メモリ１３５のアドレスに基づいて、読み出した未達の送信データを格納している送信データ格納領域よりも時間的に後に新しい送信データが書き込まれる送信データ格納領域を選出するので、メモリ１３５のアドレスを送信データ格納領域の選出用として兼用できる。
【０２０４】
図９は、図７のステップ２３９の詳細を説明するためのフローチャートである。以下、図９を参照して、図７のステップ２３９を説明する。
【０２０５】
信号制御部１４０は、ステップ２８６において、ＯＫ開始ＳＮが示すシーケンス番号を変数ｉに入れる。なお、変数ｉは、信号制御部１４０に設定される。
【０２０６】
信号制御部１４０は、ステップ２８７で、管理表１４１において変数ｉが示すシーケンス番号に関連づけられた開始アドレスおよび送達状態を「ＮＵＬＬ」を書き込む。
【０２０７】
次に、信号制御部１４０は、ステップ２８８において、変数ｉに１を加算し、１を加算した後の変数ｉが示すシーケンス番号がＯＫ終了ＳＮが示すシーケンス番号よりも大きくなければ、ステップ２８７へ戻り、１を加算した後の変数ｉがＯＫ終了ＳＮよりも大きくなると動作を終了する。
【０２０８】
例えば、図３に示した管理表１４１で、ＯＫ開始ＳＮが示すシーケンス番号ＳＮ＝７４であり、ＯＫ終了ＳＮが示すシーケンス番号ＳＮ＝７５であるとすると、信号制御部１４０は、図３のシーケンス番号ＳＮ＝７４に関連づけられている開始アドレス欄１４１ｂおよび送達状態欄１４１ｃに「ＮＵＬＬ」を書き込み、図３のシーケンス番号ＳＮ＝７５に関連づけられている開始アドレス欄１４１ｂおよび送達状態欄１４１ｃに「ＮＵＬＬ」を書き込む。
【０２０９】
「ＮＵＬＬ」が書き込まれた開始アドレス欄および送達状態欄に関連付けられているシーケンス番号ＳＮが付与された送信データは、上り制御チャネルによりＡＣＫが返された送信データであり、この送信データは再送する必要がないため、図８に示した動作によってメモリ１３５から既に消されている。この消去を識別するために、管理表１４１の該当シーケンス番号ＳＮへ「ＮＵＬＬ」を書き込んでおく。
【０２１０】
また、信号制御部１４０は、管理表１４１において、ＮＧ開始ＳＮが示すシーケンス番号に関連づけられている開始アドレスをコピー先開始アドレスに書き換える。
【０２１１】
よって、管理表１４１により、メモリ１３５に格納されている送信データの状態を確認可能となる。
【０２１２】
図３は、図９に示した動作を行う前の管理表１４１の内容を示した説明図であり、図５は、図９に示した動作を行った後の管理表１４１の内容を示した説明図である。
【０２１３】
本実施例は、管理表１４１に基づき、信号制御部１４０が、最も早く書き換えられる可能性のある受信側に未達の送信データを検出するとともに、メモリ１３５に格納しておく必要のない送達済みの送信データを格納している送信データ格納領域のうち、検出した未達の送信データを格納する送信データ格納領域よりも後に新しい送信データが書き込まれる送信データ格納領域を検出し、検出した未達の送信データを検出した送信データ格納領域に格納する。
【０２１４】
したがって、本実施例によれば、メモリ１３５の格納領域を大きくしなくても、受信側に未達の送信データが削除されにくくなり、未達の送信データが削除されることにより生じる伝送データの品質の低下を防止可能となる。
【０２１５】
以上説明した実施例において、図示した構成は単なる一例であって、本発明はその構成に限定されるものではない。
【０２１６】
【発明の効果】
以上説明した通り、本発明は、受信側から送信される送達状態情報に基づき、送信データ格納領域に送信データを格納する再送バッファに格納されている送信データの中から受信側に未達の送信データを読み出し、受信側に送達済みの送信データを格納する送信データ格納領域の中で前記読み出した受信側に未達の送信データを格納する送信データ格納領域よりも後に新しい送信データが書き込まれる送信データ格納領域に、前記読み出した受信側に未達の送信データを格納する。
【０２１７】
したがって、再送バッファのサイズを従来と同一にした場合でも、再送バッファ内に残留している未達データが、新たに再送バッファに書き込まれる送信データによって上書きされ難くなり、送信データの品質が向上する。または、データ品質を従来と同程度とした場合、再送バッファのサイズを従来に比べ小さく抑えることが可能となる。
【図面の簡単な説明】
【図１】本発明の一実施例である通信装置を含む通信システムを示したブロック図である。
【図２】図１に示した再送制御部を示した回路図である。
【図３】図２に示した管理表１４１の一例を示した説明図である。
【図４】図２に示したメモリ１３５の一部を模式的に示した模式図である。
【図５】図２に示した管理表１４１の他の例を示した説明図である。
【図６】図２に示した再送制御部１０３を動作を説明するためのフローチャートである。
【図７】図２に示した再送制御部１０３を動作を説明するためのフローチャートである。
【図８】図２に示した再送制御部１０３を動作を説明するためのフローチャートである。
【図９】図２に示した再送制御部１０３を動作を説明するためのフローチャートである。
【図１０】従来の再送バッファを示した説明図である。
【符号の説明】
１０      通信装置
１１      受信側
１２      伝送路
１００    情報出力部
１０１    送信機制御部
１０２    フォーマット変換部
１０３    再送制御部
１０５    符号化・拡散部
１０６    データ送信部
１０７    下り伝播路
１０８    データ受信部
１０９    逆拡散・復号部
１１０    ゲート
１１１    フォーマット逆変換部
１１２    情報受信部
１１３    送達検査部
１１５    上り伝播路
１１６    符号化・拡散部
１１７    データ送信部
１１８    データ受信部
１１９    逆拡散・復号部
ｓ１００  パケットデータ
ｓ１０１  フレーム区切信号
ｓ１０２  ブロック形式データ
ｓ１０３  下り送信データ
ｓ１０４  下り制御情報
ｓ１０５  下り送信ビット列
ｓ１０６  下り送信信号
ｓ１０７  下り受信信号
ｓ１０８  下り受信ビット列
ｓ１０９  下り受信データ
ｓ１１０  下り制御情報
ｓ１１１  下り受信データ（ゲート出力）
ｓ１１２  パケットデータ
ｓ１１３  ゲート制御信号
ｓ１１４  送達情報（ＡＣＫ、ＮＡＣＫ）
ｓ１１６  上り制御情報
ｓ１１７  上り送信信号
ｓ１１８  上り受信信号
ｓ１１９  上り受信ビット列
ｓ１２１  送達情報
１３１    バッファ
１３２  アドレス生成回路
１３３、１３４、１３６  スイッチ
１３５  メモリ
１３７  バッファ
１４０  信号制御部
１４１  管理表
１４２  再送バッファ制御手段
Ａｄｒｓ  アドレス
ＷＰ    ライトアドレス
Ｄａｔａ２  メモリ出力（送信データ）
Ｄａｔａ１、Ｄａｔａ３  バッファ出力データ（送信データ）
Ｃ１、Ｃ２、Ｃ３  信号
Ｗ      信号
Ｒ      信号
ＣＬＫ  クロック
【図１】
2005005968.tif 000003
【図２】
2005005968.tif 000004
【図３】
2005005968.tif 000005
【図４】
2005005968.tif 000006
【図５】
2005005968.tif 000007
【図６】
2005005968.tif 000008
【図７】
2005005968.tif 000009
【図８】
2005005968.tif 000010
【図９】
2005005968.tif 000011
【図１０】
2005005968.tif 000012