(57)【特許請求の範囲】
【請求項１】
ＣＰＵと、ＲＯＭと、前記ＣＰＵと前記ＲＯＭとを接続しアドレスを伝送する４つ以上のバスラインからなるアドレスバスと、を備え、
前記ＣＰＵは、複数のアドレスバス検査用アドレスによって指定されるＲＯＭ領域から読み出した値から計算した判定値と予め算出されたアドレスバス検査用正解値とを比較して一致しない場合、前記アドレスバスが故障していると判定し、
前記複数のアドレスバス検査用アドレスは、４つ以上のバスラインに対応する４ビット以上の値であって、２ビット以上の０の値と２ビット以上の１の値とを有する値を含み、検査対象のバスラインに該当するビットと検査対象以外のバスラインに該当するビットとが互いに異なる値を維持しているか否かを判定することにより、検査対象のバスラインを含む複数のバスライン間の短絡故障を同時に検出可能であり、
且つ、前記複数のアドレスバス検査用アドレスとして、
検査対象のバスラインに該当するビットの値が１となる値を用いて、前記アドレスバスのバスラインに該当するビットの値が本来１であるべきところ０に固着する故障である０固着故障を検出可能であり、
検査対象のバスラインに該当するビットの値が０となる値を用いて、前記アドレスバスのバスラインに該当するビットの値が本来０であるべきところ１に固着する故障である１固着故障を検出可能であり、
前記短絡故障の検出に用いる前記複数のアドレスバス検査用アドレスは、Ｎ個のバスラインに対応するＮビットの値であって、（Ｎ／２）ビットの０の値と（Ｎ／２）ビットの１の値とを有する値を（ｌｏｇ２Ｎ）個とし、前記短絡故障の検出に用いる前記複数のアドレスバス検査用アドレスの数を最小限にすることを特徴とする電子装置。
【請求項２】
ＣＰＵと、ＲＯＭと、前記ＣＰＵと前記ＲＯＭとを接続しデータを伝送する４つ以上のバスラインからなるデータバスと、を備え、
前記ＣＰＵは、前記ＲＯＭのＲＯＭ領域から読み出した複数のデータバス検査値から計算した判定値と予め算出されたデータバス検査用正解値とを比較して一致しない場合、前記データバスが故障していると判定し、
前記複数のデータバス検査値は、４つ以上のバスラインに対応する４ビット以上の値であって、２ビット以上の０の値と２ビット以上の１の値とを有する値を含み、検査対象のバスラインに該当するビットと検査対象以外のバスラインに該当するビットとが互いに異なる値を維持しているか否かを判定することにより、検査対象のバスラインを含む複数のバスライン間の短絡故障を同時に検出可能であり、
且つ、前記複数のデータバス検査値として、
検査対象のバスラインに該当するビットの値が１となる値を用いて、前記データバスのバスラインに該当するビットの値が本来１であるべきところ０に固着する故障である０固着故障を検出可能であり、
検査対象のバスラインに該当するビットの値が０となる値を用いて、前記データバスのバスラインに該当するビットの値が本来０であるべきところ１に固着する故障である１固着故障を検出可能であり、
前記短絡故障の検出に用いる前記複数のデータバス検査値は、Ｎ個のバスラインに対応するＮビットの値であって、（Ｎ／２）ビットの０の値と（Ｎ／２）ビットの１の値とを有する値を（ｌｏｇ２Ｎ）個とし、前記短絡故障の検出に用いる前記複数のデータバス検査値の数を最小限にすることを特徴とする電子装置。
【請求項３】
請求項１または２に記載の電子装置において、
前記０固着故障及び前記１固着故障の検出に用いる前記複数のアドレスバス検査用アドレスまたは前記複数のデータバス検査値は、
前記短絡故障の検出に用いる前記複数のアドレスバス検査用アドレスまたは前記複数のデータバス検査値のうちいずれか１つの検査値、及び、その検査値の各ビットの０の値を１に、１の値を０に反転させた値の１つの検査値であることを特徴とする電子装置。
【請求項４】
請求項１〜３のいずれか一項に記載の電子装置と、
前記電子装置によって駆動されるモータと、
前記モータの回転をステアリングシャフトに伝達する動力伝達手段と、を備え、
操舵トルクをアシストすることを特徴とする電動パワーステアリング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵ（中央演算処理装置）と、アドレスバスおよびデータバスを経由してＣＰＵと接続されるメモリとを備えた電子装置、及び、これを用いた電動パワーステアリング装置に関する。
【背景技術】
【０００２】
従来、ＣＰＵと、メモリと、アドレスバスおよびデータバスとを備え、アドレスバスおよびデータバスの地絡、天絡、短絡等の故障を検出することができる電子装置が知られている。例えば特許文献１に開示された電子装置は、「全ビットのうちいずれか１ビットのみが１または０である値」を検査値として用いる。アドレスバスの故障検出については、「全ビットのうちいずれか１ビットのみが１または０であるアドレス」によって指定されるＲＯＭ領域から値を読み出してチェックサムを算出し、真のチェックサムと比較して故障か否かを判定する。また、データバスの故障検出については、「全ビットのうちいずれか１ビットのみが１または０である値」をＲＡＭに書き込み、読み出し、読み出したデータを書き込んだデータと比較して故障か否かを判定する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２１０２４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
検査値のビット数は、検査対象となるアドレスバスまたはデータバスのバスラインの数に対応する。例えばバスラインの数が４であれば４ビット以上の検査値を用いる。
ここで、バスラインの「地絡故障」とは本来１であるべきビットの値が０に固着する故障をいい、バスラインの「天絡故障」とは本来０であるべきビットの値が１に固着する故障をいう。また、バスラインの「短絡故障」とは、検査対象のバスラインに該当するビットの値が検査対象以外のバスラインに該当するビットの値と同じになる故障、言い換えれば、互いに異なる値を維持することができなくなる故障をいう。
【０００５】
特許文献１に記載の電子装置では、検出対象とするアドレスバスまたはデータバスが４ビットとすると、天絡故障および地絡故障については、例えば「０００１」および「１１１０」の２つの検査値を用いて、各ビットの値が１に固着しないこと、及び、０に固着しないことを判定可能である。しかし、短絡故障については、例えば「０００１」、「００１０」、「０１００」、「１０００」の４つの検査値を用いなければ判定することができない。
このように、短絡故障を検出するためにはバスラインの数と同数以上の検査値を用い、故障検出処理を実行する必要がある。例えば３２ビットのアドレスバスを検査するには最低３２個の値の読み出しが必要であり、３２ビットのデータバスを検査するには最低３２回の書き込みと読み出しを行わなければならない。同様に、１２８ビットのバスであれば１２８回の検査が必要となる。すなわち、検査数がビット数に比例して増大するため、電子装置の処理負荷が過大となる。
【０００６】
また、特許文献１に記載の電子装置では、アドレスバスの故障検出にチェックサムを用いる。これは、上述のように検査数が増大した場合、個々の値に代えて何らかの合計値を検査する方が処理負荷を軽減できるというメリットによるものである。しかしながら、チェックサムを用いる方法では、ある検査アドレスから取得した値と他のアドレスから取得した値の同一ビット値が入れ替わった値となる場合には、故障を判定することができないという問題がある。例えば、アドレス「０００１」から取得できる値が「００１０１０１０」であり、アドレス「００１０」から取得できる値が「１１０１０１０１」であったとする。このとき、アドレスバスの故障により、アドレス「０００１」から値を取得した際に「００１０１０００」となり、またアドレス「００１０」から値を取得した際に「１１０１０１１１」となる場合（２桁目の第１ビットの「０」と「１」とが入れ替わった場合）には、故障していない場合も故障した場合もチェックサム値は同一となり故障検出できない。
【０００７】
本発明は、このような点に鑑みて創作されたものであり、その目的は、アドレスバスおよびデータバスの故障を検出する電子装置において、故障検出に必要な検査値の数を低減することで、故障検出に係る処理負荷を低減し処理速度を向上する電子装置を提供することにある。
【課題を解決するための手段】
【０００８】
請求項１に記載の電子装置は、ＣＰＵと、ＲＯＭと、ＣＰＵとＲＯＭとを接続しアドレスを伝送する４つ以上のバスラインからなるアドレスバスとを備える。
ＣＰＵは、複数のアドレスバス検査用アドレスによって指定されるＲＯＭ領域から読み出した値から計算した判定値と予め算出されたアドレスバス検査用正解値とを比較して一致しない場合、アドレスバスが故障していると判定する。
複数のアドレスバス検査用アドレスは、４つ以上のバスラインに対応する４ビット以上の値であって、２ビット以上の０の値と２ビット以上の１の値とを有する値を含み、検査対象のバスラインに該当するビットと検査対象以外のバスラインに該当するビットとが互いに異なる値を維持しているか否かを判定することにより、検査対象のバスラインを含む複数のバスライン間の短絡故障を同時に検出可能である。
また、この電子装置は、複数のアドレスバス検査用アドレスとして、「検査対象のバスラインに該当するビットの値が１となる値」を用いて、「アドレスバスのバスラインに該当するビットの値が本来１であるべきところ０に固着する故障」である「０固着故障」を検出可能であり、「検査対象のバスラインに該当するビットの値が０となる値」を用いて、「アドレスバスのバスラインに該当するビットの値が本来０であるべきところ１に固着する故障」である「１固着故障」を検出可能である。
さらに、短絡故障の検出に用いる複数のアドレスバス検査用アドレスは、Ｎ個のバスラインに対応するＮビットの値であって、（Ｎ／２）ビットの０の値と（Ｎ／２）ビットの１の値とを有する値を（ｌｏｇ２Ｎ）個とし、短絡故障の検出に用いる複数のアドレスバス検査用アドレスの数を最小限にする。
【０００９】
請求項２に記載の電子装置は、ＣＰＵと、ＲＯＭと、ＣＰＵとＲＯＭとを接続しデータを伝送する４つ以上のバスラインからなるデータバスとを備える。
ＣＰＵは、ＲＯＭのＲＯＭ領域から読み出した複数のデータバス検査値から計算した判定値と予め算出されたデータバス検査用正解値とを比較して一致しない場合、データバスが故障していると判定する。
複数のデータバス検査値は、４つ以上のバスラインに対応する４ビット以上の値であって、２ビット以上の０の値と２ビット以上の１の値とを有する値を含み、検査対象のバスラインに該当するビットと検査対象以外のバスラインに該当するビットとが互いに異なる値を維持しているか否かを判定することにより、検査対象のバスラインを含む複数のバスライン間の短絡故障を同時に検出可能である。
また、この電子装置は、複数のデータバス検査値として、「検査対象のバスラインに該当するビットの値が１となる値」を用いて、「データバスのバスラインに該当するビットの値が本来１であるべきところ０に固着する故障」である「０固着故障」を検出可能であり、「検査対象のバスラインに該当するビットの値が０となる値」を用いて、「データバスのバスラインに該当するビットの値が本来０であるべきところ１に固着する故障」である「１固着故障」を検出可能である。
さらに、短絡故障の検出に用いる複数のデータバス検査値は、Ｎ個のバスラインに対応するＮビットの値であって、（Ｎ／２）ビットの０の値と（Ｎ／２）ビットの１の値とを有する値を（ｌｏｇ２Ｎ）個とし、短絡故障の検出に用いる複数のデータバス検査値の数を最小限にする。
【００１１】
請求項１に係る発明はアドレスバスの故障を検出し、請求項２に係る発明はデータバスの故障を検出するものであり、対応する技術的特徴を有する。
アドレスバスの故障は、ＲＯＭ領域から読み出した値から計算した判定値と予め算出されたアドレスバス検査用正解値とを比較することにより検出可能である。
データバスの故障は、ＲＯＭ領域から読み出した値から計算した判定値と予め算出されたデータバス検査用正解値とを比較することにより検出可能である。
【００１２】
また、請求項１、２に係る発明において、「複数のアドレスバス検査用アドレスまた複数のデータバス検査値（以下、「複数の検査値」という）」は、４ビット以上の値であって、２ビット以上の０の値と２ビット以上の１の値とを有する値を含む。例えば４ビットの場合、複数の検査値は、００１１、０１０１、０１１０等の値を含む。これは、「全ビットのうちいずれか１ビットのみが１または０である値」を検査値とした従来技術とは異なる特徴である。
【００１３】
これにより、複数のバスライン間の短絡故障を同時に検出可能となる。ここで、短絡故障とは、検査対象のバスラインに該当するビットと検査対象以外のバスラインに該当するビットとが互いに異なる値を維持することができなくなる故障をいう。短絡故障を検出するための検査値は、検査対象となるバスラインに該当するビットの値を他のバスラインに該当するビットの値と異なる値とすることが要件となる。すなわち、検査対象のビットの値が０で他のビットの値が１、または、検査対象のビットの値が１で他のビットの値が０となる組合せを全ビットについて構築する必要がある。
【００１４】
従来技術によると、例えば「０００１」という検査値を用い、検査対象が最下位ビット（第０ビット）の場合は、値が１である第０ビットと、値が０である２桁目の第１ビット、３桁目の第２ビットまたは４桁目の第３ビットとの間の短絡故障を同時に検出可能である。しかし、検査対象が第１、第２、第３ビットのいずれかの場合は、そのビットと第０ビットとの間の１とおりの短絡故障しか同時に検出することができない。
【００１５】
それに対し、本発明の検査値は、２ビット以上の０の値と２ビット以上の１の値とを有するため、いずれのビットを検査対象とする場合でも、そのビットの値と異なる値を有する他の２つ以上のビットとの間での短絡故障を同時に検出することができる。
これにより、従来技術に対して検査値の数を低減することができる。その結果、故障検出に係る電子装置の処理負荷を低減し、電子装置の処理速度を向上することができる。
【００１６】
また従来技術では、検査値の増大による電子装置の処理負荷を軽減するため、読み出し値に基づいてチェックサムを算出する方式を取らざるを得なかった。そのため、異なるアドレスから取得した値の同一ビット値が入れ替わった値となる場合には故障を検出することができなかった。それに対し、本発明では、検査値の数を低減し電子装置の処理負荷を低減することができる。したがって、チェックサムのような信頼性の低い手法に拠ることなく、読み出し値をそのまま正解値と比較したり生成多項式によりＣＲＣを算出したりすることが現実的なメモリ容量の範囲で可能となる。よって、より信頼性の高い処理を実行することができる。
【００１７】
請求項１、２に記載の発明によると、短絡故障の検出に用いる複数の検査値は、Ｎ個のバスラインに対応するＮビットの値である。そして、短絡故障の検出に用いる複数の検査値は、（Ｎ／２）ビットの０の値と（Ｎ／２）ビットの１の値とを有する値を（ｌｏｇ２Ｎ）個とし、検査値の数を最小限にする。なお、（ｌｏｇ２Ｎ）は２を底とするＮの対数である。
【００１８】
検査値が８ビットの場合を例に取ると、「（Ｎ／２）ビットの０の値と（Ｎ／２）ビットの１の値とを有する値」とは、００００１１１１、０１０１０１０１のように、４個の０の値と４個の１の値とを有する値をいう。これらの値を用いることで、（Ｎ／２）とおりのバスライン間の短絡故障を同時に検出することができる。
すなわち、請求項１、２により特定される検査値は、この場合１の値を４個有する値に限定される。これにより、検査対象のビット数が多くなった場合、効率よく複数のバスライン間の短絡故障を同時に検出することができる。
【００１９】
さらに、請求項１、２に記載の発明は、短絡故障の検出に用いる複数の検査値の数を最小限にすることを目的とする。ここで、短絡判定の組合せの数は、全ビットから２つのビットを選ぶ組合せの数であり、全ビット数をＮビットとすれば、複数の検査値がＮＣ２とおりの組合せを構築する必要がある。検査対象ビット数が４ビットの場合、４個から２個を選ぶ組合せの数（４Ｃ２）に相当する６とおりについて短絡判定することになる。
【００２０】
例えば「００１１」を検査値に用いると、第０ビットと第２ビット、第０ビットと第３ビット、第１ビットと第２ビット、第１ビットと第３ビットとの間の４とおりについて、短絡判定することができる。さらに、「０１０１」を検査値に用いると、「００１１」によっては判定できない第０ビットと第１ビット、第２ビットと第３ビットとの間の２とおりについて、短絡判定することができる。すなわち、検査値が４ビットの場合、２個の０の値と２個の１の値とを有する検査値を（ｌｏｇ2４）＝２個用いることで６とおりの短絡判定をすることができる。
【００２１】
同様に、検査値が８ビットの場合は、４個の０の値と４個の１の値とを有する検査値を（ｌｏｇ2８）＝３個用い、検査値が１６ビットの場合は、８個の０の値と８個の１の値とを有する検査値を（ｌｏｇ2１６）＝４個用いることで短絡判定することができる。
【００２２】
従来技術によると、短絡故障の検出のためにビット数と同数以上の検査値が必要であった。それに対し、本発明では、「（Ｎ／２）ビットの０の値と（Ｎ／２）ビットの１の値とを有する」検査値を含むことにより、短絡故障の検出に必要な検査値の数を低減することができる。さらに、上記の要件を満たす検査値を（ｌｏｇ２Ｎ）個とすることにより、短絡故障の検出に必要な検査値の数を最小限にすることができる。
【００２３】
一方、０固着故障及び１固着故障の検出に関しては、検査値が４ビットの場合、例えば、「１１１１」を用いて全ビットの０固着故障を検出することができ、「００００」を用いて全ビットの１固着故障を検出することができる。０固着故障を検出することにより、バスラインの地絡故障、または、断線したとき該当するビットの値が０となる場合の断線故障を検出することができる。また、１固着故障を検出することにより、バスラインの天絡故障、または、断線したとき該当するビットの値が１となる場合の断線故障を検出することができる。
【００２４】
また、「１１００」と「００１１」の２つの検査値を用いて全ビットの０固着故障および１固着故障を検出することができる。この場合、請求項１、２に係る検査値の要件を満たし、各ビットについて短絡故障と０固着故障、あるいは、短絡故障と１固着故障とを同時に検出することができるため、総合的に検査値の数を低減することができる。
【００２５】
請求項３に記載の電子装置では、０固着故障及び前記１固着故障の検出に用いる複数のアドレスバス検査用アドレスまたは複数のデータバス検査値は、「短絡故障の検出に用いる複数のアドレスバス検査用アドレスまたは複数のデータバス検査値のうちいずれか１つの検査値」、及び、「その検査値の各ビットの０の値を１に、１の値を０に反転させた値の１つの検査値」である。
【００２７】
請求項４に記載の発明は、請求項１〜３に記載の電子装置と、電子装置によって駆動されるモータと、モータの回転をステアリングシャフトに伝達する動力伝達手段とを備え、操舵トルクをアシストする電動パワーステアリング装置に係る発明である。
電動パワーステアリング装置は、安全性の面から、故障を早期に検出し迅速かつ的確な処理を実行することが特に要求されるため、本発明の電子装置による処理速度を向上する効果が有効に発揮される。
【図面の簡単な説明】
【００２８】
【図１】本発明の一実施形態による電子装置を適用した電動パワーステアリング装置の概略構成図。
【図２】本発明の一実施形態による電子装置のシステム図。
【図３】本発明の一実施形態によるアドレスバス異常検出フローチャート。
【図４】本発明の一実施形態によるデータバス異常検出フローチャート。
【図５】（ａ）検査対象ビットが２ビットのときの検査値の参考例を示す図、（ｂ）検査対象ビットが４ビットのときの検査値の例を示す図、（ｃ）検査対象ビットが８ビットのときの検査値の例を示す図。
【図６】本発明の一実施形態によるＲＯＭ領域を示す模式図。
【図７】検査対象ビットが１６ビットのときの検査値の例を示す図。
【図８】検査対象ビットが３２ビットのときの検査値の例を示す図。
【図９】（ａ）検査対象ビットが４ビットのときの検査値の別の例を示す図、（ｂ）検査対象ビットが８ビットのときの検査値の別の例を示す図。
【発明を実施するための形態】
【００２９】
自動車等のハンドル操作をアシストするための電動パワーステアリング装置に本発明の電子装置（以下「ＥＣＵ」という）を適用した実施形態を図面に基づいて説明する。
（一実施形態）
図１は、電動パワーステアリング装置を備えたステアリングシステムの全体構成を示す。ステアリングシステム９０に備えられる電動パワーステアリング装置１は、ハンドル９１に接続されたステアリングシャフト９２に操舵トルクを検出するためのトルクセンサ９４を設置している。
ステアリングシャフト９２の先端にはピニオンギア９６が設けられており、ピニオンギア９６はラック軸９７に噛み合っている。ラック軸９７の両端には、タイロッド等を介して一対の車輪９８が回転可能に連結されている。
【００３０】
これにより、運転者がハンドル９１を回転させると、ハンドル９１に接続されたステアリングシャフト９２が回転し、ステアリングシャフト９２の回転運動は、ピニオンギア９６によってラック軸９７の直線運動に変換され、ラック軸９７の直線運動変位に応じた角度について一対の車輪９８が操舵される。
【００３１】
電動パワーステアリング装置１は、操舵アシストトルクを発生するモータ８０、モータ８０の回転を減速してステアリングシャフト９２に伝える「動力伝達手段」としての減速ギア８９、及び、モータ駆動装置２を備える。モータ８０は３相ブラシレスモータであり、減速ギア８９を正逆回転させる。モータ駆動装置２は、ＥＣＵ１０を備える。モータ駆動装置２は、また、モータ８０の回転角を検出する回転角センサ８５、上述のトルクセンサ９４、車速を検出する車速センサ９５を含む。
この構成により、電動パワーステアリング装置１は、ハンドル９１の操舵を補助するための操舵アシストトルクを発生し、ステアリングシャフト９２に伝達する。
【００３２】
図２にＥＣＵのシステム概略図を示す。ＥＣＵ１０は、マイクロコンピュータ（以下「マイコン」という）１１、入力回路１６および出力回路１７を備えている。
マイコン１１は、ＣＰＵ（中央演算処理装置）１２、ＲＯＭ１３、ＲＡＭ１４およびＩ／Ｏ１５を備えている。ＣＰＵ１２は、ＲＯＭ１３から読み出した値と正解値との比較などの演算を実行する。ＲＯＭ１３内部のＲＯＭ領域１３ａは、アドレスバス検査用正解値Ｖｔを格納する。ＲＡＭ１４内部のデータバス検査用領域１４ｄは、任意のアドレスに配置されたＲＡＭ領域である。データバス２２がＮビットの場合、データバス検査用領域１４ｄは、最低（Ｎ／８）バイトの領域である。
【００３３】
Ｉ／Ｏ１５は、入力回路１６および出力回路１７との間で信号をやり取りする。
入力回路１６は、マイコン１１の制御の条件とするための各種センサからの信号を入力する。出力回路１７は、マイコン１１の制御に応じてアクチュエータを駆動する。
本実施形態では、入力回路１６は、上述の回転角センサ８５、トルクセンサ９４および車速センサ９５からの信号を入力し、出力回路１７は、マイコン１１の制御に応じてモータ８０を駆動する。
【００３４】
アドレスバス２１は、ＣＰＵ１２とＲＯＭ１３、及び、ＣＰＵ１２とＲＡＭ１４とを接続し、書き込みおよび読み込みアドレスを指定する。
データバス２２は、ＣＰＵ１２とＲＯＭ１３、及び、ＣＰＵ１２とＲＡＭ１４とを接続し、書き込みおよび読み込みデータを指定または取得する。
アドレスバス２１、データバス２２は、いずれも複数のバスラインから構成される。バスラインの数は、一般に２n（４、８、１６、３２・・・）であり、伝送されるアドレスまたはデータのビット数に対応する。
【００３５】
次に、一実施形態のＥＣＵ１０においてＣＰＵ１２が実行する処理について図３、図４のフローチャートを参照して説明する。以下のフローチャートの説明で、記号Ｓは「ステップ」を示す。
【００３６】
図３は、アドレスバス２１の故障を検出するフローチャートである。
Ｓ１１では、アドレスバス検査用アドレスＡｄによって指定されるＲＯＭ領域１３ａから値を読み出す。Ｓ１２では、読み出した値から判定値Ｖｊを計算する。例えば、チェックサムを計算したり、生成多項式を用いてＣＲＣを計算したりする。あるいは、読み出した値に１を乗じることで読み出した値そのものを判定値Ｖｊとしてもよい。
なお、チェックサムは、異なるアドレスから取得した値の同一ビット値が入れ替わった値となる故障モードがシステムにとって問題とならない場合に使用することが好ましい。
【００３７】
Ｓ１３では、判定値Ｖｊと予め計算されたアドレスバス検査用正解値Ｖｔとを比較し、一致しているか否かを判断する。ＹＥＳの場合、Ｓ１４にてアドレスバス２１が正常と判定し、ＮＯの場合、Ｓ１５にてアドレスバス２１が故障していると判定する。
アドレスバス検査用正解値Ｖｔは、アドレスバス２１の故障検出に必要十分なＲＯＭ値から求めた正解値である。なお、正解値Ｖｔは、アドレスバス２１の故障検出に必要最低限で足り、全ＲＯＭ領域について用意される必要はない。
【００３８】
アドレスバス２１に故障が発生した場合、Ｓ１１で、誤ったアドレスの値を読み出すこととなるため、判定値Ｖｊと正解値Ｖｔとが一致しない。したがって、図３のフローにより、アドレスバス２１の故障を検出することができる。
【００３９】
図４は、データバス２２の故障を検出するフローチャートである。
Ｓ２１では、ＲＡＭ１４のデータバス検査用領域１４ｄにデータバス検査値Ｍｄを書き込む。Ｓ２２では、データバス検査用領域１４ｄから値を読み出す。Ｓ２３では、Ｓ２２で読み出した読み出し値ＭｒとＳ２１で書き込んだ検査値Ｍｄとを比較し、一致しているか否かを判断する。ＹＥＳの場合、Ｓ２４にてデータバス２２が正常と判定し、ＮＯの場合、Ｓ２５にてデータバス２２が故障していると判定する。
【００４０】
データバス２２に故障が発生した場合、データの書き込みおよび読み出しを行うことができないため、書き込んだ値と読み出した値とが一致しない。したがって、図４のフローにより、データバス２２の故障を検出することができる。
【００４１】
本発明は、上述のアドレスバス検査用アドレスＡｄまたはデータバス検査値Ｍｄの選定要件に特徴を有する。アドレスバス検査用アドレスＡｄまたはデータバス検査値Ｍｄは、いずれも、検査対象とするバスラインの数に応じて複数個選定される。アドレスバス２１の故障検出におけるアドレスバス検査用アドレスＡｄの選定と、データバス２２の故障検出におけるデータバス検査値Ｍｄの選定との考え方は同じであるので、以下、「複数のアドレスバス検査用アドレスＡｄまたは複数のデータバス検査値Ｍｄ」をまとめて「複数の検査値Ｄ」という。
本発明は、特徴ある要件によって複数の検査値Ｄを選定することで、故障検出のための検査値Ｄの数を最小限とし、ＥＣＵ１０の処理負荷を低減し処理速度を向上することを目的とするものである。
【００４２】
ここで、バスラインの故障の３つの類型について説明する。
１）０固着故障
バスラインに該当するビットの値が本来１であるべきところ０に固着する故障をいう。地絡故障、または断線したときビットの値が０となる場合の断線故障がこれに相当する。
２）１固着故障
バスラインに該当するビットの値が本来０であるべきところ１に固着する故障をいう。天絡故障、または断線したときビットの値が１となる場合の断線故障がこれに相当する。
３）短絡故障
バスラインに該当するビットの値が他のバスラインに該当するビットの値と同じになる故障、すなわち、２つのバスライン間で互いに異なる値を維持することができなくなる故障をいう。バスライン同士の短絡による故障がこれに相当する。
【００４３】
これらの故障を検出するための検査値Ｄの要件は、以下のようである。
１）０固着故障に対し、検査対象となるバスラインに該当するビットの値を１とする。
２）１固着故障に対し、検査対象となるバスラインに該当するビットの値を０とする。
３）短絡故障に対し、検査対象となるバスラインに該当するビットの値を、他のバスラインに該当するビットの値と異なる値とする。すなわち、検査対象のビットの値が０で他のビットの値が１、または、検査対象のビットの値が１で他のビットの値が０となる組合せを全ビットについて構築する。この短絡判定の組合せの数は、全ビットから２つのビットを選ぶ組合せの数である。全ビット数をＮビットとすれば、複数の検査値ＤがNＣ2とおりの組合せを構築する必要がある。
【００４４】
以下、検査値Ｄの具体例を検査対象ビット数毎に説明する。Ｎビットの検査値Ｄにおいて、最下位ビットを第０ビット、２桁目を第１ビット・・・最上位ビットを第（Ｎ−１）ビットと表す。また、１６進数を表記する場合、末尾に「ｈ」を付して示す。なお、以下に示す例はあくまで一例である。
【００４５】
（２ビットの参考例）
まず、検査対象ビットが２ビットの例を参考例として図５（ａ）に示す。この例では、検査値Ｄ自体は８ビットであるが、検査対象ビットは第０および第１ビットの２ビットのみとする。検査値Ｄとして０１ｈ（０００００００１）とＦＥｈ（１１１１１１１０）の２個を用いることで、０固着故障および１固着故障を検出可能である。また、短絡判定の組合せは第０ビットと第１ビット間の１とおりであり、０１ｈおよびＦＥｈのいずれでも短絡故障を検出可能である。検査値の数は２個であり、従来技術との差は無い。
【００４６】
（４ビットの例）
検査対象ビットが４ビットの例を図５（ｂ）に示す。この例では、検査値Ｄ自体は８ビットであるが、検査対象ビットは第０〜第３ビットの４ビットのみとする。検査値Ｄとして、０３ｈ（００００００１１）、０５ｈ（０００００１０１）、ＦＣｈ（１１１１１１００）の３個を用いる。０３ｈとＦＣｈとで０固着故障および１固着故障を検出可能である。また、短絡判定の組合せは4Ｃ2＝６とおりであり、そのうち４とおり（第０ビットと第２ビット間、第０ビットと第３ビット間、第１ビットと第２ビット間、第１ビットと第３ビット間）を０３ｈで検出可能であり、残り２とおり（第０ビットと第１ビット間、第２ビットと第３ビット間）を０５ｈで検出可能である。
【００４７】
この場合、短絡判定のために必要な検査値Ｄの数は、（ｌｏｇ2４）＝２個であり、そのうち１つの検査値は、０固着故障または１固着故障の一方の検出を兼ねる。そこで、０固着故障または１固着故障の他方の検出のための検出値Ｄをもう１つ加えることで、上記の３つの故障類型すべてを検出可能となる。よって、故障検出のための検査値Ｄの数は、（ｌｏｇ2４）＋１＝３個である。
【００４８】
「全ビットのうちいずれか１ビットのみが１または０である」検査値を用いる従来技術によると、４ビットの検査には最低４個の検査値（例えば０１ｈ（０００００００１）、０２ｈ（００００００１０）、０４ｈ（０００００１００）、０８ｈ（００００１０００））が必要である。これは、１つの検査値について複数のバスラインの短絡故障を同時に検出することができないからである。本発明では、１つの検査値で複数のバスラインの短絡故障を同時に検出することができるため、検査値の数を低減することができる。
【００４９】
（８ビットの例）
検査対象ビットが８ビットの例を図５（ｃ）に示す。この例では、検査値Ｄとして、０Ｆｈ（００００１１１１）、３３ｈ（００１１００１１）、５５ｈ（０１０１０１０１）、Ｆ０ｈ（１１１１００００）の４個を用いる。０ＦｈとＦ０ｈで０固着故障および１固着故障を検出可能である。また、短絡判定の組合せは８Ｃ２＝２８とおりであり、そのうち１６とおりを０Ｆｈで検出可能であり、重複する組合せを除く８とおりを３３ｈで検出可能であり、残り４とおりを５５ｈで検出可能である。
【００５０】
この場合、短絡判定のために必要な検査値Ｄの数は、（ｌｏｇ2８）＝３個であり、故障検出のための検査値Ｄの数は、（ｌｏｇ2８）＋１＝４個である。
従来技術によると８ビットの検査には最低８個の検査値が必要であるので、本発明により検査値の数を半分に低減することができる。
【００５１】
図６は、アドレスバス２１の故障検出の場合のＲＯＭ領域１３ａにおける上記の検査値Ｄすなわちアドレスバス検査用アドレスＡｄを模式的に示した図である。この例では、ＲＯＭ領域に８ビットすなわち１バイトのアドレスを最大２8＝２５６バイト記憶可能である。ＲＯＭ領域の行は第０〜第３ビットの値に対応し、ＲＯＭ領域の列は第４〜第７ビットの値に対応する。また、仮に、ＦＣｈ〜ＦＦｈの４アドレスをアドレスバス検査用正解値Ｖｔとして示しているが、アドレスバス検査用正解値Ｖｔの配置は任意である。
【００５２】
ところで、ＲＯＭ領域の最大値域であるＦＦｈ付近のアドレスはデバイス固有の禁止領域とされる場合があるため、アドレスバス検査用アドレスＡｄとして使用を避けることが望ましい。しかし、従来技術によると、第０ビットのみが０の値を取るＦＥｈ（１１１１１１１０）の値を使用せざるを得なかった。本発明では、アドレスバス検査用アドレスＡｄの選択の自由度が高いため、ＦＥｈのように禁止領域に含まれやすいアドレスを避けることが容易となる。
【００５３】
（１６ビットの例）
検査対象ビットが１６ビットの例を図７に示す。この例では、検査値Ｄとして、００ＦＦｈ、０Ｆ０Ｆｈ、３３３３ｈ、５５５５ｈ、ＦＦ００ｈ（２進数表記は省略する）の５個を用いる。００ＦＦｈとＦＦ００ｈとで０固着故障および１固着故障を検出可能である。また、短絡判定の組合せは16Ｃ2＝１２０とおりであり、そのうち６４とおりを００ＦＦｈで検出可能であり、重複する組合せを除く３２とおりを０Ｆ０Ｆｈで検出可能であり、さらに重複する組合せを除く１６とおりを３３３３ｈで検出可能であり、残り８とおりを５５５５ｈで検出可能である。
【００５４】
この場合、短絡判定のために必要な検査値Ｄの数は、（ｌｏｇ2１６）＝４個であり、故障検出のための検査値Ｄの数は、（ｌｏｇ2１６）＋１＝５個である。
従来技術によると１６ビットの検査には最低１６個の検査値が必要であるので、本発明により検査値の数を約３０％に低減することができる。
【００５５】
（３２ビットの例）
検査対象ビットが３２ビットの例を図８に示す。この例では、検査値Ｄとして、００００ＦＦＦＦｈ、００ＦＦ００ＦＦｈ、０Ｆ０Ｆ０Ｆ０Ｆｈ、３３３３３３３３ｈ、５５５５５５５５ｈ、ＦＦＦＦ００００ｈ（２進数表記は省略する）の６個を用いる。００ＦＦｈとＦＦ００ｈとで０固着故障および１固着故障を検出可能である。また、短絡判定の組合せは32Ｃ2＝４９６とおりであり、そのうち２５６とおりを００００ＦＦＦＦｈで検出可能であり、１２８とおりを００ＦＦ００ＦＦｈで検出可能であり、重複する組合せを除く６４とおりを０Ｆ０Ｆ０Ｆ０Ｆｈで検出可能であり、さらに重複する組合せを除く３２とおりを３３３３３３３３ｈで検出可能であり、残り１６とおりを５５５５５５５５ｈで検出可能である。
【００５６】
この場合、短絡判定のために必要な検査値Ｄの数は、（ｌｏｇ2３２）＝５個であり、故障検出のための検査値Ｄの数は、（ｌｏｇ2３２）＋１＝６個である。
従来技術によると３２ビットの検査には最低３２個の検査値が必要であるので、本発明により検査値の数を２０％以下に低減することができる。
【００５７】
このように、従来技術では、検査値の数が検査対象ビットに比例して増加するのに対し、本発明では、検査値Ｄの数は、検査対象ビット数の対数に定数１を加えたものであるため、ビット数が増加するほど検査値の数を大幅に低減することができる。したがって、故障検出に係るＥＣＵ１０の処理負荷を低減し、処理速度を向上することができる。
【００５８】
また従来技術では、検査値の増大によるＥＣＵの処理負荷を軽減するため、読み出し値に基づいてチェックサムを算出する方式を取らざるを得なかった。そのため、異なるアドレスから取得した値の同一ビット値が入れ替わった値となる場合には故障を検出することができなかった。それに対し、本発明では、検査値Ｄの数を低減しＥＣＵ１０の処理負荷を低減することができる。したがって、チェックサムのような信頼性の低い手法に拠ることなく、読み出し値をそのまま正解値と比較したり生成多項式によりＣＲＣを算出したりすることが現実的なメモリ容量の範囲で可能となる。よって、より信頼性の高い処理を実行することができる。
【００５９】
例えば、ＥＣＵ１０が電動パワーステアリング装置１に適用される場合、故障を早期に検出し迅速かつ的確な処理を実行することができ、信頼性の高い電動パワーステアリング装置を実現することができる。
【００６０】
（検査値をビット反転値のペアで構成する例）
上記の例が検査値Ｄの数を最小限とする例であるのに対し、ここでは、上記の例に基づく最小数の検査値に他の検査値を追加することで別の付加価値を作出する例を説明する。
図９（ａ）に示す例は、検査対象ビット数が４ビットのとき、第１実施例（図５（ｂ）参照）の検査値Ｄに対して、３番目にＦＡｈ（１１１１１０１０）を追加している。このＦＡｈは、２番目の０５ｈ（０００００１０１）の各ビットの０の値を１に、１の値を０に反転させた値である。すなわち、ＦＡｈと０５ｈとは、各ビットの値を反転させたペアの関係にある。なお、１番目の０３ｈと４番目のＦＣｈとは、やはり、各ビットの値を反転させたペアの関係にある。
【００６１】
こうすることで、４個の検査値により各ビットに０の値と１の値とが２個ずつ均等に割り当てられる。そのため、１回の処理における０固着故障に対する判定回数と１固着故障に対する判定回数とが同数となる。よって、判定エラーに対する信頼性が向上する。
また、ビットの値が１のときバスラインに電流が流れ、ビットの値が０のときバスラインに電流が流れないというような物理的動作が行われる場合、各バスラインの負荷を均等にすることで発熱等の偏りを抑制することができる。
【００６２】
図９（ｂ）に示す例は、検査対象ビット数が８ビットのとき、第２実施例（図５（ｃ）参照）の検査値Ｄに対して、４番目にＡＡｈ（１０１０１０１０）を追加し、５番目にＣＣｈ（１１００１１００）を追加している。ＡＡｈは、３番目の５５ｈ（０１０１０１０１）と各ビットの値を反転させたペアの関係にあり、ＣＣｈは、２番目の３３ｈ（００１１００１１）と各ビットの値を反転させたペアの関係にある。この場合も上記と同様の効果を奏する。
【００６３】
この例では、検査対象ビット数が４ビットの場合、検査値の数が４個となり、従来技術による検査値の数と変わらなくなる。しかし、検査対象ビット数が８ビットの場合、検査値の数は６個となり、従来技術の８個に対して依然低減している。さらに検査対象ビット数が増加するほど、各ビットの値を反転させた検査値を追加したとしても、従来技術に対して検査値の数を充分に低減することができる。
【００６４】
（その他の実施形態）
（ア）上記の実施形態では、データバス２２については、ＲＡＭ１４のデータバス検査用領域１４ｄにデータバス検査値Ｍｄを書き込み、データバス検査用領域１４ｄから読み出した読み出し値Ｍｒとデータバス検査値Ｍｄを比較することで故障検出する。
これに限らず、データバス２２についてもアドレスバス２１と同様に、ＲＯＭ領域１３ａから読み出した値から計算した判定値と予め計算されたデータバス検査用正解値とを比較することで故障検出するようにしてもよい。
【００６５】
（イ）本発明の電子装置は、電動パワーステアリング装置の他、例えば、ＶＧＲＳ（ギア比可変ステアリング）、ＡＲＳ（アクティブリアステアリング）等、様々な用途に適用することができる。
【００６６】
以上、本発明はこのような実施形態に限定されるものではなく、発明の趣旨を逸脱しない範囲において、種々の形態で実施することができる。
【符号の説明】
【００６７】
１      ・・・電動パワーステアリング装置、
２      ・・・モータ駆動装置、
１０      ・・・ＥＣＵ（電子装置）、
１１      ・・・マイコン、
１２      ・・・ＣＰＵ、
１３      ・・・ＲＯＭ、
１３ａ    ・・・ＲＯＭ領域、
１４      ・・・ＲＡＭ、
１４ｄ    ・・・データバス検査用領域、
１５      ・・・Ｉ／Ｏ、
１６      ・・・入力回路、
１７      ・・・出力回路、
２１      ・・・アドレスバス、
２２      ・・・データバス、
Ｄ        ・・・検査値、
Ａｄ      ・・・アドレスバス検査用アドレス、
Ｖｊ      ・・・判定値、
Ｖｔ      ・・・（アドレスバス検査用）正解値、
Ｍｄ      ・・・データバス検査値、
Ｍｒ      ・・・読み出し値。
【図１】
0005581966.tif 000002
【図２】
0005581966.tif 000003
【図３】
0005581966.tif 000004
【図４】
0005581966.tif 000005
【図５】
0005581966.tif 000006
【図６】
0005581966.tif 000007
【図７】
0005581966.tif 000008
【図８】
0005581966.tif 000009
【図９】
0005581966.tif 000010