(57)【特許請求の範囲】
【請求項１】
第１のICと、第２のICと、を少なくとも備え、
前記第１のICと前記第２のICは、中身をプログラミングすることが可能なICであり、
前記第１のICと、前記第２のICとが、第１の通信経路と冗長用の第２の通信経路とによって相互に接続され、
前記第１の通信経路は、前記第２の通信経路より通信速度が速く、
前記第１のICが、ある周期内で、同じデータを前記第１の通信経路と前記第２の通信経路を用いて前記第２のICに送信し、
前記第１の通信経路を用いた送信と第２の通信経路を用いた送信とが同じタイミングで実施される場合には、前記周期は、前記第１のICが前記第２の通信経路を用いてデータを送信して、前記第２のICから前記第２の通信経路を用いて応答を受け取るまでの期間であり、
前記第１の通信経路を用いた送信が実施された後に第２の通信経路を用いた送信が実施される場合には、前記周期は、前記第１のICが前記第１の通信経路を用いてデータを送信して、前記第２のICから前記第２の通信経路を用いて応答を受け取るまでの期間である
通信制御装置。
【請求項２】
請求項１に記載の通信制御装置において、
前記第２のICは、前記第１の通信経路又は前記第２の通信経路から所定の時間が過ぎてもデータを受信しない場合、受信処理を終了する通信制御装置。
【請求項３】
請求項１に記載の通信制御装置において、
中身をプログラミングできない第３のICをさらに備え、
前記第３のICが、前記第１の通信経路のみに接続されている通信制御装置。
【請求項４】
中身をプログラミングすることが可能な第１のIC及び第２のICが第１の通信経路と冗長用の第２の通信経路とによって相互に接続されている装置における通信制御方法であって、
前記第１の通信経路は、前記第２の通信経路より通信速度が速く、
前記第１のICが、ある周期内で、同じデータを前記第１の通信経路と前記第２の通信経路を用いて前記第２のICに送信する送信ステップと、
前記第２のICが、前記第１の通信経路から受信した第１のデータが正常であるかを判定する第１判定ステップと、
前記第２のICが、前記第２の通信経路から受信した第２のデータが正常であるかを判定する第２判定ステップと、
前記第２のICが、前記第１判定ステップにおいて正常であると判定された前記第１のデータ又は前記第２判定ステップにおいて正常であると判定された前記第２のデータを使用する使用ステップと、
前記第２のICが、前記第１のICに応答データを送信する応答ステップと、
を含み、
前記第１の通信経路を用いた送信と第２の通信経路を用いた送信とが同じタイミングで実施される場合には、前記周期は、前記第１のICが前記第２の通信経路を用いてデータを送信して、前記第２のICから前記第２の通信経路を用いて応答を受け取るまでの期間であり、
前記第１の通信経路を用いた送信が実施された後に第２の通信経路を用いた送信が実施される場合には、前記周期は、前記第１のICが前記第１の通信経路を用いてデータを送信して、前記第２のICから前記第２の通信経路を用いて応答を受け取るまでの期間である、
通信制御方法。
【請求項５】
請求項４に記載の通信制御方法において、
前記第２の通信経路は複数であり、
前記使用ステップは、
前記第１判定ステップにおいて前記第１のデータが正常であると判定された場合、前記第１のデータを使用し、
前記第１判定ステップにおいて前記第１のデータが異常であると判定された場合、前記複数の第２の通信経路から受信した複数の前記第２のデータのうち、前記第２判定ステップにおいて正常であると判定されたデータを使用する通信制御方法。
【請求項６】
請求項４に記載の通信制御方法において、
前記第２のICが、前記第１の通信経路又は前記第２の通信経路から所定の時間が過ぎてもデータを受信しない場合、受信処理を終了するステップをさらに含む通信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信制御装置及び通信制御方法に関する。
【背景技術】
【０００２】
各種の半導体集積回路素子（以下、「IC」と呼称する）同士が通信を行う回路には、相互の通信手段として、複数bitのデータを並列に転送するパラレルバス又は少数の配線で直列にデータを転送するシリアルバスが含まれる。これらの通信は、回路の不良やノイズなどの外乱などで通信が失敗する場合がある。通信の高速化や通信の高頻度化によって、通信が失敗するリスクも上昇する。
【０００３】
IC同士の接続不良を救済するため、あらかじめ２系統の配線経路を設ける方法が提案されている（例えば、特許文献１）。特許文献１には、接続テスト時に２系統の経路のうち一方の経路で接続不良が検出された場合、もう一方の経路（冗長配線）に接続を変更する方法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−３０９１８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ICの高性能化や通信の高速化に伴い、制御装置の中核をなすIC同士の通信には高信頼性が求められる。既存技術においても、データ化けや接続不良などによる通信異常を検出及び通知することは可能である。しかし、既存技術では、上記の要因によって発生する通信異常を検出する方法はあっても、異常発生時の通信データを失うことなく通信を継続する方法はない。したがって、例えば、データロスを極力押さえなければならないアプリケーションでは問題解決の手段となりえない。
【０００６】
一方、従来技術により通信異常を検出した後、通信を失敗した時と同じデータを再送する手段が考えられる。しかし、非定周期で通信を行う環境においては、再送分の通信遅延が発生する。また、定周期で通信を行う環境においては、再送する通信データが定周期内に収まればデータロスとはならないものの、定周期内に収まらない場合は少なくとも１周期分のデータロスは回避できない。
【０００７】
例えば、特許文献１の方法では、通信開始前に回路の接続不良を検出して経路を変更することは可能であるが、通信中に発生した異常（特に、開始前の接続不良以外の異常）について対処できないという問題が生ずる。
【０００８】
本発明は、上記課題に鑑みてなされたものであり、通信中に異常が発生した場合であっても、データロスを発生させずに連続した通信を継続できる通信制御装置及び通信制御方法を提供する。
【課題を解決するための手段】
【０００９】
例えば、上記課題を解決するために、特許請求の範囲に記載の構成を採用する。本願は上記課題を解決する手段を複数含んでいるが、その一例をあげるならば、第１のICと、第２のICと、を少なくとも備え、前記第１のICと前記第２のICは、中身をプログラミングすることが可能なICであり、前記第１のICと、前記第２のICとが、第１の通信経路と冗長用の第２の通信経路とによって相互に接続され、前記第１のICが、同じデータを前記第１の通信経路と前記第２の通信経路を用いて前記第２のICに送信するものである通信制御装置が提供される。
【００１０】
また、他の例によれば、中身をプログラミングすることが可能な第１のIC及び第２のICが第１の通信経路と冗長用の第２の通信経路とによって相互に接続されている装置における通信制御方法が提供される。当該通信制御方法は、前記第１のICが、同じデータを前記第１の通信経路と前記第２の通信経路を用いて前記第２のICに送信する送信ステップと、前記第２のICが、前記第１の通信経路から受信した第１のデータが正常であるかを判定する第１判定ステップと、前記第２のICが、前記第２の通信経路から受信した第２のデータが正常であるかを判定する第２判定ステップと、前記第２のICが、前記第１判定ステップにおいて正常であると判定された前記第１のデータ又は前記第２判定ステップにおいて正常であると判定された前記第２のデータを使用する使用ステップと、前記第２のICが、前記第１のICに応答データを送信する応答ステップと、を含む。
【発明の効果】
【００１１】
本発明によれば、通信中に異常が発生した場合であっても、データロスを発生させずに連続した通信を継続できる。本発明に関連する更なる特徴は、本明細書の記述、添付図面から明らかになるものである。また、上記した以外の、課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施例１に係る通信制御装置の概略図である。
【図２】プログラマブルなICの内部構成の概略図である。
【図３】受信側ICにおいて第１の通信経路からデータを受信した際のフローチャートである。
【図４】受信側ICにおいて第２の通信経路からデータを受信した際のフローチャートである。
【図５】本発明の実施例１における通信動作シーケンス図である。
【図６】本発明の実施例２における通信動作シーケンス図である。
【図７】本発明の実施例３における通信動作シーケンス図である。
【図８】本発明の実施例４に係る通信制御装置の概略図である。
【図９】本発明の実施例５に係る通信制御装置の概略図である。
【図１０】本発明の実施例６に係る通信制御装置の概略図である。
【発明を実施するための形態】
【００１３】
以下、添付図面を参照して本発明の実施例について説明する。添付図面は本発明の原理に則った具体的な実施例を示しているが、これらは本発明の理解のためのものであり、決して本発明を限定的に解釈するために用いられるものではない。
【００１４】
以下の実施例は、半導体集積回路素子（IC）同士が通信する回路に係り、特に同一通信系統に複数のプログラミング可能なICを使用する構成に対して特に好適なものである。
【００１５】
本実施例の通信制御装置は、２つ以上のIC同士が複数の通信経路を介して接続される回路基板を備える。ICは、その中身をプログラミングすることが可能なIC（以降、「プログラマブルなIC」と呼ぶ）である。通信制御装置は、通信開始時又は通信中に、通信データ異常、通信経路の接続不良、断線など（以下、これらを単に「通信異常」と呼称する）が発生した場合でも、データロスを発生させず連続した通信を継続するための冗長用の通信経路を備えている。２つ以上のプログラマブルなICには、それらを制御するプログラムが組み込まれている。
【００１６】
プログラマブルなICには、マイクロコンピュータ（以下、マイコン）、Complex Programmable Logic Device（以下、CPLD）、Field Programmable Gate Array（以下、FPGA）などのProgrammable Logic Device（以下、PLD）などが含まれる。これらのプログラマブルなICを相互に接続する通信経路には、パラレルバス又はシリアルバスが用いられる。
【００１７】
［実施例１］
図１は、本発明のもっとも単純な通信制御装置の概略図を示す。通信制御装置は、第１のプログラマブルなIC（１−ａ）と、第２のプログラマブルなIC（１−ｂ）とを備える。第１のプログラマブルなIC（１−ａ）と第２のプログラマブルなIC（１−ｂ）は、第１の通信経路２と第２の通信経路３−１によって１対１で相互に接続されている。ここでは、第２の通信経路３−１が冗長経路であり、本例では冗長経路が１本である。第１のプログラマブルなIC（１−ａ）及び第２のプログラマブルなIC（１−ｂ）のうち一方のICは、１つの周期内で同じデータを第１の通信経路２及び第２の通信経路３−１を介して送信する。第１のプログラマブルなIC（１−ａ）及び第２のプログラマブルなIC（１−ｂ）のうち他方のICは、上記の周期内で第１の通信経路２及び第２の通信経路３−１からデータを受信する。ここで、周期とは、一方のプログラマブルなICがデータを送信し、他方のプログラマブルなICから応答データを受け取るまでの期間である。
【００１８】
図２は、プログラマブルなICの内部構成の概略図であり、図１の第１のプログラマブルなIC（１−ａ）及び第２のプログラマブルなIC（１−ｂ）の内部構成を示す。図２では、プログラマブルなIC２０は、第１のプログラマブルなIC（１−ａ）及び第２のプログラマブルなIC（１−ｂ）のうちの一方のICであり、外部デバイス２７は、他方のICを省略して図示したものである。
【００１９】
プログラマブルなIC２０は、通信処理部２１と、IC内部バス２２とを備える。通信処理部２１は、第１の通信処理部２３と、第２の通信処理部２４と、通信データ取得部２５と、送信データ処理部２６とを備える。
【００２０】
第１の通信処理部２３は、第１の通信経路２を介したデータの送信及び受信を行う処理部である。第２の通信処理部２４は、第２の通信経路（冗長経路）３−１を介したデータの送信及び受信を行う処理部である。通信データ取得部２５は、第１の通信処理部２３で受信したデータ又は第２の通信処理部２４で受信したデータを取得する。送信データ処理部２６は、第１の通信処理部２３から送信するデータ及び第２の通信処理部２４から送信するデータを作成し、第１の通信処理部２３及び第２の通信処理部２４に出力する。
【００２１】
図３は、受信側ICにおいて第１の通信経路２からデータを受信した際のフローチャートである。図３の処理を図２の機能ブロックを用いて説明する。以下では、第２のプログラマブルなIC（１−ｂ）が第１のプログラマブルなIC（１−ａ）からデータを受信した例で説明する。
【００２２】
（ステップ３０１）
第２のプログラマブルなIC（１−ｂ）が第１のプログラマブルなIC（１−ａ）から第１の通信経路２を介してデータを受信すると、第１の通信処理部２３は、受信データの整合性チェックを実行する。ここでのチェックの方法は、パリティチェックや、CRCチェックなどの既存技術を用いる。
【００２３】
（ステップ３０２）
第１の通信処理部２３は、上記の整合性チェックの結果に基づいて、第１の通信経路２から受信したデータが正常であるか、異常であるかを判定する。第１の通信処理部２３は、受信データ及び判定結果を通信データ取得部２５に出力する。受信データが正常である場合、ステップ３０３に進む。一方、受信データが異常である場合、ステップ３０４へ進む。
【００２４】
（ステップ３０３）
通信データ取得部２５は、第１の通信経路２からの受信データを正常なデータとして使用する。通信データ取得部２５は、受信データをデータ格納部（図示省略）に格納し、受信処理を終了する。一例として、ステップ３０３は、以降で説明する図４のステップ４０４のタイミングで実行される。なお、通信データ取得部２５が、第２の通信経路３−１からの受信を待たずに、第１の通信経路２から受信した正常なデータを採用する場合、図４のステップ４０４は省略してもよい。
【００２５】
（ステップ３０４）
第１の通信経路２からの受信データが異常である場合、通信データ取得部２５は、第２の通信経路３−１からのデータ受信を待機する。データを受信した場合、図４のフローに進む。データを受信しない場合、ステップ３０５へ進む。
【００２６】
（ステップ３０５）
本実施例では、第２の通信経路３−１からデータの受信がない場合、データ待機のまま処理が止まってしまうため、タイムアウトを設定している。通信データ取得部２５は、第２の通信経路３−１からのデータ受信の待機時間が規定の時間を過ぎているかを判定する。規定の時間を過ぎている場合、通信データ取得部２５は、タイムアウトが発生したと判定し、ステップ３０６へ進む。一方、規定の時間を過ぎていない場合、引き続き、第２の通信経路３−１からのデータ受信を待機する。
【００２７】
（ステップ３０６）
タイムアウトが発生した場合、通信データ取得部２５は、システムへ異常を通知し、受信処理を終了する。なお、図示を省略しているが、規定の時間を過ぎても第１の通信経路２からデータを受信しない場合も同様に、タイムアウトを設定してもよい。
【００２８】
図４は、受信側ICにおいて第２の通信経路３−１からデータを受信した際のフローチャートである。図４の処理を図２の機能ブロックを用いて説明する。
【００２９】
（ステップ４０１）
第２のプログラマブルなIC（１−ｂ）が第１のプログラマブルなIC（１−ａ）から第２の通信経路３−１を介してデータを受信すると、第２の通信処理部２４は、受信データの整合性チェックを実行する。ここでのチェックの方法は、パリティチェックや、CRCチェックなどの既存技術を用いる。
【００３０】
（ステップ４０２）
第２の通信処理部２４は、上記の整合性チェックの結果に基づいて、第２の通信経路３−１から受信したデータが正常であるか、異常であるかを判定する。第２の通信処理部２４は、受信データ及び判定結果を通信データ取得部２５に出力する。受信データが正常である場合、ステップ４０３に進む。一方、受信データが異常である場合、システムに異常を通知して受信処理を終了する。
【００３１】
（ステップ４０３）
通信データ取得部２５は、第１の通信経路２から受信したデータが正常であったか、異常であったかを判定する。第１の通信経路２から受信したデータが正常であった場合、ステップ４０４へ進む。一方、第１の通信経路２から受信したデータが異常であった場合、ステップ４０５へ進む。
【００３２】
（ステップ４０４）
通信データ取得部２５は、第２の通信経路３−１から受信したデータを使用しない。一例として、図３のステップ３０３は、このタイミングで実行される。この場合、通信データ取得部２５は、第１の通信経路２から受信したデータを正常なデータとして使用する。通信データ取得部２５は、第１の通信経路２から受信したデータをデータ格納部（図示省略）に格納し、受信処理を終了する。なお、上記したように、本ステップは省略してもよい。
【００３３】
（ステップ４０５）
通信データ取得部２５は、第２の通信経路３−１から受信したデータを正常なデータとして使用する。通信データ取得部２５は、受信データをデータ格納部（図示省略）に格納し、受信処理を終了する。
【００３４】
上記の構成によれば、従来の１系統のみ通信方式に対し、冗長性を付加し、信頼性向上を図ることができる。
【００３５】
本実施例を実現するためには、送信側と受信側が共にプログラマブルなICである必要がある。プログラマブルなICは、上記の通り、マイコンやPLDなどのデバイスがあるが、本実施例ではPLDで構成した場合について説明する。
【００３６】
PLDは、ピンアサインから内部ロジックまで幅広く設計できるため、例えば、第１の通信経路２と冗長用の第２の通信経路３−１のバスを同じ仕様のものを採用できる。そのため、送信側ICは、同じアドレスに対して第１の通信経路２と第２の通信経路３−１のそれぞれを使用して実質的に同時にデータを送信することができる。受信側ICもPLDの場合、受信側ICは、データをそれぞれ第１の通信経路２と第２の通信経路３−１で別々のピンを利用して受信し、それぞれの信号が競合することなく処理できる。PLDは、上記の処理が実行できるようにプログラムすることができる。
【００３７】
図５は、本実施例の通信動作シーケンス図であり、第１のプログラマブルなIC（１−ａ）及び第２のプログラマブルなIC（１−ｂ）の両方がPLDの場合の通信動作シーケンス図である。また、図５は、定周期での通信状況を示す。
【００３８】
プログラマブルなICがPLDである場合、第１の通信経路２を用いた送信と第２の通信経路３−１を用いた送信とを実質的に同じタイミングで実施することが可能である。このとき、使用するバスの通信速度によって、第１の通信経路２と第２の通信経路３−１との間で送信完了時間の差が生じる。図５において、Tは第１の通信経路２を用いた送信の送信時間であり、T’は第２の通信経路３−１を用いた送信の送信時間である。第１の通信経路２と第２の通信経路３−１に通信速度が同じバスを使用した場合、TとT’の差は限りなく０に近づけることが可能である。ただし、通信経路の配線長などの要素により微少な差は発生する。
【００３９】
送信側の第１のプログラマブルなIC（１−ａ）は、１つの周期内で、第１の通信経路２及び第２の通信経路３−１を用いて同じデータを送信する。受信側の第２のプログラマブルなIC（１−ｂ）は、図３及び図４のフローチャートに示したように受信データを処理する。その後、受信側の第２のプログラマブルなIC（１−ｂ）は、第１のプログラマブルなIC（１−ａ）に応答データを送信する。その際にも、送信時と同様に、使用するバスの通信速度によって、第１の通信経路２と第２の通信経路３−１との間で応答時間の差が生じる。図５における応答時間R’で全ての応答データの受信が完了する。このように、定周期での通信を行う場合、通信周期が遅い方のバスに全体の通信周期を合わせる必要がある。したがって、この例における周期は、応答時間R’の期間となる。
【００４０】
以上から、第１の通信経路２と第２の通信経路３−１のバス仕様と通信速度は可能な限り、近いものを採用することが好ましい。これにより、通信のオーバーヘッドを最小限に抑えることができる。また、２つの経路のうち通信速度が速い方を、通信のメインとなる第１の通信経路２にした方がよい。これにより、通信時間の短縮を図ることが可能となる。
【００４１】
本実施例によれば、通信開始時又は通信中に通信異常（通信データ異常、通信経路の接続不良、断線など）が発生した場合でも、データロスを発生させず連続した通信を継続できる。したがって、通信信頼性の向上を図ることができる。また、本実施例によれば、通信失敗時の再送処理を省くことにより、再送時間分のタイムロスを削減することも可能となる。また、本実施例によれば、回路の不良やノイズなどの外乱などの通信失敗のリスクが高い環境において、通信経路多重化による高信頼性通信制御装置及び通信制御方法を提供することができる。
【００４２】
［実施例２］
図６は、本実施例の通信動作シーケンス図であり、第１のプログラマブルなIC（１−ａ）及び第２のプログラマブルなIC（１−ｂ）の両方がマイコンの場合の通信動作シーケンス図である。
【００４３】
図５のシーケンス図とは異なり、図６のシーケンス図では、第１のプログラマブルなIC（１−ａ）及び第２のプログラマブルなIC（１−ｂ）から伸びる矢印の出発点が２箇所ある。これは、マイコンはPLDと異なり、異なるピンから同時に同じデータ通信を行うことができず、マイコン内部のタスク処理分、第１の通信経路２と第２の通信経路３−１とで送信開始にわずかな差が生じるためである。
【００４４】
また、プログラマブルなICがマイコンである場合、第１の通信経路２と第２の通信経路３−１のバスに同じ仕様のものを採用できず、同じアドレスに同時にデータを送信することはできない。したがって、本実施例では、送信側のプログラマブルなICは、それぞれ別仕様のバスとなる第１の通信経路２と第２の通信経路３−１を用いて、同じデータを別々のアドレスへ送信する。
【００４５】
図２の機能ブロックで説明した場合、送信側のプログラマブルなICの送信データ処理部２６は、同じ送信用データに対して、第１の通信経路２用のアドレス、第２の通信経路３−１用のアドレスをそれぞれ設定する。そして、第１の通信処理部２３及び第２の通信処理部２４が、それぞれ、各経路を介して同じデータを送信する。受信側のプログラマブルなICは、異なるアドレスで送信されたデータを第１の通信経路２と第２の通信経路３−１を介して受信し、図３及び図４のフローチャートに示したように受信データを処理する。
【００４６】
本実施例によれば、第１の通信経路２と第２の通信経路３−１が異なる仕様のバスであっても、本発明の処理を実施することが可能となる。例えば、システム信頼性向上や安全性のために２つのマイコンを搭載して互いを監視し合う２マイコン方式のシステムに対して、上記の構成を適用してマイコン同士の通信に冗長性を持たせることが可能となる。また、システムの更なる信頼性の向上を図ることができる。
【００４７】
なお、上記のマイコンはシングルコアを前提として説明したが、これに限定されない。デュアルコアのマイコンにも本発明を適用することができる。この場合、送信側のプログラマブルなICにおいて、上記のように送信のタイミングに差が生じることなく、実質的に同じタイミングで同じデータを送信することが可能となる。
【００４８】
［実施例３］
実施例１と同様の構成で一方のプログラマブルなICがマイコンであり、他方のプログラマブルなICがPLDの場合について説明する。図７は、第１のプログラマブルなIC（１−ａ）がマイコンであり、第２のプログラマブルなIC（１−ｂ）がPLDの場合の通信動作シーケンス図である。動作としては実施例１と実施例２が合わさった形となる。
【００４９】
実施例２で説明した通り、マイコンである第１のプログラマブルなIC（１−ａ）がデータを送信する場合、第１のプログラマブルなIC（１−ａ）側では、第１の通信経路２と第２の通信経路３−１との間で送信タイミングに差が生じる。また、第１のプログラマブルなIC（１−ａ）に関しては、第１の通信経路２と第２の通信経路３−１に同じ仕様のバスを採用することができず、同じアドレスに同時にデータを送信することはできない。
【００５０】
PLDである第２のプログラマブルなIC（１−ｂ）は、第１の通信経路２と第２の通信経路３−１にデータを送信するタイミングを実質的に同じにすることは可能であるが、実施例１のようなPLD同士の接続とは異なり、異なる通信経路で同じアドレスに同時にアクセスすることはできない。このため、マイコン同士の通信条件と同じく、第２のプログラマブルなIC（１−ｂ）は、第１の通信経路２と第２の通信経路３−１とで異なるアドレスに同じデータを送信するように設計される。この構成によれば、マイコンとPLDが混在する通信制御装置においても、本発明の処理を実行することができる。
【００５１】
［実施例４］
実施例１〜３の構成に関して、複数の冗長経路を備えた通信制御装置の形態を説明する。図８は、本発明の実施例４に係る通信制御装置の概略図である。第１のプログラマブルなIC（１−ａ）と第２のプログラマブルなIC（１−ｂ）が第１の通信経路２と第２の通信経路３−１で接続される基本構成に対して、IC（１−ａ）及び（１−ｂ）の仕様が許す限りのアドレス範囲又はチップセレクト数分の冗長経路を追加することができる。図８の例では、冗長用の複数の第２の通信経路３−１〜３−ｎが第１のプログラマブルなIC（１−ａ）と第２のプログラマブルなIC（１−ｂ）との間に設けられている。
【００５２】
この構成において定周期の通信を行う場合、実施例１〜３で説明した通り、第１の通信経路２と冗長用の複数の第２の通信経路３−１〜３−ｎとの間の通信速度の差を考慮する必要がある。そのため、第１の通信経路２と冗長用の複数の第２の通信経路３−１〜３−ｎ中で最も通信速度が遅い経路に合わせて周期を設定し、その周期に合わせて通信するように設計される。また、通信処理部２１は、追加した冗長経路の数の通信処理部（この通信処理部は、第２の通信処理部２４と同様の構成である）を備える。
【００５３】
また、この構成において非定周期の通信を行う場合、冗長用の複数の第２の通信経路３−１〜３−ｎの中から通信速度が速い順に優先順位を設定してもよい。この場合、受信側のプログラマブルなIC（例えば、第２の通信処理部２４、通信データ取得部２５など）は、冗長用の複数の第２の通信経路３−１〜３−ｎの中のいずれかから受信したデータが正常であると判定できた段階で、それ以降に複数の第２の通信経路３−１〜３−ｎから受信するデータに対して受信用の処理（整合性チェックなど）を行わず、応答処理を実行するように設計されてもよい。受信側のプログラマブルなICは、正常なデータを受信した段階ですぐに応答処理に移行できるため、通信時間の短縮を図ることが可能となる。
【００５４】
［実施例５］
次に、３個以上のプログラマブルなICが接続される構成について説明する。図９は、本発明の実施例５に係る通信制御装置の概略図である。通信制御装置は、複数のプログラマブルなIC（１−ａ）、（１−ｂ）、（１−ｃ）〜（１−ｎ）を備える。この場合において、複数のプログラマブルなIC（１−ａ）、（１−ｂ）、（１−ｃ）〜（１−ｎ）が、第１の通信経路２と１つ以上の第２の通信経路３−１とで相互に接続されている。複数のプログラマブルなIC（１−ａ）、（１−ｂ）、（１−ｃ）〜（１−ｎ）のそれぞれは、実施例１〜４で説明した送信処理及び受信処理を実行することが可能である。
【００５５】
なお、接続形態に関しては、複数のプログラマブルなIC（１−ａ）〜（１−ｎ）を同一系統のバス内に混在させる構成とすれば、第１の通信経路２と第２の通信経路３−１の通信経路本数を最小限にすることが可能である。
【００５６】
［実施例６］
次に、プログラマブルなICとプログラマブルではないIC（中身がプログラミングできないIC）が混在する通信制御装置について説明する。図１０は、本発明の実施例６に係る通信制御装置の概略図である。
【００５７】
プログラマブルなIC以外は、本発明を適用することはできないが、プログラマブルなICは、SRAMやFlashROMなどのメモリデバイス、及び、様々な種類のICとパラレルバス又はシリアルバスを用いて接続される場合がある。この場合、プログラマブルではないICは、１つの通信経路に接続される。プログラマブルではないIC用の通信経路と本発明のプログラマブルなIC用の通信経路とを分けて設計することも可能ではあるが、基板の配線面積の増加を招くため、基板のサイズなどで配線スペースなどの制約が厳しい場合は構成上望ましくない。
【００５８】
したがって、図１０に示すように、第１の通信経路２上に対象のデバイス（プログラマブルではないIC４）が配置され、冗長化が必要なデバイス（図１０では、第１及び第２のプログラマブルなＩＣ（１−ａ）、（１−ｂ））同士のみを第１の通信経路２と第２の通信経路３-１とで相互に接続する。この構成によれば、プログラマブルではないIC４が、従来の使用方法で第１及び第２のプログラマブルなＩＣ（１−ａ）、（１−ｂ）に接続され、第２の通信経路３−１を意識することなく通信を行うことができる。
【００５９】
以下、上記の実施例１〜６の効果を説明する。現在、ICの高性能化や通信の高速化に伴い、制御装置の中核をなすIC同士の通信には高信頼性が要求される。従来では、同一通信系統に複数のプログラマブルなICを使用する構成において、通信中に異常が発生した場合であっても、データロスを発生させずに連続した通信を継続できなかった。
【００６０】
上記の課題を解決するために、上記の実施例の通信制御装置は、相互に接続された２つ以上のプログラマブルなICと、プログラマブルなICを相互に接続する第１の通信経路２と、プログラマブルなICを相互に接続する冗長用の１つ以上の第２の通信経路（３−１〜３−ｎ）とを備えることを特徴とする。この構成において、送信側のプログラマブルなICは、第１の通信経路及び１つ以上の冗長用の第２の通信経路において同一内容の通信データを受信側のプログラマブルなICに送信する。なお、定周期の通信の場合、送信側のプログラマブルなICは、ある周期内において同一内容の通信データを受信側のプログラマブルなICに送信する。
【００６１】
受信側のプログラマブルなICは、第１の通信経路及び１つ以上の第２の通信経路から受信したデータの正当性をチェックし、正常なデータを使用する。例えば、受信側のプログラマブルなICは、第１の通信経路からの通信データに異常が認められた場合は、冗長用の１つ以上の第２の通信経路から受信したデータの中から正常なものを採用する。これにより、データロスすることなく通信を継続することができる。
【００６２】
通信経路の接続不良の発生時や通信経路の断線発生時においても、受信側のプログラマブルなICは、上記の通信中の判定及び冗長動作と同様に、データの正当性をチェックし、冗長用の１つ以上の第２の通信経路から受信したデータの中から正常なものを採用することができる。これにより、通信経路の接続不良の発生時や通信経路の断線発生時においても、データロスすることなく通信を継続することができる。
【００６３】
さらに、通信経路からデータが完全に届かないときの処理について説明する。通信が非定周期で行われている場合は、受信側のプログラマブルなICは、冗長用の１つ以上の第２の通信経路からはデータ受信しているにもかかわらず、第１の通信経路からはデータ受信がなかったときに第１の通信経路の接続不良又は断線と判定してもよい。このとき、受信側のプログラマブルなICは、冗長用の第２の通信経路から受信したデータから正常なものを採用する。これにより、データロスすることなく通信を継続することができる。また、通信が定周期で行われている場合は、タイムアウトを設定することにより、受信側のプログラマブルなICは、一定時間内にデータの受信がなかったときにその通信経路の接続不良又は断線と判定してもよい。このとき、受信側のプログラマブルなICは、冗長用の第２の通信経路から受信したデータの中から正常なものを採用する。これにより、データロスすることなく通信を継続することができる。
【００６４】
上記構成のように、冗長用の複数の第２の通信経路を設けることにより、常用の第１の通信経路に加えて冗長用の通信経路のいずれかに通信異常が発生しても、第１の通信経路に通信異常が発生した場合と同じ処理をすることにより、データロスすることなく通信を継続することができる。
【００６５】
本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。上記実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることもできる。また、ある実施例の構成に他の実施例の構成を加えることもできる。また、各実施例の構成の一部について、他の構成を追加・削除・置換することもできる。
【００６６】
上述の実施例において、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
【符号の説明】
【００６７】
１−ａ、１−ｂ、１−ｃ〜１−ｎ    …プログラマブルなIC
２    …第１の通信経路
３-１〜３−ｎ    …第２の通信経路（冗長用通信経路）
４    …プログラマブルではないIC
２１    …通信処理部
２２    …IC内部バス
２３    …第１の通信処理部
２４    …第２の通信処理部
２５    …通信データ取得部
２６    …送信データ処理部
２７    …外部デバイス
【図１】
0006654097.tif 000002
【図２】
0006654097.tif 000003
【図３】
0006654097.tif 000004
【図４】
0006654097.tif 000005
【図５】
0006654097.tif 000006
【図６】
0006654097.tif 000007
【図７】
0006654097.tif 000008
【図８】
0006654097.tif 000009
【図９】
0006654097.tif 000010
【図１０】
0006654097.tif 000011