(57)【特許請求の範囲】
【請求項１】
複数のネットワークノードがリング状に形成されて一方向に通信を行うリング型ネットワークを用いた通信システムであって、
前記各ネットワークノードは、
自ネットワークノードが生成したデータを送信データとして送信するデータ送信ブロック、及び、他ネットワークノードから送信された送信データを中継データとして中継するデータ中継ブロックを有するデータ送出部と、
前記他ネットワークノードから送信された送信データを受信データとして受信するデータ受信部と、
前記データ送信ブロックが送信した送信データ、又は、前記データ中継ブロックが中継した中継データのうち、いずれか一方のデータを出力データとして切り替え出力する出力切替部と、
を備え、
前記各ネットワークノードのデータ送出部及び出力切替部のうち少なくとも一方は、オンザフライ方式によるデータの出力中、当該データの異常を検出するエラー検出部を有し、
前記エラー検出部が前記データの異常を検出したときに、当該エラー検出部を有する前記データ送出部又は前記出力切替部は、前記データの出力を途中で打ち切り、打ち切った前記データの最後に、当該データに異常があることを示すエラーデータを付加して出力することを特徴とする通信システム。
【請求項２】
請求項１記載の通信システムにおいて、
前記出力切替部は、前記データ送信ブロックが送信した送信データを前記出力データとして優先的に出力し、
前記データ送信ブロックが送信した送信データが前記リング型ネットワークを一周して前記データ送信ブロックに戻ってくるまで、当該データ送信ブロックは、次の送信データの送信を行わないことを特徴とする通信システム。
【請求項３】
請求項１又は２記載の通信システムにおいて、
後段の出力切替部又はデータ送出部は、打ち切った前記データを受信し、自己のエラー検出部が前記エラーデータを検出したときに、打ち切った前記データを破棄すると共に、アイドルデータを出力することを特徴とする通信システム。
【請求項４】
請求項１〜３のいずれか１項に記載の通信システムにおいて、
前記エラー検出部は、前記各ネットワークノードのデータ中継ブロックに設けられ、
前記エラー検出部が前記中継データの異常を検出した場合、前記データ中継ブロックは、打ち切った前記中継データ及び前記エラーデータを順に出力した後、次の中継データが入力されるまで、他のアイドルデータを出力することを特徴とする通信システム。
【請求項５】
複数のネットワークノードがリング状に形成されて一方向に通信を行うリング型ネットワークを用いた通信システムであって、
前記各ネットワークノードは、
自ネットワークノードが生成したデータを送信データとして送信するデータ送信ブロック、及び、他ネットワークノードから送信された送信データを中継データとして中継するデータ中継ブロックを有するデータ送出部と、
前記他ネットワークノードから送信された送信データを受信データとして受信するデータ受信部と、
前記データ送信ブロックが送信した送信データ、又は、前記データ中継ブロックが中継した中継データのうち、いずれか一方のデータを出力データとして切り替え出力する出力切替部と、
を備え、
前記各ネットワークノードのデータ送信ブロックは、前記自ネットワークノードのＩＤ情報とホップカウントとを前記送信データに埋め込んで送信し、
前記各ネットワークノードのデータ中継ブロックは、前記中継データに含まれる前記他ネットワークノードのホップカウントをインクリメントした後に当該中継データを送信し、
前記各ネットワークノードは、前記データ受信部が前記受信データを受信する毎に、当該受信データに含まれる前記各ネットワークノードのＩＤ情報及びホップカウントを格納するホップカウントレジスタをさらに備え、
前記各ネットワークノードのホップカウントレジスタには、前記各ネットワークノードのＩＤ情報と、前記自ネットワークノードに対する前記各ネットワークノードのホップカウントとの設定値が予め格納され、
前記各ネットワークノードのデータ受信部は、前記受信データを受信する毎に、当該受信データに含まれる前記各ネットワークノードのＩＤ情報及びホップカウントと、前記ホップカウントレジスタに格納された前記設定値とを比較して、前記リング型ネットワークにおける前記各ネットワークノードの接続ミスの有無を判定することを特徴とする通信システム。
【請求項６】
請求項５記載の通信システムにおいて、
前記各ネットワークノードのデータ送信ブロックは、前記自ネットワークノードのＩＤ情報とホップカウントとを埋め込んだ前記送信データを、一定間隔毎に送信することを特徴とする通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のネットワークノードがリング状に形成されて一方向に通信を行うリング型ネットワークを用いた通信システムに関する。
【背景技術】
【０００２】
特許文献１には、トークンリング型のループ伝送路に複数のコンピュータが接続されている場合に、ループ伝送路を巡回しているフリートークンを獲得したコンピュータが、ループ伝送路を介して特定のコンピュータに伝送データ及びビジートークンを伝送することが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−３２６６６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述のように、従来のトークンパッシング方式による通信では、送信権であるフリートークンをループ伝送路（リング型ネットワーク）に巡回させるので、フリートークンを獲得したコンピュータ（ネットワークノード）しか伝送データを伝送することができない。
【０００５】
一方、イーサネット（登録商標）等では、どのネットワークノードも自由にデータを送信することが可能である。この場合、データ衝突の可能性があるため、衝突回避の方法として、例えば、送信待ち時間をランダムに設定することが考えられる。しかしながら、送信待ち時間をランダムに設定すると、ロボットの体内通信のような低レイテンシが要求される通信システムでは、適用が困難である。
【０００６】
そこで、本発明は、データ衝突を発生させることなく、リング型ネットワークの全てのネットワークノードが同時にデータ通信を行うことを可能にすることで、低レイテンシのデータ通信を実現すると共に、ネットワーク効率を向上させることができる通信システムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、複数のネットワークノードがリング状に形成されて一方向に通信を行うリング型ネットワークを用いた通信システムに関するものであり、上記の目的を達成するため、前記各ネットワークノードは、データ送出部、データ受信部及び出力切替部を備える。
【０００８】
この場合、前記データ送出部は、自ネットワークノードが生成したデータを送信データとして送信するデータ送信ブロック、及び、他ネットワークノードから送信された送信データを中継データとして中継するデータ中継ブロックを有する。前記データ受信部は、前記他ネットワークノードから送信された送信データを受信データとして受信する。前記出力切替部は、前記データ送信ブロックが送信した送信データ、又は、前記データ中継ブロックが中継した中継データのうち、いずれか一方のデータを出力データとして切り替え出力する。
【０００９】
通常、リング型のネットワークトポロジーである前記リング型ネットワークにおいて、前記各ネットワークノードは、送信ラインと受信ラインとに分けて構築されている。従って、前記各ネットワークノードの送信ラインは、データの送信に関して占有権をそれぞれ持っていると考えることができる。
【００１０】
そこで、本発明では、前記リング型ネットワークにおける新たなプロトコルとして、前記出力切替部において、前記送信データ又は前記中継データのうち、いずれか一方のデータを前記出力データとして、切り替えて出力する。このような新たなプロトコルを構築したことにより、全てのネットワークノードでは、前記送信データと前記中継データとを衝突させることなく、前記出力データの送信を同時に行うことが可能となる。従って、本発明は、低レイテンシ且つネットワーク効率が向上した通信システムを実現することができる。この結果、本発明では、ファームウェア（Ｆ／Ｗ）及びハードウェア（Ｈ／Ｗ）のデータやログデータ等の大容量データについても、従来と比べて短時間で転送することが可能となる。
【００１１】
また、本発明に係る通信システムは、上記の特徴的な構成を前提として、下記の第１〜第５の特徴をさらに有してもよい。
【００１２】
本発明の第１の特徴として、前記出力切替部は、前記データ送信ブロックが送信した送信データを前記出力データとして優先的に出力する。これにより、前記他ネットワークノードからの送信データである前記中継データと、前記自ネットワークノードの送信データとを衝突させることなく、リアルタイムでデータ通信を行うことが可能となる。この結果、全てのネットワークノードが同時にデータ通信を行っても、データ衝突を発生させることなく、高いネットワーク効率でデータ通信を行うことができる。
【００１３】
また、第１の特徴において、前記データ中継ブロックは、前記データ送信ブロックが送信した送信データを前記出力切替部が優先的に出力する間、前記中継データを一時的に保持する中継データ保持部を有する。これにより、前記送信データの出力完了後に前記中継データを出力することになるので、前記中継データと前記送信データとの衝突を確実に回避して、ネットワーク効率を向上させることができる。
【００１４】
さらに、第１の特徴において、前記データ送信ブロックが送信した送信データが前記リング型ネットワークを一周して前記データ送信ブロックに戻ってくるまで、当該データ送信ブロックは、次の送信データの送信を行わない。これにより、前記中継データの送信時間を確保すると共に、前記中継データの中継時間を最小化することが可能となる。また、当該中継データと前記送信データとの衝突を効果的に回避して、ネットワーク効率の向上を図ることもできる。
【００１５】
さらにまた、第１の特徴において、前記出力切替部は、データの出力待ちを指示する出力待ち信号を前記データ送信ブロック又は前記データ中継ブロックに出力し、前記データ送信ブロック又は前記データ中継ブロックのうち、前記出力待ち信号の入力されていないブロックが、前記出力切替部にデータを送出する。これにより、前記中継データと前記送信データとの衝突を確実に回避することができる。
【００１６】
本発明の第２の特徴として、前記各ネットワークノードのデータ送出部及び出力切替部のうち少なくとも一方は、オンザフライ方式によるデータの出力中、当該データの異常を検出するエラー検出部を有する。この場合、前記エラー検出部が前記データの異常を検出したときに、当該エラー検出部を有する前記データ送出部又は前記出力切替部は、当該データに異常があることを示すエラーデータを前記データに付加して出力する。
【００１７】
空き時間をできる限り削減して、低レイテンシの通信を実現するために、オンザフライ方式でデータを出力する場合に、異常なデータに対しては前記エラーデータを付加して出力する。この結果、後段のブロックは、前記エラーデータを確認することで、入力されたデータが異常なデータであることを容易に把握し、当該異常なデータを早期に破棄することができる。従って、次に送信する正常なデータをできる限り早く送出することができ、ネットワーク効率の低下を最小限に留めることが可能となる。
【００１８】
また、第２の特徴において、前記エラー検出部が前記データの異常を検出した場合、当該エラー検出部を有する前記データ送出部又は前記出力切替部は、前記データの出力を途中で打ち切り、打ち切った前記データの最後に前記エラーデータを付加して出力する。これにより、後段のブロックにおいて、異常なデータを早期に把握して破棄することが可能となり、ネットワーク効率の低下を確実に抑制することができる。
【００１９】
さらに、第２の特徴において、後段の出力切替部又はデータ送出部は、打ち切った前記データを受信し、自己のエラー検出部が前記エラーデータを検出したときに、打ち切った前記データを破棄すると共に、アイドルデータを出力する。これにより、打ち切った前記データが前記リング型ネットワークを巡回し続けることを回避することができる。
【００２０】
さらにまた、第２の特徴において、前記エラー検出部は、前記各ネットワークノードのデータ中継ブロックに設けられ、前記エラー検出部が前記中継データの異常を検出した場合、前記データ中継ブロックは、打ち切った前記中継データ及び前記エラーデータを順に出力した後、次の中継データが入力されるまで、他のアイドルデータを出力する。これにより、後段のブロックでは、入力された中継データのうち、前記エラーデータの直前までのデータが異常なデータであることを容易に把握できる。
【００２１】
本発明の第３の特徴において、前記各ネットワークノードのデータ送信ブロックは、前記受信データが前記自ネットワークノードで生成した送信データであるか否かを判定する送信完了判定部を有する。そして、前記受信データが前記自ネットワークノードで生成した送信データであると前記送信完了判定部が判定した場合、前記データ送信ブロックは、当該送信データの送信を完了させる。
【００２２】
従来は、前記自ネットワークノードから送信先のネットワークノードに送信データを送信し、前記送信データを受け取った前記送信先のネットワークノードからの肯定応答（ＡＣＫ）を前記自ネットワークノードが受け取ることにより、前記送信データの送信が完了していた。この場合、前記送信先のネットワークノードが前記送信データを受信したことを保証することは可能であるが、一方で、レイテンシが増大するという問題があった。
【００２３】
これに対して、第３の特徴では、前記データ送信ブロックが前記送信完了判定部を有することにより、前記自ネットワークノードから送信された送信データが前記リング型ネットワークを一周し、当該自ネットワークノードで前記受信データとして受信されたときに、前記送信データの送信を完了させることができる。これにより、前記送信先のネットワークノードが前記送信データを受信したことまでは保証しないが、前記リング型ネットワークに異常がないことを保証すると共に、低レイテンシのデータ通信が可能となる。
【００２４】
また、第３の特徴において、前記送信データ及び前記受信データは、ヘッダ部、データ部及びトレーラ部を含むパケットデータであり、前記ヘッダ部に、前記自ネットワークノードのＩＤ情報が埋め込まれると共に、前記トレーラ部に送信先のネットワークノードのＩＤ情報が埋め込まれる。この場合、前記送信完了判定部は、前記ヘッダ部に埋め込まれたＩＤ情報が前記自ネットワークノードのＩＤ情報と一致すれば、前記受信データが前記自ネットワークノードで生成した送信データであると判定する。そして、前記データ送信ブロックは、前記送信完了判定部の判定結果を受けて、前記送信データの送信を完了させ、当該送信データを破棄する。
【００２５】
これにより、前記送信データの送信完了を効率よく判定できると共に、低レイテンシのパケット通信を行うことが可能となる。
【００２６】
本発明の第４の特徴において、前記各ネットワークノードは、メモリをさらに備え、前記各ネットワークノードのデータ送信ブロックは、前記自ネットワークノードのＩＤ情報と前記メモリの空き容量情報とを前記送信データに埋め込んで送信する。
【００２７】
これにより、前記送信データを前記中継データ又は前記受信データとして受け取った他ネットワークノードは、送信元のネットワークノード（前記自ネットワークノード）のメモリにどの程度の空き容量が存在するのかを容易に把握することができる。これにより、前記他ネットワークノードは、前記送信元のネットワークノードに対してデータを送信する際、前記空き容量を考慮したデータ量のデータを送信すればよい。この結果、送信先のネットワークノードのメモリに空き容量がないため、折角送信したデータが当該送信先のネットワークノードで破棄されることを回避し、データを確実に送信することが可能となる。
【００２８】
また、前記各ネットワークノードがＩＤ情報と空き容量情報とを前記送信データに埋め込んで送信するため、前記各ネットワークノードは、送信元のネットワークノードに対して空き容量を問い合わせる必要がない。この結果、低レイテンシでデータ通信を行うことができる。
【００２９】
また、第４の特徴において、前記各ネットワークノードは、当該各ネットワークノードのＩＤ情報とメモリの空き容量情報とを格納する空き容量情報レジスタをさらに備える。この場合、前記各ネットワークノードのデータ受信部は、前記受信データを受信する毎に、当該受信データに含まれる前記他ネットワークノードのＩＤ情報及びメモリの空き容量情報を前記空き容量情報レジスタに格納する。これにより、前記受信データを受信する毎に、前記空き容量情報レジスタの内容が更新されるので、前記各ネットワークノードは、各メモリの最新の空き容量を容易に把握することができ、最新の各空き容量を考慮した低レイテンシ且つ効率的なデータ通信が可能となる。
【００３０】
さらに、第４の特徴において、前記送信データ及び前記受信データは、ヘッダ部、データ部及びトレーラ部を含むパケットデータであり、前記各ネットワークノードのデータ送信ブロックは、前記自ネットワークノードのＩＤ情報を前記ヘッダ部に埋め込むと共に、前記空き容量情報を前記トレーラ部に埋め込めばよい。この結果、前記他ネットワークノードに対して、前記自ネットワークノードのメモリの空き容量を、パケット通信により効率よく通知することができる。
【００３１】
本発明の第５の特徴において、前記各ネットワークノードのデータ送信ブロックは、前記自ネットワークノードのＩＤ情報とホップカウントとを前記送信データに埋め込んで送信する。また、前記各ネットワークノードのデータ中継ブロックは、前記中継データに含まれる前記他ネットワークノードのホップカウントをインクリメントした後に当該中継データを送信する。
【００３２】
これにより、前記各ネットワークノードは、前記受信データに含まれるＩＤ情報及びホップカウントや、前記中継データに含まれるＩＤ情報及びホップカウントから、前記受信データ及び前記中継データの送信元のネットワークノードが、前記自ネットワークノードに対して、どのような位置関係にあるのか、さらには、前記リング型ネットワークにおける前記送信元のネットワークノードの接続状態を容易に把握することができる。
【００３３】
また、第５の特徴において、前記各ネットワークノードは、前記データ受信部が前記受信データを受信する毎に、当該受信データに含まれる前記各ネットワークノードのＩＤ情報及びホップカウントを格納するホップカウントレジスタをさらに備える。これにより、前記受信データを受信する毎に、前記ホップカウントレジスタの内容が更新されるので、前記各ネットワークノードは、前記自ネットワークノードに対する前記他ネットワークノードの最新の位置関係や、前記リング型ネットワークにおける前記他ネットワークノードの最新の接続状態を容易に把握することができる。
【００３４】
さらに、第５の特徴において、前記各ネットワークノードのホップカウントレジスタには、前記各ネットワークノードのＩＤ情報と、前記自ネットワークノードに対する前記各ネットワークノードのホップカウントとの設定値が予め格納されていることが好ましい。これにより、前記各ネットワークノードのデータ受信部は、前記受信データを受信する毎に、当該受信データに含まれる前記各ネットワークノードのＩＤ情報及びホップカウントと、前記ホップカウントレジスタに格納された前記設定値とを比較することで、前記リング型ネットワークにおける前記各ネットワークノードの接続ミスの有無を判定することが可能となる。
【００３５】
さらにまた、第５の特徴では、前記各ネットワークノードのデータ受信部は、前記データ送信ブロックが前記自ネットワークノードのＩＤ情報及びホップカウントを埋め込んで前記送信データを送信してから一定時間経過しても、当該送信データが前記受信データとして受信されない場合には、前記リング型ネットワークに故障が発生したと判定することが可能となる。
【００３６】
また、第５の特徴において、前記各ネットワークノードのデータ送信ブロックは、前記自ネットワークノードのＩＤ情報とホップカウントとを埋め込んだ前記送信データを、一定間隔毎に送信することが好ましい。これにより、あるネットワークノードからのホップカウントが一定期間更新されなければ、当該ネットワークノードが故障しているか、又は、前記リング型ネットワークに何らかの故障が発生しているものと容易に判定することができる。
【００３７】
さらに、第５の特徴において、前記送信データ、前記中継データ及び前記受信データは、ヘッダ部、データ部及びトレーラ部を含むパケットデータであり、前記自ネットワークノードのＩＤ情報及びホップカウントは、前記ヘッダ部に埋め込まれることが好ましい。これにより、前記自ネットワークノードのＩＤ情報及びホップカウントを前記他ネットワークノードに確実に通知することが可能となる。
【発明の効果】
【００３８】
本発明によれば、リング型ネットワークにおける新たなプロトコルとして、出力切替部において、送信データ又は中継データのうち、いずれか一方のデータを出力データとして、切り替えて出力する。このような新たなプロトコルを構築したことにより、全てのネットワークノードでは、前記送信データと前記中継データとを衝突させることなく、前記出力データの送信を同時に行うことが可能となる。従って、本発明は、低レイテンシ且つネットワーク効率が向上した通信システムを実現することができる。この結果、本発明では、Ｆ／Ｗ及びＨ／Ｗのデータやログデータ等の大容量データについても、従来と比べて短時間で転送することが可能となる。
【図面の簡単な説明】
【００３９】
【図１】本実施形態に係る通信システムの構成図である。
【図２】図１のノードのブロック図である。
【図３】図２のデータ中継ブロックのブロック図である。
【図４】図２のデータ送信ブロックのブロック図である。
【図５】図２のデータ受信ブロックのブロック図である。
【図６】図２の出力切替部のブロック図である。
【図７】パケットのデータ構造の説明図である。
【図８】本実施形態の第１の特徴的機能の説明図である。
【図９】本実施形態の第２の特徴的機能の説明図である。
【図１０】図１０Ａは、従来の送信完了判定の説明図であり、図１０Ｂは、本実施形態の第３の特徴的機能による送信完了判定の説明図である。
【図１１】図１１Ａは、本実施形態の第４の特徴的機能の説明図であり、図１１Ｂは、空き容量情報レジスタの構成図である。
【図１２】図１２Ａは、本実施形態の第５の特徴的機能の正常時における説明図であり、図１２Ｂは、正常時におけるホップカウントレジスタの構成図である。
【図１３】図１３Ａは、本実施形態の第５の特徴的機能の接続ミス時における説明図であり、図１３Ｂは、接続ミス時におけるホップカウントレジスタの構成図である。
【図１４】図１４Ａは、本実施形態の第５の特徴的機能の故障時における説明図であり、図１４Ｂは、故障時におけるホップカウントレジスタの構成図である。
【発明を実施するための形態】
【００４０】
本発明に係る通信システムについて、好適な実施形態を掲げ、添付の図面を参照しながら、以下詳細に説明する。
【００４１】
［通信システム１０の概略構成］
本実施形態に係る通信システム１０は、図１に示すように、リング型のネットワークトポロジーであるリング型ネットワーク１２に、複数のネットワークノード１４ａ〜１４ｄがリング状に接続されて構成される。各ネットワークノード１４ａ〜１４ｄは、リング型ネットワーク１２において、図１の矢印方向に一方向のデータ通信を行う。以下の説明では、リング型ネットワーク１２をネットワーク１２、ネットワークノード１４ａ〜１４ｄをノード１４ａ〜１４ｄ又はノードＡ〜Ｄともいう。また、本明細書において、複数の構成要素をまとめて呼称する場合、例えば、「ノード１４ａ〜１４ｄ」のように波ダッシュを用いて表記するが、図面では、「１４ａ（ｂ−ｄ）」のように、ハイフンを用いて表示する場合がある。
【００４２】
この通信システム１０は、例えば、図示しない移動体であるロボットの体内通信に適用され、当該ロボットに設けられた複数の制御対象の分散制御システムとして機能する。具体的に、各ノード１４ａ〜１４ｄは、ロボットの主制御ユニット又は複数の副制御ユニットとして機能し、ネットワーク１２を介して、主制御ユニットと複数の副制御ユニットとの間で、制御データ等の各種データの送受信を行う。
【００４３】
主制御ユニットは、制御対象に対する制御を指示するための制御データを送信する。副制御ユニットは、受信した制御データに基づき、制御対象であるモータやデバイスを駆動制御することにより、ロボットの頭部や各関節部等を動作させる。なお、ロボットの構成、及び、当該ロボットの分散制御システムは公知であるため（例えば、特開２０１３−１０１６５号公報参照）、その詳細な説明は省略する。
【００４４】
各ノード１４ａ〜１４ｄは、当該ノード１４ａ〜１４ｄ内の各部を制御するＣＰＵ１６ａ〜１６ｄと、ネットワーク１２を介して他のノード１４ａ〜１４ｄとの間でデータ通信を行うネットワークコントローラ１８ａ〜１８ｄとを備える。ＣＰＵ１６ａ〜１６ｄは、ロボットの主制御ユニット及び副制御ユニット内を制御するＥＣＵに対応する。ネットワークコントローラ１８ａ〜１８ｄは、主制御ユニット及び副制御ユニットの通信部に対応する。
【００４５】
［各ノード１４ａ〜１４ｄの概略構成］
図２は、各ノード１４ａ〜１４ｄ内部の概略構成を図示したブロック図である。図２では、各ノード１４ａ〜１４ｄにおいて、通信機能を担うネットワークコントローラ１８ａ〜１８ｄの構成を具体的に図示して説明する。また、各ノード１４ａ〜１４ｄは、略同じ構成である。なお、図２以降において、太い矢印線と細い矢印線とが図示されている場合、太い矢印線は、データの流れを示し、細い矢印線は、制御信号の流れを示す。
【００４６】
各ノード１４ａ〜１４ｄのネットワークコントローラ１８ａ〜１８ｄは、それぞれ、データ中継ブロック２０ａ〜２０ｄ、データ送信ブロック２２ａ〜２２ｄ、データ受信部としてのデータ受信ブロック２４ａ〜２４ｄ、出力切替部２６ａ〜２６ｄ、及び、メモリとしてのバッファ２８ａ〜２８ｄを有する。
【００４７】
図２において、ＣＰＵ１６ａ〜１６ｄは、図示しないメモリに格納されたプログラムである送信ソフトウェア３０ａ〜３０ｄ及び受信ソフトウェア３２ａ〜３２ｄを読み出して実行することにより、ネットワークコントローラ１８ａ〜１８ｄでの送信データの送信処理及び受信データの受信処理を実行させることができる。また、データ中継ブロック２０ａ〜２０ｄとデータ送信ブロック２２ａ〜２２ｄとによって、データの送出機能を担うデータ送出部３３ａ〜３３ｄが構成される。
【００４８】
ここで、ネットワークコントローラ１８ａ〜１８ｄの各部は、概略下記のように機能する。
【００４９】
データ中継ブロック２０ａ〜２０ｄは、ネットワーク１２における上流側（前段）の他ノードから送信された送信データを中継データとして中継し、出力切替部２６ａ〜２６ｄに出力する。なお、前段の他ノードから送信された送信データは、データ中継ブロック２０ａ〜２０ｄ、データ送信ブロック２２ａ〜２２ｄ及びデータ受信ブロック２４ａ〜２４ｄにそれぞれ受信される。
【００５０】
送信ソフトウェア３０ａ〜３０ｄは、自ノードが送信すべきデータである送信データをバッファ２８ａ〜２８ｄに書き込むと共に、バッファ２８ａ〜２８ｄ内の所定のアドレスに送信データを書き込んだことを示す送信データ情報をデータ送信ブロック２２ａ〜２２ｄに出力する。データ送信ブロック２２ａ〜２２ｄは、入力された送信データ情報に基づき、該当する送信データをバッファ２８ａ〜２８ｄから読み出し、読み出した送信データを出力切替部２６ａ〜２６ｄに出力する。なお、送信データは、例えば、上述したロボットであれば、主制御ユニットから副制御ユニット宛に送信する制御データや、デバイスとしての各種センサの検出結果をいう。
【００５１】
出力切替部２６ａ〜２６ｄは、データの出力待ちを指示する出力待ち信号をデータ中継ブロック２０ａ〜２０ｄ又はデータ送信ブロック２２ａ〜２２ｄに出力する。これにより、データ中継ブロック２０ａ〜２０ｄ又はデータ送信ブロック２２ａ〜２２ｄのうち、出力待ち信号を受け取った一方のブロックは、出力切替部２６ａ〜２６ｄへのデータ出力を停止すると共に、出力待ち信号を受け取っていない他方のブロックは、出力切替部２６ａ〜２６ｄへのデータ出力を実行する。
【００５２】
つまり、出力切替部２６ａ〜２６ｄは、データ中継ブロック２０ａ〜２０ｄ又はデータ送信ブロック２２ａ〜２２ｄに出力待ち信号を出力することにより、データを出力するブロックを切り替える。そのため、出力切替部２６ａ〜２６ｄは、送信データ又は中継データの入力を切り替えることにより、いずれか一方のブロックから入力されたデータを出力データとして、ネットワーク１２の下流側（後段）の他ノードに送信する。
【００５３】
データ受信ブロック２４ａ〜２４ｄは、前段の他ノードから送信された送信データが、自ノード宛のデータである場合、この送信データを受信データとして受信し、当該受信データをバッファ２８ａ〜２８ｄに書き込む。また、データ受信ブロック２４ａ〜２４ｄは、受信データをバッファ２８ａ〜２８ｄ内の所定のアドレスに書き込んだことを示す受信データ情報を受信ソフトウェア３２ａ〜３２ｄに通知する。
【００５４】
受信ソフトウェア３２ａ〜３２ｄは、通知された受信データ情報に基づき、該当する受信データをバッファ２８ａ〜２８ｄから読み出す。これにより、例えば、上述のロボットにおいて、自ノードが副制御ユニットであれば、ＣＰＵ１６ａ〜１６ｄは、受信データである主制御ユニットからの制御データに基づき、制御対象を駆動制御することができる。また、自ノードが主制御ユニットであれば、ＣＰＵ１６ａ〜１６ｄは、受信データである副制御ユニットからのセンサの検出結果に基づき、副制御ユニットに対する新たな制御データを生成することが可能となる。
【００５５】
なお、各ノード１４ａ〜１４ｄにおいて、ネットワークコントローラ１８ａ〜１８ｄでは、空き時間をできる限り削減して、低レイテンシのデータ通信を実現するため、オンザフライ方式により、中継データを流しながら、当該中継データに対して所定の処理を実行する。なお、送信データ及び受信データについても、オンザフライ方式により、データを流しながら、当該データに対して所定の処理を実行してもよい。
【００５６】
次に、データ中継ブロック２０ａ〜２０ｄ、データ送信ブロック２２ａ〜２２ｄ、データ受信ブロック２４ａ〜２４ｄ及び出力切替部２６ａ〜２６ｄの詳細な構成について、図３〜図６を参照しながら説明する。
【００５７】
［データ中継ブロック２０ａ〜２０ｄの構成］
データ中継ブロック２０ａ〜２０ｄは、図３に示すように、パケット判定部（エラー検出部）３４ａ〜３４ｄ、制御部３６ａ〜３６ｄ、データセレクタ３８ａ〜３８ｄ及びデータ保持部（中継データ保持部）４０ａ〜４０ｄを有する。
【００５８】
パケット判定部３４ａ〜３４ｄは、前段の他ノードから受信した送信データであるパケット１００（図７参照）に対して所定の判定処理を実行する。
【００５９】
ここで、パケット１００の構造について、図７を参照しながら説明する。なお、本実施形態において、送信データ、中継データ及び受信データは、いずれも、パケット１００の構造を有する。
【００６０】
パケット１００は、ヘッダ部、データ部、トレーラ部及びＣＲＣ部の順に構成されるパケットデータである。
【００６１】
ヘッダ部は、所定の符号が格納される「符号」、パケット１００の先頭を示す「ＳＯＰ」、中継数であるホップカウントが格納される「ＨＯＰ」、及び、送信元のノード１４ａ〜１４ｄのＩＤ情報が格納される「ＳＩＤ」から構成される。データ部には、制御データやセンサの検出結果等の所定のデータが格納される。トレーラ部は、パケット１００の末尾を示す「ＥＯＰ」、バッファ２８ａ〜２８ｄの空きバッファサイズ（空き容量情報）が格納される「ＦＢＣ」、送信先のノード１４ａ〜１４ｄのＩＤ情報が格納される「ＤＩＤ」、及び、当該パケット１００の優先度を示す「ＰＲＩ」から構成される。ＣＲＣ部には、巡回冗長検査に用いられるＣＲＣ値が格納される。
【００６２】
従って、ネットワーク１２では、パケット１００が送信データ又は中継データとして図１の矢印方向に送信される。
【００６３】
図３に戻り、パケット判定部３４ａ〜３４ｄは、オンザフライ方式により、中継データであるパケット１００がデータ中継ブロック２０ａ〜２０ｄ内を流れている場合に、当該パケット１００を構成するＣＲＣ部に格納されたＣＲＣ値が異常値であるか否かを判定し、その判定結果を制御部３６ａ〜３６ｄに出力する。
【００６４】
また、パケット判定部３４ａ〜３４ｄは、パケット１００の「ＳＩＤ」に格納された送信元のＩＤ情報と、自ノードのＩＤ情報とを比較し、両者が一致すれば、当該パケット１００が、自ノードから送出され、ネットワーク１２を一周して自ノードに戻ってきた送信データであると判定する。パケット判定部３４ａ〜３４ｄは、この判定結果も制御部３６ａ〜３６ｄに出力する。
【００６５】
制御部３６ａ〜３６ｄは、パケット判定部３４ａ〜３４ｄの判定結果を受けて、出力データ選択信号をデータセレクタ３８ａ〜３８ｄに供給することで、当該データセレクタ３８ａ〜３８ｄからデータ保持部４０ａ〜４０ｄへのデータ出力を制御する。
【００６６】
具体的に、パケット判定部３４ａ〜３４ｄの判定結果が、正常なパケット１００であることを示す判定結果、又は、自ノード宛のパケット１００ではないことを示す判定結果である場合、制御部３６ａ〜３６ｄは、当該パケット１００のデータ保持部４０ａ〜４０ｄへの出力を指示する出力データ選択信号をデータセレクタ３８ａ〜３８ｄに供給する。データセレクタ３８ａ〜３８ｄは、当該出力データ選択信号の供給を受けて、パケット１００をデータ保持部４０ａ〜４０ｄに出力する。
【００６７】
また、パケット判定部３４ａ〜３４ｄの判定結果が、異常なパケット１００であることを示す判定結果である場合、制御部３６ａ〜３６ｄは、当該パケット１００が異常データであるときのデータ出力を指示する出力データ選択信号をデータセレクタ３８ａ〜３８ｄに供給する。データセレクタ３８ａ〜３８ｄは、当該出力データ選択信号の供給を受けて、パケット１００の出力処理を途中で打ち切る。次に、データセレクタ３８ａ〜３８ｄは、打ち切ったパケット１００に続けて、当該パケット１００が異常データであることを示すエラー表示データ（エラーデータ）４４ａ〜４４ｄを付加し、データ保持部４０ａ〜４０ｄに出力する。その後、データセレクタ３８ａ〜３８ｄは、打ち切ったパケット１００の後にデータがないことを示すアイドルデータ４２ａ〜４２ｄをデータ保持部４０ａ〜４０ｄに出力する。
【００６８】
つまり、異常なパケット１００に応じた出力データ選択信号が供給された場合、データセレクタ３８ａ〜３８ｄは、出力処理が途中で打ち切られた当該パケット１００、エラー表示データ４４ａ〜４４ｄ及びアイドルデータ４２ａ〜４２ｄの順にデータ保持部４０ａ〜４０ｄに出力する。この場合、他ノードから正常なパケット１００（次のデータ）がデータ中継ブロック２０ａ〜２０ｄに入力され、データ保持部４０ａ〜４０ｄに対する当該正常なパケット１００の出力を指示する出力データ選択信号が制御部３６ａ〜３６ｄからデータセレクタ３８ａ〜３８ｄに供給されるまで、データセレクタ３８ａ〜３８ｄは、アイドルデータ４２ａ〜４２ｄをデータ保持部４０ａ〜４０ｄに出力し続ける。
【００６９】
また、パケット判定部３４ａ〜３４ｄの判定結果が、自ノードから送信されたパケット１００であることを示す判定結果である場合、制御部３６ａ〜３６ｄは、当該パケット１００の破棄を指示する出力データ選択信号をデータセレクタ３８ａ〜３８ｄに供給する。データセレクタ３８ａ〜３８ｄは、当該出力データ選択信号の供給を受けて、当該パケット１００を破棄する。
【００７０】
データ保持部４０ａ〜４０ｄは、ＦＩＦＯ方式のバッファ４６ａ〜４６ｄを有する。従って、データ保持部４０ａ〜４０ｄは、データセレクタ３８ａ〜３８ｄから順次入力されるデータ（パケット１００、エラー表示データ４４ａ〜４４ｄ、アイドルデータ４２ａ〜４２ｄ）を、ＦＩＦＯ方式により、バッファ４６ａ〜４６ｄに一時的に保持した後、中継データとして出力切替部２６ａ〜２６ｄ（図２参照）に出力可能である。
【００７１】
ここで、出力切替部２６ａ〜２６ｄから制御部３６ａ〜３６ｄに出力待ち信号が入力されている場合、制御部３６ａ〜３６ｄは、データ保持部４０ａ〜４０ｄからの中継データの出力を停止させる。これにより、データセレクタ３８ａ〜３８ｄからデータ保持部４０ａ〜４０ｄに出力されたデータは、バッファ４６ａ〜４６ｄに一時的に保持される。
【００７２】
一方、出力切替部２６ａ〜２６ｄからの出力待ち信号の入力がない場合、制御部３６ａ〜３６ｄは、データ保持部４０ａ〜４０ｄを制御し、バッファ４６ａ〜４６ｄに一時的に保持されているデータについて、当該バッファ４６ａ〜４６ｄの先頭位置から中継データとして出力切替部２６ａ〜２６ｄに順次出力させる。
【００７３】
また、データ保持部４０ａ〜４０ｄから出力切替部２６ａ〜２６ｄに出力される中継データがパケット１００である場合、制御部３６ａ〜３６ｄは、データセレクタ３８ａ〜３８ｄからデータ保持部４０ａ〜４０ｄにパケット１００を出力する際、又は、データ保持部４０ａ〜４０ｄのバッファ４６ａ〜４６ｄでパケット１００が一時的に保持される際、パケット１００中の「ＨＯＰ」のホップカウントを＋１だけインクリメントする。
【００７４】
［データ送信ブロック２２ａ〜２２ｄの構成］
データ送信ブロック２２ａ〜２２ｄは、図４に示すように、送信完了判定部５０ａ〜５０ｄ、制御部５２ａ〜５２ｄ、パケット生成部５４ａ〜５４ｄ、データ保持部５６ａ〜５６ｄ、データセレクタ５８ａ〜５８ｄ及び送信データ情報格納バッファ６０ａ〜６０ｄを有する。
【００７５】
送信完了判定部５０ａ〜５０ｄは、前段の他ノードから受信した送信データであるパケット１００中、「ＳＩＤ」に格納されたＩＤ情報と、自ノードのＩＤ情報とを比較することにより、当該パケット１００が、自ノードのデータ送信ブロック２２ａ〜２２ｄから送信され、ネットワーク１２を一周して自ノードに戻ってきた送信データであるか否かを判定する。送信完了判定部５０ａ〜５０ｄは、その判定結果を制御部５２ａ〜５２ｄに出力する。
【００７６】
送信ソフトウェア３０ａ〜３０ｄは、送信データ情報を送信データ情報格納バッファ６０ａ〜６０ｄに書き込む。送信データ情報格納バッファ６０ａ〜６０ｄは、送信データの優先度に応じた複数のバッファ６２ａ〜６２ｄ、６４ａ〜６４ｄ、６６ａ〜６６ｄ、６８ａ〜６８ｄから構成される。ここで、優先度とは、データ送信ブロック２２ａ〜２２ｄから送信データとして送出されるデータの優先度をいい、優先度の高いデータである程、他のデータに優先して送出される。従って、送信ソフトウェア３０ａ〜３０ｄは、バッファ２８ａ〜２８ｄに書き込むデータの優先度を予め設定し、設定した優先度に応じて、所望のバッファ６２ａ〜６２ｄ、６４ａ〜６４ｄ、６６ａ〜６６ｄ、６８ａ〜６８ｄに送信データ情報を書き込む。
【００７７】
制御部５２ａ〜５２ｄは、各バッファ６２ａ〜６２ｄ、６４ａ〜６４ｄ、６６ａ〜６６ｄ、６８ａ〜６８ｄに送信データ情報が格納されているか否かを確認し、格納されている送信データ情報のうち、優先度の高い情報から順に取り出す。次に、制御部５２ａ〜５２ｄは、取り出した送信データ情報に対応するデータがバッファ２８ａ〜２８ｄに書き込まれているか否かを判定し、該当するデータがあれば、当該データを用いたパケット１００の生成を指示するパケット生成指令をパケット生成部５４ａ〜５４ｄに出力する。この場合、制御部５２ａ〜５２ｄは、送信データ情報をパケット生成指令に含めてパケット生成部５４ａ〜５４ｄに出力すればよい。
【００７８】
さらに、送信完了判定部５０ａ〜５０ｄでの判定結果が、他ノードから送信されてきた送信データが、自ノードから送信され、ネットワーク１２を一周して自ノードに戻ってきたパケット１００であるとの判定結果である場合、制御部５２ａ〜５２ｄは、送信データ（次のパケット１００）の出力を許可する出力データ選択信号を、データセレクタ５８ａ〜５８ｄに供給する。
【００７９】
一方、送信完了判定部５０ａ〜５０ｄでの判定結果が、他ノードから送信されてきた送信データが、自ノード以外を送信元とするパケット１００であるとの判定結果である場合、制御部５２ａ〜５２ｄは、次のパケット１００の出力を禁止し、アイドルデータ７２ａ〜７２ｄの出力を指示する出力データ選択信号を、データセレクタ５８ａ〜５８ｄに供給する。
【００８０】
パケット生成部５４ａ〜５４ｄは、制御部５２ａ〜５２ｄからのパケット生成指令に基づき、当該パケット生成指令に応じたデータをバッファ２８ａ〜２８ｄから読み出す。また、パケット生成部５４ａ〜５４ｄは、バッファ２８ａ〜２８ｄの空きバッファサイズも併せて確認する。
【００８１】
そして、パケット生成部５４ａ〜５４ｄは、ホップカウントであるＨＯＰを０に設定し、自ノードのＩＤ情報をＳＩＤに設定し、読み出したデータをデータ部に格納し、空きバッファサイズをＦＢＣに格納し、送信相手先のＩＤ情報をＤＩＤに格納し、当該データの優先度をＰＲＩに格納することにより、図７のパケット１００を生成する。生成したパケット１００は、ヘッダ部から順にデータ保持部５６ａ〜５６ｄに出力される。
【００８２】
データ保持部５６ａ〜５６ｄは、ＦＩＦＯ方式のバッファ７０ａ〜７０ｄを有し、ヘッダ部から順に入力されたパケット１００は、ＦＩＦＯ方式でバッファ７０ａ〜７０ｄに一時的に保持される。出力切替部２６ａ〜２６ｄ（図２参照）からデータ保持部５６ａ〜５６ｄに出力待ち信号が入力されている場合、データ保持部５６ａ〜５６ｄは、バッファ７０ａ〜７０ｄに一時的に保持されたパケット１００の出力を行わない。一方、出力待ち信号の入力がない場合、データ保持部５６ａ〜５６ｄは、バッファ７０ａ〜７０ｄに一時的に保持されているパケット１００を、当該バッファ７０ａ〜７０ｄの先頭位置（ヘッダ部）から順にデータセレクタ５８ａ〜５８ｄに出力させる。
【００８３】
データセレクタ５８ａ〜５８ｄは、パケット１００の出力を指示する出力データ選択信号が制御部５２ａ〜５２ｄから供給されている場合には、データ保持部５６ａ〜５６ｄからのパケット１００を送信データとして出力切替部２６ａ〜２６ｄに出力する。また、データセレクタ５８ａ〜５８ｄは、アイドルデータ７２ａ〜７２ｄの出力を指示する出力データ選択信号が制御部５２ａ〜５２ｄから供給されている場合には、アイドルデータ７２ａ〜７２ｄを出力切替部２６ａ〜２６ｄに出力する。
【００８４】
従って、送信完了判定部５０ａ〜５０ｄにおいて、自ノードから送信されたパケット１００がネットワーク１２を一周して自ノードに戻ってきた場合、データ送信ブロック２２ａ〜２２ｄ内では、当該パケット１００の送信が完了したものと判定し、出力待ち信号の入力がないときに、次のパケット１００をデータセレクタ５８ａ〜５８ｄから出力切替部２６ａ〜２６ｄに出力することができる。
【００８５】
一方、自ノードから送信されたパケット１００の送信が完了していない場合、データ送信ブロック２２ａ〜２２ｄ内では、次のパケット１００の出力切替部２６ａ〜２６ｄへの送出を禁止し、出力待ち信号の入力がないときに、アイドルデータ７２ａ〜７２ｄをデータセレクタ５８ａ〜５８ｄから出力切替部２６ａ〜２６ｄに出力する。
【００８６】
［データ受信ブロック２４ａ〜２４ｄの構成］
データ受信ブロック２４ａ〜２４ｄは、図５に示すように、受信判定部７４ａ〜７４ｄ、制御部７６ａ〜７６ｄ、データ書き込み部７８ａ〜７８ｄ及び受信データ情報格納バッファ８０ａ〜８０ｄを有する。
【００８７】
受信判定部７４ａ〜７４ｄは、前段の他ノードから送信されてきた送信データのパケット１００中、ＤＩＤに格納されている送信先のＩＤ情報が自ノードのＩＤ情報と一致するか否か、すなわち、自ノード宛のパケット１００であるか否かを判定し、その判定結果を制御部７６ａ〜７６ｄ及びデータ書き込み部７８ａ〜７８ｄに出力する。
【００８８】
制御部７６ａ〜７６ｄは、自ノード宛のパケット１００であることを示す判定結果の場合、当該パケット１００を受信データとして受信すべきことを決定する。次に、制御部７６ａ〜７６ｄは、バッファ２８ａ〜２８ｄ内において、当該パケット１００を書き込み可能な空きバッファ領域を取得する。そして、制御部７６ａ〜７６ｄは、取得した空きバッファ領域のアドレスに対するパケット１００の書き込みを指示するバッファ書き込み先指令をデータ書き込み部７８ａ〜７８ｄに出力すると共に、書き込み先のアドレスを含む当該パケット１００に関する受信データ情報を受信データ情報格納バッファ８０ａ〜８０ｄに書き込む。
【００８９】
データ書き込み部７８ａ〜７８ｄは、自ノード宛のパケット１００であることを示す判定結果と、制御部７６ａ〜７６ｄからのバッファ書き込み先指令とに基づき、当該パケット１００を受信データとして、バッファ書き込み先指令で指示されたアドレスに書き込む。
【００９０】
受信データ情報格納バッファ８０ａ〜８０ｄは、受信データの優先度に応じた複数のバッファ８２ａ〜８２ｄ、８４ａ〜８４ｄ、８６ａ〜８６ｄ、８８ａ〜８８ｄから構成される。優先度とは、パケット１００のＰＲＩに格納された当該パケット１００の優先度をいう。従って、パケット１００は、ＰＲＩに格納された優先度に対応するバッファ８２ａ〜８２ｄ、８４ａ〜８４ｄ、８６ａ〜８６ｄ、８８ａ〜８８ｄに格納される。
【００９１】
この結果、受信ソフトウェア３２ａ〜３２ｄは、各バッファ８２ａ〜８２ｄ、８４ａ〜８４ｄ、８６ａ〜８６ｄ、８８ａ〜８８ｄに受信データ情報が格納されているか否かを確認し、格納されている受信データ情報のうち、優先度の高い情報から順に取り出す。次に、受信ソフトウェア３２ａ〜３２ｄは、取り出した受信データ情報に対応する受信データをバッファ２８ａ〜２８ｄから読み出す。
【００９２】
［出力切替部２６ａ〜２６ｄの構成］
出力切替部２６ａ〜２６ｄは、図６に示すように、制御部９０ａ〜９０ｄ及びデータセレクタ９２ａ〜９２ｄを有する。
【００９３】
制御部９０ａ〜９０ｄは、データ中継ブロック２０ａ〜２０ｄ（図２及び図３参照）又はデータ送信ブロック２２ａ〜２２ｄ（図２及び図４参照）に出力待ち信号を供給することにより、出力待ち信号を供給した一方のブロックからのデータの入力を阻止すると共に、出力待ち信号を供給しなかった他方のブロックからのデータの入力を許可する。また、制御部９０ａ〜９０ｄは、出力データ選択信号をデータセレクタ９２ａ〜９２ｄに供給することにより、出力待ち信号を供給しなかった他方のブロックから入力されたデータを、出力データとしてデータセレクタ９２ａ〜９２ｄからネットワーク１２に送出させる。
【００９４】
すなわち、制御部９０ａ〜９０ｄは、中継データ又は送信データの２つの入力データを切り替え、データセレクタ９２ａ〜９２ｄから出力データとしてネットワーク１２に送信する。この場合、制御部９０ａ〜９０ｄは、中継データよりも送信データを優先的にデータセレクタ９２ａ〜９２ｄから送出するように、出力待ち信号及び出力データ選択信号を供給する。また、データセレクタ９２ａ〜９２ｄにおいて、一方のデータの出力中、他方のデータとの衝突が発生しないように、制御部９０ａ〜９０ｄは、当該一方のデータである１つのパケット１００の出力が完了するまで、他方のデータが出力されないように、当該他方のデータを出力するブロックに対して出力待ち信号を供給する。
【００９５】
［本実施形態の５つの特徴的機能］
本実施形態に係る通信システム１０は、概略以上のように構成される。次に、本実施形態の特徴的な機能（第１〜第５の特徴的機能）について、図８〜図１４Ｂを参照しながら説明する。ここでは、必要に応じて、図１〜図７も参照しながら説明する。また、図８〜図１４Ｂでは、説明の便宜上、図１〜図７で説明した構成要素の一部を省略し、簡略化して図示する場合がある。
【００９６】
［第１の特徴的機能］
第１の特徴的機能を説明する前に、従来技術の問題点について説明する。
【００９７】
従来、リング型のネットワークにおいて、複数のノードが同時にデータの送信を行うと、データ衝突が発生する。そのため、従来は、特許文献１の技術のように、送信権（フリートークン）を取得したノードのみがデータの送信を行うようにしている。しかしながら、送信すべきデータのサイズが大きくなる程、送信権を持たないノードを有するネットワークでは、ネットワーク効率が低下するという問題がある。なお、一般的に、イーサネット（登録商標）（ＣＳＭＡ／ＣＤ）では、バックオフアルゴリズムにより、データ衝突が発生する毎に、待ち時間が長くなってしまい、リアルタイムでの通信制御が困難である。
【００９８】
第１の特徴的機能は、上記の問題点を解決するため、中継データと送信データとが同時に出力切替部２６ａ〜２６ｄに入力される可能性がある場合に、これらのデータの衝突を回避するため、出力切替部２６ａ〜２６ｄにおいて、中継データ又は送信データを切り替え、一方のデータを出力データとしてネットワーク１２に送信するものである。
【００９９】
具体的には、図８に示すように、前段の他ノードからパケット１０２ｂが自ノードのデータ中継ブロック２０ａ〜２０ｄに入力され、バッファ４６ａ〜４６ｄに一時的に保持され、一方で、自ノードの送信データであるパケット１０２ｃがデータ送信ブロック２２ａ〜２２ｄのバッファ７０ａ〜７０ｄに一時的に保持されているとする。
【０１００】
図８では、中継データであるＢ０〜Ｂ２のパケット１０２ｂが順にデータ中継ブロック２０ａ〜２０ｄに入力され、ＦＩＦＯ方式のバッファ４６ａ〜４６ｄに順次格納される。一方、送信データであるＣ０〜Ｃ２のパケット１０２ｃは、データ送信ブロック２２ａ〜２２ｄに順に入力され、ＦＩＦＯ方式のバッファ７０ａ〜７０ｄに順次格納される。
【０１０１】
この場合、Ｂ０のパケット１０２ｂが、Ｃ０のパケット１０２ｃよりも時間的に早くバッファ４６ａ〜４６ｄに格納されている。また、Ｂ１のパケット１０２ｂとＣ０のパケット１０２ｃとは略同時刻にバッファ４６ａ〜４６ｄ、７０ａ〜７０ｄにそれぞれ格納される。続けて、Ｂ２のパケット１０２ｂとＣ１のパケット１０２ｃとが略同時刻にバッファ４６ａ〜４６ｄ、７０ａ〜７０ｄにそれぞれ格納され、最後に、Ｃ２のパケット１０２ｃが最も遅い時刻にバッファ７０ａ〜７０ｄに格納される。
【０１０２】
そこで、出力切替部２６ａ〜２６ｄは、基本的には、送信データであるパケット１０２ｃを優先的に出力させるべく、出力待ち信号をデータ中継ブロック２０ａ〜２０ｄ又はデータ送信ブロック２２ａ〜２２ｄに供給する。
【０１０３】
先ず、Ｂ０のパケット１０２ｂが、他のＢ１、Ｂ２のパケット１０２ｂやＣ０〜Ｃ２のパケット１０２ｃよりも時間的に早くバッファ４６ａ〜４６ｄに格納されている。すなわち、Ｂ０のパケット１０２ｂと同時刻にバッファ７０ａ〜７０ｄに格納されている送信データは存在しない。そのため、出力切替部２６ａ〜２６ｄは、送信データを優先的に出力させる必要はなく、Ｂ０のパケット１０２ｂを出力させても、中継データと送信データとの間でデータ衝突が発生しないと判断する。
【０１０４】
そして、出力切替部２６ａ〜２６ｂは、データ送信ブロック２２ａ〜２２ｄに対して出力待ち信号を供給する。これにより、データ送信ブロック２２ａ〜２２ｄは、出力待ち信号の供給に基づき、送信データの出力を停止する。一方、データ中継ブロック２０ａ〜２０ｄは、出力待ち信号が供給されていないので、バッファ４６ａ〜４６ｄの先頭に格納されているＢ０のパケット１０２ｂを取り出し、出力切替部２６ａ〜２６ｄに出力する。この結果、出力切替部２６ａ〜２６ｄは、Ｂ０のパケット１０２ｂをネットワーク１２に送出する。
【０１０５】
次に、Ｂ０のパケット１０２ｂに続くＢ１、Ｂ２のパケット１０２ｂと、Ｃ０、Ｃ１のパケット１０２ｃとが、略同時刻にバッファ４６ａ〜４６ｄ、７０ａ〜７０ｄにそれぞれ格納されている。また、バッファ７０ａ〜７０ｄには、Ｃ０、Ｃ１に続いてＣ２のパケット１０２ｃも格納されている。従って、データ中継ブロック２０ａ〜２０ｄから中継データを出力させると共に、データ送信ブロック２２ａ〜２２ｄから送信データを出力させると、データ衝突が発生する可能性がある。
【０１０６】
そこで、中継データと送信データとの間でのデータ衝突を回避すると共に、送信データを優先的に出力させるため、出力切替部２６ａ〜２６ｄは、データ中継ブロック２０ａ〜２０ｄに出力待ち信号を供給すると共に、データ送信ブロック２２ａ〜２２ｄに対する出力待ち信号の供給を停止する。これにより、データ中継ブロック２０ａ〜２０ｄは、出力待ち信号の供給を受けて、Ｂ１、Ｂ２のパケット１０２ｂの出力を停止する。一方、データ送信ブロック２２ａ〜２２ｄは、出力待ち信号の供給停止により、バッファ７０ａ〜７０ｄからＣ０、Ｃ１、Ｃ２の順にパケット１０２ｃを取り出し、出力切替部２６ａ〜２６ｄに順次出力する。この結果、出力切替部２６ａ〜２６ｄは、Ｂ０のパケット１０２ｂに続いて、Ｃ０〜Ｃ２のパケット１０２ｃをネットワーク１２に送出する。
【０１０７】
Ｃ０〜Ｃ２のパケット１０２ｃの送出後、出力切替部２６ａ〜２６ｄは、データ中継ブロック２０ａ〜２０ｄへの出力待ち信号の供給を停止すると共に、データ送信ブロック２２ａ〜２２ｄに出力待ち信号を供給する。これにより、データ中継ブロック２０ａ〜２０ｄは、出力待ち信号の供給停止により、バッファ４６ａ〜４６ｄからＢ１、Ｂ２の順にパケット１０２ｂを取り出し、出力切替部２６ａ〜２６ｄに順次出力する。一方、データ送信ブロック２２ａ〜２２ｄは、出力待ち信号の供給により、送信データの出力を停止する。この結果、出力切替部２６ａ〜２６ｄは、Ｃ０〜Ｃ２のパケット１０２ｃに続いて、Ｂ１、Ｂ２のパケット１０２ｂをネットワーク１２に送出する。
【０１０８】
従って、図８に示すノード１４ａ〜１４ｄ内での上記の動作により、出力切替部２６ａ〜２６ｄは、データ衝突を発生させることなく、Ｂ０、Ｃ０、Ｃ１、Ｃ２、Ｂ１、Ｂ２の順に送出したパケット１０４をネットワーク１２上で一方向に送信することができる。
【０１０９】
このように、第１の特徴的機能では、中継データと送信データとの切り替えのタイミングを制御すると共に、中継データをデータ保持部４０ａ〜４０ｄのバッファ４６ａ〜４６ｄで一時的に保持するか、又は、送信データをデータ保持部５６ａ〜５６ｄのバッファ７０ａ〜７０ｄで一時的に保持することが可能である。これにより、全てのノード１４ａ〜１４ｄが同時にデータを送信しても、データ衝突を発生させることなく、低レイテンシ且つ高いネットワーク効率のデータ通信が可能となる。
【０１１０】
［第２の特徴的機能］
第２の特徴的機能を説明する前に、従来技術の問題点について説明する。
【０１１１】
従来、ネットワークを介して送信されてきたパケットについて、当該パケットを受信したノードは、終了コード（図７のＥＯＰ）が来ない場合、タイムアウト等の当該パケットの異常を検出したときに、このパケットを破棄したい。
【０１１２】
この場合、低レイテンシを実現するため、オンザフライ方式によりデータを流すときに、前記異常なパケットの一部が後段のブロックに届いていれば、後段のブロックは、当該パケットの異常を早期に検出したので、前記パケットを破棄したい。しかしながら、このパケットが可変長パケットであれば、どこまでが正常なパケットであるのかが分からず、後段のノードは、当該パケットを破棄することができない。
【０１１３】
第２の特徴的機能は、上記の問題を解決するため、オンザフライ方式により中継データを流している場合に、前段のブロックで中継データの異常を検出した後、異常な中継データ、エラー表示データ及びアイドルデータを順に送出し、後段のブロックでエラー表示データを検出して、当該中継データを破棄するものである。すなわち、第２の特徴的機能では、中継データの異常を前段のブロックで検出し、異常を示す検出結果を後段のブロックに伝達することにより、後段のブロックにおいて、異常な中継データを早期に破棄する。
【０１１４】
ここでは、一例として、図９に示すように、前段のブロックがノード１４ｂのデータ中継ブロック２０ｂであり、後段のブロックがノード１４ｃのデータ中継ブロック２０ｃである場合について説明する。
【０１１５】
中継データであるパケット１２０がノード１４ｂに入力された場合、ノード１４ｂのパケット判定部３４ｂは、オンザフライ方式により流れているパケット１２０中のＣＲＣ値をチェックし、異常値（異常データ）であるか否かを判定する。なお、パケット１２０は、図７のパケット１００と同じパケット構造を有しているが、図９では、説明の便宜上、簡略化して図示している。
【０１１６】
ＣＲＣ値が異常データであると判定した場合、パケット判定部３４ｂは、その判定結果を制御部３６ｂ（図３参照）に出力し、制御部３６ｂは、エラー表示データ４４ｂ及びアイドルデータ４２ｂの出力を指示する出力データ選択信号をデータセレクタ３８ｂに供給する。
【０１１７】
データセレクタ３８ｂは、供給された出力データ選択信号に基づき、パケット１２０の出力処理を直ちに打ち切り、打ち切ったパケット１２０に続けて、エラー表示データ４４ｂ及びアイドルデータ４２ｂを順に出力する。この結果、データ中継ブロック２０ｂからは、出力処理が途中で打ち切られたパケット１２０、エラー表示データ４４ｂ及びアイドルデータ４２ｂを含む新たなパケット１２２が出力される。このパケット１２２は、出力切替部２６ｂからネットワーク１２を介して後段のノード１４ｃに送出される。なお、前述のように、パケット１２０の出力が途中で打ち切られるので、新たなパケット１２２中、パケット１２０に相当するデータ長は、パケット１２０のデータ長よりも短くなる。
【０１１８】
ノード１４ｃにパケット１２２が入力された場合、ノード１４ｃのパケット判定部３４ｃは、オンザフライ方式により流れているパケット１２２をチェックする。この結果、エラー表示データ４４ｂを見つけた場合、パケット判定部３４ｃは、当該パケット１２２が異常データであると判定し、その判定結果を制御部３６ｃ（図３参照）に出力する。制御部３６ｃは、パケット１２２の破棄とアイドルデータ４２ｃの出力とを指示する出力データ選択信号をデータセレクタ３８ｃに供給する。
【０１１９】
データセレクタ３８ｃは、供給された出力データ選択信号に基づき、パケット１２２を破棄すると共に、アイドルデータ４２ｃを出力する。この結果、データ中継ブロック２０ｃからは、アイドルデータ４２ｃであるパケット１２６が出力される。このパケット１２６は、出力切替部２６ｃからネットワーク１２を介して後段のノード１４ｄに送出される。これにより、異常データ（パケット１２０、１２２）がネットワーク１２上を巡回することを回避することができる。
【０１２０】
このように、第２の特徴的機能では、オンザフライ方式で中継データを流しているときに、前段のブロックで当該中継データの異常を検出すると、異常であることを示す検出結果（エラー表示データ４４ｂ）を、当該中継データの最後に付加して後段のブロックに伝達するので、後段のブロックでは、エラー表示データ４４ｂに基づき、中継データを早期に破棄することができる。これにより、異常なパケットである中継データがネットワーク１２上に流れ続けてしまうことを回避して、次の正常な中継データをできる限り早くネットワーク１２上に流すことが可能となる。この結果、ネットワーク効率の低下を最小にすることができる。
【０１２１】
なお、上記の説明では、ノード１４ｂでパケット１２０に対する異常データの検出を行い、ノード１４ｃで異常データを含むパケット１２２を破棄する場合について説明した。第２の特徴的機能では、上記の説明に限定されることはなく、少なくとも、ネットワーク１２における前段のブロックでパケット１２０に対する異常データの検出処理を行い、後段のブロックで異常データを含むパケット１２２を破棄できればよい。
【０１２２】
従って、第２の特徴的機能では、１つのノード１４ａ〜１４ｄ内において、前段のデータ中継ブロック２０ａ〜２０ｄのパケット判定部３４ａ〜３４ｄが、パケット１２０に対する異常データの検出処理（判定処理）を行い、後段の出力切替部２６ａ〜２６ｄの制御部９０ａ〜９０ｄが、異常データとしてのパケット１２２を検出し、データセレクタ９２ａ〜９２ｄが当該パケット１２２を破棄することも可能である。
【０１２３】
また、第２の特徴的機能では、上述のように、２つのノード１４ａ〜１４ｄにまたがって、パケット１２０に対する異常データの検出処理と、パケット１２２の検出及び破棄とを行うことができる。これにより、例えば、前段のノード１４ａ〜１４ｄを構成する出力切替部２６ａ〜２６ｄの制御部９０ａ〜９０ｄが、パケット１２０に対する異常データの検出処理を行い、後段のノード１４ａ〜１４ｄを構成するデータ中継ブロック２０ａ〜２０ｄのパケット判定部３４ａ〜３４ｄが、異常データとしてのパケット１２２を検出することも可能である。この場合、当該データ中継ブロック２０ａ〜２０ｄのデータセレクタ３８ａ〜３８ｄがパケット１２２を破棄することになる。
【０１２４】
［第３の特徴的機能］
第３の特徴的機能を説明する前に、従来例について、図１０Ａを参照しながら説明する。図１０Ａの従来例において、本実施形態と同じ構成要素については、同じ参照符号を付けて説明する。
【０１２５】
図１０Ａに示す従来例の通信システム１１０において、ノード１４ａは、送信先のノード１４ｄに向けてパケット１１２を送出する。送出されたパケット１１２は、ネットワーク１２上、ノード１４ｂ、１４ｃを介してノード１４ｄに送信される。ノード１４ｄは、受信したパケット１１２の正当性を確認した後、当該パケット１１２に対する肯定応答（ＡＣＫ）１１４を、ネットワーク１２を介して、送信元のノード１４ａに向けて送出する。ノード１４ａは、ＡＣＫ１１４を受信することにより、送信先のノード１４ｄがパケット１１２を受信したことを把握し、パケット１１２の送信が完了したと判断する。
【０１２６】
しかしながら、従来の通信システム１１０では、送信先のノード１４ｄによるパケット１１２の受信を保証することは可能であるが、一方で、ノード１４ｄがパケット１１２の正当性を確認し、確認が取れればパケット１１２に対するＡＣＫ１１４をノード１４ａに送信するため、レイテンシが増大するという問題があった。
【０１２７】
第３の特徴的機能は、このような問題を解決するため、自ノードから送出した送信データをネットワーク１２で一巡させ、当該送信データが自ノードに戻ってきたときに、送信データの送信を完了させることにより、ネットワーク１２に異常がないことを保証しつつ、低レイテンシのデータ通信を実現するものである。この場合、ネットワーク１２上の他ノードは、自身が送信データを受信するか否かに関わりなく、当該送信データを中継する。従って、自ノードから送出された送信データは、ネットワーク１２に断線等の故障がなければ、ネットワーク１２を一周して自ノードに戻ってくることができる。
【０１２８】
ここでは、一例として、図１０Ｂに示すように、自ノードがノード１４ａであり、ノード１４ａから他ノードであるノード１４ｄに向けて、送信データであるパケット１１６を送出する場合について説明する。
【０１２９】
第３の特徴的機能において、データ送信ブロック２２ａ（図２及び図４参照）は、送信完了判定部５０ａを有している。自ノードであるノード１４ａからノード１４ｄに向けてパケット１１６を送信した場合、当該パケット１１６は、ノード１４ｂ〜１４ｄで中継されながら、ネットワーク１２を一周し、ノード１４ａに戻ってくる。受信したパケット１１６がノード１４ａから送信した送信データであると送信完了判定部５０ａが判定すれば、制御部５２ａは、当該パケット１１６の送信を完了させ、パケット１１６を破棄することができる。
【０１３０】
なお、送信先のノード１４ｄでは、データ中継ブロック２０ｄ及び出力切替部２６ｄ（図２参照）がパケット１１６を中継データとして中継すると共に、データ受信ブロック２４ｄがパケット１１６を受信データとして受信する。
【０１３１】
具体的に、パケット１１６は、図７のパケット１００と同様のパケット構造を有する。この場合、ノード１４ａのパケット生成部５４ａ（図４参照）は、ヘッダ部のＳＩＤにノード１４ａのＩＤ情報を埋め込むと共に、トレーラ部のＤＩＤに送信先のノード１４ｄのＩＤ情報を埋め込むことによりパケット１１６を生成する。これにより、ノード１４ａがパケット１１６を送信すれば、送信完了判定部５０ａは、ネットワーク１２を一周して受信されたパケット１１６中、ＳＩＤに埋め込まれたＩＤ情報と、ノード１４ａのＩＤ情報とが一致すれば、ネットワーク１２に断線等の故障が発生しておらず、パケット１１６の送信が完了したことを容易に判定することができる。
【０１３２】
上記の説明では、自ノードがノード１４ａであり、送信先がノード１４ｄである場合について説明したが、第３の特徴的機能では、自ノードがノード１４ｂ〜１４ｄである場合にも適用可能であることは勿論である。また、送信先のノード１４ｄがパケット１１６を受信しているか否かの保証は、例えば、送信ソフトウェア３０ａ及び受信ソフトウェア３２ａ側で所定の処理を行うことによって保証すればよい。
【０１３３】
［第４の特徴的機能］
第４の特徴的機能を説明する前に、従来技術の問題点について説明する。
【０１３４】
従来、送信先のノードにデータを送信する場合、下記の問題によって、レイテンシが増加し、データを確実に送信先のノードに送信できなかった。すなわち、送信先のノード内のバッファの状況（空き容量）を問い合わせることなくデータを送信すると、送信先のノードにおいて、バッファにデータを格納しようとしても、データを格納できず、破棄せざるを得ない場合がある。また、送信先のノード内のバッファの状況を問い合わせる場合、送信元のノードと送信先のノードとの間で、問い合わせ状況を確認するためのデータ通信が必要となり、レイテンシが増大する。この結果、リアルタイムでの通信制御が困難となる。
【０１３５】
第４の特徴的機能は、上記の問題点を解決するため、図１１Ａ及び図１１Ｂに示すように、自ノードのバッファ２８ｂ〜２８ｄの空きバッファサイズを含む送信データを、ネットワーク１２を介して他ノードに送信することにより、当該バッファ２８ｂ〜２８ｄで格納可能なデータ量を他ノードに通知するというものである。
【０１３６】
具体的に、図１１Ａにおいて模式的に示すように、ノード１４ｂのバッファ２８ｂの空きバッファサイズが６（６０％の空き容量）、ノード１４ｃのバッファ２８ｃの空きバッファサイズが２（２０％の空き容量）、ノード１４ｄのバッファ２８ｄの空きバッファサイズが８（８０％の空き容量）であったとする。
【０１３７】
各ノード１４ｂ〜１４ｄのデータ送信ブロック２２ｂ〜２２ｄ（図２及び図４参照）を構成するパケット生成部５４ｂ〜５４ｄは、それぞれ、バッファ２８ｂ〜２８ｄの空きバッファサイズを確認し、トレーラ部のＦＢＣに空きバッファサイズを格納したパケット１００（図７参照）を生成する。そして、各ノード１４ｂ〜１４ｄは、それぞれ、ネットワーク１２を介して他ノードにパケット１００を送信する。
【０１３８】
これにより、例えば、ノード１４ａのデータ受信ブロック２４ａ（図２及び図５参照）において、データ書き込み部７８ａは、各ノード１４ｂ〜１４ｄからパケット１００を受信する毎に、当該パケット１００に含まれる空きバッファサイズを、バッファ２８ａ内に設けた空き容量情報レジスタ１３０ａに書き込むことができる。図１１Ｂは、空き容量情報レジスタ１３０ａに格納された各ノード１４ａ〜１４ｄの空きバッファサイズを図示したものである。空き容量情報レジスタ１３０ａでは、送信元のＩＤ情報（ＳＩＤ）に対応付けて空きバッファサイズ（ＦＢＣ）が格納される。
【０１３９】
また、第４の特徴的機能において、各ノード１４ｂ〜１４ｄは、一定間隔毎に、自ノードのＩＤ情報及び空きバッファサイズを含むパケット１００を生成し、ネットワーク１２を介して他ノードに当該パケット１００を送信する。従って、ノード１４ａのデータ書き込み部７８ａは、パケット１００を受信する毎に、当該パケット１００に含まれる送信元のＩＤ情報と空きバッファサイズとを空き容量情報レジスタ１３０ａに書き込む。これにより、空き容量情報レジスタ１３０ａ内の空きバッファサイズを、最新の情報に更新することができる。
【０１４０】
このように、第４の特徴的機能では、各ノード１４ａ〜１４ｄのバッファ２８ａ〜２８ｄの空きバッファサイズが一定間隔毎に通知され、最新の情報に更新されるので、送信先のノードにデータを送信する際、送信先のノード内のバッファの状況（空きバッファサイズ）を問い合わせることなく、当該バッファの状況を把握することができる。これにより、低レイテンシでデータを送信先のノードに確実に送信することが可能となる。この結果、送信先のノードにデータを送信する際に、送信先のノードにおける空きバッファサイズが送信すべきデータ量よりも小さい場合には、当該データの送信を後回しにして、当該データ量以上の空きバッファサイズとなったときに送信先のノードにデータを送信するような通信制御も実現可能となる。
【０１４１】
なお、上記の説明では、ノード１４ｂ〜１４ｄのバッファ２８ｂ〜２８ｄの空きバッファサイズを、パケット１００の送信によって他ノードに通知する場合について説明した。第４の特徴的機能では、ノード１４ａのバッファ２８ａの空きバッファサイズをパケット１００の送信によってノード１４ｂ〜１４ｄに通知することも可能である。
【０１４２】
また、上記の説明では、ノード１４ａにおいて、他のノード１４ｂ〜１４ｄからパケット１００を受信する毎に、バッファ２８ａの空き容量情報レジスタ１３０ａの内容が更新される場合について説明した。他のノード１４ｂ〜１４ｄにおいても、バッファ２８ｂ〜２８ｄに空き容量情報レジスタ１３０ｂ〜１３０ｄがそれぞれ設けられている。従って、各ノード１４ｂ〜１４ｄでも、他ノードからパケット１００を受信する毎に、空き容量情報レジスタ１３０ｂ〜１３０ｄに格納された空きバッファサイズを最新の内容に更新することが可能である。
【０１４３】
［第５の特徴的機能］
第５の特徴的機能を説明する前に、従来技術の問題点について説明する。従来、リング型のネットワーク１２では、ネットワーク１２の断線やノード１４ａ〜１４ｄの故障が発生すると、当該ネットワーク１２上での一方向の通信が不可能となる。しかも、ネットワーク１２上、どの箇所で断線等の故障が発生したのかを特定することも困難である。
【０１４４】
第５の特徴的機能は、上記の問題を解決するため、図１２Ａ〜図１４Ｂに示すように、自ノードのＩＤ情報とホップカウントとをパケット１００に埋め込んで送信した場合、各ノード１４ａ〜１４ｄで当該パケット１００を中継する毎に、パケット１００のＨＯＰに格納されたホップカウントが＋１だけインクリメントされ、ネットワーク１２を一周して当該パケット１００が自ノードに戻ってくるようにしている。
【０１４５】
具体的に、ノード１４ａ〜１４ｄのデータ送信ブロック２２ａ〜２２ｄ（図２及び図４参照）を構成するパケット生成部５４ａ〜５４ｄは、それぞれ、自ノードのＩＤ情報をＳＩＤに格納し、且つ、ＨＯＰのホップカウントを０に設定したパケット１００（図７参照）を生成する。そして、各ノード１４ａ〜１４ｄは、ネットワーク１２にパケット１００を送出する。
【０１４６】
これにより、図１２Ａに示すように、例えば、ネットワーク１２が正常時の場合、ノード１４ａから送出されたパケット１００は、ノード１４ｂ〜１４ｄを介して、ネットワーク１２を一周し、ノード１４ａに戻る。この場合、各ノード１４ｂ〜１４ｄのデータ中継ブロック２０ｂ〜２０ｄ（図２及び図３参照）では、制御部３６ｂ〜３６ｄが当該パケット１００のＨＯＰに格納されたホップカウントを＋１だけインクリメントする。すなわち、パケット１００は、各ノード１４ｂ〜１４ｄを中継される毎に、ホップカウントが＋１ずつインクリメントされる。従って、パケット１００がネットワーク１２を一周することによりノード１４ａで受信された場合、当該パケット１００のＨＯＰに格納されたホップカウントは、３（ＨＯＰ＝３）となる。
【０１４７】
同様にして、各ノード１４ｂ〜１４ｄからパケット１００がそれぞれ送出され、ネットワーク１２を一周して戻ってきた場合、図１２Ａの構成では、自ノードに戻ってきたパケット１００のホップカウントは、それぞれ３となる。
【０１４８】
つまり、図１２Ａの正常時の場合、各ノード１４ａ〜１４ｄは、自ノードからパケット１００を送出し、ネットワーク１２を一周させてパケット１００が戻ってきたときに、ホップカウントを確認することで、自ノードから見たときのネットワーク１２の中継数、すなわち、ネットワーク１２に接続されている他ノードの数を把握することができる。
【０１４９】
また、各ノード１４ａ〜１４ｄのデータ中継ブロック２０ａ〜２０ｄは、他ノードから送出されたパケット１００を中継する。その際、当該パケット１００は、データ受信ブロック２４ａ〜２４ｄ（図２及び図５参照）も受信する。従って、データ受信ブロック２４ａ〜２４ｄは、中継データであるパケット１００に格納された送信元のＩＤ情報（ＳＩＤ）と、ホップカウント（ＨＯＰ）とを確認することで、自ノードに対する送信元のノードの位置関係や接続状態を把握することができる。
【０１５０】
そして、データ受信ブロック２４ａ〜２４ｄのデータ書き込み部７８ａ〜７８ｄは、パケット１００を受信する毎に、当該パケット１００のＳＩＤに格納されたＩＤ情報と、ＨＯＰに格納されたホップカウントとをバッファ２８ａ〜２８ｄに設けられたホップカウントレジスタ１３２ａ〜１３２ｄに格納する。
【０１５１】
図１２Ｂは、ノード１４ａのバッファ２８ａに設けられたホップカウントレジスタ１３２ａを図示したものである。この場合、データ書き込み部７８ａは、パケット１００を受信する毎に、当該パケット１００に含まれる送信元のＩＤ情報（ＳＩＤ）とホップカウント（ＨＯＰ）とをホップカウントレジスタ１３２ａに書き込み、最新の情報に更新する。従って、ノード１４ａでは、ホップカウントレジスタ１３２ａを確認することにより、ノード１４ａに対する他のノード１４ｂ〜１４ｄの位置関係や接続状態を容易に把握することができる。
【０１５２】
なお、第５の特徴的機能では、パケット１００に時刻データを埋め込んで送信してもよい。これにより、自ノードからパケット１００を送信してから一定時間経過しても、パケット１００が受信データとして受信されない場合には、ネットワーク１２に故障が発生したものと判定することが可能である。
【０１５３】
次に、ネットワーク１２において、接続順を誤ってノード１４ａ〜１４ｄを接続した場合について、図１３Ａ及び図１３Ｂを参照しながら説明する。この場合、図１２Ａの正常時と同様に、ノード１４ａは、自ノードのＩＤ情報及びホップカウントを含むパケット１００を送信する。この場合、ノード１４ｂ〜１４ｄについて、接続ミスが発生しているときでも、ネットワーク１２自体に断線等の故障がなければ、各ノード１４ｂ〜１４ｄは、パケット１００を中継する毎に、ホップカウントを＋１だけインクリメントし、インクリメント後のパケット１００を送出する。
【０１５４】
同様にして、各ノード１４ｂ〜１４ｄから自ノードで生成したパケット１００をそれぞれネットワーク１２に送出した場合でも、他ノードでは、当該パケット１００を中継する毎に、ホップカウントを＋１だけインクリメントした後に、インクリメント後のパケット１００を送出する。
【０１５５】
図１３Ｂは、図１３Ａの構成において、ノード１４ａのバッファ２８ａに設けられたホップカウントレジスタ１３２ａを図示したものである。この場合、ホップカウントレジスタ１３２ａに、正常時の場合（図１２Ｂ参照）と、図１３Ａのような接続ミス時の場合（図１３Ｂ参照）とに関して、送信元のＩＤ情報とホップカウントとを格納しておけば、両者を比較することにより、接続ミスが発生しているか否か、さらには、正常時と比べてどのような接続ミスが発生しているのかを容易に把握することができる。
【０１５６】
次に、ネットワーク１２に断線等の故障が発生している場合について、図１４Ａ及び図１４Ｂを参照しながら説明する。この場合、図１２Ａの正常時と同様に、ノード１４ａは、自ノードのＩＤ情報及びホップカウントを含むパケット１００を送信する。
【０１５７】
例えば、ネットワーク１２上、ノード１４ａとノード１４ｂとの間が断線している場合、断線箇所から先にパケット１００を送信することができないため、当該パケット１００は、ネットワーク１２を一周することができない。従って、ノード１４ａは、自ノードから送出されたパケット１００を受信することができない。
【０１５８】
一方、各ノード１４ｂ〜１４ｄは、それぞれ、パケット１００を生成し、ノード１４ａに向けて当該パケット１００を送出する。この場合、各パケット１００の送信方向には断線箇所がないため、各パケット１００は、ノード１４ａにそれぞれ入力される。この場合も、各ノード１４ｃ、１４ｄは、パケット１００を中継する毎に、ホップカウントを＋１だけインクリメントした後に、インクリメント後のパケット１００を送出する。
【０１５９】
図１４Ｂは、図１４Ａの構成において、ノード１４ａのバッファ２８ａに設けられたホップカウントレジスタ１３２ａを図示したものである。この場合も、ホップカウントレジスタ１３２ａに、正常時の場合（図１２Ｂ参照）と、図１４Ａのような故障時の場合（図１４Ｂ参照）とに関して、送信元のＩＤ情報とホップカウントとを格納しておけば、両者の結果を比較することにより、故障が発生しているか否か、さらには、正常時と比べてどの箇所に故障が発生しているのかを容易に把握することができる。
【０１６０】
このように、第５の特徴的機能では、ホップカウントを埋め込んだパケット１００をネットワーク１２に一巡させ、ノード１４ａ〜１４ｄで当該パケット１００を中継する毎にホップカウントを＋１だけインクリメントするので、ネットワーク１２に接続されているノード１４ａ〜１４ｄを常に検出することができ、断線等の故障個所の特定が可能となる。また、ソフトウェアハングが発生したノード１４ａ〜１４ｄが存在する場合には、このノード１４ａ〜１４ｄからパケット１００が送信されることはなく、ホップカウントの更新も行われないので、当該ノード１４ａ〜１４ｄが故障していることを検出することが可能である。さらに、故障対象が特定されることで、ネットワーク１２上、縮退運転を行う等、通信システム１０全体でのフェールソフト動作が可能となる。
【０１６１】
なお、図１２Ａ〜図１４Ｂは、一例として、ノード１４ａを自ノードとした場合であったが、ノード１４ｂ〜１４ｄを自ノードとした場合でも、同様に適用可能であることは勿論である。
【０１６２】
［本実施形態の効果］
本実施形態に係る通信システム１０において、データ送出部３３ａ〜３３ｄは、自ノードが生成したデータを送信データとして送信するデータ送信ブロック２２ａ〜２２ｄ、及び、他ノードから送信された送信データを中継データとして中継するデータ中継ブロック２０ａ〜２０ｄを有する。また、データ受信ブロック２４ａ〜２４ｄは、他ノードから送信された送信データを受信データとして受信する。出力切替部２６ａ〜２６ｄは、データ送信ブロック２２ａ〜２２ｄが送信した送信データ、又は、データ中継ブロック２０ａ〜２０ｄが中継した中継データのうち、いずれか一方のデータを出力データとして切り替え出力する。
【０１６３】
通常、リング型のネットワークトポロジーであるネットワーク１２において、各ノード１４ａ〜１４ｄは、送信ラインと受信ラインとに分けて構築されている。従って、各ノード１４ａ〜１４ｄの送信ラインは、データの送信に関して占有権をそれぞれ持っていると考えることができる。
【０１６４】
そこで、本実施形態では、ネットワーク１２における新たなプロトコルとして、出力切替部２６ａ〜２６ｄにおいて、送信データ又は中継データのうち、いずれか一方のデータを出力データとして、切り替えて出力する。このような新たなプロトコルを構築したことにより、全てのノード１４ａ〜１４ｄでは、送信データと中継データとを衝突させることなく、出力データの送信を同時に行うことが可能となる。従って、本実施形態は、低レイテンシ且つネットワーク効率が向上した通信システム１０を実現することができる。この結果、本実施形態では、Ｆ／Ｗ及びＨ／Ｗのデータやログデータ等の大容量データについても、従来と比べて短時間で転送することが可能となる。
【０１６５】
次に、第１〜第５の特徴的機能の効果について説明する。
【０１６６】
［第１の特徴的機能の効果］
出力切替部２６ａ〜２６ｄは、データ送信ブロック２２ａ〜２２ｄが送信した送信データを出力データとして優先的に出力する。これにより、他ノードからの送信データである中継データと、自ノードの送信データとを衝突させることなく、リアルタイムでデータ通信を行うことが可能となる。この結果、全てのノード１４ａ〜１４ｄが同時にデータ通信を行っても、データ衝突を発生させることなく、高いネットワーク効率でデータ通信を行うことができる。
【０１６７】
また、データ中継ブロック２０ａ〜２０ｄは、データ送信ブロック２２ａ〜２２ｄが送信した送信データを出力切替部２６ａ〜２６ｄが優先的に出力する間、中継データを一時的に保持するデータ保持部４０ａ〜４０ｄを有する。これにより、送信データの出力完了後に中継データを出力することになるので、中継データと送信データとの衝突を確実に回避して、ネットワーク効率を向上させることができる。
【０１６８】
さらに、データ送信ブロック２２ａ〜２２ｄが送信した送信データがネットワーク１２を一周してデータ送信ブロック２２ａ〜２２ｄに戻ってくるまで、当該データ送信ブロック２２ａ〜２２ｄは、次の送信データの送信を行わない。これにより、中継データの送信時間を確保すると共に、中継データの中継時間を最小化することが可能となる。また、当該中継データと送信データとの衝突を効果的に回避して、ネットワーク効率の向上を図ることもできる。
【０１６９】
さらにまた、出力切替部２６ａ〜２６ｄは、データの出力待ちを指示する出力待ち信号をデータ送信ブロック２２ａ〜２２ｄ又はデータ中継ブロック２０ａ〜２０ｄに出力し、データ送信ブロック２２ａ〜２２ｄ又はデータ中継ブロック２０ａ〜２０ｄのうち、出力待ち信号の入力されていないブロックが、出力切替部２６ａ〜２６ｄにデータを送出する。これにより、中継データと送信データとの衝突を確実に回避することができる。
【０１７０】
［第２の特徴的機能の効果］
各ノード１４ａ〜１４ｄのデータ送出部３３ａ〜３３ｄ及び出力切替部２６ａ〜２６ｄは、オンザフライ方式によるデータの出力中、当該データの異常を検出可能なエラー検出部（パケット判定部３４ａ〜３４ｄ、制御部９０ａ〜９０ｄ）を有する。この場合、例えば、パケット判定部３４ａ〜３４ｄがデータの異常を検出したときに、データ送出部３３ａ〜３３ｄは、当該データに異常があることを示すエラー表示データ４４ａ〜４４ｄをデータに付加して出力する。
【０１７１】
すなわち、空き時間をできる限り削減して、低レイテンシの通信を実現するために、オンザフライ方式でデータを出力する場合、異常なデータに対してはエラー表示データ４４ａ〜４４ｄを付加して出力する。この結果、後段のブロックは、エラー表示データ４４ａ〜４４ｄを確認することで、入力されたデータが異常なデータであることを容易に把握し、当該異常なデータを早期に破棄することができる。従って、次に送信する正常なデータをできる限り早く送出することができ、ネットワーク効率の低下を最小限に留めることが可能となる。
【０１７２】
また、データの異常を検出した場合、エラー検出部を有するデータ送出部３３ａ〜３３ｄ又は出力切替部２６ａ〜２６ｄは、データの出力を途中で打ち切り、打ち切ったデータの最後にエラー表示データ４４ａ〜４４ｄを付加して出力する。これにより、後段のブロックにおいて、異常なデータを早期に把握して破棄することが可能となり、ネットワーク効率の低下を確実に抑制することができる。
【０１７３】
さらに、後段の出力切替部２６ａ〜２６ｄ又はデータ送出部３３ａ〜３３ｄは、打ち切ったデータを受信し、自己のエラー検出部がエラー表示データ４４ａ〜４４ｄを検出したときに、打ち切ったデータを破棄すると共に、アイドルデータ４２ａ〜４２ｄを出力する。これにより、打ち切ったデータがネットワーク１２を巡回し続けることを回避することができる。
【０１７４】
さらにまた、エラー検出部がデータの異常を検出した場合、当該エラー検出部を有するデータ送出部３３ａ〜３３ｄ又は出力切替部２６ａ〜２６ｄは、打ち切ったデータ及びエラー表示データ４４ａ〜４４ｄを順に出力した後、次のデータが入力されるまで、アイドルデータ４２ａ〜４２ｄを出力する。これにより、後段のブロックでは、入力されたデータのうち、エラー表示データ４４ａ〜４４ｄの直前までのデータが異常なデータであることを容易に把握することができる。
【０１７５】
［第３の特徴的機能の効果］
各ノード１４ａ〜１４ｄのデータ送信ブロック２２ａ〜２２ｄは、受信データが自ノードで生成した送信データであるか否かを判定する送信完了判定部５０ａ〜５０ｄを有する。そして、受信データが自ノードで生成した送信データであると送信完了判定部５０ａ〜５０ｄが判定した場合、データ送信ブロック２２ａ〜２２ｄは、当該送信データの送信を完了させる。
【０１７６】
従来は、自ノードから送信先のノードに送信データを送信し、送信データを受け取った送信先のノードからのＡＣＫ１１４を自ノードが受け取ることにより、送信データの送信が完了していた。この場合、送信先のノードが送信データを受信したことを保証することは可能であるが、一方で、レイテンシが増大するという問題があった。
【０１７７】
これに対して、第３の特徴的機能では、データ送信ブロック２２ａ〜２２ｄが送信完了判定部５０ａ〜５０ｄを有することにより、自ノードから送信された送信データがネットワーク１２を一周し、自ノードで受信データとして受信されたときに、送信データの送信を完了させることができる。これにより、送信先のノードが送信データを受信したことまでは保証しないが、ネットワーク１２に異常がないことを保証すると共に、低レイテンシのデータ通信が可能となる。
【０１７８】
また、送信データ及び受信データは、ヘッダ部、データ部及びトレーラ部を含むパケット１００であり、ヘッダ部に、自ノードのＩＤ情報（ＳＩＤ）が埋め込まれると共に、トレーラ部に送信先のノードのＩＤ情報（ＤＩＤ）が埋め込まれる。この場合、送信完了判定部５０ａ〜５０ｄは、ヘッダ部に埋め込まれたＩＤ情報が自ノードのＩＤ情報と一致すれば、受信データが自ノードで生成した送信データであると判定する。そして、データ送信ブロック２２ａ〜２２ｄは、送信完了判定部５０ａ〜５０ｄの判定結果を受けて、送信データの送信を完了させ、当該送信データを破棄する。
【０１７９】
これにより、送信データの送信完了を効率よく判定できると共に、低レイテンシのパケット通信を行うことが可能となる。
【０１８０】
［第４の特徴的機能の効果］
各ノード１４ａ〜１４ｄのデータ送信ブロック２２ａ〜２２ｄは、自ノードのＩＤ情報とバッファ２８ａ〜２８ｄの空きバッファサイズとを送信データ（パケット１００）に埋め込んで送信する。
【０１８１】
これにより、送信データを中継データ又は受信データとして受け取った他ノードは、送信元のノード（自ノード）のバッファ２８ａ〜２８ｄにどの程度の空きバッファサイズが存在するのかを容易に把握することができる。これにより、他ノードは、送信元のノードに対してデータを送信する際、空きバッファサイズを考慮したデータ量のデータを送信すればよい。この結果、送信先のノードのバッファ２８ａ〜２８ｄに空き容量がないため、折角送信したデータが当該送信先のノードで破棄されることを回避し、データを確実に送信することが可能となる。
【０１８２】
また、各ノード１４ａ〜１４ｄがＩＤ情報と空きバッファサイズとを送信データに埋め込んで送信するため、各ノード１４ａ〜１４ｄは、送信元のノードに対して空きバッファサイズを問い合わせる必要がない。この結果、低レイテンシでデータ通信を行うことができる。
【０１８３】
また、各ノード１４ａ〜１４ｄは、当該各ノード１４ａ〜１４ｄのＩＤ情報とバッファ２８ａ〜２８ｄの空きバッファサイズとを、バッファ２８ａ〜２８ｄに設けた空き容量情報レジスタ１３０ａ〜１３０ｄに格納する。この場合、各ノード１４ａ〜１４ｄのデータ受信ブロック２４ａ〜２４ｄは、受信データを受信する毎に、当該受信データに含まれる他ノードのＩＤ情報及びバッファ２８ａ〜２８ｄの空きバッファサイズを空き容量情報レジスタ１３０ａ〜１３０ｄに格納する。これにより、受信データを受信する毎に、空き容量情報レジスタ１３０ａ〜１３０ｄの内容が更新されるので、各ノード１４ａ〜１４ｄは、各バッファ２８ａ〜２８ｄの最新の空き容量を容易に把握することができ、最新の各空き容量を考慮した低レイテンシ且つ効率的なデータ通信が可能となる。
【０１８４】
さらに、送信データ及び受信データは、ヘッダ部、データ部及びトレーラ部を含むパケット１００であり、各ノード１４ａ〜１４ｄのデータ送信ブロック２２ａ〜２２ｄは、自ノードのＩＤ情報をヘッダ部に埋め込むと共に、空きバッファサイズをトレーラ部に埋め込めばよい。この結果、他ノードに対して、自ノードのバッファ２８ａ〜２８ｄの空きバッファサイズを、パケット通信により効率よく通知することができる。
【０１８５】
［第５の特徴的機能の効果］
各ノード１４ａ〜１４ｄのデータ送信ブロック２２ａ〜２２ｄは、自ノードのＩＤ情報とホップカウントとを送信データに埋め込んで送信する。また、各ノード１４ａ〜１４ｄのデータ中継ブロック２０ａ〜２０ｄは、中継データに含まれる他ノードのホップカウントを＋１だけインクリメントした後に当該中継データを送信する。
【０１８６】
これにより、各ノード１４ａ〜１４ｄは、受信データに含まれるＩＤ情報及びホップカウントや、中継データに含まれるＩＤ情報及びホップカウントから、受信データ及び中継データの送信元のノード１４ａ〜１４ｄが、自ノードに対してどのような位置関係にあるのか、さらには、ネットワーク１２における送信元のノード１４ａ〜１４ｄの接続状態を容易に把握することができる。
【０１８７】
また、各ノード１４ａ〜１４ｄは、データ受信ブロック２４ａ〜２４ｄが受信データを受信する毎に、当該受信データに含まれる各ノード１４ａ〜１４ｄのＩＤ情報及びホップカウントをバッファ２８ａ〜２８ｄに設けられたホップカウントレジスタ１３２ａ〜１３２ｄに格納する。これにより、受信データを受信する毎に、ホップカウントレジスタ１３２ａ〜１３２ｄの内容が更新されるので、各ノード１４ａ〜１４ｄは、自ノードに対する他ノードの最新の位置関係や、ネットワーク１２における他ノードの最新の接続状態を容易に把握することができる。
【０１８８】
さらに、各ホップカウントレジスタ１３２ａ〜１３２ｄには、各ノード１４ａ〜１４ｄのＩＤ情報と、自ノードに対する各ノード１４ａ〜１４ｄのホップカウントとの設定値が予め格納されていることが好ましい。これにより、各ノード１４ａ〜１４ｄのデータ受信ブロック２４ａ〜２４ｄは、受信データを受信する毎に、当該受信データに含まれる各ノード１４ａ〜１４ｄのＩＤ情報及びホップカウントと、ホップカウントレジスタ１３２ａ〜１３２ｄに格納された設定値とを比較することで、ネットワーク１２における各ノード１４ａ〜１４ｄの接続ミスの有無を判定することが可能となる。
【０１８９】
さらにまた、各ノード１４ａ〜１４ｄのデータ受信ブロック２４ａ〜２４ｄは、データ送信ブロック２２ａ〜２２ｄが自ノードのＩＤ情報及びホップカウントを埋め込んで送信データを送信してから一定時間経過しても、当該送信データが受信データとして受信されない場合には、ネットワーク１２に故障が発生したものと判定することも可能となる。
【０１９０】
また、各ノード１４ａ〜１４ｄのデータ送信ブロック２２ａ〜２２ｄは、自ノードのＩＤ情報とホップカウントとを埋め込んだ送信データを、一定間隔毎に送信する。これにより、あるノード１４ａ〜１４ｄからのホップカウントが一定期間更新されなければ、当該ノード１４ａ〜１４ｄが故障しているか、又は、ネットワーク１２に何らかの故障が発生しているものと容易に判定することができる。
【０１９１】
さらに、送信データ、中継データ及び受信データは、ヘッダ部、データ部及びトレーラ部を含むパケット１００であり、自ノードのＩＤ情報及びホップカウントは、ヘッダ部に埋め込まれる。これにより、自ノードのＩＤ情報及びホップカウントを他ノードに確実に通知することが可能となる。
【０１９２】
［ロボットに適用した場合の効果］
上述した本実施形態に係る通信システム１０をロボットに適用した場合、下記の効果が得られる。
【０１９３】
ロボットの場合、スペース上の関係もあり、ケーブルの本数を削減して少線化を図るため、リング型のネットワークによるデータ通信が望ましい。リング型以外のネットワークを構築すると、ケーブルの本数が多くなって、ケーブルを伝搬する信号の劣化等が発生する可能性があるからである。
【０１９４】
そして、ロボットにおいて、頭部や関節部等に設けられたモータを同時に駆動させる場合、主制御ユニットから各副制御ユニットに対して、制御データを速やかに送信する必要がある。また、大容量のデータを、ネットワークを介して送信する場合、ネットワーク効率を低下させることなく、送信する必要がある。すなわち、データ通信のロバスト性を良くして、データ通信の信頼性を高める必要がある。
【０１９５】
そこで、本実施形態に係る通信システム１０をロボットの分散制御システムに適用すれば、前述した第１〜第５の特徴的機能によって、ネットワーク１２でのデータ衝突の発生を回避しつつ、低レイテンシのデータ通信が可能となり、ネットワーク効率が向上する。この結果、ロボット内のデータ通信のロバスト性が良好となり、当該ロボットの各モータを同時に駆動させることが可能となる。また、通信システム１０を適用したロボットにおいても、前述した第１〜第５の特徴的機能による各種の効果が容易に得られる。
【０１９６】
以上、本発明について、実施形態を用いて説明したが、本発明の技術的範囲は、上記の実施形態に記載の範囲には限定されない。すなわち、上記の実施形態に、多様な変更又は改良を加えることが可能であることは、当業者に明らかである。そのような変更又は改良を加えた形態についても、本発明の技術的範囲に含まれ得ることは、特許請求の範囲の記載から明らかである。
【符号の説明】
【０１９７】
１０…通信システム
１２…ネットワーク（リング型ネットワーク）
１４ａ〜１４ｄ…ノード（ネットワークノード）
２０ａ〜２０ｄ…データ中継ブロック    ２２ａ〜２２ｄ…データ送信ブロック
２４ａ〜２４ｄ…データ受信ブロック    ２６ａ〜２６ｄ…出力切替部
２８ａ〜２８ｄ、４６ａ〜４６ｄ、６２ａ〜６２ｄ、６４ａ〜６４ｄ、６６ａ〜６６ｄ、６８ａ〜６８ｄ、７０ａ〜７０ｄ、８２ａ〜８２ｄ、８４ａ〜８４ｄ、８６ａ〜８６ｄ、８８ａ〜８８ｄ…バッファ
３３ａ〜３３ｄ…データ送出部          ３４ａ〜３４ｄ…パケット判定部
３６ａ〜３６ｄ、５２ａ〜５２ｄ、７６ａ〜７６ｄ、９０ａ〜９０ｄ…制御部
３８ａ〜３８ｄ、５８ａ〜５８ｄ、９２ａ〜９２ｄ…データセレクタ
４０ａ〜４０ｄ、５６ａ〜５６ｄ…データ保持部
４２ａ〜４２ｄ、７２ａ〜７２ｄ…アイドルデータ
４４ａ〜４４ｄ…エラー表示データ      ５０ａ〜５０ｄ…送信完了判定部
５４ａ〜５４ｄ…パケット生成部
６０ａ〜６０ｄ…送信データ情報格納バッファ
７４ａ〜７４ｄ…受信判定部            ７８ａ〜７８ｄ…データ書き込み部
８０ａ〜８０ｄ…受信データ情報格納バッファ
１００、１０２ｂ、１０２ｃ、１０４、１１６、１２０、１２２、１２６…パケット
１３０ａ〜１３０ｄ…空き容量情報レジスタ
１３２ａ〜１３２ｄ…ホップカウントレジスタ
【図１】
0006471021.tif 000002
【図２】
0006471021.tif 000003
【図３】
0006471021.tif 000004
【図４】
0006471021.tif 000005
【図５】
0006471021.tif 000006
【図６】
0006471021.tif 000007
【図７】
0006471021.tif 000008
【図８】
0006471021.tif 000009
【図９】
0006471021.tif 000010
【図１０】
0006471021.tif 000011
【図１１】
0006471021.tif 000012
【図１２】
0006471021.tif 000013
【図１３】
0006471021.tif 000014
【図１４】
0006471021.tif 000015