説明

CPUポート設定方法

【課題】IDコードをより確実に切り替えるCPUポート設定方法を提供する。
【解決手段】
CPUポート設定方法は、2つのIDコードを4つのビット値の組で各々冗長に表現し、該組の各々は4つのビットで相互に値が異なり、CPU2の入力ポートの一部分をIDポート10(a、b、c、d)として割り当て、2つのIDコードのうち1つに対応するビット値の組をCPU2に読み取り可能に設定し、IDポート10を介してビット値の組を読み込み、読み込んだビット値の組が2つのIDコードのいずれのビット値の組に一致するかを判定し、一致した場合、当該IDコードを採用し、読み込まれたビット値の組が2つのIDコードのいずれかのビット値の組から1ビットで値が異なっている場合、読み込まれたビット値の組を、異なる当該IDコードのビット値の組に訂正し、該IDコードを採用する、各工程を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のCPUポートを使って修正又はエラー判定可能なIDコードを設定することにより確実に電子制御装置(ECU)の動作やデータを切り替えるためのCPUポート設定方法に関する。
【背景技術】
【0002】
1つのROMでECUの動作や内部データを切り替えるための方法としてEEPROMなどに記憶された情報により仕様を切り替える方法が一般的である。例えば図10(a)に示されるように、ECU1は、CPU2を有し、CPU2は、2つのプログラム又はデータ1、2を格納したROM3を内蔵している。CPU2には、IDコードを格納するEEPROM4が外付けで接続されている。なお、EEPROM4は、図10(b)に示されるように、CPU2に内蔵される態様も存在している。EEPROM4内のIDコードは、例えば工場出荷段階で記憶させられる。ECU1が作動するときには、CPU2は、EEPROM4内のIDコードを読み込み、このIDコードに応じてROM3内のプログラム/データ1及びプログラム/データ2のいずれかを読み込む。CPU2は、読み込んだいずれかのプログラム/データに応じた所定の動作を実行する。例えば選択されたプログラム又はデータに基づいた指令信号を出力ポート14を介して所定のデバイスに送る。
【0003】
以上のようにEEPROM4内のIDコードは、ECUの動作や内部データを切り替えるための重要なデータであるので、誤り訂正のため一般にチェックサム等で保護されている。しかし、誤り訂正技術により保護されていたとしてもEEPROM内のIDコードは、ROMデータほどの堅牢性はない。
【0004】
一方、下記特許文献1に記載されたエアバッグシステムは、信号の誤りを検出、訂正する方法を開示している。当該エアバッグシステムによれば、正規の点火信号パターンに対して1ビット誤りの点火信号パターンをサイド用ECU1の記憶手段に記憶し、この記憶手段の点火信号パターンとメインECU11からの点火信号とが一致したときスクイブを点火することにより、1ビットの誤りのパターンを判定するだけで簡単に信号処理ができる。
【0005】
しかし、特許文献1には、IDコードを記憶させる方法については開示されていない。
【特許文献1】WO02/014119
【発明の開示】
【発明が解決しようとする課題】
【0006】
本発明は、上記事実に鑑みてなされたもので、ECUの動作や内部データなどを決定するためのIDコードをより確実に切り替えるためのCPU入力ポートの設定方法を提供することをその目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するため、本発明の第1の態様は、複数のIDコードから1つのIDコードをCPUに判別させるためのCPUポート設定方法であって、前記複数のIDコードを複数のビット値からなる組で各々冗長に表現し、該ビット値の組の各々は、少なくとも第1の数のビットで相互に値が異なっている、表現工程と、前記CPUの入力ポートの少なくとも一部分をIDポートとして割り当てる、IDポート割り当て工程と、前記IDポートにおいて、前記表現工程により表現された前記複数のIDコードのうち1つのIDコードに対応するビット値の組を前記CPUに読み取り可能に設定する、IDポート設定工程と、 前記IDポートを介してビット値の組を読み込む、読み込み工程と、前記IDポートを介して読み込んだビット値の組が、前記複数のIDコードのいずれのビット値の組に一致するかを判定する、判定工程と、読み込まれたビット値の組が前記複数のIDコードのいずれかのビット値の組と一致した場合、一致した当該IDコードを前記CPUに設定されたIDコードとして採用し、読み込まれたビット値の組が前記複数のIDコードのいずれかのビット値の組から前記第1の数より少ない第2の数のビットで値が異なっている場合、前記読み込まれたビット値の組を、異なる当該IDコードのビット値の組に訂正し、該IDコードを前記CPUに設定されたIDコードとして採用する、ID決定工程と、を備えて構成したものである。
【0008】
本発明の第1の態様によれば、EEPROMを別個に設けてIDコードを記憶させること無しにCPUの入力ポートにIDポートを割り当ててIDコードを設定することを可能にした。更に、読み込まれたビット値の組が、複数のIDコードが相互に異なるところのビットの数である第1の数よりも小さい第2の数のビットで読み取りエラーが発生した場合でも、複数のIDコードのうちいずれか1つに訂正することを可能にした。従って、本発明は、コストの削減を達成すると共に、IDコードの堅牢性を向上させることが可能となる。
【0009】
好ましくは、前記IDポート設定工程は、前記IDポートの各ポートをプルアップ又はプルダウンすることにより実行される。
更に好ましくは、前記ID決定工程は、読み込まれたビット値の組が前記複数のIDコードのいずれのビット値の組からも前記第2の数より多いビットで値が異なっている場合、いずれのIDコードも却下する。
【0010】
本発明の上記態様では、(IDポートの全数−第1の数)個を超えるポートでエラーが発生した場合、実際とは異なるIDコードに誤判定する可能性がある。
このような誤判定の可能性を可能な限り排除するため、本発明の第2の態様は、複数のIDコードから1つのIDコードをCPUに判別させるためのCPUポート設定方法であって、前記複数のIDコードを複数のビット値の組で各々冗長に表現し、該ビット値の組の各々は、少なくとも第1の数のビットで相互に値が異なっている、第1の表現工程と、前記第1の表現工程で表現されたビット値の組を反転することにより得られるビット値の組で前記複数のIDコードを冗長に表現する、第2の表現工程と、前記CPUの入力ポートの一部分をマスターIDポートとして割り当てる、マスターIDポート割り当て工程と、前記マスターIDポートとは別に前記CPUの入力ポートの一部分をスレーブIDポートとして割り当てる、スレーブIDポート割り当て工程と、前記マスターIDポートにおいて、前記第1の表現工程により表現された前記複数のIDコードのうち1つのIDコードに対応するビット値の組を前記CPUに読み取り可能に設定する、マスターIDポート設定工程と、前記スレーブIDポートにおいて、前記第2の表現工程により表現された前記1つのIDコードに対応するビット値の組を前記CPUに読み取り可能に設定する、スレーブIDポート設定工程と、前記マスターIDポートを介してビット値の組を読み込む、第1の読み込み工程と、前記マスターIDポートを介して読み込んだビット値の組が、前記第1の表現手段により表現された前記複数のIDコードのいずれのビット値の組に一致するかを判定する、第1の判定工程と、読み込まれたビット値の組が前記複数のIDコードのいずれかのビット値の組と一致した場合、一致した当該IDコードをマスターID候補として採用し、読み込まれたビット値の組が前記複数のIDコードのいずれかのビット値の組から前記第1の数より少ない第2の数のビットで値が異なっている場合、前記読み込まれたビット値の組を、前記第2の数のビットで値が異なる当該IDコードのビット値の組に訂正し、該IDコードをマスターID候補として採用する、マスターID候補決定工程と、前記スレーブIDポートを介してビット値の組を読み込む、第2の読み込み工程と、 前記スレーブIDポートを介して読み込んだビット値の組が、前記第2の表現手段により表現された前記複数のIDコードのいずれのビット値の組に一致するかを判定する、第2の判定工程と、読み込まれたビット値の組が前記複数のIDコードのいずれかのビット値の組と一致した場合、一致した当該IDコードをスレーブID候補として採用し、読み込まれたビット値の組が前記複数のIDコードのいずれかのビット値の組から前記第1の数より少ない第2の数のビットで値が異なっている場合、前記読み込まれたビット値の組を、前記第2の数のビットで値が異なる当該IDコードのビット値の組に訂正し、該IDコードをスレーブID候補として採用する、スレーブID候補決定工程と、前記スレーブID候補のビット値の組を反転し、該反転したビット値の組と前記マスターID候補のビット値の組とが一致した場合、該マスターID候補を前記CPUに設定されたIDコードとして採用する、ID決定工程と、を備えて構成したものである。
【0011】
本発明の第2の態様によれば、第1の態様と同様なマスターIDポートを設けるだけではなく、ビット表現を反転させたスレーブIDポートを設け、マスターIDポートとスレーブIDポートの両方のビット読み取り値の結果に基づいて、IDコードを決定するので、(IDポートの全数−第1の数)個を超えるポートでエラーが発生した場合でも、IDコードの誤判定を防止することができる。更にスレーブIDを反転表現したので、隣接する複数のポートがショートや断線等で同一のビット値へと誤る場合にも、誤りを適切に検出することを可能にしている。
【0012】
好ましくは、前記マスターIDポート設定工程及び前記スレーブIDポート設定工程は、各々前記マスターIDポート及び前記スレーブIDポートの各ポートをプルアップ又はプルダウンすることにより実行される。
【0013】
好ましくは、前記マスターID候補決定工程及び前記スレーブID候補決定工程は、読み込まれたビット値の組が前記複数のIDコードのいずれかのビット値の組からも前記第2の数より多いビットで値が異なっている場合、いずれのIDコードも却下する。この場合において、前記IDコード決定工程は、前記マスターID候補決定工程又は前記スレーブID候補決定工程でIDコードが却下されたとき、いずれのIDコードも採用しない。更に、前記IDコード決定工程は、前記スレーブID候補の反転したビット値の組と前記マスターID候補のビット値の組とが一致しなかった場合、いずれのIDコードも採用しない。
【0014】
第1及び第2の態様において、前記第2の数は1であるのが好ましい。即ち、IDコードから1ビット誤りまでの範囲を当該IDコードと判定する。この場合において、例えば、前記IDコードは2つ用意され、前記ビット値の組は4ビットであり、前記第1の数は4としてもよい。
【0015】
上記第2の態様では、スレーブIDのビット値を反転して表現したが、スレーブIDを反転させない第3の態様も可能である。第3の態様によれば、第1の態様に比べて誤判定を少なくすることができる。
【0016】
本発明の第3の態様は、複数のIDコードから1つのIDコードをCPUに判別させるためのCPUポート設定方法であって、前記複数のIDコードを複数のビット値の組で各々冗長に表現し、該ビット値の組の各々は、少なくとも第1の数のビットで相互に値が異なっている、第1の表現工程と、前記複数のIDコードを複数のビット値の組で各々冗長に表現し、該ビット値の組の各々は、少なくとも第1の数のビットで相互に値が異なっている、第2の表現工程と、前記CPUの入力ポートの一部分をマスターIDポートとして割り当てる、マスターIDポート割り当て工程と、前記マスターIDポートとは別に前記CPUの入力ポートの一部分をスレーブIDポートとして割り当てる、スレーブIDポート割り当て工程と、前記マスターIDポートにおいて、前記第1の表現工程により表現された前記複数のIDコードのうち1つのIDコードに対応するビット値の組を前記CPUに読み取り可能に設定する、マスターIDポート設定工程と、前記スレーブIDポートにおいて、前記第2の表現工程により表現された前記1つのIDコードに対応するビット値の組を前記CPUに読み取り可能に設定する、スレーブIDポート設定工程と、前記マスターIDポートを介してビット値の組を読み込む、第1の読み込み工程と、前記マスターIDポートを介して読み込んだビット値の組が、前記第1の表現手段により表現された前記複数のIDコードのいずれのビット値の組に一致するかを判定する、第1の判定工程と、読み込まれたビット値の組が前記複数のIDコードのいずれかのビット値の組と一致した場合、一致した当該IDコードをマスターID候補として採用し、読み込まれたビット値の組が前記複数のIDコードのいずれかのビット値の組から前記第1の数より少ない第2の数のビットで値が異なっている場合、前記読み込まれたビット値の組を、異なる当該IDコードのビット値の組に訂正し、該IDコードをマスターID候補として採用する、マスターID候補決定工程と、前記スレーブIDポートを介してビット値の組を読み込む、第2の読み込み工程と、前記スレーブIDポートを介して読み込んだビット値の組が、前記第2の表現手段により表現された前記複数のIDコードのいずれのビット値の組に一致するかを判定する、第2の判定工程と、読み込まれたビット値の組が前記複数のIDコードのいずれかのビット値の組と一致した場合、一致した当該IDコードをスレーブID候補として採用し、読み込まれたビット値の組が前記複数のIDコードのいずれかのビット値の組から前記第1の数より少ない第2の数のビットで値が異なっている場合、前記読み込まれたビット値の組を、異なる当該IDコードのビット値の組に訂正し、該IDコードをスレーブID候補として採用する、スレーブID候補決定工程と、前記スレーブID候補のビット値の組と前記マスターID候補のビット値の組とが一致した場合、該マスターID候補を前記CPUに設定されたIDコードとして採用する、ID決定工程と、を備えて構成したものである。
【0017】
マスターIDポートとスレーブIDポートとを用いる本発明の態様において、第2、第3以外の次の第4の態様も可能である。
本発明の第4の態様は、複数のIDコードから1つのIDコードをCPUに判別させるためのCPUポート設定方法であって、前記複数のIDコードを複数のビット値の組で各々冗長に表現し、該ビット値の組の各々は、少なくとも第1の数のビットで相互に値が異なっている、第1の表現工程と、前記第1の表現工程で表現されたビット値の組を反転することにより得られるビット値の組で前記複数のIDコードを冗長に表現する、第2の表現工程と、前記CPUの入力ポートの一部分をマスターIDポートとして割り当てる、マスターIDポート割り当て工程と、前記マスターIDポートとは別に前記CPUの入力ポートの一部分をスレーブIDポートとして割り当てる、スレーブIDポート割り当て工程と、前記マスターIDポートにおいて、前記第1の表現工程により表現された前記複数のIDコードのうち1つのIDコードに対応するビット値の組を前記CPUに読み取り可能に設定する、マスターIDポート設定工程と、前記スレーブIDポートにおいて、前記第2の表現工程により表現された前記1つのIDコードに対応するビット値の組を前記CPUに読み取り可能に設定する、スレーブIDポート設定工程と、前記マスターIDポートを介してビット値の組を読み、マスターID候補を決定する、第1の読み込み工程と、 前記スレーブIDポートを介してビット値の組を読み込み、マスターID候補を決定する、第2の読み込み工程と、前記スレーブID候補のビット値の組を反転し、該反転したビット値の組と前記マスターID候補のビット値の組とが一致した場合、該マスターID候補を前記CPUに設定されたIDコードとして採用する、ID決定工程と、を備えて構成したものである。
【実施例】
【0018】
以下、図面を参照して本発明の実施例を説明する。
(第1の実施例)
図1には、本発明の第1の実施例に係るCPUポート設定方法が適用されるECUの内部構成が示されている。なお、図10と同様の構成要件については同じ符合が附されている。図1に示されるように、ECU1は、CPU2を有し、CPU2は、2つのプログラム又はデータ1、2を格納したROM3を内蔵している。ECU1が作動するときには、CPU2は、ROM3内に格納されたプログラム/データ1及びプログラム/データ2のいずれかを読み込む。CPU2は、読み込んだいずれかのプログラム/データに応じた所定の動作を実行する。例えば選択されたプログラム又はデータに基づいた指令信号を出力ポート14を介して所定のデバイスに送る。
【0019】
本発明の第1の実施例では、従来技術のようにIDコードを記憶したEEPROM4を設ける代わりに、CPU2がIDコードを表すためのマスターIDポート10を備えている。マスターIDポート10は、4つのポートa、b、c、dから構成されている。これらのポートは、好ましくはプリント抵抗を使用して、製造ラインで各々プルアップ又はプルダウンされている。プルアップされているポートは、高電圧側に接続されて“Hi”状態を表し、プルダウンされているポートは、低電圧(グラウンド)側に接続されて“Lo”状態を表している。このように各ポートは2ビット表現が可能であり、4つのポートのHi又はLoのビット値の組でIDコードが確定される。
【0020】
本実施例では、IDコードは、ROM3内に格納されたプログラム/データ1及びプログラム/データ2を選択可能にするため、2つの状態に分類される。図2にはその分類方法の一例が示されており、マスターIDポート10のポートa、b、c、dで可能となる全ての状態の組み合わせと、ポート状態を分類するためのIDコードとの対応関係が示されている。CPU2は、内部メモリに図2のようなテーブルを記憶しており、各ポート状態に応じた符号化が可能となっている。
【0021】
図2においてポート状態(a,b,c,d)=(Lo,Hi,Lo,Hi)は、「1−0」と符号化される。このポート状態のIDコードのうち「1」は、プログラム/データ1を選択するように分類されたことを意味し、「0」は全ポートのビットが(Lo,Hi,Lo,Hi)の通りでエラーが無いことを示す。エラー無しのIDコード「1−0」からd、c、b、aポートのいずれか1つのビット値が異なるポート状態、即ちエラーが1つであるポート状態は、各々「1−1」、「1−2」、「1−3」及び「1−4」と符号化される。
【0022】
これに対して「1−0」のポート状態の全ポートのビット値を反転した(a,b,c,d)=(Hi, Lo, Hi, Lo)は、ポート状態が「2−0」と符号化される。即ち、「1−0」のポート状態と「2−0」のポート状態とは、4ビット異なっている。このポート状態のうち「2」は、プログラム/データ2を選択するように分類されたことを意味し、「0」は同様に全ポートのビットが(Hi, Lo, Hi, Lo)の通りでエラーが無いことを示す。エラー無しのIDコード「2−0」からd、c、b、aポートのいずれか1つが異なるポート状態、即ちエラーが1つで1ビット異なるポート状態は、各々「2−1」、「2−2」、「2−3」及び「2−4」と符号化される。
【0023】
「1−0」又は「2−0」のポート状態から2つのポートでエラーがあって2ビット異なる状態、例えば(a,b,c,d)=(Lo,Lo,Lo,Lo)、...(Hi, Hi, Hi, Hi)は、「NG」と符号化される。
【0024】
次に、本発明の第1の実施例に係るECU1の動作の流れを図3を用いて説明する。
図3に示されるように、CPU2は、ポートa、b、c及びdの状態を読み込み(ステップ100)、読み込んだポート状態が、図2の「1−0」、「1−1」、「1−2」、「1−3」及び「1−4」のいずれであるかを判定する(ステップ102)。ポート状態が「1−0」、「1−1」、「1−2」、「1−3」及び「1−4」のいずれであった場合(ステップ102肯定判定)、マスターIDは「1−0」(Lo,Hi,Lo,Hi)と分類される(ステップ104)。
【0025】
これに対して、ポート状態が「1−0」、「1−1」、「1−2」、「1−3」及び「1−4」のいずれでもない場合(ステップ102否定判定)、ポート状態が、図2の「2−0」、「2−1」、「2−2」、「2−3」及び「2−4」のいずれであるかを判定する(ステップ106)。ポート状態が、「2−0」、「2−1」、「2−2」、「2−3」及び「2−4」のいずれかであった場合(ステップ106肯定判定)、マスターIDは「2−0」(Hi, Lo, Hi, Lo)と分類される(ステップ108)。
【0026】
ステップ104及びステップ108のいずれかでマスターIDが決定されると、当該マスターIDを援用し(ステップ110)、当該マスターIDに依存する処理を実行する(ステップ112)。例えばマスターID「1−0」が援用された場合、ROM3内のプログラム/データ1を読み込み、マスターID「2−0」が援用された場合、ROM3内のプログラム/データ2を読み込む。CPU2は、読み込んだいずれかのプログラム/データ1又は2に応じた所定の動作を実行する。例えば選択されたプログラム/データに基づいた指令信号を出力ポート14を介して所定のデバイスに送る。
【0027】
一方、ステップ106において、ポート状態が、「2−0」、「2−1」、「2−2」、「2−3」及び「2−4」のいずれでもないと判定された場合、当該ポート状態は、「1−0」及び「2−0」のポート状態から2つのポートでエラーがあり、図2において「NG」と符号化された状態に相当する。そこで、CPU2はID読み込みを実行せず(ステップ114)、エラー処理等を実行する(ステップ116)。例えばエラー信号等を送出することにより、当該ECU1を出荷しないための警告を行う。警告を受けたオペレータは、当該ECU1をIDポートを設定するための工程に再度戻すことが可能となる。
【0028】
以上のように第1の実施例によれば、ポートの一つにエラーがあったとしても正しいIDに訂正することが可能であり、いずれのIDであるか不明となる2つのエラーを有するIDコードを却下することが可能となる。
【0029】
また、別個のEEPROMを用いるのではなく、CPU2それ自体のポートを設定するため、IDの保護に関して、ROMデータと同様の堅牢性を有する。更に、EEPROMを必要としないためコスト面でも有利となる。
(第2の実施例)
第1の実施例では、可能性は非常に小さいがポートのうち3つ又は4つにエラーがあった場合、正反対のIDであると誤判定する可能性が残されている。例えば本来「2−0」のポート状態(Hi,Lo,Hi,Lo)のうち3つのポートb、c、dでエラーが発生してビット値が反転した場合、(Hi,Hi,Lo,Hi)となるためポート状態「1−4」と判定され、よってID「1−0」と誤判定される。
【0030】
第2の実施例では、このような誤判定の可能性を可能な限り排除した、より確実なID設定方法を提供するものである。
図4には、本発明の第2の実施例に係るCPUポート設定方法が適用されるECUの内部構成が示されている。なお、図1と同様の構成要件については同じ符合を附して詳細な説明を省略する。
【0031】
図4に示されるように、ECU1は、図1に示されるCPU2は、マスターIDポート10の他に、4つのポートe、f、g、hからなるスレーブIDポート11を有する。これらのポートは、マスターIDポート10と同様に、好ましくはプリント抵抗を使用して、製造ラインで各々プルアップ又はプルダウンされている。スレーブIDポート11によりスレーブIDが表されるが、スレーブIDにより指定されるプログラム/データの種類は、マスターIDにより指定されるプログラム/データの種類と同一となるようにスレーブIDポート11の設定が行われる。
【0032】
第2の実施例におけるマスターIDポート10のポート状態の各々とIDコードとの対応関係を図5に示し、スレーブIDポート11のポート状態の各々とIDコードとの対応関係を図6に示す。
【0033】
図5に示すように、第2の実施例では、マスターIDポート10のポート状態(a,b,c,d)=(Lo,Lo,Lo,Lo)が、「1−0」と符号化される。このポート状態のコードのうち「1」は、プログラム/データ1を選択するように分類されたことを意味し、「0」は全ポートのビットが(Lo,Lo,Lo,Lo)の通りでエラーが無いことを示す。エラー無しのIDコード「1−0」からd、c、b、aポートのいずれか1つのビット値が異なるポート状態、即ちエラーが1つであるポート状態は、各々「1−1」、「1−2」、「1−3」及び「1−4」と符号化される。
【0034】
これに対して「1−0」の全ポートのビット値を反転したポート状態(a,b,c,d)=(Hi, Hi, Hi, Hi)は、「2−0」と符号化され、「1−0」のポート状態とは4ビット異なっている。このポート状態のうち「2」は、プログラム/データ2を選択するように分類されたことを意味し、「0」は同様に全ポートのビットが(Hi, Hi, Hi, Hi)の通りでエラーが無いことを示す。エラー無しのIDコード「2−0」からd、c、b、aポートのいずれか1つのビット値が異なるポート状態、即ちエラーが1つであるポート状態は、各々「2−1」、「2−2」、「2−3」及び「2−4」と符号化される。
【0035】
「1−0」又は「2−0」のポート状態から2つのポートでエラーがあって2ビット異なる状態、例えば(a,b,c,d)=(Lo,Lo,Hi,Hi)、...(Hi, Hi, Lo, Lo)は、「NG」と符号化される。
【0036】
スレーブIDポート11では、図6に示すように、マスターIDポート10のポート状態(e,f,g,h)=(Hi, Hi, Hi, Hi)が、「3−0」と符号化される。このポート状態のコードのうち「3」は、プログラム/データ1を選択するように分類されたことを意味し、「0」は全ポートのビットが(Hi, Hi, Hi, Hi)の通りでエラーが無いことを示す。エラー無しのIDコード「3−0」からh、g、f、eポートのいずれか1つのビット値が異なるポート状態、即ちエラーが1つであるポート状態は、各々「3−1」、「3−2」、「3−3」及び「3−4」と符号化される。
【0037】
これに対して「3−0」の全ポートの値を反転したポート状態(e,f,g,h)=(Lo,Lo,Lo,Lo)は、「4−0」と符号化される。このポート状態のうち「4」は、プログラム/データ2を選択するように分類されたことを意味し、「0」は同様に全ポートのビットが(Lo,Lo,Lo,Lo)の通りでエラーが無いことを示す。エラー無しのIDコード「2−0」からh、g、f、eポートのいずれか1つのビット値が異なるポート状態、即ちエラーが1つであるポート状態は、各々「4−1」、「4−2」、「4−3」及び「4−4」と符号化される。
【0038】
「3−0」又は「4−0」のポート状態から2つのポートでエラーがあって2ビット異なる状態、例えば(e,f,g,h)=(Hi,Lo,Hi,Lo)、...(Hi, Hi, Lo, Lo)は、「NG」と符号化される。
【0039】
図5と図6とを比較すると、図6のスレーブIDポート11の各ポート状態は、図5のマスターIDポート10の各ポート状態を反転した値となっていることが理解されよう。
次に、本発明の第2の実施例に係るECU1の動作の流れを図7を用いて説明する。
【0040】
図7に示されるように、CPU2は、ポートa、b、c及びdの状態を読み込み(ステップ200)、読み込んだポート状態が、図5の「1−0」、「1−1」、「1−2」、「1−3」及び「1−4」のいずれであるかを判定する(ステップ202)。ポート状態が「1−0」、「1−1」、「1−2」、「1−3」及び「1−4」のいずれであった場合(ステップ202肯定判定)、マスターIDは「1−0」(Lo,Lo,Lo,Lo)と分類される(ステップ204)。
【0041】
これに対して、ポート状態が「1−0」、「1−1」、「1−2」、「1−3」及び「1−4」のいずれでもない場合(ステップ202否定判定)、ポート状態が、図5の「2−0」、「2−1」、「2−2」、「2−3」及び「2−4」のいずれであるかを判定する(ステップ206)。ポート状態が、「2−0」、「2−1」、「2−2」、「2−3」及び「2−4」のいずれかであった場合(ステップ206肯定判定)、マスターIDは「2−0」(Hi, Lo, Hi, Lo)と分類される(ステップ208)。
【0042】
マスターIDが「1−0」及び「2−0」のいずれに分類されようとも、CPU2は、ポートe、f、g及びhの状態を読み込み(ステップ200)、読み込んだポート状態が、図6の「3−0」、「3−1」、「3−2」、「3−3」及び「3−4」のいずれであるかを判定する(ステップ212)。ポート状態が「3−0」、「3−1」、「3−2」、「3−3」及び「3−4」のいずれであった場合(ステップ212肯定判定)、スレーブIDは「3−0」(Hi, Hi, Hi, Hi)と分類される(ステップ214)。
【0043】
これに対して、ポート状態が「3−0」、「3−1」、「3−2」、「3−3」及び「3−4」のいずれでもない場合(ステップ212否定判定)、ポート状態が、図6の「4−0」、「4−1」、「4−2」、「4−3」及び「4−4」のいずれであるかを判定する(ステップ216)。ポート状態が、「4−0」、「4−1」、「4−2」、「4−3」及び「4−4」のいずれかであった場合(ステップ216肯定判定)、スレーブIDは「4−0」(Lo, Lo, Lo, Lo)と分類される(ステップ218)。
【0044】
マスターIDとスレーブIDとが決定されると、マスターIDと反転したスレーブIDとが一致するか否かが判定される(ステップ220)。例えばスレーブIDが「3−0」であるとき、反転したスレーブIDは(Lo,Lo,Lo,Lo)となり、マスターIDが「1−0」であるとき、一致すると判定する。
【0045】
ステップ220でマスターIDと反転したスレーブIDとが一致していると判定された場合、決定されたマスターIDを援用し(ステップ222)、当該マスターIDに依存する処理を実行する(ステップ224)。
【0046】
一方、ステップ206においてポート状態が「2−0」、「2−1」、「2−2」、「2−3」及び「2−4」のいずれでもないと判定されると共にステップ216でポート状態が「4−0」、「4−1」、「4−2」、「4−3」及び「4−4」のいずれでもないと判定された場合、当該ポート状態は、2つのポートでエラーがあり、図5、6において「NG」と符号化された状態に相当する。そこで、CPU2はID読み込みを実行せず(ステップ226)、エラー処理等を実行する(ステップ228)。また、ステップ220でマスターIDと反転したスレーブIDとが一致していないと判定された場合でも、CPU2はID読み込みを実行せず(ステップ226)、エラー処理等を実行する(ステップ228)。
【0047】
マスターID「1−0」((a,b,c,d)=(Lo,Lo,Lo,Lo))が選択された場合において、例えば3つのポートb,c,dで読み取りエラーが発生し、(a,b,c,d)=(Lo,Hi,Hi,Hi)となったとき、図5の表によれば、「2−4」と判定され、マスターIDが「2−0」と誤判定される。しかし、第2の実施例によれば、この場合スレーブIDポート11でスレーブID「3−0」に相当するため、1ビット以内のエラーならば最終的にスレーブID((e,f,g,h)=(Hi,Hi,Hi,Hi))と判定される確率が高い。従って、マスターIDとスレーブIDの反転とが一致せずに、マスターIDポートで3つ以上のポートで読み取りエラーが発生した場合においても誤判定を未然に却下することができる。
【0048】
第2の実施例では、図6のビット表現のように、スレーブIDポートのビット値をマスターIDポートのビット値から反転した表現としたが、この意義について以下に説明する。
【0049】
図8(a)に示されるように、マスターポート(4ポート)とスレーブポート(4ポート)がCPUの一辺に並んでいるとする。一例として、マスターポートのビット値表現を(H,H,L,L)とすると、スレーブポートのビット値表現は、(L,L, H,H)となる。ここで両ポートを構成する8つのピンの全てが不具合により「Hi」にショートしてしまったとすると、図8(b)のように全てのポートが「Hi」で認識されることになる。第2の実施例では、マスターIDと、反転したスレーブIDとを比較するため、図8(b)の例では両者が一致することはあり得ず、故障を検出することができる。このように隣接して並ぶポートは、故障する場合には同じビット値となる確率が高いため、スレーブを反転し、異なる表現で比較した方が故障検出の上では有利となる。
【0050】
しかし、たとえスレーブポートで反転ビット表現を用いなかったとしても、3つ以上のポートでのビット誤りを検出する能力は、第1の実施例に比べて向上することは確かである。従って、図6のスレーブポートのビット表現を図5と同じにし、ステップ220で、マスターIDと(反転しない)スレーブIDとを比較するように変更する方法も本発明の実施例として採用することができる。
【0051】
また、第2の実施例の図7の処理において、ステップ202、204、206、208、212、214、216、218を省略する実施例も可能である。この場合、ステップ200、210を最初に実行してポートa〜dの状態及びポートe〜fの状態を読み込んだ後、読み込んだビット値の組をそのままマスターID、スレーブIDとし、ステップ2200でマスターIDと反転したスレーブIDとを比較し、両者が一致した場合にのみマスターIDを採用するようにしてもよい。なお、本実施例においても、スレーブポートで反転ビット表現を用いない態様も採用することができる。
【0052】
以上が本発明の実施例であるが、本発明は、上記例にのみ限定されるものではなく、請求の範囲により画定される範囲内において任意好適に変更可能である。例えば、上記実施例では、IDコードが2つの場合を例にしたが、3つ以上のIDコードを識別する場合、即ち選択されるべきプログラム/データが3つ以上ある場合においても本発明を適用することができる。また、IDコードの複数ビット値の組が各々4つのビットで異なる表現を採用したが、IDコードの種類等に応じて異なるビット数に変更可能である。また、読み取ったビット値の組が1ビット異なる場合にIDコードに訂正するようにしたが、IDコードが相互に異なっているビット数の半分より少ないビット数である限り、例えば2ビット、3ビット、...で異なる場合にIDコードを訂正するようにしてもよい。
【0053】
また、上記実施例ではROM3がCPU2に内蔵されている例を示したが、本発明で使用されるCPU2は、図10に示されるように、マスターID及びスレーブIDを割り当てる入力ポートとは別の入力ポート12にROM3を外付けで接続する例も含まれる。
【0054】
更に、本発明は、CPUにIDコードを教え、IDコードに応じてプログラムやデータを変更する方法一般に適用することができる。
【図面の簡単な説明】
【0055】
【図1】図1は、本発明の第1の実施例に係るCPUポート設定方法が適用されたCPUを備えるECUの内部構成の概略図である。
【図2】図2は、第1の実施例におけるIDポートの各状態とIDコードとの対応関係を示す表である。
【図3】図3は、第1の実施例に係るCPUポート設定方法が適用されたCPUを備えるECUの動作を示すフローチャートである。
【図4】図4は、本発明の第2の実施例に係るCPUポート設定方法が適用されたCPUを備えるECUの内部構成の概略図である。
【図5】図5は、第2の実施例におけるマスターIDポートの各状態とIDコードとの対応関係を示す表である。
【図6】図6は、第2の実施例におけるスレーブIDポートの各状態とIDコードとの対応関係を示す表である。
【図7】図7は、第2の実施例に係るCPUポート設定方法が適用されたCPUを備えるECUの動作を示すフローチャートである。
【図8】図8は、第2の実施例においてスレーブポートのビット値表現を反転する意義を説明するための図であり、(a)は故障無しのポート状態、(b)はポートがショートした場合のポート状態を示す。
【図9】本発明の実施例で使用可能なCPUの別の態様を示す図である。
【図10】図10は、従来技術に係るID設定方法が適用されたCPUを備えるECUの内部構成の概略図である。
【符号の説明】
【0056】
1 ECU
2 CPU
3 ROM
10 マスターIDポート
11 スレーブIDポート
12 入力ポート
14 出力ポート

