(57)【特許請求の範囲】
【請求項１】
複数のノードがリング型のネットワークを介して通信可能に接続された通信システムであって、
少なくとも２つ以上の前記ノードが、
ソフトウェアを用いた演算処理を行い、他のノードに対して送信すべき通常送信データ及び割込送信データを含む送信データを生成する送信ソフトウェア部と、
前記送信ソフトウェア部が生成した前記送信データに少なくともヘッダ及びトレーラを付加してなる通常送信パケット及び割込送信パケットを含む送信パケットを、他のノードへ送出するパケット送出部と、
他のノードから送信された通常入力パケット及び割込入力パケットを含む入力パケットを分配するパケット分配部と、
他のノードから送信された、送信先が自ノード以外である前記入力パケットを、中継すべく送出するパケット中継部と、
前記割込送信パケット及び前記割込入力パケットを含む割込パケット、及び、前記通常送信パケット及び前記通常入力パケットを含む通常パケットを、前記割込パケットが前記通常パケットに優先されるように出力パケットとして出力する出力切替部と、
他のノードから送信された、送信先が自ノードである前記入力パケットを受信するパケット受信部と、
前記パケット受信部が受信した前記通常入力パケットに基づいてソフトウェアを用いた演算処理を行い、制御対象を制御する受信ソフトウェア部と、
前記パケット受信部が受信した前記割込入力パケットに基づいて、前記受信ソフトウェア部を介さずに直接制御されるハードウェアとを備え、
前記通常パケットはヘッダとデータ部とトレーラとを含み、当該通常パケットのトレーラがパケット優先度を含んでおり、
前記割込パケットはヘッダとトレーラとを含み、且つデータ部を含まず、当該割込パケットのトレーラがパケット優先度の代わりに割込ピン番号を含んでおり、
前記出力切替部は、前記通常パケットを送信している最中に前記割込パケットを受け取った場合、受け取った前記割込パケットを送信中の前記通常パケットの前記ヘッダと前記トレーラとの間にそのままのかたちで埋め込んで送信し、
前記パケット分配部は、他のノードから送信された前記通常入力パケットの中に前記割込入力パケットが割り込んでいる場合、当該割込入力パケットを抜き出して分配することを特徴とするリング型ネットワークを用いた通信システム。
【請求項２】
前記出力切替部は、他のノードから送信され、前記パケット中継部から受け取った前記通常入力パケットを送信している最中に、前記送信ソフトウェア部が生成した前記割込送信パケットを受け取った場合、受け取った前記割込送信パケットを送信中の前記通常入力パケットの前記ヘッダと前記トレーラとの間に割り込ませて送信することを特徴とする請求項１に記載のリング型ネットワークを用いた通信システム。
【請求項３】
前記出力切替部は、前記送信ソフトウェア部が生成した前記通常送信パケットを送信している最中に、他のノードから送信された前記割込入力パケットを前記パケット中継部から受け取った場合、受け取った前記割込入力パケットを送信中の前記通常送信パケットの前記ヘッダと前記トレーラとの間に割り込ませて送信することを特徴とする請求項１又は請求項２に記載のリング型ネットワークを用いた通信システム。
【請求項４】
前記出力切替部は、他のノードから送信され、前記パケット中継部から受け取った前記通常入力パケットを送信している最中に、他のノードから送信された前記割込入力パケットを前記パケット中継部から受け取った場合、受け取った前記割込入力パケットを送信中の前記通常入力パケットの前記ヘッダと前記トレーラとの間に割り込ませて送信することを特徴とする請求項１〜請求項３のいずれかに記載のリング型ネットワークを用いた通信システム。
【請求項５】
前記出力切替部は、前記送信ソフトウェア部が生成した前記通常送信パケットを送信している最中に、前記送信ソフトウェア部が生成した前記割込送信パケットを受け取った場合、受け取った前記割込送信パケットを送信中の前記通常送信パケット（Ｐｔｎ）の前記ヘッダと前記トレーラとの間に割り込ませて送信することを特徴とする請求項１〜請求項４のいずれかに記載のリング型ネットワークを用いた通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のノードがリング型のネットワークを介して通信可能に接続された通信システムに関する。
【背景技術】
【０００２】
複数のコンピュータ等の端末（ノード）を通信可能に接続するネットワークのトポロジーには、バス型、スター型、リング型、メッシュ型等がある。バス型のネットワークの例としては、イーサネット（登録商標）がある。イーサネットは、物理的にはスター型構成とされるが、論理的にはバス型構成を採っており、各ノードは自由に信号（データ）を発信することができる。その一方で、イーサネットでは、信号の衝突が発生することがあり、この場合には信号の送達が遅れる（即ち、レイテンシが大きい）。
【０００３】
リング型のネットワークも、イーサネットと同様に物理的にはハブに集線したスター型構成とされることが多い。リング型ネットワークの例としては、トークンリングがある。トークンリングでは、トークンと呼ばれる信号がリングを周回しており（トークンパッシング）、トークンを得たノードのみがデータを送信することができる。つまり、トークンを得ていないノードはデータを送出することができないため、ネットワーク上でデータが衝突することがない。リング上に送出されたデータは、送信先以外のノードによって中継されながら、送信先のノードへ伝送される。
【０００４】
複数のノードがトークンリングを介して接続された通信システムにおいて、ノードの機能を複雑化させずに受信側ノードの負荷変動に対応させるためのフロー制御方式として、送信元ノードは、受信側ノード宛のデータとビジートークンとの組を送出する送出手段と、自己が送出した組を受信した時に、組をそのまま送出する中継手段とを備え、受信側ノードが、組を受信した時に受信余裕がないならば、組をそのまま送出する中継手段と、組を受信した時に受信余裕があるならば、組にあるデータを受信する受信手段と備える構成とした発明が提案されている（特許文献１）。
【０００５】
また、バス型やリング型のネットワークにおいて、データを送信する際に、送信するデータを所定の大きさに分割し、分割したデータの先頭にヘッダを、末尾にトレーラやＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）符号（巡回冗長符号）を付加してデータパケットを生成し、出力するデータパケットに優先度を設定することで、優先度の高いデータパケットから順にネットワークに送出するようにした通信装置が知られている（例えば、特許文献２、３）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−３２６６６３号公報
【特許文献２】特開２０００−１３４２１３号公報
【特許文献３】特開２００２−１７１２６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１記載の発明では、送信元ノードが制御内容を埋め込んだデータを送ったとしても、受信側ノードに受信余裕がない状態が続いた場合には、中継手段がデータをそのまま送出し続けるため、受信側ノードがデータを受信することができない。
【０００８】
これに対し、リング型ネットワークで特許文献２、３に記載の技術を用いる場合には、送信すべきデータが分割されるため、優先度が低いデータパケットを追い越して優先度が高いデータパケットを送信する（割り込ませる）ことが可能になる。しかしながら、優先度が低いデータパケットの送信を既に開始している場合には、この送信中のデータパケットの送信が完了するまで、優先度が高いデータの送信開始を待たなければならない。ここで、優先度が高いデータをより早急に送信させたい場合には、データパケットのデータをより小さく分割することが考えられる。ところが、送信データを小さく分割してデータパケットを生成すると、データパケットの数が増え、その分だけヘッダやトレーラ等のデータ量が大きくなって送信データの伝送効率が悪くなる上、各ノードにおけるデータパケットの振り分け処理負荷も増大する。
【０００９】
本発明は、このような背景に鑑み、送信データの伝送効率を悪化させることなく、優先度が高いデータをノード間で早急に送受信させることができるリング型ネットワークを用いた通信システムを提供することを課題とする。
【００１０】
このような課題を解決するために、本発明は、複数のノード（２）がリング型のネットワーク（３）を介して通信可能に接続された通信システム（１）であって、少なくとも２つ以上の前記ノードが、ソフトウェアを用いた演算処理を行い、他のノードに対して送信すべき通常送信データ（Ｄｔｎ）及び割込送信データ（Ｄｔｉ）を含む送信データ（Ｄｔ）を生成する送信ソフトウェア部（８）と、前記送信ソフトウェア部が生成した前記送信データ（Ｄｔ）に少なくともヘッダ及びトレーラを付加してなる通常送信パケット（Ｐｔｎ）及び割込送信パケット（Ｐｔｉ）を含む送信パケット（Ｐｔ）を、他のノードへ送出するパケット送出部（１８、２０）と、他のノードから送信された通常入力パケット（Ｐｅｎ）及び割込入力パケット（Ｐｅｉ）を含む入力パケット（Ｐｅ）を分配するパケット分配部（１１）と、他のノードから送信された、送信先が自ノード以外である前記入力パケット（Ｐｅ（Ｐｅｎ、Ｐｅｉ））を、中継すべく送出するパケット中継部（１７、１９）と、前記割込送信パケット（Ｐｔｉ）及び前記割込入力パケット（Ｐｅｉ）を含む割込パケット（Ｐｉ（Ｐｔｉ、Ｐｅｉ））、及び、前記通常送信パケット（Ｐｔｎ）及び前記通常入力パケット（Ｐｅｎ）を含む通常パケット（Ｐｎ（Ｐｔｎ、Ｐｅｎ））を、前記割込パケット（Ｐｉ）が前記通常パケット（Ｐｎ）に優先させるように出力パケット（Ｐｏ）として出力する出力切替部（２３）とを備え、前記出力切替部（２３）は、前記通常パケット（Ｐｎ）を送信している最中に前記割込パケット（Ｐｉ）を受け取った場合、受け取った前記割込パケットを送信中の前記通常パケットの前記ヘッダと前記トレーラとの間に割り込ませて送信し、前記パケット分配部（１１）は、他のノードから送信された前記通常入力パケット（Ｐｅｎ）の中に前記割込入力パケット（Ｐｅｉ）が割り込んでいる場合、当該割込入力パケットを抜き出して分配する構成とする。
【００１１】
この構成によれば、出力切替部が、送信中の通常パケットのヘッダとトレーラとの間に割込パケットを割り込ませて送信するため、通常パケットのデータが大きく、その出力に時間がかかる場合であっても、割込パケットが即座に出力される。また、パケット分配部が割り込んでいる割込入力パケットを抜き出して分配するため、通常パケットに割り込んでいる割込入力パケットが適切に処理される。
【００１２】
また、上記の発明において、前記出力切替部（２３）は、他のノードから送信され、前記パケット中継部（１７）から受け取った前記通常入力パケット（Ｐｅｎ）を送信している最中に、前記送信ソフトウェア部（８）が生成した前記割込送信パケット（Ｐｔｉ）を受け取った場合、受け取った前記割込送信パケット（Ｐｔｉ）を送信中の前記通常入力パケット（Ｐｅｎ）の前記ヘッダと前記トレーラとの間に割り込ませて送信する構成とするとよい。
【００１３】
この構成によれば、通常入力パケットのデータが大きく、その出力に時間がかかる場合であっても、割込送信パケットが即座に出力される。
【００１４】
また、上記の発明において、前記出力切替部（２３）は、前記送信ソフトウェア部（８）が生成した前記通常送信パケット（Ｐｔｎ）を送信している最中に、他のノードから送信された前記割込入力パケット（Ｐｅｉ）を前記パケット中継部（１９）から受け取った場合、受け取った前記割込入力パケット（Ｐｅｉ）を送信中の前記通常送信パケット（Ｐｔｎ）の前記ヘッダと前記トレーラとの間に割り込ませて送信する構成とするとよい。
【００１５】
この構成によれば、通常送信パケットのデータが大きく、その出力に時間がかかる場合であっても、割込入力パケットが即座に出力され、レイテンシが小さくなる。
【００１６】
また、上記の発明において、前記出力切替部（２３）は、他のノードから送信され、前記パケット中継部（１７）から受け取った前記通常入力パケット（Ｐｅｎ）を送信している最中に、他のノードから送信された前記割込入力パケット（Ｐｅｉ）を前記パケット中継部（１９）から受け取った場合、受け取った前記割込入力パケット（Ｐｅｉ）を送信中の前記通常入力パケット（Ｐｅｎ）の前記ヘッダと前記トレーラとの間に割り込ませて送信する構成とするとよい。
【００１７】
この構成によれば、通常入力パケットよりも後に出力切替部に入力した割込入力パケットが、先に入力した通常入力パケットを追い越して、或いは先に入力して送信中である通常入力パケットに割り込んで即座に出力される。そのため、レイテンシが小さくなる。
【００１８】
また、上記の発明において、前記出力切替部（２３）は、前記送信ソフトウェア部（８）が生成した前記通常送信パケット（Ｐｔｎ）を送信している最中に、前記送信ソフトウェア部が生成した前記割込送信パケット（Ｐｔｉ）を受け取った場合、受け取った前記割込送信パケット（Ｐｔｉ）を送信中の前記通常送信パケット（Ｐｔｎ）の前記ヘッダと前記トレーラとの間に割り込ませて送信する構成とするとよい。
【００１９】
この構成によれば、通常送信データよりも後に送信ソフトウェア部により生成された割込送信データが、先に生成された通常送信データを追い越して、或いは先に生成された通常送信データに割り込んで即座に出力される。
【００２０】
また、上記の発明において、上記の発明において、少なくとも２つ以上の前記ノードが、他のノードから送信された、送信先が自ノードである前記入力パケット（Ｐｅ（Ｐｅｎ、Ｐｅｉ））を受信するパケット受信部（１３、１５）と、前記パケット受信部（１３）が受信した前記通常入力パケット（Ｐｅｎ）に基づいてソフトウェアを用いた演算処理を行い、制御対象（７）を制御する受信ソフトウェア部（９）と、前記パケット受信部（１５）が受信した前記割込入力パケット（Ｐｅｉ）に基づいて、前記受信ソフトウェア部を介さずに直接制御されるハードウェア（７、７０）とを備える構成とするとよい。
【００２１】
この構成によれば、パケット受信部が受信した通常入力データに基づいてソフトウェアを用いた演算処理を行う受信ソフトウェア部による制御対象の制御を行いつつ、１つのノードが他のノードに割込パケットを送信することで、他のノードのハードウェアを、受信ソフトウェア部を介さずに早急に制御することができる。
【発明の効果】
【００２２】
このように本発明によれば、送信データの伝送効率を悪化させることなく、優先度が高いデータをノード間で早急に送受信可能なリング型ネットワークを用いた通信システムを提供することができる。
【図面の簡単な説明】
【００２３】
【図１】実施形態に係る通信システムの概略構成図
【図２】通常パケットの構成図
【図３】割込パケットの構成図
【図４】図１に示す各ノードの機能ブロック図
【図５】図４に示す通常パケット中継ブロックの機能ブロック図
【図６】図４に示す通常パケット送出ブロックの機能ブロック図
【図７】図４に示す通常パケット受信ブロックの機能ブロック図
【図８】図４に示す通常パケット切替ブロックの機能ブロック図
【図９】図４に示す通常パケット切替ブロックにおける出力切替の説明図
【図１０】図４に示す割込パケット送出ブロックの機能ブロック図
【図１１】図４に示す出力切替ブロックにおける割込パケット埋め込みの説明図
【図１２】割込パケット埋め込みの第１の形態を示す要部ブロック図
【図１３】割込パケット埋め込みの第２の形態を示す要部ブロック図
【図１４】割込パケット埋め込みの第３の形態を示す要部ブロック図
【図１５】割込パケット埋め込みの第４の形態を示す要部ブロック図
【図１６】図４に示すパケット分配器における割込パケット抜き取りの説明図
【図１７】図４に示す割込パケット受信ブロックの機能ブロック図
【図１８】割込指令による処理の説明図
【図１９】通常時におけるデータ処理のフロー図
【図２０】割込時におけるデータ処理のフロー図
【図２１】割込による再起動処理の説明図
【発明を実施するための形態】
【００２４】
本発明に係る通信システム１の実施形態を図１〜図２１を参照して説明する。
【００２５】
図１に示されるように、通信システム１は、複数（図示例では４つ）のノード２（２Ａ、２Ｂ、２Ｃ、２Ｄ）と、これらのノード２をリング状に通信可能に接続するリング型のネットワーク３とにより構成されている。この通信システム１では、各ノード２が、演算処理部をなすＣＰＵ４と、ネットワーク３のリングに沿う一方向にデータＤを送るように構成されたネットワークコントローラ５とを有している。つまり、複数のノード２が、リング状に通信可能に接続され且つリングの一方向に通信を行うリング型のネットワーク３を介して通信可能に接続されている。
【００２６】
なお、リング型のネットワーク３とは論理的な通信構成を意味し、物理的にリング型構成である必要はない。また、通信可能に接続されているとは、通信線を介して物理的に接続されるものの他、無線接続されるものも含む。
【００２７】
複数のノード２は、ＣＰＵ４によるソフトウェアを用いた演算処理を行い、演算処理により出力されたデータＤに基づいて、ハードウェアからなる対応する制御対象７（図４）をそれぞれ制御する制御装置である。ハードウェアとは、電源に電気的に接続された電気装置であり、例えば、電動機や電磁弁、照明器具、電気素子、及びそれらへの供給電力を制御するドライバ等を含む。例えば、通信システム１は、自律的に又は遠隔操作により動作するロボットに搭載され、ノード２がロボットの各部を制御する分散制御システムとして構成される。なおこの場合、電源はロボットに搭載されてもよく、ロボットに搭載されずに電源線を介してロボットに接続されてもよい。
【００２８】
ネットワーク３上を通信されるデータＤには、通常制御に用いられるデータＤ（以下、通常データＤｎと称する）と、通常データＤｎに優先される割込データＤｉとの２種類がある。これらのデータＤ（通常データＤｎ及び割込データＤｉ）は、原則としてパケットＰ（以下、通常データＤｎを含むパケットＰを通常パケットＰｎと称し、割込データＤｉを含むパケットＰを割込パケットＰｉと称する）の単位で伝送される。例外的なパケットＰについては後に詳述する。
【００２９】
図２に示されるように、通常データＤｎを含むパケットＰ、即ち通常パケットＰｎは、先頭から順にヘッダ、データ部（通常データＤｎ）、トレーラ及びＣＲＣを含むフレームにより構成される。ヘッダは、符号、パケット先頭（ＳＯＤＰ）、中継数（ＨＯＰ）及び自ノードＩＤ（ＳＩＤ）により構成される。トレーラは、パケット末尾（ＥＯＤＰ）、空きバッファサイズ（ＦＢＣ）、送信先ノードＩＤ（ＤＩＤ）及びパケット優先度（ＰＲＩ）により構成される。データ部は、大きさ（バイト）に制限がなく、一連の指令に必要なデータＤの全てを含む１塊として構成されてもよく、所定の大きさに制限され、一連の指令に必要なデータＤが所定の大きさよりも大きい場合に複数に分割されたデータＤのうちの１塊とされてもよい。ＣＲＣの位置は任意であり、例えば、トレーラとＣＲＣとが逆の位置にあってもよい。或いは、ＣＲＣがなくてもよい。つまり、通常データＤｎに少なくともヘッダ及びトレーラが付加されることで通常パケットＰｎが構成されている。
【００３０】
一方、割込データＤｉを含むパケットＰ、即ち割込パケットＰｉは、図３に示されるように、ヘッダ、トレーラ及びＣＲＣを含むフレームにより構成される。つまり、本実施形態の割込パケットＰｉは、図２に示されるデータ部を含んでいない。割込パケットＰｉのヘッダは、通常パケットＰｎと同様に、符号、パケット先頭（ＳＯＩＰ）、中継数（ＨＯＰ）及び自ノードＩＤ（ＳＩＤ）により構成される。一方、割込パケットＰｉのトレーラは、パケット末尾（ＥＯＩＰ）、空きバッファサイズ（ＦＢＣ）、送信先ノードＩＤ（ＤＩＤ）及び割込ピン番号（ＩＮＴ）により構成される。上記の通り割込パケットＰｉは通常パケットＰｎに優先されて伝送されるため、割込パケットＰｉのトレーラは、図２に示されるパケット優先度（ＰＲＩ）を含んでおらず、その代わりに割込ピン番号（ＩＮＴ）を含んでいる。つまり、本実施形態では、割込ピン番号（ＩＮＴ）自体が割込データＤｉとなっており、割込データＤｉがトレーラに組み込まれることにより、割込データＤｉに少なくともヘッダ及びトレーラが付加された割込パケットＰｉが構成されている。割込データＤｉのパケットＰにおいても、ＣＲＣの位置は任意であり、或いはＣＲＣがなくてもよい。
【００３１】
他の実施形態では、割込ピン番号（ＩＮＴ）よりも多くの情報を含むデータＤが割込データＤｉとして利用され、割込パケットＰｉが、通常パケットＰｎと同様の構成、即ち割込データＤｉの前にヘッドが付加され、割込データＤｉの後ろにトレーラやＣＲＣが付加された構成とされてもよい。
【００３２】
図４に示されるように、各ノード２は、ハードウェアにより構成される上記のネットワークコントローラ５と、ＣＰＵ４によるソフトウェアを用いた演算処理を行い、他のノード２に対して送信すべきデータＤ（以下、送信データＤｔと称する）や、データＤに付加すべき符号や優先度等のデータ関連情報（以下、データ情報ＤＩと称する）を生成する機能部である送信ソフトウェア部８と、少なくとも他のノード２から送信されたパケットＰに含まれるデータＤに基づいてＣＰＵ４によるソフトウェアを用いた演算処理を行い、制御対象７を制御する機能部である受信ソフトウェア部９とを有している。
【００３３】
送信ソフトウェア部８は、他のノード２に送信すべき送信データＤｔとして、通常制御に用いられる通常送信データＤｔｎと、通常送信データＤｔｎに優先される割込送信データＤｔｉとの２種類の送信データＤｔを生成する。本明細書では、通常送信データＤｔｎ及び割込送信データＤｔｉは、それぞれノード２が送信ソフトウェア部８で生成した未送信の通常データＤｎ及び割込データＤｉを意味しており、ネットワーク３からノード２に入力する通常データＤｎ及び割込データＤｉと区別するためにそれぞれの名称が付与されている。
【００３４】
また、送信ソフトウェア部８は、これらの送信データＤｔ（通常送信データＤｔｎ及び割込送信データＤｔｉ）に付加すべきヘッダやトレーラに含ませるデータ情報ＤＩを生成する。送信データＤｔに少なくともヘッダ及びトレーラが付加されて構成されるパケットＰ（以下、送信パケットＰｔと称する）には、通常送信データＤｔｎにヘッダやトレーラ等が付加された通常送信パケットＰｔｎと、割込送信データＤｔｉにヘッダやトレーラ等が付加された割込送信パケットＰｔｉとの２種類がある。
【００３５】
各ノード２では、ネットワーク３の上流側から送信されたデータＤを含むパケットＰがネットワークコントローラ５に入力される。本明細書では、各ノード２に入力されるデータＤやパケットＰは、ノード２が送信ソフトウェア部８で生成した未送信の送信データＤｔや送信パケットＰｔと区別して、それぞれ入力データＤｅ、入力パケットＰｅと称する。入力データＤｅにも、通常制御に用いられる通常入力データＤｅｎと、通常入力データＤｅｎに優先される割込入力データＤｅｉとの２種類がある。同様に、入力パケットＰｅにも、通常入力データＤｅｎにヘッダやトレーラ等が付加された通常入力パケットＰｅｎと、割込入力データＤｅｉにヘッダやトレーラ等が付加された割込入力パケットＰｅｉとの２種類がある。
【００３６】
ネットワークコントローラ５は、入力データＤｅを含む入力パケットＰｅを後述する各部に分配するパケット分配器１１を有している。パケット分配器１１は、入力パケットＰｅのヘッダに含まれるパケット先頭がＳＯＤＰ（図２参照）である場合に、トレーラに含まれるパケット末尾がＥＯＤＰであるトレーラ及びＣＲＣまでを、原則的に１つの通常入力パケットＰｅｎと認識し、入力パケットＰｅのヘッダに含まれるパケット先頭がＳＯＩＰ（図３参照）である場合に、トレーラに含まれるパケット末尾がＥＯＩＰであるトレーラ及びＣＲＣまでを、原則的に１つの割込入力パケットＰｅｉと認識する。例外については後述する。図４では、パケット分配器１１により分配される通常入力データＤｅｎを含む通常入力パケットＰｅｎを太線で示し、パケット分配器１１により分配される割込入力データＤｅｉを含む割込入力パケットＰｅｉを破線で示している。
【００３７】
パケット分配器１１に入力したパケットＰが原則的な通常入力パケットＰｅｎである場合、パケット分配器１１は、通常入力パケットＰｅｎを通常パケット送出部１２及び通常パケット受信部１３のそれぞれに分配する。一方、パケット分配器１１に入力したパケットＰが原則的な割込入力パケットＰｅｉである場合、パケット分配器１１は割込入力パケットＰｅｉを割込パケット送出部１４及び割込パケット受信部１５のそれぞれに分配する。入力したパケットＰが例外的な通常入力パケットＰｅｎ及び割込入力パケットＰｅｉである場合のパケット分配器１１の分配については、出力切替部２３により出力される出力パケットＰｏの説明の後に詳細に説明する。
【００３８】
送信ソフトウェア部８は、生成した他のノード２に対する通常送信データＤｔｎを送受信バッファ１６に書き込むと共に、生成した通常送信データＤｔｎのデータ情報ＤＩ（以下、送信データ情報ＤＩｔと称する）を通常パケット送出部１２（具体的には、後述する送信データ情報格納バッファ４０（図６参照））に書き込む。また、送信ソフトウェア部８は、生成した他のノード２に対する割込送信データＤｔｉ（割込ピン番号（ＩＮＴ））及びその送信データ情報ＤＩｔを割込パケット送出部１４（具体的には、後述する割込パケット送出ブロック２０のソフトウェア書き込み用レジスタ７１（図１０参照））に書き込む。
【００３９】
通常パケット送出部１２は、パケット分配器１１から分配された通常入力パケットＰｅｎの送信先が自ノードでない場合に通常入力パケットＰｅｎをそのまま送出する通常パケット中継ブロック１７と、送信ソフトウェア部８が生成した他のノード２に対する通常送信データＤｔｎを通常送信パケットＰｔｎの構成にして送出する通常パケット送出ブロック１８とを有している。通常パケット送出ブロック１８は、送信ソフトウェア部８が書き込んだ送信データ情報ＤＩｔに対応する通常送信データＤｔｎを送受信バッファ１６から読み出し、通常送信データＤｔｎにヘッダ、トレーラ及びＣＲＣを付加して通常送信パケットＰｔｎを生成する。また、通常パケット送出ブロック１８は、パケット分配器１１から分配された通常入力パケットＰｅｎに基づいて後述する送信完了判定を行う。
【００４０】
割込パケット送出部１４は、パケット分配器１１から分配された割込入力パケットＰｅｉの送信先が自ノードでない場合に割込入力パケットＰｅｉをそのまま送出する割込パケット中継ブロック１９と、送信ソフトウェア部８が生成した他のノード２に対する割込送信データＤｔｉを割込送信パケットＰｔｉの構成にして送出する割込パケット送出ブロック２０とを有している。割込パケット送出ブロック２０は、割込送信データＤｔｉにヘッダ、トレーラ及びＣＲＣを付加して（正確には割込送信データＤｔｉをトレーラに組み込んで）通常送信パケットＰｔｎを生成する。
【００４１】
通常パケット受信部１３は、パケット分配器１１から分配された通常入力パケットＰｅｎの送信先が自ノードであり、通常入力パケットＰｅｎを受信すべき場合に、通常入力パケットＰｅｎを受信してこれに含まれる通常入力データＤｅｎを受信データＤｒとして送受信バッファ１６に書き込むと共に、送受信バッファ１６から受信データＤｒを読み出して受信ソフトウェア部９に提供する通常パケット受信ブロック２１を有している。
【００４２】
割込パケット受信部１５は、パケット分配器１１から分配された割込入力パケットＰｅｉの送信先が自ノードである割込パケットＰｉである場合に割込入力パケットＰｅｉを受信し、これに含まれる割込データＤｉ（割込ピン番号（ＩＮＴ）、図３参照）をハードウェア制御信号Ｓｃとしてハードウェアに送出する割込パケット受信ブロック２２を有している。
【００４３】
通常パケット中継ブロック１７から送出された通常入力パケットＰｅｎ、通常パケット送出ブロック１８から送出された通常送信パケットＰｔｎ、割込パケット中継ブロック１９から送出された割込入力パケットＰｅｉ、及び割込パケット送出ブロック２０から送出された割込送信パケットＰｔｉは、出力切替部２３に入力される。
【００４４】
出力切替部２３では、通常パケット切替ブロック２４が、通常入力パケットＰｅｎ及び通常送信パケットＰｔｎのうち、入力タイミングが早い通常パケットＰｎを他のノード２に向けて出力すべき通常送出パケットとして出力する。具体的には、通常パケット切替ブロック２４は、通常入力パケットＰｅｎ及び通常送信パケットＰｔｎの一方が入力した場合、入力した通常パケットＰｎを通常送出パケットとして出力し、通常入力パケットＰｅｎ及び通常送信パケットＰｔｎの両方が同時に入力した場合、通常送信パケットＰｔｎを優先的に（先に）通常送出パケットとして出力するように、出力する通常パケットＰｎを通常入力パケットＰｅｎ及び通常送信パケットＰｔｎの間で切り替える。
【００４５】
また、出力切替部２３では、割込パケット切替ブロック２５が、割込入力パケットＰｅｉ及び割込送信パケットＰｔｉのうち、入力タイミングが早い割込パケットＰｉを他のノード２に向けて出力すべき割込送出パケットとして出力すると共に、出力する割込パケットＰｉを割込入力パケットＰｅｉ及び割込送信パケットＰｔｉの間で切り替える。割込パケット切替ブロック２５も、通常パケット切替ブロック２４と同様に、割込入力パケットＰｅｉ及び割込送信パケットＰｔｉが同時に入力した場合には割込送信パケットＰｔｉを優先的に出力する。
【００４６】
更に、出力切替部２３では、出力切替ブロック２６が、原則として、通常パケット切替ブロック２４から出力される通常パケットＰｎ、及び割込パケット切替ブロック２５から出力される割込パケットＰｉのうち、一方のパケットＰを出力パケットＰｏとして出力する。具体的には、出力切替ブロック２６は、通常パケットＰｎ及び割込パケットＰｉの一方が入力している場合、入力しているパケットＰを出力パケットＰｏとして出力する。一方、通常パケットＰｎ及び割込パケットＰｉの両方が入力している場合（通常パケットＰｎの出力が完了していない状態で割込パケットＰｉが入力した場合）、出力切替ブロック２６は、例外として、出力中の通常パケットＰｎに割込パケットＰｉを埋め込んだものを出力パケットＰｏとして出力する。埋め込みの詳細については後述する。
【００４７】
なお、全てのノード２がこれらの機能部の全てを有している必要はない。例えば、１つのノード２が、送信ソフトウェア部８を有して割込送信データＤｔｉを生成し、割込パケット送出ブロック２０を有し、他のノード２は割込パケット送出ブロック２０や割込パケット切替ブロック２５を有しなくもよい。但し、全てのノード２は、少なくとも通常パケット送出部１２、通常パケット中継ブロック１７、通常パケット送出ブロック１８、割込パケット中継ブロック１９、割込パケット送出ブロック２０、通常パケット受信ブロック２１、割込パケット受信ブロック２２及び受信ソフトウェア部９を備えている。
【００４８】
以下、ノード２の各部について詳細に説明する。
【００４９】
図５に示されるように、通常パケット中継ブロック１７（図４参照）では、パケット判定部３１が通常入力パケットＰｅｎの中継判定を行う。具体的には、パケット判定部３１は、送信データ情報ＤＩｔの自ノードＩＤ（ＳＩＤ）に基づいて、通常入力パケットＰｅｎが自ノードにより生成されたパケットＰであるか否かを判定する。また、パケット判定部３１は、中継数（ＨＯＰ）に基づいて、中継異常があるか否か、具体的には中継数がネットワーク３上のノード数以上であるか否かを判定する。
【００５０】
パケット判定部３１の判定結果に基づき、制御部３２が通常入力パケットＰｅｎを中継し、又は破棄する。具体的には、通常入力パケットＰｅｎが自ノードにより生成されたパケットＰである場合には、制御部３２は、ネットワーク３のリングを１周回ったものとして通常入力パケットＰｅｎを破棄する。また、通常入力パケットＰｅｎの中継数がノード数以上である場合には、制御部３２は、異常パケットであるものとして通常入力パケットＰｅｎを破棄してエラー表示データを付加する。なお、制御部３２には、後述する通常パケット切替ブロック２４の制御部６２（図８参照）から出力待ち信号Ｓｗが入力するようになっている。
【００５１】
一方、通常入力パケットＰｅｎが正常であり中継すべき通常入力パケットＰｅｎであることがパケット判定部３１により判定された場合には、制御部３２は、通常入力パケットＰｅｎの中継数をインクリメントし、データセレクタ３３に対するデータ選択制御を行う。また、制御部３２は、出力待ち信号Ｓｗに応じ、データ保持部３４に対するデータ入出力制御を行う。データセレクタ３３は、制御部３２の指令に従って、アイドルデータ、上記エラー表示データ及び通常入力パケットＰｅｎ（通常入力パケットＰｅｎ）の中から１つを選択し、データ保持部３４に通常入力パケットＰｅｎを書き込む。出力待ち信号Ｓｗが制御部３２に入力しておらず、制御部３２がデータ出力の指令を出すと、データ保持部３４は保持している通常入力パケットＰｅｎを送出する。
【００５２】
通常パケット中継ブロック１７の制御部３２は、上記所定の動作を行うようにプログラミングされたハードウェアにより構成される。制御部３２を構成するハードウェアとしては、ＡＳＩＣ（Application Specific Integrated Circuit：特定用途向け集積回路）や、ＰＬＤ（Programmable Logic Device：プログラマブルロジックデバイス）、ＡＳＳＰ（Application Specific Standard Produce）等のハードウェア論理回路を利用することができる。ＡＳＩＣを利用する場合は、ゲートアレイ、ストラクチャードＡＳＩＣ等のマスタ・スライス型であってよく、セルベースＡＳＩＣ等のカスタム型であってもよい。また、ＰＬＤを利用する場合は、Simple ＰＬＤ及びＣＰＬＤ（Complex PLD）を含む狭義のＰＬＤであってよく、ＦＰＧＡ（Field-Programmable Gate Array）を更に含む広義のＰＬＤであってもよい。ハードウェアは、好ましくはＰＬＤ（プログラマブルロジックデバイス）である。後述するネットワークコントローラ５の各部（各ブロック）の制御部４２、５２、６２、７３、８２も、同様にハードウェアにより構成される。
【００５３】
図６に示されるように、通常パケット送出ブロック１８（図４参照）には、パケット分配器１１から分配された通常入力パケットＰｅｎが入力している。送信完了判定部４１は通常入力パケットＰｅｎに基づいて送信完了判定を行う。具体的には、送信完了判定部４１は、自ノードが生成した通常送信パケットＰｔｎがネットワーク３のリングを１周回って通常入力パケットＰｅｎとして帰ってきたことをもって当該通常送信パケットＰｔｎの送信完了を判定する。送信完了判定部４１による判定結果は、制御部４２に送られる。
【００５４】
送信データ情報格納バッファ４０には、送信ソフトウェア部８により１塊として生成された通常送信データＤｔｎの送信データ情報ＤＩｔが書き込まれている。各通常送信パケットＰｔｎには、上記の通り送信ソフトウェア部８により優先度（例えば、最優先、優先度高、優先度中、優先度低等）が与えられている。通常パケット送出ブロック１８では、制御部４２が、送信データ情報格納バッファ４０に優先度ごとのキューとして格納された送信データ情報ＤＩｔを優先度の高いものから順に取り出し、取り出した送信データ情報ＤＩｔに対応する通常送信データＤｔｎを送受信バッファ１６から読み出してパケット生成指令Ｃｐを生成してパケット生成部４３に送出する。この際、制御部４２は、先に送出した通常送信パケットＰｔｎが送信完了判定部４１により送信完了と判定されるまで、次に送出すべき通常送信データＤｔｎを送受信バッファ１６から取得しないように制御する。また、制御部４２は、後述するデータセレクタ４４に対するデータ選択制御を行う。
【００５５】
パケット生成部４３は、制御部４２からのパケット生成指令Ｃｐに応じ、送受信バッファ１６から通常送信データＤｔｎを読み出し、送信データ情報ＤＩｔを埋め込んだヘッダ、トレーラ及びＣＲＣを通常送信データＤｔｎに付加して通常送信パケットＰｔｎを生成する。この際、パケット生成部４３は送受信バッファ１６から空きバッファサイズ（ＦＢＣ）等の関連情報を読み込み、通常送信パケットＰｔｎに埋め込む。パケット生成部４３により生成された通常送信パケットＰｔｎは、データ保持部４５に一旦保持され、上記通常パケット切替ブロック２４の制御部６２（図８参照）からの出力待ち信号Ｓｗが入力していなければ、データセレクタ４４に向けて送出される。データセレクタ４４は、制御部４２の指令に従って、アイドルデータ及び通常送信パケットＰｔｎのいずれか１つを選択し、通常送信パケットＰｔｎとして送出する。
【００５６】
図７に示されるように、通常パケット受信ブロック２１（図４参照）では、受信判定部５１が、入力された通常入力パケットＰｅｎを解析し、受信するか否かの受信判定を行う。具体的には、受信判定部５１は、通常入力パケットＰｅｎの送信先ノードＩＤ（ＤＩＤ）が自ノードである場合に受信することを判定し、送信先ノードＩＤが自ノードでない場合に受信しないことを判定する。
【００５７】
通常パケット受信ブロック２１では、制御部５２が、送受信バッファ１６の書き込み可能な空きバッファを送受信バッファ１６から取得する。制御部５２は、受信判定部５１から受信すべき判定結果を得た場合には、通常入力パケットＰｅｎに含まれる通常入力データＤｅｎを書き込むべき書き込み先を空きバッファの中から指定したバッファ書き込み先指令Ｃｄをデータ書き込み部５３に対して送出する。データ書き込み部５３は、受信判定部５１からの受信判定及び制御部５２からのバッファ書き込み先指令Ｃｄを受けると、入力された通常入力データＤｅｎを受信データＤｒとして送受信バッファ１６の指定された位置に書き込む。
【００５８】
また、制御部５２は、受信データＤｒ（入力された通常入力データＤｅｎ）に関する情報（以下、受信データ情報ＤＩｒと称する）にバッファ書き込み先を付加すると共に受信データ情報ＤＩｒに基づいて優先度を確認し、受信データ情報ＤＩｒを優先度ごとのキューとして受信データ情報格納バッファ５０に書き込む。受信データ情報格納バッファ５０に書き込まれた受信データ情報ＤＩｒは、優先度の高いものから順に受信ソフトウェア部９により取り出される。
【００５９】
受信ソフトウェア部９は、取り出した受信データ情報ＤＩｒに対応する受信データＤｒを送受信バッファ１６から読み出し、少なくとも読み出した受信データＤｒに基づいて制御対象７（図４）のハードウェアを制御する。受信ソフトウェア部９は、例えばロボットの関節駆動用の電動機に対する供給電力を調整するモータドライバを制御する。
【００６０】
図８に示されるように、通常パケット切替ブロック２４（図４参照）には、通常パケット中継ブロック１７（図５）のデータ保持部３４から送出された通常入力パケットＰｅｎと、通常パケット送出ブロック１８（図６）のデータセレクタ４４から送出された通常送信パケットＰｔｎとが入力している。通常パケット切替ブロック２４は、通常入力パケットＰｅｎ及び通常送信パケットＰｔｎが入力するデータセレクタ６１と、入力した通常入力パケットＰｅｎ及び通常送信パケットＰｔｎに基づいてデータセレクタ６１に対するデータ選択制御を行うと共に、通常パケット中継ブロック１７（図５）及び通常パケット送出ブロック１８（図６）に対する出力待ち信号Ｓｗを出力する制御部６２とを有している。
【００６１】
データセレクタ６１は、制御部６２の指令に従って、通常入力パケットＰｅｎ及び通常送信パケットＰｔｎのいずれか１つを選択し、選択した通常パケットＰｎを通常送出パケットとして出力する。制御部６２は、通常送信パケットＰｔｎを通常入力パケットＰｅｎよりも優先させてデータセレクタ６１が出力するように指令を出す。また、制御部６２は、一方の入力パケットＰｅの出力中には他方の入力パケットＰｅの入力と衝突しないように、１パケットの出力が完了するまで、通常パケット中継ブロック１７及び通常パケット送出ブロック１８に対して出力待ち信号Ｓｗを出力する。
【００６２】
図９を参照して、通常パケット中継ブロック１７、通常パケット送出ブロック１８及び通常パケット切替ブロック２４における動作の具体例について説明する。図９の例では、通常パケット中継ブロック１７には、他のノード２から送信された中継すべき通常入力パケットＰｅｎのパケットＢ０、Ｂ１、Ｂ２がこの順に入力している。一方、通常パケット送出ブロック１８には、送信ソフトウェア部８からの通常送信パケットＰｔｎ（実際には、送信ソフトウェア部８からの送信データ情報ＤＩｔが入力し、これに従って通常パケット送出ブロック１８が通常送信パケットＰｔｎを生成するが、ここでは、模式的に通常送信パケットＰｔｎが入力するように示している）のパケットＣ０、Ｃ１、Ｃ２がこの順に、且つパケットＣ０がパケットＢ１と同時となるタイミングで入力している。
【００６３】
このような場合、通常パケット切替ブロック２４は、最初に入力した通常入力パケットＰｅｎのパケットＢ０を出力した後、通常入力パケットＰｅｎのパケットＢ（Ｂ１、Ｂ２）の出力を行わずに通常送信パケットＰｔｎのパケットＣ（Ｃ０、Ｃ１、Ｃ２）を優先的に出力する。そして、通常送信パケットＰｔｎのパケットＣの出力が完了した後に、通常パケット切替ブロック２４は通常入力パケットＰｅｎのパケットＢ１、Ｂ２を出力する。通常パケット切替ブロック２４がこのようなデータ出力の切り替えを行うことにより、パケットＰの衝突が防止される。
【００６４】
詳細な図示は省略するが、割込パケット中継ブロック１９（図４参照）は、通常パケット中継ブロック１７（図４、図５）と同様の機能を有している。具体的には、割込パケット中継ブロック１９では、パケット判定部が自ノードＩＤ（ＳＩＤ）及び中継数（ＨＯＰ）に基づいて、割込入力パケットＰｅｉの中継判定を行う。パケット判定部の判定結果に基づき、制御部が割込入力パケットＰｅｉを中継し、又は破棄する。各機能部の具体的機能は通常パケット中継ブロック１７の説明と重複するためここでは一部割愛するが、割込パケット中継ブロック１９では、割込入力パケットＰｅｉが正常であり中継すべき割込入力パケットＰｅｉであることがパケット判定部により判定された場合には、制御部が、割込入力パケットＰｅｉの中継数をインクリメントし、割込入力パケットＰｅｉを送出する。
【００６５】
図１０に示されるように、割込パケット送出ブロック２０（図４参照）には、送信ソフトウェア部８により生成された割込送信データＤｔｉ及びその送信データ情報ＤＩｔが入力している。また、割込パケット送出ブロック２０には、タイマ等のハードウェア７０から送出される割込送信データＤｔｉ及びその送信データ情報ＤＩｔも入力している。送信ソフトウェア部８から入力する割込送信データＤｔｉ及び送信データ情報ＤＩｔは、ソフトウェア書き込み用レジスタ７１に書き込まれる。一方、ハードウェア７０から入力する割込送信データＤｔｉ及び送信データ情報ＤＩｔは、ハードウェア書き込み用レジスタ７２に書き込まれる。
【００６６】
割込パケット送出ブロック２０では、制御部７３が、ソフトウェア書き込み用レジスタ７１及びハードウェア書き込み用レジスタ７２に書き込まれた割込送信データＤｔｉ及び送信データ情報ＤＩｔを割込要求として受け取り、割込要求を受けるとパケット生成部７４に対してパケット生成指令Ｃｐを送出する。この際、制御部７３は、ソフトウェア書き込み用レジスタ７１からの割込要求よりも、ハードウェア書き込み用レジスタ７２からの割込要求を優先して受け付ける。また、制御部７３は、後述するデータセレクタ７５に対するデータ選択制御を行う。
【００６７】
パケット生成部７４は、パケット生成指令Ｃｐを受けると、パケット生成指令Ｃｐに対応するソフトウェア書き込み用レジスタ７１又はハードウェア書き込み用レジスタ７２から割込送信データＤｔｉ及び送信データ情報ＤＩｔを読み出し、読み出した送信データ情報ＤＩｔを埋め込んだヘッダ、トレーラ及びＣＲＣを割込送信データＤｔｉに付加して割込送信パケットＰｔｉを生成する。パケット生成部７４は、生成した割込送信パケットＰｔｉをデータセレクタ７５に送出する。データセレクタ７５は、制御部７３の指令に従って、アイドルデータ及び割込送信パケットＰｔｉのいずれか１つを選択し、割込送信パケットＰｔｉとして送出する。なお、割込パケット送出ブロック２０には、通常パケット中継ブロック１７（図５）や通常パケット送出ブロック１８（図６）に入力するような出力待ち信号Ｓｗは入力しない。
【００６８】
詳細な図示は省略するが、図４に示される割込パケット切替ブロック２５は、割込パケット中継ブロック１９から送出される割込入力パケットＰｅｉと、割込パケット送出ブロック２０から送出される割込送信パケットＰｔｉとに対し、通常パケット切替ブロック２４（図４、図８）と同様の出力切替機能を有している。具体的には、割込パケット切替ブロック２５は、割込入力パケットＰｅｉ及び割込送信パケットＰｔｉが入力するデータセレクタと、入力した割込入力パケットＰｅｉ及び割込送信パケットＰｔｉに基づいてデータセレクタに対するデータ選択制御を行う制御部とを有している。データセレクタは、制御部の指令に従って、割込入力パケットＰｅｉ及び割込送信パケットＰｔｉのいずれか１つを選択し、割込送信パケットＰｔｉとして出力する。制御部は、割込送信パケットＰｔｉを割込入力パケットＰｅｉよりも優先させてデータセレクタが出力するように指令を出す。
【００６９】
図４に示される出力切替ブロック２６は、通常パケット切替ブロック２４（図４、図８）から送出される通常パケットＰｎと、割込パケット切替ブロック２５（図４）から送出される割込パケットＰｉとに対し、通常パケット切替ブロック２４や割込パケット切替ブロック２５と同様の出力切替機能に加え、割込パケットＰｉを通常パケットＰｎに埋め込んで即座に出力する機能を有している。具体的には、出力切替ブロック２６は、通常パケットＰｎ及び割込パケットＰｉが入力するデータセレクタと、入力した通常パケットＰｎ及び割込パケットＰｉに基づいてデータセレクタに対するデータ選択制御を行う制御部とを有している。
【００７０】
制御部は、割込パケットＰｉを通常パケットＰｎよりも優先させてデータセレクタが出力するように指令を出す。例えば、割込パケットＰｉを出力パケットＰｏとして出力している最中に、通常パケットＰｎと次の割込パケットＰｉとが入力している（出力待ちとなっている）場合、制御部は、出力中の割込パケットＰｉの出力完了後、次の割込パケットＰｉを先に出力するようデータセレクタに指令を出す。割込パケットＰｉを出力パケットＰｏとして出力している最中に、通常パケットＰｎのみが入力している場合、制御部は、出力中の割込パケットＰｉの出力完了後、通常パケットＰｎを出力するようデータセレクタに指令を出す。一方、通常パケットＰｎを出力パケットＰｏとして出力している最中に、割込パケットＰｉが入力した場合、制御部は、出力中の通常パケットＰｎに割込パケットＰｉを埋め込んで１つの出力パケットＰｏとして出力するようデータセレクタに指令を出す。
【００７１】
即ち、図４の要部を簡略化して示す図１１に示されるように、通常パケット送出部１２から、図示省略した通常パケット切替ブロック２４（図４参照）を介して送出された通常パケットＰｎ（通常入力パケットＰｅｎ又は通常送信パケットＰｔｎ）を出力パケットＰｏとして出力している最中に、割込パケット送出部１４から、図示省略した割込パケット切替ブロック２５（図４参照）を介して送出された割込パケットＰｉ（割込入力パケットＰｅｉ又は割込送信パケットＰｔｉ）が入力されると、制御部は、図２に示される通常パケットＰｎのヘッドとトレーラとの間、即ちヘッダの直後、データ部（通常データＤｎ）を分断する位置、又はデータ部の直後（トレーラの直前）に、図３に示される割込パケットＰｉをそのままのかたちで埋め込むよう指令を出す。これにより、通常パケットＰｎの通常データＤｎが大きく、その出力に時間がかかる場合であっても、割込パケットＰｉが即座に出力されることになる。
【００７２】
このように通常パケットＰｎに割込パケットＰｉが埋め込まれる形態は４つある。
【００７３】
第１の形態は、図４の要部を簡略化して示す図１２に示されるように、出力切替ブロック２６が、通常パケット送出部１２の通常パケット中継ブロック１７から送出された通常入力パケットＰｅｎを出力している最中に、割込パケット送出部１４の割込パケット送出ブロック２０から送出された割込送信パケットＰｔｉが入力された場合である。この場合には、通常入力パケットＰｅｎの通常入力データＤｅｎが大きく、その出力に時間がかかる場合であっても、割込送信パケットＰｔｉが即座に出力される。
【００７４】
第２の形態は、図４の要部を簡略化して示す図１３に示されるように、出力切替ブロック２６が、通常パケット送出部１２の通常パケット送出ブロック１８から送出された通常送信パケットＰｔｎを出力している最中に、割込パケット送出部１４の割込パケット中継ブロック１９から送出された割込入力パケットＰｅｉが入力された場合である。この場合には、通常送信パケットＰｔｎの通常送信データＤｔｎが大きく、その出力に時間がかかる場合であっても、割込入力パケットＰｅｉが即座に出力される。これにより、レイテンシが小さくなる。
【００７５】
第３の形態は、図４の要部を簡略化して示す図１４に示されるように、出力切替ブロック２６が、通常パケット送出部１２の通常パケット中継ブロック１７から送出された通常入力パケットＰｅｎを出力している最中に、割込パケット送出部１４の割込パケット中継ブロック１９から送出された割込入力パケットＰｅｉが入力された場合である。この形態は、入力パケットＰｅ自体は原則としてパケットＰ単位で順番にネットワークコントローラ５に入力するが、通常パケット切替ブロック２４（図４、図８）が、通常入力パケットＰｅｎを優先度（ＰＲＩ）の順に出力し、通常入力パケットＰｅｎの出力が遅れる場合があることから生じ得る。この場合には、通常入力パケットＰｅｎよりも後にネットワークコントローラ５に入力した割込入力パケットＰｅｉが、先に入力した通常入力パケットＰｅｎを追い越して、或いは先に入力して送信中である通常入力パケットＰｅｎに割り込んで即座に出力される。これにより、レイテンシが小さくなる。
【００７６】
第４の形態は、図４の要部を簡略化して示す図１５に示されるように、出力切替ブロック２６が、通常パケット送出部１２の通常パケット送出ブロック１８から送出された通常送信パケットＰｔｎを出力している最中に、割込パケット送出部１４の割込パケット送出ブロック２０から送出された割込送信パケットＰｔｉが入力された場合である。この形態は、送信パケットＰｔ自体はパケットＰ単位で順番に送信ソフトウェア部８により生成されるが、通常パケット切替ブロック２４（図４、図８）が、通常送信パケットＰｔｎを優先度（ＰＲＩ）の順に出力し、通常送信パケットＰｔｎの出力が遅れる場合があることから生じ得る。この場合には、通常送信データＤｔｎよりも後に送信ソフトウェア部８により生成された割込送信データＤｔｉが、先に生成された通常送信データＤｔｎを追い越して、或いは先に生成された通常送信データＤｔｎに割り込んで即座に出力される。
【００７７】
次に、他のノード２が通常パケットＰｎに割込パケットＰｉを埋め込んだかたちで出力した例外的な出力パケットＰｏが、１つの入力パケットＰｅとしてネットワーク３の上流側からネットワークコントローラ５に入力された場合の処理について説明する。割込パケットＰｉは、そのままのかたちで通常パケットＰｎに埋め込まれている。そのため、パケット分配器１１には、通常入力パケットＰｅｎのパケット先頭（ＳＯＤＰ）を含むヘッダの後、且つパケット末尾（ＥＯＤＰ）を含むトレーラの前に、パケット先頭（ＳＯＩＰ）を含む２つ目のヘッダが現れ、続けてパケット末尾（ＥＯＩＰ）を含むレーラが現れた後に、パケット末尾（ＥＯＤＰ）を含むトレーラが現れることになる。これにより、パケット分配器１１は通常入力データＤｅｎと割込入力パケットＰｅｉとの境界を認識し、通常パケットＰｎから割込パケットＰｉを抜き出すことができる。
【００７８】
図４の要部を概念的に示す図１６に示されるように、パケット分配器１１は、このような例外的な入力パケットＰｅが入力されると、入力パケットＰｅから割込入力パケットＰｅｉを抜き出し、割込入力パケットＰｅｉを抜き出した入力パケットＰｅを通常入力パケットＰｅｎとして通常パケット処理部７６（図４の通常パケット受信部１３及び通常パケット中継ブロック１７）に分配すると共に、抜き出した割込入力パケットＰｅｉを割込パケット処理部７７（図４の割込パケット受信部１５及び割込パケット中継ブロック１９）に分配する。通常入力パケットＰｅｎの割込入力パケットＰｅｉが抜き取られた部分は、スキップ（空白部）とされ、通常入力パケットＰｅｎを受け取った通常パケット処理部７６は、スキップの前後のデータＤを繋げて通常の通常入力パケットＰｅｎとして処理する。
【００７９】
パケット分配器１１がこのような処理を行うことにより、他のノード２から即座に出力された割込パケットＰｉが、ノード２に即座に伝送され、適切に中継送出処理又は受信処理される。
【００８０】
図１７に示されるように、割込パケット受信部１５（図４参照）では、受信判定部８１が、入力された割込入力パケットＰｅｉの受信データ情報ＤＩｒを解析し、受信するか否かの受信判定を行う。具体的には、受信判定部８１は、割込入力パケットＰｅｉの送信先ノードＩＤ（ＤＩＤ）が自ノードである場合に受信することを判定し、送信先ノードＩＤが自ノードでない場合及びエラーデータである場合に受信しないことを判定する。
【００８１】
割込パケット受信部１５では制御部８２が、受信判定部８１から受信すべき判定結果を得た場合に、入力された割込入力パケットＰｅｉを受け取り、受け取った割込入力パケットＰｅｉを解析して、ハードウェア制御信号Ｓｃとして対応するハードウェアに向けて出力する。即ち、ハードウェア制御信号Ｓｃは、受信ソフトウェア部９の制御対象７（図４）であるハードウェア（例えばロボットの関節駆動用の電動機に対する供給電力を調整するモータドライバ）に対するものであってもよく、その他のハードウェアに対するものであってもよい。
【００８２】
ハードウェア制御信号Ｓｃにより制御されるハードウェアは、ＡＳＩＣ（特定用途向け集積回路）や、ＰＬＤ（プログラマブルロジックデバイス）、ＡＳＳＰ、ＩＣ（リセットＩＣ等）等のハードウェア論理回路である。好ましくは、ハードウェアは、ＡＳＩＣやＰＬＤ等のカスタム設計されるハードウェア論理回路である。ハードウェアがＡＳＩＣである場合は、ゲートアレイ、ストラクチャードＡＳＩＣ等のマスタ・スライス型であってよく、セルベースＡＳＩＣ等のカスタム型であってもよい。また、ハードウェアがＰＬＤである場合は、Simple ＰＬＤ及びＣＰＬＤを含む狭義のＰＬＤであってよく、ＦＰＧＡを更に含む広義のＰＬＤであってもよい。より好ましくは、ハードウェアはＰＬＤ（プログラマブルロジックデバイス）である。
【００８３】
以下、ハードウェア制御信号Ｓｃの種類やその内容、それによる動作について説明する。
【００８４】
まず、割込パケット受信部１５が出力するハードウェア制御信号Ｓｃが、受信ソフトウェア部９の制御対象７であるハードウェアに対するものである場合について説明する。
【００８５】
図１８に示されるように、ここでは、ｎ個のノード２（ネットワーク３のリングのデータ送信方向に順に第１、第２、・・・第ｎとする）により通信システム１が構成されている。第１のノード２は、第ｎのノード２を送信先とする割込送信データＤｔｉを生成し、生成した割込送信データＤｔｉを含む割込送信パケットＰｔｉを出力パケットＰｏとしてネットワーク３のリングの下流側に送信する。ネットワーク３上を伝送される割込パケットＰｉは、第２のノード２、第３のノード２、・・・に中継されて第ｎのノード２に送達される。
【００８６】
第ｎのノード２では、割込パケット受信部１５により割込パケットＰｉ（割込送信データＤｔｉ）が割込入力パケットＰｅｉとして受信される。受信された割込入力パケットＰｅｉは、割込入力データＤｅｉの割込ピン番号（ＩＮＴ）に対応するハードウェア（制御対象７への割込ピン）に向けてハードウェア制御信号Ｓｃとして出力される。ハードウェア制御信号Ｓｃが入力されたハードウェア（論理回路）は、ハードウェア制御信号Ｓｃに基づいて直接制御される。
【００８７】
次に、ハードウェアが受信ソフトウェア部９により制御される場合と、ハードウェア制御信号Ｓｃにより直接制御される場合との処理の違いについて説明する。図１９は、ハードウェアが受信ソフトウェア部９により制御される通常時のフロー図であり、図２０は、ハードウェアがハードウェア制御信号Ｓｃにより直接制御される割込時のフロー図である。
【００８８】
図１９に示されるように、ハードウェアが受信ソフトウェア部９により制御される通常時には、第ｎのノード２は、まず入力するパケットＰを通常入力パケットＰｅｎとして通常パケット受信ブロック２１（図４、図７）で受信する（ステップＳＴ１）。次いで、第ｎのノード２は、受信した通常入力パケットＰｅｎが含む通常入力データＤｅｎを送受信バッファ１６に書き込む（ステップＳＴ２）。その後、第ｎのノード２は、受信データ情報格納バッファ５０（図７）に格納された受信データ情報ＤＩｒの優先度に応じた割込を行う（ステップＳＴ３）。ここまでの処理はハードウェアのみによって行われる。
【００８９】
続いて、第ｎのノード２は、受信ソフトウェア部９（図４、図７）により送受信バッファ１６から通常入力データＤｅｎを読み出す（ステップＳＴ４）。その後、第ｎのノード２は、受信ソフトウェア部９において通常入力データＤｅｎを解析・演算処理する（ステップＳＴ５）。そして最後に、第ｎのノード２は、解析・演算処理したデータＤに基づいてハードウェアを制御する（ステップＳＴ６）。ステップＳＴ４〜ステップＳＴ６の処理は、ＣＰＵ４によるソフトウェアを用いた演算処理によって行われる。
【００９０】
一方、図２０に示されるように、ハードウェアがハードウェア制御信号Ｓｃにより直接制御される割込時には、第ｎのノード２は、まず割込入力パケットＰｅｉを割込パケット受信ブロック２２（図４）の受信判定部８１（図１７）で受信する（ステップＳＴ１１）。次に、第ｎのノード２は、受信した割込入力パケットＰｅｉを制御部８２（図１７）で解析する（ステップＳＴ１２）。その後、第ｎのノード２は、制御部８２において、割込入力パケットＰｅｉが含んでいる割込入力データＤｅｉ（割込ピン番号（ＩＮＴ））をハードウェア制御信号Ｓｃとして出力して対応するハードウェアを、ソフトウェアを介さずに直接制御する。即ち、これらステップＳＴ１１〜ステップＳＴ１３の全ての処理はハードウェアのみによって行われる。
【００９１】
このように第１のノード２が第ｎのノード２に対して割込送信パケットＰｔｉを送信し、第ｎのノード２が受信した割込入力パケットＰｅｉに基づいて、ソフトウェア（受信ソフトウェア部９）を介在させずにハードウェアを直接制御することにより、小さいレイテンシでハードウェアが制御される。また、第ｎのノード２の送信ソフトウェア部８や受信ソフトウェア部９が暴走し又はＣＰＵ４がハングアップしていたとしても、ソフトウェアを介在させないため、割込パケットＰｉによりハードウェアを制御することが可能である。
【００９２】
また、第１のノード２が複数のノード２に対して割込送信データＤｔｉを生成し、生成した割込送信データＤｔｉを含む割込送信パケットＰｔｉを出力パケットＰｏとしてネットワーク３のリングの下流側に略同時に順次送信してもよい。そうすると、割込送信パケットＰｔｉの送信先とされた複数（２つ以上であればよい）のノード２のハードウェアが割込送信データＤｔｉに基づいて制御されることにより、これらのノード２の制御対象７の動作を同期させることができる。
【００９３】
次に、割込パケット受信部１５が出力するハードウェア制御信号Ｓｃが、受信ソフトウェア部９の制御対象７以外のハードウェアに対するものである場合について説明する。
【００９４】
図２１に示されるように、ここでは第１のノード２が、ハングアップ状態の第ｎのノード２を送信先として、ＣＰＵ４のリセットを行うハードウェア（リセット回路）に対する割込送信パケットＰｔｉを生成し、出力パケットＰｏとして送信している。
【００９５】
第ｎのノード２では、ネットワーク３上を伝送される割込パケットＰｉが割込パケット受信部１５により割込入力パケットＰｅｉとして受信される。受信された割込入力パケットＰｅｉは、割込入力データＤｅｉの割込ピン番号（ＩＮＴ）に対応するハードウェアであるリセット回路の割込ピンに向けてハードウェア制御信号Ｓｃとして出力される。ハードウェア制御信号Ｓｃが入力されたハードウェア（リセット回路）は、ハードウェア制御信号Ｓｃに基づいて直接制御され、ハングアップ状態のＣＰＵ４に対してリセット信号を出力する（即ち、ソフトウェアを再起動（リブート）させる）。
【００９６】
このように、上記のような受信ソフトウェア部９の制御対象７に対する直接制御とは別に、第１のノード２が第ｎのノード２に向けてハードウェア（リセット回路）に対する割込パケットＰｉを送信することで、ハングアップ状態の第ｎのノード２のＣＰＵ４にリセットをかけることができる。これにより、第ｎのノード２の送信ソフトウェア部８や受信ソフトウェア部９を正常状態に戻すことができる。
【００９７】
一方、リセット回路に対するハードウェア制御信号Ｓｃが送られてＣＰＵ４に対してリセット信号が出力された場合であっても、ＣＰＵ４が正常に再起動しない場合があり、送信ソフトウェア部８が暴走して不要なパケットＰ（パケットＰの大きさが制限されていない場合には、パケットＰに含まれるデータＤ）を送り続けることがある。そして、本実施形態のようにネットワーク３がリング型である場合には、このような事象が生じると、不要なパケットＰの送信か完了するまで、割込パケットＰｉも中継（送信）されなくなる。本実施形態では、割込パケットＰｉが通常パケットＰｎに埋め込まれて出力されるため、暴走したノード２があっても、割込パケットＰｉが即座に中継される。
【００９８】
以上で具体的実施形態の説明を終えるが、本発明は上記実施形態に限定されることなく幅広く変形実施することができる。例えば、ネットワーク３は、リング型やスター型、バス型に限らず、メッシュ型であってもよい。この場合にも、各ノード２は中継機能を有する必要はないため、バイパス処理を行う必要はない。この他、各部材や部位の具体的構成や配置、数量、処理手順など、本発明の趣旨を逸脱しない範囲であれば適宜変更可能である。一方、上記実施形態に示した各構成要素は必ずしも全てが必須ではなく、適宜選択することができる。
【符号の説明】
【００９９】
１      通信システム
２      ノード
３      ネットワーク
４      ＣＰＵ
５      ネットワークコントローラ
７      制御対象（ハードウェア）
８      送信ソフトウェア部
９      受信ソフトウェア部
１１    パケット分配器
１３    通常パケット受信部（パケット受信部）
１５    割込パケット受信部（パケット受信部）
１７    通常パケット中継ブロック（パケット中継部）
１８    通常パケット送出ブロック（パケット送出部）
１９    割込パケット中継ブロック（パケット中継部）
２０    割込パケット送出ブロック（パケット送出部）
２３    出力切替部
７０    ハードウェア
Ｄ      データ
Ｄｎ    通常データ
Ｄｉ    割込データ
Ｄｔ    送信データ
Ｄｅ    入力データ
Ｄｔｎ  通常送信データ
Ｄｔｉ  割込送信データ
Ｄｅｎ  通常入力データ
Ｄｅｉ  割込入力データ
Ｄｒ    受信データ
Ｐ      パケット
Ｐｎ    通常パケット
Ｐｉ    割込パケット
Ｐｔ    送信パケット
Ｐｅ    入力パケット
Ｐｔｎ  通常送信パケット
Ｐｔｉ  割込送信パケット
Ｐｅｎ  通常入力パケット
Ｐｅｉ  割込入力パケット
Ｐｏ    出力パケット
【図１】
0006291516.tif 000002
【図２】
0006291516.tif 000003
【図３】
0006291516.tif 000004
【図４】
0006291516.tif 000005
【図５】
0006291516.tif 000006
【図６】
0006291516.tif 000007
【図７】
0006291516.tif 000008
【図８】
0006291516.tif 000009
【図９】
0006291516.tif 000010
【図１０】
0006291516.tif 000011
【図１１】
0006291516.tif 000012
【図１２】
0006291516.tif 000013
【図１３】
0006291516.tif 000014
【図１４】
0006291516.tif 000015
【図１５】
0006291516.tif 000016
【図１６】
0006291516.tif 000017
【図１７】
0006291516.tif 000018
【図１８】
0006291516.tif 000019
【図１９】
0006291516.tif 000020
【図２０】
0006291516.tif 000021
【図２１】
0006291516.tif 000022