(57)【要約】【課題】異なる通信プロトコル、スケジュールで通信するメッセージを変換する変換装置に関し、一の通信プロトコルの通信路の異常を他のプロトコルの通信路に送信する。【解決手段】一の通信路（１０）のステータスを検出するステータス検出部（２８）を設け、一の通信路（１０）のメッセージを、他の通信プロトコルのメッセージに変換する変換部（２９）が、ステータス検出部（２８）の検出結果に応じて、他の通信路（１２−１）に、他の通信プロトコルで、検出結果を示すデータを送信する。このため、異なる通信プロトコルのネットワークの異常を一括して、検出して、一方の通信ネットワークの異常を他方の通信ネットワークのノードに通知することができる。【選択図】図２１
2007174118.tif 000002
【特許請求の範囲】
【請求項１】
一の通信プロトコルの一の通信路のメッセージを、一の通信プロトコルと異なる他の通信プロトコルのメッセージに変換して、前記他の通信プロトコルの他の通信路の指定された宛先へ通信する通信メッセージ変換装置において、
前記一の通信路のステータスを検出するステータス検出部と、
前記一の通信路のメッセージを、前記他の通信プロトコルに基づいて変換したメッセージに変換するとともに、前記ステータス検出部の検出結果に応じて、前記他の通信路に、前記他の通信プロトコルで、前記検出結果を示すデータを送信する変換部とを有することを
特徴とする通信メッセージ変換装置。
【請求項２】
前記変換部は、
前記変換されたメッセージを送信するとともに、
前記検出結果を示すデータを送信する場合には、前記変換されたメッセージに代えて、前記検出結果を示すデータを送信することを
特徴とする請求項１の通信メッセージ変換装置。
【請求項３】
前記変換部は、
前記変換されたメッセージに、前記検出結果を示すデータを付加して、送信することを
特徴とする請求項１の通信メッセージ変換装置。
【請求項４】
前記変換部は、
前記一の通信プロトコルのメッセージを、前記一の通信プロトコルのスケジュールで、前記一の通信路に送信する第１の送信回路と、
前記他の通信プロトコルのメッセージを、前記他の通信プロトコルのスケジュールで、前記他の通信路に送信する第２の送信回路と、
前記一の通信路から受信した前記メッセージに含まれる識別子から前記他のプロトコルの通信路の宛先識別子を探索し、前記メッセージを前記他のプロトコルのフレームフォーマットに変換するルーテイング回路とを有することを
特徴とする請求項１の通信メッセージ変換装置。
【請求項５】
変換部は、
イベントトリガー型通信プロトコルのメッセージを、タイムトリガー型通信プロトコルのメッセージに変換して、指定された宛先へ通信するメッセージ変換部で構成されたことを
特徴とする請求項１の通信メッセージ変換装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異なるプロトコルの通信ネットワーク間のメッセージの変換を行う通信メッセージ変換装置に関し、特に、一の通信ネットワークの異常を検出して、他の通信ネットワークに通知する通信メッセージ変換装置に関する。
【背景技術】
【０００２】
車両に搭載される機器の電子化に伴い、車両にも通信ネットワークが構築されている。この車載ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）として、広く、ＣＡＮ（Controller  Area  Network）が利用されている。
【０００３】
一方、データ量の増大や複雑化に伴い、より高速で信頼性の高いネットワークが要求されている。このため、高速ネットワークとして、ＦｌｅｘＲａｙ（Daimler Chrysler AG登録商標）が注目を浴びている。ＦｌｅｘＲａｙは、最大伝送レートが、１０Ｍｂｐｓであり、ＣＡＮの最大伝送レートである１Ｍｂｐｓの１０倍である。
【０００４】
このように、ＦｌｅｘＲａｙの導入にあたっては、従来から使用されているＣＡＮとの間の通信を考慮する必要がある。このため、ＦｌｅｘＲａｙとＣＡＮの通信交換を行うメッセージ変換装置が、提案されている（例えば、特許文献１参照）。
【０００５】
このようなネットワークにおいて、ネットワークを構成するバスの異常を検出することは、ネットワークの運営上、必要である。このため、ＣＡＮバスに接続されたノード同士で異常検出を行う方法が提案されている（例えば、特許文献２参照）。
【特許文献１】特開２００５−３２８１１９号公報（図２）
【特許文献２】特開２００５−１９１９０９号公報（図１−図４）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の通信ネットワークでは、自己のネットワーク内の異常を検出することができるが、他のネットワークの異常を検出することができない。このため、異なる通信プロトコルのネットワークを接続した場合には、一方の通信ネットワークの異常を他方の通信ネットワークのノードに伝達できず、異常でない通信ネットワークのノードは、一方の通信ネットワークが異常である場合の処理を実行できず、システム全体がダウンするおそれがある。
【０００７】
特に、車両にこれらネットワークを導入した場合には、車両制御に影響を与え、信頼性が低下するとともに、最悪の場合には、車両走行に問題となることも有り得る。
【０００８】
従って、本発明の目的は、異なる通信プロトコルのネットワーク間の相互通信を行っても、一方の通信ネットワークの異常を他方の通信ネットワークのノードに通知するための通信メッセージ変換装置を提供することにある。
【０００９】
又、本発明の他の目的は、異なる通信プロトコルのネットワークの異常を一括して、検出して、一方の通信ネットワークの異常を他方の通信ネットワークのノードに通知するための通信メッセージ変換装置を提供することにある。
【００１０】
更に、本発明の他の目的は、異なる通信プロトコルのメッセージ変換を行う装置自体で、通信ネットワークの異常を一括して、検出し、一方の通信ネットワークの異常を他方の通信ネットワークのノードに通知するための通信メッセージ変換装置を提供することにある。
【課題を解決するための手段】
【００１１】
この目的の達成のため、本発明は、一の通信プロトコルの一の通信路のメッセージを、一の通信プロトコルと異なる他の通信プロトコルのメッセージに変換して、前記他の通信プロトコルの他の通信路の指定された宛先へ通信する通信メッセージ変換装置において、前記一の通信路のステータスを検出するステータス検出部と、前記一の通信路のメッセージを、前記他の通信プロトコルのメッセージに変換するとともに、前記ステータス検出部の検出結果に応じて、前記他の通信路に、前記他の通信プロトコルで、前記検出結果を示すデータを送信する変換部とを有する。
【００１２】
又、本発明では、好ましくは、前記変換部は、前記変換されたメッセージを送信するとともに、前記検出結果を示すデータを送信する場合には、前記変換されたメッセージに代えて、前記検出結果を示すデータを送信する。
【００１３】
又、本発明では、好ましくは、前記変換部は、前記変換されたメッセージに、前記検出結果を示すデータを付加して、送信する。
【００１４】
又、本発明では、好ましくは、前記変換部は、前記一の通信プロトコルのメッセージを、前記一の通信プロトコルのスケジュールで、前記一の通信路に送信する第１の送信回路と、前記他の通信プロトコルのメッセージを、前記他の通信プロトコルのスケジュールで、前記他の通信路に送信する第２の送信回路と、前記一の通信路から受信した前記メッセージに含まれる識別子から前記他のプロトコルの通信路の宛先識別子を探索し、前記メッセージを前記他のプロトコルのフレームフォーマットに変換するルーテイング回路とを有する。
【００１５】
又、本発明では、好ましくは、変換部は、イベントトリガー型通信プロトコルのメッセージを、タイムトリガー型通信プロトコルのメッセージに変換して、指定された宛先へ通信するメッセージ変換部で構成された。
【発明の効果】
【００１６】
本発明では、一の通信路のステータスを検出するステータス検出部を設け、一の通信路のメッセージを、他の通信プロトコルのメッセージに変換する変換部が、ステータス検出部の検出結果に応じて、他の通信路に、他の通信プロトコルで、検出結果を示すデータを送信するので、異なる通信プロトコルのネットワークの異常を一括して、検出して、一方の通信ネットワークの異常を他方の通信ネットワークのノードに通知することができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態を、通信メッセージ変換装置、ルーテイング回路及びスケジューリング回路、ＦｌｅｘＲａｙのエラー検出機構、ＣＡＮのエラー検出機構、他の実施の形態の順で説明するが、本発明は、この実施の形態に限られない。
【００１８】
―メッセージ変換装置―
図１は、本発明のメッセージ変換装置の一実施の形態の全体ブロック図、図２は、図１の要部構成図、図３及び図４は、図２のメッセージ変換装置のルーテイング動作説明図、図５は、図１のＧ／Ｗハードマクロ回路のブロック図、図６は、図５のハードマクロ回路の説明図、図７は、ＦｌｅｘＲａｙ通信フォーマットとＣＡＮ通信フォーマットの説明図、図８は、図２のメッセージ変換装置の他のルーテイング動作説明図である。
【００１９】
図１に示すように、メッセージ変換装置１は、ＦｌｅｘＲａｙコントローラ１０と、複数（ここでは、３つの）ＣＡＮコントローラ１２−１，１２−２，１２−３と、タイマー回路１４と、ＣＰＵ１６と、割り込み制御回路１８と、ＤＭＡ（Direct  Memory  Access）回路１１と、Ｇ／Ｗ（ゲートウェイ）ハードマクロ回路２と、フラッシュメモリ１３と、これらを接続する内部バス１５とで構成される。
【００２０】
ＦｌｅｘＲａｙコントローラ１０は、通信を制御するコミュニケーションコントローラ（ＣＣ）であり、図２で説明するバスドライバーを介しＦｌｅｘＲａｙバスに接続する。
【００２１】
ＦｌｅｘＲａｙは、タイムスロットでフレームの送受信を行うタイムトリガー型プロトコルを採用する。即ち、各ノードが使用するタイムスロットが予め定められた周期的データ転送方式を採用する。
【００２２】
ＣＡＮコントローラ１２−１，１２−２，１２−３は、ＣＳＭＡ／ＣＡ伝送方式を採用し、伝送路が空いている時は、メッセージを送信できるＣＡＮプロトコルを採用したものである。即ち、事象の発生に合わせて、通信要求を発し、送信権を獲得できた場合だけ送信可能なイベントトリガー型プロトコルである。
【００２３】
割り込み制御回路１８は、ＦｌｅｘＲａｙコントローラ１０、ＣＡＮコントローラ１２−１，１２−２，１２−３、Ｇ／Ｗハードマクロ回路２からの割り込みを調停し、バス１５の専有権を与える。ＤＭＡ制御回路１１は、ＦｌｅｘＲａｙコントローラ１０、ＣＡＮコントローラ１２−１，１２−２，１２−３、Ｇ／Ｗハードマクロ回路２からのＤＭＡ要求を受け、ＤＭＡ転送する。
【００２４】
Ｇ／Ｗハードマクロ回路２は、図２以下で後述するように、ＦｌｅｘＲａｙプロトコルとＣＡＮプロトコルの変換を行い、指定された宛先へ転送する。ＣＰＵ１６は、各コントローラ１０，１２−１，１２−２，１２−３等の設定、状態監視、エラー検出、エラー処理等を行う。フラッシュＲＯＭ１３は、主に、ＣＰＵ１６が実行するプログラム、パラメータ等を格納する。
【００２５】
図２は、図１の、特に、メッセージ変換の主要部を示す。図２に示すように、ＦｌｅｘＲａｙコントローラ１０は、バスドライバー１７を介しＦｌｅｘＲａｙバスからＦｌｅｘＲａｙフレームデータ（図７で後述する）を受信する。ＦｌｅｘＲａｙコントローラ１０は、エラーカウンタ（ＥＣ）１０−１、エラーフラグレジスタ（ＥＦ）１０−２、クロック補正値レジスタ（ＣＬＣ）１０−４を有する。
【００２６】
ＣＡＮコントローラ１２−１（１２−２，１２−３）は、ＣＡＮバスを介しＣＡＮフレームデータ（図７で後述する）を受信する。ＣＡＮコントローラ１２−１（１２−２，１２−３）は、受信エラーレジスタ（ＲＥＲ）１２Ａと、送信エラーレジスタ（ＳＥＲ）１２Ｂとを有する。
【００２７】
Ｇ／Ｗハードマクロ回路２は、図５以下で後述するように、ＦｌｅｘＲａｙプロトコルとＣＡＮプロトコルの変換を行い、指定された宛先へ転送する。この場合に、Ｇ／Ｗハードマクロ回路２が、送受信動作をハードで行う構成（図の白抜き矢印で示す）と、受信動作を行い、送信動作は、ソフトウェア（ＣＰＵ）１６が行う構成（図の実線矢印で示す）とを取り得る。
【００２８】
Ｇ／Ｗハードマクロ回路２が、送受信動作をハードで行う構成（図の白抜き矢印で示す）では、Ｇ／Ｗハードマクロ回路２が、送信処理を行い、送信データを、ＦｌｅｘＲａｙコントローラ１０やＣＡＮコントローラ１２−１（１２−２，１２−３）に直接送信する。
【００２９】
一方、Ｇ／Ｗハードマクロ回路２が、受信動作をハードで行う構成（図の実線矢印で示す）では、Ｇ／Ｗハードマクロ回路２が、受信及びルーテイング処理を行い、ソフトウェア（ＣＰＵ）１６に送信し、ソフトウェア１６が、送信データを、ＦｌｅｘＲａｙコントローラ１０やＣＡＮコントローラ１２−１（１２−２，１２−３）に送信する。
【００３０】
図３及び図４は、図１、図２の構成におけるＧ／Ｗハードマクロ回路２が、ハードで送受信動作を行う場合のゲートウェイ動作の説明図であり、図３は、ＦｌｅｘＲａｙコントローラ１０からＧ／Ｗハードマクロ回路１２への受信動作の説明図、図４は、Ｇ／Ｗハードマクロ回路２からＣＡＮコントローラ１２−１への送信動作の説明図である。
【００３１】
図３に示すように、ＦｌｅｘＲａｙコントローラ１０は、ＦｌｅｘＲａｙバスからＦｌｅｘＲａｙフレームデータ（図７で後述する）を受信すると、信号線を介しＤＭＡ制御回路１１に、ＤＭＡ要求の処理開始を通知する。ＤＭＡ制御回路１１は、ＦｌｅｘＲａｙコントローラ１０に、ＤＭＡ転送を許可し、ＦｌｅｘＲａｙコントローラ１０は、バス１５を介し、Ｇ／Ｗマクロ回路２に、受信したＦｌｅｘＲａｙフレームデータを送信する。
【００３２】
Ｇ／Ｗハードマクロ回路２は、後述するように、ＦｌｅｘＲａｙフレームデータを、ＣＡＮフレームデータに変換し、指定されたあて先（この例では、ＣＡＮコントローラ１２−１）に送信する。即ち、図４に示すように、Ｇ／Ｗハードマクロ回路２は、信号線を介しＤＭＡ制御回路１１に、ＤＭＡ要求の処理開始を通知する。ＤＭＡ制御回路１１は、Ｇ／Ｗハードマクロ回路２に、ＤＭＡ転送を許可し、Ｇ／Ｗハードマクロ回路２は、バス１５を介し、ＣＡＮコントローラ１２−１に、変換したＣＡＮフレームデータを送信する。
【００３３】
図５は、Ｇ／Ｗハードマクロ回路２のブロック図、図６は、図５の構成を信号の流れに従い、書き直したブロック図、図７は、ＦｌｅｘＲａｙ通信フォーマットとＣＡＮ通信フォーマットの説明図である。
【００３４】
図５に示すように、Ｇ／Ｗハードマクロ回路２は、ＣＰＵ内部バス１５に接続されるバス−インターフェース回路２０と、ＦｌｅｘＲａｙ受信データ処理回路２１と、ＣＡＮ受信データ処理回路２２と、ＦｌｅｘＲａｙスケジューラ回路２３と、ＣＡＮスケジューラ回路２４と、レジスタ設定部２５と、ＦｌｅｘＲａｙ送信バッファ２６と、ＣＡＮ送信バッファ２７と、ステータス検出回路２８と、ルーテイング回路２９とを有する。
【００３５】
ルーテイング回路２９は、ＦｌｅｘＲａｙＩＤとＣＡＮＩＤとの対応関係を格納するマップメモリ４２と、マップメモリ４２を利用して、ＦｌｅｘＲａｙＩＤに対応するＣＡＮＩＤ，ＣＡＮＩＤに対応するＦｌｅｘフレームバッファアドレスを探索する検索データ処理回路４０と、メモリインターフェース回路４１とを有する。
【００３６】
バス−インターフェース回路２０は、ＦｌｅｘＲａｙ受信データ処理回路２１と、ＣＡＮ受信データ処理回路２２と、ＦｌｅｘＲａｙスケジューラ回路２３と、ＣＡＮスケジューラ回路２４と、レジスタ設定部２５と、バス３０で接続される。ルーテイング回路２９は、バス３１で、ＦｌｅｘＲａｙ受信データ処理回路２１と、バス３２で、ＣＡＮ受信データ処理回路２２と、バス３３で、ＦｌｅｘＲａｙ送信バッファ２６とＣＡＮ送信バッファ２７と接続される。
【００３７】
ＦｌｅｘＲａｙスケジューラ回路２３は、バス３４で、ＦｌｅｘＲａｙバッファ２６と接続され、ＣＡＮスケジューラ回路２４は、バス３５で、ＣＡＮ送信バッファ２７と接続される。レジスタ設定回路２５は、バス３６で、ＦｌｅｘＲａｙ送信バッファ２６、ＣＡＮ送信バッファ２７、ルーテイング回路２９のメモリインターフェース回路４２と接続される。
【００３８】
ＣＰＵ１６は、バス１５、バスインターフェース回路２０を介し、レジスタ設定回路２５から、ＦｌｅｘＲａｙ送信バッファ２６、ＣＡＮ送信バッファ２７、マップメモリ４２の値を書込むことができる。
【００３９】
図７を参照して、図６を用いて、図５の各回路を説明する。受信データ（格納）処理回路２１は、ＦｌｅｘＲａｙフレームデータを受信、格納する。図７に示すように、ＦｌｅｘＲａｙの規定では、Ｃｙｃｌｅ０からＣｙｃｌｅ６３までの通信サイクルが規定されている。各サイクルＣｙｃｌｅ０〜６３は、タイムスロットＳｌｏｔ１からＳｌｏｔｍまでが、各ノードに割り当てられ、最後に、各サイクルを分離するＮＩＦ（Network  Idle  Time）が、設けられる。
【００４０】
この各タイムスロットのＦｌｅｘＲａｙフレームフォーマットは、ＦｌｅｘＲａｙＩＤ（ＦｌｅｘＲａｙバスのノードに割り当てられたＩＤ）、ペイロード・セグメントのデータ長等のヘッダセグメントに、データ１、データ２、…、のデータ部（ペイロード・セグメント）が続き、最後に、ＣＲＣ(Cyclic  Redundancy  Code)からなるトレーラセグメントで終了する。
【００４１】
次に、ＣＡＮデータ（格納）処理回路２２は、ＣＡＮフレームデータを受信、格納する。図７に示すように、ＣＡＮフレームフォーマットは、ＣＡＮＩＤ（ＣＡＮバスのノードに割り当てられたＩＤ）、データ長（ＤＬＣ），８ｂｙｔｅ単位の１つ又は複数のデータで構成される。
【００４２】
ルーテイング回路２９は、ＦｌｅｘＲａｙ受信データから送信先を検索し、宛先がＦｌｅｘＲａｙの場合には、ＦｌｅｘＲａｙ送信バッファ２６にデータを格納する。又、宛先がＣＡＮの場合には、その宛先のＣＡＮＩＤを付与し、ＣＡＮ送信バッファ（ＦＩＦＯ）２７にデータを格納する。又、ルーテイング回路２９は、ＣＡＮ受信データから送信先を検索し、宛先がＦｌｅｘＲａｙの場合には、ＦｌｅｘＲａｙ  ＩＤを付与し、ＦｌｅｘＲａｙ送信バッファ２６にデータを格納する。又、宛先がＣＡＮの場合には、ＣＡＮ送信バッファ（ＦＩＦＯ）２７にデータを格納する。
【００４３】
ＦｌｅｘＲａｙスケジュール回路２３は、ＦｌｅｘＲａｙのタイムトリガースケジュールに従い、ＦｌｅｘＲａｙ送信バッファ２６からデータを取得し、ＦｌｅｘＲａｙコントローラ１０にデータをセットする。ＣＡＮスケジュール回路２４は、ＣＡＮのイベントトリガースケジュールに従い、ＣＡＮ送信バッファ２７からデータを取得し、ＣＡＮコントローラ１２−１にデータをセットする。
【００４４】
ステータス検出回路２８は、ＦｌｅｘＲａｙ及びＣＡＮのバスステータス（受信未完了、途絶、ＣＡＮバス負荷大等）を検出し、フェールセーフ処理を実行する。
【００４５】
この例では、異なる通信プロトコル間のルーテイング、プロトコル変換、スケジューリングを、ハードウェアで実現するため、変換遅延を防止でき、高速の伝送レートを有効に利用できる。特に、ＦｌｅｘＲａｙとＣＡＮという通信プロトコルの相違による、同期監視や、エラー監視、エラー処理を、ＣＰＵ１６が優先的に実行できる。
【００４６】
又、変換処理やルーテイング処理についても、ＦｌｅｘＲａｙ，ＣＡＮのチャネル数が増加しても、中継先のチャネル検索を高速にでき、ルーテイング処理の時間遅延を防止できる。更に、変換処理対象のフレーム数が増加しても、変換装置内での滞留時間が増大することなく、スループットの低下を防止でき、大量のバッファメモリも必要としない。
【００４７】
図８は、図２に示したように、図６の送信動作をソフトウェアで実行する場合のＧ／Ｗハードマクロ回路２からＣＡＮコントローラ１２−１への送信動作の説明図である。
【００４８】
図８に示すように、Ｇ／Ｗハードマクロ回路２は、信号線を介し割り込み制御回路１８に、送信要求割り込みを通知する。割り込み制御回路１８は、ＣＰＵ１６に、送信要求割り込みを伝える。この割り込みに応じて、ＣＰＵ１６は、送信処理を開始し、Ｇ／Ｗハードマクロ回路２から送信データをバス１５から読み出し、バス１５を介し、ＣＡＮコントローラ１２−１に、変換したＣＡＮフレームデータを送信する。
【００４９】
この場合、ＦｌｅｘＲａｙスケジュール回路２３、ＣＡＮスケジュール回路２４の動作は、ＣＰＵ１６の送信処理が行う。
【００５０】
−ルーテイング回路及びスケジューリング回路−
図９は、図４及び図５のルーテイング回路の構成図、図１０は、図９のＦｌｅｘＲａｙ用宛先マップメモリの説明図、図１１は、図９のＣＡＮ用宛先マップメモリの説明図、図１２は、ＣＡＮ用送信制御マップメモリの説明図、図１３は、ＦｌｅｘＲａｙ送信バッファの説明図である。
【００５１】
図９に示すように、ルーテイング回路２９は、ＦｌｅｘＲａｙ用送信先判定回路３１と、ＣＡＮ向けデータ加工回路３２と、ＣＡＮ用送信先判定回路３３と、ＣＡＮ用宛先検索回路３４とを有する。
【００５２】
ＦｌｅｘＲａｙ用送信先判定回路３１は、ＦｌｅｘＲａｙ宛先マップメモリ３１−１を参照して、ＦｌｅｘＲａｙ受信データが、「ＦｌｅｘＲａｙ宛て」、「同報」、「ＣＡＮ宛て」のいずれかを判定する。
【００５３】
ＦｌｅｘＲａｙ用送信先判定回路３１は、ＦｌｅｘＲａｙ宛先マップメモリ３１−１を参照して、ＦｌｅｘＲａｙ受信データが、「ＦｌｅｘＲａｙ宛て」、「同報」の場合には、ＦｌｅｘＲａｙ送信バッファ２６に、データを格納し、ＦｌｅｘＲａｙ受信データが、「ＣＡＮ宛て」、「同報」の場合には、ＣＡＮ向けデータ加工回路３２へデータ転送する。
【００５４】
このためのＦｌｅｘＲａｙ宛先マップメモリ３１−１は、図１０に示すように、各ＦｌｅｘＲａｙＩＤ（図７参照）に対し、ＦｌｅｘＲａｙ送信先及びＣＡＮ送信の有無のデータ群と、予め指定された送信先ＣＡＮＩＤ（図７参照）とを格納する。送信先ＣＡＮＩＤは、最大２５６個まで拡張でき、要するに、指定に応じて、単数又は複数指定できる。
【００５５】
又、ＦｌｅｘＲａｙ送信先及びＣＡＮ送信の有無のデータ群は、８ビットで構成され、先頭６ビットで、ＦｌｅｘＲａｙ送信先（宛先）を、残りの２ビットで、「ＦｌｅｘＲａｙ宛て」、「ＣＡＮ宛て」、「同報」を示す。ここでは、ＦｌｅｘＲａｙ送信先は、“００”が、「ＩＤ無効」、“０１”が、「ＦｌｅｘＲａｙ  ＣＨ１」、“１０”が、「ＦｌｅｘＲａｙ  ＣＨ２」、“１００”が、「ＦｌｅｘＲａｙ  ＣＨ３」を示す。又、残りの２ビットは、“００”が、このＦｌｅｘＲａｙＩＤ欄の無効、“０１”が、「ＦｌｅｘＲａｙ宛て」、”１０“が、「ＣＡＮ宛て」、”１１“が、「同報」を指示する。
【００５６】
従って、ＦｌｅｘＲａｙ用送信先判定回路３１は、受信データ格納処理回路２１のＦｌｅｘＲａｙフレームデータ（図７参照）のＦｌｅｘＲａｙＩＤで、ＦｌｅｘＲａｙ宛先マップメモリ３１−１を参照し、ＦｌｅｘＲａｙ送信先及びＣＡＮ送信の有無のデータ群の残りの２ビットが、「ＦｌｅｘＲａｙ宛て」を示す場合は、ＦｌｅｘＲａｙ用送信バッファ２６（後述する）のＦｌｅｘＲａｙ宛先の領域に、受信ＦｌｅｘＲａｙフレームデータを書き込む。
【００５７】
同様に、ＦｌｅｘＲａｙ用送信先判定回路３１は、ＦｌｅｘＲａｙＩＤで、ＦｌｅｘＲａｙ宛先マップメモリ３１−１を参照し、ＦｌｅｘＲａｙ送信先及びＣＡＮ送信の有無のデータ群の残りの２ビットが、「ＣＡＮ宛て」を示す場合は、ＣＡＮＩＤ欄のＣＡＮＩＤを付加して、受信ＦｌｅｘＲａｙフレームデータを、ＣＡＮデータ加工回路３２に転送する。
【００５８】
同様に、ＦｌｅｘＲａｙ用送信先判定回路３１は、ＦｌｅｘＲａｙＩＤで、ＦｌｅｘＲａｙ宛先マップメモリ３１−１を参照し、ＦｌｅｘＲａｙ送信先及びＣＡＮ送信の有無のデータ群の残りの２ビットが、「同報」を示す場合は、ＦｌｅｘＲａｙ用送信バッファ２６（後述する）のＦｌｅｘＲａｙ宛先の領域に、受信ＦｌｅｘＲａｙフレームデータを書き込み、且つＣＡＮＩＤ欄のＣＡＮＩＤを付加して、受信ＦｌｅｘＲａｙフレームデータを、ＣＡＮデータ加工回路３２に転送する。
【００５９】
次に、ＣＡＮ用送信先判定回路３３は、ＣＡＮ宛先マップメモリ３３−１を参照して、ＣＡＮ受信データが、「ＦｌｅｘＲａｙ宛て」、「同報」、「ＣＡＮ宛て」のいずれかを判定する。
【００６０】
ＣＡＮ用送信先判定回路３３は、ＣＡＮ宛先マップメモリ３３−１を参照して、ＣＡＮ受信データが、「ＦｌｅｘＲａｙ宛て」、「同報」の場合には、ＦｌｅｘＲａｙ送信バッファ２６に、データを格納し、ＣＡＮ受信データが、「ＣＡＮ宛て」、「同報」の場合には、ＣＡＮ用宛先検索回路３４へデータ転送する。
【００６１】
このためのＣＡＮ宛先マップメモリ３３−１は、図１１に示すように、各ＣＡＮＩＤ（図７参照）に対し、ＦｌｅｘＲａｙ送信、ＣＡＮ送信の有無及びＦｌｅｘＲａｙ宛先のデータ群と、予め指定されたＦｌｅｘＲａｙ送信バッファアドレスとを格納する。
【００６２】
図１３のＦｌｅｘＲａｙ送信バッファ２６に示すように、ＦｌｅｘＲａｙＩＤ毎に、ＣＡＮＩＤのデータを格納するアドレス（位置）が予め指定されている。勿論、ＦｌｅｘＲａｙ同報等のため、ＦｌｅｘＲａｙＩＤの中には、ＦｌｅｘＲａｙの受信データを格納するアドレス（位置）も設けられている。又、そのデータ位置のデータを更新したかの履歴を示す更新履歴を設ける。更新履歴は、データが書き込み時に、更新されると、「ｏｎ」、ＦｌｅｘＲａｙ用送信バッファ２６のデータをＦｌｅｘＲａｙコントローラ１０にセットすると、「ｏｆｆ」と更新される。前述のＣＡＮ宛先マップメモリ３３−１のＦｌｅｘＲａｙ送信バッファアドレスは、図１２のＣＡＮＩＤに指定されたデータ格納位置である。
【００６３】
又、ＦｌｅｘＲａｙ送信、ＣＡＮ送信の有無及びＦｌｅｘＲａｙ宛先のデータ群は、８ビットで構成され、先頭６ビットで、ＦｌｅｘＲａｙ送信先（宛先）を、残りの２ビットで、「ＦｌｅｘＲａｙ宛て」、「ＣＡＮ宛て」、「同報」を示す。ここでは、ＦｌｅｘＲａｙ送信先は、“００”が、「ＩＤ無効」、“０１”が、「ＦｌｅｘＲａｙ  ＣＨ１」、“１０”が、「ＦｌｅｘＲａｙ  ＣＨ２」、“１００”が、「ＦｌｅｘＲａｙ  ＣＨ３」を示す。又、残りの２ビットは、“００”が、このＦｌｅｘＲａｙＩＤ欄の無効、“０１”が、「ＦｌｅｘＲａｙ宛て」、”１０“が、「ＣＡＮ宛て」、”１１“が、「同報」を指示する。
【００６４】
従って、ＣＡＮ用送信先判定回路３３は、受信データ格納処理回路２２のＣＡＮフレームデータ（図７参照）のＣＡＮＩＤで、ＣＡＮ宛先マップメモリ３３−１を参照し、送信先及び送信の有無のデータ群の残りの２ビットが、「ＦｌｅｘＲａｙ宛て」を示す場合は、ＦｌｅｘＲａｙ用送信バッファ２６（図１２）のＦｌｅｘＲａｙ送信バッファアドレスの領域に、受信ＣＡＮフレームデータを書き込み、更新履歴を更新する。
【００６５】
同様に、ＣＡＮ用送信先判定回路３３は、ＣＡＮＩＤで、ＣＡＮ宛先マップメモリ３３−１を参照し、送信先及び送信の有無のデータ群の残りの２ビットが、「ＣＡＮ宛て」を示す場合は、受信ＣＡＮフレームデータを、ＣＡＮ用宛先検索回路３４に転送する。
【００６６】
同様に、ＣＡＮ用送信先判定回路３３は、ＣＡＮＩＤで、ＣＡＮ宛先マップメモリ３３−１を参照し、送信先及び送信の有無のデータ群の残りの２ビットが、「同報」を示す場合は、ＦｌｅｘＲａｙ用送信バッファ２６（図１３）のＦｌｅｘＲａｙ送信バッファアドレスの領域に、受信ＣＡＮフレームデータを書き込み、且つ受信ＣＡＮフレームデータを、ＣＡＮ用宛先検索回路３４に転送する。
【００６７】
ＣＡＮデータ加工回路３２は、ＦｌｅｘＲａｙ送信宛先判定回路３１から送られた受信ＦｌｅｘＲａｙフレームデータとＣＡＮＩＤとから、ＣＡＮ用に分割が必要かを判定し、分割が必要な場合には、分割して、ＣＡＮＩＤを付して、ＣＡＮデータ（図７参照）を作成する。又、分割が必要でない場合には、受信ＦｌｅｘＲａｙフレームデータとＣＡＮＩＤとから、ＣＡＮＩＤを付したＣＡＮデータ（図７参照）を作成する。
【００６８】
次に、ＣＡＮ用宛先検索回路３４は、送付されたＣＡＮデータのＣＡＮＩＤで、ＣＡＮ宛先情報マップメモリ３４−１を参照し、送信先ＣＡＮチャネルを検索し、マップメモリ３４−１で指定された送信間隔で、ＣＡＮデータをＣＡＮ用送信バッファ（ＦＩＦＯ）２７に転送する。
【００６９】
このためのＣＡＮ宛先情報マップメモリ３４−１は、図１２に示すように、各ＣＡＮＩＤ（図７参照）に対し、定期送信間隔、間引き送信の有無、間引き回数、間引き時間、バス負荷による間引き送信の有無、ＣＡＮチャネル番号及びＣＡＮ送信バッファのアドレスとを格納する。
【００７０】
ＣＡＮバスに接続されるデバイスは様々であり、デバイスの中には、ＦｌｅｘＲａｙのように、周期的にデータ伝送方式で、データが送られても、無用であるものもあり、又、データを必ず送る必要があるデバイスと、所定時間待っても差し支えないデバイスもある。このため、ＣＡＮＩＤで指定したデバイス毎に、送信間隔（時間間隔）、間引き送信の有無、間引き間隔（回数）、間引き時間を指定できるようにし、且つデバイスの重要度に応じて、バス負荷による間引き送信の有無を設定できるようにしている。
【００７１】
更に、ＣＡＮ用宛先検索回路３４は、このＣＡＮＩＤで、ＣＡＮチャネルを探し、対応するＣＡＮ送信バッファアドレスに、前述の送信間隔や間引き情報等の送信制御情報を付加して、ＣＡＮデータを書き込む（データ転送する）。
【００７２】
このように、ルーテイング回路２９をハードウェアで構成したので、高速なルーテイングやデータ分割、データ変換が可能となり、且つ間引き等の細かな処理も容易に実現できる。
【００７３】
次に、図５及び図６のスケジューリング回路２３，２４を、図１４及び図１５で説明する。図１４は、ＦｌｅｘＲａｙ用スケジューリング回路２３の説明図である。図１４に示すように、ＦｌｅｘＲａｙ用スケジューリング回路２３は、ＦｌｅｘＲａｙ送信バッファ２６からデータを読み出し、ＦｌｅｘＲａｙのスケジュールに従い、ＦｌｅｘＲａｙコントローラ１０にデータ転送する。
【００７４】
即ち、ＦｌｅｘＲａｙスケジューリング回路２３は、ＦｌｅｘＲａｙコントローラ１０からのＮＩＴ（図７参照）を検出して、内部でスケジュールを行い、各スロットに対応したＦｌｅｘＲａｙ送信バッファ２６のＦｌｅｘＲａｙＩＤのデータＤＡＴＡ１、ＤＡＴＡ２、ＤＡＴＡ３を順次読み出し、ＦｌｅｘＲａｙコントローラ１０にデータ転送する。
【００７５】
次に、図１５は、ＣＡＮ用スケジューリング回路２４の構成図であり、データ送信タイミング判定回路２４−１と、定期送信処理回路２４−２と、間引き送信判定回路２４−３と、送信調停処理回路２４−４を有する。
【００７６】
データ送信タイミング判定回路２４−１は、ＣＡＮ用送信バッファ（ＦＩＦＯ）２７にデータが格納されているかを調べる。尚ＣＡＮ用送信バッファ２７には、チャネル毎に、自動送信の有無、イベント／定期送信を指示するレジスタが設けられている。
【００７７】
データ送信タイミング判定回路２４−１は、ＣＡＮ用送信バッファ２７にデータが格納されており、且つ自動送信有りに設定された送信ＦＩＦＯ（チャネル）のデータを読み出し、イベント／定期の設定に応じて、定期送信処理回路２４−２又は送信調停処理回路２４−４に振り分け、そのデータ格納バッファ２４−Ａ又は２４−Ｂに格納する。
【００７８】
定期送信処理回路２４−２は、データ格納バッファ２４−Ａの格納データ（ＣＡＮデータ）から付加された送信間隔（図１２参照）で、データ格納バッファ２４−ＡのＣＡＮデータを、間引き送信処理回路２４−３に送信する。
【００７９】
間引き送信処理回路２４−３は、ＣＡＮデータの間引き情報（図１２参照）を調べ、間引き有りの場合には、間引き回数、時間等に基づき、間引き処理を行い、送信調停処理回路２４−４のデータ格納バッファ２４−Ｂに格納する。又、間引き送信処理回路２４−３は、ＣＡＮデータの間引き情報（図１２参照）から、バス負荷有りの間引きの場合には、バス負荷が、設定値になったかを調べ、設定値になったら、間引き処理を行い、送信調停処理回路２４−４のデータ格納バッファ２４−Ｂに格納する。
【００８０】
送信調停処理回路２４−４は、データ格納バッファ２４−ＢのＣＡＮデータをＣＡＮコントローラ１２−１に転送する。又、送信調停処理回路２４−４は、データ格納バッファ２４−Ｂが空の場合には、ＣＡＮデータが格納されたタイミングで、ＣＡＮコントローラ１２−１に転送し、ＣＡＮコントローラ１２−１のメッセージボックス１２０に空がない場合（満杯の場合）には、ＣＡＮコントローラ１２−１からのＣＡＮ送信完了割り込みで、データ格納バッファ２４−ＢからＣＡＮデータを読み出し、ＣＡＮコントローラ１２−１に転送する。
【００８１】
このように、スケジューリング動作も、個別に、且つプロトコルに合わせて、実行できる。
【００８２】
−ＦｌｅｘＲａｙのエラー検出機構−
次に、ＦｌｅｘＲａｙのエラー検出機構を説明する。図１６は、ＦｌｅｘＲａｙのステータス状態遷移図である。（１）パワーオフの状態からパワーオンとなると、ＣＰＵ１６が、ＦｌｅｘＲａｙコントローラ１０の初期設定（例えば、通信速度、通信サイクル時間）を行う（Ｃｏｎｆｉｇ）。（２）ＦｌｅｘＲａｙコントローラ１０は、Ｃｏｎｆｉｇモード（１）で設定した値に従い、内部のステートマシンの設定を行う（Ｒｅａｄｙ）。
【００８３】
（３）、（４）ＦｌｅｘＲａｙコントローラ１０は、バス上の他のノードを起動する（Ｗａｋｅｕｐ）。（５）ＦｌｅｘＲａｙコントローラ１０は、他のノードとのクロック同期を行い、通信スケジュールを確立する（Ｓｔａｒｔｕｐ）。（６）Ｓｔａｒｔｕｐ後、通常動作状態に遷移する（Ｎｏｒｍａｌ  Ａｃｔｉｖｅ）。
【００８４】
ここで、図の四角で囲まれたＷａｋｅｕｐ，Ｓｔａｒｔｕｐ，Ｎｏｒｍａｌ  ａｃｔｉｖｅ等が、ＦｌｅｘＲａｙバス上で、信号の送受信が可能な状態である。
【００８５】
図１７は、ＦｌｅｘＲａｙのエラー状態遷移図である。図１７に示すように、Ｎｏｒｍａｌ  Ａｃｔｉｖｅ状態は、フレームの送受信を実施し、クロック同期動作を継続する。Ｎｏｒｍａｌ  ｐａｓｓｉｖｅ状態は、フレームの送信を停止し、受信動作とクロック同期動作は継続し、エラー検出を、ＣＰＵ１６に通知する。Ｈａｌｔ状態は、フレームの送信、受信動作とクロック同期動作を停止し、バスドライバー１７を強制的に、図１６のＣｏｎｆｉｇ状態に移行させ、異常エラー検出を、ＣＰＵ１６に通知する。
【００８６】
ＦｌｅｘＲａｙコントローラ１０のクロック同期エラーカウンタ１０−１（図２参照）は、クロック同期エラー検出時（オフセット又はレート補正失敗）に、インクリメントされ、クロック同期成功時に、「０」リセットされる。エラーカウンタ１０−１の更新は、ＦｌｅｘＲａｙの奇数通信サイクル（図７参照）の終わりに行われる。
【００８７】
ここで、クロック同期エラーカウンタ１０−１の値が、規定値以上の場合に、Ｎｏｒｍａｌ  ａｃｔｉｖｅ状態からＮｏｒｍａｌ  ｐａｓｓｉｖｅ状態への遷移し（１）、クロック同期エラーカウンタ１０−１の値が、規定値以上及びクロック補正値が設定されたリミット補正値以上の場合に、Ｎｏｒｍａｌ  ａｃｔｉｖｅ状態又はＮｏｒａｍｌ  ｐａｓｓｉｖｅ状態からＨａｌｔ状態に遷移する（２）。
【００８８】
更に、クロック同期に成功すると、Ｎｏｒｍａｌ  ｐａｓｓｉｖｅ状態からＮｏｒｍａｌ  ａｃｔｉｖｅ状態に遷移し（３）、クロック同期エラーカウンタ１０−１は、「０」にリセットされる。
【００８９】
ＦｌｅｘＲａｙコントローラ１０のコミュニケーションコントローラ（ＣＣ）は、このクロック同期エラーと、バスドライバー１７が検出したエラーを判断し、Ｈａｌｔ状態に移行する。これとともに、ＦｌｅｘＲａｙコントローラ１０のコミュニケーションコントローラ（ＣＣ）は、文法上のエラーを観測すると、文法エラーフラグを、内容上のエラーを観測すると、内容エラーフラグを、Ｓｌｏｔ境界を侵犯されたことを検出すると、Ｓｌｏｔ侵犯エラーフラグを、送信衝突エラーを観測すると、送信衝突エラーフラグを、フラグ形式で、エラーフラグレジスタ１０−２にセットし、ＣＰＵ１６に伝達する。
【００９０】
ＣＰＵ１６は、これらのフラグを判断して、コントローラ１０にＨａｌｔ移行コマンドを発行し、コミュニケーションコントローラをｈａｌｔ状態に移行させる。
【００９１】
従来は、これらのＦｌｅｘＲａｙエラー等を、ＣＡＮバスに、伝達する手段を有していなかった。この発明では、Ｇ／Ｗハードマクロ回路２のステータス検出回路２８（図５及び図６参照）が、これらのＦｌｅｘＲａｙバスの状態を検出して、ＣＡＮバスに伝達する。ここでは、ステータス検出回路２８が、ＦｌｅｘＲａｙバスの異常時に、ＣＡＮバスに、エラー情報（図１８乃至図２１）や、ステータス（図２４）、フェールセーフ値（図２２及び図２３）を通知し、又、ＦｌｅｘＲａｙバスが立ち上がる前に、ＦｌｅｘＲａｙバスが立ち上がっていないことを、ＣＡＮバスに、この状態や初期値（図２５乃至図３１）で送信する。
【００９２】
図１８は、本発明の第１の実施の形態のＦｌｅｘＲａｙエラー検出処理フロー図、図１９は、図１８のステータスエラーフラグテーブルの説明図である。
【００９３】
（Ｓ１０）ステータス検出回路２８は、バス３０、バスインターフェース回路２０を介し、ＣＰＵ内部バス１５より、ＦｌｅｘＲａｙコントローラ１０のエラーを監視する。
【００９４】
（Ｓ１２）即ち、ステータス検出回路２８は、ＦｌｅｘＲａｙコントローラ１０のクロック同期エラーカウンタ１０−１の値を確認する。
【００９５】
（Ｓ１４）又、ステータス検出回路２８は、ＦｌｅｘＲａｙコントローラ１０のエラーフラグレジスタ１０−２のフラグを確認する。
【００９６】
（Ｓ１６）ステータス検出回路２８は、ＦｌｅｘＲａｙコントローラ１０のクロック同期エラーカウンタ１０−１の値が、規定値以下の正常かを判定し、正常でない場合には、図１９のエラーフラグテーブルのステータスエラーフラグを「１」にセットする。
【００９７】
（Ｓ１８）ステータス検出回路２８は、ＦｌｅｘＲａｙコントローラ１０のクロック同期エラーカウンタ１０−１の値が正常であれば、エラーフラグレジスタ１０−２をフラグが、全て「０」かを判定し、全て「０」でない場合には、図１９のエラーフラグテーブルのステータスエラーフラグを「１」にセットする。一方、エラーフラグレジスタ１０−２をフラグが、全て「０」である場合には、図１９のエラーフラグテーブルのステータスエラーフラグを「０」にセットする。
【００９８】
このエラーフラグテーブルは、図１９に示すように、ＦｌｅｘＲａｙのＩＤ分領域を設け、各ＦｌｅｘＲａｙＩＤに、ビットを割り当てる。
【００９９】
次に、ＣＡＮバスへの通知処理を説明する。図２０は、本発明の第１の実施の形態のＦｌｅｘＲａｙエラー通知処理フロー図、図２１は、図２０の通知動作の説明図である。
【０１００】
（Ｓ２０）ステータス検出回路２８は、ルーテイング回路２９に、エラーフラグテーブル（図１９）を通知する。ルーテイング回路２９は、ＦｌｅｘＲａｙ送信フレームデータ（図２１参照）を受信する。
【０１０１】
（Ｓ２２）ルーテイング回路２９は、ＦｌｅｘＲａｙＩＤから前述のＣＡＮ宛先マップ３１−１のＣＡＮ宛先をサーチし、ＣＡＮ宛先に対応するＦｌｅｘＲａｙＩＤのエラーフラグテーブルのステータスフラグを取り出す。
【０１０２】
（Ｓ２４）ルーテイング回路２９は、図２１に示すように、ＣＡＮＩＤ毎に、ＦｌｅｘＲａｙデータをデータ分割し、ＣＡＮＩＤ，データに、ステータスフラグを付加して、送信用ＣＡＮデータを作成する。
【０１０３】
このようにして、ＣＡＮバスのデバイスは、ＣＡＮバスからのＦｌｅｘＲａｙデータ受信時に、ＦｌｅｘＲａｙのバス状態を認識でき、適切な処置を取ることができる。
【０１０４】
図２２は、本発明の第２の実施の形態のＦｌｅｘＲａｙエラー通知動作の説明図である。この例でも、図１８及び図１９でＦｌｅｘＲａｙエラーを検出する機構を利用する。そして、図２０のステップＳ２０において、ルーテイング回路２９は、各ＣＡＮＩＤのフェールセーフ値を格納する。更に、ステップＳ２２において、ＦｌｅｘＲａｙＩＤのステータスフラグテーブルのステータスフラグが「１」である時は、送信ＣＡＮデータのデータ部に、フェールセーフ値を上書きして、送信ＣＡＮデータを作成する。
【０１０５】
フェールセーフ値としては、例えば、車両の安全走行系では、スロットルデータを、クローズ側（閉側）の値としたり、クルーズコントロールのキャンセル等である。このため、ＦｌｅｘＲａｙエラー時に、正常でないデータが、ＣＡＮバスに送られることを防止できる。
【０１０６】
図２３は、本発明の第３の実施の形態のＦｌｅｘＲａｙエラー通知動作の説明図である。この例でも、図１８及び図１９でＦｌｅｘＲａｙエラーを検出する機構を利用する。そして、図２０のステップＳ２０において、ルーテイング回路２９は、各ＣＡＮＩＤのフェールセーフ値を格納する。更に、ステップＳ２２において、ＦｌｅｘＲａｙＩＤのステータスフラグテーブルのステータスフラグが「１」である時は、送信ＣＡＮデータのデータ部に、フェールセーフ値を上書きして、且つステータスフラグを付加して、送信ＣＡＮデータを作成する。
【０１０７】
この例では、図２２の例に加え、更に受信したＣＡＮデバイスが、受信データが、フェールセーフ値かを、ステータスフラグで判断でき、さらに、適切な処置を実現できる。
【０１０８】
図２４は、本発明の第４の実施の形態のＦｌｅｘＲａｙエラー検出処理フロー図、図２５は、図２４のステータスエラーフラグテーブルの説明図である。
【０１０９】
（Ｓ３０）ステータス検出回路２８は、バス３０、バスインターフェース回路２０を介し、ＣＰＵ内部バス１５より、ＦｌｅｘＲａｙコントローラ１０のエラーを監視する。
【０１１０】
（Ｓ３２）即ち、ステータス検出回路２８は、ＦｌｅｘＲａｙコントローラ１０のクロック同期エラーカウンタ１０−１の値を確認する。
【０１１１】
（Ｓ３４）又、ステータス検出回路２８は、ＦｌｅｘＲａｙコントローラ１０のクロック補正値レジスタ１０−４の補正値を確認する。
【０１１２】
（Ｓ３６）ステータス検出回路２８は、ＦｌｅｘＲａｙコントローラ１０のクロック同期エラーカウンタ１０−１の値が、規定値以下の正常かを判定し、正常である場合には、図２５のステータスフラグテーブルのステータスエラーフラグを「００」にセットする。図１７で説明したように、クロック同期エラーカウンタ１０−１の値が、正常なら、ＦｌｅｘＲａｙバスは、Ｎｏｒｍａｌ  Ａｃｔｉｖｅ状態であり、「００」にセットする。
【０１１３】
（Ｓ３８）ステータス検出回路２８は、ＦｌｅｘＲａｙコントローラ１０のクロック同期エラーカウンタ１０−１の値が正常でなければ、クロック補正値レジスタ１０−４の値が、リミット値以内かを判定し、レジスタ１０−４の値が、リミット値以内の場合には、図２５のステータスフラグテーブルのステータスエラーフラグを「０１」にセットし、リミット値以内でない場合には、図２５のステータスフラグテーブルのステータスエラーフラグを「１０」にセットする。図１７で説明したように、クロック補正値レジスタ１０−４の値が、正常なら、ＦｌｅｘＲａｙバスは、Ｎｏｒｍａｌ  ｐａｓｓｉｖｅ状態であり、「０１」にセットする。又、図１７で説明したように、クロック補正値レジスタ１０−４の値が、異常なら、ＦｌｅｘＲａｙバスは、Ｈａｌｔ状態であり、「１１」にセットする。
【０１１４】
図２５に示すように、ステータスフラグテーブルは、ＦｌｅｘＲａｙチャネル（ＣＨ）毎に、即ち、ＦｌｅｘＲａｙバス毎に、２ビット割り当てる。
【０１１５】
又、ＣＡＮバスへの通知は、バス異常のため、ＦｌｅｘＲａｙデータを受信できない。このため、ルーテイング回路２９は、ステータスフラグテーブルからステータスの変化を検出し、検出したＦｌｅｘＲａｙチャネルに対し、ステータスを送付するように割り当てられたＣＡＮＩＤのデータ部に、ステータスフラグを格納し、送信ＣＡＮデータを作成する。例えば、図２１と同様に、送信処理する。
【０１１６】
次に、図１６で説明したように、ＦｌｅｘＲａｙは、立ち上がり時に、同期調整が必要である。図２６に示すように、ＣＰＵ１６やＣＡＮコントローラ１２−１（ＣＡＮバス）が立ち上がっても、ＦｌｅｘＲａｙバスでは、同期調整時間（図１６のＲｅａｄｙ状態からＮｏｒｍａｌ  Ａｃｔｉｖｅ状態への遷移時間）を必要とする。
【０１１７】
このため、ＦｌｅｘＲａｙが、立ち上がっていないことを、一種のエラーとして、ＣＡＮ側に通知することが有用である。図２７は、本発明の第５のＦｌｅｘＲａｙエラー検出処理フロー図、図２８は、図２７の立上りフラグテーブルの説明図である。
【０１１８】
（Ｓ４０）イグニション（ＩＧ）が、オン、又は、メッセージ変換装置のリセット後の復帰時に、開始する。
【０１１９】
（Ｓ４２）ステータス検出回路２８は、バス３０、バスインターフェース回路２０を介し、ＣＰＵ内部バス１５より、ＦｌｅｘＲａｙコントローラ１０のモード（Ｎｏｒｍａｌ  Ａｃｔｉｖｅ状態等）を確認する。
【０１２０】
（Ｓ４４）ステータス検出回路２８は、ＦｌｅｘＲａｙコントローラ１０のモードが、Ｎｏｒｍａｌ  Ａｃｔｉｖｅ状態（立上り）であるかを判定し、立上り状態である場合には、図２８の立上りフラグテーブルの立上りフラグを「１」にセットする。一方、立上り状態にないと判定すると、図２８の立上りフラグテーブルのステータスエラーフラグを「０」にセットし、ステップＳ４２に戻る。
【０１２１】
この立上りフラグテーブルは、図２８に示すように、ＦｌｅｘＲａｙのチャネル（ＣＨ）分領域を設け、各ＦｌｅｘＲａｙチャネルに、ビットを割り当てる。
【０１２２】
次に、ＣＡＮバスへの通知処理を説明する。図２９は、本発明の第４の実施の形態のＦｌｅｘＲａｙエラー通知処理フロー図、図３０は、図２９の通知動作の説明図である。
【０１２３】
（Ｓ５０）起動時から、ルーテイング回路２９は、ステータス検出回路２８の立上りフラグテーブル（図２８）の立上りフラグを参照する。
【０１２４】
（Ｓ５２）ルーテイング回路２９は、ＦｌｅｘＲａｙチャネルが立ち上がっているかを判定し、立上っていると判定すると、終了する。
【０１２５】
（Ｓ５４）逆に、立上っていないと判定すると、ルーテイング回路２９は、ＦｌｅｘＲａｙチャネルから前述のＣＡＮ宛先マップ３１−１の立ち上がりステータスを送信するＣＡＮ宛先（ＣＡＮＩＤ）をサーチする。
【０１２６】
（Ｓ５６）ルーテイング回路２９は、図３０に示すように、サーチしたＣＡＮＩＤに、初期値データを付加して、送信用ＣＡＮデータを作成する。
【０１２７】
このように、立上ってないＦｌｅｘＲａｙが送信する宛先のＣＡＮＩＤ全てに初期値を送信するので、ＣＡＮバスのデバイスは、ＦｌｅｘＲａｙが立上っていないことを認識でき、適切な処置を取ることができる。又、初期値を送信するので、ＣＡＮバスのデバイスは、初期シーケンスを確立できる。
【０１２８】
図３１は、本発明の第５の実施の形態のＦｌｅｘＲａｙエラー通知動作の説明図である。この例でも、図２７及び図２８のＦｌｅｘＲａｙの立上りを検出する機構を利用する。そして、図２９のステップＳ５６において、ＦｌｅｘＲａｙチャネルの立上りフラグテーブルの立上りフラグが「１」である時は、送信ＣＡＮデータのデータ部に、初期値と、初期値フラグ（立上りフラグ）を格納して、送信ＣＡＮデータを作成する。
【０１２９】
この例では、図３０の例に加え、更に受信したＣＡＮデバイスが、受信データが、初期値であるかを、初期値フラグで判断でき、さらに、適切な処置を実現できる。
【０１３０】
−ＣＡＮのエラー検出機構−
次に、ＣＡＮバスのエラーを、ＦｌｅｘＲａｙバスのノードに伝達する手段を説明する。ＣＡＮバスの異常は、ＣＡＮコントローラ１２−１の受信エラーカウンタ値と、送信エラーカウンタ値で認識できる。ステータス検出回路２８が、これを検出して、ＦｌｅｘＲａｙ側に通知する。  
【０１３１】
図３２は、本発明の第１の実施の形態のＣＡＮエラー検出処理フロー図、図３３は、図３２のステータスエラーフラグテーブルの説明図である。
【０１３２】
（Ｓ６０）ステータス検出回路２８は、バス３０、バスインターフェース回路２０を介し、ＣＰＵ内部バス１５より、ＣＡＮコントローラ１２−１（１２−２，１２−３）の受信エラーカウンタ１２Ａ，送信エラーカウンタ１２Ｂを監視する。
【０１３３】
（Ｓ６２）ステータス検出回路２８は、ＣＡＮコントローラ１２−１（１２−２，１２−３）の受信エラーカウンタ１２Ａの値が、規定値以下の正常かを判定し、正常でない場合には、図３３のエラーフラグテーブルのステータスエラーフラグを「１」にセットする。
【０１３４】
（Ｓ６４）ステータス検出回路２８は、ＣＡＮコントローラ１２−１（１２−２，１２−３）の受信エラーカウンタ１２Ａの値が正常であれば、送信エラーカウンタ１２Ｂの値が、規定値以下の正常かを判定し、正常でない場合には、図３３のエラーフラグテーブルのステータスエラーフラグを「１」にセットする。一方、送信エラーカウンタ１２Ｂの値が、正常である場合には、図３３のエラーフラグテーブルのステータスエラーフラグを「０」にセットする。
【０１３５】
このエラーフラグテーブルは、図３３に示すように、ＣＡＮのチャネル分領域を設け、各ＣＡＮチャネルに、ビットを割り当てる。
【０１３６】
次に、ＦｌｅｘＲａｙバスへの通知処理を説明する。図３４は、本発明の第１の実施の形態のＣＡＮエラー通知処理フロー図、図３５は、図３４の通知動作の説明図である。
【０１３７】
（Ｓ７０）ステータス検出回路２８は、ルーテイング回路２９に、エラーフラグテーブル（図３３）を通知する。ルーテイング回路２９は、ＣＡＮ送信フレームデータ（図７参照）を受信する。
【０１３８】
（Ｓ７２）ルーテイング回路２９は、エラーフラグテーブルのステータスエラーフラグを取り出す。
【０１３９】
（Ｓ７４）ルーテイング回路２９は、図３５に示すように、ＦｌｅｘＲａｙ１コミュニケーションサイクルのＦｌｅｘＲａｙフレームの１つのデータ領域（ここでは、ＤＡＴＡＸ）を、ステータスフラグ領域に割り当て、ＣＡＮのチャネル毎に、ステータスフラグｂｎ，…、ｂ０を格納し、送信用ＦｌｅｘＲａｙデータを作成する。
【０１４０】
このようにして、ＦｌｅｘＲａｙバスのデバイスは、ＣＡＮバスからのＣＡＮデータ受信時に、ＣＡＮバスの状態を認識でき、適切な処置を取ることができる。
【０１４１】
図３６は、本発明の第２の実施の形態のＣＡＮエラー通知処理フロー図、図３７は、その通知動作の説明図である。この例でも、図３４及び図３５のＣＡＮバスエラーを検出する機構を利用する。
【０１４２】
（Ｓ８０）ルーテイング回路２９は、ステータス検出回路２８のステータスフラグテーブル（図３３）のステータスフラグを参照する。
【０１４３】
（Ｓ８２）ルーテイング回路２９は、ステータスフラグからＣＡＮバス異常かを判定する。異常でないと、通常のＦｌｅｘＲａｙフレームデータを作成し、ステップＳ８８に進む。
【０１４４】
（Ｓ８４）逆に、ＣＡＮバス異常と判定すると、ルーテイング回路２９は、ＣＡＮバス異常の各ＣＡＮＩＤのフェールセーフ値を読み出す。  
【０１４５】
（Ｓ８６）ルーテイング回路２９は、図３７に示すように、ＦｌｅｘＲａｙフレーム内のＣＡＮバス異常のＣＡＮＩＤのデータをフェールセーフ値で上書きし、送信用ＦｌｅｘＲａｙフレームデータを作成する。
【０１４６】
（Ｓ８８）ルーテイング回路２９は、送信用ＦｌｅｘＲａｙフレームを送信する。
【０１４７】
フェールセーフ値としては、例えば、車両の安全走行系では、スロットルデータを、クローズ側（閉側）の値としたり、クルーズコントロールのキャンセル等である。このため、ＣＡＮバスエラー時に、正常でないデータが、ＦｌｅｘＲａｙバスに送られることを防止できる。
【０１４８】
図３８は、本発明の第３の実施の形態のＣＡＮバスエラー通知動作の説明図である。この例でも、図３２及び図３３のＣＡＮバスエラーを検出する機構を利用する。そして、図３６のステップＳ８６において、ルーテイング回路２９は、ＣＡＮチャネル（バス）のステータスフラグテーブルのステータスフラグが「１」である時は、図３８に示すように、送信ＦｌｅｘＲａｙフレーム内のＣＡＮバス異常のＣＡＮＩＤのデータ部（ＤＡＴＡ２，ＤＡＴＡｎ）に、フェールセーフ値とフェールセーフフラグ（ステータスフラグ）を上書きして、送信ＦｌｅｘＲａｙフレームデータを作成する。
【０１４９】
この例では、図３７の例に加え、更に受信したＦｌｅｘＲａｙノードが、受信データが、フェールセーフ値であるかを、ステータスフラグで判断でき、さらに、適切な処置を実現できる。
【０１５０】
次に、ＣＡＮバスやＣＡＮデバイスでも、ＣＰＵ１６やＦｌｅｘＲａｙバスがよりも後で立ち上がる場合がある。ＣＡＮデバイスに自己の電源を持っていないデバイス、例えば、オーデイオ機器や携帯機器、では、電源を持っていないものがあり、他の機器の立ち上がり後、他の機器から電源が供給される。
【０１５１】
このため、ＣＡＮバスやＣＡＮデバイスが、立ち上がっていないことを、一種のエラーとして、ＦｌｅｘＲａｙ側に通知することが有用である。図３９は、本発明の第４のＣＡＮエラー検出処理フロー図である。
【０１５２】
（Ｓ９０）メッセージ変換装置１が起動されると、開始する。
【０１５３】
（Ｓ９２）次に、設定により、ＣＡＮの立上りが定義される。ここでは、（１）ＣＰＵ１６が、ＣＡＮ通信を行うＣＡＮコントローラ１２−１の設定が完了した、（２）ＣＡＮデータが、ＣＡＮバスに流れ、ＣＡＮコントローラ１２−１が受信した、（３）ルーテイング回路２９内に、ＦｌｅｘＲａｙに送るＣＡＮデータが、一通り揃う、のいずれかを定義できる。ステータス検出回路２８は、バス３０、バスインターフェース回路２０を介し、ＣＰＵ内部バス１５より、ＣＡＮコントローラ１２−１の状態や、ルーテイング回路２９内のＣＡＮデータの有無を確認する。
【０１５４】
（Ｓ９４）ステータス検出回路２８は、この定義項目を調べ、ＣＡＮチャネル（バス）が立ち上がったかを判定する。ステータス検出回路２８は、立上り状態である場合には、図３３のエラーステータスフラグテーブルの立上りフラグを「１」にセットする。一方、立上り状態にないと判定すると、図３３のステータスフラグテーブルの立上りフラグを「０」にセットする。
【０１５５】
このステータスフラグテーブルは、図３３に示したように、ＣＡＮのチャネル（ＣＨ）分領域を設け、各ＣＡＮチャネルに、ビットを割り当てる。
【０１５６】
次に、ＦｌｅｘＲａｙバスへの通知処理を説明する。図４０は、本発明の第４の実施の形態のＣＡＮエラー通知動作の説明図である。
【０１５７】
この例では、図３７と同様に、ＦｌｅｘＲａｙ１コミュニケーションサイクルのＦｌｅｘＲａｙフレームの１つのデータ領域（ここでは、ＤＡＴＡＸ）を、ステータスフラグ領域に割り当て、ＣＡＮのチャネル毎に、ステータスフラグｂｎ，…、ｂ０を格納し、送信用ＦｌｅｘＲａｙデータを作成する。
【０１５８】
このようにして、ＦｌｅｘＲａｙバスのデバイスは、ＣＡＮバスからのＣＡＮデータ受信時に、ＣＡＮバスの状態を認識でき、適切な処置を取ることができる。
【０１５９】
図４１は、本発明の第５の実施の形態のＣＡＮエラー通知動作の説明図である。この例も、図３７と同様に、ＣＡＮバス異常と判定すると、ルーテイング回路２９は、ＣＡＮバス異常の各ＣＡＮＩＤの初期値を読み出す。更に、ルーテイング回路２９は、図４１に示すように、ＦｌｅｘＲａｙフレーム内のＣＡＮバス異常のＣＡＮＩＤのデータを初期値で上書きし、送信用ＦｌｅｘＲａｙフレームデータを作成する。
【０１６０】
このように、立上ってないＣＡＮバスが送信する宛先のＦｌｅｘＲａｙのＣＡＮＩＤのデータ部に初期値を格納するので、ＦｌｅｘＲａｙバスのデバイスは、ＣＡＮが立上っていないことを認識でき、適切な処置を取ることができる。又、初期値を送信するので、ＦｌｅｘＲａｙバスのデバイスは、初期シーケンスを確立できる。
【０１６１】
図４２は、本発明の第６の実施の形態のＣＡＮエラー通知動作の説明図である。この例でも、図３８と同様に、ＣＡＮバス異常と判定すると、ルーテイング回路２９は、ＣＡＮバス異常の各ＣＡＮＩＤの初期値を読み出す。更に、ルーテイング回路２９は、図４２に示すように、ＦｌｅｘＲａｙフレーム内のＣＡＮバス異常のＣＡＮＩＤのデータを初期値と立上りフラグで上書きし、送信用ＦｌｅｘＲａｙフレームデータを作成する。
【０１６２】
この例では、図４１の例に加え、更に受信したＦぇｘＲａｙデバイスが、受信データが、初期値であるかを、初期値フラグで判断でき、さらに、適切な処置を実現できる。
【０１６３】
−他の実施の形態−
前述の実施の形態では、ゲートウェイ装置を、ＦｌｅｘＲａｙとＣＡＮの交換で説明したが、他の通信プロトコル、特に、イベントトリガー型と、タイムトリガー型との他の通信交換に利用できる。Ｇ／Ｗハードマクロ部の構成も、例えば、スケジューリング回路は、他の構成を採用できる。更に、車載用の用途のみならず、他の用途にも利用できる。
【産業上の利用可能性】
【０１６４】
一の通信路のステータスを検出するステータス検出部を設け、一の通信路のメッセージを、他の通信プロトコルのメッセージに変換する変換部が、ステータス検出部の検出結果に応じて、他の通信路に、他の通信プロトコルで、検出結果を示すデータを送信するので、異なる通信プロトコルのネットワークの異常を一括して、検出して、一方の通信ネットワークの異常を他方の通信ネットワークのノードに通知することができる。
【図面の簡単な説明】
【０１６５】
【図１】本発明の一実施の形態の通信メッセージ変換装置のブロック図である。
【図２】図１のメッセージ変換の主要部のブロック図である。
【図３】図２のハード構成のＦｌｅｘＲａｙデータ受信動作の説明図である。
【図４】図２のハード構成のＣＡＮデータ送信動作の説明図である。
【図５】図１、図２のＧ／Ｗハードマクロ部の構成図である。
【図６】図５のＧ／Ｗハードマクロ部のブロック図である。
【図７】図４のＦｌｅｘＲａｙとＣＡＮのフレーム関係図である。
【図８】図２のハード・ソフト構成のＣＡＮデータ送信動作の説明図である。
【図９】図６のルーテイング部の構成図である。
【図１０】図９のＦｌｅｘＲａｙ宛先マップメモリの説明図である。
【図１１】図９のＣＡＮ宛先マップメモリの説明図である。
【図１２】図９のＣＡＮ変換マップメモリの説明図である。
【図１３】図９のＦｌｅｘＲａｙ送信バッファの説明図である。
【図１４】図６のＦｌｅｘＲａｙスケジューリング回路の説明図である。
【図１５】図６のＣＡＮスケジューリング回路の説明図である。
【図１６】ＦｌｅｘＲａｙのステータス状態遷移図である。
【図１７】ＦｌｅｘＲａｙのエラー状態遷移図である。
【図１８】本発明のＦｌｅｘＲａｙエラー検出の第１の実施の形態の処理フロー図である。
【図１９】図１９のステータスフラグテーブルの説明図である。
【図２０】本発明のＦｌｅｘＲａｙエラー通知の第１の実施の形態の処理フロー図である。
【図２１】図２０のエラー通知動作の説明図である。
【図２２】本発明のＦｌｅｘＲａｙエラー通知の第２の実施の形態の説明図である。
【図２３】本発明のＦｌｅｘＲａｙエラー通知の第３の実施の形態の説明図である。
【図２４】本発明のＦｌｅｘＲａｙエラー検出の第２の実施の形態の処理フロー図である。
【図２５】図２４のステータスフラグテーブルの説明図である。
【図２６】本発明のＦｌｅｘＲａｙエラー検出の第３の実施の形態のタイムチャート図である。
【図２７】本発明のＦｌｅｘＲａｙエラー検出の第３の実施の形態の処理フロー図である。
【図２８】図２７の立上りフラグテーブルの説明図である。
【図２９】本発明のＦｌｅｘＲａｙエラー通知の第４の実施の形態の処理フロー図である。
【図３０】図２９のエラー通知動作の説明図である。
【図３１】本発明のＦｌｅｘＲａｙエラー通知の第５の実施の形態の説明図である。
【図３２】本発明のＣＡＮエラー検出の第１の実施の形態の処理フロー図である。
【図３３】図３２のステータスフラグテーブルの説明図である。
【図３４】本発明のＣＡＮエラー通知の第１の実施の形態の処理フロー図である。
【図３５】図３４のＣＡＮエラー通知動作の説明図である。
【図３６】本発明のＣＡＮエラー通知の第２の実施の形態の処理フロー図である。
【図３７】図３６のＣＡＮエラー通知動作の説明図である。
【図３８】本発明のＣＡＮエラー通知の第３の実施の形態の説明図である。
【図３９】本発明のＣＡＮエラー検出の第２の実施の形態の処理フロー図である。
【図４０】本発明のＣＡＮエラー通知の第４の実施の形態の説明図である。
【図４１】本発明のＣＡＮエラー通知の第５の実施の形態の説明図である。
【図４２】本発明のＣＡＮエラー通知の第６の実施の形態の説明図である。
【符号の説明】
【０１６６】
１  通信メッセージ変換装置
２  Ｇ／Ｗハードマクロ回路
１０  ＦｌｅｘＲａｙコントローラ
１２−１，１２−２，１２−３  ＣＡＮコントローラ
２１  ＦｌｅｘＲａｙ受信格納処理回路
２２  ＣＡＮ受信格納処理回路
２３  ＦｌｅｘＲａｙスケジュール回路
２４  ＣＡＮスケジュール回路
２６  ＦｌｅｘＲａｙ送信バッファ
２７  ＣＡＮ送信バッファ
２８  ステータス検出回路
２９  ルーテイング回路
【図１】
2007174118.tif 000003
【図２】
2007174118.tif 000004
【図３】
2007174118.tif 000005
【図４】
2007174118.tif 000006
【図５】
2007174118.tif 000007
【図６】
2007174118.tif 000008
【図７】
2007174118.tif 000009
【図８】
2007174118.tif 000010
【図９】
2007174118.tif 000011
【図１０】
2007174118.tif 000012
【図１１】
2007174118.tif 000013
【図１２】
2007174118.tif 000014
【図１３】
2007174118.tif 000015
【図１４】
2007174118.tif 000016
【図１５】
2007174118.tif 000017
【図１６】
2007174118.tif 000018
【図１７】
2007174118.tif 000019
【図１８】
2007174118.tif 000020
【図１９】
2007174118.tif 000021
【図２０】
2007174118.tif 000022
【図２１】
2007174118.tif 000023
【図２２】
2007174118.tif 000024
【図２３】
2007174118.tif 000025
【図２４】
2007174118.tif 000026
【図２５】
2007174118.tif 000027
【図２６】
2007174118.tif 000028
【図２７】
2007174118.tif 000029
【図２８】
2007174118.tif 000030
【図２９】
2007174118.tif 000031
【図３０】
2007174118.tif 000032
【図３１】
2007174118.tif 000033
【図３２】
2007174118.tif 000034
【図３３】
2007174118.tif 000035
【図３４】
2007174118.tif 000036
【図３５】
2007174118.tif 000037
【図３６】
2007174118.tif 000038
【図３７】
2007174118.tif 000039
【図３８】
2007174118.tif 000040
【図３９】
2007174118.tif 000041
【図４０】
2007174118.tif 000042
【図４１】
2007174118.tif 000043
【図４２】
2007174118.tif 000044