【特許請求の範囲】
【請求項1】
複数のIDコードから1つのIDコードをCPUに判別させるためのCPUポート設定方法であって、
前記複数のIDコードを複数のビット値からなる組で各々冗長に表現し、該ビット値の組の各々は、少なくとも第1の数のビットで相互に値が異なっている、表現工程と、
前記CPUの入力ポートの少なくとも一部分をIDポートとして割り当てる、IDポート割り当て工程と、
前記IDポートにおいて、前記表現工程により表現された前記複数のIDコードのうち1つのIDコードに対応するビット値の組を前記CPUに読み取り可能に設定する、IDポート設定工程と、
前記IDポートを介してビット値の組を読み込む、読み込み工程と、
前記IDポートを介して読み込んだビット値の組が、前記複数のIDコードのいずれのビット値の組に一致するかを判定する、判定工程と、
読み込まれたビット値の組が前記複数のIDコードのいずれかのビット値の組と一致した場合、一致した当該IDコードを前記CPUに設定されたIDコードとして採用し、読み込まれたビット値の組が前記複数のIDコードのいずれかのビット値の組から前記第1の数より少ない第2の数のビットで値が異なっている場合、前記読み込まれたビット値の組を、異なる当該IDコードのビット値の組に訂正し、該IDコードを前記CPUに設定されたIDコードとして採用する、ID決定工程と、
を備える、CPUポート設定方法。
【請求項2】
前記IDポート設定工程は、前記IDポートの各ポートをプルアップ又はプルダウンすることにより実行される、請求項1に記載のCPUポート設定方法。
【請求項3】
前記ID決定工程は、読み込まれたビット値の組が前記複数のIDコードのいずれのビット値の組からも前記第2の数より多いビットで値が異なっている場合、いずれのIDコードも却下する、請求項1又は2に記載のCPUポート設定方法。
【請求項4】
複数のIDコードから1つのIDコードをCPUに判別させるためのCPUポート設定方法であって、
前記複数のIDコードを複数のビット値の組で各々冗長に表現し、該ビット値の組の各々は、少なくとも第1の数のビットで相互に値が異なっている、第1の表現工程と、
前記第1の表現工程で表現されたビット値の組を反転することにより得られるビット値の組で前記複数のIDコードを冗長に表現する、第2の表現工程と、
前記CPUの入力ポートの一部分をマスターIDポートとして割り当てる、マスターIDポート割り当て工程と、
前記マスターIDポートとは別に前記CPUの入力ポートの一部分をスレーブIDポートとして割り当てる、スレーブIDポート割り当て工程と、
前記マスターIDポートにおいて、前記第1の表現工程により表現された前記複数のIDコードのうち1つのIDコードに対応するビット値の組を前記CPUに読み取り可能に設定する、マスターIDポート設定工程と、
前記スレーブIDポートにおいて、前記第2の表現工程により表現された前記1つのIDコードに対応するビット値の組を前記CPUに読み取り可能に設定する、スレーブIDポート設定工程と、
前記マスターIDポートを介してビット値の組を読み込む、第1の読み込み工程と、
前記マスターIDポートを介して読み込んだビット値の組が、前記第1の表現手段により表現された前記複数のIDコードのいずれのビット値の組に一致するかを判定する、第1の判定工程と、
読み込まれたビット値の組が前記複数のIDコードのいずれかのビット値の組と一致した場合、一致した当該IDコードをマスターID候補として採用し、読み込まれたビット値の組が前記複数のIDコードのいずれかのビット値の組から前記第1の数より少ない第2の数のビットで値が異なっている場合、前記読み込まれたビット値の組を、異なる当該IDコードのビット値の組に訂正し、該IDコードをマスターID候補として採用する、マスターID候補決定工程と、
前記スレーブIDポートを介してビット値の組を読み込む、第2の読み込み工程と、
前記スレーブIDポートを介して読み込んだビット値の組が、前記第2の表現手段により表現された前記複数のIDコードのいずれのビット値の組に一致するかを判定する、第2の判定工程と、
読み込まれたビット値の組が前記複数のIDコードのいずれかのビット値の組と一致した場合、一致した当該IDコードをスレーブID候補として採用し、読み込まれたビット値の組が前記複数のIDコードのいずれかのビット値の組から前記第1の数より少ない第2の数のビットで値が異なっている場合、前記読み込まれたビット値の組を、異なる当該IDコードのビット値の組に訂正し、該IDコードをスレーブID候補として採用する、スレーブID候補決定工程と、
前記スレーブID候補のビット値の組を反転し、該反転したビット値の組と前記マスターID候補のビット値の組とが一致した場合、該マスターID候補を前記CPUに設定されたIDコードとして採用する、ID決定工程と、
を備える、CPUポート設定方法。
【請求項5】
前記マスターIDポート設定工程及び前記スレーブIDポート設定工程は、各々前記マスターIDポート及び前記スレーブIDポートの各ポートをプルアップ又はプルダウンすることにより実行される、請求項4に記載のCPUポート設定方法。
【請求項6】
前記マスターID候補決定工程及び前記スレーブID候補決定工程は、読み込まれたビット値の組が前記複数のIDコードのいずれかのビット値の組からも前記第2の数より多いビットで値が異なっている場合、いずれのIDコードも却下する、請求項4又は5に記載のCPUポート設定方法。
【請求項7】
前記IDコード決定工程は、前記マスターID候補決定工程又は前記スレーブID候補決定工程でIDコードが却下されたとき、いずれのIDコードも採用しない、請求項6に記載のCPUポート設定方法。
【請求項8】
前記IDコード決定工程は、前記スレーブID候補の反転したビット値の組と前記マスターID候補のビット値の組とが一致しなかった場合、いずれのIDコードも採用しない、請求項4乃至7のいずれか1項に記載のCPUポート設定方法。
【請求項9】
前記第2の数は1である、請求項1乃至8のいずれか1項に記載のCPUポート設定方法。
【請求項10】
前記IDコードは2つ用意され、前記ビット値の組は4ビットであり、前記第1の数は4である、請求項9に記載のCPUポート設定方法。
【請求項11】
複数のIDコードから1つのIDコードをCPUに判別させるためのCPUポート設定方法であって、
前記複数のIDコードを複数のビット値の組で各々冗長に表現し、該ビット値の組の各々は、少なくとも第1の数のビットで相互に値が異なっている、第1の表現工程と、
前記複数のIDコードを複数のビット値の組で各々冗長に表現し、該ビット値の組の各々は、少なくとも第1の数のビットで相互に値が異なっている、第2の表現工程と、
前記CPUの入力ポートの一部分をマスターIDポートとして割り当てる、マスターIDポート割り当て工程と、
前記マスターIDポートとは別に前記CPUの入力ポートの一部分をスレーブIDポートとして割り当てる、スレーブIDポート割り当て工程と、
前記マスターIDポートにおいて、前記第1の表現工程により表現された前記複数のIDコードのうち1つのIDコードに対応するビット値の組を前記CPUに読み取り可能に設定する、マスターIDポート設定工程と、
前記スレーブIDポートにおいて、前記第2の表現工程により表現された前記1つのIDコードに対応するビット値の組を前記CPUに読み取り可能に設定する、スレーブIDポート設定工程と、
前記マスターIDポートを介してビット値の組を読み込む、第1の読み込み工程と、
前記マスターIDポートを介して読み込んだビット値の組が、前記第1の表現手段により表現された前記複数のIDコードのいずれのビット値の組に一致するかを判定する、第1の判定工程と、
読み込まれたビット値の組が前記複数のIDコードのいずれかのビット値の組と一致した場合、一致した当該IDコードをマスターID候補として採用し、読み込まれたビット値の組が前記複数のIDコードのいずれかのビット値の組から前記第1の数より少ない第2の数のビットで値が異なっている場合、前記読み込まれたビット値の組を、異なる当該IDコードのビット値の組に訂正し、該IDコードをマスターID候補として採用する、マスターID候補決定工程と、
前記スレーブIDポートを介してビット値の組を読み込む、第2の読み込み工程と、
前記スレーブIDポートを介して読み込んだビット値の組が、前記第2の表現手段により表現された前記複数のIDコードのいずれのビット値の組に一致するかを判定する、第2の判定工程と、
読み込まれたビット値の組が前記複数のIDコードのいずれかのビット値の組と一致した場合、一致した当該IDコードをスレーブID候補として採用し、読み込まれたビット値の組が前記複数のIDコードのいずれかのビット値の組から前記第1の数より少ない第2の数のビットで値が異なっている場合、前記読み込まれたビット値の組を、異なる当該IDコードのビット値の組に訂正し、該IDコードをスレーブID候補として採用する、スレーブID候補決定工程と、
前記スレーブID候補のビット値の組と前記マスターID候補のビット値の組とが一致した場合、該マスターID候補を前記CPUに設定されたIDコードとして採用する、ID決定工程と、
を備える、CPUポート設定方法。
【請求項12】
複数のIDコードから1つのIDコードをCPUに判別させるためのCPUポート設定方法であって、
前記複数のIDコードを複数のビット値の組で各々冗長に表現し、該ビット値の組の各々は、少なくとも第1の数のビットで相互に値が異なっている、第1の表現工程と、
前記第1の表現工程で表現されたビット値の組を反転することにより得られるビット値の組で前記複数のIDコードを冗長に表現する、第2の表現工程と、
前記CPUの入力ポートの一部分をマスターIDポートとして割り当てる、マスターIDポート割り当て工程と、
前記マスターIDポートとは別に前記CPUの入力ポートの一部分をスレーブIDポートとして割り当てる、スレーブIDポート割り当て工程と、
前記マスターIDポートにおいて、前記第1の表現工程により表現された前記複数のIDコードのうち1つのIDコードに対応するビット値の組を前記CPUに読み取り可能に設定する、マスターIDポート設定工程と、
前記スレーブIDポートにおいて、前記第2の表現工程により表現された前記1つのIDコードに対応するビット値の組を前記CPUに読み取り可能に設定する、スレーブIDポート設定工程と、
前記マスターIDポートを介してビット値の組を読み、マスターID候補を決定する、第1の読み込み工程と、
前記スレーブIDポートを介してビット値の組を読み込み、マスターID候補を決定する、第2の読み込み工程と、
前記スレーブID候補のビット値の組を反転し、該反転したビット値の組と前記マスターID候補のビット値の組とが一致した場合、該マスターID候補を前記CPUに設定されたIDコードとして採用する、ID決定工程と、
を備える、CPUポート設定方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate