(57)【要約】【課題】  システム全体の実効帯域の低下を防止し、回路規模の増大を防止する通信システムを提供する。【解決手段】  通信システムは、或る通信機器から通信路を介して別の通信機器にデータを送信する。データには、データコードＤａｔａと、送信すべきデータに含み得るコードとは異なるコードであるダミーコードＤｕｍｍｙとが混在している。データにおけるダミーコードの含有率は、通信路の実効帯域が、各通信機器の内部バスの実効帯域のうちの遅い方とほぼ同じまたはそれ以下となるように決定される。【選択図】  図１
2005295118.tif 000002
【特許請求の範囲】
【請求項１】
第１の通信装置から通信路を介して第２の通信装置にデータの送信を行う通信システムにおいて、
上記第１の通信装置は、
送信すべきデータに含み得るコードとは異なるコードであるダミーコードが上記データに含有する含有率を決定するダミーコード含有率決定手段と、
該ダミーコード含有率決定手段が決定した含有率に基づいて、上記送信すべきデータに上記ダミーコードを混在させるダミーコード混在手段とを備えており、
上記第２の通信装置は、
上記第１の通信装置から受信したデータの中から、上記ダミーコードを分離するダミーコード分離手段を備えており、
上記第１の通信装置のダミーコード含有率決定手段は、上記通信路の実効帯域が、上記第１の通信装置側の実効帯域と、上記第２の通信装置側の実効帯域とのうち遅い方とほぼ同じまたはそれ以下となるように、ダミーコードの含有率を決定することを特徴とする通信システム。
【請求項２】
上記第１の通信装置と上記第２の通信装置との接続を確立するときに、上記第２の通信装置から上記第１の通信装置に、上記第２の通信装置側の実効帯域を送信することを特徴とする請求項１に記載の通信システム。
【請求項３】
上記第２の通信装置は、上記第１の通信装置からのデータを正常に受信した場合にＡｃｋ信号を、上記データを正常に受信できなかった場合にＮａｋ信号をそれぞれ応答信号として上記第１の通信装置に送信しており、
上記第１の通信装置は、上記第２の通信装置から上記Ｎａｋ信号を受信するとき、および／または、上記応答信号を所定期間に受け取らなかったとき、上記ダミーコード含有率決定手段が上記ダミーコードの含有率を増加することを特徴とする請求項１に記載の通信システム。
【請求項４】
上記第１の通信装置は、上記第２の通信装置から上記Ａｃｋ信号を受信するとき、上記ダミーコード含有率決定手段が上記ダミーコードの含有率を減少することを特徴とする請求項３に記載の通信システム。
【請求項５】
上記第２の通信装置は、上記通信路の実効帯域が高いために上記データを正常に受信できなかった場合にＮａｋ信号を応答信号として上記第１の通信装置に送信し、エラーが発生したために上記データを正常に受信できなかった場合に応答信号を送信しないようにしており、
上記第１の通信装置は、上記第２の通信装置から上記Ｎａｋ信号を受信するとき、上記ダミーコード含有率決定手段が上記ダミーコードの含有率を増加し、上記応答信号を所定期間に受け取らなかったとき、上記ダミーコード含有率決定手段が上記ダミーコードの含有率を維持することを特徴とする請求項３に記載の通信システム。
【請求項６】
上記第２の通信装置は、エラーが発生したために上記データを正常に受信できなかった場合にＮａｋ信号を応答信号として上記第１の通信装置に送信し、上記通信路の実効帯域が高いために上記データを正常に受信できなかった場合に応答信号を送信しないようにしており、
上記第１の通信装置は、上記第２の通信装置から上記Ｎａｋ信号を受信するとき、上記ダミーコード含有率決定手段が上記ダミーコードの含有率を維持し、上記応答信号を所定期間に受け取らなかったとき、上記ダミーコード含有率決定手段が上記ダミーコードの含有率を増加することを特徴とする請求項３に記載の通信システム。
【請求項７】
上記第２の通信装置は、上記第１の通信装置からデータを受信すると、上記ダミーコード分離手段がデータからダミーコードを分離することにより、ダミーコードの含有率を算出し、算出したダミーコードの含有率に対応する通信路の実効帯域と、上記第２の通信装置側の実効帯域とを比較して、比較結果を上記第１の通信装置に応答信号として送信しており、
上記第１の通信装置は、上記第２の通信装置からの応答信号として、上記通信路の実効帯域が上記第２の通信装置側の実効帯域よりも高い比較結果を受信すると、上記ダミーコード含有率決定手段は、上記ダミーコードの含有率を増加することを特徴とする請求項１に記載の通信システム。
【請求項８】
上記第１の通信装置は、上記第２の通信装置からの応答信号として、上記通信路の実効帯域が上記第２の通信装置側の実効帯域よりも低い比較結果を受信すると、上記ダミーコード含有率決定手段は、上記ダミーコードの含有率を減少することを特徴とする請求項７に記載の通信システム。
【請求項９】
上記第２の通信装置は、上記通信路の実効帯域が上記第２の通信装置側の実効帯域よりも低い比較結果であった場合に、上記第１の通信装置のダミーコード含有率決定手段が減少する上記ダミーコード含有率を予測し、予測したダミーコードの含有率に対応する通信路の実効帯域が上記第２の通信装置側の実効帯域よりも高くなるとき、上記比較結果を上記第１の通信装置に送信しないことを特徴とする請求項８に記載の通信システム。
【請求項１０】
上記第１の通信装置は、上記第２の通信装置からの応答信号として、上記通信路の実効帯域が上記第２の通信装置側の実効帯域と同程度である比較結果を受信すると、上記ダミーコード含有率決定手段は、上記ダミーコードの含有率を維持することを特徴とする請求項７に記載の通信システム。
【請求項１１】
上記第１の通信装置のダミーコード含有率決定手段が上記ダミーコードの含有率を増加する量は、上記ダミーコードの含有率を減少する量よりも多いことを特徴とする請求項４または８に記載の通信システム。
【請求項１２】
上記第１の通信装置のダミーコード含有率決定手段は、上記ダミーコードの含有率を増加するときには、増加する前のダミーコードの含有率を下限値とすることを特徴とする請求項４または８に記載の通信システム。
【請求項１３】
上記第１の通信装置のダミーコード含有率決定手段は、上記ダミーコードの含有率を２回以上連続して減少した場合には、その直後に上記ダミーコードの含有率を増加しようとする場合でも増加せず、その直後に上記ダミーコードの含有率を再び増加しようとする場合に増加することを特徴とする請求項４または８に記載の通信システム。
【請求項１４】
上記第１の通信装置のダミーコード含有率決定手段が、所定の条件に達してダミーコード含有率を固定した場合、
上記第１の通信装置は、上記第２の通信装置にデータを連続して送信し、
上記第２の通信装置は、上記第１の通信装置から連続して受信したデータに関する応答信号を上記第１の通信装置に送信することを特徴とする請求項１に記載の通信システム。
【請求項１５】
上記第２の通信装置から上記通信路を介して上記第１の通信装置にもデータの送信を行っており、
上記第２の通信装置は、上記ダミーコード含有率決定手段と上記ダミーコード混在手段とをさらに備えており、
上記第１の通信装置は、上記第２の通信装置から受信したデータの中から、上記ダミーコードを分離するダミーコード分離手段をさらに備えており、
上記第１および第２の通信装置におけるダミーコード含有率決定手段は、それぞれ、相手先の通信装置から受信したデータにおけるダミーコードの含有率から、上記相手先の通信装置側の実効帯域を取得することを特徴とする請求項１に記載の通信システム。
【請求項１６】
請求項１ないし１５の何れか１項に記載の通信システムにおいて第１の通信装置として用いられることを特徴とする通信装置。
【請求項１７】
請求項１ないし１５の何れか１項に記載の通信システムにおいて第２の通信装置として用いられることを特徴とする通信装置。
【請求項１８】
第１の通信装置から通信路を介して第２の通信装置にデータの送信を行う通信システムにおける通信方法であって、
上記第１の通信装置にて、送信すべきデータに含み得るコードとは異なるコードであるダミーコードが上記データに含有する含有率を決定し、決定した含有率に基づいて、上記送信すべきデータに上記ダミーコードを混在させて、上記第２の通信装置に送信し、
上記第２の通信装置は、上記第１の通信装置から受信したデータの中から、上記ダミーコードを分離しており、
上記ダミーコードの含有率は、上記通信路の実効帯域が、上記第１の通信装置側の実効帯域と、上記第２の通信装置側の実効帯域とのうち遅い方とほぼ同じまたはそれ以下となるように決定されることを特徴とする通信システムの通信方法。
【請求項１９】
請求項１ないし１５の何れか１項に記載の通信システムにおける第１の通信装置の各手段をコンピュータに実行させることを特徴とする通信プログラム。
【請求項２０】
請求項１ないし１５の何れか１項に記載の通信システムにおける第２の通信装置の各手段をコンピュータに実行させることを特徴とする通信プログラム。
【請求項２１】
請求項１９に記載の通信プログラム、および／または請求項２０に記載の通信プログラムを記録したことを特徴とするコンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、或る通信装置から通信路を介して別の通信装置にデータの送信を行う通信システム、通信装置、通信方法、通信プログラム、および該プログラムを記録した記録媒体に関するものである。
【背景技術】
【０００２】
従来から、情報技術の発達に伴って、機器内のデバイス同士の間や機器同士の間で、高速で大容量の通信を簡便に行うための開発が進んでいる。通信速度は、通信仕様の策定や機器のバージョンアップ時のコスト対効果などの理由により、徐々に高速化するのではなく、一度に数倍から数十倍高速化することが一般的である。このため、通信システム内では、種々の処理能力および通信速度を有する機器が混在することになる。
【０００３】
図２は、或る通信機器１０１と別の通信機器１０２とが通信路１６を介して通信可能に接続された通信システム１００においてデータ通信を行う例を示している。図示のように、ＣＰＵ（Central Processing Unit）１３は、内部バス１４を介して通信コントローラ１０５にデータを送信する。通信コントローラ１０５は、通信路１６を介して通信コントローラ１０７にデータを送信する。通信コントローラ１０７は、内部バス１８を通じてＣＰＵ１９にデータを送信する。これにより、通信機器１０１から通信機器１０２にデータが渡される。なお、通信機器１０２から通信機器１０１にデータを渡す場合には、上記の経路とは逆順にデータが通ることになる。
【０００４】
なお、図２に示されるように、ＣＰＵ１３・１９は、それぞれ、内部バス１４・１８における通信を制御するバスコントローラであってもよい。以下では、ＣＰＵ／バスコントローラをＣＰＵで代表させている。
【０００５】
図１３は、図２に示されるような通信形態において、通信機器１０１・１０２の内部バス１４・１８の実効帯域が、通信路１６のデータ転送速度に比べて著しく速い場合のデータの流れを示している。ここで、実効帯域とは、送り先に伝達すべき内容のみを含んだデータ、すなわちヘッダ・フッタや、ＣＲＣデータなどを除外したデータを単位時間に転送可能な最大量をいう。
【０００６】
図示のように、通信機器１０１から通信機器１０２にデータＤ１０１〜Ｄ１０５を渡す場合には、ＣＰＵ１３は、通信コントローラ１０５の通信状況をリクエスト信号などで確認しながら、内部バス１４にデータＤ１０１〜Ｄ１０５を順次送り出す。通信コントローラ１０５は、内部バス１４からデータＤ１０１〜Ｄ１０５を順次受け取ると、直ちに、通信路１６のデータ転送速度に合わせて、通信路１６にデータＤ１０１〜Ｄ１０５を送り出す。
【０００７】
通信コントローラ１０７は、通信路１６からデータＤ１０１〜Ｄ１０５を順次受け取ると、ＣＰＵ１９にリクエスト信号を送信し、その後内部バス１８にデータＤ１０１〜Ｄ１０５を順次送り出す。そして、ＣＰＵ１９は、通信コントローラ１０７からのリクエスト信号に基づいて、内部バス１８からデータＤ１０１〜Ｄ１０５を順次受け取り、その後通信が完了する。なお、通信機器１０２から通信機器１０１にデータＤ１０６・Ｄ１０７を渡す場合も、同様である。
【０００８】
図１４は、図２に示されるような通信形態において、通信機器１０１・１０２の内部バス１４・１８の実効帯域が、通信路１６のデータ転送速度に比べて遅い場合のデータの流れを示している。この場合、通信路上では、データ転送の効率性の観点から、複数のデータを１つのパケットにまとめて該パケットを転送することが多い。
【０００９】
このため、通信コントローラ１０５は、１つのパケットで転送すべき数のデータをＣＰＵ１３から予め受け取っておき、その後パケットを通信路１６に送り出すことになる。或いは、内部バス１４の実効帯域が判明している場合には、通信コントローラ１０５は、１つのパケットで転送すべき数のデータをＣＰＵ１３から受け取る前のタイミングであって、１つのパケットの転送が終了するまでに、該パケット内の最後のデータをＣＰＵ１３から受け取って通信路１６に送り出すことができるタイミングから、パケットを通信路１６に送り出すことになる。
【００１０】
前者の場合について、図１４に基づいて説明する。図示のように、通信機器１０１から通信機器１０２にデータＤ１１１〜Ｄ１１５を渡す場合には、ＣＰＵ１３は、通信コントローラ１０５の通信状況をリクエスト信号などで確認しながら、内部バス１４にデータＤ１１１〜Ｄ１１５を順次送り出す。通信コントローラ１０５は、内部バス１４からデータＤ１１１〜Ｄ１１５を順次受け取ると、通信コントローラ１０５内のＦＩＦＯ（First In First Out）バッファにて全てのデータＤ１１１〜Ｄ１１５を蓄える。その後、データＤ１１１〜Ｄ１１５を１つのパケットＰ１１１として通信路１６にまとめて送り出す。
【００１１】
通信コントローラ１０７は、通信路１６からパケットＰ１１１を受け取ると、通信コントローラ１０７内のＦＩＦＯバッファに蓄えるとともに、ＣＰＵ１９にリクエスト信号を送信し、その後内部バス１８にデータＤ１１１〜Ｄ１１５を順次送り出す。そして、ＣＰＵ１９は、通信コントローラ１０７からのリクエスト信号に基づいて、内部バス１８からデータＤ１１１〜Ｄ１１５を順次受け取り、その後通信が完了する。なお、通信機器１０２から通信機器１０１にデータＤ１１６・Ｄ１１７を渡す場合も、同様である。
【非特許文献１】The Institute of Electrical and Electronics Engineers, Inc., 'P1394b Draft Standard for a High Performance Serial Bus (High Speed Supplement)', [online], P1394b Draft 1.3.3, Nov 16, 2001. [検索日  ２００２．１１．２８], インターネット<URL:http://grouper.ieee.org/groups/1394/b/drafts/p1394b1-33.pdf>
【発明の開示】
【発明が解決しようとする課題】
【００１２】
上記のように、通信路１６のデータ転送速度が内部バス１４・１８の実効帯域を上回ると、通信コントローラ１０５・１０７内のＦＩＦＯバッファにデータを一時蓄える処理を行う必要があり、この処理にかかる時間だけ通信システム１００全体の処理が遅延することになる。
【００１３】
図１５は、内部バス１４・１８の実効帯域と通信システム１００全体の実効帯域との関係をグラフで示している。図中、実線は通信路１６のデータ転送速度が遅い場合を示しており、破線は通信路１６のデータ転送速度が速い場合を示している。ここで、遅い方のデータ転送速度をＸとし、早い方のデータ転送速度を４Ｘとしている。
【００１４】
図１５を参照すると、内部バス１４・１８の実効帯域が２Ｘ以下である場合、データ転送速度の速い通信路１６を使用するよりも、データ転送速度の遅い通信路１６を使用する方が、通信システム１００全体の実効帯域が速くなることが理解できる。すなわち、通信路１６のデータ転送速度を速くすると、かえって通信システム１００全体の実効帯域が遅くなることがある。
【００１５】
また、内部バス１４・１８の実効帯域が２Ｘ以上であっても、４Ｘ付近に達しない場合、データ転送速度の速い通信路１６を使用しても、システム全体の実効帯域はバスの実効帯域の半分程度となることが理解できる。これは、通信コントローラ１０５・１０７内のＦＩＦＯバッファにおけるデータ蓄積処理が発生するためと考えられる。
【００１６】
したがって、通信路１６のデータ転送速度と内部バス１４・１８の実効帯域とを同程度に揃えると、システム全体の実効帯域が最大かつ効率的となるので望ましいことが理解できる。
【００１７】
このため、通信路１６におけるデータ転送速度よりも、実際のデータの転送速度、すなわち実効帯域を遅くする方法が考えられ、非特許文献１に記載されている。非特許文献１の方法では、パケット内のデータ部分に、データや機器の状態情報と異なるコードを含有させることにより、通信路１６における実効帯域を遅くしている。
【００１８】
図１６は、非特許文献１に記載の方法に従う通信システムを示している。この通信システム１００は、３つのノードＡ〜Ｃを備えている。ノードＡおよびノードＢはＳ８００βで接続可能なノードであり、ノードＣはＳ２００で接続可能なノードである。このため、ノードＡとノードＢとの間はＳ８００βで接続され、ノードＢとノードＣとの間は、Ｓ２００で接続されることになる。
【００１９】
ここで、「Ｓ８００」および「Ｓ２００」は、通信ポートの動作速度を示しており、データ転送は、該動作速度以下の速度で行われることになる。また、「β」はβモードを示しており、非特許文献１に記載のようにＩＥＥＥ  ｓｔｄ  １３９４ｂ−２００２で新たにＩＥＥＥ１３９４に追加された通信仕様を示している。
【００２０】
βモードでは、状態信号やデータが８Ｂ／１０Ｂ変換して送信され、２対の信号線をそれぞれ送信ラインと受信ラインとして常に送受信が行われる接続状態となり、かつ、接続処理が終了した時点から接続が切断されるまで同一速度で通信が行われる。一方、β接続以外の接続では、２対の信号線を送受両方に使用するＤＳ（Data Strobe）方式と呼ばれる通信が行われ、データ通信時にデータの速度にあわせた周波数でデータの送受信が行われる。
【００２１】
図１６に示される通信システム１１０において、ノードＣからノードＡにデータを転送する場合、ノードＢからノードＡへは８００Ｍｂｐｓでデータを転送できるが、ノードＣからノードＢへは２００Ｍｂｐｓでしかデータを転送できない。このため、ノードＣからノードＡへは、２００Ｍｂｐｓの動作速度でデータを送信し、ノードＢからノードＡへは、８００Ｍｂｐｓの動作速度でデータを最大２００Ｍｐｂｓで送信することになる。このとき、ＩＥＥＥ  ｓｔｄ  １３９４ｂ−２００２では、パディングコード（padding code）と呼ばれるコードをデータとデータとの間に所定の数だけ挿入する。例えば、上述の８００Ｍｂｐｓの動作速度でデータを２００Ｍｐｂｓで送信する場合には、データコードを１つ送りその後にパディングコードを３つ送ることになる。
【００２２】
ところで、ＩＥＥＥ  ｓｔｄ  １３９４ｂ−２００２では、上記パディングコードは、動作速度の１／２ｎ（ｎは自然数である。）でデータを送信するように挿入される。例えば、動作速度が８００Ｍｂｐｓの場合には、４００Ｍｂｐｓ、２００Ｍｂｐｓ、または１００Ｍｂｐｓでデータを送信するようにパディングコードが挿入される。
【００２３】
しかしながら、通信システム内には、種々の通信速度が混在し、例えば内部バスの実効帯域は、通信路のデータ転送速度の１／２ｎとはならないことが多い。この場合、図１５と上記の説明のように、システム全体の実効帯域はバスの実効帯域の半分程度になってしまう。
【００２４】
また、図１６に示される通信システム１１０において、ノードＡからノードＣにデータを転送する場合、ノードＡからノードＢへは８００Ｍｂｐｓでデータを転送できるが、ノードＢからノードＣへは２００Ｍｂｐｓでしかデータを転送できない。このため、上述のように、システム全体の実効帯域が低下することになる。
【００２５】
また、高速接続が可能な通信コントローラは、送受信するパケットデータを一旦蓄えるＦＩＦＯバッファを有する必要があり、このＦＩＦＯバッファは、最大パケット長のパケットデータを蓄える能力を有する必要がある。このため、通信コントローラの回路規模が増大し、コストが上昇する結果となる。
【００２６】
また、通信システムの実効帯域が、内部バスの実効帯域の半分程度になることを防止するため、通信コントローラが、最大パケット長の２倍のパケットデータを蓄えるＦＩＦＯバッファを有し、データを通信路に送り出している途中で、次のデータを内部バスから受け取る処理を行うことにより、システム全体の実効帯域を通信路の実効帯域に近づけることが可能である。
【００２７】
しかしながら、この場合には、通信コントローラの回路規模がさらに増大することになる。また、この処理では、例えば記録媒体へのシーケンシャルアクセスのように、大きな連続したデータの通信を行う場合には効果的であるが、例えば記録媒体のランダムアクセスのように、小さなバラバラのデータの通信を行う場合には効果的ではなく、その結果、通信システム全体の実効帯域が低下することになる。
【００２８】
ここで、通信コントローラにおいてＦＩＦＯバッファの記憶容量が増大すると、回路規模が増大し、コストが上昇することについて説明する。例えば、或る通信コントローラにおいて、変調回路やバスコントローラ、その他ＩＣをコントロールするデジタル回路のゲート数が４０ｋゲート程度であったとする。この通信コントローラが、例えば４０９６バイトのデータを送受信するためのＦＩＦＯバッファを有しているとする。ＦＩＦＯバッファが１ビット当り約５ゲート有するとすると、ＦＩＦＯバッファに必要なゲート数は、４０９６×８×５≒１６４ｋゲートとなる。すなわち、アナログ回路部分を除いたデジタル回路部分の約８割がＦＩＦＯバッファの回路部分となるようなことが生じる。
【００２９】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、システム全体の実効帯域の低下を防止し、回路規模の増大を防止する通信システムなどを提供することにある。
【課題を解決するための手段】
【００３０】
上記課題を解決するため、本発明に係る通信システムは、第１の通信装置から通信路を介して第２の通信装置にデータの送信を行う通信システムにおいて、上記第１の通信装置は、送信すべきデータに含み得るコードとは異なるコードであるダミーコードが上記データに含有する含有率を決定するダミーコード含有率決定手段と、該ダミーコード含有率決定手段が決定した含有率に基づいて、上記送信すべきデータに上記ダミーコードを混在させるダミーコード混在手段とを備えており、上記第２の通信装置は、上記第１の通信装置から受信したデータの中から、上記ダミーコードを分離するダミーコード分離手段を備えており、上記第１の通信装置のダミーコード含有率決定手段は、上記通信路の実効帯域が、上記第１の通信装置側の実効帯域と、上記第２の通信装置側の実効帯域とのうち遅い方とほぼ同じまたはそれ以下となるように、ダミーコードの含有率を決定することを特徴としている。
【００３１】
ここで、送信すべきデータに含み得るコードとしては、データコードや、装置の状態を表す制御コードが挙げられる。また、通信装置側の実効帯域としては、自通信装置の内部バスの実効帯域や、他の通信装置との通信における実効帯域が挙げられる。
【００３２】
上記の構成によると、ダミーコード含有率決定手段は、通信路の実効帯域が、第１の通信装置側の実効帯域と第２の通信装置側の実効帯域とのうち遅い方とほぼ同じまたはそれ以下となるように、ダミーコードの含有率を決定する。これにより、通信路の実効帯域は、第１の通信装置側の実効帯域および第２の通信装置側の実効帯域と同程度またはそれ以下となる。
【００３３】
したがって、システム全体の実効帯域は、通信路の実効帯域とほぼ同じとなり、実効帯域の低下を防止することができる。また、通信装置においてデータを蓄えるＦＩＦＯバッファの容量を大きくする必要が無くなるので、回路規模の増大および製造コストの上昇を防止することができる。
【００３４】
また、第２の通信装置は、ダミーコード分離手段によりデータからダミーコードを分離できるので、ダミーコードが混在したデータから元のデータに戻すことができ、データを正常に受信することができる。なお、分離したダミーコードをそのまま廃棄しても良いし、該ダミーコードからダミーコードの含有率を算出しても良い。
【００３５】
なお、上記通信路は、シリアルでもよいし、パラレルでもよい。また、上記通信路は、装置内部でデータの送受信を行うための内部バスでもよいし、外部の装置とデータの送受信を行うための通信路でもよい。
【００３６】
さらに、本発明に係る通信システムは、上記の構成において、上記第１の通信装置と上記第２の通信装置との接続を確立するときに、上記第２の通信装置から上記第１の通信装置に、上記第２の通信装置側の実効帯域を送信することを特徴としている。
【００３７】
上記の構成によると、第１の通信装置は、接続を確立するときに、第２の通信装置から第２の通信装置側の実効帯域を取得する。これにより、ダミーコードの含有率を確実に決定することができる。また、接続の確立後遅滞なく、ダミーコードが混在したデータを送信することができる。
【００３８】
さらに、本発明に係る通信システムは、上記の構成において、上記第２の通信装置は、上記第１の通信装置からのデータを正常に受信した場合にＡｃｋ信号を、上記データを正常に受信できなかった場合にＮａｋ信号をそれぞれ応答信号として上記第１の通信装置に送信しており、上記第１の通信装置は、上記第２の通信装置から上記Ｎａｋ信号を受信するとき、および／または、上記応答信号を所定期間に受け取らなかったとき、上記ダミーコード含有率決定手段が上記ダミーコードの含有率を増加することを特徴としている。
【００３９】
データを正常に受信できない原因としては、エラーが発生した場合と、通信路の実効帯域が第２の通信装置側の実効帯域よりも高い場合とが考えられる。したがって、上記の構成によると、第１の通信装置は、Ｎａｋ信号を受信した場合には、通信路の実効帯域が第２の通信装置側の実効帯域よりも高いと考えて、ダミーコード含有率決定手段がダミーコードの含有率を増加することにより、通信路の実効帯域を下げることができる。このように、第２の通信装置側の実効帯域を直接取得しなくても、データ送信に対する応答信号から第２の通信装置側の実効帯域を把握することができる。したがって、ダミーコード含有率決定手段がダミーコードの含有率を確実に決定することができる。
【００４０】
なお、上記第１の通信装置は、上記第２の通信装置から上記Ａｃｋ信号を受信するとき、通信路の実効帯域が第２の通信装置側の実効帯域よりも低いと考えられるので、上記ダミーコード含有率決定手段が上記ダミーコードの含有率を減少することが望ましい。
【００４１】
また、上記第２の通信装置は、上記通信路の実効帯域が高いために上記データを正常に受信できなかった場合にＮａｋ信号を応答信号として上記第１の通信装置に送信し、エラーが発生したために上記データを正常に受信できなかった場合に応答信号を送信しないようにしており、上記第１の通信装置は、上記第２の通信装置から上記Ｎａｋ信号を受信するとき、上記ダミーコード含有率決定手段が上記ダミーコードの含有率を増加し、上記応答信号を所定期間に受け取らなかったとき、上記ダミーコード含有率決定手段が上記ダミーコードの含有率を維持する構成としても良い。
【００４２】
また、上記第２の通信装置は、エラーが発生したために上記データを正常に受信できなかった場合にＮａｋ信号を応答信号として上記第１の通信装置に送信し、上記通信路の実効帯域が高いために上記データを正常に受信できなかった場合に応答信号を送信しないようにしており、上記第１の通信装置は、上記第２の通信装置から上記Ｎａｋ信号を受信するとき、上記ダミーコード含有率決定手段が上記ダミーコードの含有率を維持し、上記応答信号を所定期間に受け取らなかったとき、上記ダミーコード含有率決定手段が上記ダミーコードの含有率を増加する構成としても良い。
【００４３】
さらに、本発明に係る通信システムは、上記の構成において、上記第２の通信装置は、上記第１の通信装置からデータを受信すると、上記ダミーコード分離手段がデータからダミーコードを分離することにより、ダミーコードの含有率を算出し、算出したダミーコードの含有率に対応する通信路の実効帯域と、上記第２の通信装置側の実効帯域とを比較して、比較結果を上記第１の通信装置に応答信号として送信しており、上記第１の通信装置は、上記第２の通信装置からの応答信号として、上記通信路の実効帯域が上記第２の通信装置側の実効帯域よりも高い比較結果を受信すると、上記ダミーコード含有率決定手段は、上記ダミーコードの含有率を増加することを特徴としている。
【００４４】
上記の構成によると、第１の通信装置は、通信路の実効帯域と第２の通信装置側の実効帯域との比較結果を取得することにより、第２の通信装置側の実効帯域を把握することができる。したがって、ダミーコード含有率決定手段がダミーコードの含有率を確実に決定することができる。
【００４５】
なお、比較結果は、Ａｃｋ信号、Ｎａｋ信号などのような上記応答信号に付随して送信することが望ましい。例えば、Ａｃｋ信号およびＮａｋ信号を、比較結果に対応させて複数種類用意しておき、比較結果に対応した種類のＡｃｋ信号またはＮａｋ信号を送信することが考えられる。
【００４６】
また、上記第１の通信装置は、上記第２の通信装置からの応答信号として、上記通信路の実効帯域が上記第２の通信装置側の実効帯域よりも低い比較結果を受信すると、上記ダミーコード含有率決定手段は、上記ダミーコードの含有率を減少し、これにより通信路の実効帯域を高くすることが望ましい。
【００４７】
また、上記第２の通信装置は、上記通信路の実効帯域が上記第２の通信装置側の実効帯域よりも低い比較結果であった場合に、上記第１の通信装置のダミーコード含有率決定手段が減少する上記ダミーコード含有率を予測し、予測したダミーコードの含有率に対応する通信路の実効帯域が上記第２の通信装置側の実効帯域よりも高くなるとき、上記比較結果を上記第１の通信装置に送信しないようにすることが望ましい。
【００４８】
また、上記第１の通信装置は、上記第２の通信装置からの応答信号として、上記通信路の実効帯域が上記第２の通信装置側の実効帯域と同程度である比較結果を受信すると、上記ダミーコード含有率決定手段は、上記ダミーコードの含有率を維持することが望ましい。
【００４９】
また、上記第１の通信装置のダミーコード含有率決定手段が上記ダミーコードの含有率を増加する量は、上記ダミーコードの含有率を減少する量よりも多いことが望ましい。この場合、通信路の実効帯域が第２の通信装置側の実効帯域よりも高い状態から素早くに脱することができる。
【００５０】
なお、ダミーコードの含有率を減少すると、以前にダミーコードの含有率を増加したときの元の含有率と同程度かそれ以下となることがある。この場合、ダミーコードの含有率を再び増加する可能性が高く、これを繰り返してダミーコードの含有率が振動し続けて収束しない場合があり得る。
【００５１】
そこで、上記第１の通信装置のダミーコード含有率決定手段は、上記ダミーコードの含有率を増加するときには、増加する前のダミーコードの含有率を下限値とすることが望ましい。
【００５２】
この場合、ダミーコードの含有率を減少すると上記下限値を下回るときには、ダミーコード含有率決定手段は、ダミーコードの含有率を下限値まで減少するか、或いは含有率を減少しないことになる。したがって、ダミーコードの含有率の下限値が設定されるので、ダミーコードの含有率を再び増加する場合が少なくなり、ダミーコードの含有率を収束することができる。なお、ダミーコードの含有率を複数回増加した場合には、最も後で増加したときにおける元のダミーコードの含有率が上記下限値となる。
【００５３】
また、上記第１の通信装置のダミーコード含有率決定手段は、上記ダミーコードの含有率を２回以上連続して減少した場合には、その直後に上記ダミーコードの含有率を増加しようとする場合でも増加せず、その直後に上記ダミーコードの含有率を再び増加しようとする場合に増加することが望ましい。なぜなら、ダミーコードの含有率を２回以上連続して減少した後でダミーコードの含有率を増加することになる要因は、通信路の実効帯域が第２の通信装置側の実効帯域よりも高くなった以外に、エラーが発生したなどの他のことによる可能性が高いと考えられるからである。
【００５４】
また、上記第１の通信装置のダミーコード含有率決定手段が、所定の条件に達してダミーコード含有率を固定した場合、上記第１の通信装置は、上記第２の通信装置にデータを連続して送信し、上記第２の通信装置は、上記第１の通信装置から連続して受信したデータに関する応答信号を上記第１の通信装置に送信することが望ましい。
【００５５】
ここで、ダミーコードの含有率を固定する条件としては、所定期間を経過したときや、含有率が収束して一定となったときが挙げられる。ダミーコードの含有率を固定すると、応答信号に基づいてダミーコードの含有率を変更する必要がないので、複数のデータを一度に送信すればよく、したがってデータの送信効率が上昇する。
【００５６】
さらに、本発明に係る通信システムは、上記の構成において、上記第２の通信装置から上記通信路を介して上記第１の通信装置にもデータの送信を行っており、上記第２の通信装置は、上記ダミーコード含有率決定手段と上記ダミーコード混在手段とをさらに備えており、上記第１の通信装置は、上記第２の通信装置から受信したデータの中から、上記ダミーコードを分離するダミーコード分離手段をさらに備えており、上記第１および第２の通信装置におけるダミーコード含有率決定手段は、それぞれ、相手先の通信装置から受信したデータにおけるダミーコードの含有率から、上記相手先の通信装置側の実効帯域を取得することを特徴としている。
【００５７】
上記の構成によると、相手先の通信装置から受信したデータからダミーコードを分離することにより、ダミーコードの含有率を算出でき、算出したダミーコードの含有率から、相手先の通信装置側の実効帯域を取得することができる。したがって、ダミーコード含有率決定手段がダミーコードの含有率を確実に決定することができる。
【００５８】
なお、上記通信システムにおいて第１または第２の通信装置として用いられる通信装置であれば、上述の効果を得ることができる。
【００５９】
また、本発明に係る通信システムの通信方法は、第１の通信装置から通信路を介して第２の通信装置にデータの送信を行う通信システムにおける通信方法であって、上記第１の通信装置にて、送信すべきデータに含み得るコードとは異なるコードであるダミーコードが上記データに含有する含有率を決定し、決定した含有率に基づいて、上記送信すべきデータに上記ダミーコードを混在させて、上記第２の通信装置に送信し、上記第２の通信装置は、上記第１の通信装置から受信したデータの中から、上記ダミーコードを分離しており、上記ダミーコードの含有率は、上記通信路の実効帯域が、上記第１の通信装置側の実効帯域と、上記第２の通信装置側の実効帯域とのうち遅い方とほぼ同じまたはそれ以下となるように決定されることを特徴としている。
【００６０】
上記の方法によると、通信路の実効帯域が、第１の通信装置側の実効帯域と第２の通信装置側の実効帯域とのうち遅い方とほぼ同じまたはそれ以下となるように、ダミーコードの含有率を決定する。これにより、通信路の実効帯域は、第１の通信装置側の実効帯域および第２の通信装置側の実効帯域と同程度またはそれ以下となる。
【００６１】
したがって、システム全体の実効帯域は、通信路の実効帯域とほぼ同じとなり、実効帯域の低下を防止することができる。また、通信装置においてデータを蓄えるＦＩＦＯバッファの容量を大きくする必要が無くなるので、回路規模の増大および製造コストの上昇を防止することができる。
【００６２】
また、第２の通信装置は、データからダミーコードを分離できるので、ダミーコードが混在したデータから元のデータに戻すことができ、データを正常に受信することができる。なお、分離したダミーコードをそのまま廃棄しても良いし、該ダミーコードからダミーコードの含有率を算出しても良い。
【００６３】
また、上記通信システムにおける第１の通信装置の各手段を、通信プログラムによりコンピュータ上で実行させることができる。同様に、上記通信システムにおける第２の通信装置の各手段を、通信プログラムによりコンピュータ上で実行させることができる。
【００６４】
さらに、前記通信プログラムをコンピュータ読取り可能な記録媒体に記憶させることにより、任意のコンピュータ上で前記通信プログラムを実行させることができる。
【発明の効果】
【００６５】
以上のように、本発明に係る通信システムは、通信路の実効帯域が、第１の通信装置側の実効帯域と第２の通信装置側の実効帯域とのうち遅い方とほぼ同じまたはそれ以下となるように、ダミーコードの含有率を決定するダミーコード含有率決定手段を備えているので、システム全体の実効帯域は、通信路の実効帯域とほぼ同じとなり、実効帯域の低下を防止できるという効果を奏する。また、通信装置においてデータを蓄えるＦＩＦＯバッファの容量を大きくする必要が無くなるので、回路規模の増大および製造コストの上昇を防止できるという効果を奏する。
【発明を実施するための最良の形態】
【００６６】
まず、本発明に係るデータ部分の構造について、図１に基づいて説明し、その後、本発明の一実施形態について図面に基づいて説明する。図１は、本発明に基づき送受信されるパケットの構造を示している。
【００６７】
図１（ａ）は全２重通信を行う場合のバケットの構造を示している。このような全２重通信の例としては、光ファイバを用いたイーサネット（登録商標）（Ethernet（登録商標））仕様である１００Ｂａｓｅ−ＦＸ、１０００Ｂａｓｅ−ＳＸ、１０００Ｂａｓｅ−ＬＸや、ＩＥＥＥ  ｓｔｄ  １３９４ｂ−２００２のβモードなどが挙げられる。全２重通信では、データ成分にクロック成分を冗長するため、送信側機器は、８Ｂ／１０Ｂなどの変調方式を用いて、常に変調したデータを送り続ける。一方、受信側機器は、受け取ったデータからクロック成分を抽出しながらデータを復調することによりデータを再現する。
【００６８】
図１（ａ）において、ＩＤＬＥ部は、データの送受が行われていない待機状態を示している。ＩＤＬＥ部に続くＤＰ部は、パケットの始まりを示しており、通信方式によってＤａｔａ＿Ｐｒｅｆｉｘやスタートビットなどと呼ばれる制御コードである。
【００６９】
ＤＰ部に続くデータ部は、パケットのデータ部分を示している。データ部は、通信方式によって構造が異なるが、送信すべきデータに、データの長さ、送信元アドレス、送信先アドレス、データの種類などの情報や、ＣＲＣ（Cyclic Redundancy Check：エラーチェックコード）、ＥＣＣ（Error Collection code：エラー訂正コード）などの情報を追加したものである。
【００７０】
データ部に続くＤＥ部は、パケットの終了を示しており、通信方式によってＤａｔｅ＿Ｅｎｄやストップビットなどと呼ばれる制御コードである。なお、ＤＥ部は、通信方式によっては省略されることもある。全２重通信では、上述の構造を有するデータや制御コードが、待機状態を含めた通信状態において常に送受信されている。
【００７１】
図１（ｂ）は、半２重通信を行う場合のパケットの構造を示している。このような半２重通信の例としては、ＵＳＢ（Universal Serial Bus）、ＩｒＤＡ（Infrared Data Association）、ＩＥＥＥ  ｓｔｄ  １３９４−１９９５などが挙げられる。なお、図１（ｂ）に示されるＤＰ部、データ部、およびＤＥ部は、同図（ａ）に示されるものと同様であるので、その説明を省略する。
【００７２】
半２重通信でも、データ成分にクロック成分を冗長するため、送信機側機器は、ＮＲＺ（Non-Return to Zero）＆ビットスタフィング（bit-stuffing）や、４ＰＰＭ（Pulse Position Modulation）、ＨＨＨ、ＤＳコーディング、８Ｂ／１０Ｂなどの変調方式を用いてデータを変調する。
【００７３】
なお、半２重通信の場合には、全２重通信の場合と異なり、受信側機器は、パケットのＤＰ部やデータ部を受け取る前にクロック成分の抽出が完了している必要がある。このため、送信側機器は、パケットを送信する直前の所定期間に、プリアンブル（Preamble）と呼ばれる変調後の変化点が多いコードを送信している。受信側機器は、プリアンブルを受け取っている途中でクロック成分を抽出する準備を行い、その後ＤＰ部やデータ部を受け取ることになる。
【００７４】
図１（ｃ）は、本発明に係るデータ部の構造を示している。同示のように、本発明に係るデータ部の構造は、データを示すコード（以下、このコードを単に「データ」と称する。）Ｄａｔａが連続する従来の構造と異なり、データや他の制御コードとは異なる新たな制御コード（以下、「ダミーコード」と称する。）ＤｕｍｍｙとデータＤａｔａとを所定の条件に基づいて混在させた構造となっている。
【００７５】
図１（ｃ）に示されるように、本発明では、ダミーコードの含有率を１−（１／２ｎ）以外の値にも取ることができる。これにより、通信路の実効帯域を、様々な実効帯域に合わせることができるので、通信路の実効帯域が内部バスの実効帯域よりも速いことによるシステム全体の実効帯域の低下を確実に防止することができる。
【００７６】
なお、本発明に係るＤａｔａ部分の構造は、同図（ａ）に示される全２重通信や、同図（ｂ）に示される半２重通信の何れの通信方式にも適用可能である。また、ダミーコードＤｕｍｍｙは、データＤａｔａとのハミングディスタンス（Hamming distance）が２以上であるものが望ましい。ここで、ハミングディスタンスとは、コード同士の間で異なっているビットの数をいう。ハミングディスタンス（Hamming distance）が２以上であれば、パケット通信中にエラーが発生した場合でも、ダミーコードＤｕｍｍｙがデータＤａｔａと誤って判別される可能性が減少する。
【００７７】
また、ダミーコードＤｕｍｍｙは、データＤａｔａどうしの間に規則正しく挿入しても良いし、ランダムに挿入しても良い。また、データＤａｔａの後にダミーコードＤｕｍｍｙをまとめて挿入しても良い。但し、スタートコードＤＰの直後と、エンドコードＤＥの直前とは、ダミーコードとその他の制御コードとの区別を容易にするため、データコードであることが望ましい。この場合でも、スタートコードＤＰおよびエンドコードＤＥの位置が判明している場合には、スタートコードＤＰの直後とエンドコードＤＥの直前とはダミーコードＤｕｍｍｙであっても良い。
【００７８】
〔実施の形態１〕
次に、本発明の一実施形態である通信システムについて、図２〜図９に基づいて説明する。図２は、本実施形態の通信システム１０の概略構成を示している。図示のように、通信システム１０は、或る通信機器１１と別の通信機器１２とが通信路１６を介して通信可能に接続された構成である。通信機器１１・１２は、それぞれ、ＣＰＵ１３・１９と通信コントローラ１５・１７とが内部バス１４・１８を介して通信可能に接続された構成である。そして、通信コントローラ１５・１７同士が、通信路１６を介して通信可能に接続されている。
【００７９】
本実施形態の通信システム１０は、上述した従来の通信システム１００と比べて、通信コントローラの構成が異なり、その他の構成は同じである。なお、上述した構成と同様の機能を有する構成には同一の符号を付して、その説明を省略する。
【００８０】
図３は、通信コントローラ１５・１７の概略構成を示している。図示のように、通信コントローラ１５・１７は、ステートマシン２０、レジスタ２１、ＦＩＦＯバッファ２２、エンコーダ２３、シリアライザ２４、ＣＤＲおよびデシリアライザ２５、並びにデコーダ２６を備える構成である。
【００８１】
ステートマシン２０は、通信コントローラの動作状況を管理するものである。なお、ステートマシン２０の詳細については後述する。レジスタ２１は、内部バス１４・１８とのインターフェースとして機能するものである。ＦＩＦＯバッファ２２は、内部バス１４・１８および通信路１６からのデータを一時蓄えるものである。
【００８２】
エンコーダ２３は、ステートマシン２０からの選択信号ＳＥＬに基づいて、ＦＩＦＯバッファ２２からのデータＤ１２、およびステートマシン２０からの制御コードＣ１０の何れかを選択し、選択したデータＤ１０または制御コードＣ１０を、通信路１６に送信するのに適した形式に変調するものである。
【００８３】
シリアライザ２４は、エンコーダ２３から変調されたデータＥＤ１０を受け取り、受け取ったデータをシリアル化するものである。また、シリアライザ２４は、シリアルデータをパケットＰ１０として通信路１６に送り出すものである。
【００８４】
ＣＤＲおよびデシリアライザ２５は、通信路１６からパケットＰ１１を受け取り、受け取ったパケットＰ１１からクロックとデータとを抽出し、抽出したデータをパラレル化するものである。このパラレル化したデータは、相手機器のエンコーダによって変調されたデータＥＤ１１である。
【００８５】
デコーダ２６は、ＣＤＲおよびデシリアライザ２５からパラレルデータＥＤ１０を受け取り、受け取ったパラレルデータＥＤ１０をデータＤ１３または制御コードＣ１１に復調するものである。また、デコーダ２６は、復調されたデータＤ１３または制御コードＣ１１をステートマシン２０に送り出すものである。
【００８６】
図４は、ステートマシン２０の概略構成を示している。図示のように、ステートマシン２０は、ダミーコード含有率決定部３０、制御コード生成部３１、リードイネーブル生成部３２、選択信号生成部３３、データ取得部３４、制御コード取得部３５、ダミーコード判定部３６、およびライトイネーブル生成部３７を備える構成である。
【００８７】
ダミーコード含有率決定部３０は、所定の条件に基づいて、データにダミーコードを含有する含有率を決定するものである。ダミーコード含有率判定部３０は、決定した含有率に基づいて、制御コード生成部３１、リードイネーブル生成部３２、および選択信号生成部３３に指示する。なお、ダミーコードの含有率を決定する条件については後述する。
【００８８】
制御コード生成部３１は、各種の制御コードＣ１０を生成して、エンコーダ２３に出力するものである。本実施形態では、制御コード生成部３１は、ダミーコード含有率決定部３０からの指示に基づいて、ダミーコードを制御コードＣ１０として生成する。
【００８９】
リードイネーブル生成部３２は、ＦＩＦＯバッファ２２を読出し可能にする信号であるリードイネーブル信号ＲＤ＿ＥＮＢを生成してＦＩＦＯバッファ２２に送り出すものである。本実施形態では、リードイネーブル生成部３２は、ダミーコード含有率決定部３０からの指示に基づいて、リードイネーブル信号ＲＤ＿ＥＮＢを生成してＦＩＦＯバッファ２２に送り出している。
【００９０】
選択信号生成部３３は、上記の選択信号ＳＥＬを生成してエンコーダ２３に送り出すものである。本実施形態では、選択信号生成部３３は、ダミーコード含有率決定部３０からの指示に基づいて、選択信号ＳＥＬを生成してエンコーダ２３に送り出している。
【００９１】
データ取得部３４は、デコーダ２６からデータＤ１３を受け取ると、ライトイネーブル生成部３７に指示して、ＦＩＦＯバッファ２２を書き込み可能にし、受け取ったデータＤ１３と同一のデータＤ１４をＦＩＦＯバッファ２２に書き込むものである。
【００９２】
制御コード取得部３５は、デコーダ２６から制御コードＣ１１を受け取ると、受け取った制御コードＣ１１に基づいて、各種の制御を行うものである。本実施形態では、制御コード取得部３５は、受け取った制御コードＣ１１をダミーコード判定部３５に送り出している。
【００９３】
ダミーコード判定部３５は、制御コード取得部３５から制御コードＣ１１を受け取り、受け取った制御コードがダミーコードＤｕｍｍｙであるか否かを判定するものである。ダミーコードＤｕｍｍｙである場合には、ダミーコード判定部３５は、ライトイネーブル生成部３７に指示して、ＦＩＦＯバッファ２２へのデータの書き込みを禁止する。
【００９４】
ライトイネーブル生成部３７は、ＦＩＦＯバッファ２２を書込み可能にする信号であるライトイネーブル信号ＷＲ＿ＥＮＢを生成してＦＩＦＯバッファ２２に送り出すものである。
【００９５】
次に、上記構成の通信機器１１・１２について、パケットを送受信するときの処理について説明する。まず、通信機器１１が通信機器１２にパケットを送信する処理について説明する。
【００９６】
まず、ＣＰＵ１３が、通信コントローラ１５のレジスタ２１から内部バス１４を介してステータス情報Ｓｔａｔｕｓを読み出し、通信コントローラ１５への送信が可能な状態であれば、送信の開始を指示するコントロール情報Ｃｏｎｔｒｏｌを、内部バス１４を介してレジスタ２１に書き込み、その後データＤ１０を内部バス１４を介してレジスタ２１に書き込む。
【００９７】
次に、レジスタ２１は、送信開始が指示されたことをステートマシン２０に通知し、ＦＩＦＯバッファ２２にデータＤ１１の書き込みを行う。その後、ＣＰＵ１３は、レジスタ２１を監視し、ＦＩＦＯバッファ２２がフル（Full）ではないという状況であれば、パケット終了まで逐次データＤ１０を、内部バス１４を介してレジスタ２１に書き込んでいく。
【００９８】
次に、ステートマシン２０は、全二重通信の場合にはスタートコードＤＰを、半二重通信の場合にはプリアンブルおよびスタートコードＤＰを、制御コード生成部３１にて生成し、制御コードＣ１０としてエンコーダ２３に出力する。また、ステートマシン２０は、制御コードＣ１０を変調するように、選択信号生成部３３にて選択信号ＳＥＬを生成してエンコーダ２３に出力する。
【００９９】
次に、ステートマシン２０は、エンプティ＆フル信号（Empty & Full）を参照して、ＦＩＦＯバッファ２２がエンプティ（Empty）でなければ、リードイネーブル生成部３２にてリードイネーブル信号ＲＤ＿ＥＮＢを生成してＦＩＦＯバッファ２２に送信することにより、ＦＩＦＯバッファ２２からエンコーダ２３にデータＤ１２の出力を開始する。
【０１００】
このとき、ステートマシン２０は、エンコーダ２３がデータを変調して出力するときに、リードイネーブル信号ＲＤ＿ＥＮＢと選択信号ＳＥＬとを利用して、ダミーコード含有率決定部３０にて決定した含有率に基づいてデータＤ１２にダミーコードＤｕｍｍｙを挿入する。
【０１０１】
具体的には、まず、ステートマシン２０は、制御コード生成部３１にてダミーコードＤｕｍｍｙを生成し、制御コードＣ１０としてエンコーダ２３に出力する。次に、エンコーダ２３からデータＤ１２を出力するときには、ＦＩＦＯバッファ２２に対してリードイネーブル信号ＲＤ＿ＥＮＢをイネーブルにし、選択信号ＳＥＬによりエンコーダ２３に対して、データＤ１２を変調するように指示を出す。
【０１０２】
一方、エンコーダ２３からダミーコードＤｕｍｍｙを出力するときには、リードイネーブル信号ＲＤ＿ＥＮＢをディスエーブルにし、選択信号ＳＥＬによりエンコーダ２３に対して制御コードＣ１０を変調するように指示を出す。この制御コードＣ１０は、上述のようにダミーコードＤｕｍｍｙであるから、データＤ１２にダミーコードＤｕｍｍｙが挿入されることになる。
【０１０３】
その後、上述のように、エンコーダ２３にて変調されたデータＥＤ１０が、シリアライザ２４にてシリアル化されて、パケットＰ１０として通信路１６に送り出される。そして、１パケット分のデータ出力が終了すると、ステートマシン２０は、制御コード生成部３１にてストップコードＤＥを生成してエンコーダ２３に出力し、制御コードを変調するように選択信号ＳＥＬで指示し、その後パケット送信処理を終了する。
【０１０４】
図５は、上記送信処理において、通信コントローラ１５がＣＰＵ／バスコントローラ１３からデータを受け取って送信用のパケットを構成する流れを示している。なお、図示の例では、内部バス１４の最大転送レートは高いが、内部バス１４が通信以外にも使用されることを考慮して、ＣＰＵ／バスコントローラ１３と通信コントローラ１５とのデータのやり取りは、時分割で行われる、すなわちこまかく分割されて行われるものとしている。
【０１０５】
また、実際には、通信路１６がビジー（Busy）状態であったり、内部バス１４でエラーがあったり、通信路１６の送信権を獲得する動作など、種々の状態および動作が存在するが、本願発明の理解を容易にするため、以下では、通信路１６が待機状態であり、内部バス１４でエラーがない場合であって、通信路１６が待機状態であるときには送信権があるものとして説明を行う。
【０１０６】
図５に示されるように、まず、ＣＰＵ／バスコントローラ１３が、パケットの送信を開始するパケット送信開始命令を通信コントローラ１５に出力する。このパケット送信開始命令を受けて、通信コントローラ１５は、通信路１６上が待機状態でありパケットを送信できる状況であるか否かを確認して、スタートコードＤＰを出力する。なお、半２重通信の場合には、プリアンブルを出力してからスタートコードＤＰを出力する。
【０１０７】
通信コントローラ１５は、パケットを送出できる状態になったことをデータ出力準備完了信号としてＣＰＵ／バスコントローラ１３に出力する。このデータ出力準備完了信号は、機器の実装態様によっては、通信コントローラ１５からのインターラプト信号としてＣＰＵ／バスコントローラ１３に通達される場合もあれば、ＣＰＵ／バスコントローラ１３が通信コントローラ１５の状態を読み込むコマンドを発し、そのコマンドに対する回答である場合もある。このデータ出力準備完了信号を受けてＣＰＵ／バスコントローラ１３はデータ出力を行う。
【０１０８】
このデータ出力を受け取ると、通信コントローラ１５は、データＤａｔａとダミーコードＤｕｍｍｙとを任意の割合で混在させる。なお、図５では、スタートコードＤＰの直後にデータＤａｔａが続いているが、スタートコードＤＰの数が決まっている通信システムでは、スタートコードＤＰの直後にダミーコードＤｕｍｍｙが入っても良い。
【０１０９】
その後、通信コントローラ１５は、通信路１６にパケットの出力を開始し、次の分割されたデータを受け取る準備ができたら、通信コントローラはデータ出力準備完了信号を出力し、上記の動作を繰り返しながら、パケットを送信していくことになる。
【０１１０】
ＣＰＵ／バスコントローラ１３は、パケットとして送信するデータの送信が全て終了した時点で、パケット送信終了命令を通信コントローラ１５に出力する。このパケット送信終了命令を受け取ると、通信コントローラ１５は、それまでにＣＰＵ／バスコントローラ１３から受け取ったデータを通信路１６に全て出力した後で、エンドコードＤＥを出力し、パケット送信動作を終了することになる。
【０１１１】
なお、最初のパケット送信開始命令にパケット中のデータ数が入っているシステムでは、パケット送信終了命令を使用せずに、通信コントローラ１５が、受け取ってパケットとして出力したデータの個数がパケット送信開始命令に指示された個数に合致した時点で、エンドコードＤＥを出力して送信動作を終了する場合もあり得る。
【０１１２】
次に、通信機器１２が通信機器１１からパケットを受信する処理について説明する。まず、デコーダ２６は、通信路１６とＣＤＲおよびデシリアライザ２５とを介して入力されたパラレルデータＥＤ１１を制御コードＣ１１またはデータＤ１３に復調する。デコーダ２６は、復調した制御コードＣ１１をステートマシン２０の制御コード取得部３５に出力し、復調したデータＤ１３をステートマシン２０のデータ取得部３４に出力する。そして、制御コード取得部３５が取得した制御コードＣ１１がスタートコードＤＰ、またはプリアンブルおよびスタートコードＤＰである場合に、ステートマシン２０は受信動作を開始する。
【０１１３】
まず、ステートマシン２０は、データ取得部３４にて有効なデータＤ１３を取得した場合、ライトイネーブル生成部３７に指示して、ライトイネーブル生成部３７からＦＩＦＯバッファ２２に送信するライトイネーブル信号ＷＲ＿ＥＢをイネーブルにして、データ取得部３４にて取得したデータＤ１３をそのままＦＩＦＯバッファ２２に書き込む。一方、ステートマシン２０は、制御コード取得部３５がダミーコードＤｕｍｍｙを取得したと、ダミーコード判定部３６が判定した場合、上記ライトイネーブル信号ＷＲ＿ＥＢをディスエーブルにする。これにより、ＦＩＦＯバッファ２２にはダミーコードＤｕｍｍｙが書き込まれず、データのみが書き込まれることになる。
【０１１４】
ＦＩＦＯバッファ２２にデータＤ１４を書き込み始めたら、ステートマシン２０は、レジスタ２１内のステート情報Ｓｔａｔｕｓを書き換える。このとき、ＣＰＵ１３は、レジスタ２１内のステート情報Ｓｔａｔｕｓを参照しながら、ＦＩＦＯバッファ２２からレジスタ２１を介してデータＤ１０を読み込んでいく。
【０１１５】
そして、制御コード取得部３５がデコーダ２６からストップコードＤＥを取得し、ＣＰＵ１３がデータＤ１０を全て読み込んで、ＦＩＦＯバッファ２２がエンプティになると受信動作が終了する。
【０１１６】
図６は、上記受信処理において、通信コントローラ１７が通信路１６からパケットを受け取って、データをＣＰＵ／バスコントローラ１９に出力する流れを示している。なお、図示の例では、図５の場合と同様に、通信コントローラ１７とＣＰＵ／バスコントローラ１９とのデータのやり取りは、時分割で行われる、すなわちこまかく分割されて行われるものとしている。また、以下では、内部バス１４でエラーがない場合であって、ＣＰＵ／バスコントローラ１９がデータを受け取れる状態にあるものとして説明を行う。
【０１１７】
まず、通信コントローラ１７は、スタートコードＤＰを受け取る。なお、半２重通信の場合には、通信コントローラ１７は、プリアンブルを受け取りながら、クロックとデータとを復元し、データ列同士の境界を検出するサイクル同期を行う。
【０１１８】
なお、通信システムによっては、通信コントローラ１７は、スタートコードＤＰを受け取った場合に直ちにパケット受信開始信号をＣＰＵ／バスコントローラ１９に出力するものもあれば、スタートコードＤＰの後に含まれるヘッダ内の宛先アドレスを判別し、自機器宛てに送信されたパケットであった場合にパケット受信開始信号をＣＰＵ／バスコントローラ１９に出力するものもある。以下では、直ちにパケット受信開始信号を出力する前者の場合で説明を行う。
【０１１９】
通信コントローラ１７は、スタートコードＤＰを受け取った後にＣＰＵ／バスコントローラ１９にパケット受信開始信号を出力する。なお、このパケット受信開始信号は、上述のデータ出力準備完了信号のように、インターラプト信号としてＣＰＵ／バスコントローラ１３に出力される場合もあれば、ＣＰＵ／バスコントローラ１３のポーリングによる回答として出力される場合もある。このパケット受信開始信号を受け取って、ＣＰＵ／バスコントローラ１９はデータを受け取る準備を行う。
【０１２０】
次に、通信コントローラ１７は、スタートコードＤＰの後に続くデータＤａｔａまたはダミーコードＤｕｍｍｙを受け取り、ダミーコードＤｕｍｍｙは無視して、データＤａｔａのみを蓄えていく。この蓄えが所定数以上になったときに、通信コントローラ１５はＣＰＵ／バスコントローラ１９にデータ入力としてデータを出力する。このデータの出力もインターラプト信号として通達される場合もあれば、ポーリングによる回答として出力される場合もある。
【０１２１】
そして、通信コントローラ１９は、エンドコードＤＥを受け取るか、もしくはパケットのヘッダ内にあるデータ数情報からデータの通信が終了したことを判別すると、パケット受信終了信号をＣＰＵ／バスコントローラ１９へ出力し、データ受信動作を終了する。或いは、ＣＰＵ／バスコントローラ１９が、ヘッダからデータ数を判別して、パケット中のデータを全て受け取ったと判別できるならば、パケット受信終了信号の送信が無くてもよい。
【０１２２】
以上のように、ダミーコードをデータ部に任意の数挿入することにより、通信路１６の見かけ上の帯域を通信機器１１・１２同士で任意に設定できるので、通信路１６の見かけ上の帯域を内部バス１４・１８の実効帯域以下に設定することができる。通信路１６の見かけ上の帯域を内部バス１４・１８の実効帯域以下に設定した場合には、ＣＰＵ／バスコントローラ１３・１９と通信コントローラ１５・１７との間でのデータのやりとりを細かく区切って行うことができる。
【０１２３】
これにより、通信コントローラ１５・１７では出力データを受け取ると直ちにパケットの送信を開始することができ、パケットを蓄えるまで待つ必要がないため、システム全体の実効帯域が大幅に減少することがない。また、データを蓄積するＦＩＦＯバッファの容量は、最大でも細かく区切ったデータの２倍程度であればよく、回路規模の増大やコストの上昇を防止することができる。
【０１２４】
次に、図４に示されるダミーコード含有率決定部３０においてダミーコードの含有率を決定する方法について、図７に基づいて説明する。図７（ａ）（ｂ）は、それぞれ通信機器１１・１２の簡単な状態遷移を示している。まず、通信機器１１・１２が、通信相手がいないため通信相手を探している状態を認識フェーズ０４０１・０４１１としている。この状態で通信機器１２が通信機器１１と通信可能な状態になったとする。これは、例えば通信機器１２の電源が入った場合や、通信機器１１・１２間がケーブルで接続された場合や、通信機器１２が通信機器１１と無線通信可能な範囲に入った場合などが考えられる。
【０１２５】
この場合、通信機器１１・１２は、互いに通信可能な機器がいることを判別して認証フェーズ０４０２・０４１２に移行することになる。この認証フェーズ０４０２，０４１２では、機器同士の情報を交換し、通信上のローカルＩＤを付与するなどして、通信の準備を行う。なお、機器同士の情報としては、例えば、機器のメーカ名、型番、製造ＩＤ、ＭＡＣアドレス、スペック、認証キーなどが挙げられる。
【０１２６】
その後、データを交換できる状況が整った場合に、通信機器１１・１２は、データ通信可能フェーズ０４０３・０４１３に移行して、データの交換などの通信を行う。その後、例えば通信機器１２で通信を終了する操作が行われたり、電源が切られたり、ケーブルが抜かれたり、通信可能範囲から出るなどして、データ通信ができなくなる状況が発生した場合に、通信機器１１は、切断フェーズ０４０４に移行し、切断処理を行った後、認識フェーズに戻ることになる。なお、通信機器１２も、正常な終了が行われた場合には、同様に状態遷移する。
【０１２７】
本実施形態では、上記のように状態遷移を行う通信機器１１・１２が、認証フェーズ０４０２・０４１２において機器同士の情報を交換するときに、通信路１６の最大帯域を取得し、通信機器１１・１２の実効帯域を交換することにより、ダミーコードの含有率を決定することができる。これにより、接続の確立後遅滞なく、データ通信可能フェーズにてダミーコードが混在したデータを送信することができるので、通信路１６を効率よく利用することができる。
【０１２８】
例えば、通信路１６の最大帯域が１００Ｍｂｐｓとした場合に、通信機器１１の実効帯域の最大値が５０Ｍｂｐｓであり、通信機器１２の実効帯域の最大値が４０Ｍｂｐｓであるとして、これらの情報を交換すると、本通信システム１０における実効帯域の上限は、通信機器１２の４０Ｍｂｐｓであるということが理解できる。したがって、通信コントローラ１５・１７は、１００Ｍｂｐｓを４０Ｍｂｐｓに低下させればよいので、ダミーコードの含有率は（１００−４０）／１００＝０．６となる。すなわち、データ２個に対してダミーコード３個の割合で混在させた形式でデータ通信を行うことになる。
【０１２９】
これにより、通信路１６の実効帯域を、通信機器１１・１２のうち何れか遅いほうの実効帯域に合わせることができるので、システム全体の実効帯域の低下を防止することができる。また、通信コントローラ１５・１７におけるＦＩＦＯバッファ２２の容量を大きくする必要が無くなるので、回路規模の増大および製造コストの上昇を防止することができる。
【０１３０】
〔実施の形態２〕
次に、本発明の別の実施形態について、図８〜図１２に基づいて説明する。本実施形態の通信システム１０は、図１〜図７に示される通信システム１０と比べて、ダミーコードの含有率を決定する方法のみが異なり、その他の構成は同様である。なお、上記実施形態で説明した構成と同様の機能を有する構成には同一の符号を付して、その説明を省略する。
【０１３１】
本実施形態におけるダミーコードの含有率を決定する方法を説明する前に、一般的なパケット通信における信号の流れについて説明する。図８は、一般的なパケット通信において、通信機器１１から通信機器１２にパケットＰを送信する場合における信号の流れを示している。
【０１３２】
図８（ａ）は、正常にパケットが送信された場合を示している。図示の場合、まず、通信機器１１がパケットＰを通信機器１２に送り出す。通信機器１２は、通信機器１１から受け取ったパケットＰの内容を解析し、自機器へのパケットであるか否かや、ＣＲＣなどを参照して、受信したパケットＰにエラーがあるか否かなどを判別する。そして、通信機器１２は、パケットＰの受信に成功した場合にＡｃｋ信号を通信機器１１に送り返す。このとき、通信機器１１は、Ａｃｋ信号を受け取ることでパケットＰの送信が完了したことを認識して、次のパケットＰの送信動作などに入ることになる。
【０１３３】
なお、通信機器１１がＡｃｋ信号を正常に受け取ることができない場合がある。この場合、通信機器１１は、同じパケットＰを再送することになる。このとき、通信機器１２は、受け取ったパケットＰが先ほど正常に受け取ったものと同一である場合には、そのパケットＰに対する処理は行わず、パケットＰの受取終了後Ａｃｋ信号のみ返すことで、正常に受け取ったことを通信機器１１に伝えるようにしている。なお、通常、パケットＰには、送信順に番号が振ってあったり、交互にヘッダの種類を変えたりするなどして、パケットＰが同一であるか否かを容易に判別できるようになっている。
【０１３４】
図８（ｂ）（ｃ）は、正常にパケットが送信されなかった場合を示している。同図（ｂ）では、まず、通信機器１１が通信機器１２にパケットＰを送り出す。通信機器１２は、通信機器１１から受け取ったパケットＰの内容を解析したところ、パケットＰにエラーが入っていたり、途中でデータが消失したりして正常なパケット構造ではなかった場合や、通信機器１２が何らかの異常でデータを正常に受け取れなかった場合などには、通信機器１２は、パケットＰを受け取れなかったことを示すＮａｋ信号を出力する。この場合、Ｎａｋ信号を受け取った通信機器１１は、正常に通信が行えなかったことを判別し、通信機器１２へ再度同じパケットを送信することになる。
【０１３５】
図８（ｃ）は、通信機器１２が、通信機器１１から受け取ったパケットＰの内容を解析したところ、ヘッダ部分にエラーが入っていたりして、自機器宛てのパケットＰではないと判断した場合を示している。この場合、自機器宛てのパケットＰではないから、Ａｃｋ信号やＮａｋ信号などの受け取った／受け取れなかったといった信号を出力する必要が無い。
【０１３６】
通常、通信機器１１・１２は、パケットＰの送信終了時から、プロトコルによって決定される所定時間だけ待機し、その間にＡｃｋ信号もＮａｋ信号も返ってこなかった場合には、タイムアウトとして、送信および受信の何れかで問題が発生したものと判断し、再度通信機器１２へ同じパケットを送信することになる。
【０１３７】
なお、前述の、通信機器１２がパケットＰを正常に受け取ったが、通信機器１１がＡｃｋ信号を受け取らなかった場合は、通信機器１１の立場では、図８（ｃ）と同じ状況が起こっていることになる。
【０１３８】
上記のように、通信機器１１は、パケットを通信機器１２に送り出すと、通信機器１２からＡｃｋ信号が返ってくる場合と、Ｎａｋ信号が返ってくる場合と、何も返ってこない場合との３つの返信形態が考えられる。本実施形態では、これら３つの返信形態を利用して、相手先の通信機器１２が通信可能な実効帯域を判別して、ダミーコードの含有率を変化させるものである。このように、通信機器１２の内部バス１８の実効帯域を直接取得しなくても、データ送信に対する応答信号から内部バス１８の実効帯域を把握することができるので、ダミーコードの含有率を確実に決定することができる。
【０１３９】
以下、相手先の通信機器１２が通信可能な実効帯域を判別する実施例について図９〜図１２に基づいて説明する。
【０１４０】
〔実施例１〕
本実施例では、通信機器１２は、図８（ｂ）に示されるように、受け取ったパケットが異常なものであった場合に加えて、受け取ったパケットの見かけ上の帯域が、自機器の通信可能な実効帯域よりも速い場合に、Ｎａｋ信号を送り出すようにしている。また、本実施例では、通信機器１１は、Ｎａｋ信号を受け取った場合には、ダミーコードの含有率を増加するようにしている。この場合、通信路１６の帯域が減少することになる。一方、通信機器１１は、Ａｃｋ信号を受け取った場合には、ダミーコードの含有率を減少するようにしている。この場合、通信路１６の帯域が増加することになる。
【０１４１】
また、Ｎａｋ信号の取得によりダミーコードの含有率を増加する割合は、Ａｃｋ信号の取得により含有率を減少する割合よりも大きくしている。すなわち、通信路１６の帯域を減少する割合の方が、増加する割合よりも大きくなる。これは、Ｎａｋ信号を受け取るということは、パケットの送信が正常に行われずに再送が頻発する状況であり、その状況から速く抜け出すためである。また、Ｎａｋ信号の取得で帯域を粗く調整し、Ａｃｋ信号の取得で帯域を細かく調整することにより、通信ミスとなるパケットが少なくなるためである。
【０１４２】
また、Ｎａｋ信号の取得により帯域を減少させる場合には、該Ｎａｋ信号の取得時の帯域を上限値としている。すなわち、以後にＡｃｋ信号の取得により通信路１６の帯域を増加させると上記上限値を超える場合には、通信路１６の帯域を増加させないようにしている。
【０１４３】
また、Ａｃｋ信号を２回以上連続して受け取った後、Ｎａｋ信号を１回受け取った場合には、通信路１６の帯域を変化させず、Ｎａｋ信号を２回受け取った場合に減少するようにしている。これは、Ａｃｋ信号を２回以上連続して受け取った後、Ｎａｋ信号を１回受け取った場合は、受け取ったパケットの見かけ上の帯域が、自機器の通信可能な実効帯域よりも速い場合よりもむしろ、受け取ったパケットが異常なものであった場合の可能性が高く、Ｎａｋ信号を２回連続して受け取った場合は、その反対の可能性が高いと考えられるからである。
【０１４４】
図９は、本実施例に従って含有率が決定される場合において、通信路１６での見かけ上の帯域の時間変化を示している。まず、初期値の帯域でパケットを送信し、その返答がＮａｋ信号であったため、帯域を減少させて再送する。この再送の返答がＮａｋ信号であったため、さらに帯域を減少させて再送する。この再送の返答がＮａｋ信号であったため、さらに帯域を減少させて再送する。この再送の返答がＡｃｋ信号であったため、帯域を増加させて、１パケットの通信を終了する。
【０１４５】
増加した帯域で新たなパケットを送信し、その返答がＡｃｋ信号であったため、さらに帯域を増加させて、１パケットの通信を終了する。増加した帯域で新たなパケットを送信し、その返答がＮａｋ信号であった。この場合、Ａｃｋ信号を２回以上連続して受け取った後、Ｎａｋ信号を１回受け取った場合に該当するので、帯域は変化させずに再送する。この再送の返答がＮａｋ信号であった。この場合、Ｎａｋ信号を２回連続して受け取った場合に該当するので、帯域を減少させて再送する。
【０１４６】
この再送の返答がＡｃｋ信号であったため、帯域を増加させて、１パケットの通信を終了する。増加した帯域で新たなパケットを送信し、その返答がＡｃｋ信号であったため、さらに帯域を増加させて、１パケットの通信を終了する。増加した帯域で新たなパケットを送信し、その返答がＡｃｋ信号であった。この場合、帯域をさらに増加させると、Ｎａｋ信号の取得により帯域を減少させるＮａｋ信号であって、直近のＮａｋ信号の取得時の帯域を超えてしまうので、帯域を変更せずに１パケットの通信を終了する。
【０１４７】
〔実施例２〕
本実施例では、図９に示される実施例に比べて、下記の点が異なり、その他は同様である。すなわち、通信機器１２は、受け取ったパケットが異常なものであった場合には、図８（ｃ）に示されるように、何の信号も返さず、受け取ったパケットの見かけ上の帯域が、自機器の通信可能な実効帯域よりも速い場合には、図８（ｂ）に示されるように、Ｎａｋ信号を送り出すようにしている。
【０１４８】
これにより、通信機器１１がＮａｋ信号を受け取る場合は、必ず、送り出したパケットの見かけ上の帯域が通信機器１２の通信可能な実効帯域よりも速い場合である。したがって、本実施例では、Ｎａｋ信号を受け取ると必ず通信路１６の帯域を減少させる。これにより、帯域の上限値は、直近のＮａｋ信号を受け取ったときの帯域となる。
【０１４９】
図１０は、本実施例に従って含有率が決定される場合において、通信路１６での見かけ上の帯域の時間変化を示している。まず、初期値の帯域でパケットを送信し、その返答がＮａｋ信号であったため、帯域を減少させて再送する。この再送の返答がＮａｋ信号であったため、さらに帯域を減少させて再送する。この再送の返答がＮａｋ信号であったため、さらに帯域を減少させて再送する。この再送の返答がＡｃｋ信号であったため、帯域を増加させて、１パケットの通信を終了する。
【０１５０】
増加した帯域で新たなパケットを送信し、その返答がＡｃｋ信号であったため、さらに帯域を増加させて、１パケットの通信を終了する。増加した帯域で新たなパケットを送信し、その返答がＮａｋ信号であった。この場合、図９に示される実施例と異なり、帯域を減少させて再送する。
【０１５１】
この再送の返答がＡｃｋ信号であったため、帯域を増加させて、１パケットの通信を終了する。増加した帯域で新たなパケットを送信し、その返答がＡｃｋ信号であったため、さらに帯域を増加させて、１パケットの通信を終了する。増加した帯域で新たなパケットを送信し、その返答がＡｃｋ信号であった。この場合、帯域をさらに増加させると、直近のＮａｋ信号を受け取ったときの帯域を超えてしまうので、帯域を変更せずに１パケットの通信を終了する。
【０１５２】
〔実施例３〕
本実施例は、図１０に示される実施例に比べて、下記の点が異なり、その他は同様である。すなわち、通信機器１２は、受け取ったパケットが異常なものであった場合には、図８（ｂ）に示されるように、Ｎａｋ信号を送り返し、受け取ったパケットの見かけ上の帯域が、自機器の通信可能な実効帯域よりも速い場合には、図８（ｃ）に示されるように、何も送り返さないようにしている。
【０１５３】
この場合、図１０に示される実施例において、Ｎａｋ信号の取得をタイムアウトに置き換えたものとなるので、以下の説明を省略する。
【０１５４】
〔実施例４〕
本実施例では、図９に示される実施例に比べて、下記の点が異なり、その他は同様である。すなわち、通信機器１２は、２種類のＡｃｋ信号と２種類のＮａｋ信号とを生成して送り出すものである。一方のＡｃｋ信号であるＡｃｋＡ信号と、一方のＮａｋ信号であるＮａｋＡ信号とは、通信機器１２が受け取ったパケットの見かけ上の帯域が、自機器の通信可能な実効帯域よりも速い場合に送り出されるものである。また、他方のＡｃｋ信号であるＡｃｋＢ信号と、他方のＮａｋ信号であるＮａｋＢ信号とは、通信機器１２が受け取ったパケットの見かけ上の帯域が、自機器の通信可能な実効帯域よりも遅い場合に送り出されるものである。
【０１５５】
これにより、通信機器１１は、ＡｃｋＡ信号またはＮａｋＡ信号を受け取ると、ダミーコードの含有率を増加して、通信路１６の帯域を減少させる一方で、ＡｃｋＢ信号またはＮａｋＢ信号を受け取ると、ダミーコードの含有率を減少して、通信路１６の帯域を増加させる。また、帯域の上限値は、ＡｃｋＡ信号およびＮａｋＡ信号のうち直近の信号を受け取ったときの帯域となる。
【０１５６】
図１１は、本実施例に従って含有率が決定される場合において、通信路１６での見かけ上の帯域の時間変化を示している。まず、初期値の帯域でパケットを送信し、その返答がＮａｋＡ信号であったため、帯域を減少させて再送する。この再送の返答がＡｃｋＡ信号であったため、さらに帯域を減少させて、１パケットの通信を終了する。減少した帯域で新たなパケットを送信し、その返答がＮａｋＡ信号であったため、さらに帯域を減少させて再送する。この再送の返答がＡｃｋＢ信号であったため、帯域を増加させて、１パケットの通信を終了する。
【０１５７】
増加した帯域で新たなパケットを送信し、その返答がＡｃｋＢ信号であったため、さらに帯域を増加させて、１パケットの通信を終了する。増加した帯域で新たなパケットを送信し、その返答がＮａｋＡ信号であったため、帯域を減少させて再送する。この再送の返答がＡｃｋＢ信号であったため、帯域を増加させて、１パケットの通信を終了する。増加した帯域で新たなパケットを送信し、その返答がＮａｋＢ信号であったため、さらに帯域を増加させて再送する。
【０１５８】
再送の返答がＡｃｋＢ信号であった。この場合、帯域をさらに増加させると、ＡｃｋＡ信号およびＮａｋＡ信号のうち直近の信号であるＮａｋＡ信号を受け取ったときの帯域を超えてしまうので、帯域を変更せずに１パケットの通信を終了する。同じ帯域で新たなパケットを送信し、その返答がＡｃｋＢ信号であった。この場合、上記と同様に、帯域を変更せずに１パケットの通信を終了する。
【０１５９】
〔実施例５〕
本実施例では、図９に示される実施例に比べて、下記の点が異なり、その他は同様である。すなわち、通信機器１２は、３種類のＡｃｋ信号と３種類のＮａｋ信号とを生成して送り出すものである。３種類のＡｃｋ信号の１つであるＡｃｋＡ信号と、３種類のＮａｋ信号の１つであるＮａｋＡ信号とは、通信機器１２が受け取ったパケットの見かけ上の帯域が、自機器の通信可能な実効帯域よりも速い場合に送り出されるものである。
【０１６０】
また、３種類のＡｃｋ信号の別の１つであるＡｃｋＢ信号と、３種類のＮａｋ信号の別の１つであるＮａｋＢ信号とは、通信機器１２が受け取ったパケットの見かけ上の帯域が、自機器の通信可能な実効帯域よりも遅い場合に送り出されるものである。また、３種類のＡｃｋ信号の残り１つであるＡｃｋＣ信号と、３種類のＮａｋ信号の残り１つであるＮａｋＣ信号とは、通信機器１２が受け取ったパケットの見かけ上の帯域が、自機器の通信可能な実効帯域と同程度である場合に送り出されるものである。
【０１６１】
これにより、通信機器１１は、ＡｃｋＡ信号またはＮａｋＡ信号を受け取ると、ダミーコードの含有率を増加して、通信路１６の帯域を減少させる。また、通信機器１１は、ＡｃｋＢ信号またはＮａｋＢ信号を受け取ると、ダミーコードの含有率を減少して、通信路１６の帯域を増加させる。また、通信機器１１は、ＡｃｋＣ信号またはＮａｋＣ信号を受け取ると、ダミーコードの含有率を変更せず、通信路１６の帯域を変更しない。また、帯域の上限値は、ＡｃｋＡ信号およびＮａｋＡ信号のうち直近の信号を受け取ったときの帯域となる。
【０１６２】
図１２は、本実施例に従って含有率が決定される場合において、通信路１６での見かけ上の帯域の時間変化を示している。まず、初期値の帯域でパケットを送信し、その返答がＮａｋＡ信号であったため、帯域を減少させて再送する。この再送の返答がＡｃｋＡ信号であったため、さらに帯域を減少させて、１パケットの通信を終了する。減少した帯域で新たなパケットを送信し、その返答がＮａｋＡ信号であったため、さらに帯域を減少させて再送する。この再送の返答がＡｃｋＢ信号であったため、帯域を増加させて、１パケットの通信を終了する。
【０１６３】
増加した帯域で新たなパケットを送信し、その返答がＡｃｋＢ信号であったため、さらに帯域を増加させて、１パケットの通信を終了する。増加した帯域で新たなパケットを送信し、その返答がＮａｋＡ信号であったため、帯域を減少させて再送する。この再送の返答がＡｃｋＢ信号であったため、帯域を増加させて、１パケットの通信を終了する。増加した帯域で新たなパケットを送信し、その返答がＮａｋＢ信号であったため、さらに帯域を増加させて再送する。
【０１６４】
再送の返答がＡｃｋＣ信号であった。この場合、帯域を変更せずに１パケットの通信を終了する。同じ帯域で新たなパケットを送信し、その返答がＮａｋＣ信号であった。この場合、上記と同様に、帯域を変更せずに再送する。
【０１６５】
〔実施の形態３〕
次に、本発明の他の実施形態について説明する。本実施形態の通信システム１０は、図１〜図７に示される通信システム１０と比べて、ダミーコードの含有率を決定する方法のみが異なり、その他の構成は同様である。なお、上記実施形態で説明した構成と同様の機能を有する構成には同一の符号を付して、その説明を省略する。
【０１６６】
本実施形態の通信システム１０では、まず、各通信機器１１・１２は、自機器の内部バス１４・１８の実効帯域と、通信路１６の最大帯域とを比較して、自機器のダミーコードの含有率を決定し、決定した含有率に基づいて、データにダミーコードを混在させてパケットを出力する。次に、各通信機器１１・１２は、相手機器からパケットを受け取り、受け取ったパケットから相手機器のダミーコードの含有率を算出する。
【０１６７】
そして、各通信機器１１・１２は、自機器のダミーコードの含有率と相手機器のダミーコードの含有率とを比較し、ダミーコードの含有率の大きい方、すなわち実効帯域の小さい方に合わせて、以後のデータ通信を行う。
【０１６８】
具体的に説明すると、例えば、通信路の速度（最大帯域）が１００Ｍｂｐｓとして、通信機器１１の内部バス１４の実効帯域を６０Ｍｂｐｓとし、通信機器１２の内部バス１８の実効帯域を５５Ｍｂｐｓとする。この場合、通信機器１１は、ダミーコードの含有率を（１００−６０）／１００＝０．４、すなわち５個中２個と決定し、通信機器１２はダミーコードの含有率を（１００−５５）／１００＝０．４５、すなわち２０個中９個と決定する。次に、各通信機器１１・１２は、決定したダミーコードの含有率に基づいて、データにダミーコードを混在させて、相手機器にパケットを出力する。
【０１６９】
次に、通信機器１１は、通信機器１２から受け取ったパケット内のデータ部におけるダミーコードの含有率が２０個中９個であることを検出し、自機器のダミーコードの含有率である５個中２個よりも大きい（０．４５＞０．４）と判定して、自機器のダミーコードの含有率を２０個中９個に変更する。
【０１７０】
一方、通信機器１２は、通信機器１１から受け取ったパケット内のデータ部におけるダミーコードの含有率が５個中２個であることを検出し、自機器のダミーコードの含有率である２０個中２個よりも小さい（０．４＜０．４５）と判定して、自機器のダミーコードの含有率を変更しない。
【０１７１】
これにより、互いの通信機器１１・１２のダミーコードの含有率を決定することができるので、通信機器１１・１２どうしにとって最適な帯域を持った通信路１６を得ることができ、通信システム１０全体の実効帯域を最適なものとすることができる。
【０１７２】
また、ダミーコードの含有率の初期値として、自機器の内部バスの実効帯域から算出した値を使用することにより、ダミーコードの含有率を素早く調整でき、実効帯域を素早くできるようになる。例えば、各通信機器の内部バスの実効帯域が同程度であれば、初期値のままでデータ通信を継続することができる。
【０１７３】
なお、本発明は、以下のように構成することもできる。
【０１７４】
すなわち、本発明の通信方法は、１対１でパケットを交換し、パケットの先頭や終わりや機器の状態情報を相手に伝える制御用のコードと、データを通信に適する変調方法を用いて変調を行うデータコードを用いて通信を行う通信方法において、パケットのデータ通信個所内にデータや機器の状態情報をあらわすものと異なる制御コードを含有させ、データとデータや機器の状態情報をあらわすものと異なる制御コードの割合を１：ｋとしてあらわす含有比率ｋを設定し、該含有比率ｋが０以上の任意の数値である方法である。
【０１７５】
また、本発明の通信方法は、上記の通信方法において、上記含有比率ｋの上限または下限またはその両方の値を通信する相手機器を認証する期間に相対する機器同士が互いに自機器の値を相手機器に送信し、その含有比率ｋの大きい方の値で、含有比率ｋを決定する方法である。
【０１７６】
また、本発明の通信方法は、上記の方法において、上記上限値または下限値またはその両方の値は、パケット内にデータとデータや機器の状態情報をあらわすものと異なる制御コードを含有することで低下するバスの実効帯域が、通信コントローラが接続されているバスの実効帯域と概略同じもしくは低くなるように設定する方法である。
【０１７７】
また、本発明の通信方法は、上記の方法において、パケット交換を行っている状態において、パケット送信を行い、相手機器がパケットを受け取れなかったことをあらわすＮａｋ信号を受け取った際に上記含有比率ｋを上げていく方法である。
【０１７８】
また、本発明の通信方法は、上記の方法において、相手機器がパケットを正常に受け取ったことをあらわすＡｃｋ信号を受け取ったときに含有比率ｋを下げていく方法である。
【０１７９】
また、本発明の通信方法は、上記の方法において、Ｎａｋ信号を受け取って、含有比率ｋを上げた後にＡｃｋ信号を受け取った場合に、現在の含有比率ｋからＡｃｋ信号を受けたときに下げる変化量を引いた値が、最後にＮａｋ信号を受け取ったときの含有比率ｋよりも小さくなる場合には含有比率ｋを変化させない方法である。
【０１８０】
また、本発明の通信方法は、上記の方法において、同一の含有比率ｋを使用した２回以上連続したＡｃｋ信号を受け取った後にＮａｋ信号を受け取った場合に、含有比率ｋを変化させず、２回以上連続したＮａｋ信号を受け取った場合に含有比率ｋを変化させる方法である。
【０１８１】
また、本発明の通信方法は、上記の方法において、パケット交換を行っている状態において、受信したパケットが上記含有比率ｋが小さいために受け取れなかった場合にはＮａｋ信号を出力し、エラーが発生したために受け取れなかった場合にはＡｃｋ信号もＮａｋ信号も出力せず、送信側はＮａｋ信号を受け取った場合には、上記含有比率ｋを上げ、ある一定期間何も信号が帰ってこなかった場合には、エラーで受け取れなかったものとして、含有比率ｋを変化させない方法である。
【０１８２】
また、本発明の通信方法は、上記の方法において、上記含有比率ｋを、相手機器がパケットを正常に受け取ったことをあらわすＡｃｋ信号を受け取ったときに含有比率ｋを下げていく方法である。
【０１８３】
また、本発明の通信方法は、上記の方法において、Ｎａｋ信号を受けて含有比率ｋを上げた後にＡｃｋ信号を受け取った場合に、現在の含有比率ｋからＡｃｋ信号を受けたときに下げる変化量を引いた値が、最後にＮａｋ信号を受けた含有比率ｋよりも小さくなる場合には含有比率ｋを変化させない方法である。
【０１８４】
また、本発明の通信方法は、上記の方法において、パケット交換を行っている状態において、受信側は、受信したパケットが上記含有比率ｋが小さいために受け取れなかった場合にはＡｃｋ信号もＮａｋ信号も出力せず、エラーが発生したために受け取れなかった場合にはＮａｋ信号を出力し、送信側は、Ｎａｋ信号を受け取った場合には、エラーで受け取れなかったものとして含有比率ｋを変化させ、或る一定期間何も信号が帰ってこなかった場合、エラーで受け取れなかったものとして上記含有比率ｋを上げる方法である。
【０１８５】
また、本発明の通信方法は、上記の方法において、上記含有比率ｋを、相手機器がパケットを正常に受け取ったことを表すＡｃｋ信号を受け取ったときに含有比率ｋを下げていく方法である。
【０１８６】
また、本発明の通信方法は、上記の方法において、或る一定期間何も信号が帰って来ず、含有比率ｋを上げた後にＡｃｋ信号を受け取った場合に、現在の含有比率ｋからＡｃｋ信号を受けたときに下げる変化量を引いた値が、或る一定期間何も信号が帰って来なかったときの含有比率ｋよりも小さくなる場合には、含有比率ｋを変化させない方法である。
【０１８７】
また、本発明の通信方法は、上記の方法において、パケットを正常に受け取ったことを表すＡｃｋ信号とパケットを正常に受け取れなかったことを表すＮａｋ信号との何れか一方または両方について２種類用意し、その２種類の何れか一方に含有比率ｋを上げる意味をもたせ、もう一方に含有比率ｋを下げる意味を持たせることにより、Ａｃｋ信号またはＮａｋ信号を受けた通信機器が含有比率ｋを変化させる方法である。
【０１８８】
また、本発明の通信方法は、上記の方法において、パケットを受信した機器は、パケット内にデータと異なる制御コードを含有することで低下するバスの実効帯域が、通信コントローラが接続されているバスよりも早い場合には含有比率ｋを上げるＡｃｋ信もしくはＮａｋ信号を出力し、遅い場合には含有比率ｋを下げるＡｃｋ信号またはＮａｋ信号を出力し、パケットを送信した機器はそのＡｃｋ信号またはＮａｋ信号を基に上記含有比率ｋを変化させる方法である。
【０１８９】
また、本発明の通信方法は、上記の方法において、パケットを受信した機器は上記含有比率ｋを下げるＡｃｋ信号またはＮａｋ信号を送信した場合に変化すると予想される含有比率により低下するバスの実行帯域が、バスの実効帯域よりも速い場合には、上記含有比率ｋを上げるＡｃｋ信号またはＮａｋ信号を送信する方法である。
【０１９０】
また、本発明の通信方法は、上記の方法において、パケットを正常に受け取ったことをあらわすＡｃｋ信号とパケットを正常に受け取れなかったことをあらわすＮａｋ信号との何れか一方または両方について３種類用意し、１つに含有比率ｋを上げる意味をもたせ、もう１つに含有比率ｋを下げる意味をもたせ、残り１つに含有比率ｋを変化させない意味をもたせることにより、Ａｃｋ信号またはＮａｋ信号を受けた通信機器が含有比率ｋを変化させる方法である。
【０１９１】
また、本発明の通信方法は、上記の方法において、パケットを受信した機器は、パケット内にデータと異なる制御コードを含有することで低下するバスの実効帯域が、通信コントローラが接続されているバスよりも早い場合には含有比率ｋを上げるＡｃｋ信号またはＮａｋ信号を出力し、遅い場合には含有比率ｋを下げるＡｃｋ信号またはＮａｋ信号を出力し、バスと略同じ速度もしくは含有比率ｋの変更の必要がない場合には上記含有比率ｋを変化させないＡｃｋ信号またはＮａｋ信号を出力し、パケットを送信した機器はそのＡｃｋ信号またはＮａｋ信号を基に上記含有比率ｋを変化させる方法である。
【０１９２】
なお、上記含有比率ｋを上げる際の変化量を上記含有比率ｋを下げる際の変化量より大きくすることが望ましい。
【０１９３】
また、本発明の通信方法は、上記の方法において、パケット内にデータと異なる制御コードを含有することで低下するバスの実効帯域を自機器のバスの実行帯域に合わせるように上記含有比率ｋを設定して通信を開始し、相手機器から送信されてきたパケット内に含まれているデータと異なる制御コードの含有比率ｋ１を測定し、該含有比率ｋ１が上記含有比率ｋよりも大きい場合には含有比率ｋを含有比率ｋ１に合わせることで、双方の通信における含有比率の値を合わせる方法である。
【０１９４】
また、本発明の通信方法は、上記の方法において、パケット内にデータと異なる制御コードを含有することで低下するバスの実効帯域の上限が送信機器のバスの実行帯域よりも小さくなるように上記含有比率ｋを設定する方法である。
【０１９５】
なお、上記含有比率ｋを通信機器同士で取り決めを行う前は１つのパケットを送信し、Ａｃｋ信号またはＮａｋ信号を返す通信のみ行えるようにし、上記含有比率ｋの取り決めが終了した後では、複数のパケットを連続して送信し、その連続したパケットに対して１つのＡｃｋ信号もしくはＮａｋ信号を返す通信を許可してもよい。
【０１９６】
また、本発明の通信機器は、上記の通信方法を実現できるものである。
【０１９７】
以上のように、速い通信路を使用した場合にシステム全体の実効帯域がバスの実効帯域のほぼ半分に低下することを回避するためには、通信路の実効帯域を見かけ上バスの実効帯域とほぼ同じにすることで対応できる。
【０１９８】
通信路の実効帯域を見かけ上遅くする方法として、パケット内のデータ通信個所内にデータや機器の状態を表すものと異なる制御コード（ダミーコード）を入れ、ダミーコードの含有比率を自由に設定できるようにした。これにより、バスの実効帯域と、通信路の実効帯域とがほぼ同じになり、システム全体の実効帯域がバスの実効帯域とほぼ同じになる。また、ＦＩＦＯバッファのサイズも大きくとる必要がなくなり通信コントローラの回路規模を大きくする必要がなく低価格化が図れる。
【０１９９】
また、本発明においては、データ通信を開始する前の機器同士の情報の交換を行う際に、自機器のバスの実効レートから換算されるダミーコードを入れる割合を交換し、この割合の大きい方を通信時に入れるダミーデータの量とするようにした。これにより、通信路の実効帯域を遅い方の機器の実効帯域にあわせることが可能となり、遅いほうの機器でデータの過不足がなくＦＩＦＯバッファのあまり必要としない通信が可能となる。
【０２００】
また、本発明においては、データを入れたパケット通信を行い、受信機器がデータパケットを正常な受信が完了したときに受け取ったことを相手機器に伝達するためのＡｃｋ信号と正常に受信が完了しなかったことを相手機器に伝達するＮａｋ信号を用いてダミーコードを入れる割合を変更していくようにした。
【０２０１】
これにより、実際のバスの実効速度よりも、ダミーコードを挿入して、実効帯域の遅くなった通信路のほうが早い場合には、受け取れないことを示すＮａｋ信号を返すことで、通信路の見かけ上の帯域をバスの実効速度よりも遅くすることができる。また、バスの実効帯域が見かけ上の通信路の実効帯域よりも速くなり、データを正常に受け取れるようになった場合に、Ａｃｋ信号が返ってくるため、見かけ上の通信路の実効帯域を上げることができる。
【０２０２】
また、見かけ上のバスの実効帯域をＮａｋ信号を受けて遅くした後、Ａｃｋ信号を受けて速くしていくが、Ｎａｋ信号を受けて遅くした見かけ上の実効帯域よりも速くしないようにすることで、実効帯域が速くなりすぎて、受け取れなくなり、また実効帯域を遅くするというようなことが多く発生することを防ぐことができる。したがって、実行帯域が速すぎるために受け取れなくなるパケットの数を減らすことができる。
【０２０３】
また、通信を行う場合においては、通信路の何らかの影響により、エラーが発生し受信機でのエラーチェックで正常に受信されないとなることがあり、このときにもＮａｋ信号が出力されることがある。このＮａｋ信号は通信路の見かけ上の実効帯域を下げるために出力されたものではないため、このＮａｋ信号で通信路の見かけ上の実効帯域を下げる必要はない。
【０２０４】
このＮａｋ信号で実効帯域が下がることを防ぐために、２回以上連続してＡｃｋ信号が出力された後にＮａｋ信号を受けた場合には、エラーによるＮａｋ信号であるものとして、見かけ上の実効帯域を変化させないようにする。ただし、Ａｃｋ信号が出力された時のパケットのデータ長が短く、偶然受信が可能であり見かけ上の実効帯域を変化させる必要がある可能性がありうるため、２回以上のＮａｋ信号が出力された場合には、見かけ上の実効帯域を変化させるようにすることで、対応できる。
【０２０５】
また、本発明においては、パケットを受信した場合に、見かけ上の通信路の実効帯域が速すぎてデータを正常に受け取れないときに、Ｎａｋ信号を出力し、見かけ上の通信路の実行帯域の速度では十分受け取れるが、パケットの伝送中にエラーが入るなどして正常にパケットを受け取れなかった場合には何も出力せず、正常にデータ通信が行えた場合にはＡｃｋ信号を出力するようにし、パケットを送信した機器はパケットを送信した後にＮａｋ信号を受けた場合に、ダミーコードの割合を増やし、ある一定期間何も信号を受け取らなかった場合には、ダミーコードの割合を変化させず、Ａｃｋ信号を受け取った場合にはダミーコードの割合を減らすようにする。
【０２０６】
これにより、受け取ったパケットのダミーコードの割合を調整でき、最適な実行帯域でデータの通信が行えるようになる。また、見かけ上のバスの実効帯域を、Ｎａｋ信号を受けて遅くした後、Ａｃｋ信号を受けて速くしていくが、Ｎａｋ信号を受けて遅くした見かけ上の実効帯域よりも速くしないようにすることで、実効帯域が速くなりすぎて、受け取れなくなり、また実効帯域を遅くするというようなことが多く発生することを防ぐことができる。したがって、実行帯域が速すぎるために受け取れなくなるパケットの数を減らすことができる。
【０２０７】
また、本発明においては、パケットを受信した場合に、見かけ上の通信路の実効帯域が速すぎてデータを正常に受け取れないときに何も出力せず、見かけ上の通信路の実行帯域の速度では十分受け取れるが、パケットの伝送中にエラーが入るなどして正常にパケットを受け取れなかった場合にはＮａｋ信号を出力し、正常にデータ通信が行えた場合にはＡｃｋ信号を出力するようにし、パケットを送信した機器はパケットを送信した後にある一定期間何も信号を受け取らなかった場合には、ダミーコードの割合を増やし、Ｎａｋ信号を受けた場合に、ダミーコードの割合を変化させず、Ａｃｋ信号を受け取った場合にはダミーコードの割合を減らすようにする。
【０２０８】
これにより、受け取ったパケットのダミーコードの割合を調整でき、最適な実行帯域でデータの通信が行えるようになる。また、見かけ上のバスの実効帯域を何も信号が帰ってこなかった場合に遅くした後、Ａｃｋ信号を受けて速くしていくが、何も信号が帰ってこなくて遅くした見かけ上の実効帯域よりも速くしないようにすることで、実効帯域が速くなりすぎて、受け取れなくなり、また実効帯域を遅くするというようなことが多く発生することを防ぐことができる。したがって、実行帯域が速すぎるために受け取れなくなるパケットの数を減らすことができる。
【０２０９】
また、本発明においてはＡｃｋ信号とＮａｋ信号のどちらか一方もしくはその両方に２種類のコードを用意し、その２種類のどちらか一方にダミーコードの割合を増やし、見かけ上の実効帯域を遅くする意味を持たせ、もう一方にダミーコードの割合を減らし、見かけ上の実効帯域を速くする意味を持たせ、パケット送信機器は受け取ったＡｃｋ信号もしくはＮａｋ信号によりダミーコードの割合を変化させることにより、ダミーコードの割合を調整することができ、最適な実効帯域で通信が行えるようになる。
【０２１０】
また、データパケットを正常に受け取った後に、ダミーコードを減らす意味のＡｃｋ信号もしくはＮａｋ信号を返すと通信路の見かけ上の実効帯域がバスの実効帯域よりも速くなるものと予測される場合には、ダミーコードを増やす意味のＡｃｋ信号もしくはＮａｋ信号を出力する。このようにすることで、通信路の見かけ上の実効帯域がバスの実効タイミングよりも速くなりすぎることを防ぎ、通信路の見かけ上の実効帯域が速すぎるためにデータが受け取れなくなるパケットの数を減らすことができる。
【０２１１】
また、本発明においては、Ａｃｋ信号とＮａｋ信号のどちらか一方もしくはその両方に３種類のコードを用意し、そのひとつにダミーコードの割合を増やし、見かけ上の実効帯域を遅くする意味を持たせ、ひとつにダミーコードの割合を減らし、見かけ上の実効帯域を速くする意味を持たせ、もうひとつにダミーコードの割合を変化させない意味を持たせ、パケット受信器は実際に受け取ったパケットの見かけ上の実効帯域が、自機器のバスの実効帯域よりも速い時にはダミーコードの割合を増やす意味を持つＡｃｋ信号もしくはＮａｋ信号を出力し、実際に受け取ったパケットの見かけ上の実効帯域が、自機器のバスの実効帯域よりも遅い時にはダミーコードの割合を減らす意味を持つＡｃｋ信号もしくはＮａｋ信号を出力し、実際に受け取ったパケットの見かけ上の実効帯域が、自機器のバスの実効帯域とほぼ同じで変化させる必要がない場合にはダミーコードの割合を変化させない意味を持つＡｃｋ信号もしくはＮａｋ信号を出力し、パケット送信器は受け取ったＡｃｋ信号もしくはＮａｋ信号によりダミーコードの割合を変化、もしくは保持することで、ダミーコードの調整することができ、最適な実効帯域で通信が行えるようになる。
【０２１２】
またＮａｋ信号を受けた場合に低下させる見かけ上の実効帯域の量をＡｃｋ信号を受けた場合に上昇させる見かけ上の実行帯域の量より大きくすることにより、見かけ上の通信路の実効帯域がバスの実効帯域より速いためにパケットが受け取れない状況から脱し、バスの実効帯域が通信路の実効帯域よりも速くなって、パケットを受け取れる状態から、見かけ上のバスの実効帯域をあげていくことができるため、ロスするパケットの数を少なくすることができる。
【０２１３】
また、本発明においては、ダミーコードを入れることにより低下する通信路の見かけ上の実効帯域を、自機器のバスの実効帯域よりも遅くなるようにダミーコードの割合を設定することにより、送信機側で通信コントローラにおいてバスからのデータが間に合わず、データを送れなくなるということを防ぐことができる。
【０２１４】
また、本発明においては、始めに自機器のバスの実効帯域に合わせてダミーコードの割合を調整して、見かけ上の実効帯域を設定して、パケットを送信する。パケットを受け取った側はこのダミーコードの割合を計測し、その割合が自機器のバスの実効帯域から計算されるダミーコードの割合よりも多い場合には、自機器から送信するパケットに挿入するダミーコードの割合を受け取ったパケットに入っているダミーコードの割合に合わせる。相手機器から送られてくるパケットに含まれているダミーコードの割合による見かけ上の実効帯域はそのまま、相手機器のバスの実効帯域として考えられるから、相手機器から来たパケットに入っているダミーコードの割合に合わせることで、見かけ上の通信路の実効帯域を最適に合わせることが可能となる。
【０２１５】
また、本発明においては、連続したいくつかのパケットを送信して、その連続したパケット列全てに対して、全て正常に受けたときに１つのＡｃｋ信号を返し、１つでも正常に受け取ることができなかった場合に１つのＮａｋ信号を返すような通信を行う通信方法において、ダミーデータの割合を取り決めるまでは、連続したパケットのやり取りを禁止して通信を行い、割合の取り決めが終了した後は、連続したパケットのやり取りを許可する。このような通信は、ＩｒＤＡなどのようなパケットを受信してから送信するまでにある一定時間待つ必要があるような通信システムや、長距離ＩＰ通信の様に、パケットが到着するまでに時間がかかるシステムにおいて、Ａｃｋ信号やＮａｋ信号が返るまでに空白の時間が入ってしまうようなシステムにおいて、実効帯域を上げるために使用される。上記の構成により、見かけ上の実効帯域が決まっていないときに大量のデータパケットの欠損が発生することを防ぐことができる。
【０２１６】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【０２１７】
例えば、上記実施形態では、通信機器１１・１２の内部バス１４・１８の実効帯域と、通信機器１１・１２間の通信路１６の実効帯域とに関して説明したが、内部バス１４・１８の実効帯域を、通信機器１１・１２と別の通信機器との間の別の通信路の実効帯域に変えても、本願発明を適用することができる。
【０２１８】
また、通信機器１１・１２の各ブロックは、ハードウェアロジックによって構成してもよいし、次のようにＣＰＵを用いてソフトウェアによって実現してもよい。
【０２１９】
すなわち、通信機器１１・１２は、各機能を実現する制御プログラムの命令を実行するＣＰＵ、上記プログラムを格納したＲＯＭ、上記プログラムを展開するＲＡＭ、上記プログラムおよび各種データを格納するメモリ等の記憶装置（記録媒体）などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアである携帯電話機１の制御プログラムのプログラムコード（実行形式プログラム、中間コードプログラム、ソースプログラム）をコンピュータで読み取り可能に記録した記録媒体を、上記携帯電話機１に供給し、そのコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
【０２２０】
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フレキシブルディスク／ハードディスク等の磁気ディスクやＣＤ−ＲＯＭ／ＭＯ／ＭＤ／ＤＶＤ／ＣＤ−Ｒ等の光ディスクを含むディスク系、ＩＣカード（メモリカードを含む）／光カード等のカード系、あるいはマスクＲＯＭ／ＥＰＲＯＭ／ＥＥＰＲＯＭ／フラッシュＲＯＭ等の半導体メモリ系などを用いることができる。
【０２２１】
また、通信機器１１・１２を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、ＬＡＮ、ＩＳＤＮ、ＶＡＮ、ＣＡＴＶ通信網、仮想専用網（virtual private network）、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、ＩＥＥＥ１３９４、ＵＳＢ、電力線搬送、ケーブルＴＶ回線、電話線、ＡＤＳＬ回線等の有線でも、ＩｒＤＡやリモコンのような赤外線、Ｂｌｕｅｔｏｏｔｈ（登録商標）、８０２．１１無線、ＨＤＲ、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された搬送波あるいはデータ信号列の形態でも実現され得る。
【産業上の利用可能性】
【０２２２】
本発明は、自装置の内部バスの実効帯域と相手装置の内部バスの実効帯域との何れか遅い方に通信路の実効帯域を合わせることによって、通信システム全体の実効帯域の低下を防止しているので、例えば、多数のノードが結合した通信ネットワークシステムにも適用できるし、データの送受を行う複数のデバイスを備える各種装置にも適用できる。
【図面の簡単な説明】
【０２２３】
【図１】本発明に基づいて送受信されるパケットの構造を示す図であり、同図（ａ）は全二重通信の場合であり、同図（ｂ）は半二重通信の場合であり、同図（ｃ）は同図（ａ）および（ｂ）におけるデータ部の詳細を示している。
【図２】一般的な通信システムの概略構成を示すブロック図である。
【図３】本発明の一実施形態である通信コントローラの概略構成を示すブロック図である。
【図４】上記通信コントローラにおけるステートマシンの概略構成を示すブロック図である。
【図５】ＣＰＵ／バスコントローラから上記通信コントローラにデータを送信する場合の信号のやりとりと、上記通信コントローラが生成するパケットとを示すシーケンスチャートである。
【図６】上記通信コントローラが受信するパケットと、上記通信コントローラからＣＰＵ／バスコントローラにデータを送信する場合の信号のやりとりとを示すシーケンスチャートである。
【図７】同図（ａ）（ｂ）は、異なる２つの通信機器が通信する場合において、各通信機器の状態の遷移を示すタイムチャートである。
【図８】通信機器間でパケットを送信する場合の信号のやりとりを示すシーケンスチャートであり、同図（ａ）はパケットの送信が正常に行われた場合を示し、同図（ｂ）はパケットの送信が正常に行われなかった場合を示し、同図（ｃ）はパケットの送信が正常に行われなかった別の場合を示している。
【図９】通信路における見かけ上の帯域の時間変化を示すグラフであり、本発明の別の実施形態である通信コントローラにおいて、データの送信に対する応答信号に基づいて、ダミーコードの含有率を変化させる一例を示している。
【図１０】通信路における見かけ上の帯域の時間変化を示すグラフであり、上記通信コントローラにおいて上記応答信号に基づいてダミーコードの含有率を変化させる別の例を示している。
【図１１】通信路における見かけ上の帯域の時間変化を示すグラフであり、上記通信コントローラにおいて上記応答信号に基づいてダミーコードの含有率を変化させるさらに別の例を示している。
【図１２】通信路における見かけ上の帯域の時間変化を示すグラフであり、上記通信コントローラにおいて上記応答信号に基づいてダミーコードの含有率を変化させるその他の例を示している。
【図１３】従来の通信システムにおいて、通信機器どうしの間でデータを送受信する場合のデータの流れを示すシーケンスチャートであり、通信機器の内部バスの実効帯域に比べて、通信機器間の通信路の実効帯域が大きい場合を示している。
【図１４】上記通信システムにおいて、通信機器どうしの間でデータを送受信する場合のデータの流れを示すシーケンスチャートであり、通信機器の内部バスの実効帯域に比べて、通信機器間の通信路の実効帯域が小さい場合を示している。
【図１５】内部バスの実効帯域と通信システム全体の実効帯域との関係を示すグラフである。
【図１６】上記通信システムとは別の従来の通信システムの概略構成を示すブロック図である。
【符号の説明】
【０２２４】
１０    通信システム
１１・１２    通信機器（第１の通信装置、第２の通信装置）
１４・１８    内部バス
１５・１７    通信コントローラ（第１の通信装置、第２の通信装置）
１６    通信路
３０    ダミーコード含有率決定部（ダミーコード含有率決定手段）
３１    制御コード生成部（ダミーコード混在手段）
３２    リードイネーブル生成部（ダミーコード混在手段）
３３    選択信号生成部（ダミーコード混在手段）
３５    制御コード取得部（ダミーコード分離手段）
３６    ダミーコード判定部（ダミーコード分離手段）
【図１】
2005295118.tif 000003
【図２】
2005295118.tif 000004
【図３】
2005295118.tif 000005
【図４】
2005295118.tif 000006
【図５】
2005295118.tif 000007
【図６】
2005295118.tif 000008
【図７】
2005295118.tif 000009
【図８】
2005295118.tif 000010
【図９】
2005295118.tif 000011
【図１０】
2005295118.tif 000012
【図１１】
2005295118.tif 000013
【図１２】
2005295118.tif 000014
【図１３】
2005295118.tif 000015
【図１４】
2005295118.tif 000016
【図１５】
2005295118.tif 000017
【図１６】
2005295118.tif 000018