(57)【要約】【課題】ＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）システムにおいて、受信メッセージの取りこぼしを軽減しつつ、トラフィックの過増大を回避する【解決手段】ＣＡＮノード１２０のＩＤ変換再送ＭＳＧ管理部１４０は、再送対象ＩＤを有する送信メッセージの識別ＩＤを、該再送対象ＩＤに対して設定された、再送のための専用識別ＩＤである再送専用ＩＤに置き換えて該送信メッセージを再送する。また、ＩＤ変換再送ＭＳＧ管理部１４０は、再送専用ＩＤを有する受信メッセージである再送メッセージについて、該再送メッセージに対応するメッセージを正常に受信したか否かを確認し、正常に受信したときには、該再送メッセージを破棄し、正常に受信していなかったときには、該再送メッセージの識別ＩＤを、対応する再送対象ＩＤに変換する。【選択図】図１
2010147590.tif 000002
【特許請求の範囲】
【請求項１】
送信メッセージの優先順位を示す識別ＩＤのうちの、該送信メッセージが再送対象であることを示す再送対象ＩＤを有する送信メッセージに対して、該送信メッセージの識別ＩＤを、前記再送対象ＩＤに対応した、再送のための専用識別ＩＤである再送専用ＩＤに置き換えて前記送信メッセージを再送する変換再送部と、
前記再送専用ＩＤを有する受信メッセージである再送メッセージについて、該再送メッセージに対応するメッセージを正常に受信したか否かを確認し、正常に受信したときには、前記再送メッセージを破棄し、正常に受信していなかったときには、前記再送メッセージの識別ＩＤを、前記再送専用ＩＤに対応する再送対象ＩＤに変換する変換受信部とを備えることを特徴とするＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）ノード。
【請求項２】
前記再送専用ＩＤは、前記再送対象ＩＤより低い優先順位を示すものであることを特徴とする請求項１に記載のＣＡＮノード。
【請求項３】
前記再送対象ＩＤは、予め設定された識別ＩＤであることを特徴とする請求項１または２に記載のＣＡＮノード。
【請求項４】
前記再送対象ＩＤは、所定の優先順位以上を示す識別ＩＤであることを特徴とする請求項１または２に記載のＣＡＮノード。
【請求項５】
受信メッセージを一時的に格納するバッファをさらに備え、
前記変換受信部は、受信した前記再送メッセージのメッセージ内容と、前記バッファに格納された、前記再送メッセージの識別ＩＤに対応する再送対象ＩＤの受信メッセージのうちの、最も後に受信した受信メッセージの内容とが一致するか否かを比較することにより、前記再送メッセージに対応するメッセージを正常に受信したかの確認を行うことを特徴とする請求項１から４のいずれか１項に記載のＣＡＮノード。
【請求項６】
前記変換再送部は、送信メッセージの再送の前に、他のＣＡＮノードから、該送信メッセージの識別ＩＤである再送対象ＩＤ、または該再送対象ＩＤに対応する再送専用ＩＤのメッセージが送信された際に、前記再送を取りやめることを特徴とする請求項１から５のいずれか１項に記載のＣＡＮノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）システムにおける通信技術に関する。
【背景技術】
【０００２】
昨今の自動車には、エンジンの点火タイミング制御、ギアボックス、ＡＢＳ（Ａｎｔｉ−Ｂｌｏｃｋ  Ｓｙｓｙｔｅｍ）など多種多様な電子制御システムが搭載されている。搭載されるシステムの増大に従い配線数の増大、センサーの重複などの問題がある。また、さらに高度な性能を追求した結果、これらのシステムを統合または協調して制御する必要が生じる。
【０００３】
統合または協調して制御するために、上記システム間でデータ通信を行う必要がある。ＩＳＯ１１８９８−１（非特許文献１）で規定されるＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）は、このために開発された通信プロトコルであり、自動車に限らず、船舶、医療機器などの広い分野に利用されている。ここでＣＡＮプロトコルを簡単に説明する。
【０００４】
図９は、ＣＡＮシステムの接続例を示す模式図である。図９に示すように、ＣＡＮシステム１０は、複数のＣＡＮノード（以下単にノードという）１２が、ＣＡＮバス１４により接続してなる。ＣＡＮバス１４は、２本のワイヤ（ワイヤ１６とワイヤ１８）により構成され、各ノードにおけるＣＡＮコントローラ（図示せず）は、ＣＡＮバス１４の２本のワイヤの電位差によりそのバスのレベルを判断する。送信側のノード１２は、このレベルを変化させることによって、別のノード１２にメッセージを送信できる。
【０００５】
後述するバスオフ状態にあるノードを除き、ＣＡＮバス１４が空いているときは、ＣＡＮバス１４に接続されたすべてのノード１２がメッセージの送信を開始することができ、ＣＡＮバス１４に対して最初に送信を開始したノードが送信権を得る。また、同時に複数のノードが送信を開始した場合は、優先順位の最も高いメッセージを送信しているノードが送信権を得る。優先順位について、ＣＡＮプロトコルで定められるフレームの構造と共に説明する。
【０００６】
ＣＡＮプロトコルでは、データフレーム、リモートフレーム、エラーフレーム、オーバーロードフレーム、インターフレームスペースの５種類のフレームが定められている。データフレームは、送信側のノード（送信ノード）が受信側のノード（受信ノード）へメッセージを送るためのフレームであり、リモートフレームは同じ優先順位をもつメッセージを送信ノードへ要求するためのフレームである。また、エラーフレームは、エラーを検出したときに他のノードへエラーを通知するためのフレームであり、オーバーロードフレームは、受信ノードが受信準備未完了を通知するためのフレームであり、インターフレームスペースは、データフレームおよびリモートフレームを前のフレームと分離させるためのフレームである。ここで、データフレームのフォーマットを例に説明する。
【０００７】
図１０は、ＣＡＮプロトコルで定められるデータフレームの標準フォーマットを示す。図示のように、ＣＡＮのデータフレームは、複数のフィールドを含む。「ＳＯＦ」と「ＥＯＦ」は、フレームの開始と終了をそれぞれ示すフィールドである。「調停フィールド」は、フレームの優先順位を表すフィールドであり、優先順位を示す識別ＩＤが格納される。同時に複数のノードが送信を開始した場合、送信される各データフレームのＩＤに基づいて調停が行われる。調停の結果、優先順位が最も高いＩＤを有するデータフレームを送信するノードはそのまま送信を続け、他のノードは直ちに送信をやめ受信動作に移る。制御フィールド（ＤＬＣ）は、予約ビットとデータのバイト数を表すフィールドであり、データフィールドは、メッセージの中身である。また、ＣＲＣフィールドは、フレームの伝送誤りをチェックするフィールドであり、ＡＣＫフィールドは、正常受信した確認の合図を表すフィールドである。
【０００８】
各ノード１２は、送信エラーと受信エラーをそれぞれカウントする送信エラーカウンタと受信エラーカウンタを備える。送信エラーカウンタと受信エラーカウンタのカウントアップおよびカウントダウンのタイミングおよびカウント数は、ＣＡＮプロトコルの規格を参照されたいが、概して、送信エラーカウンタは、送信エラーを検出したときにはカウントアップし、正常送信できたときにはカウントダウンする。同様に、受信エラーカウンタは、受信エラーを検出したときにはカウントアップし、正常受信できたときにはカウントダウンする。
【０００９】
各ノードは、その受信エラーカウンタのカウント値（ＲＥＣ）と、送信エラーカウンタのカウント値（ＴＥＣ）に応じて、エラーアクティブ状態、エラーパッシブ状態、バスオフ状態の３つのエラー状態間で遷移する。エラーアクティブ状態は、バス上の通信に正常に参加できる状態であり、エラーパッシブ状態は、エラーアクティブ状態よりエラーを起こしやすい状態である。エラーパッシブ状態にあるノードは、エラーアクティブ状態のノードと比べ、連続送信時の制限と、エラー通知の制限が設けられている。また、バスオフ状態は、エラーパッシブ状態よりさらにエラーを起こしやすい状態であり、この状態にあるノードは、送受信すべての動作が禁止され、バス上の通信に参加できない。
【００１０】
上述した３つのエラー状態の遷移は、送信エラーカウンタと受信エラーカウンタのカウント値に基づいてなされる。図１１に示すように、送信エラーカウンタのカウント値ＴＥＣと受信エラーカウンタのカウント値ＲＥＣが共に０〜１２７であるときには、該ノードはエラーアクティブ状態にあり、ＴＥＣとＲＥＣのいずれか一方が１２８〜２５５であるときには、該ノードはエラーパッシブ状態になる。また、ＲＥＣに関わらず、ＴＥＣが２５６以上になったときには、該ノードはバスオフ状態になり、ＣＡＮバス上の通信から切り離される。
【００１１】
ＣＡＮでは、このようにして、エラーを起しやすい程度に応じたエラー状態を規定し、エラー状態に応じた制限を当該ノードの送受信動作に加えることにより、エラーを起こしやすいノードによる通信の妨害を回避する。
【００１２】
ＣＡＮプロトコルでは、メッセージが確実に送信宛ノードに届き、受信の取りこぼしを軽減するために、メッセージの自動再送機能が用意されている。メッセージの自動再送は、送信時の優先順位調停負けや、送信エラーを検出したことをトリガーとして行われる。なお、送信エラーの検出は、送信宛ノードがメッセージを正常に受信できなかったときに行うエラー通知により知らされる場合も含む。
【非特許文献１】ISO11891-1,"Road vehicles Interchange of digital information Part 1: Controller area network data link layer and medium access control"
【発明の開示】
【発明が解決しようとする課題】
【００１３】
ＣＡＮシステムにおいて、エラーアクティブ状態にあるノードが、受信エラーを検出したときにアクティブエラーフラグを出力してエラー通知を行う。これにより、送信元ノードが送信エラーを認識し、メッセージを再送する。
【００１４】
一方、エラーパッシブ状態は、エラーを起こしやすい状態であり、この状態にあるノードは、バス上の通信に参加できるが、他のノードの通信を妨害しないように、受信時において積極的にエラー通知を行うことができない。具体的には、エラーパッシブ状態にあるノードは、エラーを検出していても、他のエラーアクティブ状態のノードがエラーを検出していなければ、バス全体としてはエラーがなかったと判断される。エラーパッシブ状態のノードは、エラーを検出したときに、パッシブエラーフラグを出力する。
【００１５】
例えば、図１２に示すように、ノードＡとノードＢはエラーアクティブ状態にあり、ノードＣがローカルに障害を持つことによりローカルエラーが頻発してエラーパッシブ状態に陥っている。この状態において、ノードＡがノードＣにメッセージを送信した場合を考える。
【００１６】
ノードＣは、正常に受信できず、エラーフラグをバスに出力するが、このエラーフラグは、パッシブエラーフラグである。パッシブエラーフラグは、レセッシブレベルであるため、他のノードに感知されない。したがって、ノードＡは、ノードＢが正常に受信できなかったことを知ることができず、再送を行わない。
【００１７】
この場合、受信側のノードに正常に受信できたか否かの確認は、上位階層のソフトウェアにより行われる。この確認は、受信側ノードへの問合せや、受領通知などの処理を含む。したがって、再送が必要な場合には、実際に再送が実行されるまで、長いレイテンシが生じる。また、最近、自動車内の処理内容が複雑化し、車内ＬＡＮのトラフィックが増加する一方である。そのため、受信が正常に出来たか否かを確認するための問合せや、受領通知などの処理によるトラフィックの増加を回避し、バス帯域への圧迫を軽減することが要望されている。
【課題を解決するための手段】
【００１８】
本発明の１つの態様は、ＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）ノードである。このＣＡＮノードは、変換再送部と変換受信部を備える。
【００１９】
変換再送部は、送信メッセージの優先順位を示す識別ＩＤのうちの、該送信メッセージが再送対象であることを示す再送対象ＩＤを有する送信メッセージに対して、該送信メッセージの識別ＩＤを、前記再送対象ＩＤから、該再送対象ＩＤに対応した、再送のための専用識別ＩＤである再送専用ＩＤに置き換えて再送を行う。
【００２０】
変換受信部は、再送専用ＩＤを有する受信メッセージである再送メッセージについて、該再送メッセージに対応するメッセージを正常に受信したか否かを確認し、正常に受信したときには、該再送メッセージを破棄し、正常に受信していなかったときには、該再送メッセージの識別ＩＤを、再送専用ＩＤから、該再送専用ＩＤに対応する再送対象ＩＤに変換する。
【００２１】
なお、上記態様のＣＡＮノードを方法や、コンピュータを当該ノードまたは当該ノードの一部として動作せしめるプログラムとして置き換えて表現したものも、本発明の態様として有効である。また、上記態様のＣＡＮノードを複数備えたシステムも、本発明の態様として有効である。
【発明の効果】
【００２２】
本発明の技術によれば、ＣＡＮシステムにおいて、受信メッセージの取りこぼしを軽減しつつ、トラフィックの過増大を回避することができる。
【発明を実施するための最良の形態】
【００２３】
以下、図面を参照して本発明の実施の形態を説明する。なお、以下の説明に用いられる図面に、様々な処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、プロセッサ、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリに記録された、またはロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。また、分かりやすいように、これらの図面において、本発明にかかる技術を説明するために必要なもののみを示す。また、説明に際して、メッセージとフレームとを同じ意味で用いる。
【００２４】
図１は、本発明の実施の形態にかかるＣＡＮシステム１００を示す。ＣＡＮシステム１００は、ＣＡＮプロトコルに準拠し、複数のＣＡＮノード（以下単にノードという）１２０が、ＣＡＮバス１１０により接続されている。
【００２５】
図２は、図１に示すＣＡＮシステム１００におけるノード１２０を示す。ノード１２０は、トランシーバ１２２と、ＣＰＵ１２４と、周辺チップ１２６と、ＣＡＮコントローラ１３０を備える。ＣＰＵ１２４と、周辺チップ１２６と、ＣＡＮコントローラ１３０は、ローカルバス１２８により接続される。
【００２６】
トランシーバ１２２は、ＣＡＮバス１１０と接続し、ＣＡＮバス１１０上のフレームを受信してＣＡＮコントローラ１３０に転送すると共に、ＣＡＮコントローラ１３０から送出されるフレームをＣＡＮバス１１０に出力する。ノード１２０とＣＡＮバス１１０間のすべての送受信は、トランシーバ１２２を介して行われる。
【００２７】
ＣＡＮコントローラ１３０は、ビットストリーム制御部１３２と、エラー管理部１３４と、送受信タイミング制御部１３６と、ＩＤ変換再送メッセージ管理部（以下ＩＤ変換再送ＭＳＧ管理部という）１４０と、メッセージハンドラ１５０と、メッセージバッファ１５２を有する。メッセージバッファ１５２は、さらに受信バッファ１５４と送信バッファ１５６を備える。
【００２８】
ビットストリーム制御部１３２は、通信（送信／受信）にエラーが生じたか否かを検知する機能を備え、通信エラーが発生すると、その旨を示す信号をエラー管理部１３４に出力する。また、送信エラーが生じたときには、その旨を示す送信エラー検出信号をＩＤ変換再送ＭＳＧ管理部１４０にも出力する。
【００２９】
ビットストリーム制御部１３２は、通信が正常に終了した際にも、その旨をエラー管理部１３４に通知する。また、ビットストリーム制御部１３２は、受信が完了した時には受信完了を示すＥＯＦ信号を、送信が完了した時には送信完了を示すＥＯＦ信号を送受信タイミング制御部１３６に出力する。
【００３０】
さらに、ビットストリーム制御部１３２は、受信したフレーム（受信フレーム）を、ＩＤ変換再送ＭＳＧ管理部１４０に出力すると共に、ＩＤ変換再送ＭＳＧ管理部１４０からのフレーム（出力フレーム）を、トランシーバ１２２を介してＣＡＮバス１１０に送出する。なお、ビットストリーム制御部１３２がフレームをＣＡＮバス１１０に送出するタイミングは、送受信タイミング制御部１３６により制御される。
【００３１】
ＩＤ変換再送ＭＳＧ管理部１４０は、ビットストリーム制御部１３２からの受信フレームに対して、「そのままメッセージハンドラ１５０に出力する」、「識別ＩＤを変換してからメッセージハンドラ１５０に出力する」、「破棄する」の３種類の処理を行う。また、ＩＤ変換再送ＭＳＧ管理部１４０は、メッセージハンドラ１５０からの出力フレームに対して、「そのままビットストリーム制御部１３２に出力する」、「そのままビットストリーム制御部１３２に出力すると共に、該フレームの識別ＩＤを変換して再度出力する」の２種類の処理を行う。ＩＤ変換再送ＭＳＧ管理部１４０は、本発明の特徴部分であり、後にその詳細を説明する。
【００３２】
メッセージハンドラ１５０は、ＩＤ変換再送ＭＳＧ管理部１４０とメッセージバッファ１５２間に接続され、メッセージハンドラ１５０からの受信フレームをメッセージバッファ１５２における受信バッファ１５４に格納させ、送信バッファ１５６に格納された未送信の送信フレームをＩＤ変換再送ＭＳＧ管理部１４０に出力する。
【００３３】
図３は、メッセージバッファ１５２を示す。メッセージバッファ１５２は、受信バッファ１５４と送信バッファ１５６を有する。受信バッファ１５４は、メッセージハンドラ１５０からの受信フレームを格納しており、送信バッファ１５６は、未送信の送信フレームを格納している。図示のように、受信フレームと送信フレームは、識別ＩＤ（受信フレームの場合は受信ＩＤ、送信フレームの場合は送信ＩＤという）と、ＤＬＣ（制御フィールドのデータ）と、データフィールドの内容（受信フレームの場合は受信データ、送信フレームの場合は送信データという）とを対応付けて格納されている。
【００３４】
なお、受信バッファ１５４に格納された受信フレームは、ローカルバス１２８を介して後にＣＰＵ１２４と周辺チップ１２６に供される。また、送信バッファ１５６に格納された未送信の送信フレームは、ローカルバス１２８を介してＣＰＵ１２４または周辺チップ１２６から受け取ったものである。
【００３５】
図２に戻って説明する。エラー管理部１３４は、図示しない受信エラーカウンタと送信エラーカウンタを備え、ビットストリーム制御部１３２から受信した信号に基づいて受信エラーカウンタと送信エラーカウンタのカウントアップまたはカウントダウンを制御する。具体的には、ビットストリーム制御部１３２から受信エラーの通知信号を受信すると、受信エラーカウンタをインクリメントさせ、送信エラーの通知を受信すると、送信エラーカウンタをインクリメントさせる。また、ビットストリーム制御部１３２から受信が正常に終了した信号を受信すると、受信エラーカウンタをデクリメントさせ、送信が正常に終了した信号を受信すると、送信エラーカウンタをデクリメントさせる。
【００３６】
さらに、エラー管理部１３４は、受信エラーカウンタのカウント値ＲＥＣと送信エラーカウンタのカウント値ＴＥＣに基づいてノード１２０のエラー状態を管理する。具体的には、図１１に示すようにＲＥＣとＴＥＣに基づいてノード１２０のエラー状態を、エラーアクティブ状態、エラーパッシブ状態、バスオフ状態間で遷移させる。
【００３７】
エラー管理部１３４は、ノード１２０の現在のエラー状態を示す信号（エラー状態通知信号）を送受信タイミング制御部１３６とＩＤ変換再送ＭＳＧ管理部１４０に通知する。
【００３８】
送受信タイミング制御部１３６は、ノード１２０から、具体的にはＣＡＮコントローラ１３０からＣＡＮバス１１０に送信するタイミングの制御をするものであり、この制御は、ビットストリーム制御部１３２からのＥＯＦ信号、エラー管理部１３４からのエラー状態通知信号に基づく。
【００３９】
送受信タイミング制御部１３６は、エラー状態通知信号と、正常送信が終了したことを示すＥＯＦ信号（以下送信ＥＯＦという）と、他のノードが送信したフレームの受信完了を示すＥＯＦ信号（以下受信ＥＯＦ）とを入力とし、エラー状態通知信号が示すエラー状態に応じて、ＣＡＮプロトコルで規定された送信タイミングで送信信号をビットストリーム制御部１３２に出力する。
【００４０】
具体的には、送受信タイミング制御部１３６は、エラーアクティブ状態において、送信ＥＯＦまたは受信ＥＯＦを受信すると計時を開始し、ＣＡＮプロトコルで規定された間隔（３ビット）に達したときに、送信信号をビットストリーム制御部１３２に出力する。すなわち、このとき、連続送信と非連続送信のいずれの場合においても、ノード１２０の最小送信間隔は、３ビットである。
【００４１】
一方、エラーパッシブ状態においては、送受信タイミング制御部１３６は、非連続送信時と連続送信時とで異なる送信タイミングで送信信号をビットストリーム制御部１３２に出力する。具体的には、送受信タイミング制御部１３６は、送信ＥＯＦと受信ＥＯＦのいずれかを受信すると計時を開始し、非連続送信時には、３ビット間隔に達したタイミングで送信信号を出力するが、連続送信時には、１１ビット間隔に達したタイミングで送信信号を出力する。これは、ＣＡＮプロトコルでエラーパッシブ状態のノードの連続送信に対して設けられた制限に従ったものである。
【００４２】
ＩＤ変換再送ＭＳＧ管理部１４０は、送信エラーが検出されたときに当該メッセージを再送する通常のＣＡＮノードの再送機能以外に、再送対象に設定されたメッセージを、該メッセージの送信直後に再送する機能を有する。また、再送対象に設定されたメッセージの再送時には、該メッセージの識別ＩＤを再送専用ＩＤに変換する。この再送専用ＩＤは、再送対象に設定されたメッセージであることを示す再送対象ＩＤと一対一の関係にあり、通常の送信（送信エラーが検出されたときの再送を含む）に使用されないものである。
【００４３】
また、ＩＤ変換再送ＭＳＧ管理部１４０は、通常のＣＡＮノードの受信機能以外に、他のノードから受信したメッセージが再送専用ＩＤを有するものである場合に、このメッセージに対応したメッセージを正常に受信したか否かを確認し、確認結果に応じて異なる処理を行う機能を有する。図４を参照して、ＩＤ変換再送ＭＳＧ管理部１４０を詳細に説明する。
【００４４】
図４に示すように、ＩＤ変換再送ＭＳＧ管理部１４０は、再送対象ＩＤレジスタ１４２と、再送専用ＩＤレジスタ１４４と、変換再送部２００と、変換受信部２２０を有する。
【００４５】
再送対象ＩＤレジスタ１４２は、再送対象であるメッセージの識別ＩＤとなる再送対象ＩＤを設定するためのものである。例えば、ＩＤＡが再送対象ＩＤに設定されたとする。これにより、識別ＩＤがＩＤＡであるメッセージが再送対象メッセージとなる。
【００４６】
再送専用ＩＤレジスタ１４４は、再送対象ＩＤレジスタ１４２に設定された再送対象ＩＤに対応する再送専用ＩＤを設定するためのものである。ここでは、再送対象ＩＤレジスタ１４２に設定されたＩＤＡに対応するＩＤＢが設定されたとする。また、本実施の形態において、再送専用ＩＤがそれに対応する再送対象ＩＤより優先順位が低いルールが設けられており、ＩＤＢが示す優先順位はＩＤＡのそれより低くい。
【００４７】
なお、ここで例として再送対象ＩＤと再送専用ＩＤが１つずつ設定されているが、再送対象ＩＤと再送専用ＩＤのペアは複数設定されてもよい。
【００４８】
変換再送部２００は、比較器２０２と、変換再送制御部２０４と、ＡＮＤゲート２０６と、インバータ２０８と、再送フレーム生成部２１０を有する。図５を参照しながら変換再送部２００を説明する。
【００４９】
比較器２０２は、送信したメッセージ（送信フレームＳＭＳＧ１）の識別ＩＤ（以下送信ＩＤという）と、再送対象ＩＤレジスタ１４２に設定された再送対象ＩＤ（ここではＩＤＡ）とが入力され、入力された２つのＩＤを比較する。図５に示すように、送信ＩＤがＩＤＡであるときには、比較器２０２は、出力Ｓ１をアクティブ（Ｈ）にする。
比較器２０２の出力Ｓ１は、変換再送制御部２０４とＡＮＤゲート２０６に入力される。
【００５０】
変換再送制御部２０４は、エラー管理部１３４からの送信エラー検出信号と、比較器２０２の出力Ｓ１と、変換受信部２２０の比較器２２２の出力Ｓ５と、変換受信部２２０の比較器２２４の出力Ｓ６が入力され、これらの入力に応じて、ビットストリーム制御部１３２への再送要求と、ＡＮＤゲート２０６への出力Ｓ２のアクティブ（Ｈ）／非アクティブ（Ｌ）にする。
【００５１】
送信エラー検出信号は、ノード１２０が送信フレームＳＭＳＧ１を送信した際にエラーが生じたとき（送信フレームＳＭＳＧ１について他のノードからエラー通知を受けたときを含む）にＨになる。図５に示すように、送信エラー検出信号がＨになった際に、変換再送制御部２０４は、比較器２０２の出力Ｓ１、比較器２２２の出力Ｓ５、比較器２２４の出力Ｓ６のＨ／Ｌに関らず、再送要求をＨにし、ＡＮＤゲート２０６への出力Ｓ２をＬにする。これにより、ＡＮＤゲート２０６の出力Ｓ３はＬになり、インバータ２０８の出力Ｓ４はＨになる。
【００５２】
ＡＮＤゲート２０６の出力Ｓ３とインバータ２０８の出力Ｓ４は、再送フレーム生成部２１０に入力される。再送フレーム生成部２１０は、送信フレームＳＭＳＧ１の識別ＩＤ（送信ＩＤ）と、再送専用ＩＤ（ＩＤＢ）とのいずれかを選択し、選択した識別ＩＤと、送信フレームＳＭＳＧ１のＤＬＣ／ＤＡＴＡ部分とを合成して再送フレームＳＭＳＧ２を生成する。ＩＤの選択に際して、Ｓ３とＳ４が「Ｈ」［Ｌ］である場合には、専用ＩＤ（ＩＤＢ）を選択し、Ｓ３とＳ４が「Ｌ」［Ｈ］である場合には、送信ＩＤを選択する。
【００５３】
図５に示すように、送信エラー検出信号がＨであるときに、変換再送制御部２０４の出力Ｓ２がＬであるため、再送フレーム生成部２１０は送信ＩＤを選択する。その結果、再送フレーム生成部２１０が生成した再送フレームＳＭＳＧ２は、送信フレームＳＭＳＧ１と同様である。
【００５４】
また、変換再送制御部２０４が再送要求をＨにしてビットストリーム制御部１３２へ再送要求を行うので、送信フレームＳＭＳＧ１は再送されることになる。
【００５５】
送信エラー検出信号がＬであるとき、すなわち送信エラーが生じていないときを説明する。
送信ＩＤがＩＤＡである場合、比較器２０２の出力Ｓ１はＨになる。このとき、変換再送制御部２０４は、比較器２２２の出力Ｓ５と、比較器２２４の出力Ｓ６に応じて再送するか否かを決定する。
【００５６】
比較器２２２と比較器２２４、およびそれらの出力Ｓ５とＳ６の詳細については後述するが、出力Ｓ５がＨであることは、送信フレームＳＭＳＧ１の送信後、他のノードが再送専用ＩＤのＩＤＢを有するメッセージを送信したことを示し、出力Ｓ６がＨであることが、送信フレームＳＭＳＧ１の送信後、他のノードが再送対象ＩＤのＩＤＡを有するメッセージを送信したことを示す。図５に示すように、比較器２２２の出力Ｓ５と、比較器２２４の出力Ｓ６のいずれか一方がＨであるときに、変換受信部２２０は、再送要求をしない。これにより、送信フレームＳＭＳＧ１は、再送されない。
【００５７】
一方、比較器２２２の出力Ｓ５と比較器２２４の出力Ｓ６のいずれもＬであるときに、すなわち、送信フレームＳＭＳＧ１の送信後に、他のノードから再送専用ＩＤと再送対象ＩＤのいずれのメッセーも送信されていない場合、変換受信部２２０は、再送要求をＨにすると共に、Ｓ２をＨにする。これにより、ＡＮＤゲート２０６の出力Ｓ３がＨになり、インバータ２０８の出力Ｓ４がＬになる。その結果、再送フレーム生成部２１０により生成された再送フレームＳＭＳＧ２は、「再送専用ＩＤのＩＤＢ＋送信フレームＳＭＳＧ１のＤＬＣ／ＤＡＴＡ」になる。すなわち、送信フレームＳＭＳＧ１は、識別ＩＤが再送対象ＩＤのＩＤＡから再送専用ＩＤのＩＤＢに変換されてから再送される。
【００５８】
なお、送信フレームＳＭＳＧ１の識別ＩＤが再送対象ＩＤのＩＤＡ以外であるときには、変換再送制御部２０４は再送要求をしない。
【００５９】
図６は、変換再送部２００における処理の流れを示すフローチャートである。ノード１２０から送信フレームＳＭＳＧ１が送信される（Ｓ１０）と、変換再送部２００は、送信フレームＳＭＳＧ１の識別ＩＤが再送対象ＩＤのＩＤＡであるか否かを確認する（Ｓ２０）。
【００６０】
送信フレームＳＭＳＧ１の識別ＩＤがＩＤＡであれば（Ｓ２０：Ｙｅｓ）、変換再送部２００は、さらに他のノードからＩＤＡを有するメッセージ、またはＩＤＡに対応する再送専用ＩＤ（ＩＤＢ）のメッセージが送信されたか否かを確認する（Ｓ２２）。他のノードからＩＤＡとＩＤＢのいずれのメッセージも送信されていなければ、変換再送部２００は、送信フレームＳＭＳＧ１の識別ＩＤをＩＤＢに置き換えて再送する（Ｓ２２：Ｎｏ、Ｓ２４）。一方、他のノードからＩＤＡまたはＩＤＢのメッセージが送信されていれば（Ｓ２２：Ｙｅｓ）、変換再送部２００は、送信フレームＳＭＳＧ１の識別ＩＤを変換しての再送をしない。
【００６１】
なお、送信フレームＳＭＳＧ１の識別ＩＤがＩＤＡ以外である場合（Ｓ２０：Ｎｏ）にも、変換再送部２００は、送信フレームＳＭＳＧ１の識別ＩＤを変換しての再送をしない。
【００６２】
また、送信エラーが生じた場合（Ｓ３０：Ｙｅｓ）、変換再送部２００は、当該メッセージを再送し、再送に際しては、識別ＩＤの変換をしない（Ｓ３２）。なお、この場合の再送は、送信エラーが生じた送信メッセージの再送であり、例えば、ステップＳ１０で送信した送信フレームＳＭＳＧ１の送信エラーであれば、送信フレームＳＭＳＧ１が送信され、ステップＳ２４で送信した再送メッセージ（送信フレームＳＭＳＧ１の識別子がＩＤＢに変換されたもの）の送信エラーであれば、再送メッセージが再度送信される。
【００６３】
変換受信部２２０は、比較器２２２と、比較器２２４と、ＤＬＣ／ＤＡＴＡテンポラリバッファ（以下単にテンポラリバッファという）２２６と、比較器２２８と、変換受信制御部２３０と、インバータ２３２と、受信フレーム生成部２３４を有する。図７を参照しながら変換受信部２２０を説明する。
【００６４】
変換受信制御部２３０は、ビットストリーム制御部１３２から受信ＥＯＦ、エラー管理部１３４からエラー状態通知信号、比較器２２２から信号Ｓ５、比較器２２８から信号Ｓ７を受信する。変換受信制御部２３０は、受信ＥＯＦを受信すると、エラー状態通知信号が示す自ノードのエラー状態と、信号Ｓ５のＨ／Ｌ、信号Ｓ７のＨ／Ｌに応じて、出力Ｓ８とＳ９をＨ／Ｌにする。
【００６５】
図７に示すように、エラー管理部１３４からのエラー状態通知信号がエラーアクティブ状態を示すときに、変換受信制御部２３０は、比較器２２２から信号Ｓ５と、比較器２２８から信号Ｓ７のＨ／Ｌにかかわらず、出力Ｓ８とＳ９をＨにする。これにより、インバータ２３２の出力Ｓ１０は、Ｌになる。
【００６６】
変換受信制御部２３０の出力Ｓ９は、受信フレーム生成部２３４に受信フレームを生成させるか否かの制御信号であり、以下受信フレーム生成要求という。受信フレーム生成部２３４は、受信フレーム生成要求Ｓ９がＨであるときに、受信フレームＲＭＳＧ１の識別ＩＤ（受信ＩＤ）と、再送対象ＩＤ（ＩＤＡ）とのいずれかを選択し、選択した識別ＩＤと、受信フレームＲＭＳＧ１のＤＬＣ／ＤＡＴＡとを合成して受信フレームＲＭＳＧ２を生成する。この受信フレームＲＭＳＧ２は、受信フレーム生成部２３４からメッセージハンドラ１５０に出力され、メッセージハンドラ１５０を介してさらに受信バッファ１５４に送信され、受信バッファ１５４に格納される。なお、受信フレーム生成要求Ｓ９がＬであるときに、受信フレーム生成部２３４は、フレームの生成をしない。この場合、受信フレームＲＭＳＧ１は、破棄されることになる。
【００６７】
受信フレーム生成部２３４は、ＩＤの選択に際して、変換受信制御部２３０の出力Ｓ８とインバータ２３２の出力Ｓ１０が「Ｈ」」「Ｌ」であるときには、再送対象ＩＤ（ＩＤＡ）を選択し、Ｓ８とＳ１０が「Ｌ」「Ｈ」であるときには、受信ＩＤを選択する。
【００６８】
図７に示すように、エラーアクティブ状態のとき、変換受信制御部２３０からの出力Ｓ８が常にＬであり、受信フレーム生成要求Ｓ９が常にＨであるため、受信フレーム生成部２３４は、メッセージの受信があるたびに、受信フレームＲＭＳＧ１と同様の受信フレームＲＭＳＧ２を生成してメッセージハンドラ１５０に出力する。
【００６９】
エラーパッシブ状態において、変換受信制御部２３０の出力Ｓ８とＳ９は、比較器２２２の出力Ｓ５と、比較器２２８の出力Ｓ７によって異なる。
【００７０】
比較器２２２は、受信したメッセージ（受信フレームＲＭＳＧ１）の識別ＩＤ（以下受信ＩＤという）と、再送専用ＩＤレジスタ１４４に設定された再送専用ＩＤ（ここではＩＤＢ）とが入力され、入力された２つのＩＤを比較する。図７に示すように、受信ＩＤがＩＤＢであれば、比較器２２２は、出力Ｓ５をＨにする。
【００７１】
比較器２２２の出力Ｓ５は、変換再送部２００の変換再送制御部２０４と、変換受信制御部２３０に入力される。
【００７２】
比較器２２４は、受信ＩＤと、再送対象ＩＤレジスタ１４２に設定された再送対象ＩＤ（ここではＩＤＡ）とが入力され、入力された２つのＩＤを比較する。図７に示すように、受信ＩＤがＩＤＡであれば、比較器２２４は、出力Ｓ６をＨにする。
【００７３】
テンポラリバッファ２２６は、比較器２２４の出力Ｓ６がＨになると、受信フレームＲＭＳＧ１のＤＬＣ／ＤＡＴＡ部分を一時的に格納する。すなわち、テンポラリバッファ２２６は、受信フレームのうちの、識別ＩＤが再送対象ＩＤであるフレームを格納する。
【００７４】
比較器２２８は、今回受信した受信フレームのＤＬＣ／ＤＡＴＡと、テンポラリバッファ２２６に格納された、最も後に受信したフレームのＤＬＣ／ＤＡＴＡと比較する。比較の結果、両者が一致すれば、出力Ｓ７をＨにする一方、一致しなければ、出力Ｓ７をＨにしない。
【００７５】
変換受信制御部２３０は、比較器２２２の出力Ｓ５と、比較器２２８の出力Ｓ７が共にＨであるときに、受信フレーム生成要求Ｓ９をＬにする。比較器２２２の出力Ｓ５と、比較器２２８の出力Ｓ７が共にＨであることは、受信フレームＲＭＳＧ１は、識別ＩＤが再送専用ＩＤであり、それに対応するメッセージが既に正常に受信したことを示す。これにより、受信フレームＲＭＳＧ１が破棄される。
【００７６】
変換受信制御部２３０は、比較器２２２の出力Ｓ５がＨであり、比較器２２８の出力Ｓ７がＬであるときに、出力Ｓ８と受信フレーム生成要求Ｓ９を共にＨにする。比較器２２２の出力Ｓ５がＨであり、比較器２２８の出力Ｓ７がＬであることは、受信フレームＲＭＳＧ１は、識別ＩＤが再送専用ＩＤであり、それに対応するメッセージが正常に受信できなかったことを示す。これにより、受信フレーム生成部２３４は、受信フレームＲＭＳＧ１の識別ＩＤをＩＤＢからＩＤＡに変換して受信フレームＲＭＳＧ２を生成する。
【００７７】
また、受信ＩＤが再送対象ＩＤ（ＩＤＡ）であるときには、比較器２２２の出力Ｓ５はＬになり、比較器２２４の出力Ｓ６はＨになる。この場合、比較器２２８の出力Ｓ７にかかわらず、変換受信制御部２３０は、出力Ｓ８をＬにすると共に、受信フレーム生成要求Ｓ９をＨにする。これにより、受信フレーム生成部２３４は、受信フレームＲＭＳＧ１と同様の受信フレームＲＭＳＧ２を生成してメッセージハンドラ１５０に出力する。
【００７８】
最後に、受信ＩＤがＩＤＡとＩＤＢのいずれでもないときには、比較器２２２の出力Ｓ５と比較器２２４の出力Ｓ６のいずれもＬになる。この場合においても、変換受信制御部２３０は、出力Ｓ８をＬにすると共に、受信フレーム生成要求Ｓ９をＨにする。これにより、受信フレーム生成部２３４は、受信フレームＲＭＳＧ１と同様の受信フレームＲＭＳＧ２を生成してメッセージハンドラ１５０に出力する。
【００７９】
すなわち、エラーパッシブ状態において、変換受信部２２０は、受信フレームＲＭＳＧ１の識別ＩＤが再送専用ＩＤであるときに、それに対応するメッセージが既に正常に受信したか否かを確認し、既に受信したならば、受信フレームＲＭＳＧ１を破棄する。一方、正常に受信していなければ、受信フレームＲＭＳＧ１の識別ＩＤを再送専用ＩＤ（ＩＤＢ）から再送対象ＩＤ（ＩＤＡ）に変換してメッセージハンドラ１５０に出力する。
【００８０】
図８は、変換受信部２２０における処理の流れを示すフローチャートである。ノード１２０がメッセージ（受信フレームＲＭＳＧ１）を受信する（Ｓ５０）と、変換受信部２２０は、自ノードのエラー状態を確認する（Ｓ５２）。
【００８１】
エラーアクティブ状態において、変換受信部２２０は、受信フレームＲＭＳＧ１をそのままメッセージハンドラ１５０に出力する（Ｓ５２：エラーアクティブ、Ｓ８０）。
【００８２】
エラーパッシブ状態において、変換受信部２２０は、受信フレームＲＭＳＧ１の識別ＩＤが再送対象ＩＤと再送専用ＩＤのいずれであるか、受信フレームＲＭＳＧ１のＤＬＣ／ＤＡＴＡと、テンポラリバッファ２２６に格納された、最後のフレームのＤＬＣ／ＤＡＴＡと一致するか否かの確認をする（Ｓ６０、Ｓ６２、Ｓ７０）
【００８３】
受信フレームＲＭＳＧ１の識別ＩＤが再送対象ＩＤであるときには（Ｓ６０：Ｎｏ、Ｓ６２、Ｙｅｓ）、変換受信部２２０は、受信フレームＲＭＳＧ１のＤＬＣ／ＤＡＴＡをテンポラリバッファ２２６に格納すると共に、受信フレームＲＭＳＧ１をメッセージハンドラ１５０に出力する。
【００８４】
受信フレームＲＭＳＧ１の識別ＩＤが再送専用ＩＤと再送対象ＩＤのいずれでもないときには（Ｓ６０：Ｎｏ、Ｓ６２：Ｎｏ）、変換受信部２２０は、受信フレームＲＭＳＧ１をそのままメッセージハンドラ１５０に出力する。この場合、テンポラリバッファ２２６への格納を行わない。
【００８５】
受信フレームＲＭＳＧ１の識別ＩＤが再送専用ＩＤであり、かつ、受信フレームＲＭＳＧ１のＤＬＣ／ＤＡＴＡと、テンポラリバッファ２２６に格納された、最後のフレームのＤＬＣ／ＤＡＴＡと一致する場合には（Ｓ６０：Ｙｅｓ、Ｓ７０：Ｙｅｓ）、変換受信部２２０は、受信フレームＲＭＳＧ１を破棄する。
【００８６】
受信フレームＲＭＳＧ１の識別ＩＤが再送専用ＩＤであり、かつ、受信フレームＲＭＳＧ１のＤＬＣ／ＤＡＴＡと、テンポラリバッファ２２６に格納された、最後のフレームのＤＬＣ／ＤＡＴＡと一致しない場合には（Ｓ６０：Ｙｅｓ、Ｓ７０：Ｎｏ）、変換受信部２２０は、受信フレームＲＭＳＧ１の識別ＩＤを再送専用ＩＤから再送対象ＩＤに変換して受信フレームＲＭＳＧ２を生成し、メッセージハンドラ１５０に出力する（Ｓ７２、Ｓ８０）。
【００８７】
本実施の形態のＣＡＮシステム１００において、各ノードは、メッセージを送信する際に、該メッセージの識別ＩＤが再送対象ＩＤであれば、該メッセージの識別ＩＤを再送専用ＩＤに変換して再送する。また、メッセージを受信する際に、該メッセージの識別ＩＤが再送専用ＩＤであり、かつ、それに対応するメッセージを正常に受信していなければ、受信したメッセージの識別を再送対象ＩＤに変換してから、受信バッファに格納するなどの通常の受信フローを実施する。そのため、再送対象に設定されたメッセージが必ず再送されるので、エラーパッシブ状態のノードに送信したメッセージが正常に受信されていない場合も、取りこぼしを軽減することができる。これにより、上位階層のソフトウェアによる受信側ノードへの問合せや、受領通知などの処理も減り、トラフィックの過増大を回避することができる。
【００８８】
また、再送専用ＩＤとして、再送対象ＩＤより優先順位が低いものを用いるので、他のノードの送信への影響を軽減することができる。
【００８９】
また、自ノードがエラーアクティブ状態であれば、メッセージを正常に受信できていなければ、該ノードがエラー通知（送信ノード側では送信エラーとして認識する）をするので、メッセージの取りこぼしのリスクが少ない。そのため、本実施の形態において、各ノードは、自身がエラーアクティブ状態にあるときには通常の受信フローを実施し、自身がエラーパッシブ状態にあるときにのみ、再送専用ＩＤを有する受信メッセージを対象とする処理（それに対応するメッセージが既に正常に受信したならば破棄し、正常に受信していなければＩＤを再送対象ＩＤに変換して通常の受信フローを実施する）を行う。こうすることにより、エラーアクティブ状態における受信制御が簡単にできる。
【００９０】
さらに、例えばノード１２０（Ａ）がノード１２０（Ｂ）宛に再送対象ＩＤ（ＩＤＡ）のメッセージの送信後に、該メッセージの識別ＩＤをＩＤＢに変換して再送する前に、他のノード例えばノード１２０（Ｃ）からも、ノード１２０（Ｂ）宛てにＩＤＡのメッセージが送信された場合に、ノード１２０（Ａ）がメッセージを再送した際に、ノード１２０（Ｂ）のテンポラリバッファ２２６に格納された、最後のフレームのＤＬＣ／ＤＡＴＡは、ノード１２０（Ｃ）からのメッセージのものである。そのため、ノード１２０（Ａ）が再送したメッセージ（ＩＤＢのメッセージ）のＤＬＣ／ＤＡＴＡと、ノード１２０（Ｃ）が送信したメッセージ（ＩＤＡのメッセージ）のＤＬＣ／ＤＡＴＡとの比較がなされ、ノード１２０（Ａ）が送信したＩＤＡのメッセージが正常に受信されていないとの誤判断がなされる。
【００９１】
それに対して、本実施の形態において、各ノードは、再送対象ＩＤのメッセージの送信後に、他のノードから該再送対象ＩＤのメッセージ、または該再送対象ＩＤに対応する再送専用ＩＤのメッセージが送信されたならば、自ノードからの再送を取りやめることにしている。こうすることにより、上述した誤判断を防ぐことができる。
【００９２】
以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、さまざまな変更、増減を加えてもよい。これらの変更、増減が加えられた変形例も本発明の範囲にあることは当業者に理解されるところである。
【００９３】
例えば、上述した実施の形態において、再送対象ＩＤは、再送対象ＩＤレジスタ１４２に設定されるようにしている。例えば、所定の優先順位以上を示す全ての識別ＩＤをすべて再送対象ＩＤとするようにしてもよい。こうすることにより、重要なメッセージが必ず再送されることになる。
【図面の簡単な説明】
【００９４】
【図１】本発明の実施の形態にかかるＣＡＮシステムを示す図である。
【図２】図１に示すＣＡＮシステムにおけるノードを示す図である。
【図３】図２に示すノードのメッセージバッファを示す図である。
【図４】図２に示すノードのＩＤ変換再送ＭＳＧ管理部を示す図である。
【図５】図４に示すＩＤ変換再送ＭＳＧ管理部の変換再送部における各信号の対応関係を示す図である。
【図６】図４に示すＩＤ変換再送ＭＳＧ管理部の変換再送部における処理の流れを示すフローチャートである。
【図７】図４に示すＩＤ変換再送ＭＳＧ管理部の変換受信部２２０における各信号の対応関係を示す図である。
【図８】図４に示すＩＤ変換再送ＭＳＧ管理部の変換受信部２２０における処理の流れを示すフローチャートである。
【図９】ＣＡＮシステムの接続例を示す図である。
【図１０】ＣＡＮプロトコルで定められたデータフレームの標準フォーマットを示す図である。
【図１１】ＣＡＮシステムにおけるノードのエラー状態の遷移と、受信エラーカウント値と送信エラーカウント値との関係を示す図である。
【図１２】ＣＡＮシステムにおける受信メッセージの取りこぼしリスクを説明するための図である。
【符号の説明】
【００９５】
１０  ＣＡＮシステム
１２  ノード
１４  ＣＡＮバス
１６  ワイヤ
１８  ワイヤ
１００  ＣＡＮシステム
１１０  ＣＡＮバス
１２０  ノード
１２２  トランシーバ
１２４  ＣＰＵ
１２６  周辺チップ
１２８  ローカルバス
１３０  ＣＡＮコントローラ
１３２  ビットストリーム制御部
１３４  エラー管理部
１３６  送受信タイミング制御部
１４０  ＩＤ変換再送ＭＳＧ管理部
１４２  再送対象ＩＤレジスタ
１４４  再送専用ＩＤレジスタ
１５０  メッセージハンドラ
１５２  メッセージバッファ
１５４  受信バッファ
１５６  送信バッファ
２００  変換再送部
２０２  比較器
２０４  変換再送制御部
２０６  ＡＮＤゲート
２０８  インバータ
２１０  再送フレーム生成部
２２０  変換受信部
２２２  比較器
２２４  比較器
２２６  ＤＬＣ／ＤＡＴＡテンポラリバッファ
２２８  比較器
２３０  変換受信制御部
２３２  インバータ
２３４  受信フレーム生成部
【図１】
2010147590.tif 000003
【図２】
2010147590.tif 000004
【図３】
2010147590.tif 000005
【図４】
2010147590.tif 000006
【図５】
2010147590.tif 000007
【図６】
2010147590.tif 000008
【図７】
2010147590.tif 000009
【図８】
2010147590.tif 000010
【図９】
2010147590.tif 000011
【図１０】
2010147590.tif 000012
【図１１】
2010147590.tif 000013
【図１２】
2010147590.tif 000014