(57)【要約】【課題】冗長線の状態も監視しながら通信を行うことができる通信システムを提供する。【解決手段】ｎ系統ある伝送路３に対して、信号線の冗長線を１本以上用意する。そして、通信ノードの伝送路切替スイッチ部８は、通信に使用する信号線を、冗長線を含む信号線群について周期的に切り替える。その際に、通信判定手段による通信の成否判定結果に基づいて信号線の使用可否を判定し、使用不可と判定された信号線については、次回以降の通信において切り替え対象より除外する。【選択図】図１
2013150148.tif 000002
【特許請求の範囲】
【請求項１】
一対の信号線により差動信号を伝送する伝送路が通信回路間に接続され、前記伝送路を介して信号を送信する通信システムにおいて、
ｎ（ｎは自然数）系統ある伝送路に対して、前記信号線の冗長線を１本以上用意し、
前記通信回路は、通信に使用する信号線を、前記冗長線を含む信号線群について周期的に切り替える信号線切り替え手段と、
前記通信の成否を判定する通信判定手段とを備え、
前記信号線切り替え手段は、前記判定の結果に基づいて信号線の使用可否を判定し、使用不可と判定された信号線については、次回以降の通信において切り替え対象より除外することを特徴とする通信システム。
【請求項２】
前記信号線切り替え手段は、通信に使用する信号線を切り替える際に、前回の通信で使用した一対の信号線のうち、一方だけを切り替えることを特徴とする請求項１記載の通信システム。
【請求項３】
前記信号線切り替え手段は、今回の切り替え先とする信号線を、前回の切り替え元の信号線とすることを特徴とする請求項２記載の通信システム。
【請求項４】
前記信号線切り替え手段は、
前記通信線の数に等しいビット数で構成される第１及び第２判定用レジスタ，並びに判定結果レジスタと、
前記各レジスタについて操作を行うレジスタ操作手段とを備え、
前記レジスタ操作手段は、前記通信判定手段による判定の結果を前記第１判定用レジスタに格納し、前記第１判定用レジスタを更新する以前に、当該レジスタの内容を前記第２判定用レジスタに格納し、前記第１判定用レジスタを更新した後に、当該レジスタの内容と、記第２判定用レジスタの内容との判定演算を行い、前記演算の結果を前記判定結果レジスタに格納する操作を行い、
前記判定結果レジスタの内容を参照することで前記信号線の使用可否を判定することを特徴とする請求項１ないし３の何れかに記載の通信システム。
【請求項５】
前記通信判定手段は、通信先に対して通信要求を送信する前に判定用セグメントを送信し、この送信に対する正常な応答があれば通信が成功したと判定することを特徴とする請求項１ないし４の何れかに記載の通信システム。
【請求項６】
前記通信判定手段は、前記判定用セグメントの送信に対する応答セグメントに含まれているデータの値が期待値と一致すると、通信が成功したと判定することを特徴とする請求項５記載の通信システム。
【請求項７】
前記通信判定手段は、前記判定用セグメントの送信に対する応答が所定の判定時間内にあれば、通信が成功したと判定することを特徴とする請求項５記載の通信システム。
【請求項８】
前記信号線切り替え手段は、使用可と判定された信号線が２ｎ本になると切り替え処理を停止し、使用可能な冗長線がなくなったことを報知手段を介して報知することを特徴とする請求項１ないし７の何れかに記載の通信システム。
【請求項９】
前記信号線切り替え手段は、通信が開始される毎に計時動作をリセットスタートする切替タイマを備え、
前記切替タイマにより示される切り替え時刻で、信号線の切り替えを行うことを特徴とする請求項１ないし８の何れかに記載の通信システム。
【請求項１０】
前記信号線切り替え手段は、前記切り替え時刻において通信の実行中であれば切り替えを行わず、次回の切り替え時刻において切り替えを行うことを特徴とする請求項９記載の通信システム。
【請求項１１】
前記信号線切り替え手段は、通信手順に対応するシーケンス番号の変化に従って、信号線の切り替えを行うことを特徴とする請求項１ないし８の何れかに記載の通信システム。
【請求項１２】
前記信号線切り替え手段は、フレーム単位で信号線の切り替えを行うことを特徴とする請求項１ないし８の何れかに記載の通信システム。
【請求項１３】
前記信号線切り替え手段は、通信回数に従って信号線の切り替えを行うことを特徴とする請求項１ないし８の何れかに記載の通信システム。
【請求項１４】
前記ｎが「２」以上である場合、ｎ系統ある伝送路の少なくとも２系統以上を、同一の通信チャネルとして使用することを特徴とする請求項１ないし１３の何れかに記載の通信システム。
【請求項１５】
前記ｎが「２」以上である場合、ｎ系統ある伝送路を、夫々異なる通信チャネルとして使用することを特徴とする請求項１ないし１３の何れかに記載の通信システム。
【請求項１６】
一対の信号線により差動信号を伝送する伝送路が通信回路間に接続され、前記伝送路を介して信号を送信する通信システムに使用される信号線切り替え制御方法であって、
ｎ（ｎは自然数）系統ある伝送路に対して、前記信号線の冗長線を１本以上用意し、
前記通信回路は、通信に使用する信号線を、前記冗長線を含む信号線群について周期的に切り替え、
前記通信の成否を判定すると、前記判定の結果に基づいて信号線の使用可否を判定し、使用不可と判定された信号線については、次回以降の通信において切り替え対象より除外することを特徴とする通信線切り替え制御方法。
【請求項１７】
通信に使用する信号線を切り替える際に、前回の通信で使用した一対の信号線のうち、一方だけを切り替えることを特徴とする請求項１６記載の通信線切り替え制御方法。
【請求項１８】
今回の切り替え先とする信号線を、前回の切り替え元の信号線とすることを特徴とする請求項１７記載の通信線切り替え制御方法。
【請求項１９】
前記通信線の数に等しいビット数で構成される第１及び第２判定用レジスタ，並びに判定結果レジスタとを用い、
前記判定の結果を前記第１判定用レジスタに格納して、前記第１判定用レジスタを更新する以前に、当該レジスタの内容を前記第２判定用レジスタに格納し、
前記第１判定用レジスタを更新した後に、当該レジスタの内容と、記第２判定用レジスタの内容との判定演算を行い、前記演算の結果を前記判定結果レジスタに格納し、
前記判定結果レジスタの内容を参照することで前記信号線の使用可否を判定することを特徴とする請求項１６ないし１８の何れかに記載の通信線切り替え制御方法。
【請求項２０】
通信先に対して通信要求を送信する前に判定用セグメントを送信し、この送信に対する正常な応答があれば通信が成功したと判定することを特徴とする請求項１６ないし１９の何れかに記載の通信線切り替え制御方法。
【請求項２１】
前記判定用セグメントの送信に対する応答セグメントに含まれているデータの値が期待値と一致すると、通信が成功したと判定することを特徴とする請求項２０記載の通信線切り替え制御方法。
【請求項２２】
前記判定用セグメントの送信に対する応答が所定の判定時間内にあれば、通信が成功したと判定することを特徴とする請求項２０記載の通信線切り替え制御方法。
【請求項２３】
使用可と判定された信号線が２ｎ本になると切り替え処理を停止し、使用可能な冗長線がなくなったことを報知することを特徴とする請求項１６ないし２２の何れかに記載の通信線切り替え制御方法。
【請求項２４】
通信が開始される毎に計時動作をリセットスタートする源投入時から計時動作を開始する切替タイマを用い、
前記切替タイマにより示される切り替え時刻で、信号線の切り替えを行うことを特徴とする請求項１６ないし２３の何れかに記載の通信線切り替え制御方法。
【請求項２５】
前記切り替え時刻において通信の実行中であれば切り替えを行わず、次回の切り替え時刻において切り替えを行うことを特徴とする請求項２４記載の通信線切り替え制御方法。
【請求項２６】
通信手順に対応するシーケンス番号の変化に従って、信号線の切り替えを行うことを特徴とする請求項１６ないし２５の何れかに記載の通信線切り替え制御方法。
【請求項２７】
フレーム単位で信号線の切り替えを行うことを特徴とする請求項１６ないし２５の何れかに記載の通信線切り替え制御方法。
【請求項２８】
通信回数に従って信号線の切り替えを行うことを特徴とする請求項１６ないし２５の何れかに記載の通信線切り替え制御方法。
【請求項２９】
前記ｎが「２」以上である場合、ｎ系統ある伝送路の少なくとも２系統以上を、同一の通信チャネルとして使用することを特徴とする請求項１６ないし２８の何れかに記載の通信線切り替え制御方法。
【請求項３０】
前記ｎが「２」以上である場合、ｎ系統ある伝送路を、夫々異なる通信チャネルとして使用することを特徴とする請求項１６ないし２８の何れかに記載の通信線切り替え制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一対の信号線により差動信号を伝送する伝送路が通信回路間に接続され、前記伝送路を介して信号を送信する通信システム，及び前記通信に使用する通信線の切り替え制御方法に関する。
【背景技術】
【０００２】
特許文献１には、フィールド機器と、このフィールド機器に電力を供給する外部電源との間を接続する伝送路に冗長性を持たせておき、使用中の一対の伝送路について異常を監視し、異常が発生すると健全な他の一対の伝送路に切り替えることで、フィールド機器に対して電力供給を継続する多線式のフィールドバスシステムが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平６−３８２６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１のシステムでは、使用中の伝送路についてのみ異常の発生を監視するため、冗長線の状態については監視されておらず、切り替えた伝送路が不健全な状態となっている可能性が否定できない。
本発明は上記事情に鑑みてなされたものであり、その目的は、冗長線の状態も監視しながら通信を行うことができる通信システム及び通信線切り替え制御方法を提供することにある。
【課題を解決するための手段】
【０００５】
請求項１記載の通信システムによれば、ｎ系統ある伝送路に対して冗長線を１本以上用意する。そして、通信回路の信号線切り替え手段は、通信に使用する信号線を、冗長線を含む信号線群について周期的に切り替える。その際に、通信判定手段による通信の成否判定結果に基づいて信号線の使用可否を判定し、使用不可と判定された信号線については、次回以降の通信において切り替え対象より除外する。
このように構成すれば、信号線群に含まれている冗長線も周期的に通信に使用されることになるので、実際には「冗長線」として固定的に区別される信号線は存在せず、その時々で通信に使用されていない信号線が相対的に冗長線となる。そして、通信判定手段が通信の成否を判定するので、冗長線（信号線の何れか１つ以上）に断線等の異常が生じている場合には、その状態が検出されて切り替え対象より除外される。したがって、フェイルセーフ対策としてより有効な構成となる。
【０００６】
請求項２記載の通信システムによれば、信号線切り替え手段は、通信に使用する信号線を切り替える際に、前回の通信で使用した一対の信号線のうち一方だけを切り替えるようにする。このように構成すれば、同じ信号線を用いて２回続けて通信を行うことになるので、前記信号線に異常が発生しているとすれば、通信判定手段は、それら２回の通信に伴う判定により前記信号線に異常が発生していることを特定できる。
【０００７】
請求項３記載の通信システムによれば、信号線切り替え手段は、今回の切り替え先とする信号線を、前回の切り替え元の信号線とする。このように構成すれば、一対の信号線の双方について２回続けて通信を行うことになるので、通信判定手段は、判定をより効率的に行うことができる。
【０００８】
請求項４記載の通信システムによれば、信号線切り替え手段として、通信線の数に等しいビット数で構成される第１及び第２判定用レジスタ，並びに判定結果レジスタを備える。レジスタ操作手段は、通信判定手段による判定の結果を第１判定用レジスタに格納し、その第１判定用レジスタを更新する以前に、当該レジスタの内容を第２判定用レジスタに格納する。そして、第１判定用レジスタを更新した後に、当該レジスタの内容と第２判定用レジスタの内容とについて判定演算を行い、その結果を判定結果レジスタに格納する。信号線切り替え手段は、判定結果レジスタの内容を参照することで信号線の使用可否を判定する。
【０００９】
すなわち、一対の信号線からなる伝送路において差動信号を伝送する通信を前提とするので、１回だけ行った通信が失敗したという結果のみでは、一対の信号線の何れに異常が発生しているのかを特定できない。そこで、その判定結果を第１判定用レジスタに格納し、次回の通信が開始される前に、前記レジスタの内容を第２判定用レジスタに転送しておく。そして、次回の通信の成否判定結果を第１判定用レジスタに格納した段階で、２つの判定用レジスタの内容を判定演算により照合すれば、請求項２，３について述べたように、連続する２回の通信で、異常がある同じ信号線を続けて使用するように切り替えを行えば前記信号線の異常を特定することができる。
【００１０】
請求項５記載の通信システムによれば、通信判定手段は、通信先に対して通信要求を送信する前に判定用セグメントを送信し、この送信に対する正常な応答があれば通信が成功したと判定する。したがって、通常の通信を行った結果で成否を判定せずとも、より短い時間で成否を判定することができる。
【００１１】
請求項６記載の通信システムによれば、通信判定手段は、判定用セグメントの送信に対する応答セグメントに含まれているデータの値が期待値と一致すると、通信が成功したと判定するので、より確実に判定を行うことができる。
【００１２】
請求項７記載の通信システムによれば、通信判定手段は、判定用セグメントの送信に対する応答が所定の判定時間内にあれば通信が成功したと判定するので、応答内容を参照せずとも判定を行うことができる。
【００１３】
請求項８記載の通信システムによれば、信号線切り替え手段は、使用可と判定された信号線が２ｎ本になると切り替え処理を停止し、使用可能な冗長線がなくなったことを報知手段を介して報知する。したがって、ユーザは、切り替え可能な信号線がなくなった時点でメンテナンスを行う等の対策を取ることができる。
【００１４】
請求項９記載の通信システムによれば、信号線切り替え手段は、通信が開始される毎に計時動作をリセットスタートする切替タイマにより示される切り替え時刻で、信号線の切り替えを行う。このように構成すれば、送信側，受信側の通信回路は、何れも切り替え時刻に同期して切り替えを行うことができる。
【００１５】
請求項１０記載の通信システムによれば、信号線切り替え手段は、切り替え時刻において通信の実行中であれば切り替えを行わず、次回の切り替え時刻において切り替えを行う。したがって、実行中の通信を中断することなく切り替えを行うことができる。
【００１６】
請求項１１記載の通信システムによれば、信号線切り替え手段は、通信手順に対応するシーケンス番号の変化に従って信号線の切り替えを行うので、通信手順が順次進行する過程において、予め特定したシーケンス番号の通信を開始するタイミングで同期して切り替えを行うことができる。
【００１７】
請求項１２記載の通信システムによれば、信号線切り替え手段は、フレーム単位で信号線の切り替えを行うので、１つの処理を実行するための複数回の通信のまとまりであるフレームを単位（１フレーム以上を単位とすれば良い）として、同期して切り替えを行うことができる。
【００１８】
請求項１３記載の通信システムによれば、信号線切り替え手段は、通信回数に従って信号線の切り替えを行うので、通信の実行回数をカウントすることで同期して切り替えを行うことができる。
【００１９】
請求項１４記載の通信システムによれば、ｎ系統ある伝送路の少なくとも２系統以上を同一の通信チャネルとして使用するので、１つの通信チャネルを多重化して異常の発生に備えることができる。
【００２０】
請求項１５記載の通信システムによれば、ｎ系統ある伝送路を、夫々異なる通信チャネルとして使用するので、通信帯域を拡張できる。
【図面の簡単な説明】
【００２１】
【図１】第１実施例であり、通信システムの構成を示す機能ブロック図
【図２】信号線の切り替えパターンを説明する図
【図３】通信の成否を判定する処理を示すシーケンス図
【図４】（ａ）は判定用セグメント、（ｂ）は応答セグメント、（ｃ）はその他の通信に使用するパケットの構成を示す図
【図５】通信全体のシーケンス図
【図６】通信ノードが行う処理内容を示すフローチャート
【図７】ステップＳ７の処理内容に対応する各レジスタ値の具体例を示す図
【図８】冗長線数が「２」の場合に信号線を切り換えるパターン例と、その切り換えに伴う各レジスタの内容の変化例を示す図
【図９】信号線Ｎｏ．３に異常がある場合の図８相当図
【図１０】複数の伝送路を異なる通信チャネルとして使用する状態を示す図
【図１１】複数の伝送路を全て同じ通信チャネルとして使用する状態を示す図
【図１２】第２実施例を示す図９相当図
【図１３】第３実施例を示す図６相当図
【図１４】第４実施例を示す図５相当図
【図１５】第５実施例を示す図５相当図
【図１６】第６実施例を示す図５相当図
【発明を実施するための形態】
【００２２】
（第１実施例）
以下、第１実施例について図１ないし図１１を参照して説明する。図１において、通信ノード（通信回路）１，２の間は、伝送路群３を介して接続されている。伝送路群３は、それぞれが２本の信号線を一対とする複数の伝送路３ａ，３ｂ，３ｃ，…からなっている。各伝送路３ａ，３ｂ，３ｃ，…には、それぞれ差動信号が送信されて通信が行われる。また、伝送路群３は、複数の信号線の何れかに例えば断線等の故障が発生した場合に切り換えて使用するための冗長線を１本以上含んでいる。すなわち、ｎ（ｎは自然数）対の伝送路があり、冗長線の本数がＬRであれば、伝送路群３における信号線の総本数Ｎは、
Ｎ＝２ｎ＋ＬR
となる。そして、Ｎ本の信号線が信号線群となる。尚、通信ノード１，２の構成は同じであるから、特に両者を区別することなく説明する。
【００２３】
通信ノード１，２は、電源部４，送受信回路５，トランシーバ部７及び伝送路切替スイッチ部８（信号線切り替え手段）を備えている。電源部４は、外部の電源である例えば車両のバッテリから供給される電源を受けて制御用電源を生成し、各部に供給する。送受信回路５は、マイクロコンピュータで構成されており、伝送路切替スイッチ部８が信号線の切り替えを行うトリガを出力するための切替タイマ９を備え、この切替タイマ９に時刻データを設定するため等に使用するシステム設定情報等がメモリに記憶されている。
【００２４】
送受信回路５は、データ送受信部１０において、送信データをシリアル変換して、通信規格に従い通信フレームを構成するとトランシーバ部７に出力する。また、データ送受信部１０は、トランシーバ部７を介して入力された通信フレームに含まれている受信データを取得する。また、送受信回路５は、電源部４から通信ノードへの電源供給を遮断する機能を備えている。
【００２５】
送受信回路５は、更に通信判定部１１（通信判定手段，レジスタ操作手段，信号線切り替え手段）と、パーミッションレジスタ１２Ａ及び１２Ｂ（第１及び第２判定用レジスタ）や、ステータスレジスタ１３（判定結果レジスタ）等を含むレジスタブロック１４とを備えている。通信判定部１１は、伝送路群３を介して行った通信について成否を判定し、その判定結果をパーミッションレジスタ１２Ａに格納する。尚、パーミッションレジスタ１２Ａ及び１２Ｂ，並びにステータスレジスタ１３のビット数は、信号線の総本数Ｎに等しく設定されており、通信判定部１１は、通信に使用した信号線に対応するパーミッションレジスタ１２Ａのビットに通信が成功すれば「０」を、通信が失敗した場合は「１」を格納する。
【００２６】
また、通信判定部１１は、パーミッションレジスタ１２Ａの内容を更新する以前に、前記内容をパーミッションレジスタ１２Ｂに転送しておく。そして、パーミッションレジスタ１２Ａの内容を、最新の判定結果により更新すると、パーミッションレジスタ１２Ａ及び１２Ｂ双方の、対応するビットについて論理積演算（判定演算）を行い、その演算結果をステータスレジスタ１３に格納する。尚、少なくともステータスレジスタ１３については、不揮発性，若しくはバッテリバックアップされたメモリに領域が設定されている。
【００２７】
通信ノード１，２は、伝送路３ａ，３ｂ，３ｃ，…の数に対応した複数のトランシーバ部７ａ，７ｂ，７ｃ，…を備えており、トランシーバ部７は、ドライバ１５，レシーバ１６，ターミネータ１７で構成されている。そして、ドライバ１５の出力端子と、レシーバ１６の入力端子とは、ターミネータ１７を介して伝送路切替スイッチ部８に接続されている。ターミネータ１７は、伝送路群３を構成する各信号線を終端する終端抵抗である。伝送路切替スイッチ部８は、例えばトランジスタ等からなるスイッチにより構成され、トランシーバ部７と、伝送路群３の信号線との接続を所定の順序で切り替える。
【００２８】
次に、本実施例の作用について図２ないし図１１を参照して説明する。図２は、伝送路切替スイッチ部８が行う信号線の切り替えパターンを説明するものである。図２では、説明を容易にするため、１つの伝送路（ｎ＝１）に対して冗長線の本数ＬRが「１」の場合、すなわち総信号線数Ｎが「３」の場合を示している。図中のＰ，Ｎは、トランシーバ部７の一対の入出力端子（高電位側，低電位側）であり、送信側と受信側とが（１）〜（６）のパターンを同期して切り替える。
【００２９】
下記の矢印（→）の先にある数字は信号線の番号であり、パターンの移行に伴い変化した番号に下線を付している（図２では、切り替えた信号線を太線で図示している）。以下は図２（ａ）に示すパターンである。
パターン（１）    Ｐ→１，Ｎ→２
パターン（２）    Ｐ→１，Ｎ→３
パターン（３）    Ｐ→２，Ｎ→３
パターン（４）    Ｐ→２，Ｎ→１
パターン（５）    Ｐ→３，Ｎ→１
パターン（６）    Ｐ→３，Ｎ→２
すなわち、一対の信号線の切り替えは、何れか一方だけを交互に切り替えるようになっている。また、例えばパターン（２）から（３）への移行時に端子Ｐの切り替え先となる信号線「２」は、パターン（１）から（２）への移行時に端子Ｎの切り替え元となっている。つまり、後から切り替えられる方の切り替え先は、先に切り替えられた方の後を追うようなパターンとなっている。
【００３０】
図２（ａ）は、端子Ｎ側を先に切り換えるパターンであるが、図２（ｂ）及び以下に示すように端子Ｐ側を先に切り換えても良い。
パターン（１）    Ｐ→１，Ｎ→２
パターン（２）    Ｐ→３，Ｎ→２
パターン（３）    Ｐ→３，Ｎ→１
パターン（４）    Ｐ→２，Ｎ→１
パターン（５）    Ｐ→２，Ｎ→３
パターン（６）    Ｐ→１，Ｎ→３
尚、これらの例から分かるように、実際には「冗長線」として固定的に区別される信号線は存在せず、その時々で通信に使用されていない信号線が相対的に冗長線となる。
【００３１】
図３は、送受信回路５が行う通信の成否を判定する処理を示すシーケンス図であり、左側がマスタとなる通信ノード，右側がスレーブとなる通信ノードである。一般的な通信であれば、マスタが通信先となるスレーブを指定して（但し、本実施例の場合は通信先が特定されているため不要）通信開始要求Requestを送信し、それに対してスレーブが応答Responseを返すことで通信が開始される。本実施例では、それに先立ち、マスタがスレーブに対して判定用セグメントSYNを送信し、それに対してスレーブが応答セグメントであるアクノリッジSYN-ACKを返せば、マスタは、今回の通信に使用するために選択した信号線は正常であると判定して（ＯＫ）通常の通信を開始する。
【００３２】
ここで、判定用セグメントSYNは、信号線が正常か否かを判定するためだけに送信されるので、通常の通信に使用されるような長いパケットで送信する必要はない（図４（ｃ）参照）。例えば図４（ａ）に示すように、ＳＯＦ（Start Of Frame）とコマンドフレーム（判定コマンド）からなるセグメントとして送信する。これにより、通常の通信を開始する前の判定を迅速に行う。また、アクノリッジSYN-ACKについては、例えば図４（ｂ）に示すように、スレーブ側が予め定められているデータ値を期待値としてセットし、アクノリッジSYN-ACKを受信したマスタが前記所定の期待値がセットされていることを確認した場合に正常であると判定しても良い。図４（ｃ）は、その他の通信に使用されるパケットの一例を示しており、ＳＯＦ，シーケンス番号（第４実施例参照），コマンドフレーム（Read,Write等），ＣＲＣ（Cyclic Redundancy Check）等で構成されている。
【００３３】
図３の例では、スレーブが応答Responseを返すとマスタがスレーブにデータDataを送信し、それに対してスレーブがアクノリッジACKを返している。また、この例では、マスタが通信開始要求Requestを送信した以降も、スレーブ，マスタがそれぞれシーケンスにおける受信の有無に応じて通信の成否を判定している。すなわち、スレーブは、判定用セグメントSYNを受信した後、所定時間内に通信開始要求Requestを受信すればＯＫと判定するが、所定時間内に受信しなければＮＧと判定する（後述する「タイムアウト」）。
【００３４】
以降のシーケンスについても同様であり、マスタは、通信開始要求Requestの送信に対して所定時間内に応答Responseを受信すればＯＫと判定するが、所定時間内に受信しなければＮＧと判定する。また、スレーブは、通信開始要求Requestの受信に対して所定時間内にデータDataを受信すればＯＫと判定するが、所定時間内に受信しなければＮＧと判定する。続くマスタ側のアクノリッジACKの受信についても同様である。但し、これらの判定については必要に応じて行えば良い。
【００３５】
図５は、図３の処理を含む通信全体のシーケンスを示すものである。通信ノード１，２が備えている切替タイマ９は、マスタが通信を開始する毎にリセットスタートするようになっており、伝送路切替スイッチ部８は、切替タイマ９により計時される時刻が所定の時刻になると使用する信号線を切り換える。これにより、マスタ，スレーブ間における切り替えタイミングの同期が維持される。
【００３６】
そして、この例では、基本的にはマスタ−スレーブ間での送受信が１回行われる毎に（送信に対する返信があるまで）使用する信号線が切り換えられている。
ケース（１）            Ｐ→１，Ｎ→２
ケース（２）            Ｐ→１，Ｎ→３
ケース（３）            Ｐ→２，Ｎ→３
ケース（４）            Ｐ→２，Ｎ→４
ケース（５）            Ｐ→３，Ｎ→４
ケース（６）            Ｐ→３，Ｎ→５
…                …
また、マスタからスレーブへデータDataを送信している途中で切り替え時刻が到来しているケースがあるが、この場合は切り替えを行わず、次回の切り替え時刻で切り替えを行う。
【００３７】
以下で、信号線の後に付した括弧内数字は、上記の信号線番号を示す。ケース（６）において、信号線（３，５）を用いてマスタである通信ノード１が送信した判定用セグメントSYNに対し、スレーブである通信ノード２が所定時間内にアクノリッジSYN-ACKを返信しなかったため、通信ノード１側は「タイムアウト」により通信失敗と判断する。同様に、通信ノード２側においても、通信ノード１からの送信がないまま切替タイマ９が所定時間に達したことで通信失敗と判断する。
【００３８】
続いて信号線（４，５）に切り替えて、通信ノード１が再度判定用セグメントSYNを送信した結果も、同様に「タイムアウト」となり双方が通信失敗と判断する。その結果、信号線（５）については「使用不可」が確定するので、以降の切り替え対象から除外し（詳細は後述する）、次は信号線（４，７）に切り替えて判定用セグメントSYNを送信することになる。
【００３９】
次に、信号線の切り替えと、通信結果に基づく判定処理について図６ないし図１１を参照して説明する。図６は、通信ノード１，２が行う処理内容を示すフローチャートである。通信ノード１，２に電源が投入されると（Ｓ１）、通信判定部１１は、ステータスレジスタ１３の内容を参照し（Ｓ２）、最初の通信に使用する信号線を選択する（Ｓ３）。そして通信を実行し（Ｓ４）、その実行結果を判定する（Ｓ５）。
【００４０】
続くステップＳ６では、ステップＳ５における判定の結果をパーミッションレジスタ１２Ａに格納する。すなわち、通信に使用した信号線の番号に対応するビットに、「ＯＫ」であれば「０（available）」を、「ＮＧ」であれば「１（suspicious）」を格納する。この段階の「ＮＧ」を「１（suspicious；疑わしい）」とするのは、通信が失敗した場合に、使用した２本の信号線の何れに異常があるのかを確定できないからである。
【００４１】
もう１つのパーミッションレジスタ１２Ｂには、前回の通信結果が格納されている。そこで、次のステップＳ７では、パーミッションレジスタ１２Ａ，１２Ｂの内容について論理積演算を行い、その結果をステータスレジスタ１３に格納する。図７は、ステップＳ７の処理内容に対応する各レジスタ値の具体例を示す。今回の通信結果が反映されているパーミッションレジスタ１２Ａの内容と、前回の通信結果が反映されているパーミッションレジスタ１２Ｂの内容とを論理積演算すると、双方の対応するビットが「１」であるものが「１」になり、少なくとも何れか一方が「０」であれば「０」になる。図７に示す例では、信号線Ｎｏ．２，３に対応するビットが「１」になり、信号線Ｎｏ．１，ｎに対応するビットは「０」になる。上記の演算結果はステータスレジスタ１３に格納され、対応するビットに「１」が立つ信号線は「ＮＧ（使用不可）」が確定することになる。
【００４２】
そして、ステータスレジスタ１３の内容が登録されると（Ｓ８）、伝送路切替スイッチ部８は、対応するビットに「１」が立つ信号線を以降の切り替え対象から除外する。そして、対応するビットが「０」である残りの信号線数を確認し（Ｓ９）、（２ｎ＋１）本以上あれば順序に従い次の切り替えを行い（Ｓ１１）ステップＳ４に移行する。
一方、ステップＳ９において残りの信号線数が２ｎ本になると、冗長線が無くなったことになるためユーザに対して警告（アラーム）を行い（Ｓ１）ステップＳ４に移行する。警告は、例えば点灯表示を行ったり警告音を出力するための報知手段を用いて行う。更に、ステップＳ９において残りの信号線数が（２ｎ−１）本になれば、通信を続行できなくなるため電源を遮断して通信ノードの動作を停止する（Ｓ１２）。
【００４３】
図８は、伝送路数が「１」で信号線数が「４」，すなわち冗長線数が「２」である場合に、信号線を切り換えるパターン例と、その切り換えに伴うパーミッションレジスタ１２Ａ，１２Ｂ並びにステータスレジスタ１３の内容の変化例を示す。但し、何れの信号線にも異常がないことを前提とする。この場合、パターンは以下の（１）〜（８）の循環となる。
パターン（１）    Ｐ→１，Ｎ→２
パターン（２）    Ｐ→１，Ｎ→３
パターン（３）    Ｐ→２，Ｎ→３
パターン（４）    Ｐ→２，Ｎ→４
パターン（５）    Ｐ→３，Ｎ→４
パターン（６）    Ｐ→３，Ｎ→１
パターン（７）    Ｐ→４，Ｎ→１
パターン（８）    Ｐ→４，Ｎ→２
そして、何れの信号線にも異常がないので、パーミッションレジスタ１２Ａ，１２Ｂ並びにステータスレジスタ１３の内容は何れも「０」で変化がない。
【００４４】
一方、図９は、信号線Ｎｏ．３に異常がある場合の図８相当図である。この場合、パターン（２）においてパーミッションレジスタ１２Ａの第１，第３ビットが「１」となり、パターン（３）においてパーミッションレジスタ１２Ａの第２，第３ビットが「１」となる。この時点で、パターン（２）の結果が反映されているパーミッションレジスタ１２Ｂとの論理積演算を行うと、第３ビットが「１」となり、その結果がステータスレジスタ１３に格納され、信号線Ｎｏ．３については「使用不可」が確定する。
【００４５】
そして、信号線Ｎｏ．３が切り替え対象から除外されることで、（５）以降のパターンは以下のように変化する。
パターン（５）    Ｐ→１，Ｎ→４
パターン（６）    Ｐ→１，Ｎ→２
パターン（７）    Ｐ→４，Ｎ→２
パターン（８）    Ｐ→４，Ｎ→１
パターン（９）    Ｐ→２，Ｎ→１
パターン（４）    Ｐ→２，Ｎ→４
…                …
【００４６】
また、図１に示すように、通信ノード１，２の間には複数の伝送路３ａ，３ｂ，３ｃ，…が存在するが、これら複数の伝送路３ａ，３ｂ，３ｃ，…については図１０に示すように夫々異なる通信チャネルｃｈ１，ｃｈ２，ｃｈ３，…として設定しても良いし、図１１に示すように２系統以上を（全てでも良い）同一の通信チャネルとして使用しても良い。後者の場合、通信帯域は狭くなるが通信チャネルが多重化されるので１つの伝送路が使用できなくなった場合でも他の伝送路を使用して通信できるので、フェイルセーフ対策として有効である。
【００４７】
以上のように本実施例によれば、ｎ系統ある伝送路３に対して、冗長線を１本以上用意する。そして、通信ノードの伝送路切替スイッチ部８は、通信に使用する信号線を、冗長線を含む信号線群について周期的に切り替える。その際に、通信判定部１１による通信の成否判定結果に基づいて信号線の使用可否を判定し、使用不可と判定された信号線については、次回以降の通信において切り替え対象より除外する。
このように構成すれば、信号線群に含まれている冗長線も周期的に通信に使用されることになる。そして、通信判定部１１が通信の成否を判定するので、冗長線（信号線の何れか１つ以上）に断線等の異常が生じている場合には、その状態が検出されて切り替え対象より除外される。したがって、フェイルセーフ対策としてより有効な構成となる。
【００４８】
また、伝送路切替スイッチ部８は、通信に使用する信号線を切り替える際に、前回の通信で使用した一対の信号線のうち一方だけを切り替える。したがって、同じ信号線を用いて２回続けて通信を行うことになるので、前記信号線に異常が発生しているとすれば、その２回の通信に伴う判定により前記信号線に異常が発生していることを特定できる。更に、伝送路切替スイッチ部８は、今回の切り替え先とする信号線を、前回の切り替え元の信号線とする。このように構成すれば、一対の信号線の双方について２回続けて通信を行うことになるので、判定をより効率的に行うことができる。
【００４９】
また、通信線の数に等しいビット数で構成されるパーミッションレジスタ１２Ａ，１２Ｂ，並びにステータスレジスタ１３を備え、通信判定部１１は、判定の結果をパーミッションレジスタ１２Ａに格納し、当該レジスタ１２Ａを更新する以前に、当該レジスタ１２Ａの内容をパーミッションレジスタ１２Ｂに格納する。そして、パーミッションレジスタ１２Ａを更新した後に、当該レジスタ１２Ａの内容とパーミッションレジスタ１２Ｂの内容との論理積演算を行い、その結果をステータスレジスタ１３に格納すると、伝送路切替スイッチ部８は、ステータスレジスタ１３の内容を参照することで信号線の使用可否を判定する。
【００５０】
すなわち、一対の信号線からなる伝送路３において差動信号を伝送する通信を前提とする場合、１回だけ行った通信が失敗したという結果のみでは、一対の信号線の何れに異常が発生したのかを特定できない。そこで、その判定結果をパーミッションレジスタ１２Ａに格納し、次回の通信が開始される前に、前記レジスタ１２Ａの内容を第２判定用レジスタに転送しておく。そして、次回の通信の成否判定結果をパーミッションレジスタ１２Ｂに格納した段階で、２つのレジスタ１２Ａ，１２Ｂの内容を判定演算により照合すれば、連続する２回の通信で信号線の異常を特定することができる。
【００５１】
また、通信判定部１１は、通信先のスレーブに対して通信要求を送信する前に判定用セグメントSYNを送信し、スレーブがアクノリッジSYN-ACKを返すことで正常な応答があれば通信が成功したと判定する。したがって、通常の通信を行った結果で成否を判定せずとも、より短い時間で成否を判定することができる。また、通信判定部１１が、判定用セグメントSYNの送信に対するアクノリッジSYN-ACKに含まれているデータの値が期待値と一致すると通信が成功したと判定すれば、より確実に判定を行うことができる。
また、通信判定部１１は、使用可と判定された信号線が２ｎ本になると切り替え処理を停止し、使用可能な冗長線がなくなったことを報知手段を介して報知する。したがって、ユーザは、切り替え可能な信号線がなくなった時点でメンテナンスを行う等の対策を取ることができる。
【００５２】
伝送路切替スイッチ部８は、通信が開始される毎に計時動作をリセットスタートする切替タイマ９により示される切り替え時刻で、信号線の切り替えを行う。このように構成すれば、送信側，受信側の通信ノードは、何れも切り替え時刻に同期して切り替えを行うことができる。また、伝送路切替スイッチ部８は、切り替え時刻において通信の実行中であれば切り替えを行わず、次回の切り替え時刻において切り替えを行う。したがって、実行中の通信を中断することなく切り替えを行うことができる。
また、複数系統ある伝送路の少なくとも２系統以上を同一の通信チャネルとして使用すれば、１つの通信チャネルを多重化して異常の発生に備えることができる。そして、複数系統ある伝送路を夫々異なる通信チャネルとして使用すれば、通信帯域を拡張できる。
【００５３】
（第２実施例）
図１２は第２実施例を示す図９相当図であり、第１実施例と同一部分には同一符号を設定し、以下異なる部分について説明する。第２実施例では、パーミッションレジスタ１２Ａ，１２Ｂの対応するビットにそれぞれ「１」が立ち、ステータスレジスタ１３に「１」が格納された前記ビットをマスク処理することで、以降は前記ビットを利用しない（判定演算の対象としない）。図１２では、マスクしたビットをハッチングで示している。マスク処理は、例えば図６に示すフローチャートのステップＳ８において行う。
【００５４】
マスク処理は、具体的には、例えばパーミッションレジスタ１２に対応するマスクレジスタを用意しておき、図１２に示す例では、第３ビットに「１」をセットすることで、以降のレジスタ操作においては、対応するビットをハードウェア的に存在しないものとして取り扱うようにする。このように構成すれば、以降に使用する余地がないビットについて、誤った取扱を行う可能性が無くなる。
【００５５】
（第３実施例）
図１３は第３実施例であり、第１実施例を補足する内容である。第１実施例では、ステップＳ５において通信の成否を判定する際に、通信先のスレーブに対して通信要求を送信する前に判定用セグメントSYNを送信し、スレーブがアクノリッジSYN-ACKを返すことで正常な応答があれば通信が成功したと判定する。また、図５に示しているように、判定用セグメントSYNの送信に対し、スレーブが所定時間内に応答を返さなかったケースでも「タイムアウト」により通信失敗と判断している。
【００５６】
図１３は、上記のタイムアウト判定を行う部分も反映させたフローチャートである。尚、タイムアウト判定を行うために使用するタイマには、切替タイマ９を兼用している。勿論、独立した判定用タイマを使用しても良い。ステップＳ３，Ｓ４の間に「切替タイマReset/Start」の処理ステップＳ１３が挿入されており、ステップＳ５に替えて「通信判定」の判断ステップＳ１４が配置されている。尚、ステップＳ１３については第１実施例においても、実質的にこのタイミングで計時をリセットスタートしていることになる。
【００５７】
そして、ステップＳ１４では、切替タイマ９が信号線の切り替え時刻よりも早い時刻に設定されているタイムアウト時刻になった時点で、タイムアウトによる「ＮＧ」と判断してステップＳ６に移行する。また、ステップＳ１４では、第１実施例で行った判定に加えてタイムアウトによる「ＮＧ」判定を追加しているが、タイムアウトの有無のみによる判定を行っても良い。
以上のように第３実施例によれば、通信判定部１１は、判定用セグメントSYNの送信に対する応答が所定の判定時間内にあれば通信が成功したと判定し、応答が所定の判定時間内になければタイムアウトにより通信失敗と判定するので、応答内容を参照せずとも判定を行うことができる。
【００５８】
（第４実施例）
図１４は第４実施例を示す図５相当図であり、第１実施例と異なる部分のみ説明する。第４実施例では、信号線の切り替えを切替タイマ９の時刻によって行うのではなく、通信手順に付されるシーケンス番号に変化に応じて切り替えを行う。尚、図１４には、切替タイマ９のリセットスタートも示されているが、これは第３実施例のようにタイムアウト判定を行うためだけに用いられている。
【００５９】
この場合、通信ノードは、シーケンス番号をカウントするためのカウンタを備えており、例えばカウンタの初期値０００ｂでスタートし、通信手順が進む毎に前記カウンタをインクリメントする。そして、信号線の切り替えは、例えば（バイナリ）カウンタのＬＳＢが「１」の場合に行うようにする。通信がタイムアウトにより失敗した場合には、カウンタはインクリメントされず、現状値を維持する。尚、上記カウンタは、例えば通信判定部１１が参照することで伝送線路切替スイッチ８に切り替え制御信号を与えても良いし、伝送線路切替スイッチ８にカウンタを持たせてハードウェアロジックで切り換えるようにしても良い。
【００６０】
また、図１４に示す例では、信号線Ｎｏ．２，４を用いた通信と、信号線Ｎｏ．３，４を用いた通信とが連続して「ＮＧ」となったため、信号線Ｎｏ．４について「使用不可」が確定している。
以上のように第４実施例によれば、伝送線路切替スイッチ８は、通信手順に対応するシーケンス番号の変化に従って信号線の切り替えを行うので、通信手順が順次進行する過程において、予め特定したシーケンス番号の通信を開始するタイミングで同期して切り替えを行うことができる。
【００６１】
（第５実施例）
図１５は第５実施例を示す図５相当図であり、第１実施例と異なる部分のみ説明する。第５実施例では、単に実行される通信回数をカウントし、そのカウント結果に応じて信号線を切り替える場合を示す。ここでの「通信回数」は、マスタからスレーブへの送信と、その送信に対するスレーブからの応答を対として１回とカウントする。図１５に示す例では、通信回数「２」で信号線を切り替えている。尚、切替タイマ９のリセットスタートについては、第４実施例と同様である。また、通信回数をカウントするカウンタの配置についても第４実施例と同様である。
【００６２】
以上のように第５実施例によれば、伝送線路切替スイッチ８は、通信回数に従って信号線の切り替えを行うので、通信の実行回数をカウントすることで同期して切り替えを行うことができる。
【００６３】
（第６実施例）
図１６は第６実施例を示す図５相当図であり、第１実施例と異なる部分のみ説明する。第６実施例では、通信のフレームを単位として信号線を切り替える場合を示す。ここでの「フレーム」とは、マスタからスレーブへのデータの送信であるWriteや、マスタがスレーブからデータを受信するReadなどの処理を行うための一連の通信のまとまりを言う。すなわち、図１６に示すように、
SYN／SYN-ACK／Request／Response／Data／ACK
までの一連の通信がWriteフレームとなる。そして、１つの通信フレームが終了して次の通信フレームを開始する前に信号線を切り替えている。尚、切替タイマ９のリセットスタートについては、第４実施例等と同様である。
【００６４】
また、図１６に示す例では、信号線Ｎｏ．２，３を用いた通信と、信号線Ｎｏ．２，４を用いた通信とが連続して「ＮＧ」となったため、信号線Ｎｏ．２について「使用不可」が確定している。
以上のように第６実施例によれば、伝送線路切替スイッチ８は、フレーム単位で信号線の切り替えを行うので、１つの処理を実行するための複数回の通信のまとまりであるフレームを単位として、同期して切り替えを行うことができる。
【００６５】
本発明は上記し又は図面に記載した実施例にのみ限定されるものではなく、以下のような変形又は拡張が可能である。
冗長線の数については、適宜変更して良い。
信号線の切り替えパターンについては上記実施例のものに限らないが、少なくとも、同一の信号線を２回連続して使用するパターンが１つだけ含まれていれば良い。
通信の成否の判定結果については、必ずしも３つのレジスタに反映させる必要はなく、例えば、メモリ上に所定の領域を設けて通信結果を順次記憶させ、所定の時間が経過した段階で前記領域を参照することで判定を行っても良い。
【００６６】
報知手段については、必要に応じて設ければ良い。
残余の信号線数が２ｎ未満となった場合に電源供給を遮断する処理は、必要に応じて行えば良い。
送受信回路５については、マイクロコンピュータで構成する必要はなく、その他例えば
ＰＬＤ（Programmable Logic Device），ＦＰＧＡ（Field Programmable Gate Array）等のプログラマブルデバイスやゲートアレイなどで構成しても良い。
【符号の説明】
【００６７】
図面中、１，２は通信ノード（通信回路）、３は伝送路群、８は伝送路切替スイッチ部（信号線切り替え手段）、９は切替タイマ、１１は通信判定部（通信判定手段，レジスタ操作手段，信号線切り替え手段）、１２Ａ及び１２Ｂはパーミッションレジスタ（第１及び第２判定用レジスタ）、１３はステータスレジスタ（判定結果レジスタ）を示す。
【図１】
2013150148.tif 000003
【図２】
2013150148.tif 000004
【図３】
2013150148.tif 000005
【図４】
2013150148.tif 000006
【図５】
2013150148.tif 000007
【図６】
2013150148.tif 000008
【図７】
2013150148.tif 000009
【図８】
2013150148.tif 000010
【図９】
2013150148.tif 000011
【図１０】
2013150148.tif 000012
【図１１】
2013150148.tif 000013
【図１２】
2013150148.tif 000014
【図１３】
2013150148.tif 000015
【図１４】
2013150148.tif 000016
【図１５】
2013150148.tif 000017
【図１６】
2013150148.tif 000018