(57)【要約】【課題】  送受信候補メッセージのスキャンをパイプライン処理化することにより、該メッセージのスキャン時間を短縮し、かつメッセージスキャンの信頼性を向上させる。【解決手段】  メッセージの送信時、対象となるＩＤ、アドレス、アトリビュート値をレジスタ２５，２９，３７にロードする。続いて、レジスタ２５，２９，３７の値をレジスタ２７，３１，３９にそれぞれロードし、次アドレス、ＩＤ値、およびアトリビュートをレジスタ２９，２５，３７にそれぞれにロードする。レジスタ２５，２７のＩＤ値を比較器１６が比較し、小さいＩＤ値で、送信要求アトリビュートのＩＤ／アドレス／アトリビュートをレジスタ３１，２７，３９にロードし、次アドレス、ＩＤ、アトリビュートをレジスタ２９，２５，３７にロードする。最終アドレス際にレジスタ３１に格納されている値が優先順位の最も高い送信候補データのアドレスを送信候補アドレスレジスタ３５に格納する。【選択図】  図２
2006236047.tif 000002
【特許請求の範囲】
【請求項１】
メッセージのうち、識別情報、およびデータを格納する識別情報／データ格納部と、
前記メッセージのうち、制御情報を格納する制御情報格納部と、
送受信対象となるメッセージのスキャン処理をパイプライン処理によって行うスキャン制御部とを備えた通信制御装置を有したことを特徴とする半導体集積回路装置。
【請求項２】
請求項１記載の半導体集積回路装置おいて、
前記識別情報／データ格納部は、
揮発性メモリからなり、
前記制御情報格納部は、
レジスタよりなることを特徴とする半導体集積回路装置。
【請求項３】
請求項１または２記載の半導体集積回路装置において、
前記スキャン制御部は、
識別情報、および制御情報の読み出しと識別情報の比較処理とをパイプライン処理するスキャンパイプライン部と、
前記スキャンパイプライン部による比較結果、および制御情報に基づいて、前記スキャンパイプライン部を制御するパイプライン制御部とを備えたことを特徴とする半導体集積回路装置。
【請求項４】
請求項３記載の半導体集積回路装置において、
前記スキャンパイプライン部は、
前記識別情報／データ格納部から識別情報を読み出すアドレスをカウントするアドレスカウンタと、
前記アドレスカウンタがカウントするアドレスに基づいて順次読み出された識別情報の大小比較をそれぞれ行い、識別情報の値が最も小さく、かつ制御情報が送信要求アトリビュートであるメッセージのアドレスを送信候補として決定する送信スキャン部と、
前記送信スキャン部が決定したアドレスを送信候補として格納する送信候補格納部と、
前記アドレスカウンタがカウントするアドレスに基づいて、前記識別情報／データ格納部から順次読み出された識別情報と外部から受信した識別情報とを比較し、それら識別情報が一致し、制御情報が受信要求アトリビュートであるメッセージを受信候補として決定する受信スキャン部と、
前記受信スキャン部が決定したアドレスを受信候補として格納する受信候補格納部とよりなることを特徴とする半導体集積回路装置。
【請求項５】
メッセージのうち、識別情報、およびデータを格納する識別情報／データ格納部と、
前記メッセージのうち、制御情報を格納する制御情報格納部と、
送受信対象となるメッセージのスキャン処理をパイプライン処理によって行うスキャン制御部と、
メッセージの識別情報を一時的に格納する識別情報一時格納部とを備えた通信制御装置を有し、
前記スキャン制御部は、
送受信対象となるメッセージを選択するスキャンを行う際に、前記識別情報一時格納部に格納された識別情報を用いてスキャンを実行することを特徴とする半導体集積回路装置。
【請求項６】
請求項５記載の半導体集積回路装置おいて、
前記識別情報／データ格納部は、
揮発性メモリからなり、
前記制御情報格納部は、
レジスタよりなることを特徴とする半導体集積回路装置。
【請求項７】
請求項５または６記載の半導体集積回路装置において、
前記スキャン制御部は、
識別情報、および制御情報の読み出しと識別情報の比較処理とをパイプライン処理するスキャンパイプライン部と、
前記スキャンパイプライン部による比較結果、および制御情報に基づいて、前記スキャンパイプライン部を制御するパイプライン制御部とを備えたことを特徴とする半導体集積回路装置。
【請求項８】
請求項７記載の半導体集積回路装置において、
前記スキャンパイプライン部は、
前記識別情報一時格納部から識別情報を読み出すアドレスをカウントするアドレスカウンタと、
前記アドレスカウンタがカウントするアドレスに基づいて順次読み出された識別情報の大小比較をそれぞれ行い、識別情報の値が最も小さく、かつ制御情報が送信要求アトリビュートであるメッセージのアドレスを送信候補として決定する送信スキャン部と、
前記送信スキャン部が決定したアドレスを送信候補として格納する送信候補格納部と、
前記アドレスカウンタがカウントするアドレスに基づいて、前記識別情報一時格納部から順次読み出された識別情報と外部から受信した識別情報とを比較し、それら識別情報が一致し、制御情報が受信要求アトリビュートであるメッセージを受信候補として決定する受信スキャン部と、
前記受信スキャン部が決定したアドレスを受信候補として格納する受信候補格納部とよりなることを特徴とする半導体集積回路装置。
【請求項９】
請求項１〜８のいずれか１項に記載の半導体集積回路装置において、
前記スキャン制御部は、
前記メッセージを構成するＣＲＣフィールドにおける’ＣＲＣ  ＤＥＬ’の先頭ビットが送受信された際、またはエラーフレームの’Ｅｒｒ  ＤＥＬ’が送受信された際に次送信メッセージのスキャンを開始することを特徴とする半導体集積回路装置。
【請求項１０】
請求項１〜９のいずれか１項に記載の半導体集積回路装置において、
さらに、送信対象となるメッセージを前記識別情報／データ格納部に設定可能な中央処理装置を備え、
前記中央処理装置は、送信対象のメッセージを設定した際に前記通信制御装置に対し、送信を指示することを特徴とする半導体集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、送受信メッセージにおけるスキャンの高速化技術に関し、特に、ＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）バスを介して通信する際のスキャン時間の短縮化に有効な技術に関する。
【背景技術】
【０００２】
近年、自動車の車内ネットワークは、ナビゲーションシステムやオーディオなどの情報、エンジンやシャーシなどのパワートレイン系、あるいはエアコンやヘッドライト、ドアロックなどのボディ系など、制御内容に応じてネットワークが構築されている。
【０００３】
さらに、各ネットワークは細分化される傾向にあり、各ネットワークをＣＡＮで接続して機器を制御することが標準になりつつある。このため、各ネットワークを繋いで統合制御するために、高処理性能、高機能かつ多チャネルのＣＡＮコントローラを搭載した半導体集積回路装置への要求が高まっている。
【０００４】
ＣＡＮコントローラは、ＣＡＮバスにメッセージを送受信する際に、該ＣＡＮコントローラに設けられたＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などに格納されたＩＤ値をスキャンし、その後、対象となるＩＤのメッセージの送受信を実行している。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところが、上記のようなＣＡＮコントローラにおけるＩＤ値のスキャン技術では、次のような問題点があることが本発明者により見い出された。
【０００６】
すなわち、ＩＤ値をスキャンする場合、ＲＡＭなどのメモリからのアトリビュート値の読み出し、ＩＤ値（およびマスクＩＤ値）の読み出し、および比較処理にＮ（送信時Ｎ＝４、受信時Ｎ＝６）サイクルを要し、かつこれらをシーケンシャル処理によって実行しているので、要素数の増大に伴い、処理時間が大幅に増加してしまうという問題がある。
【０００７】
また、スキャン中にアトリビュートが更新された場合、送信開始とアトリビュート変化との競合によって新旧のメッセージが混在してしまい、メッセージの不具合などが発生してしまう恐れがある。
【０００８】
本発明の目的は、送受信候補メッセージのスキャンをパイプライン処理化することにより、該メッセージのスキャン時間を短縮し、かつメッセージスキャンの信頼性を向上させることのできる技術を提供することにある。
【０００９】
本発明の前記ならびにそのほかの目的と新規な特徴については、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００１１】
本発明の半導体集積回路装置は、メッセージのうち、識別情報、およびデータを格納する識別情報／データ格納部と、該メッセージのうち、制御情報を格納する制御情報格納部と、送受信対象となるメッセージのスキャン処理をパイプライン処理によって行うスキャン制御部とを備えた通信制御装置を有したものである。
【００１２】
また、本発明の半導体集積回路装置は、識別情報／データ格納部が、揮発性メモリからなり、制御情報格納部が、レジスタよりなるものである。
【００１３】
さらに、本発明の半導体集積回路装置は、前記スキャン制御部が、識別情報、および制御情報の読み出しと識別情報の比較処理とをパイプライン処理するスキャンパイプライン部と、該スキャンパイプライン部による比較結果、および制御情報に基づいて、スキャンパイプライン部を制御するパイプライン制御部とを備えたものである。
【００１４】
また、本発明の半導体集積回路装置は、前記スキャンパイプライン部が、識別情報／データ格納部から識別情報を読み出すアドレスをカウントするアドレスカウンタと、該アドレスカウンタがカウントするアドレスに基づいて順次読み出された識別情報の大小比較をそれぞれ行い、識別情報の値が最も小さく、かつ制御情報が送信要求アトリビュートであるメッセージのアドレスを送信候補として決定する送信スキャン部と、該送信スキャン部が決定したアドレスを送信候補として格納する送信候補格納部と、アドレスカウンタがカウントするアドレスに基づいて、識別情報／データ格納部から順次読み出された識別情報と外部から受信した識別情報とを比較し、それら識別情報が一致し、制御情報が受信要求アトリビュートであるメッセージを受信候補として決定する受信スキャン部と、該受信スキャン部が決定したアドレスを受信候補として格納する受信候補格納部とよりなるものである。
【００１５】
また、本願のその他の発明の概要を簡単に示す。
【００１６】
本発明の半導体集積回路装置は、メッセージのうち、識別情報、およびデータを格納する識別情報／データ格納部と、メッセージのうち、制御情報を格納する制御情報格納部と、送受信対象となるメッセージのスキャン処理をパイプライン処理によって行うスキャン制御部と、メッセージのスキャン処理を行う際に、識別情報を一時的に格納する識別情報一時格納部とを備え、該スキャン制御部は、送受信対象となるメッセージのスキャンを行う際に、識別情報一時格納部に格納された識別情報を用いてスキャンを実行するものである。つまり、識別情報を用いて送受信対象となるメッセージを特定するための選択処理を行うものである。
【００１７】
また、本発明の半導体集積回路装置は、スキャンパイプライン部が、識別情報一時格納部から識別情報を読み出すアドレスをカウントするアドレスカウンタと、該アドレスカウンタがカウントするアドレスに基づいて順次読み出された識別情報の大小比較をそれぞれ行い、識別情報の値が最も小さく、かつ制御情報が送信要求アトリビュートであるメッセージのアドレスを送信候補として決定する送信スキャン部と、該送信スキャン部が決定したアドレスを送信候補として格納する送信候補格納部と、アドレスカウンタがカウントするアドレスに基づいて、識別情報一時格納部から順次読み出された識別情報と外部から受信した識別情報とを比較し、それら識別情報が一致し、制御情報が受信要求アトリビュートであるメッセージを受信候補として決定する受信スキャン部と、該受信スキャン部が決定したアドレスを受信候補として格納する受信候補格納部とよりなるものである。
【００１８】
さらに、本発明の半導体集積回路装置は、スキャン制御部が、メッセージを構成するＣＲＣフィールドにおける’ＣＲＣ  ＤＥＬ’の先頭ビットが送信された際、またはエラーフレームの’Ｅｒｒ  ＤＥＬ’が送信された際に次送信メッセージのスキャンを開始するものである。
【発明の効果】
【００１９】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００２０】
（１）メッセージのスキャンに必要な処理速度を高速化することができるので、スキャン時間を大幅に短縮することができる。
【００２１】
（２）また、スキャン処理中における識別情報の変更を保留することができるので、信頼性の高いスキャンを実行することができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００２３】
図１は、本発明の一実施の形態による半導体集積回路装置のブロック図、図２は、図１の半導体集積回路装置に設けられたスキャンパイプライン部のブロック図、図３は、図２のスキャンパイプライン部におけるメッセージのスキャンタイミングを示す説明図、図４は、本発明者が検討したＣＡＮコントローラにおけるメッセージのスキャンタイミングを示した説明図、図５は、図２のスキャンパイプライン部によるスキャン開始のタイミング例を示したＣＡＮフレームの説明図、図６は、図１に示すＣＡＮコントローラの他の構成例を示したブロック図である。
【００２４】
本実施の形態１において、自動車の車内ネットワークの接続形態は、図１に示すように、複数の半導体集積回路装置１，１1 〜１n がＣＡＮバスＢｃを介して接続された構成からなる。
【００２５】
半導体集積回路装置１，１1 〜１n は、たとえば、ＣＥＭ（Ｃｅｎｔｒａｌ  Ｅｌｅｃｔｒｉｃ  Ｍｏｄｕｌｅ）、ＡＢＳ（Ａｎｔｉ  Ｂｒａｋｉｎｇ  Ｓｙｓｔｅｍ）、ＥＴＭ（Ｅｌｅｃｔｒｉｃ  Ｔｈｒｏｔｔｌｅ  Ｍｏｄｕｌｅ）、ＴＣＭ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｍｏｄｕｌｅ）、およびＥＣＭ（Ｅｎｇｉｎｅ  Ｃｏｎｔｒｏｌ  Ｍｏｄｕｌｅ）などのＥＣＵ（Ｅｌｅｃｔｒｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）からなる。
【００２６】
これら半導体集積回路装置１，１1 〜１n は、図示しないトランシーバを介してＣＡＮバスＢｃと相互に接続されている。トランシーバは、半導体集積回路装置１，１1 〜１n のＣＡＮコントローラ（通信制御装置）４とＣＡＮバスＢｃとのインタフェースである。
【００２７】
半導体集積回路装置１（，１1 〜１n ）は、ＣＰＵ２、ＣＰＵメモリ３、ならびにＣＡＮコントローラ４などから構成されている。これらＣＰＵ２、ＣＰＵメモリ３、およびＣＡＮコントローラ４は、ローカルバスＢＬを介して相互に接続されている。また、ＣＰＵ２は、ＣＡＮバスＢｃに接続された他の半導体集積回路装置と連携して各種処理を実行する。ＣＰＵメモリ３は、ＣＰＵ２のワークエリアとして用いられる。また、図示はしないが、ＤＭＡＣ、シリアルインタフェース回路などの周辺モジュールが内蔵されていてもよい。
【００２８】
ＣＡＮコントローラ４は、プロトコルエンジン５、送信バッファ６、受信バッファ７、メッセージ格納部（識別情報／データ格納部）８、メールボックスアトリビュート（制御情報格納部）９、制御レジスタ１０、スキャン制御部１１、およびＣＰＵインタフェース４ａから構成されている。
【００２９】
プロトコルエンジン５は、ＣＡＮバスＢｃに接続されており、該ＣＡＮバスＢｃを介してメッセージを送受信する。また、プロトコルエンジン５には、送信バッファ６、および受信バッファ７がそれぞれ接続されている。
【００３０】
送信バッファ６は、ＣＡＮバスＢｃに送信するメッセージを一時的に保持する。受信バッファ７は、ＣＡＮバスＢｃを介して受信したメッセージを一時的に保持する。
【００３１】
送信バッファ６には、メッセージ格納部８が接続されており、受信バッファ７には、メッセージ格納部８、ならびにスキャン制御部１１が接続されている。
【００３２】
メッセージ格納部８は、たとえば、ＲＡＭなどの揮発性メモリからなり、たとえば、３２のメールボックスから構成されている。これら３２のメールボックスには、メッセージの優先順位を示すＩＤ（識別情報）、およびデータがそれぞれ格納されている。
【００３３】
メールボックスアトリビュート９は、たとえば、レジスタからなり、ＭＢＣ（ＭａｉｌＢｏｘ  Ｃｏｎｔｒｏｌ）、ＴＸＰＲ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｐｅｎｄｉｎｇ  Ｒｅｑｕｅｓｔ：送信要求リクエスト）、ＴＸＣＲ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃａｎｃｅｌ  Ｒｅｑｕｅｓｔ：送信リクエスト）、および受信フラグなどのアトリビュート（制御情報）値を格納する。
【００３４】
メッセージ格納部８には、メールボックスアトリビュート９、およびスキャン制御部１１がそれぞれ接続されており、メールボックスアトリビュート９には、スキャン制御部１１が接続されている。また、メッセージ格納部８、メールボックスアトリビュート９、および制御レジスタ１０は、ＣＰＵインタフェース４ａに相互に接続されている。
【００３５】
制御レジスタ１０は、ＣＡＮコントローラ４におけるリセット処理やモード設定などの設定データを格納する。スキャン制御部１１は、送受信されるメッセージを選択するためのスキャン制御を行う。
【００３６】
ＣＰＵインタフェース４ａは、ローカルバスＢＬと接続されており、該ローカルバスＢＬを介して接続されたＣＰＵ２とのインタフェースである。また、スキャン制御部１１は、スキャンパイプライン部１２とパイプライン制御部１３とから構成されている。
【００３７】
スキャンパイプライン部１２は、パイプライン制御部１３の制御に基づいて、メッセージにおけるスキャン動作（たとえば、送受信対象となるメッセージを選択するための動作）のパイプライン処理を行う。パイプライン制御部１３は、スキャンパイプライン部１２から出力されるアトリビュート値に基づいて制御信号ｃｔｒｌを出力し、スキャンパイプライン部１２の動作制御を行う。
【００３８】
図２は、スキャンパイプライン部１２の構成を示すブロック図である。
【００３９】
スキャンパイプライン部１２は、図示するように、第１のＩＤ格納部（送信スキャン部、受信スキャン部）１４、第２のＩＤ格納部（送信スキャン部、受信スキャン部）１５、比較器（受信スキャン部）１６、減算器（送信スキャン部）１７、アドレスカウンタ（送信スキャン部、受信スキャン部）１８、第１のアドレス格納部（送信スキャン部、受信スキャン部）１９、第２のアドレス格納部（送信スキャン部、受信スキャン部）２０、送受信候補アドレス部２１、第１のアトリビュート格納部（送信スキャン部、受信スキャン部）２２、および第２のアトリビュート格納部（送信スキャン部、受信スキャン部）２３から構成されている。
【００４０】
第１のＩＤ格納部１４は、マルチプレクサ（ＭＰＸ）２４、およびレジスタ２５からなり、第２のＩＤ格納部１５は、マルチプレクサ（ＭＰＸ）２６、ならびにレジスタ２７からなる。第１のアドレス格納部１９は、マルチプレクサ（ＭＰＸ）２８、およびレジスタ２９からなり、第２のアドレス格納部２０は、マルチプレクサ（ＭＰＸ）３０、ならびにレジスタ３１からなる。
【００４１】
送受信候補アドレス部２１は、マルチプレクサ（ＭＰＸ）３２，３３、受信候補アドレスレジスタ（受信候補格納部）３４、および送信候補アドレスレジスタ（送信候補格納部）３５から構成されている。第１のアトリビュート格納部２２は、マルチプレクサ（ＭＰＸ）３６、ならびにレジスタ３７からなり、第２のアトリビュート格納部２３は、マルチプレクサ（ＭＰＸ）３８、ならびにレジスタ３９から構成されている。
【００４２】
マルチプレクサ２４の一方の入力部には、メッセージ格納部８に格納されたＩＤ値が入力されるように接続されており、該マルチプレクサ２４の出力部には、レジスタ２５が接続されている。また、比較器１６の他方の入力部には、受信バッファ７が接続されており、該受信バッファ７が受信したＩＤ値が入力されるように接続されている。
【００４３】
レジスタ２５の出力部には、マルチプレクサ２４の他方の入力部、マルチプレクサ２６の一方の入力部、比較器１６、および減算器１７の一方の入力部それぞれ接続されている。  マルチプレクサ２６の出力部には、レジスタ２７の入力部が接続されており、該レジスタ２７の出力部には、マルチプレクサ２６の他方の入力部、比較器１６の一方の入力部、および減算器１７の他方の入力部にそれぞれ接続されている。
【００４４】
マルチプレクサ２４は、パイプライン制御部１３から出力された制御信号ｃｔｒｌに基づいてレジスタ２５から出力されたＩＤ値、またはメールボックスから出力されたＩＤ値のいずれかを選択して出力する。レジスタ２５は、マルチプレクサ２４から出力されたＩＤ値を格納する。
【００４５】
マルチプレクサ２６は、レジスタ２５から出力されたＩＤ値、またはレジスタ２７から出力されたＩＤ値のいずれかをパイプライン制御部１３から出力された制御信号ｃｔｒｌに基づいて選択して出力する。レジスタ２７は、マルチプレクサ２６から出力されたＩＤ値を格納する。
【００４６】
比較器１６は、レジスタ２５，２６から出力されたマスク後のＩＤ値と受信バッファ７が受信したＩＤ値との比較を行い、比較結果をパイプライン制御部１３に出力する。
【００４７】
また、アドレスカウンタ１８の出力部には、マルチプレクサ２８の一方の入力部に接続されており、該マルチプレクサ２８の出力部には、レジスタ２９の入力部が接続されている。
【００４８】
レジスタ２９の出力部には、マルチプレクサ２８の他方の入力部、およびマルチプレクサ３０の一方の入力部にそれぞれ接続されている。マルチプレクサ３０の出力部には、レジスタ３１の入力部が接続されている。
【００４９】
レジスタ３１の出力部には、マルチプレクサ３０の他方の入力部、および送受信候補アドレス部２１におけるマルチプレクサ３２，３３の入力部にそれぞれ接続されている。マルチプレクサ３２，３３の出力部には、受信候補アドレスレジスタ３４、および送信候補アドレスレジスタ３５がそれぞれ接続されている。
【００５０】
アドレスカウンタ１８は、初期値３１〜０までのアドレスをデクリメントしてカウントし、たとえば、５ビットのデータ幅のバスを介して出力する。このアドレスカウンタ１８から出力されるアドレスは、メッセージ格納部８、およびメールボックスアトリビュート９に設けられたセレクタＳｅｌにもそれぞれ出力されている。
【００５１】
マルチプレクサ２８は、パイプライン制御部１３から出力された制御信号ｃｔｒｌに基づいて、アドレスカウンタ１８から出力されたアドレス、またはレジスタ２９から出力されたアドレスのいずれかを選択して出力する。レジスタ２９は、マルチプレクサ２８から出力されたアドレスを格納する。
【００５２】
マルチプレクサ３０は、レジスタ２９から出力されたアドレス、またはレジスタ３１から出力されたアドレスのいずれかをパイプライン制御部１３の制御信号ｃｔｒｌに基づいて選択して出力する。レジスタ３１は、マルチプレクサ３０から出力されたアドレスを格納する。
【００５３】
マルチプレクサ３２，３３は、パイプライン制御部１３から出力された制御信号ｃｔｒｌに基づいて、レジスタ３１に格納されたアドレスを出力する。受信候補アドレスレジスタ３４は、レジスタ３１から出力されたアドレスを受信候補アドレスとして格納し、送信候補アドレスレジスタ３５は、レジスタ３１から出力されたアドレスを受信候補アドレスとして格納する。
【００５４】
マルチプレクサ３６の一方の入力部には、セレクタＳｅｌの出力部に接続されており、該マルチプレクサ３６の出力部には、レジスタ３７の入力部が接続されている。このレジスタ３７の出力部には、マルチプレクサ３６の他方の入力部、およびマルチプレクサ３８の一方の入力部それぞれ接続されている。
【００５５】
マルチプレクサ３８の出力部には、レジスタ３９の入力部が接続されており、該レジスタ３９の出力部には、マルチプレクサ３８の他方の入力部、ならびにパイプライン制御部１３にそれぞれ接続されている。
【００５６】
マルチプレクサ３６は、パイプライン制御部１３から出力された制御信号ｃｔｒｌに基づいて、セレクタＳｅｌから出力されたアトリビュート値を出力する。レジスタ３７は、マルチプレクサ２８から出力されたアトリビュート値を格納する。
【００５７】
マルチプレクサ３８は、レジスタ３７から出力されたアトリビュート値、またはレジスタ３９から出力されたアトリビュート値のいずれかをパイプライン制御部１３の制御信号ｃｔｒｌに基づいて選択して出力する。
【００５８】
レジスタ３９は、マルチプレクサ３８から出力されたアトリビュート値を格納する。このレジスタ３７に格納されたアトリビュート値は、パイプライン制御部１３に出力される。
【００５９】
次に、本実施の形態によるスキャンパイプライン部１２の作用について説明する。
【００６０】
はじめに、ＣＡＮコントローラ４における送信データ／受信データの処理について説明する。
【００６１】
まず、送信データを処理する場合、ＣＰＵメモリ３に格納されているメッセージ（ＩＤ値、およびデータ）をメッセージ格納部８に書き込む。ここで、メッセージ格納部８は、前述したように、たとえば、３２個のメールボックスから構成され、各々のメールボックスは、ＩＤ値とデータとをそれぞれ格納することができる。たとえば、メッセージはＣＰＵ２の制御によってメッセージ格納部８に書き込まれる。
【００６２】
ＣＰＵ２は、該当するメールボックスアトリビュート９のアトリビュート値（ＭＢＣ）を送信に設定した後、該当メッセージのアトリビュート値（ＴＸＰＲビット）をセットし、送信の要求をスキャン制御部１１に対して行う。
【００６３】
その後、スキャン制御部１１のスキャン動作により、該当メッセージを選択後、送信バッファ６を経由し、プロトコルエンジン５を介してＣＡＮバスＢｃに選択されたメッセージを送信する。
【００６４】
また、受信データを処理するために、ＣＰＵ２は、メッセージ格納部８における３２個のメールボックスのうち一部を、受信用となるメールボックスをアトリビュート値（ＭＢＣ）によって受信状態に設定し、受信用のメールボックスとして指定する。
【００６５】
ＣＰＵ２は、指定した受信用のメールボックスのＩＤ値/ＬＡＦＭに受信する比較用のＩＤを設定する。ＣＡＮバスＢｃを介してメッセージをプロトコルエンジン５が受信すると、該受信バッファ５は、そのメッセージ（ＩＤ／データ）を保存する。
【００６６】
続いて、プロトコルエンジン５は、スキャン制御部１１のスキャンによって、受信したメッセージのＩＤと一致したメールボックスに受信バッファ７のＩＤ、およびデータを書き込む。
【００６７】
その後、プロトコルエンジン５がメールボックスアトリビュート９に対して受信フラグをセットし、ＣＰＵ２に受信完了を通知する。ＣＰＵ２は、受信用のメールボックスのＩＤ、およびデータをＣＰＵメモリ３に格納する。
【００６８】
次に、スキャンパイプライン部１２におけるメッセージの送信時の動作について、図２を用いて説明する。
【００６９】
ここでスキャンパイプライン部１２において、メッセージ格納部８が接続されているマルチプレクサ２４のデータバス幅はたとえば３２ビットであり、たとえば、２９ビットのＩＤ値（ＩＤ１，ＩＤ２）が１サイクルで読み出される。アドレスカウンタ１８は、たとえばアドレスの最大候補(たとえば、３２個のメールボックスをアドレスで識別可能とすため、３１)を初期値とし、送信時１サイクルでデクリメントする。
【００７０】
まず、対象となるＩＤ（Ｎ）をレジスタ２５にロードするとともに、対象となるＩＤ（Ｎ）のアドレスをレジスタ２９に保存する。また、対象となるＩＤ（Ｎ）のアトリビュート（ＭＢＣ、ＴＸＰＲ、ＴＸＣＲ）値をレジスタ３７にロードする。
【００７１】
続いて、レジスタ２５，２９，３７に格納されている値をレジスタ２７，３１、３９にそれぞれロードするとともに、デクリメントしたアドレス(Ｎ＋１）の指定先に格納されている、ＩＤ値、トリビュート、および次アドレス（Ｎ＋１）をレジスタ２５，３７，２９にそれぞれにロードする。
【００７２】
その後、レジスタ２５に格納されているＩＤ値とレジスタ２７に格納されているＩＤ値との大小比較を比較器１６によって行い、小さいＩＤ値で、かつ送信要求アトリビュート（ＭＢＣ＝送信設定、ＴＸＰＲ＝１、ＴＸＣＲ＝０）のＩＤ／アドレス／アトリビュートをレジスタ３１，２７，３９にそれぞれにロードするとともに、次アドレス（Ｎ＋２）、ＩＤ、およびアトリビュートをレジスタ２９，２５，３７にそれぞれロードする。
【００７３】
ここではＩＤ値が小さい値のメッセージの方が優先順位が高く、最も小さいＩＤ値を有するメッセージが送信対象（受信動作の場合は受信対象）として最も先に処理が実行されるものとして構成される。
【００７４】
そして、アドレスカウンタが０までデクリメントしたときのレジスタ３１に格納されている値は候補アドレス３１〜０内で優先順位の最も高い送信候補データのアドレスとなり、そのアドレスが送信候補アドレスレジスタ３５に格納される。
【００７５】
次に、スキャンパイプライン部１２におけるメッセージの受信時の動作について、同じく図２を用いて説明する。
【００７６】
この場合、受信時はマスクされたＩＤと受信データのＩＤとの一致比較を行う。アドレスカウンタ１８には、アドレスの最大候補（たとえば、３１）を初期値とし、受信時に２サイクルでデクリメントする。
【００７７】
まず、受信バッファ７が受信したメッセージのＩＤはスキャンパイプライン部１２の比較器１６の入力段の受信データＩＤへ入力される。そして、アドレスカウンタ１８で指定された対象ＩＤ（Ｎ）のＩＤをレジスタ２５にロードするとともに、対象ＩＤ（Ｎ）のアドレスをレジスタ２９に格納する。また、対象ＩＤ（Ｎ）のアトリビュート（ＭＢＣ）をレジスタ３７にロードする。
【００７８】
続いて、対象ＩＤ（Ｎ）のレジスタ２５のＩＤを、レジスタ２７にロードするとともに、ＬＡＦＭ（Ｌｏｃａｌ  Ａｃｃｅｐｙａｎｃｅ  Ｆｉｌｔｅｒ  Ｍａｓｋ：ＩＤマスク）をレジスタ２５にロードする。
【００７９】
さらに、レジスタ２９のアドレスをレジスタ３１に、レジスタ３７のＭＢＣをレジスタ３９にロードする。
【００８０】
そして、受信データＩＤとマスク後のＩＤとを比較し、一致し、かつ受信要求アトリビュート（ＭＢＣ＝受信設定）の値が受信状態に設定されていた場合、レジスタ３１の値を受信候補アドレスレジスタ３４に保存する。
【００８１】
アドレスカウンタをデクリメントし、同様に、次候補のＩＤ、マスク、アトリビュートをレジスタへロードし受信データＩＤとの比較を行う。一致した候補が既に検出されている場合、受信候補アドレスレジスタ３４の更新は行わない。
【００８２】
アドレスカウンタ１８が０までデクリメントするまでこれら処理を繰り返し、受信候補アドレスレジスタ３４に格納されたアドレスが受信アドレスを指して終了となる。
【００８３】
図３は、メッセージのスキャンタイミングを示す説明図である。
【００８４】
この図３において、上方は、送信時におけるメッセージのスキャンタイミングを示しており、下方は、受信時におけるメッセージのスキャンタイミングを示している。
【００８５】
まず、送信時において、メッセージ格納部８から送信候補ＮのＩＤ値（ＩＤ（Ｎ））が入力される。その後、送信候補Ｎ＋１のＩＤ値（ＩＤ（Ｎ＋１））が入力されると、これら送信候補Ｎと送信候補Ｎ＋１とのＩＤ値の比較を実行する。
【００８６】
また、受信時では、メッセージ格納部８から受信候補ＮのＩＤ値（ＩＤ（Ｎ））が入力され、その後、次サイクルで受信候補ＮのＩＤマスクが入力される。そして、受信したＩＤとマスク後のＩＤとの比較を行うとともに、次送信候補Ｎ＋１のＩＤ値が入力される。
【００８７】
図４は、本発明者が検討した従来構成のＣＡＮコントローラにおけるメッセージのスキャンタイミングを示した説明図である。
【００８８】
この場合、メッセージのスキャンはシーケンシャル処理となっており、ＩＤ値がＲＡＭなどの揮発性メモリに格納されている。また、ＩＤ値やアトリビュート値などが出力されるデータバス幅は、たとえば１６ビット程度となっている。
【００８９】
よって、バス幅以上のデータで構成される、ＣＡＮバス拡張データフレームフォーマットで定義される２９ビットのＩＤ値のデータ転送は、アドレス指定されるＩＤ値を複数回（たとえば上位側ＩＤ値  ＩＤＨ、下位側ＩＤ値  ＩＤＬとして２回に分割）で転送を行う。
【００９０】
まず、図４の上方に示すように、送信時におけるメッセージのスキャンでは、前述したようにデータ幅が１６ビット程度であり、且つシーケンシャル処理であるので、アトリビュート、ＩＤ値（ＩＤＨ、ＩＤＬ）の入力、およびＩＤの比較処理がそれぞれ１サイクルかけて行われる。
【００９１】
また、アトリビュート値をＲＡＭに格納しているために、該アトリビュート値の読み出しにも１サイクルを要してしまい、メッセージスキャンの処理は、合計で４サイクル必要となってしまう。
【００９２】
図４の下方に示すように、受信時のメッセージスキャンでは、アトリビュート値、ＩＤマスク値（ＩＤＨマスク、ＩＤＬマスク）、ＩＤ値（ＩＤＨ、ＩＤＬ）の読み出し、ならびに比較実行がそれぞれ１サイクルかけて行われる（合計６サイクル）ことになる。
【００９３】
このように、本発明者が検討したＣＡＮコントローラによるメッセージスキャンでは、スキャンの処理時間が大幅に増加してしまうことになる。
【００９４】
一方、本実施の形態に示したＣＡＮコントローラ４では、図３で示したようにスキャンパイプライン部がＩＤ値の比較処理と次候補のデータ読み出しとを並列に処理するとともに、アトリビュート値を読み出しサイクルが不要となるレジスタによって構成されるメールボックスアトリビュート９に格納することにより、メッセージのスキャン時間を大幅に短縮することができる。
【００９５】
また、本実施の形態に示したように、ＩＤ順の優先順位に基づく送信を行なう場合は、送信メッセージの比較が必要となる。
【００９６】
図５は、スキャン開始のタイミング例を示したＣＡＮフレームの説明図である。
【００９７】
ＣＡＮフレーム（メッセージ）は、図５の上方に示すように、ＳＯＦ（Ｓｔａｒｔ  Ｏｆ  Ｆｒａｍｅ）、アビトレーションフィールド、コントロールフィールド、データフィールド、ＣＲＣ（Ｃｙｃｌｅ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｋ）フィールド、ＡＣＫフィールド、およびＥＯＦ（Ｅｎｄ  Ｏｆ  Ｆｒａｍｅ）から構成されている。
【００９８】
ＳＯＦは、フレームの始まりを示す。アビトレーションフィールドは、たとえば、１１ビットのＩＤ値、およびＲＴＲ（Ｒｅｍｏｔｅ  Ｔｒａｎｓｍｉｔｔｉｏｎ  Ｒｅｑｕｅｓｔ）からなる。
【００９９】
コントロールフィールドは、予約ビットとデータのバイト数を表すフィールドであり、ＩＤＥ（Ｉｄｅｎｔｉｆｉｅｒ  Ｅｘｔｅｎｓｉｏｎ）、ｒ０（０固定）、およびＤＬＣ（Ｄａｔａ  Ｌｅｎｇｔｈ  Ｃｏｄｅ）から構成されている。
【０１００】
データフィールドは、図５の上方に示すように、たとえば、最大６４ビットのデータから構成される。ＣＲＣフィールドは、伝送の誤りをチェックするフィールドであり、ＣＲＣ、およびＣＲＣの終わりを示すＣＲＣ  ＤＥＬ（ＣＲＣ  Ｄｅｌｉｍｉｔｅｒ）から構成されている。
【０１０１】
ＡＣＫフィールドは、正常に受信が完了したことを確認するフィールドあり、ＡＣＫ、ならびにＡＣＫの終了を示すＡＣＫ  ＤＥＬ（ＡＣＫ  Ｄｅｌｉｍｉｔｅｒ）から構成されている。ＥＯＦは、フレームの終わりを示す。
【０１０２】
また、図５の上方に示すＣＡＮフレームは、コントロールフィールドのＩＤＥを設定することにより、拡張フォーマットのＣＡＮフレームに設定することも可能である。
【０１０３】
通常のデータ送信の際の送信スキャンのタイミングは、図５の上方に示すように、たとえば、ＣＲＣフィールドにおけるＣＲＣ  ＤＥＬの先頭ビットが送受信された際に次送信データ用のメールボックスのスキャン処理を開始する。
【０１０４】
また、図５の下方は、エラーフレームの構成を示している。
【０１０５】
エラーフレームは、６ビット〜１２ビットのＥｒｒ  Ｆｌａｇ（エラーフラグ）、８ビットのＥｒｒ  ＤＥＬ（Ｅｒｒ  Ｄｅｌｉｍｉｔｅｒ）から構成されており、エラーフレームの送受信時には、Ｅｒｒ  ＤＥＬが送信された際に次送信データ用のメールボックスのスキャンを行う。
【０１０６】
また、ＣＡＮバスＢｃ上に送受信データがない場合に、送信要求があれば随時スキャンが開始される。
【０１０７】
これにより、探索時間の最適化をすることができ、探索手順を簡素化し、送信開始動作と送信メッセージの探索による送信候補の入れ替えの競合条件の発生を抑制することができる。
【０１０８】
図６は、図１に示すＣＡＮコントローラ４の他の構成例を示したブロック図である。
【０１０９】
メールボックスアトリビュート９に格納されるアトリビュート値は、メッセージ送信要求のため、ＣＡＮバスＢｃとは非同期に随時更新されることになる。つまり、ＣＰＵ２のメッセージ送信要求に応じて、メッセージボックスへの送信データおよびアトリビュート値の書き込みが随時行われるものである。
【０１１０】
メッセージのスキャン実行中に一部のメッセージのアトリビュートが更新されると、すべての候補間での正しい比較ができなくなってしまう。そこで、図６に示すように、メールボックスアトリビュート９内に保存バッファとして機能するスナップショット部（識別情報一時格納部）９ａを新たに設ける。
【０１１１】
このスナップショット部９ａは、スキャン開始時にメールボックスアトリビュート９に格納されているアトリビュート値を保存（スナップショット）する。
【０１１２】
スナップショット部９ａがない場合には、アトリビュート値の更新毎にスキャンをはじめから行わなければならず、ＣＡＮバスＢｃとのスキャン処理の同期がとれず、候補間のアトリビュートの不一致の発生やスキャンがＣＡＮ通信に間に合わないなどの不具合が発生する恐れなどがあった。
【０１１３】
しかし、スナップショット部９ａを設け、さらにスキャン制御部１１にてスキャン動作開始のタイミングを制御する構成によって、アトリビュート更新毎にスキャン処理を行う必要がなくなり、ＣＡＮバスＢｃと同期してスキャン処理を行うことができる。
【０１１４】
よって、全候補のスキャンが終了するまで、スナップショットは更新されず、正しい比較が行えることになる。
【０１１５】
また、ＣＡＮバスＢｃ上のデータを受信中に、適切なタイミングで送信データの次候補をスキャンすることが可能となり、データ送受信完了時に必要な送信データを準備することが可能となり、ＣＡＮバス仕様に合致した正しい送信を行うことができる。
【０１１６】
それにより、本実施の形態によれば、メッセージのスキャンに必要な処理速度を高速化することができ、スキャン時間を大幅に短縮することができる。
【０１１７】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【０１１８】
たとえば、前記実施の形態では、３２の送受信メッセージを格納できる構成としたが、該送受信メッセージ数の格納を任意に変更（たとえば、１６や４２など）するようにしてもよい。
【０１１９】
この場合、スキャン制御部１１（図１）にスキャンパイプライン部１２のアドレスカウンタ１８のデクリメントするカウント数を任意に変更することのできるカウンタ用レジスタを備えることにより実現が可能となる。
【０１２０】
そして、カウンタ用レジスタに設定値を格納することにより、アドレスカウンタ１８のアドレスカウンタ初期値を変更する。たとえば、送受信メッセージ数が１６の場合には、アドレスカウンタ１８から出力されるアドレスカウンタ初期値を１５とし、アドレスカウンタ値を１５〜０までカウントするよう設定する。
【０１２１】
それにより、容易に低コストで、かつフレキシブルに要求に応じた仕様に変更が可能となる。
【産業上の利用可能性】
【０１２２】
本発明は、ＣＡＮバスを用いた送受信メッセージのスキャン技術に適している。
【図面の簡単な説明】
【０１２３】
【図１】図１は、本発明の一実施の形態による半導体集積回路装置のブロック図である。
【図２】図１の半導体集積回路装置に設けられたスキャンパイプライン部のブロック図である。
【図３】図２のスキャンパイプライン部におけるメッセージのスキャンタイミングを示す説明図である。
【図４】本発明者が検討したＣＡＮコントローラにおけるメッセージのスキャンタイミングを示した説明図である。
【図５】図２のスキャンパイプライン部によるスキャン開始のタイミング例を示したＣＡＮフレームの説明図である。
【図６】図１に示すＣＡＮコントローラの他の構成例を示したブロック図である。
【符号の説明】
【０１２４】
１，１1 〜１n   半導体集積回路装置
２  ＣＰＵ
３  ＣＰＵメモリ
４  ＣＡＮコントローラ（通信制御装置）
４ａ  ＣＰＵインタフェース
５  プロトコルエンジン
６  送信バッファ
７  受信バッファ
８  メッセージ格納部（識別情報／データ格納部）
９  メールボックスアトリビュート（制御情報格納部）
９ａ  スナップショット部（識別情報一時格納部）
１０  制御レジスタ
１１  スキャン制御部
１２  スキャンパイプライン部
１３  パイプライン制御部
１４  第１のＩＤ格納部（送信スキャン部、受信スキャン部）
１５  第２のＩＤ格納部（送信スキャン部、受信スキャン部）
１６  比較器（受信スキャン部）
１７  減算器（送信スキャン部）
１８  アドレスカウンタ（送信スキャン部、受信スキャン部）
１９  第１のアドレス格納部（送信スキャン部、受信スキャン部）
２０  第２のアドレス格納部（送信スキャン部、受信スキャン部）
２１  送受信候補アドレス部
２２  第１のアトリビュート格納部（送信スキャン部、受信スキャン部）
２３  第２のアトリビュート格納部（送信スキャン部、受信スキャン部）
２４  マルチプレクサ
２５  レジスタ
２６  マルチプレクサ
２７  レジスタ
２８  マルチプレクサ
２９  レジスタ
３０  マルチプレクサ
３１  レジスタ
３２，３３  マルチプレクサ
３４  受信候補アドレスレジスタ（受信候補格納部）
３５  送信候補アドレスレジスタ（送信候補格納部）
３６  マルチプレクサ
３７  レジスタ
３８  マルチプレクサ
３９  レジスタ
Ｂｃ  ＣＡＮバス
ＢＬ  ローカルバス
Ｓｅｌ  セレクタ
【図１】
2006236047.tif 000003
【図２】
2006236047.tif 000004
【図３】
2006236047.tif 000005
【図４】
2006236047.tif 000006
【図５】
2006236047.tif 000007
【図６】
2006236047.tif 000008