(57)【要約】【課題】  送信データのブロックがＦＩＦＯメモリの容量を超え、上書きされて書き込まれても適正な送信データの再送を可能にする。【解決手段】  メモリ３には、通信装置６に送信する送信データが記憶されている。ＦＩＦＯメモリ１ａは、中央演算処理装置２によって、メモリ３に記憶されている送信データが書き込まれ、読み出される。ＤＭＡＣ起動部１ｂは、送信データのブロックがＦＩＦＯメモリ１ａの容量を超えて書き込まれた場合にブロックの再送要求があると、ＤＭＡＣ４を起動して、メモリ３が記憶しているブロックを、通信データ制御装置１に転送するようにする。【選択図】  図１
2006270469.tif 000002
【特許請求の範囲】
【請求項１】
バスを介して接続されたメモリに記憶されている送信データの通信制御をする通信データ制御装置において、
前記送信データが書き込まれ、読み出されるＦＩＦＯメモリと、
前記送信データのブロックが前記ＦＩＦＯメモリの容量を超えて書き込まれた場合に前記送信データの再送要求があると、前記バスに接続されたＤＭＡＣを起動して、前記メモリが記憶している前記送信データの前記ブロックを、前記ＦＩＦＯメモリに転送するようにするＤＭＡＣ起動部と、
を有することを特徴とする通信データ制御装置。
【請求項２】
前記ＤＭＡＣ起動部は、前記ＦＩＦＯメモリに書き込まれる前記送信データの数に基づいて、前記ブロックが前記ＦＩＦＯメモリの容量を超えて書き込まれたか判断することを特徴とする請求項１記載の通信データ制御装置。
【請求項３】
前記ＤＭＡＣは、前記バスに接続されている中央演算処理装置によって前記ブロックの先頭が読み出されるときに前記ブロックの先頭アドレスと大きさとがセットされることを特徴とする請求項１記載の通信データ制御装置。
【請求項４】
通信データの通信制御をする通信データ制御装置において、
再送の開始点となることを示す再送開始点情報が付加された送信データが書き込まれ、読み出されるＦＩＦＯメモリと、
前記ＦＩＦＯメモリから前記送信データを読み出すための読み出しアドレスを生成するリードポインタと、
前記送信データの再送要求があったとき、記憶している前記読み出しアドレスを前記リードポインタに出力するリロードポインタと、
前記ＦＩＦＯメモリから読み出された前記送信データの前記再送開始点情報に基づいて、前記リードポインタの生成した前記読み出しアドレスを前記リロードポインタに記憶するポインタ制御部と、
を有することを特徴とする通信データ制御装置。
【請求項５】
前記ＦＩＦＯメモリから読み出された前記送信データの前記再送開始点情報を分離する分離部を有することを特徴とする請求項４記載の通信データ制御装置。
【請求項６】
前記分離部は、分離した前記再送開始点情報を前記リロードポインタに出力し、分離した送信データを通信相手に送信することを特徴とする請求項５記載の通信データ制御装置。
【請求項７】
バスを介して接続されたメモリに記憶されている送信データの通信制御をする通信データ制御装置において、
再送の開始点となることを示す再送開始点情報が付加された前記送信データが書き込まれ、読み出されるＦＩＦＯメモリと、
前記ＦＩＦＯメモリから前記送信データを読み出すための読み出しアドレスを生成するリードポインタと、
前記送信データの再送要求があったとき、記憶している前記読み出しアドレスを前記リードポインタに出力するリロードポインタと、
前記ＦＩＦＯメモリから読み出された前記送信データの前記再送開始点情報に基づいて、前記リードポインタの生成した前記読み出しアドレスを前記リロードポインタに記憶するポインタ制御部と、
前記送信データのブロックが前記ＦＩＦＯメモリの容量を超えて書き込まれた場合に前記送信データの前記再送要求があると、前記バスに接続されたＤＭＡＣを起動して、前記メモリが記憶している前記送信データの前記ブロックを、前記ＦＩＦＯメモリに転送するようにするＤＭＡＣ起動部と、
を有することを特徴とする通信データ制御装置。
【請求項８】
前記ＤＭＡＣ起動部は、前記ＦＩＦＯメモリに書き込まれる前記送信データの数に基づいて、前記ブロックが前記ＦＩＦＯメモリの容量を超えて書き込まれたか判断することを特徴とする請求項７記載の通信データ制御装置。
【請求項９】
前記ＤＭＡＣは、前記バスに接続されている中央演算処理装置によって前記ブロックの先頭が読み出されるときに前記ブロックの先頭アドレスと大きさとがセットされることを特徴とする請求項７記載の通信データ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は通信データ制御装置に関し、特にＦＩＦＯ（First In First Out）メモリに送信データを書き込んで、通信を行う通信データ制御装置に関する。
【背景技術】
【０００２】
通信装置等には、データの送受信を制御する、ＦＩＦＯメモリを備えた通信データ制御装置が適用されている。通信データ制御装置は、例えば、ＣＰＵなどの制御装置から送信データを受け取ると、制御装置から独立してその送信データを通信相手に送信する。これによって、制御装置の処理負荷を軽減することができる。
【０００３】
また、通信データ制御装置は、送信データがＦＩＦＯメモリに書き込まれるので、送信時にエラー等が発生した場合、ＦＩＦＯメモリに記憶されている送信データのアドレスを制御することにより、送信データの再書き込みをすることなく送信データを再送することが可能となる（例えば、特許文献１，２参照）。
【０００４】
図６は、従来の通信データ制御装置の例を示した回路図である。図に示すように通信データ制御装置１０１は、バス１２２を介してＣＰＵ１２１と接続されている。また、通信データ制御装置１０１は、データを送信する送信回路１３１およびデータを受信する受信回路１３２と接続されている。送信回路１３１と受信回路１３２の間には、通信データ制御装置１０１が送信回路１３１に出力した送信データをモニタできるように、折り返し線１３３が接続されている。送信回路１３１および受信回路１３２の先には、通信相手である通信装置が接続されている。
【０００５】
ＣＰＵ１２１は、通信相手である通信装置に送信データを送る場合、通信データ制御装置１０１のバッファ１０２に送信データを書き込む。バッファ１０２は、書き込まれたデータをＦＩＦＯメモリ１０４に書き込む。
【０００６】
ライトポインタ１０５は、ＦＩＦＯメモリ１０４のアドレスを生成する。ライトポインタ制御部１０６は、ライトポインタ１０５のアドレス生成を制御している。例えば、ライトポインタ制御部１０６は、バッファ１０２の送信データがＦＩＦＯメモリ１０４に書き込まれると、ライトポインタ１０５のアドレスをインクリメントするように制御する。また、ライトポインタ１０５のアドレスが最終アドレスになると、先頭アドレスとなるように制御する。
【０００７】
リードポインタ１０７は、ＦＩＦＯメモリ１０４から送信データを読み出すためのアドレスを生成している。リードポインタ制御部１０８は、リードポインタ１０７のアドレス生成を制御している。例えば、リードポインタ制御部１０８は、ＦＩＦＯメモリ１０４から送信データが読み出されると、リードポインタ１０７のアドレスをインクリメントするように制御する。また、リードポインタ１０７のアドレスが最終アドレスになると、先頭アドレスとなるように制御する。なお、ライトポインタ制御部１０６およびリードポインタ制御部１０８は、送信データが先入れ先出しとなるように、ＦＩＦＯメモリ１０４のアドレスを制御する。ＦＩＦＯメモリ１０４から読み出された送信データは、バッファ１０３および送信回路１３１を介して、通信装置に送信される。
【０００８】
リロードポインタ１０９は、送信データの送信が失敗したときに再送する送信データのアドレスを記憶している。リロードポインタ１０９のアドレスは、ＣＰＵ１２１によって制御される（図中ＣＰＵ１２１とリロードポインタ１０９の間の線は省略している）。
【０００９】
ＣＰＵ１２１は、送信データのブロックをＦＩＦＯメモリ１０４に書き込むとき、ブロックの先頭が書き込まれたＦＩＦＯメモリ１０４のアドレスを、リロードポインタ１０９に記憶するように制御する。よって、送信データの再送要求があった場合、リロードポインタ１０９のアドレスをリードポインタ１０７にセットすれば、再送要求のあった送信データを含むブロックがＦＩＦＯメモリ１０４から再送されることになる。なお、送信データは、一定の大きさを有し、例えば、１バイトのデータである。ブロックは、その送信データが集まったものであり、例えば、１つのブロックで１つのデータをなすように、適当に区切られている。ブロックの区切りは、ＣＰＵ１２１によって判断される。
【００１０】
受信制御部１１０は、送信データの再送の必要があるかを判断する。例えば、通信相手である通信装置から通信エラーを受信した場合、または、折り返し線１３３によりモニタしている送信データが、送信すべき送信データと異なっている場合等に、送信データの再送の必要があると判断する。受信制御部１１０は、送信データの再送の必要があると判断した場合、再送トリガ信号ＲＴをリードポインタ制御部１０８に送信する。
【００１１】
リードポインタ制御部１０８は、受信制御部１１０から再送トリガ信号ＲＴを受信すると、リロードポインタ１０９のアドレスを、リードポインタ１０７にセットするように、リロードポインタ１０９を制御する。これによって、ＦＩＦＯメモリ１０４に記憶されている送信データのブロックは、再び先頭から読み出され、通信装置に再送されることになる。
【００１２】
受信回路１３２は、通信相手である通信装置から受信データを受信する。受信回路１３２は、受信データをバッファ１１４に書き込む。バッファ１１４は、書き込まれた受信データをＦＩＦＯメモリ１１１に書き込む。
【００１３】
ライトポインタ１１５は、受信データをＦＩＦＯメモリ１１１に書き込むためのアドレスを生成している。リードポインタ１１３は、ＦＩＦＯメモリ１１１に書き込まれた受信データを読み出すためのアドレスを生成している。ＦＩＦＯメモリ１１１から読み出された受信データは、バッファ１１２およびバス１２２を介して、ＣＰＵ１２１へ出力される。なお、図では、リードポインタ１１３およびライトポインタ１１５のアドレス生成を制御するポインタ制御部を省略している。このポインタ制御部は、受信データが先入れ先出しとなるように、ＦＩＦＯメモリ１１１のアドレスを制御する。
【特許文献１】特開２０００−１０７５８号公報
【特許文献２】特開平５−２５７８４７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかし、通信相手に送信する送信データのブロックが、ＦＩＦＯメモリの容量を超える場合、超える部分の送信データを、すでに送信が完了した領域に上書きしなければならない。そのため、ブロックの再送の必要が生じた場合、ＦＩＦＯメモリには、一部の送信データが消失していることになり、ＦＩＦＯメモリの送信データを再送することができないという問題点があった。
【００１５】
図７は、送信データのブロックがＦＩＦＯメモリの容量を超える場合のＦＩＦＯメモリの状況を説明する図である。図には、通信相手の通信装置に送信される送信データのブロック１４１が示してある。両矢印Ａ１０１は、送信データ制御装置のＦＩＦＯメモリの容量を示している。図に示すように、ブロック１４１の容量は、ＦＩＦＯメモリの容量を超えているので、ブロック１４１のＦＩＦＯメモリの容量を超える部分、すなわち、両矢印Ａ１０２の部分は、すでに送信が完了したＦＩＦＯメモリの領域に上書きされることになる。そのため、ブロック１４１の再送の必要が生じた場合、一部の送信データが消失しているため、ＦＩＦＯメモリから適正に送信データを再送することができない。
【００１６】
また、送信データのブロックの送信が完了していないときに、次のブロックがＦＩＦＯメモリに書き込まれた場合、リロードポインタには次のブロックのアドレスが記憶されることになる。そのため、最新のブロック以前のブロックにおいて、再送の必要が生じた場合、再送すべきブロックのアドレスは消失しており、再送することができないという問題点があった。
【００１７】
図８は、送信データのブロックが複数ＦＩＦＯメモリに書き込まれる場合のリロードポインタを説明する図である。図には、ＦＩＦＯメモリに書き込まれた複数のブロック１５１〜１５３が示してある。ブロック１５１の送信中に、ブロック１５２，１５３が上書きされることなくＦＩＦＯメモリに書き込まれたとする。この場合、リロードポインタには、ブロック１５３の先頭が記憶されたＦＩＦＯメモリのアドレスが記憶される。そのため、ブロック１５１またはブロック１５２の送信中において、送信データの再送要求があった場合、リロードポインタのアドレスが変わっているため再送することができない。
【００１８】
本発明はこのような点に鑑みてなされたものであり、送信データのブロックがＦＩＦＯメモリの容量を超える場合でも、適正に送信データを再送することができる通信データ制御装置を提供することを目的とする。
【００１９】
また、複数の送信データのブロックがＦＩＦＯメモリに記憶されても適正に送信データを再送することができる通信データ制御装置を提供することを目的とする。
【課題を解決するための手段】
【００２０】
本発明では上記問題を解決するために、図１に示すようなバス５を介して接続されたメモリ３に記憶されている送信データの通信制御をする通信データ制御装置１において、送信データが書き込まれ、読み出されるＦＩＦＯメモリ１ａと、送信データのブロックがＦＩＦＯメモリ１ａの容量を超えて書き込まれた場合に送信データの再送要求があると、バス５に接続されたＤＭＡＣ４を起動して、メモリ３が記憶している送信データのブロックを、ＦＩＦＯメモリ１ａに転送するようにするＤＭＡＣ起動部１ｂと、を有することを特徴とする通信データ制御装置が提供される。
【００２１】
このような通信データ制御装置１によれば、送信データのブロックが、ＦＩＦＯメモリ１ａの容量を超えて書き込まれた場合に再送要求があると、ＤＭＡＣ４を起動し、再送すべきブロックをメモリ３からＦＩＦＯメモリ１ａに転送するようにする。
【００２２】
また、本発明では上記問題を解決するために、通信データの通信制御をする通信データ制御装置において、再送の開始点となることを示す再送開始点情報が付加された送信データが書き込まれ、読み出されるＦＩＦＯメモリと、ＦＩＦＯメモリから送信データを読み出すための読み出しアドレスを生成するリードポインタと、送信データの再送要求があったとき、記憶している読み出しアドレスをリードポインタに出力するリロードポインタと、ＦＩＦＯメモリから読み出された送信データの再送開始点情報に基づいて、リードポインタの生成した読み出しアドレスをリロードポインタに記憶するポインタ制御部と、を有することを特徴とする通信データ制御装置が提供される。
【００２３】
このような通信データ制御装置によれば、ＦＩＦＯメモリから読み出された送信データに付加されている再送開始点情報に基づいて、ＦＩＦＯメモリから読み出された送信データの読み出しアドレスをリロードポインタに記憶する。
【発明の効果】
【００２４】
本発明の通信データ制御装置では、送信データのブロックが、ＦＩＦＯメモリの容量を超えて書き込まれた場合に再送要求があると、ＤＭＡＣを起動し、再送すべきブロックをメモリからＦＩＦＯメモリに転送するようにした。これによって、送信データのブロックがＦＩＦＯメモリの容量より大きいため、上書きされていても、ＤＭＡＣによって、メモリに記憶されているブロックが転送されるので、適正に送信データを再送することができる。
【００２５】
また、本発明の通信データ制御装置では、ＦＩＦＯメモリから読み出された送信データに付加されている再送開始点情報に基づいて、ＦＩＦＯメモリから読み出された送信データの読み出しアドレスをリロードポインタに記憶するようにした。これによって、送信データのブロックの送信が完了していないときに、次の送信データのブロックがＦＩＦＯメモリに書き込まれても、リロードポインタは上書きされることはなく、適正に送信データを再送することができる。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の原理を図面を参照して詳細に説明する。
図１は、通信データ制御装置の概要を示した図である。図に示すように通信データ制御装置１は、先入れ先出し方式に従ってデータの出し入れをするＦＩＦＯメモリ１ａおよびＤＭＡＣ（Direct Memory Access Controller）起動部１ｂを有している。通信データ制御装置１は、バス５を介して、中央演算処理装置２、メモリ３、およびＤＭＡＣ４と接続されている。また、通信データ制御装置１は、通信相手である通信装置６と接続されている。メモリ３には、通信装置６に送信する送信データが記憶されている。
【００２７】
ＦＩＦＯメモリ１ａは、中央演算処理装置２により、メモリ３に記憶されている送信データが書き込まれ、読み出される。読み出された送信データは、通信装置６に送信される。
【００２８】
ＤＭＡＣ起動部１ｂは、送信データのブロックが、ＦＩＦＯメモリ１ａの容量を超えて書き込まれた場合に送信データの再送要求があると、ＤＭＡＣ４を起動する。そして、ＤＭＡＣ起動部１ｂは、メモリ３が記憶している再送要求のあった送信データのブロックを、通信データ制御装置１に転送するようにする。
【００２９】
なお、送信データは、一定の大きさを有し、例えば、１バイトのデータである。ブロックは、その送信データが集まったものであり、例えば、１つのブロックで１つのデータをなすように、適当に区切られている。ブロックの区切りは、中央演算処理装置２によって判断される。中央演算処理装置２は、メモリ３から読み出した送信データがブロックの先頭である場合、そのブロックの先頭アドレスと大きさとをＤＭＡＣ４にセットする。よって、ＤＭＡＣ４は、再送要求があったとき、セットされた先頭アドレスと大きさに基づいて、送信データを含むブロックを転送することができる。
【００３０】
このように、通信データ制御装置１は、送信データのブロックが、ＦＩＦＯメモリ１ａの容量を超えて書き込まれた場合に再送要求があると、ＤＭＡＣ４を起動し、再送すべき送信データのブロックをメモリ３からＦＩＦＯメモリ１ａに転送するようにした。これによって、送信データのブロックがＦＩＦＯメモリ１ａの容量より大きいため、上書きされていても、ＤＭＡＣ４によって、メモリ３に記憶されている適正なブロックが転送されるので、適正に送信データを再送することができる。
【００３１】
次に、本発明の第１の実施の形態を図面を参照して詳細に説明する。
図２は、第１の実施の形態に係る通信データ制御装置の回路図である。図に示すように通信データ制御装置１１は、バッファ１２，１３，２２，２４、ＦＩＦＯメモリ１４，２１、ライトポインタ１５，２５、ライトポインタ制御部１６、リードポインタ１７，２３、リードポインタ制御部１８、リロードポインタ１９、および受信制御部２０を有している。
【００３２】
図に示すように通信データ制御装置１１は、バス３４を介してＣＰＵ３１、メモリ３２、およびＤＭＡＣ３３と接続されている。また、通信データ制御装置１１は、データを送信する送信回路５１およびデータを受信する受信回路５２と接続されている。送信回路５１と受信回路５２の間には、通信データ制御装置１１が送信回路５１から出力した送信データをモニタできるように、折り返し線５３が接続されている。送信回路５１および受信回路５２の先には、通信相手である通信装置が接続されている。
【００３３】
メモリ３２には、通信相手である通信装置に送信する送信データが記憶されている。ＣＰＵ３１は、メモリ３２に記憶されている送信データを通信相手である通信装置に送信する場合、通信データ制御装置１１のバッファ１２に送信データを書き込む。
【００３４】
バッファ１２は、書き込まれた送信データをＦＩＦＯメモリ１４に書き込む。バッファ１２は、例えば、ＣＰＵ３１から送信されてくる送信データがＦＩＦＯメモリ１４の電気的特性に適合するようにする。
【００３５】
ライトポインタ１５は、送信データをＦＩＦＯメモリ１４に書き込むためのアドレスを生成する。ライトポインタ制御部１６は、ライトポインタ１５のアドレス生成を制御している。例えば、ライトポインタ制御部１６は、バッファ１２の送信データがＦＩＦＯメモリ１４に書き込まれると、ライトポインタ１５のアドレスをインクリメントするように制御する。また、ライトポインタ１５のアドレスが最終アドレスになると、先頭アドレスとなるように制御する。
【００３６】
リードポインタ１７は、ＦＩＦＯメモリ１４から送信データを読み出すためのアドレスを生成している。リードポインタ制御部１８は、リードポインタ１７のアドレス生成を制御している。例えば、リードポインタ制御部１８は、ＦＩＦＯメモリ１４から送信データが読み出されると、リードポインタ１７のアドレスをインクリメントするように制御する。また、リードポインタ１７のアドレスが最終アドレスになると、先頭アドレスとなるように制御する。なお、ライトポインタ制御部１６およびリードポインタ制御部１８は、送信データが先入れ先出しとなるようにＦＩＦＯメモリ１４のアドレスを制御する。ＦＩＦＯメモリ１４から読み出された送信データは、バッファ１３および送信回路５１を介して、通信装置に送信される。
【００３７】
リロードポインタ１９は、送信データの再送要求があった場合の送信データのアドレスを記憶している。リロードポインタ１９のアドレスは、ＣＰＵ３１によって制御される（図中ＣＰＵ３１とリロードポインタ１９の間の線は省略している）。
【００３８】
ＣＰＵ３１は、送信データのブロックをＦＩＦＯメモリ１４に書き込むとき、ブロックの先頭が書き込まれたＦＩＦＯメモリ１４のアドレスを、リロードポインタ１９に記憶するように制御する。よって、送信データの再送要求があった場合、リロードポインタ１９のアドレスをリードポインタにセットすれば、再送要求のあった送信データを含むブロックがＦＩＦＯメモリ１４から再送されることになる。なお、送信データは、一定の大きさを有し、例えば、１バイトのデータである。ブロックは、その送信データが集まったものであり、例えば、１つのブロックで１つのデータをなすように、適当に区切られている。ブロックの区切りは、ＣＰＵ３１によって判断される。
【００３９】
受信制御部２０は、送信データの再送の必要があるかを判断する。例えば、通信相手である通信装置から再送要求を受信した場合、折り返し線５３によりモニタしている送信データが、送信すべき送信データと異なっている場合、または、通信装置からの応答受信データが定められたバイト数に対し不足し、最後の応答受信データを受信後、ボーレートクロックをカウントし、一定の値以上になった場合等に送信データの再送の必要があると判断する。受信制御部２０は、送信データの再送の必要があると判断した場合、再送トリガ信号ＲＴをリードポインタ制御部１８に送信する。
【００４０】
リードポインタ制御部１８は、受信制御部２０から再送トリガ信号ＲＴを受信すると、リロードポインタ１９のアドレスを、リードポインタ１７にセットするように、リロードポインタ１９を制御する。これによって、ＦＩＦＯメモリ１４に記憶されている送信データのブロックが、再び先頭から読み出され、通信装置に再送されることになる。
【００４１】
送信データのブロックの大きさがＦＩＦＯメモリ１４の容量を超える場合、超える部分の送信データは、すでに送信が完了したＦＩＦＯメモリ１４の領域に上書きされる。この場合に再送要求があると、ブロックの送信データは、上書きによって一部失われているため、適正に送信データを再送することができない。そこで、ライトポインタ制御部１６は、ライトポインタ１５のアドレスをカウントし、ＦＩＦＯメモリ１４に書き込まれる送信データがＦＩＦＯメモリ１４の容量を超えたか判断する。そして、ライトポインタ制御部１６は、送信データが上書きされたと判断した場合、ポインタロスト信号ＰＬをリードポインタ制御部１８に出力する。
【００４２】
リードポインタ制御部１８は、ライトポインタ制御部１６からポインタロスト信号ＰＬを受けている場合において、受信制御部２０から再送トリガ信号ＲＴを受信すると、リロードポインタ１９のアドレスをリードポインタ１７にセットせずにリードポインタ１７を初期化し、ライトポインタ制御部１６にリロード信号ＲＬを出力する。ライトポインタ制御部１６は、リードポインタ制御部１８からリロード信号ＲＬを受信するとライトポインタ１５を初期化し、バス３４を介して、ＤＭＡＣ３３を起動する。なお、メモリ３２から通信データ制御装置１１への転送失敗による転送回数には制限がある。この制限回数を超えると、ライトポインタ制御部１６は、アボート信号をＤＭＡＣ３３に出力する。
【００４３】
ＤＭＡＣ３３には、送信データのブロックの先頭アドレスと転送数が記憶される。この先頭アドレスおよび転送数は、例えば、ＣＰＵ３１が送信データのブロックをＦＩＦＯメモリ１４に書き込むとき、ＣＰＵ３１によって書き込まれる。よって、送信データの再送要求があり、ＤＭＡＣ３３が起動されると、ＤＭＡＣ３３は、セットされたアドレスと大きさに基づいて、メモリ３２に記憶されている送信データのブロックを通信データ制御装置１１に送信し、送信データが再送されるようにする。なお、ＣＰＵ３１は、通信データ制御装置１１に出力する送信データのブロックが、ＦＩＦＯメモリ１４の容量より大きいと判断した場合のみ、ブロックの先頭アドレスと大きさとをＤＭＡＣ３３にセットするようにしてもよい。また、ＤＭＡＣ３３は、ライトポインタ制御部１６からアボート信号を受信すると、送信データの転送を中断する。
【００４４】
受信回路５２は、通信相手である通信装置から受信データを受信する。受信回路５２は、受信データをバッファ２４に書き込む。バッファ２４は、書き込まれた受信データをＦＩＦＯメモリ２１に書き込む。
【００４５】
ライトポインタ２５は、受信データをＦＩＦＯメモリ２１に書き込むためのアドレスを生成している。リードポインタ２３は、ＦＩＦＯメモリ２１に書き込まれた受信データを読み出すためのアドレスを生成している。ＦＩＦＯメモリ２１から読み出された受信データは、バッファ２２およびバス３４を介して、ＣＰＵ３１へ出力される。なお、図ではライトポインタ２５およびリードポインタ２３のアドレス生成を制御するポインタ制御部を省略している。このポインタ制御部は、送信データがＦＩＦＯによってＦＩＦＯメモリ２１に書き込まれ、読み出されるようにアドレスを制御する。
【００４６】
以下、図２の通信データ制御装置１１の動作について説明する。ＣＰＵ３１は、メモリ３２に記憶されている送信データを通信データ制御装置１１に出力する。このとき、送信データがブロックの先頭である場合、ＣＰＵ３１は、メモリ３２に記憶されているブロックの先頭のアドレスと大きさ（転送数）とをＤＭＡＣ３３に書き込む。
【００４７】
ＣＰＵ３１によってメモリ３２から読み出された送信データは、通信データ制御装置１１のＦＩＦＯメモリ１４に書き込まれる。ＦＩＦＯメモリ１４に書き込まれる送信データがブロックの先頭のデータである場合、ＦＩＦＯメモリ１４に書き込まれた送信データのアドレスが、ＣＰＵ３１によってリロードポインタ１９に書き込まれる。
【００４８】
ＦＩＦＯメモリ１４に記憶される送信データの大きさが、ＦＩＦＯメモリ１４の容量以下の場合に、受信制御部２０から再送トリガ信号ＲＴが出力されると（送信データの再送要求があると）、リードポインタ制御部１８は、リロードポインタ１９のアドレスが、リードポインタ１７にセットされるようにリロードポインタ１９を制御する。これにより、ＦＩＦＯメモリ１４に記憶されている送信データが、再び通信相手の通信装置に送信されることになる。
【００４９】
一方、送信データが、ＦＩＦＯメモリ１４の容量を超えて書き込まれた場合、ライトポインタ制御部１６からポインタロスト信号ＰＬがリードポインタ制御部１８に出力される。このポインタロスト信号ＰＬが出力された場合において、受信制御部２０から再送トリガ信号ＲＴが出力されると（送信データの再送要求があると）、リードポインタ制御部１８は、ライトポインタ制御部１６にリロード信号ＲＬを出力する。ライトポインタ制御部１６は、リードポインタ制御部１８からリロード信号ＲＬを受信すると、バス３４を介して、ＤＭＡＣ３３を起動する。ＤＭＡＣ３３は、ＣＰＵ３１によって書き込まれたブロックの先頭アドレスおよび転送数に従って、メモリ３２に記憶されている送信データを通信データ制御装置１１に転送する。これによって、送信データがＦＩＦＯメモリ１４の容量を超える場合にも、適正に再送することができる。
【００５０】
このように、通信データ制御装置１１では、送信データのブロックが、ＦＩＦＯメモリ１４の容量を超えて書き込まれた場合に再送トリガ信号ＲＴがあると、ＤＭＡＣ３３を起動し、再送すべき送信データをメモリ３２からＦＩＦＯメモリ１４に転送するようにした。これによって、送信データのブロックがＦＩＦＯメモリ１４の容量より大きいため、送信データが一部上書きされていても、ＤＭＡＣ３３によって、メモリ３２に記憶されているブロックが再転送されるので、適正に送信データを再送することができる。
【００５１】
また、ＣＰＵ３１を介さずに、メモリ３２の送信データのブロックを通信データ制御装置１１に転送するので、ＣＰＵ３１の負荷を低減することができる。
次に、本発明の第２の実施の形態を図面を参照して詳細に説明する。
【００５２】
図３は、第２の実施の形態に係る通信データ制御装置の回路図である。図３において図２と同じものには同じ符号を付し、その説明を省略する。
ＦＩＦＯメモリ６２には、ＣＰＵ３１によって送られる送信データが記憶される。送信データには、ブロックの先頭であるか否かを示すリロード情報が付与されている。リロード情報は、ＣＰＵ３１が送信データを通信データ制御装置６１に送信するとき、ＣＰＵ３１によって付加される。なお、ＣＰＵ３１は、例えば、バス３４に接続されている図示しないメモリから送信データを読み出し、通信データ制御装置６１に出力する。
【００５３】
図４は、ＦＩＦＯメモリに記憶される送信データのデータフォーマット例を示した図である。図に示すように送信データは、リロード情報の領域６５ａと、送信データの本体の領域６５ｂとに分けられる。領域６５ａのリロード情報は、例えば、１で領域６５ｂの送信データがブロックの先頭であることを示し、０で送信データがブロックの先頭でないことを示している。
【００５４】
図３の説明に戻る。ＦＩＦＯメモリ６２に記憶されているリロード情報が付加された送信データは、リードポインタ１７の示すアドレスによって読み出され、バッファ６３に出力される。バッファ６３は、送信データに付加されているリロード情報と送信データとを分離し、送信データは、送信回路５１へ出力し、リロード情報は、リロードポイント信号ＲＰとしてリードポインタ制御部６４に出力する。
【００５５】
リードポインタ制御部６４は、バッファ６３からのリロードポイント信号ＲＰに応じて、リロードポインタ１９がリードポインタ１７の示しているアドレスを記憶するように制御する。例えば、リロードポイント信号ＲＰが１である場合、すなわち、ＦＩＦＯメモリ６２から読み出された送信データがブロックの先頭であることを示している場合、リードポインタ制御部６４は、リードポインタ１７が示しているアドレスを記憶するようにリロードポインタ１９を制御する。このように、ＦＩＦＯメモリ６２から読み出された送信データは、再送ブロックの先頭の送信データであるか判断され、先頭の送信データである場合、リードポインタ１７のアドレスがリロードポインタ１９に記憶される。そして、リードポインタ制御部６４は、受信制御部２０から再送トリガ信号ＲＴを受信すると、リロードポインタ１９の記憶しているアドレスが、リードポインタ１７にセットされるようにリロードポインタ１９を制御する。これによって、ＦＩＦＯメモリ６２に複数のブロックが記憶されても、リロードポインタ１９は上書きされることはなく、再送すべきブロックを適正に送信することができる。なお、リードポインタ制御部６４のリードポインタ１７の制御は、図２のリードポインタ制御部１８と同様に行う。
【００５６】
以下、図３の通信データ制御装置６１の動作について説明する。送信データは、ＣＰＵ３１によってリロード情報が付加され、ＦＩＦＯメモリ６２に書き込まれる。ＦＩＦＯメモリ６２に書き込まれた送信データは、リードポインタ１７のアドレスに基づいて読み出されバッファ６３に出力される。バッファ６３は、ＦＩＦＯメモリ６２から出力された送信データに含まれているリロード情報をリロードポイント信号ＲＰとして、リードポインタ制御部６４に出力する。
【００５７】
リードポインタ制御部６４は、リロードポイント信号ＲＰがブロックの先頭の送信データであることを示している場合、リードポインタ１７が示しているアドレスを記憶するようにリロードポインタ１９を制御する。これによって、再送されるべきブロックの先頭のアドレスがリロードポインタ１９にセットされる。
【００５８】
リードポインタ制御部６４は、受信制御部２０から再送トリガ信号ＲＴを受信すると、リロードポインタ１９の記憶しているアドレスが、リードポインタ１７にセットされるようにリロードポインタ１９を制御する。
【００５９】
このように、通信データ制御装置６１では、ＦＩＦＯメモリ６２から読み出された送信データに付加されているリロード情報に応じて、ＦＩＦＯメモリ６２から出力された送信データの読み出しアドレスをリロードポインタにセットするようにした。これによって、送信データのブロックの送信が完了していないときに、次の送信データのブロックがＦＩＦＯメモリ６２に書き込まれても、リロードポインタは上書きされることがなく、適正に送信データを再送することができる。
【００６０】
また、ＣＰＵ３１を介することなく、リロードポインタ１９のアドレスをセットするので、ＣＰＵ３１の負荷を低減することができる。
次に、本発明の第３の実施の形態を図面を参照して詳細に説明する。
【００６１】
図５は、第３の実施の形態に係る通信データ制御装置の回路図である。図５において図２，３と同じものには同じ符号を付し、その説明を省略する。図５の通信データ制御装置７１は、図２の機能と図３の機能を両方持ち合わせている。
【００６２】
リードポインタ制御部７２は、ライトポインタ制御部１６からポインタロスト信号ＰＬを受けている場合において、受信制御部２０から再送トリガ信号ＲＴを受信すると、ライトポインタ制御部１６にリロード信号ＲＬを出力する。また、リードポインタ制御部７２は、バッファ６３からリロードポイント信号ＲＰが出力されると、リロードポインタ１９がリードポインタ１７の示しているアドレスを記憶するように制御する。
【００６３】
図５の通信データ制御装置７１の動作は、図２の通信データ制御装置１１と図３の通信データ制御装置の動作を組み合わせたものである。すなわち、送信データに付加されているリロード情報は、バッファ６３によって分離され、リロードポイント信号ＲＰとしてリードポインタ制御部７２に出力される。リードポインタ制御部７２は、リロードポイント信号ＲＰがブロックの先頭の送信データであることを示している場合、リードポインタ１７が示しているアドレスを記憶するようにリロードポインタ１９を制御する。リードポインタ制御部７２は、送信データのブロックの大きさがＦＩＦＯメモリ６２の容量以下の場合に、再送トリガ信号ＲＴを受信すると、リロードポインタ１９のアドレスをリードポインタ１７にセットする。
【００６４】
一方、送信データのブロックの大きさがＦＩＦＯメモリ６２の容量を超え、上書きされる場合は、適正な送信データを再送することができない。この場合、リードポインタ制御部７２は、再送トリガ信号ＲＴを受信すると、ライトポインタ制御部１６にリロード信号ＲＬを出力し、ライトポインタ制御部１６は、ＤＭＡＣ３３を起動する。ＤＭＡＣ３３は、ＣＰＵ３１によって書き込まれたブロックの先頭アドレスおよび転送数に従って、メモリ３２に記憶されている送信データを通信データ制御装置１１に書き込む。なお、ＤＭＡＣ３３によって転送される送信データには、リロード情報は付加されない。
【００６５】
このように、通信データ制御装置７１では、ＦＩＦＯメモリ６２から読み出された送信データに付加されているリロード情報に応じて、ＦＩＦＯメモリ６２から出力された送信データの読み出しアドレスをリロードポインタにセットするようにした。これによって、送信データのブロックの送信が完了していないときに、他の送信データのブロックがＦＩＦＯメモリ６２に書き込まれても、リロードポインタは上書きされることがなく、適正に送信データを再送することができる。
【００６６】
また、送信データのブロックが、ＦＩＦＯメモリ６２の容量を超えて書き込まれた場合に再送トリガ信号ＲＴがあると、ＤＭＡＣ３３を起動し、再送すべきブロックをメモリ３２からＦＩＦＯメモリ６２に転送するようにした。これによって、送信データのブロックがＦＩＦＯメモリ６２の容量より大きいため、ＦＩＦＯメモリ６２上の送信データが上書きされても、ＤＭＡＣ３３によって、ＦＩＦＯメモリ６２に記憶されているブロックが転送されるので、適正に送信データを再送することができる。
【００６７】
また、ＣＰＵ３１を介することなく、リロードポインタ１９のアドレスをセットし、メモリ３２の送信データのブロックを通信データ制御装置７１に転送するので、ＣＰＵ３１の負荷を低減することができる。
【図面の簡単な説明】
【００６８】
【図１】通信データ制御装置の概要を示した図である。
【図２】第１の実施の形態に係る通信データ制御装置の回路図である。
【図３】第２の実施の形態に係る通信データ制御装置の回路図である。
【図４】ＦＩＦＯメモリに記憶される送信データのデータフォーマット例を示した図である。
【図５】第３の実施の形態に係る通信データ制御装置の回路図である。
【図６】従来の通信データ制御装置の例を示した回路図である。
【図７】送信データのブロックがＦＩＦＯメモリの容量を超える場合のＦＩＦＯメモリの状況を説明する図である。
【図８】送信データのブロックが複数ＦＩＦＯメモリに書き込まれる場合のリロードポインタを説明する図である。
【符号の説明】
【００６９】
１  通信データ制御装置
１ａ  ＦＩＦＯメモリ
１ｂ  ＤＭＡＣ起動部
２  中央演算処理装置
３  メモリ
４  ＤＭＡＣ
【図１】
2006270469.tif 000003
【図２】
2006270469.tif 000004
【図３】
2006270469.tif 000005
【図４】
2006270469.tif 000006
【図５】
2006270469.tif 000007
【図６】
2006270469.tif 000008
【図７】
2006270469.tif 000009
【図８】
2006270469.tif 000010