(57)【特許請求の範囲】
【請求項１】
プロセッサと、
前記プロセッサが使用するメモリと、
前記プロセッサと前記メモリとが接続される第１のバスと、
周辺モジュールと、
前記周辺モジュールが接続され、前記第１のバスより低速な第２のバスと、
前記第１のバスと前記第２のバスとに接続され、この２つのバス間でデータ転送処理を行うバスブリッジ制御部と、
前記第２のバスに接続され、前記第２のバスの制御を行う制御部とを有するデータ処理装置であって、
前記バスブリッジ制御部は前記第２のバスのデフォルトバスマスタであり、
前記周辺モジュールの診断に関する情報が設定され、その設定値を前記バスブリッジ制御部に供給する診断情報設定部を有し、
前記バスブリッジ制御部は、前記第２のバスがアイドル状態の場合に、前記診断情報設定部から供給される診断情報設定値に従って、前記周辺モジュールに診断コマンドを発行し、その診断結果を前記第２のバスから取り込み、前記プロセッサに供給し、
前記診断情報設定部には、前記周辺モジュールに対する診断コマンドの発行を指示する値と、前記周辺モジュールの診断方法を指示する値とが設定されることを特徴とするデータ処理装置。
【請求項２】
請求項１記載のデータ処理装置において、
前記バスブリッジ制御部は、前記診断情報設定部から供給される前記診断情報設定値に従い、前記周辺モジュールに対して診断開始を指示するコマンドと、診断結果の出力を要求するコマンドとを発行することを特徴とするデータ処理装置。
【請求項３】
請求項２記載のデータ処理装置において、
前記周辺モジュールは診断専用レジスタを有し、前記診断専用レジスタには診断開始、診断終了、診断結果、故障対象、故障箇所の情報が含まれることを特徴とするデータ処理装置。
【請求項４】
請求項１記載のデータ処理装置において、
前記診断情報設定部には、前記周辺モジュールに対する診断コマンドの発行を指示する値と、前記周辺モジュールの診断方法を指示する値とに加え、診断対象となる前記周辺モジュールを指定する値が設定されることを特徴とするデータ処理装置。
【請求項５】
請求項１記載のデータ処理装置において、
前記診断情報設定部の値は、前記プロセッサによって書き込みおよび読み出しが可能であることを特徴とするデータ処理装置。
【請求項６】
請求項１記載のデータ処理装置において、
前記診断情報設定部の内部に不揮発性メモリを有し、前記不揮発性メモリに前記診断情報が格納されていることを特徴とするデータ処理装置。
【請求項７】
請求項１記載のデータ処理装置を内蔵したことを特徴とする電子制御ユニット。
【請求項８】
請求項７記載の電子制御ユニットを搭載したことを特徴とする自動車。
【請求項９】
請求項２記載のデータ処理装置において、
前記バスブリッジ制御部は、前記診断開始を指示するコマンドによる診断が終了した頃に、前記診断結果の出力を要求するコマンドを発行することを特徴とするデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータ等のデータ処理装置に関し、特に高い信頼性が要求される制御機器において、ＣＰＵに負荷をかけずに周辺モジュールの診断を行うデータ処理装置、さらにこのデータ処理装置を内蔵した電子制御ユニット、この電子制御ユニットを搭載した自動車などに適用して有効な技術に関する。
【背景技術】
【０００２】
近年、家電や自動車、産業機器といった組み込み分野向けのマイクロコンピュータ（以下「マイコン」と表記）の高性能化が急速に進む中、信頼性に対する要求も高まっている。特に自動車分野においては、ステアリングやブレーキなどの油圧システムや機械システムを、エレクトロニクス・システムに置き換えるＸ−Ｂｙ−Ｗｉｒｅ技術の導入が今後急速に進むと予想されている。このため、Ｘ−Ｂｙ−Ｗｉｒｅ技術を実現するマイコンの高信頼化が非常に重要となっている。しかしながら、上記のような組み込み分野のマイコンでは、第一に安価であることが重要なため、信頼性向上のために多くのコストをかけることはできない。
【０００３】
マイコンの中には、ＣＰＵ（プロセッサ）やメモリの他に、Ａ／Ｄ変換器やタイマーといった周辺モジュールが多数内蔵されている。特に、ＣＰＵやメモリは高速で動作するＣＰＵバスに、周辺モジュールは比較的低速な周辺バスにそれぞれ接続され、この２つのバスをバスブリッジを介して接続するのが一般的である。このようなマイコンにおける高信頼化の従来技術としては、ＥＣＣやパリティチェック、ソフトウェアによる自己診断などがある。ＥＣＣやパリティチェックは、主にメモリの高信頼化に適用される技術であり、データの誤り（エラー）を検出、または訂正する手法である。ソフトウェア診断は、ＣＰＵのプログラム実行によってＣＰＵやメモリ、周辺モジュールなどの診断を行うものであり、診断用のプログラムを用意するだけで実現できるため、高信頼を要求されるマイコンにおいて広く利用されている。
【０００４】
例えば、特許文献１記載の技術は、故障箇所を効率的に特定できる診断機能を有するバスブリッジ回路を目的としている。この技術では、ＣＰＵが診断を行うために周辺モジュールに対してアクセスを行う方式であるが、周辺モジュールは低速なバスに接続されているため、ＣＰＵアクセスに対する応答性が悪い。また、この例では診断処理はリセット直後（立ち上げ時）のみ実施することを想定しているため、通常動作中の故障は検出できないものとなっている。
【特許文献１】特開２０００−２７６３６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、前記特許文献１を含む従来技術においては、ソフトウェア診断により、容易にマイコンの高信頼化を図れる一方、発生する問題もある。ここでは、特に問題となる周辺モジュールのソフトウェア診断について説明する。
【０００６】
通常、マイコンには多数の周辺モジュールが内蔵されている。そのため、ソフトウェア診断によって全ての周辺モジュールをＣＰＵが診断する場合、診断によるＣＰＵ負荷が非常に高くなる。
【０００７】
また、従来技術で述べたように、マイコンの内部は階層的なバス構造を有することが多い。例えば、ＣＰＵやメモリなどのモジュールが接続されるＣＰＵバスの下に、周辺モジュールが接続される低速な周辺バスを用意し、この２つのバスを、バスブリッジを介して接続する構成である。このような階層的なバス構成において、ＣＰＵが周辺モジュールにアクセスする場合、周辺バスが低速であるため、アクセスレイテンシが長くなり、その間、ＣＰＵバスが停止（ストール）状態となる。つまり、診断のために頻繁に周辺モジュールにアクセス（特に読み出しアクセス）するとＣＰＵが停止する期間が長くなり、その結果、ＣＰＵ性能が著しく低下してしまう。
【０００８】
また、このようなＣＰＵ性能の低下を防ぐために、通常動作時には診断を行わずに、マイコンの電源投入直後（立ち上げ時）のみ診断処理を行うような方法もある。しかし、この方法では、通常動作中に故障が発生した場合には故障の検出ができない。
【０００９】
そこで、本発明は以上のような問題に鑑みてなされたものであり、その目的は、ＣＰＵに負荷をかけずに、かつ、通常動作時においても周辺バスの空きを利用して効率良く周辺モジュールの診断を行うデータ処理装置を提供することにある。
【００１０】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００１２】
本発明は、ＣＰＵと、ＣＰＵが使用するメモリと、ＣＰＵとメモリとが接続されるＣＰＵバスと、周辺モジュールと、周辺モジュールが接続され、ＣＰＵバスより低速な周辺バスと、ＣＰＵバスと周辺バスに接続され、この２つのバス間でデータ転送処理を行うバスブリッジ制御部と、周辺バスに接続され、周辺バスの制御を行う周辺バス制御部とを有するデータ処理装置、さらにこのデータ処理装置を内蔵した電子制御ユニット、この電子制御ユニットを搭載した自動車などに適用され、以下のような特徴を有する。
【００１３】
（１）バスブリッジ制御部は、周辺バスのデフォルトバスマスタである。周辺モジュールの診断に関する情報が設定され、その設定値をバスブリッジ制御部に供給する診断情報設定部を有する。バスブリッジ制御部は、周辺バスがアイドル状態の場合に、診断情報設定部から供給される診断情報設定値に従って、周辺モジュールに診断コマンドを発行し、その診断結果を周辺バスから取り込み、ＣＰＵに供給する。
【００１４】
（２）診断情報設定部には、周辺モジュールに対する診断コマンドの発行を指示する値が設定される。診断コマンドに対する周辺モジュールの応答内容として、診断結果、診断対象、故障箇所の情報が含まれる。
【００１５】
（３）診断情報設定部には、周辺モジュールに対する診断コマンドの発行を指示する値と、周辺モジュールの診断方法を指示する値とが設定される。バスブリッジ制御部は、診断情報設定部から供給される診断情報設定値に従い、周辺モジュールに対して診断開始を指示するコマンドと、診断結果の出力を要求するコマンドとを発行する。周辺モジュールは診断専用レジスタを有し、診断専用レジスタには診断開始、診断終了、診断結果、故障対象、故障箇所の情報が含まれる。
【００１６】
（４）診断情報設定部には、周辺モジュールに対する診断コマンドの発行を指示する値や、周辺モジュールの診断方法を指示する値に加え、診断対象となる周辺モジュールを指定する値が設定される。
【００１７】
（５）診断情報設定部の値は、ＣＰＵによって書き込みおよび読み出しが可能である。
【００１８】
（６）診断情報設定部の内部にレジスタを有し、レジスタに診断情報が格納されている。
【発明の効果】
【００１９】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００２０】
本発明によれば、バスブリッジ制御部が周辺バスの空き状態を監視し、空き状態であれば診断コマンドを発行することで、通常動作時においてもＣＰＵに負荷をかけず、かつ周辺バスを効率良く使用して、周辺モジュールの診断を行うことが可能となる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００２２】
以下においては、本発明の実施の形態の特徴を分かりやすくするために、本発明の前提となる従来技術（図１３〜図１５）と比較して説明する。
【００２３】
図１３に、本発明の前提となる従来技術として、プロセッサであるＣＰＵが周辺モジュールに内蔵されているレジスタの値を読み出すことで、診断を行うデータ処理装置の全体構成の一例を示す。
【００２４】
このデータ処理装置は、ＣＰＵバス３０、ＣＰＵ３１、メモリ３２、周辺バス４０、周辺バス制御部４１、第１の周辺モジュール（周辺モジュール＃１）４２−１〜第Ｎの周辺モジュール（周辺モジュール＃Ｎ）４２−Ｎ、バスブリッジ制御部１００とから構成される。
【００２５】
ＣＰＵバス３０は、周辺バス４０よりも高速な周波数で動作するバスである。ＣＰＵバス３０と周辺バス４０は、コマンドバス（例えば４ビット）、アドレスバス（例えば３２ビット）、データバス（例えば３２ビット）などを区別せずにまとめて１つの線で示している。
【００２６】
ＣＰＵバス３０には、プロセッサであるＣＰＵ３１と、ＣＰＵ３１が使用するメモリ３２と、バスブリッジ制御部１００が接続される。周辺バス４０には、周辺バス４０を制御する周辺バス制御部４１と、第１から第ＮまでのＮ個（１つ以上）の周辺モジュール４２｛４２−１，４２−２，・・・，４２−Ｎ｝と、バスブリッジ制御部１００とが接続される。周辺モジュール４２は、例えばＡ／Ｄ変換器やタイマーといったモジュールである。
【００２７】
周辺バス制御部４１は、主に周辺バス４０の調停処理を行うモジュールであり、周辺モジュール４２やバスブリッジ制御部１００から出力される周辺バス４０の使用要求に対して、いずれか１つのモジュールに対して周辺バス４０の使用許可を出力する。周辺バス使用許可を得たモジュールは、周辺バス４０にコマンドを発行することが可能となる。
【００２８】
バスブリッジ制御部１００は、ＣＰＵバス３０と周辺バス４０との間での信号の入出力処理を行うモジュールであり、ＣＰＵ３１が周辺モジュール４２に対してアクセスする場合に、ＣＰＵ３１がＣＰＵバス３０に発行したコマンドやアドレスなどを変換して周辺バス４０に出力したり、周辺モジュール４２から出力された読み出しデータをＣＰＵバス３０に転送するといった処理を行う。
【００２９】
このバスブリッジ制御部１００はデフォルトバスマスタであるため、周辺モジュール４２へのアクセス応答性が良くなっている。デフォルトバスマスタとは、どの周辺モジュール４２も周辺バス使用要求を出していない場合、周辺バス使用要求を出していなくてもデフォルトで周辺バス使用許可を得ることができる機能のことである。これにより、周辺バス４０が使われていない場合には、ＣＰＵ３１からのアクセスによるコマンドを、直ぐに周辺バス４０に出力することができるようになる。ちなみに、ＣＰＵ３１からのアクセスが無い時に、周辺バス使用許可を得た場合は、周辺バス４０にＮＯＰコマンドを出力する。
【００３０】
図１４は、図１３に示したバスブリッジ制御部１００の構成の一例を示している。このバスブリッジ制御部１００は、特にＣＰＵ３１が周辺モジュール４２に対して読み出しアクセスを行うための部分について示している。
【００３１】
図に示すように、バスブリッジ制御部１００は、周辺バス信号発行制御部１０１と、通常コマンド生成部１２と、ＮＯＰコマンド生成部２０と、周辺バスコマンド選択部１４と、通常アドレス生成部１５と、ＮＯＰアドレス生成部２１と、周辺バスアドレス選択部１７と、データ乗せ替え部１９と、ＣＰＵバス３０や周辺バス４０との間で入出力する信号線とで構成される。
【００３２】
周辺バス信号発行制御部１０１は、周辺バス４０に出力する信号の発行タイミング制御や周辺バスデータ４０１の取り込みタイミング制御、周辺バス使用要求の生成などを行う。周辺バス使用要求１１１は、周辺バス４０を使用したい時に、周辺バス制御部４１から出力される周辺バス使用許可４１１がネゲート（無効）状態の場合に、周辺バス制御部４１に対して出力する信号である。
【００３３】
通常コマンド生成部１２は、ＣＰＵ３１がＣＰＵバス３０に周辺モジュール４２に対するＣＰＵバスコマンド３０１を発行した場合、ＣＰＵアクセスが発生したことをＣＰＵアクセス発生通知１２２で周辺バス信号発行制御部１０１に通知するとともに、ＣＰＵバスコマンド３０１を通常コマンド１２１に変換する。ＮＯＰコマンド生成部２０は、周辺バス４０用のＮＯＰコマンド２０１を生成する。
【００３４】
周辺バスコマンド選択部１４は、周辺バス信号発行制御部１０１から出力される選択信号１１２に従って、通常コマンド１２１かＮＯＰコマンド２０１のどちらか一方を選択し、周辺バスコマンド１４１として周辺バス４０に出力する。選択信号１１２は、ＣＰＵ３１からのアクセスが有り、かつ周辺バス使用許可４１１がアサート（有効）状態であれば通常コマンド１２１を選択し、ＣＰＵ３１からのアクセスが無く、かつ周辺バス使用許可４１１がアサート（有効）状態であれば、ＮＯＰコマンド２０１を選択する信号である。
【００３５】
通常アドレス生成部１５は、ＣＰＵ３１が上記したＣＰＵバスコマンド３０１と同じタイミングで出力するＣＰＵバスアドレス３０２を通常アドレス１５１に変換する。ＮＯＰアドレス生成部２１は、周辺バス４０用のＮＯＰアドレス２１１を生成する。
【００３６】
周辺バスアドレス選択部１７は、周辺バス信号発行制御部１０１から出力される選択信号１１２に従って、通常アドレス１５１かＮＯＰアドレス２１１のどちらか一方を選択し、周辺バスアドレス１７１として周辺バス４０に出力する。選択信号１１２は、ＣＰＵ３１からのアクセスが有り、かつ周辺バス使用許可４１１がアサート（有効）状態であれば通常アドレス１５１を選択し、ＣＰＵ３１からのアクセスが無く、かつ周辺バス使用許可４１１がアサート（有効）状態であればＮＯＰアドレス２１１を選択する信号である。
【００３７】
データ乗せ替え部１９は、周辺バス信号発行制御部１０１から出力されるデータ乗せ替えタイミング信号１１３に従って、周辺バスデータ４０１をＣＰＵバスデータ１９１に乗せ替える。データ乗せ替えタイミング信号１１３は、バスブリッジ制御部１００が発行した読み出しコマンドに対する有効な読み出しデータが周辺モジュールから出力された場合に、そのデータを取り込むタイミングを指示する信号である。
【００３８】
図１５は、前記図１３及び図１４に示したデータ処理装置の動作の一例をタイムチャートで示したものである。ｔ０〜ｔ１６は、ＣＰＵバスクロック３３に対応した時間の単位である。本例では、ＣＰＵバスクロック３３と周辺バスクロック４３とのクロック比が４：１の場合を示している。また、バスブリッジ制御部１００はデフォルトバスマスタであるため、周辺バス使用許可が常にアサート状態である場合を示している。ここでは、ＣＰＵ３１の周辺モジュール４２への診断アクセスとして、読み出しアクセスを１回のみ行った場合を示している。
【００３９】
まずｔ０で、ＣＰＵ３１が周辺モジュール４２に対して診断アクセスを行うために、ＣＰＵバスコマンド３０１（リードコマンド：Ｒ０）と、ＣＰＵバスアドレス３０２（Ａ０）を出力する。これ以降のＣＰＵバスコマンド３０１（Ｒ１、Ｒ２、Ｒ３）は、ＣＰＵバス３０に接続されたメモリ３２へのアクセスとする。次に、バスブリッジ制御部１００はこのコマンド（Ｒ０）を受けて、周辺バスクロック４３の立ち上がり（ｔ１）から周辺バスコマンド１４１（Ｒ０）と、周辺バスアドレス１７１（Ａ０）を出力する。これ以降の周辺バスコマンド１４１は、ＣＰＵ３１からのアクセスがないためＮＯＰコマンドを出力する。ＮＯＰコマンドに対応するアドレスは不定で良い。
【００４０】
その後、周辺バスアドレス１７１（Ａ０）に対応する周辺モジュール４２が周辺バスコマンド１４１（Ｒ０）を受けて、ｔ５から読み出しデータ（Ｄ０）を周辺バスデータ４０１に出力する。バスブリッジ制御部１００は、この読み出しデータ（Ｄ０）が確定するタイミング（ｔ９）で、ＣＰＵバスデータ１９１に乗せ替える。ＣＰＵ３１は、ｔ９の読み出しデータ（Ｄ０）と予め用意してある期待値データとを比較することで、周辺モジュール４２の内蔵レジスタが故障しているかどうかを判定する。
【００４１】
このように、ＣＰＵ３１が周辺モジュール４２の診断を行う場合には、周辺モジュール４２からの読み出しデータが届くまでの間、すなわちｔ２〜ｔ１０の期間ＣＰＵバス３０は次に進めないためストール（停止）状態となる。ストール期間中は、ＣＰＵ３１も停止状態となるため、ＣＰＵ性能が低下する。本例では、ＣＰＵバス３０と周辺バス４０のクロック比が４：１の場合を示したが、８：１や１６：１といったクロック比では、ＣＰＵバス３０のストール期間が４：１よりも長くなるため、ＣＰＵ性能低下が非常に問題となる。そこで、以下に説明するような本発明の実施の形態が考えられた。
【００４２】
図１は、本発明の一実施の形態におけるデータ処理装置の全体構成の一例を示している。このデータ処理装置は、ＣＰＵバス３０、ＣＰＵ３１、メモリ３２、周辺バス４０、周辺バス制御部４１、第１の周辺モジュール（周辺モジュール＃１）４２−１〜第Ｎの周辺モジュール（周辺モジュール＃Ｎ）４２−Ｎ、バスブリッジ制御部１、診断情報設定部２０とから構成される。バスブリッジ制御部１と診断情報設定部２０以外の各部は、前提技術の構成と同様である。なお、診断情報設定部２０をバスブリッジ制御部１の外部に設けた構成として示しているが、バスブリッジ制御部１の内部に設けた構成も可能である。
【００４３】
ＣＰＵ３１と、メモリ３２と、バスブリッジ制御部１は、ＣＰＵバス３０に接続される。第１から第ＮのＮ個（１つ以上）の周辺モジュール４２｛４２−１，４２−２，・・・，４２−Ｎ｝と、バスブリッジ制御部１は、周辺バス４０に接続される。バスブリッジ制御部１は、ＣＰＵバス３０と周辺バス４０とを接続し、診断情報設定部２０と、ＣＰＵ３１に接続される。ＣＰＵ３１に接続される診断通知１８１は、周辺モジュール４２の診断結果である。診断情報設定部２０に設定された値を診断情報設定値２０１としてバスブリッジ制御部１に出力する。診断情報設定値２０１は、バスブリッジ制御部１が周辺モジュール４２の診断を行うために使用する値である。
【００４４】
本データ処理装置において、ＣＰＵ３１は診断アクセスによるＣＰＵバス３０のストールを回避するために、診断のための周辺モジュール４２のアクセスを一切行わない。その代わりに、バスブリッジ制御部１が診断情報設定部２０に設定された診断情報設定値２０１に従って、周辺モジュール４２に対して診断コマンドを発行する。バスブリッジ制御部１はデフォルトバスマスタであるため、ＣＰＵ３１の周辺モジュール４２に対するアクセスの応答性が向上している。
【００４５】
従来は、バスマスタになった場合に、ＣＰＵ３１から周辺モジュール４２に対するアクセスが無い場合は、周辺バス４０にＮＯＰコマンドを出力していたが、本データ処理装置では、このＮＯＰコマンドを出力する代わりに、周辺モジュール４２への診断コマンドを発行する。診断対象となる周辺モジュール４２は、診断コマンドに対する診断結果を周辺バス４０に出力する。バスブリッジ制御部１は、この診断結果をＣＰＵ３１に通知する。診断情報設定部２０は、診断情報設定値２０１が設定・保持されるレジスタで構成される。特に、診断情報設定部２０は外部から設定を行う構成に対応している。例えば、ＣＰＵ３１から診断情報設定部２０のレジスタに対して読み出しや書き込みができる構成となっている。
【００４６】
図２は、図１に示した診断情報設定部２０に設定する診断情報設定値２０１の一例を示している。本例では、診断コマンド発行部分に「１」を設定している。この設定値を、診断情報設定値２０１としてバスブリッジ制御部１に出力する。診断コマンド発行部分に「１」が設定された場合、バスブリッジ制御部１は周辺バス４０の空きサイクルに周辺モジュール４２に対する診断コマンドを発行する。診断コマンド発行部分に「０」が設定された場合は、周辺バス４０の空きサイクルに診断コマンドを発行しない。つまり、従来と同様に空きサイクルにはＮＯＰコマンドを発行する。診断コマンドが発行された周辺モジュール４２は、次の周辺バスサイクルのタイミングで診断結果を周辺バス４０に出力する。バスブリッジ制御部１は、出力された診断結果をＣＰＵ３１に出力する。
【００４７】
図３は、図１に示したバスブリッジ制御部１の構成の一例を示している。本例では、特に周辺バス４０からＣＰＵバス３０にデータを転送する読み出し制御部分について示している。図に示すように、バスブリッジ制御部１は、周辺バス信号発行制御部１１と、通常コマンド生成部１２と、診断コマンド生成部１３と、周辺バスコマンド選択部１４と、通常アドレス生成部１５と、診断アドレス生成部１６と、周辺バスアドレス選択部１７と、診断結果出力部１８と、データ乗せ替え部１９と、ＣＰＵバス３０や周辺バス４０との間で入出力する信号線とで構成される。
【００４８】
周辺バス信号発行制御部１１は、周辺バス４０に出力する信号の発行タイミング制御や周辺バスデータ４０１の取り込みタイミング制御、周辺バス使用要求の生成などを行う。周辺バス使用要求１１１は、周辺バス制御部４１から出力される周辺バス使用許可４１１がネゲート（無効）状態の時に、周辺バス４０を使用したい場合に周辺バス制御部４１に対して出力する信号である。
【００４９】
通常コマンド生成部１２は、ＣＰＵ３１がＣＰＵバス３０に周辺モジュール４２に対するＣＰＵバスコマンド３０１を発行した場合、ＣＰＵアクセスが発生したことをＣＰＵアクセス発生通知１２２で周辺バス信号発行制御部１０１に通知するとともに、ＣＰＵバスコマンド３０１を通常バスコマンド１２１に変換する。診断コマンド生成部１３は、周辺モジュール４２に対する診断コマンド１３１を生成する。但し、診断情報設定値２０１として、診断コマンドを発行しない設定となっている場合はＮＯＰコマンドを診断コマンド１３１として生成する。
【００５０】
周辺バスコマンド選択部１４は、周辺バス信号発行制御部１０１から出力される選択信号１１２に従って、通常コマンド１２１か診断コマンド１３１のどちらか一方を選択し、周辺バスコマンド１４１として周辺バス４０に出力する。選択信号１１２は、ＣＰＵ３１からのアクセスが有り、かつ周辺バス使用許可４１１がアサート（有効）状態であれば通常コマンド１２１を選択し、ＣＰＵ３１からのアクセスが無く、かつ周辺バス使用許可４１１がアサート（有効）状態であれば診断コマンド１３１を選択する信号である。
【００５１】
通常アドレス生成部１５は、ＣＰＵ３１が上記したＣＰＵバスコマンド３０１と同じタイミングで出力するＣＰＵアドレス３０２を通常アドレス１５１に変換する。診断アドレス生成部１６は、周辺モジュール４２を指定するための診断アドレス１６１を生成する。但し、診断情報設定値２０１として、診断コマンドを発行しない設定となっている場合はＮＯＰアドレスを診断コマンド１３１として生成する。
【００５２】
周辺バスアドレス選択部１７は、周辺バス信号発行制御部１１から出力される選択信号１１２に従って、通常アドレス１５１か診断アドレス１６１のどちらか一方を選択し、周辺バスアドレス１７１として周辺バス４０に出力する。選択信号１１２は、ＣＰＵ３１からのアクセスが有り、かつ周辺バス使用許可４１１がアサート（有効）状態であれば通常アドレス１５１を選択し、ＣＰＵ３１からのアクセスが無く、かつ周辺バス使用許可４１１がアサート（有効）状態であれば診断アドレス１６１を選択する信号である。
【００５３】
診断結果出力部１８は、周辺モジュール４２が周辺バスデータ４０１に出力する診断結果を、周辺バス信号制御部１１から出力される診断結果判定タイミング信号１１４に従って判定し、その判定信号を診断通知１８１としてＣＰＵ３１に出力する。
【００５４】
データ乗せ替え部１９は、周辺バス信号発行制御部１１から出力されるデータ乗せ替えタイミング信号１１３に従って、周辺バスデータ４０１をＣＰＵバスデータ１９１に乗せ替える。データ乗せ替えタイミング信号１１３は、読み出しコマンドに対する有効な読み出しデータが周辺モジュールから出力された場合に、そのタイミングを指示する信号である。
【００５５】
図４は、図３に示したバスブリッジ制御部１の動作フローの一例を示している。本例では、特に周辺バスコマンド１４１の発行の流れについて示している。
【００５６】
まず、Ｓ１で診断情報設定部２０に設定された診断情報設定値２０１の値に基づき、周辺モジュール４２に対して診断コマンドを発行するかどうかを判定する。診断コマンドを発行する設定の場合（ＹＥＳ）にはＳ２に遷移し、発行しない設定の場合（ＮＯ）にはＳ５に遷移する。次に、Ｓ２でＣＰＵ３１が周辺モジュール４２に対してアクセスを要求しているかどうかを判定する。アクセス要求がない場合（ＹＥＳ）にはＳ３に遷移し、アクセス要求がある場合（ＮＯ）にはＳ６に遷移する。次に、Ｓ３で周辺バス使用許可が有効であるかどうかを判定する。使用許可が有効である場合（ＹＥＳ）にはＳ４に遷移し、使用許可が無効である場合（ＮＯ）にはＳ１に遷移する。
【００５７】
次に、Ｓ４で診断コマンドの発行条件が成立するため、周辺モジュールに診断コマンドを発行し、Ｓ１に遷移する。Ｓ５では、周辺モジュール４２に対するＣＰＵアクセス要求があるかどうかを判定する。アクセス要求がある場合（ＹＥＳ）にはＳ６に遷移し、アクセス要求が無い場合（ＮＯ）にはＳ１に遷移する。Ｓ６では、周辺バス使用許可が有効であるかどうかを判定する。使用許可が有効である場合（ＹＥＳ）にはＳ７に遷移し、使用許可が無効である場合（ＮＯ）にはＳ８に遷移する。Ｓ７では、ＣＰＵアクセスによる通常コマンドの発行条件が成立するため、通常コマンドを発行し、Ｓ１に遷移する。Ｓ８では、周辺バス使用許可が無効であるため、周辺バス使用要求を出力し、Ｓ６に遷移する。
【００５８】
図５は、図１に示した周辺バス制御部４１の構成の一例を示している。本例では、特にバスブリッジ制御部１や各周辺モジュール４２から出力される周辺バス使用要求に対して、周辺バス使用許可を出力する調停処理部について示している。
【００５９】
図に示すように、周辺バス制御部４１には、バスブリッジ制御部１から出力される周辺バス使用要求１１１と、第１の周辺モジュール４２−１から出力される周辺バス使用要求４２−１１と、第２の周辺モジュール４２−２から出力される周辺バス使用要求４２−２１と、第Ｎの周辺モジュール４２−Ｎから出力される周辺バス使用要求４２−Ｎ１が入力される。これらの周辺バス使用要求を調停し、いずれか１つのモジュールに対して有効な周辺バス使用許可信号を出力する。
【００６０】
周辺バス使用許可が出力されたモジュールは周辺バス４０のバスマスタとなり、周辺バス４０を使用することが可能となる。周辺バス使用許可として、バスブリッジ制御部１に対する周辺バス使用許可４１１、第１の周辺モジュール４２−１に対する周辺バス使用許可４１２、第２の周辺モジュール４２−２に対する周辺バス使用許可４１３、第Ｎの周辺モジュール４２−Ｎに対する周辺バス使用許可４１４を出力する。
【００６１】
次に、調停処理の動作内容について説明する。ここでは、各モジュールから出力される周辺バス使用要求がある場合は「１」、ない場合は「０」とする。バスブリッジ制御部１の周辺バス使用要求１１１が「１」の場合、残りの周辺バス使用要求の有無に関係なく、バスブリッジ制御部１に対する周辺バス使用許可を「１」にして、残りの周辺バス使用許可を「０」にする（図中（ａ））。
【００６２】
バスブリッジ制御部１の周辺バス使用要求１１１が「０」で、かつ第１の周辺モジュール４２−１の周辺バス使用要求４２−１１が「１」の場合、残りの周辺バス使用要求の有無に関係なく、第１の周辺モジュール４２−１に対する周辺バス使用許可４１２を「１」にして、残りの周辺バス使用許可を「０」にする（図中（ｂ））。
【００６３】
バスブリッジ制御部１と、第１の周辺モジュール４２−１の周辺バス使用要求が「０」で、かつ第２の周辺モジュール４２−２の周辺バス使用要求４２−２１が「１」の場合、残りの周辺バス使用要求の有無に関係なく、第２の周辺モジュール４２−２に対する周辺バス使用許可４１３を「１」にして、残りの周辺バス使用許可を「０」にする（図中（ｃ））。
【００６４】
バスブリッジ制御部１と、第１の周辺モジュール４２−１と、第２の周辺モジュール４２−２の周辺バス使用要求が「０」で、かつ第Ｎの周辺モジュール４２−Ｎの周辺バス使用要求４２−Ｎ１が「１」の場合、第Ｎの周辺モジュール４２−Ｎに対する周辺バス使用許可４１４を「１」にして、残りの周辺バス使用許可を「０」にする（図中（ｄ））。
【００６５】
また、バスブリッジ制御部１をデフォルトバスマスタにするため、全周辺モジュールからの周辺バス使用要求が「０」の場合は、バスブリッジ制御部１に対する周辺バス使用許可を「１」にして、残りの周辺バス使用許可を「０」にする（図中（ｅ））。
【００６６】
図６は、図１〜図５に示したデータ処理装置の動作の一例を説明するタイムチャートを示している。本例では、ＣＰＵバスクロック３３と周辺バスクロック４３のクロック比は、４：１となっている。また、診断情報設定値２０１は、診断コマンドを発行する設定となっているものとする。
【００６７】
ＣＰＵ３１は、診断によるＣＰＵバス３０のストールを回避するため、周辺モジュール４２に対して診断のためのアクセスを行わない。そのため、ＣＰＵ３１は通常のプログラムを実行するために、ＣＰＵバス３０に接続しているメモリ３２に対してアクセスを行う（ｔ０〜ｔ２）。バスブリッジ制御部１は、ＣＰＵ３１から周辺モジュール４２に対するアクセスが無く、かつ周辺バス使用許可４１１が「１」であるという条件が成立しているため、ｔ１からｔ４の期間、周辺モジュール４２に対して診断コマンドと診断アドレスを発行する。以降、上記条件が成立する場合は、順次診断コマンドと診断アドレスを発行する（ｔ５〜ｔ１２）。
【００６８】
周辺モジュール４２は、自モジュールに対する診断コマンドが発行された場合、次の周辺バスサイクルのタイミングで診断結果を周辺バスデータ４０１に出力する（ｔ５〜ｔ８）。以降、自モジュールに対して診断コマンドが発行された場合、順次診断結果を周辺バスデータ４０１に出力する（ｔ９〜ｔ１６）。周辺モジュール４２が実行する診断としては、例えば内蔵するレジスタの故障を検出するためのライト／リードチェックなどである。ここで、ｔ５〜ｔ８で発行した診断コマンドに対する診断結果がｔ９からｔ１２で出力され、その結果が故障であると判定された場合（ｔ１２）、ｔ１３からＣＰＵ３１に対し故障であることを通知するとともに、その故障内容も同時にＣＰＵ３１に通知する。
【００６９】
ここでは、周辺モジュール自身が内蔵レジスタのチェックを行い、その結果を周辺バス４０に出力する例を示したが、バスブリッジ制御部１が各周辺モジュールに内蔵されているレジスタ値をリードし、期待値と比較してその結果をＣＰＵ３１に出力するような方法でもよい。
【００７０】
図７は、図１に示した周辺モジュール４２が内蔵するレジスタの診断を行った場合などに周辺バス４０に出力する診断結果の内容の一例を示している。図に示すように、出力内容としては診断結果、故障対象、故障箇所の情報が含まれる。
【００７１】
診断結果部分は、例えば、内蔵レジスタの故障を検出するために、ライト／リードチェックを行った結果などであり、正常であれば「０」、故障（異常）であれば「１」を出力する。レジスタのライト／リードチェック方法の一例としては、例えば、診断用に退避レジスタを１つ用意しておき、診断対象レジスタの値をこの退避レジスタに一時退避しておき、対象となるレジスタのチェックを行った後に、退避しておいたレジスタ値を診断対象レジスタに書き戻すことで実現できる。
【００７２】
故障対象部分は、診断結果が「１」、すなわち内蔵レジスタが故障であると判定された場合に有効となる値であり、どのレジスタが故障しているのかを識別するためのレジスタ番号などの情報である。例えば、ある周辺モジュール内に１６種類のレジスタがある場合、０〜１５までの番号を予めレジスタに割り付けておき、故障の場合は、このレジスタ番号を故障対象として出力する。
【００７３】
故障箇所部分は、故障と判定されたレジスタのどのビットが故障しているのかを示す値であり、これも診断結果が「１」、すなわち内蔵レジスタが故障であると判定された場合に有効となる値である。例えば、レジスタの３ビット目が故障している場合には「３」を故障箇所として出力する。
【００７４】
以上説明したように、本発明の実施の形態のデータ処理装置では、バスブリッジ制御部１が周辺バス４０の空きサイクルに診断コマンドを発行することで、ＣＰＵ３１に負荷をかけること無く、かつ周辺バス４０を効率良く使用して周辺モジュール４２の診断を実施することが可能となる。
【００７５】
図８は、図１に示した診断情報設定部２０に設定する診断情報設定値２０１の一例を示している。図に示すように、診断コマンドの発行を指示する診断コマンド発行部分と、診断方法を指示する先行診断部分とで構成される。本例では、診断コマンド発行部分に「１」、先行診断部分に「１」を設定している。診断コマンド発行部分が「１」の場合、図２で説明したように、バスブリッジ制御部１は、周辺バス４０の空きサイクルに周辺モジュール４２に対して診断コマンドを発行し、「０」の場合は診断コマンドを発行しない。また、先行診断部分は診断コマンド発行が「１」、つまり診断コマンドを発行する場合にのみ有効となる部分である。よって、診断コマンド発行部分が「０」の場合は、先行診断部分は「１」または「０」のどちらでも良い。
【００７６】
次に、各設定値における動作について説明する。診断コマンド発行部分が「１」で、かつ先行診断部分が「１」の場合、バスブリッジ制御部１は、周辺バス４０の空きサイクルに周辺モジュール４２に対して２種類の診断コマンドを発行する。１つ目のコマンドは、周辺モジュール４２に対し、診断開始を指示するコマンドである。この診断実行開始コマンドを受け付けた周辺モジュール４２は、例えば内蔵レジスタのライト／リードチェックといった診断を開始する。診断が終了した場合、内部に診断結果を保持しておき、すぐに診断結果を周辺バス４０に出力しない。２つ目のコマンドは、１つ目の実行診断開始コマンドによって実行された診断の結果を要求するコマンドである。この診断結果要求コマンドを受けた周辺モジュール４２は、保持している診断結果を周辺バス４０に出力する。バスブリッジ制御部１は、出力された診断結果をＣＰＵ３１に出力する。
【００７７】
診断コマンド発行部分が「１」で、かつ先行診断部分が「０」の場合は、通常の診断となり、図２で説明したものと同様の動作となる。この先行診断方式を行うことで、診断処理に時間がかかる周辺モジュール４２によって、周辺バス４０を長時間占有してしまうという問題を回避することが可能となる。
【００７８】
図９は、図８に示した診断情報設定値２０１の場合において、バスブリッジ制御部１の動作の一例を説明するタイムチャートを示している。本例では、ＣＰＵバスクロック３３と周辺バスクロック４３のクロック比は、２：１となっている。また、診断情報設定値２０１は、診断コマンド発行が「１」、先行診断が「１」となっているものとする。
【００７９】
ＣＰＵ３１は、診断によるＣＰＵバス３０のストールを回避するため、周辺モジュール４２に対して診断のためのアクセスを行わない。そのため、ＣＰＵ３１は通常のプログラムを実行するために、ＣＰＵバス３０に接続しているメモリ３２に対してアクセスを行う（ｔ０〜ｔ２）。バスブリッジ制御部１は、ＣＰＵ３１から周辺モジュール４２に対するアクセスが無く、かつ周辺バス使用許可４１１が「１」であるため、診断実行開始コマンドを周辺モジュール４２に対して発行する（ｔ１〜ｔ６）。周辺モジュール４２は、自モジュールに対する診断実行開始コマンドが発行された場合、内蔵レジスタなどの診断を開始し、診断結果を内部に保持しておく。
【００８０】
その後、バスブリッジ制御部１は、診断実行開始コマンドによる診断が終了した頃に、診断結果の出力を要求する診断結果要求コマンドを発行する（ｔ７〜ｔ１２）。周辺モジュール４２は、自モジュールに対する診断結果要求コマンドが発行された場合、診断結果を周辺バスデータ４０１に出力する（ｔ９〜ｔ１４）。ここで、ｔ９に発行した診断結果要求コマンドに対する診断結果が、ｔ１２で故障であると判定された場合、ｔ１３でＣＰＵ３１に対し故障であることを通知するとともに、その故障内容も同時にＣＰＵ３１に通知する。
【００８１】
ここでは、２種類の診断用コマンドを発行する例を示したが、例えば、周辺モジュール４２に診断専用レジスタを内蔵し、そのレジスタに診断開始ビットを設け、バスブリッジ制御部１がその診断開始ビットに「１」を書き込むことで、周辺モジュール４２が診断を開始し、その結果を診断専用レジスタ内の結果ビットに書き込み、その後、診断結果が書き込まれた診断専用レジスタを読み出して診断結果を確認する方法でもよい。
【００８２】
このように、先行診断方式を行うことで、診断実行に必要な時間を十分に確保できるため、診断結果が出るまでに時間がかかり、その間、周辺バス４０を占有してしまうという問題を回避することができる。
【００８３】
図１０は、図８及び図９に示して説明した先行診断方式を行う場合において、周辺モジュール４２に診断専用のレジスタを内蔵する場合のレジスタ構成の一例を示している。図に示すように、診断専用レジスタには、診断開始、診断終了、診断結果、故障対象、故障箇所の情報が含まれる。この診断専用レジスタは、外部から読み出しおよび書き込みができる構成となっており、診断開始部分は外部からリードおよびライトが可能、その他の診断終了部分、診断結果部分、故障対象部分、故障箇所部分については外部からリードのみ可能となっている。
【００８４】
診断開始部分は、周辺モジュール４２に対して診断開始を指示するための部分であり、この部分に「１」が書き込まれると、周辺モジュール４２は内蔵レジスタの診断を開始する。実際に診断が開始されると、周辺モジュール自身で診断開始部分を「０」にクリアする。つまり、診断開始部分に「１」を書き込んだ後に、この部分を読み出すことで、現在診断実行中なのか、まだ診断を開始していないのかを判定できる。
【００８５】
診断終了部分は、診断処理が終了したことを示す部分であり、内蔵レジスタ等の診断処理が終了した場合に、周辺モジュール自身で「１」を書き込む。
【００８６】
診断結果部分は、診断の結果を示す部分であり、診断が終了した後に周辺モジュール自身が診断結果を書き込む。診断結果が正常であれば「０」を、故障であれば「１」を診断結果部分に書き込む。
【００８７】
故障対象部分は、診断結果が「１」、すなわち故障であると判定された場合に有効となる値であり、どのレジスタが故障しているのかを識別するためのレジスタ番号などの情報が周辺モジュール自身によって書き込まれる。例えば、ある周辺モジュール内に１６種類のレジスタを内蔵している場合、０〜１５までの番号を予めレジスタに割り付けておき、故障の場合は、このレジスタ番号を故障対象部分に書き込む。
【００８８】
故障箇所部分は、故障対象部分で故障と示されたレジスタのどのビットが故障しているのかを示す値であり、これも診断結果が「１」、すなわち故障であると判定された場合に有効となる値である。例えば、レジスタの３ビット目が故障している場合は、周辺モジュール自身が故障箇所部分に「３」を書き込む。
【００８９】
次に、この診断専用レジスタを用いた場合の診断手順について説明する。まずバスブリッジ制御部１は、周辺モジュール４２に内蔵されている診断専用レジスタの診断開始部分に「１」を書き込んで診断開始を指示し、その後、診断が終了した頃に、この診断専用レジスタを読み出す。読み出した値に従って、バスブリッジ制御部１が周辺モジュール４２の故障を判定し、その内容をＣＰＵ３１に通知する。
【００９０】
読み出した診断専用レジスタの値において、診断終了部分が「１」である場合は診断処理が終了したものと判断し、次に診断結果部分を参照する。診断終了部分が「０」の場合は、診断処理がまだ終了していないものと判断し、診断結果や診断対象、診断箇所の部分は参照しない。診断終了部分が「１」で、かつ診断結果部分が「０」であれば正常と判断し、診断対象や診断箇所の部分は参照しない。診断終了部分が「１」で、かつ診断結果部分が「１」であれば、故障であると判断し、ＣＰＵ３１に故障であることを通知するとともに、診断対象部分および診断箇所部分の情報もあわせてＣＰＵ３１に出力する。ＣＰＵ３１は、この故障通知を受けて、故障発生時の動作に移行する。
【００９１】
以上説明したように、先行診断方式を行う場合には、周辺モジュール４２に診断専用レジスタを設けることで、バスブリッジ制御部１は診断専用レジスタへの書き込みまたは読み出しを行うことで容易に周辺モジュール４２の診断を実施できる。
【００９２】
図１１は、図１に示した診断情報設定部２０に設定する診断情報設定値２０１の一例を示している。図に示すように、診断対象となる周辺モジュール４２を指定する周辺モジュール名部分と、診断コマンドの発行を指示する診断コマンド発行部分と、診断方法を設定する先行診断部分から構成される。
【００９３】
診断コマンド発行部分と先行診断部分については、図８で説明したものと同様である。本例では、第１の周辺モジュールに対する診断コマンド発行部分に「１」、先行診断部分に「１」、第２の周辺モジュールに対する診断コマンド発行部分に「１」、先行診断部分に「０」、第Ｎの周辺モジュールに対する診断コマンド発行部分に「０」、先行診断部分に「０」を設定している。各設定における動作についても、診断対象となる周辺モジュールの指定を行う点以外は、図８で説明したものと同様である。
【００９４】
この例では、周辺モジュール名部分の他に、診断コマンド発行部分と先行診断部分も設定する構成を示したが、周辺モジュール名部分と診断コマンド発行部分のみの構成でも良い。この場合、診断対象となる周辺モジュール名の指定を行う点以外は、図２で説明したものと同様である。
【００９５】
図１２は、図１に示したデータ処理装置を内蔵した多種の電子制御ユニット（ＥＣＵ：Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）を自動車に搭載した場合の一例を示している。現在の自動車には、ＥＣＵと呼ばれる自動車制御用のマイコンが多数搭載されており、多いものでは５０個以上も搭載されている。本例では、多数のＥＣＵの中から特にＸ−ｂｙ−Ｗｉｒｅの導入により高い信頼性が要求されるＥＣＵについて説明する。
【００９６】
図に示すように、自動車５０の中に搭載されるＥＣＵとしては、ステアリング制御ＥＣＵ５１、ブレーキ制御ＥＣＵ５２、エンジン制御ＥＣＵ５３がある。ステアリング制御ＥＣＵ５１は、ステアリング５０１の操舵角をセンサ５０３で電気信号に変換して入力し、その入力値に応じてモータ５０４を動かし、進行方向を変える制御を行う。ブレーキ制御ＥＣＵ５２は、ブレーキペダル５０２の踏み込み度をセンサ５０５で電気信号に変換して入力し、その入力値に応じてモータ５０６，５０７，５０８，５０９を動かし、各車輪にブレーキをかける。エンジン制御ＥＣＵ５３は、エンジンの点火時期制御などを行い、その動力を駆動輪に伝達する。
【００９７】
本例では、ステアリング制御ＥＣＵ、ブレーキ制御ＥＣＵ、エンジン制御ＥＣＵについて説明したが、これ以外の車載ＥＣＵに本発明を適用することも可能である。
【００９８】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【００９９】
本発明は、高い信頼性が要求されるマイコン全般、さらにこのマイコンを内蔵した電子制御ユニット、この電子制御ユニットを搭載した自動車などに適用できる。
【図面の簡単な説明】
【０１００】
【図１】本発明の一実施の形態におけるデータ処理装置の全体構成の一例を示す図である。
【図２】図１に示した診断情報設定部に設定する診断情報設定値の一例を示す図である。
【図３】図１に示したバスブリッジ制御部の構成の一例を示す図である。
【図４】図３に示したバスブリッジ制御部の動作フローの一例を示す図である。
【図５】図１に示した周辺バス制御部の構成に一例を示す図である。
【図６】図１〜図５に示したデータ処理装置の動作の一例を示すタイムチャートである。
【図７】図１に示した周辺モジュールが出力する診断結果の内容の一例を示す図である。
【図８】図１に示した診断情報設定部に設定される診断情報設定値の一例を示す図である。
【図９】図８に示した診断情報設定値におけるバスブリッジ制御部の動作の一例を示すタイムチャートである。
【図１０】図８及び図９に示した先行診断方式における、周辺モジュールに内蔵する診断専用レジスタのレジスタ構成の一例を示す図である。
【図１１】図１に示した診断情報設定部に設定する診断情報設定値の一例を示す図である。
【図１２】図１に示したデータ処理装置を電子制御ユニットに内蔵して自動車に搭載した場合の一例を示す図である。
【図１３】本発明の前提となる従来技術におけるデータ処理装置の全体構成の一例を示す図である。
【図１４】図１２に示したバスブリッジ制御部の構成の一例を示す図である。
【図１５】図１２及び図１３に示したデータ処理装置の動作の一例を示すタイムチャートである。
【符号の説明】
【０１０１】
１…バスブリッジ制御部、１１…周辺バス信号発行制御部、１２…通常コマンド生成部、１３…診断コマンド生成部、１４…周辺バスコマンド選択部、１５…通常アドレス生成部、１６…診断アドレス生成部、１７…周辺バスアドレス選択部、１８…診断結果出力部、１９…データ乗せ替え部、２０…診断情報設定部、３０…ＣＰＵバス、３１…ＣＰＵ、３２…メモリ、４０…周辺バス、４１…周辺バス制御部、４２…周辺モジュール、５０…自動車、５１…ステアリング制御ＥＣＵ、５２…ブレーキ制御ＥＣＵ、５３…エンジン制御ＥＣＵ、５０１…ステアリング、５０２…ブレーキペダル、５０３，５０５…センサ、５０４，５０６，５０７，５０８，５０９…モータ。
【図１】
0004422076.tif 000002
【図２】
0004422076.tif 000003
【図３】
0004422076.tif 000004
【図４】
0004422076.tif 000005
【図５】
0004422076.tif 000006
【図６】
0004422076.tif 000007
【図７】
0004422076.tif 000008
【図８】
0004422076.tif 000009
【図９】
0004422076.tif 000010
【図１０】
0004422076.tif 000011
【図１１】
0004422076.tif 000012
【図１２】
0004422076.tif 000013
【図１３】
0004422076.tif 000014
【図１４】
0004422076.tif 000015
【図１５】
0004422076.tif 000016