(57)【特許請求の範囲】
【請求項１】
複数のモジュール間で識別コード付きのメッセージを通信するためのネットワークに対してエラーコードを送出するエラーコード送出装置であって：
所望の識別コードを予め記憶しておく識別コードレジスタ；
ネットワークから識別コードを受信・検出して、保存する識別コード検出素子；
前記識別コードレジスタ内の識別コードと前記識別コード検出素子内の識別コードとを比較して、少なくとも一部が一致したときに一致信号を出力する比較器；および
前記比較器からの一致信号に応答して、ネットワークに対してエラーコードを送出するエラーコード発生器；
から成ることを特徴とするエラーコード送出装置。
【請求項２】
前記ネットワークがコントロールエリアネットワークである、ことを特徴とする請求項１記載の装置。
【請求項３】
さらに、前記識別コード検出素子および前記エラーコード発生器とネットワークとの間にトランシーバを設けた、ことを特徴とする請求項２記載の装置。
【請求項４】
前記識別コードレジスタがワイルドカードレジスタを有しており；
前記比較器は、前記識別コードレジスタ内の識別コードと前記識別コード検出素子内の識別コードとを比較して、所定の一部が一致したときに一致信号を出力する、ことを特徴とする請求項１記載の装置。
【請求項５】
複数のモジュール間で識別コード付きのメッセージを通信するためのネットワークに対してエラーコードを送出する方法であって：
所望の識別コードを予め記憶しておく段階；
ネットワークから識別コードを受信・検出して、保存する段階；
前記の予め記憶しておいた識別コードと前記の受信して保存した識別コードとを比較して、少なくとも一部が一致したときに一致信号を出力する段階；
前記一致信号に応答して、ネットワークに対してエラーコードを送出する段階；
から成り、エラーを含まないメッセージを見かけ上エラー状態にできることを特徴とする方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、エラーコード送出装置および方法に関するものであって、特に複数のモジュール間で識別コード付きのメッセージを通信するネットワークに対してエラーコードを送出するエラーコード送出装置および方法に関するものである。
【０００２】
【発明の背景】
車載用ネットワーク、家電製品用ネットワーク、産業制御機器用ネットワークなどのような複数のモジュールを接続したネットワークとして、国際規格（ISO11898）のコントロールエリアネットワーク（CAN）が知られている。CANの伝送レートは最高1Mbpsであり、従来の通信方式に比べ非常に高速である。デジタル信号のハイ、ローを、ネットワーク上の二線間の差動電圧に置き換えるシリアル通信なので耐ノイズ性に優れている。また、ネットワークの異常検知とリカバリー動作の殆どをCANコントローラが自動的に行なってくれるという特長がある。
【０００３】
車載用ネットワークの場合には、接続されるモジュールとして例えばエンジンコントローラ、メーターパネルコントローラ、トランスミッションコントローラなどが挙げられる。これらのモジュールは他のモジュールの制御対象の状態を知らないと自分の制御対象を制御できないという関係にある。従って、各モジュール間でお互いにデータを高速で交換し合う必要がある。これらのモジュールを対等かつ並列に接続するためにCANが有効である。
【０００４】
CANはマルチマスタ能力を備えるバスシステムであり、全てのCANモジュールがバス上にデータを送信することができる。 また複数のCANモジュールが同時にバスの信号を受信することもできる（ブロードキャスティング方式）。CANネットワークにおいては、いわゆるステーションIDというものが原則的にはなく、代わりに、識別コードであるメッセージIDによりメッセージを識別する。各モジュールは受信したIDを基にメッセージを正式に取り込むべきかどうかを処理するフィルタリング機能を持つ。また、メッセージIDは複数のモジュールからのバスアクセスが競合した場合の優先権も決定する。 回線争奪の結果、通信調停に勝利したモジュールからのメッセージのみがバス上に現れる。
このようなCANネットワークに接続された１個のモジュールの一例を図１に示す。バス上のデータを受信する場合には、CANトランシーバ２が、バス１上の差動電圧信号で表されるメッセージを受信し、２値のデジタル信号（Ｌ、Ｈ）に変換して、CANコントローラ３に送る。バスにデータを送信する場合には、CANトランシーバ２が、CANコントローラ３からの２値のデジタル信号を差動電圧信号に変換してバス１上に送出する。より具体的には、最大1Mbpsのハイスピード系の場合、デジタルハイ信号がCANバス上の電位差で-1.0V〜+0.4V（リセッシブ、Recessive）に相当し、デジタルロー信号がCANバス上の電位差 +1.0V〜+5.0V（ドミナント、Dominant）に相当する。最大125Kbpsのフォルトトレラント系の場合、デジタルハイ信号がCANバス上の電位差 -5V〜-3.2V（リセッシブ、Recessive）に相当し、デジタルロー信号がCANバス上の電位差 -2.5V〜+5.0V（ドミナント、Dominant）に相当する。ただし、これらの電位差は、トランシーバの品種によって、若干異なる。
【０００５】
CANコントローラ３は、受信したメッセージのIDすなわち識別コードが自分の受信すべきメッセージであることを示すとき、そのメッセージをメッセージバッファ５に記憶させ、割り込み信号で演算装置４に知らせる。そのメッセージを利用して、演算装置４が所定の処理をする。演算装置４がデータをバスに供給するときは、メッセージバッファ５にIDと送信データを書き込んで、CANトランシーバを介して送信する。CANコントローラは規格に従い、バスが空いているときにデータを自動的にバスラインに載せる。他の全てのモジュールがバスライン上のこのデータを受信することができる。
【０００６】
もし、あるメッセージにエラーが生じた場合には、そのメッセージを受信したCANコントローラ３がエラーを検出する。エラーを検出すると、CANコントローラ３が、１４ビットのエラーフレームをバス上に送出する。エラーフレームの形式はCANで規格化されており、６ビット分のエラーフラグと８ビット分のエラーデリミターである。具体的に、エラーフラグとは、モジュールのエラー検出状態によってことなり、通常状態（error-active）のとき、６ビットの連続ドミナントを意味し、エラー状態（error-passive）のとき、６ビットの連続リセッシブを意味する。また、エラーデリミターとは、８ビットの連続リセッシブ信号を意味する。複数のモジュールがバス上に異なる信号を供給した場合、１つでもドミナントがあればバスは必ずドミナント状態になる。６ビット分のドミナント信号の後の８ビット分のリセッシブ信号は、次のフレームを識別可能にするためである。もし、全てのモジュールがエラーを検出したのでなく、１つのモジュールでもエラーを検出しなかった場合、そのエラーを検出しなかったモジュールは、他のエラーを検出したモジュールが送出するエラーフレームを受信して、初めてエラーであると認識し、エラーフレームを送出する。つまり、エラーフレーム検出後、エラーフレームを送出する。このように、バス上では、エラーフレームの送出が互いに時間的にずれているとすると、みかけのエラーフレーム全体の長さが長くなってしまう。そこで、バス上に現れるみかけのエラーフレームは１４ビットではなく全部で最大２０ビットであると考えておくのがよい。
【０００７】
あるメッセージについて、受信したモジュールの何れかからエラーフレームが送出され、そのメッセージを送信した送信側がそのエラーフレームを受信すると、送信側はメッセージ送信を停止する。次に送信できる状態になるまで待って再送する。送信側は、エラーカウンタを有し、カウンタの値がしきい値まで増える（つまりエラーの数がしきい値を越える）と、自動的にバスオフになる。
【０００８】
【発明が解決しようとする課題】
上記のような従来のモジュールは、通常のメッセージの送受信やエラー発生状況のモニターなどの機能がある。モジュール開発者がエラーに対処するプログラムを作成しそれを検証する場合には、エラーが起こることが必要である。しかし通常エラーは起きないので、エラーを故意に起こす必要がある。劣悪な通信回線の状況で起こるエラーの検証を行うために、従来、例えば正弦波などのノイズをバス上に混入させる方法があった。しかし、バス上にノイズを混入させる方法では、全てのモジュールからの通信メッセージが対象となってしまい、特定のモジュールのみまたは特定のメッセージのみをエラー状態にするということができなかった。
【０００９】
そこで本発明は、特定のモジュールのみまたは特定のメッセージのみをエラー状態にできるエラーコード送出装置および方法を提供することを目的としている。
【００１０】
【実施例】
以下に本発明の実施例について図面を参照して説明する。図２には従来のものと同様なモジュール１０と本発明の一実施例に従ったエラーコード送出装置２０が示されている。これらは、一体に形成されても良いし、別個に形成されても良い。通常はスイッチング回路３０がCANコントローラ３側に接続されており、正常なメッセージやエラーを含むメッセージを受信したときは、図１と同様な通常の処理をする。
【００１１】
ある所定の識別コードをもつメッセージをエラー状態に変えることによって、そのメッセージに関するエラー検出を行いたい場合、本実施例のエラーコード送出装置が有効である。CANトランシーバ２が受信したデータは、デジタル２値出力のシリアルデータに変換され、CANモジュール１０およびエラーコード送出装置２０へ供給される。識別コード検出素子２１が、CANトランシーバ２からのシリアルデジタルデータを受信し、識別コードを検出して保存する。識別コードが１１ビットからなるデジタルコードであるとすると、識別コード検出素子２１は１１ビットのレジスタを含む。
【００１２】
識別コードレジスタ２３は、演算装置４からエラー状態にしたいメッセージの識別コードの供給を受け、記憶する。例えば１１ビットのレジスタであって良い。識別コードレジスタはさらにワイルドカードレジスタ２５を有しても良い。比較器２２が、識別コードレジスタ２３に記憶された識別コードと識別コード検出素子２１に保存された識別コードとを比較して、これらのコードが完全に一致したときに一致信号を出力する。単一のメッセージではなく、あるメッセージグループ全体をエラー状態にしたい場合には、識別コードの一部だけが一致したときに一致信号を出力するようにすることもできる。この際、例えばワイルドカードレジスタ２５が有用である。１１ビットのワイルドカードレジスタのうち、例えば１が入っているビットについては、識別コード検出素子２１と識別コードレジスタ２３の値に関係なく両識別コードが一致しているとみなすことができる。例えば、（検出した識別コード  XNOR    記憶してある識別コード）OR ワイルドカードレジスタ  というような論理式で表される結果のビットが全て１になったときに、一致出力を出せばよい。
【００１３】
比較器２２からの一致出力に応答して、エラーフレーム発生器２６が上述のようなエラーフレームおよび切り替え制御信号を発生して、それらをスイッチング回路３０に出力する。エラーフレームに限らず、その対象メッセージが、無効（エラー）と解釈されるような信号やコードであれば、どのような形式のものであって良い。これらを総称してエラーコードと呼ぶ。スイッチング回路３０は、切り替え制御信号に応答して、CANトランシーバへの出力をCANコントローラ３側からエラーフレーム発生器２６側に切り替える。これにより、エラーフレーム発生器２６からのエラーコードがCANトランシーバ２を介してバス１に送出される。
【００１４】
一致出力はまた割込制御回路２７にも送られて、演算装置４にエラーフレーム送出が起こることを知らせる。
【００１５】
エラー状態に変えられたメッセージを送信したモジュール（エラーコード送信（マーキング）対象となるメッセージを送信したモジュール）がバス上のエラーコードを受信すると、送信エラー検出及び処理の手順に入ることができ、初期の目的が達成される。
【００１６】
本発明はもちろんCAN以外のどのようなネットワークにも適用可能である。CANの場合にはCANコントローラが自動的にデータの送受信をしてしまい自由度が低いことから、本発明のエラーコード送出装置は特に有用である。
【００１７】
【実施例の効果】
本発明の実施例は、上述のとおり構成されているので、エラーフレームのマーキング機能により、特定の識別コードを送信するモジュールまたはメッセージをエラー状態にすることができる。これによって、通常ではできなかったモジュール上で動作しているソフトウェアのアブノーマル処理（エラー復帰処理）を検証することができる。
【００１８】
本実施例によれば、特定の識別コードのメッセージを無効（エラー）にすることができ、尚かつ、そのメッセージを送信したモジュールを送信エラー状態にする事ができる。特定の識別コードのメッセージを無効（エラー）にすることができるので、その無効にされたメッセージを必要とし、つまりこのメッセージ内のデータを受け取り、そのデータに基づいて内部処理しているモジュールがあったとすると（受信モジュール）、そのモジュールは、特定のデータ（メッセージ）が入らない状況になる。別の言い方をすると、複数の必要とするデータの中で、特定のデータが入らない状況を、意図的に作り出すことが可能であり、そのような事態に対処するためのアブノーマル処理の検証することが可能である。
さらに、そのメッセージを送信したモジュールを送信エラー状態にする事ができるので、送信エラーカウンタを意図的に上げる（カウントアップさせる）ことが可能である。
【図面の簡単な説明】
【図１】従来のCANモジュールの一例を示すブロック図である。
【図２】本発明の一実施例に従ったエラーコード送出装置を従来のCANモジュールとともに示すブロック図である。
【符号の説明】
１０      エラーコード送出装置
２３      識別コードレジスタ
２１      識別コード検出素子
２２      比較器
２６      エラーコード発生器
２５      ワイルドカードレジスタ
２７      割込制御回路
【図１】
0004570753.tif 000002
【図２】
0004570753.tif 000003