(57)【要約】【課題】サブチップが接続されない形態で完成状態のＥＣＵに搭載される場合には、制御用ソフトの不正書換を防止でき、サブチップが接続された形態で開発段階のＥＣＵに搭載される場合には、制御用ソフトの書き換えを効率的に実施可能なマイコンチップの提供。【解決手段】ＥＣＵに搭載されるマイコンの本体チップ１には、ＥＣＵの開発段階において、キャリブレーション用チップ２が端子２２を介して接続される。そして、本体チップ１は、チップ２が接続されている場合に所定電圧になる端子２３を備える。更に本体チップ１では、ＥＣＵ外部のプログラム書換ツールからの書換要求を受けると、ＣＰＵ１２が、Ｉ／Ｏポート１６による端子２３の電圧判定レベルからチップ２の接続／非接続を判別し、接続と判別した場合は、ＥＣＵの種類に固有の認証用データが上記ツールから送信されてきたか否かを判定する認証処理を行わずに、制御用ソフトの書換処理を行う。【選択図】図１
2010250751.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと、該ＣＰＵによって実行される制御用プログラムを成すデータ及び該制御用プログラムの実行時に参照される制御用データが記憶されると共に、その記憶内容が書き換え可能な不揮発性のメモリと、それらを接続するバスとを備え、制御対象を制御するための処理を行う処理装置として車両用電子制御装置に搭載されるマイクロコンピュータチップであって、
前記車両用電子制御装置に搭載された通信回路を介して当該マイクロコンピュータチップと通信可能に接続されるプログラム書換装置から当該マイクロコンピュータチップへ、前記メモリの記憶内容の書き換えを要求する書換要求が送信されて来ると作動して、当該マイクロコンピュータチップが搭載される前記車両用電子制御装置の種類に固有の書換認証用データが、前記プログラム書換装置から送信されてきたか否かを判定する認証処理を行い、その認証処理により前記固有の書換認証用データが送信されてきたと判定したならば、前記メモリ内のデータを前記プログラム書換装置から送られてくるデータに書き換えるための書換処理を行う書換制御手段と、
当該マイクロコンピュータチップの内部において前記バスと接続され、当該マイクロコンピュータチップの外部において他の半導体チップの端子と接続される接続端子と、
前記接続端子に自己の端子が接続されることで当該マイクロコンピュータチップに接続された状態になる前記他の半導体チップとしてのサブチップであって、開発段階の前記車両用電子制御装置においては当該マイクロコンピュータチップに接続されるが、完成状態の前記車両用電子制御装置においては当該マイクロコンピュータチップに接続されないサブチップが、当該マイクロコンピュータチップに接続されているか否かを判定する接続判定手段とを備えており、
更に、前記書換制御手段は、前記接続判定手段により前記サブチップが接続されていると判定された場合には、前記認証処理を行わずに前記書換処理を行うこと、
を特徴とするマイクロコンピュータチップ。
【請求項２】
請求項１に記載のマイクロコンピュータチップにおいて、
前記接続端子とは別の端子であって、前記サブチップが当該マイクロコンピュータチップに接続された状態の場合に前記サブチップの特定の端子が接続される接続判定用端子を備え、
前記接続判定手段は、前記接続判定用端子から特定の信号が入力されたか否かにより、前記サブチップが接続されているか否かを判定すること、
を特徴とするマイクロコンピュータチップ。
【請求項３】
請求項２に記載のマイクロコンピュータチップにおいて、
前記接続判定手段は、前記サブチップが接続されているか否かを判定する動作を、当該マイクロコンピュータチップに電源が投入されてから一定時間が経過するまでを限度として、前記サブチップが接続されていると判定するまで行うようになっていること、
を特徴とするマイクロコンピュータチップ。
【請求項４】
請求項２又は請求項３に記載のマイクロコンピュータチップにおいて、
前記接続判定用端子の電圧は、当該接続判定用端子に前記サブチップの前記特定の端子が接続されることで特定の電圧になり、
前記接続判定手段は、前記接続判定用端子の電圧が前記特定の電圧であるか否かにより、前記サブチップが接続されているか否かを判定すること、
を特徴とするマイクロコンピュータチップ。
【請求項５】
請求項２又は請求項３記載のマイクロコンピュータチップにおいて、
前記接続判定手段は、前記接続判定用端子から特定周波数の信号が入力されたか否かにより、前記サブチップが接続されているか否かを判定すること、
を特徴とするマイクロコンピュータチップ。
【請求項６】
請求項２又は請求項３記載のマイクロコンピュータチップにおいて、
前記接続判定手段は、前記接続判定用端子から特定の通信信号が入力されたか否かにより、前記サブチップが接続されているか否かを判定すること、
を特徴とするマイクロコンピュータチップ。
【請求項７】
請求項１に記載のマイクロコンピュータチップにおいて、
前記接続判定手段は、
前記プログラム書換装置から当該マイクロコンピュータチップへ前記サブチップと認証を行うためのサブチップ認証用データが送信されて来たか否かを判定して、前記サブチップ認証用データが送信されて来たと判定したなら、そのサブチップ認証用データを前記サブチップに送信する動作を行い、そのサブチップ認証用データが前記サブチップに適合するものであると前記サブチップにより判定されたことを示す合格通知が、前記サブチップから当該マイクロコンピュータチップに送信されて来たならば、前記サブチップが接続されていると判定すること、
を特徴とするマイクロコンピュータチップ。
【請求項８】
請求項７に記載のマイクロコンピュータチップにおいて、
前記接続判定手段は、前記プログラム書換装置から当該マイクロコンピュータチップに前記書換要求が送信されて来ると作動すること、
を特徴とするマイクロコンピュータチップ。
【請求項９】
請求項７又は請求項８に記載のマイクロコンピュータチップにおいて、
前記書換認証用データと前記サブチップ認証用データは、同じフォーマットのデータであること、
を特徴とするマイクロコンピュータチップ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両用電子制御装置に用いられるマイクロコンピュータチップに関する。
【背景技術】
【０００２】
車両のエンジンなどを制御する車両用電子制御装置（以下、ＥＣＵともいう）では、それに搭載した処理装置としてのマイクロコンピュータ（以下、マイコンともいう）によって、制御対象を制御するための様々な処理を行うようになっている。
【０００３】
また、車両及びＥＣＵの開発段階においては、ＥＣＵを車両に搭載した状態で動作させてみて、そのＥＣＵの制御対象に対する実際の制御特性を検証すると共に、その検証結果に応じて、ＥＣＵのマイコンに実行させる制御用ソフトウェアを適宜変更することにより、そのＥＣＵの制御特性を調整して、制御対象の機能や性能が目標の状態となるようにする、といった制御特性調整の作業を行うようにしている。
【０００４】
尚、制御用ソフトウェアとは、制御用プログラムを成すデータ（命令コードのデータ）のことだけでなく、その制御用プログラムの実行時に参照されるデータマップや係数などの制御用データのことも含んでいる。また、制御特性としては、エンジンの制御を例に挙げると、例えば各気筒に対する点火のタイミングや燃料噴射のタイミングなどがある。また、以下では、こうした制御特性の調整のことを、キャリブレーションと言う。
【０００５】
そして、こうした調整作業を効率良く行うために、ＥＣＵに搭載されるマイコンのチップ内には、図１１（ａ）に示すように、制御特性調整用の回路であるキャリブレーション回路１０を設けるようにしていた。
【０００６】
そのキャリブレーション回路１０は、マイコンチップ内のバス１１を介して、マイコンチップ内の各部（即ち、バス１１で互いに接続されたＣＰＵ１２、ＲＯＭ１３、ＲＡＭ１４、及び周辺回路１５等）と接続されており、また、図示は省略しているが、ＥＣＵ外部のキャリブレーション用ツール（調整作業用ツール）と特定の通信インターフェースを介して接続されるようになっている。尚、マイコンチップ内の周辺回路１５としては、Ｉ／Ｏポート、シリアル通信回路、タイマ、Ａ／Ｄ変換回路等がある。
【０００７】
そして、キャリブレーション回路１０は、キャリブレーション用ツールからの指令に応じて動作する。例えば、キャリブレーション回路１０は、ＣＰＵ１２のモードを切り替えて、そのＣＰＵ１２が、ＲＯＭ１３の特定領域に記憶されている制御用データを、当該キャリブレーション回路１０の内部に設けられているＲＡＭにコピーし、制御用プログラムを実行する際に、そのＲＡＭ内の制御用データを参照するようにさせる機能や、更にそのＲＡＭ内の制御用データをキャリブレーション用ツールからの指令によりリアルタイムに変更する機能（これがキャリブレーションのための主たる機能）を持つ。勿論、そのＲＡＭ内の制御用データは、始めからキャリブレーション用ツールから送るようにする方法もある。また例えば、キャリブレーション回路１０には、マイコンのＲＯＭ１３から制御用ソフトウェアの全部又は一部を読み出してキャリブレーション用ツールへ出力する機能もある。尚、特許文献１には、ＣＰＵに、不揮発性メモリ内のデータに代えて、ＲＡＭ内のデータを参照させることで、そのＣＰＵの動作を停止させることなくチューニングを行うことが記載されている。
【０００８】
ところで、上記のようなキャリブレーション回路の機能は、量産車両に組み付けられる完成状態のＥＣＵ（即ち量産品のＥＣＵ）に搭載されるマイコン（以下、量産用マイコンという）には不要なものである。
【０００９】
このため、チップ内にキャリブレーション回路を備えたマイコンを量産用マイコンとして用いると、その量産用マイコンのコストアップを招くと共に、量産用に機能を最適化したマイコン（即ち、キャリブレーション回路を削除したマイコン）と比較すると、消費電流の増大や動作速度の低下を招くこととなる。余分な回路がバスに接続されることになるからである。また、キャリブレーション回路は、前述したようにマイコン内のＲＯＭにアクセスする機能を有しているため、量産用マイコンの機密性を低下させてしまう。つまり、そのキャリブレーション回路にマイコンの外部から指令して、ＲＯＭ内のデータを読み出す、といった不正行為が行われる可能性が生じる。
【００１０】
そこで、こうした問題を解決するために、本発明者は以下のことを考えた。
まず、図１１（ｂ），（ｃ）に示すように、マイコンのチップを、キャリブレーション回路１０以外のマイコン本来の機能部分を含む本体チップ２１と、キャリブレーション回路１０を含むサブチップとしてのキャリブレーション用チップ３１とに分けて（即ち別チップ化して）製造する。そして、図１１（ｂ）に示すように、ＥＣＵの開発時には、本体チップ２１にキャリブレーション用チップ３１を接続した状態でその両チップ２１，３１を１パッケージにパッケージングしたキャリブレーション機能付きマイコンを作成し、それを用いる。一方、図１１（ｃ）に示すように、ＥＣＵの量産時には、本体チップ２１のみをパッケージングした量産用マイコンを作成し、それを用いる。
【００１１】
また、この場合、本体チップ２１には、その本体チップ２１内でバス１１と接続される接続端子２２を設けておき、その接続端子２２にキャリブレーション用チップ３１側の端子３２が接続されることで、キャリブレーション用チップ３１（詳しくは、そのチップ３１におけるキャリブレーション回路１０）が本体チップ２１側のバス１１と接続される状態、即ち、両チップ２１，３１が接続された状態となるようにしておけば良い。そして、このようにすれば、キャリブレーション用チップ３１（詳しくは、キャリブレーション回路１０）は、本体チップ２１との接続状態において、上記接続端子２２及びバス１１を介し本体チップ２１内の各部にアクセスすることができる。尚、特許文献２には、複数のチップによって１つの半導体装置を構成することが記載されている。
【００１２】
一方、ＥＣＵにおいては、マイコンのＲＯＭ１３として、電気的に記憶内容の書き換え（詳しくは消去及び書き込み）が可能なフラッシュＲＯＭなどの不揮発性メモリを用い、そのＲＯＭ１３内の制御用ソフトウェアを、市場への供給後でも書き換え可能に構成している。
【００１３】
即ち、この種のＥＣＵにおいて、マイコンは、通常時には、ＲＯＭ１３内の制御用プログラムを実行することでエンジン等の制御対象を制御するための処理を行うが、ＥＣＵに別途接続されるプログラム書換装置からの書換要求を受けると、自己の動作モードを書換モードに移行させる。そして、マイコンは、書換モードになると、当該マイコンが搭載されるＥＣＵの種類に固有の書換認証用データがプログラム書換装置から送信されてきたか否かを判定する認証処理を行い、その認証処理により固有の書換認証用データが送信されてきたと判定したならば、ＲＯＭ１３内のデータをプログラム書換装置から送られてくるデータに書き換えるための書換処理を行う。
【００１４】
尚、書換処理を開始する前に認証処理を行うのは、制御用ソフトウェアが不正に書き換えられるのを防止するというセキュリティのためである。そして、こうしたセキュリティの機能（即ち、制御用ソフトウェアの不正書換防止機能）は、開発が終わって完成した量産品のＥＣＵに搭載される量産用マイコンにおいて特に必要である。また、マイコンにおいて、上記不正書換防止機能及び制御用ソフトウェアを書き換えるための機能は、一般には、制御用ソフトウェアとは別の書換制御ソフトウェアによって実現される。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開平１０−２０９０６号公報
【特許文献２】特開平８−１６７７０３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
ところで、図１１（ｂ），（ｃ）のように本体チップ２１とキャリブレーション用チップ３１とに分けるようにした場合、下記の問題がある。
まず、本体チップ２１を、キャリブレーション用チップ３１が接続されない量産用マイコン（図１１（ｃ））の形態とした場合、そのマイコンは開発が終了した量産品である完成状態のＥＣＵに搭載されるため、前述した制御用ソフトウェアの不正書換防止機能が必須である。
【００１７】
これに対して、本体チップ２１を、キャリブレーション用チップ３１が接続されたキャリブレーション機能付きマイコン（図１１（ｂ））の形態とした場合には、そのマイコンは開発段階で未完成状態のＥＣＵに搭載されるため、制御用ソフトウェアの不正書換防止機能があると、ＥＣＵの開発効率を低下させてしまう。
【００１８】
なぜならば、ＥＣＵの開発段階において、開発作業を行う作業者は、キャリブレーション回路１０を利用して適切な制御用データを模索する作業と、その結果に応じて、マイコンのＲＯＭ１３内の制御用ソフトウェアを書き換えて実際の動作を確認する作業とを、適宜繰り返すこととなるが、制御用ソフトウェアを書き換えようとする場合には、プログラム書換装置からＥＣＵへ、そのＥＣＵの種類に合った書換認証用データが送信されるように、プログラム書換装置を操作しなければならない。よって、作業者は、自分が担当している開発中のＥＣＵの種類が何で、それにはどの書換認証用データが対応するか、ということを常に把握していなければならないが、その対応関係を間違えてＥＣＵに不適な書換認証用データを与えてしまう可能性があり、そうなると制御用ソフトウェアの書き換えを効率的に実施できず、延いてはＥＣＵの開発効率が低下してしまう。特に、ＥＣＵと書換認証用データとの対応関係を間違える可能性は、一人の作業者が複数種類のＥＣＵの開発を担当する場合に高くなる。
【００１９】
尚、キャリブレーション機能付きマイコンの形態の場合にだけ、書換制御ソフトウェアとして、不正書換防止機能を実現する部分がないソフトウェアを用いれば、ＥＣＵの開発段階において制御用ソフトウェアを書き換える際に書換認証用データが不要となり、前述した開発効率の低下は回避できるが、現実的ではない。そのようにしてしまうと、ソフトウェアの管理が煩雑になる上に、ＥＣＵ開発段階のマイコンと量産用マイコンとで、ソフトウェアが違うものになってしまう（即ち、本体チップ２１がソフトウェアも含めて同じものにならない）ため、ＥＣＵ開発段階のマイコンと量産用マイコンの本体チップ２１を同一にしたいという本意にそぐわないからである。
【００２０】
こうした背景から、本発明は、サブチップが接続されない形態で完成状態のＥＣＵに搭載される場合には、制御用ソフトウェアの不正書換を防止でき、サブチップが接続された形態で開発段階のＥＣＵに搭載される場合には、制御用ソフトウェアの書き換えを効率的に実施できるマイコンチップの提供を目的としている。
【課題を解決するための手段】
【００２１】
請求項１のマイコン（マイクロコンピュータ）チップは、制御対象を制御するための処理を行う処理装置として車両用電子制御装置に搭載されるものであり、ＣＰＵと、不揮発性のメモリと、それらを接続するバスとを備えている。そして、不揮発性のメモリには、ＣＰＵによって実行される制御用プログラムを成すデータ及び該制御用プログラムの実行時に参照される制御用データが記憶される。
【００２２】
また、このマイコンチップには書換制御手段が備えられており、その書換制御手段は、車両用電子制御装置に搭載された通信回路を介して当該マイコンチップと通信可能に接続されるプログラム書換装置から当該マイコンチップへ、前記メモリの記憶内容の書き換えを要求する書換要求が送信されて来ると作動する。そして、書換制御手段は、当該マイコンチップが搭載される車両用電子制御装置の種類に固有の書換認証用データが、プログラム書換装置から送信されてきたか否かを判定する認証処理を行い、その認証処理により前記固有の書換認証用データが送信されてきたと判定したならば、前記メモリ内のデータをプログラム書換装置から送られてくるデータに書き換えるための書換処理を行う。
【００２３】
更に、このマイコンチップは接続端子を備えており、その接続端子は、当該マイコンチップの内部において前記バスと接続され、当該マイコンチップの外部において、他の半導体チップであるサブチップの端子と接続される。
【００２４】
また、そのサブチップは、自己の端子が上記接続端子に接続されることで、当該マイコンチップに接続された状態になるものであり、開発段階の車両用電子制御装置においては当該マイコンチップに接続されるが、完成状態の車両用電子制御装置においては当該マイコンチップに接続されないものである。
【００２５】
例えば、サブチップは、車両用電子制御装置を完成させるまでの開発段階において、当該マイコンチップに接続され、前述したキャリブレーション回路１０と同様の処理、即ち、当該マイコンチップのＣＰＵを動作させながら該ＣＰＵが参照する制御用データを外部のキャリブレーション用ツールからの指令に応じて変更する処理や、当該マイコンチップのメモリからデータの全部又は一部を読み出して上記キャリブレーション用ツールへ出力する処理等を行う。そして、車両用電子制御装置の開発段階において、サブチップは、あたかも当該マイコンチップと一体化された状態となる。
【００２６】
そこで特に、請求項１のマイコンチップには、上記サブチップが当該マイコンチップに接続されているか否かを判定する接続判定手段が設けられている。そして、書換制御手段は、接続判定手段により上記サブチップが当該マイコンチップに接続されていると判定された場合には、前記認証処理を行わずに前記書換処理を行うようになっている。
【００２７】
このような請求項１のマイコンチップによれば、サブチップが接続されない形態で完成状態の車両用電子制御装置（即ち、量産品の車両用電子制御装置）に搭載されている場合には、書換制御手段が認証処理を行うこととなるため、メモリ内の制御用ソフトウェア（即ち、制御用プログラムを成すデータ及び制御用データ）が不正に書き換えられるのを防止することができる。プログラム書換装置から車両用電子制御装置（結局は、その車両用電子制御装置に搭載された当該マイコンチップ）へ、その車両用電子制御装置の種類に固有の書換認証用データを送信しなければ、制御用ソフトウェアを書き換えることができないからである。
【００２８】
また、サブチップが接続された形態で開発段階の車両用電子制御装置に搭載されている場合には、接続判定手段により当該マイコンチップにサブチップが接続されていると判定されて、書換制御手段が認証処理を行わなくなるため、制御用ソフトウェアの書き換えを効率的に実施できるようになり、延いては、車両用電子制御装置の開発効率を向上させることができる。車両用電子制御装置の開発作業者は、プログラム書換装置から開発中の車両用電子制御装置へ、その車両用電子制御装置の種類に固有の書換認証用データを送信するための作業をしなくても、制御用ソフトウェアを書き換えることができるからである。
【００２９】
よって、請求項１のマイコンチップによれば、量産品の車両用電子制御装置における制御用ソフトウェアの不正書換を防止できると共に、車両用電子制御装置の開発効率を向上させることができる。
【００３０】
ところで、接続判定手段は、請求項２に記載の如く構成することができる。
即ち、請求項２のマイコンチップは、前記接続端子とは別の端子であって、サブチップが当該マイコンチップに接続された状態の場合にサブチップの特定の端子が接続される接続判定用端子を備えており、接続判定手段は、その接続判定用端子から特定の信号が入力されたか否かにより、サブチップが接続されているか否かを判定する。そして、この構成によれば、サブチップの上記特定の端子から上記特定の信号が出力されるようにしておくことで、サブチップが当該マイコンチップに接続されているか否かを確実に判定できる。
【００３１】
次に、請求項３のマイコンチップでは、請求項２のマイコンチップにおいて、接続判定手段は、サブチップが接続されているか否かを判定する動作を、当該マイコンチップに電源が投入されてから一定時間が経過するまでを限度として、そのサブチップが接続されていると判定するまで行うようになっている。
【００３２】
この構成によれば、量産品の車両用電子制御装置において、不正行為者が何等かの手法によって、当該マイコンチップにサブチップが接続されていると接続判定手段に誤判定させようとした場合（つまり、書換制御手段が認証処理を行うことなく書換処理を行うようにさせて、制御用ソフトウェアを不正に書き換えようとした場合）に、電源投入時から一定時間が過ぎれば、そのような誤判定がされることはないため、制御用ソフトウェアの不正書換防止という面でのセキュリティ性を一層高めることができる。また、電源投入時から上記一定時間が経過した後は、接続判定手段が判定動作を行わないため、その接続判定手段の構成によっては、当該マイコンチップにおける消費電流や発熱量を低減することができる。
【００３３】
一方、請求項２，３のマイコンチップにおいて、接続判定手段の具体的な構成としては、請求項４〜６に記載のようなものが好ましい。
まず、請求項４のマイコンチップでは、接続判定用端子の電圧が、当該接続判定用端子にサブチップの前記特定の端子が接続されることで特定の電圧になる。そして、接続判定手段は、接続判定用端子の電圧が前記特定の電圧であるか否かにより、サブチップが接続されているか否かを判定する。つまり、接続判定用端子の電圧が特定の電圧であれば、サブチップが接続されていると判定し、特定の電圧でなければ、サブチップが接続されていないと判定する。より具体的には、例えば接続判定手段は、接続判定用端子の電圧が、特定の電圧を含む所定範囲内であれば、サブチップが接続されていると判定し、その所定範囲内でなければ、サブチップが接続されていないと判定するように構成することができる。
【００３４】
そして、この請求項４の構成によれば、電圧を判定するだけで良いため、接続判定手段としての回路を簡素化することができ、また低コスト化することもできる。
また、請求項５のマイコンチップでは、接続判定手段は、接続判定用端子から特定周波数の信号が入力されたか否かにより、サブチップが接続されているか否かを判定する。
【００３５】
この請求項５の構成によれば、請求項４の構成よりも、判定に関するセキュリティ性を高めることができるという点で有利である。つまり、量産品の車両用電子制御装置において、不正行為者が接続判定用端子に何等かの電圧や信号を与えてみた場合に、本当は当該マイコンチップにサブチップが接続されていないにも拘わらず、接続判定手段が、サブチップが接続されていると判定してしまう可能性を低くすることができる。そして、このため、制御用ソフトウェアの不正書換防止という面でのセキュリティ性も高めることができる。
【００３６】
また、請求項６のマイコンチップでは、接続判定手段は、接続判定用端子から特定の通信信号が入力されたか否かにより、サブチップが接続されているか否かを判定する。
この請求項６の構成によれば、判定に関するセキュリティ性及び制御用ソフトウェアの不正書換防止という面でのセキュリティ性を一層高めることができる。なお、勿論、上記特定の通信信号の内容を複雑化すればするほど、セキュリティ性を上げることができる。
【００３７】
次に、請求項７のマイコンチップでは、請求項１のマイコンチップにおいて、接続判定手段は、プログラム書換装置から当該マイコンチップへ、サブチップと認証を行うためのサブチップ認証用データが送信されて来たか否かを判定して、サブチップ認証用データが送信されて来たと判定したなら、そのサブチップ認証用データをサブチップに送信する動作を行い、そのサブチップ認証用データがサブチップに適合するものであるとサブチップにより判定されたことを示す合格通知が、サブチップから当該マイコンチップに送信されて来たならば、サブチップが接続されていると判定する。
【００３８】
このようなマイコンチップでは、サブチップが接続された形態で開発段階の車両用電子制御装置に搭載されている場合には、プログラム書換装置から、サブチップに適合するサブチップ認証用データを送信してやることで、接続判定手段が当該マイコンチップにサブチップが接続されていると判定し、書換制御手段が認証処理を行わなくなる。
【００３９】
より詳しく説明すると、プログラム書換装置からのサブチップ認証用データは、当該マイコンチップからサブチップに送信され、サブチップは、そのサブチップ認証用データが自己に適合するものであるか否かを判定して、自己に適合するものであれば、当該マイコンチップに合格通知を送信することとなる。そして、当該マイコンチップでは、サブチップから合格通知が送信されて来たなら、サブチップが接続されていると接続判定手段が判定することとなり、書換制御手段が認証処理を行わなくなる。
【００４０】
このため、車両用電子制御装置の開発段階において、開発作業者は、プログラム書換装置から車両用電子制御装置（詳しくは、サブチップが接続された形態の当該マイコンチップが搭載されている車両用電子制御装置）へ、その車両用電子制御装置に適合した書換認証用データを送信させなくても、サブチップに適合したサブチップ認証用データを送信させることで、制御用ソフトウェアを書き換えることができる。
【００４１】
特に、サブチップの種類数は、最小の１つでも良く、車両用電子制御装置の種類数と比べると格段に少なくすることができるため、車両用電子制御装置の開発段階において、開発作業者が把握しなければならないサブチップ認証用データの種類数は、書換認証用データの種類数と比べると格段に少なくて済む。よって、車両用電子制御装置の開発段階において、開発作業者がプログラム書換装置から書換認証用データを送信させるよりも、サブチップ認証用データを送信させる方が、誤った認証用データを送信させてしまう可能性を低くすることができ、延いては、制御用ソフトウェアの書き換えを効率的に実施できるようになる。
【００４２】
また、請求項８に記載のように、請求項７のマイコンチップにおいて、接続判定手段は、プログラム書換装置から当該マイコンチップに前記書換要求が送信されて来ると作動するように構成することができる。
【００４３】
このように構成すれば、車両用電子制御装置の開発段階において、開発作業者は、プログラム書換装置から車両用電子制御装置へ、書換要求を送信させ、その次にサブチップ認証用データを送信させることで、制御用ソフトウェアを書き換えることができる。
【００４４】
そして、このため、次のような利点が得られる。
まず背景として、車両用電子制御装置の開発作業者は、装置開発の最終段階において、サブチップが接続されない形態の当該マイコンチップを搭載した量産品と同じ車両用電子制御装置に対し、プログラム書換装置により制御用ソフトウェアの書き込みを行って、その車両用電子制御装置の動作チェックを行う場合がある。尚、マイコンチップのメモリに制御用ソフトウェアが書き込まれていない状態で、書換制御手段による書換処理が行われたならば、そのマイコンチップのメモリにはプログラム書換装置からの制御用ソフトウェアが新規に書き込まれることとなる。
【００４５】
ここで、マイコンチップが請求項８のマイコンチップならば、開発作業者は、上記量産品と同じ車両用電子制御装置に対して制御用ソフトウェアを書き込む場合と、開発途中の車両用電子制御装置について制御用ソフトウェアを書き換える場合との、何れの場合でも、プログラム書換装置から書換要求を送信させ、次いで何等かの認証用データを送信させることとなる。つまり、前者の場合には、認証用データとして書換認証用データを送信させ、後者の場合には、認証用データとしてサブチップ認証用データを送信させることとなる。よって、両方の場合で作業自体には差が無いため、開発作業者が作業手順を混乱してしまう可能性を低くすることができるのである。
【００４６】
また、請求項７，８のマイコンチップにおいて、書換認証用データとサブチップ認証用データは、同じフォーマットのデータであることが好ましい。
なぜなら、プログラム書換装置と当該マイコンチップとの通信において、書換認証用データとサブチップ認証用データとの各々を、同じルールで送受信することができるからである。更に、ハードウェア面でも、プログラム書換装置において、送信対象の書換認証用データを記憶するための送信バッファと、送信対象のサブチップ認証用データを記憶するための送信バッファとを共通化することができ、当該マイコンチップにおいて、受信した書換認証用データを記憶するための受信バッファと、受信したサブチップ認証用データを記憶するための受信バッファとを共通化することができる。
【００４７】
尚、同じフォーマットのデータとは、同じビット数のデータであり、且つ、そのデータのビット列における特定位置（例えば、先頭の特定ビット分や最後尾の特定ビット分）に、そのデータが何であるか（そのデータの種類）を示す識別情報が配置されたデータ、ということである。
【図面の簡単な説明】
【００４８】
【図１】第１実施形態の本体チップとキャリブレーション用チップとの構成を表す構成図である。
【図２】第１実施形態の本体チップがどのように使用されるかを説明するための説明図である。
【図３】第１実施形態の本体チップのＣＰＵが実行する書換モード時処理（ａ）と、プログラム書換ツールが行う処理（ｂ）とを表すフローチャートである。
【図４】第２実施形態の本体チップとキャリブレーション用チップとの構成を表す構成図である。
【図５】第３実施形態の本体チップとキャリブレーション用チップとの構成を表す構成図である。
【図６】第３実施形態の本体チップとキャリブレーション用チップとの各ハンドシェイク通信回路間で行われる通信を説明するフローチャートである。
【図７】変形例を説明するためのフローチャートである。
【図８】第４実施形態の本体チップとキャリブレーション用チップとの構成を表す構成図である。
【図９】第４実施形態の本体チップのＣＰＵが実行する書換モード時処理（ａ）と、プログラム書換ツールが行う処理（ｂ）とを表すフローチャートである。
【図１０】第４実施形態のキャリブレーション用チップにおける認証通信回路が行う処理を表すフローチャートである。
【図１１】従来技術を説明するための説明図である。
【発明を実施するための形態】
【００４９】
以下に、本発明が適用された実施形態のマイコンチップについて説明する。尚、本実施形態のマイコンチップは、図１１（ｂ），（ｃ）に示したマイコンの本体チップ２１に相当するものであり、以下では、本体チップと言う。また、本実施形態において、図１１に示したものと同じものについては、その図１１で使用した符号と同じ符号を用いるため、説明を省略する。
［第１実施形態］
図１に示すように、第１実施形態の本体チップ１は、図１１（ｂ），（ｃ）に示したマイコンの本体チップ２１と比較すると、下記（１−１）〜（１−３）の点が異なっている。尚、本体チップ１は、周辺回路１５として、Ｉ／Ｏポート１６、シリアル通信回路１７、及びタイマ１８や、Ａ／Ｄ変換回路（図示省略）等を備えている。また、本体チップ１内のＲＯＭ１３は、電気的に記憶内容の書き換えが可能な不揮発性メモリであり、本実施形態ではフラッシュＲＯＭである。
【００５０】
（１−１）接続端子２２に接続されるのがキャリブレーション用チップ３１と同様のキャリブレーション用チップ２であるが、そのキャリブレーション用チップ２は、キャリブレーション用チップ３１と比較すると、前述の端子３２とは別の端子３３を更に備えており、その端子３３は、キャリブレーション用チップ２内において、抵抗Ｒａを介して電源電圧に接続（プルアップ）されている。
【００５１】
尚、本実施形態において、電源電圧は例えば５Ｖであり、抵抗Ｒａの抵抗値は例えば５ｋΩに設定されている。また、図１において、本体チップ１側の接続端子２２と、キャリブレーション用チップ２側の端子３２は、それぞれ１つのみ図示しているが、それらは実際には、キャリブレーション用チップ２側のキャリブレーション回路１０を本体チップ１内のバス１１に接続させるための信号線の数だけ設けられている。
【００５２】
（１−２）本体チップ１には、接続端子２２とは別の端子であって、キャリブレーション用チップ２が当該本体チップ１に接続された状態の場合にキャリブレーション用チップ２の上記端子３３が接続される端子２３が設けられている。そして、その端子２３は、本体チップ１の内部において、抵抗Ｒｂを介してグランドラインに接続（プルダウン）されている。また、抵抗Ｒｂの抵抗値は例えば１００ｋΩに設定されている。
【００５３】
このため、本体チップ１の端子２３の電圧は、その端子２３にキャリブレーション用チップ２の端子３３が接続されている場合と接続されていない場合とで異なる電圧となる。具体的には、端子３３が接続されていれば約４．７Ｖという特定の電圧になり、端子３３が接続されていなければ０Ｖとなる。
【００５４】
（１−３）本体チップ１において、端子２３の電圧は、Ｉ／Ｏポート１６に入力され、そのＩ／Ｏポート１６にて電圧レベルがハイとローとの何れであるかが判定される。
例えば、本実施形態において、Ｉ／Ｏポート１６は、端子２３の電圧が４．５Ｖよりも高ければハイと判定し、４．５Ｖ未満であればローと判定する。そして、本実施形態では、Ｉ／Ｏポート１６が、端子２３の電圧をハイと判定することが、本体チップ１にキャリブレーション用チップ２が接続されていると判定することに相当し、Ｉ／Ｏポート１６が、端子２３の電圧をローと判定することが、本体チップ１にキャリブレーション用チップ２が接続されていないと判定することに相当している。
【００５５】
尚、他の例として、Ｉ／Ｏポート１６とは別の電圧判定回路を設け、その電圧判定回路は、端子２３の電圧が上記４．７Ｖを包括する所定範囲内（例えば４．６Ｖ〜４．８Ｖ）であればハイ（即ち、キャリブレーション用チップ２が接続されている）と判定し、その範囲内でなければロー（即ち、キャリブレーション用チップ２が接続されていない）と判定する、というように構成しても良い。
【００５６】
次に、本体チップ１がどのように使用されるかについて説明する。
まず図２は、本体チップ１にキャリブレーション用チップ２を接続した状態でその両チップ１，２を１パッケージにパッケージングしたキャリブレーション機能付きマイコン５０を作成し、そのマイコン５０を、車両のエンジンを制御するＥＣＵ５１に搭載した場合を示している。つまり、図２のＥＣＵ５１は開発段階のものであり未完成状態のものである。
【００５７】
図２に示すように、ＥＣＵ５１には、マイコン５０の他に、そのマイコン５０と信号のやり取りをするＩＣやトランジスタ等の能動素子５２や、抵抗及びコンデンサ等の受動素子５３が搭載されている。そして、それらの能動素子５２及び受動素子５３により、点火装置やインジェクタ等のアクチュエータを駆動するための駆動回路や、センサからの信号を入力するための入力回路等が構成されている。また、能動素子５２のうちの１つであるＩＣ５２ａは、ＥＣＵ５０の外部装置であるプログラム書換ツール５８とマイコン５０（詳しくは、本体チップ１）とを通信可能に接続する通信回路である。
【００５８】
更に、ＥＣＵ５１には、車載バッテリの電圧（バッテリ電圧）から一定の電源電圧を生成して、その電源電圧をマイコン５０や能動素子５２等の各部に供給する電源ＩＣ５４や、コネクタ５５も搭載されている。そのコネクタ５５は、エンジンを制御するためのセンサやアクチュエータ等の機器を当該ＥＣＵ５１に接続させるためのものである。そして、上記プログラム書換ツール５８も、そのコネクタ５５を介してＥＣＵ５１に接続される。具体的には、コネクタ５５から車両内通信用の通信線が伸びており、プログラム書換ツール５８は、その通信線に設けられているコネクタ５９に接続されることで、ＥＣＵ５１内の上記ＩＣ５２ａと接続されるようになっている。
【００５９】
また特に、開発段階である図２のＥＣＵ５１には、「背景技術」の欄で述べたキャリブレーション用ツール（調整作業用ツール）ＣＴを、キャリブレーション用チップ２内に構成されたキャリブレーション回路１０に接続させるための通信インターフェース５６も設けられている。
【００６０】
尚、図１では図示を省略しているが、本体チップ１には、端子２２，２３とは別に、上記駆動回路及び入力回路やプログラム書換ツール５８と信号の入出力を行うための入出力端子が複数設けられている。そして、本体チップ１は、それのシリアル通信回路１７が上記入出力端子のうちの一部を介してＩＣ５２ａに接続され、そのＩＣ５２ａを介してプログラム書換ツール５８とシリアル通信を行う。また、キャリブレーション用チップ２には、端子３２，３３とは別に、上記通信インターフェース５６に接続されるための通信用端子が複数設けられている。
【００６１】
ここで、本体チップ１とキャリブレーション用チップ２との接続形態としては、例えば図２における「構成１」のような形態が考えられる。
即ち、はんだボールによってＥＣＵ５１のマザーボードに実装されることとなるインターポーザ６１の上に、本体チップ１が搭載され、更に、その本体チップ１の上にキャリブレーション用チップ２が搭載されて、インターポーザ６１と本体チップ１とキャリブレーション用チップ２との相互の接続（配線）が、ボンディングワイヤ（接続用ボンディング）６２によって行われる、という構成である。尚、本体チップ１とキャリブレーション用チップ２は、インターポーザ６１上で樹脂６３により封止される。また、図２の「構成１」において、はんだボールは、丸（○）で示されている。
【００６２】
この「構成１」の場合、本体チップ１とキャリブレーション用チップ２の各端子は、上記ボンディングワイヤ６２の先端が接続されるパッドである。そして、本体チップ１の端子２２，２３と、キャリブレーション用チップ２の端子３２，３３は、ボンディングワイヤ６２によって図１の如く接続されることとなる。また、本体チップ１の他の端子（入出力端子）と、キャリブレーション用チップ２の他の端子（通信用端子）は、ボンディングワイヤ６２、インターポーザ６１に形成された配線、及びインターポーザ６１の下面のはんだボールを介して、ＥＣＵ５１のマザーボードに形成された配線に接続される。
【００６３】
また、本体チップ１とキャリブレーション用チップ２との接続形態としては、例えば図２における「構成２」のような形態も考えられる。
即ち、インターポーザ６１の上に、本体チップ１がはんだボールによって実装され、更に、その本体チップ１の上にキャリブレーション用チップ２がはんだボールによって実装される、という構成である。尚、図２の「構成２」においても、はんだボールは、丸（○）で示されている。また、この「構成２」においても、本体チップ１とキャリブレーション用チップ２は、インターポーザ６１上で樹脂６３により封止されるが、この場合の封止手法は、いわゆるポッティングというものである。
【００６４】
そして、この「構成２」の場合、キャリブレーション用チップ２の各端子は、キャリブレーション用チップ２の下面に設けられたはんだボール用のパッドである。また、本体チップ１の端子２２，２３は、本体チップ１の上面に設けられたはんだボール用のパッドであり、本体チップ１の他の端子は、本体チップ１の下面に設けられたはんだボール用のパッドである。
【００６５】
そして、本体チップ１の端子２２，２３と、キャリブレーション用チップ２の端子３２，３３は、キャリブレーション用チップ２の下面のはんだボールによって図１の如く接続されることとなる。
【００６６】
また、本体チップ１の他の端子（入出力端子）は、本体チップ１の下面のはんだボール、インターポーザ６１に形成された配線、及びインターポーザ６１の下面のはんだボールを介して、ＥＣＵ５１のマザーボードに形成された配線に接続される。
【００６７】
また、キャリブレーション用チップ２の他の端子（通信用端子）は、キャリブレーション用チップ２の下面のはんだボール、本体チップ１の上面に設けられたはんだボール用のパッド、本体チップ１の内部に貫通ビア技術等で設けられた信号配線６４、本体チップ１の下面のはんだボール、インターポーザ６１に形成された配線、及びインターポーザ６１の下面のはんだボールを介して、ＥＣＵ５１のマザーボードに形成された配線（具体的には、通信インターフェース５６からの配線）に接続される。
【００６８】
そして、図２のＥＣＵ５１では、キャリブレーション用ツールＣＴを通信インターフェース５６に接続して、そのキャリブレーション用ツールＣＴからマイコン５０のキャリブレーション用チップ２（詳しくは、その中のキャリブレーション回路１０）に指令を与えることにより、例えば、本体チップ１内のＣＰＵ１２がＲＯＭ１３内の制御用プログラムを実行する際にキャリブレーション回路１０のＲＡＭ１０ａ内の制御用データを参照するようにすると共に、ＣＰＵ１２を動作させながら上記ＲＡＭ１０ａ内の制御用データを変更したり、本体チップ１内のＲＯＭ１３からデータを読み出して内容を確認したりすることができる。そして、こうした作業により、ＥＣＵ５１の制御特性を所望のものに調整することができる。
【００６９】
一方、プログラムが完成した後のＥＣＵの量産時には、図２の「構成１」又は「構成２」からキャリブレーション用チップ２を除いた構成のマイコン、即ち、本体チップ１のみをパッケージングした量産用マイコンが作成され、その量産用マイコンが図２のマイコン５０に代えてＥＣＵ５１に搭載される。そして、そのＥＣＵ５１が量産品であって完成状態のＥＣＵということになる。
【００７０】
尚、図２に示した「構成１」及び「構成２」は、本体チップ１とキャリブレーション用チップ２とを接続する経路の抵抗と容量成分を、極力抑制できるものであるが、両チップ１，２の接続形態は他の形態であっても良い。
【００７１】
次に、本体チップ１のＣＰＵ１２がＲＯＭ１３内の制御用ソフトウェア（制御用プログラム及び制御用データ）を書き換えるための書換モードになった場合に実行する書換モード時処理と、プログラム書換ツール５８が行う処理とについて、図３を用い説明する。
【００７２】
まず、図３（ａ）は、本体チップ１のＣＰＵ１２が実行する書換モード時処理を表すフローチャートである。尚、この書換モード時処理のソフトウェアである書換制御ソフトウェアは、ＲＯＭ１３の記憶領域のうち、制御用ソフトウェアとは別の記憶領域であって、書き換え対象にはならない記憶領域に記憶されている。
【００７３】
本体チップ１のＣＰＵ１２は、プログラム書換ツール５８から本体チップ１へＲＯＭ１３の記憶内容である制御用ソフトウェアの書き換えを要求する書換要求が送信されて来ると、それまでの通常モードから書換モードに移行する。そして、書換モードに移行すると、図３（ａ）の書換モード時処理を開始する。
【００７４】
図３（ａ）に示すように、ＣＰＵ１２が書換モード時処理を開始すると、まずＳ１０５にて、当該本体チップ１の形態がキャリブレーション用チップ２が接続された形態であるか否かを判定する。本第１実施形態では、Ｉ／Ｏポート１６から端子２３の電圧判定レベルを読み込んで、その電圧判定レベルがハイとローとの何れであるかを判定し、ハイならば、キャリブレーション用チップ２が接続された形態（即ち、キャリブレーション機能付きマイコンの形態）であると判定し、ローならば、キャリブレーション用チップ２が接続されていない形態（即ち、量産用マイコンの形態）であると判定する。
【００７５】
上記Ｓ１０５にて、キャリブレーション用チップ２が接続されていない形態であると判定した場合には（Ｓ１０５：ＮＯ）、Ｓ１１０に進み、プログラム書換ツール５８からのセキュリティ解除データを受信するまで待つ。セキュリティ解除データは、ＥＣＵの種類毎に定められたデータであって、ＥＣＵの制御用ソフトウェアを書き換えても良いか否かを認証するための書換認証用データである。
【００７６】
そして、セキュリティ解除データを受信したならば（Ｓ１１０：ＹＥＳ）、Ｓ１２０に進んで、その受信したセキュリティ解除データが正しいものか否かを判定する認証処理を行う。その認証処理では、プログラム書換ツール５８から受信したセキュリティ解除データが、ＲＯＭ１３に予め記憶されているセキュリティ解除データであって、当該本体チップ１が搭載されるＥＣＵの種類に固有のセキュリティ解除データと同じか否かを判定し、同じであれば、その受信したセキュリティ解除データは正しいものであると判定する。尚、このため、Ｓ１２０の認証処理では、当該本体チップ１が搭載されるＥＣＵの種類に固有のセキュリティ解除データ（書換認証用データ）が、プログラム書換ツール５８から送信されてきたか否かを判定していることになる。
【００７７】
そして、受信したセキュリティ解除データが正しいものと判定しなかった場合（Ｓ１２０：ＮＧ）には、Ｓ１１０に戻るが、受信したセキュリティ解除データが正しいものと判定した場合（Ｓ１２０：ＯＫ）には、書換許可の認証が合格になったとして、Ｓ１３０に進む。
【００７８】
Ｓ１３０では、セキュリティ解除の手続きとして、プログラム書換ツール５８へ、書換許可の認証が合格になったことを示す認証通知を送信する。
そして、その後、Ｓ１４０に進んで、ＲＯＭ１３内の制御用ソフトウェアを書き換えるための書換処理を行う。その書換処理は、プログラム書換ツール５８から送信されて来る制御用ソフトウェアを受信すると共に、ＲＯＭ１３の記憶領域のうち、プログラム書換ツール５８からの制御用ソフトウェアを格納する分の領域を消去し、その消去した領域に、プログラム書換ツール５８から受信した制御用ソフトウェアを書き込む、といった処理である。
【００７９】
次に、Ｓ１５０にて、制御用ソフトウェアの書き換えが正常に終了したか否かを確認するための書換内容チェックを行うと共に、そのチェック結果（即ち、制御用ソフトウェアの書き換えが正常に終了したか否かの結果）を、プログラム書換ツール５８に送信する。尚、Ｓ１５０での書換内容チェックとしては、例えば、ＲＯＭ１３から上記Ｓ１４０で書き込んだ制御用ソフトウェアを読み出し、その読み出した制御用ソフトウェアと、プログラム書換ツール５８から受信してＲＡＭ１４に一時的に記憶している制御用ソフトウェアとが一致しているか否かを判定する。
【００８０】
そして、次のＳ１６０にて、上記Ｓ１５０でのチェック結果を参照して、制御用ソフトウェアの書き換えが正常に終了したか否かを判定し、正常に終了していなければ、Ｓ１４０に戻り、正常に終了したならば、そのまま当該書換モード時処理を終了する。
【００８１】
尚、書換モード時処理が終了すると、ＣＰＵ１２は、何も処理を行わないアイドル状態となり、その後、ＥＣＵへの電源が遮断されて再投入されると、再起動して通常モードとなり、ＲＯＭ１３内の制御用プログラムを実行する。
【００８２】
一方、ＣＰＵ１２は、上記Ｓ１０５にて、キャリブレーション用チップ２が接続されている形態であると判定した場合（Ｓ１０５：ＹＥＳ）には、Ｓ１１０〜Ｓ１３０をスキップして、Ｓ１４０に進む。つまり、その場合には、Ｓ１２０の認証処理を行わずに、Ｓ１４０の書換処理を行うこととなる。
【００８３】
次に、図３（ｂ）は、プログラム書換ツール５８が行う処理を表すフローチャートである。尚、図３（ｂ）の処理は、実際には、プログラム書換ツール５８に備えられたマイコンによって実行される。
【００８４】
図３（ｂ）に示すように、プログラム書換ツール５８では、まずＳ２０５にて、制御用ソフトウェアの書き換え対象であるマイコンが、量産用マイコンなのかキャリブレーション機能付きマイコンなのかを判別する。尚、プログラム書換ツール５８には、使用者が様々な種類の情報を入力するための操作部が備えられており、使用者は、その操作部を操作することで、制御用ソフトウェアの書き換え対象であるマイコンが、量産用マイコンとキャリブレーション機能付きマイコンとの何れであるかを示す情報を入力するようになっている。そして、Ｓ２０５では、その使用者による入力情報に基づいて上記の判別を行う。
【００８５】
このＳ２０５にて、制御用ソフトウェアの書き換え対象であるマイコンが、量産用マイコンであると判別した場合（Ｓ２０５：ＹＥＳ）には、Ｓ２１０に進む。
そして、Ｓ２１０では、当該プログラム書換ツール５８の使用者が操作部を操作して前述のセキュリティ解除データを入力するのを待ち、セキュリティ解除データが入力されると、そのセキュリティ解除データをＥＣＵ（延いては、本体チップ１）へ送信する。すると、そのセキュリティ解除データは、本体チップ１に受信されて、前述したＳ１２０の認証処理に用いられることとなる。
【００８６】
そこで、プログラム書換ツール５８は、次のＳ２２０にて、本体チップ１のＣＰＵ１２により前述のＳ１３０で送信される認証通知を受信するまで待ち、その認証通知を受信したならば（Ｓ２２０：ＹＥＳ）、Ｓ２３０に進む。
【００８７】
Ｓ２３０では、本体チップ１のＲＯＭ１３に更新して書き込むべき制御用ソフトウェア（即ち、新制御用ソフトウェア）をＥＣＵへ送信する。すると、その制御用ソフトウェアは、本体チップ１に受信されて、前述したＳ１４０の書換処理により、本体チップ１のＲＯＭ１３に書き込まれることとなる。
【００８８】
次に、Ｓ２４０にて、ＥＣＵ側で制御用ソフトウェアの書き換えが正常に終了したか否かを判定する。具体的には、本体チップ１のＣＰＵ１２により前述のＳ１５０で送信されるチェック結果を受信し、そのチェック結果の内容から、制御用ソフトウェアの書き換えが正常に終了したか否かを判定する。
【００８９】
そして、制御用ソフトウェアの書き換えが正常に終了していなければ、Ｓ２３０に戻り、正常に終了したならば、そのまま当該図３（ｂ）の処理を終了する。
一方、上記Ｓ２０５にて、制御用ソフトウェアの書き換え対象であるマイコンが、キャリブレーション機能付きマイコンであると判定した場合（Ｓ２０５：ＮＯ）には、Ｓ２１０，Ｓ２２０をスキップして、Ｓ２３０に進む。つまり、その場合には、ＥＣＵへセキュリティ解除データを送信することなく、新制御用ソフトウェアの送信を行うこととなる。
【００９０】
以上のような第１実施形態の本体チップ１によれば、キャリブレーション用チップ２が接続されない量産用マイコンの形態で量産品のＥＣＵに搭載されている場合には、書換モード時処理において、Ｓ１２０の認証処理を行うこととなるため、ＲＯＭ１３内の制御用ソフトウェアが第３者によって不正に書き換えられるのを防止することができる。プログラム書換ツール５８からＥＣＵへ、そのＥＣＵの種類に固有のセキュリティ解除データを送信しなければ、制御用ソフトウェアを書き換えることができないからである。
【００９１】
また、キャリブレーション用チップ２が接続されたキャリブレーション機能付きマイコンの形態で開発段階のＥＣＵに搭載されている場合には、書換モード時処理において、Ｓ１０５で「ＹＥＳ」と判定され、Ｓ１２０の認証処理を行うことなく、Ｓ１４０の書換処理を行うこととなる。このため、制御用ソフトウェアの書き換えを効率的に実施できるようになり、延いては、ＥＣＵの開発効率を向上させることができる。ＥＣＵの開発作業者は、プログラム書換ツール５８から開発中のＥＣＵへ、そのＥＣＵに合ったセキュリティ解除データを送信するための作業（具体的には、そのセキュリティ解除データをプログラム書換ツール５８に入力する操作）をしなくても、制御用ソフトウェアを書き換えることができるからである。
【００９２】
よって、本体チップ１によれば、量産品のＥＣＵにおける制御用ソフトウェアの不正書換を防止できると共に、ＥＣＵの開発効率を向上させることができる。
また、本第１実施形態の本体チップ１では、キャリブレーション用チップ２が接続されているか否かを、端子２３の電圧に基づき判定しているため、その判定のための回路を簡素化及び低コスト化することができる。特に、判定のための回路としてＩ／Ｏポート１６を流用できる。
【００９３】
尚、本第１実施形態では、プログラム書換ツール５８がプログラム書換装置に相当している。また、本体チップ１においては、ＣＰＵ１２による図３（ａ）の書換モード時処理が書換制御手段に相当し、Ｉ／Ｏポート１６が接続判定手段に相当している。また、本体チップ１の端子２３が接続判定用端子に相当し、キャリブレーション用チップ２の端子３３が、接続判定用端子に接続される特定の端子に相当している。
［第２実施形態］
図４に示す第２実施形態の本体チップ３は、第１実施形態の本体チップ１と比較すると、下記（２−１）〜（２−３）の点が異なっている。
【００９４】
（２−１）接続端子２２に接続されるのがキャリブレーション用チップ２と同様のキャリブレーション用チップ４であるが、その接続相手のキャリブレーション用チップ４は、キャリブレーション用チップ２と比較すると、図１の抵抗Ｒａに代えて、特定周波数の信号（例えば１ｋＨｚの信号）を端子３３から出力する発振回路７２を備えている。
【００９５】
（２−２）図１の抵抗Ｒｂに代えて、周波数判定回路７１を備えており、その周波数判定回路７１は、端子２３とバス１１に接続されている。そして、周波数判定回路７１は、端子２３から上記特定周波数の信号が入力されたか否かを判定し、その特定周波数の信号が入力されたと判定したならば、当該本体チップ３にキャリブレーション用チップ４が接続されていると判断して、内部のフラグをオンする。
【００９６】
例えば、周波数判定回路７１は、予め定められた一定時間Ｔａの間に端子２３に生じたパルス（具体的には立ち上がりエッジ又は立ち下がりエッジ）の数をカウンタによって数え、そのカウント数が規定値であれば、端子２３から特定周波数の信号が入力されたと判定するように構成することができる。そして、上記規定値は、キャリブレーション用チップ４の発振回路７２が上記一定時間Ｔａの間に出力するパルスの数と等しい値である。
【００９７】
尚、周波数判定回路７１内の上記フラグは、当該本体チップ３にキャリブレーション用チップ４が接続されているか否かを示すフラグであり、本体チップ３の起動時には、初期状態として、非接続を示す方のオフになっている。また、そのフラグは、バス１１を介してＣＰＵ１２が参照できるようになっている。
【００９８】
（２−３）本体チップ３のＣＰＵ１２は、図３（ａ）の書換モード時処理におけるＳ１０５にて、周波数判定回路７１内の上記フラグを参照して、フラグがオンされていれば、当該本体チップ３の形態が、キャリブレーション用チップ２が接続された形態（キャリブレーション機能付きマイコンの形態）であると判定し、フラグがオンされていなければ、当該本体チップ３の形態が、キャリブレーション用チップ２が接続されていない形態（量産用マイコンの形態）であると判定する。
【００９９】
つまり、第２実施形態の本体チップ３では、端子２３から特定周波数の信号が入力されたか否かにより、キャリブレーション用チップ４が接続されているか否かを判定するようになっている。
【０１００】
このような本体チップ３によれば、第１実施形態よりも、判定に関するセキュリティ性を高めることができる。つまり、量産品のＥＣＵにおいて、不正行為者が端子２３に何等かの電圧や信号を与えてみた場合に、本当はキャリブレーション用チップ４が接続されていないにも拘わらず、そのチップ４が接続されていると判定してしまう可能性を更に低くすることができる。そして、このため、制御用ソフトウェアの不正書換防止という面でのセキュリティ性も高めることができる。
【０１０１】
尚、本実施形態では、周波数判定回路７１が接続判定手段に相当している。
［第３実施形態］
図５に示す第３実施形態の本体チップ５は、第１実施形態の本体チップ１と比較すると、下記（３−１）〜（３−４）の点が異なっている。
【０１０２】
（３−１）接続端子２２に接続されるのがキャリブレーション用チップ２と同様のキャリブレーション用チップ６であるが、その接続相手のキャリブレーション用チップ６は、キャリブレーション用チップ２と比較すると、端子３３に代えて、２つの端子３４，３５を備えており、更に、図１の抵抗Ｒａに代えて、端子３４，３５を介し当該本体チップ５と通信するハンドシェイク通信回路７４を備えている。
【０１０３】
（３−２）本体チップ５は、端子２３に代えて、２つの端子２４，２５を備えている。そして、その各端子２４，２５には、当該本体チップ５にキャリブレーション用チップ６が接続された状態の場合に、そのキャリブレーション用チップ６の上記端子３４，３５がそれぞれ接続される。
【０１０４】
（３−３）図１の抵抗Ｒｂに代えて、ハンドシェイク通信回路７３を備えており、そのハンドシェイク通信回路７３は、端子２４，２５とバス１１に接続されている。そして、ハンドシェイク通信回路７３は、端子２４，２５を介してキャリブレーション用チップ６側のハンドシェイク通信回路７４と接続され、そのハンドシェイク通信回路７４と予め定められた手順で信号をやり取りするハンドシェイク通信を行う。
【０１０５】
そして更に、ハンドシェイク通信回路７３は、ハンドシェイク通信回路７４とのハンドシェイク通信が完了できなければ、当該本体チップ５にキャリブレーション用チップ６が接続されていないと判断して、内部のフラグをオフしたままにするが、ハンドシェイク通信回路７４とのハンドシェイク通信が完了できたならば、当該本体チップ５にキャリブレーション用チップ６が接続されていると判断して、内部のフラグをオンする。
【０１０６】
尚、ハンドシェイク通信回路７３内の上記フラグは、当該本体チップ５にキャリブレーション用チップ６が接続されているか否かを示すフラグであり、本体チップ５の起動時には、初期状態として、非接続を示す方のオフになっている。また、そのフラグは、バス１１を介してＣＰＵ１２が参照できるようになっている。
【０１０７】
ここで、ハンドシェイク通信としては、例えば図６のような通信である。
まず、図６（ａ）に示すように、本体チップ５側のハンドシェイク通信回路７３は、電源の投入により動作を開始すると、まず、信号を要求するための要求信号（以下、ＲＥＱ信号と記す）を端子２４に出力する（Ｓ３１０）。尚、本体チップ５にキャリブレーション用チップ６が接続されていれば、そのＲＥＱ信号は、キャリブレーション用チップ６の端子３４を介してハンドシェイク通信回路７４に伝達する。また、ＲＥＱ信号は、予め定められたビット列の信号である。
【０１０８】
一方、図６（ｂ）に示すように、キャリブレーション用チップ６側のハンドシェイク通信回路７４は、電源の投入により動作を開始すると、端子３４から上記ＲＥＱ信号を受信するまで待ち（Ｓ４１０）、そのＲＥＱ信号を受信したならば（Ｓ４１０：ＹＥＳ）、そのＲＥＱ信号に対する応答信号（以下、ＡＣＫ信号と記す）を端子３５に出力する（Ｓ４２０）。尚、本体チップ５にキャリブレーション用チップ６が接続されていれば、そのＡＣＫ信号は、本体チップ５の端子２５を介してハンドシェイク通信回路７３に伝達する。また、ＡＣＫ信号も、予め定められたビット列の信号である。
【０１０９】
そこで、図６（ａ）に示すように、本体チップ５側のハンドシェイク通信回路７３は、ＲＥＱ信号を出力した後、端子２５から上記ＡＣＫ信号を受信したか否かを判定する（Ｓ３２０）。そして、ＡＣＫ信号を受信しなければ（Ｓ３２０：ＮＯ）、ＲＥＱ信号の出力を再度実施する（Ｓ３１０）。また、ＡＣＫ信号を受信したならば（Ｓ３２０：ＹＥＳ）、ハンドシェイク通信が完了できたとして（即ち、キャリブレーション用チップ６が接続されていると判定して）、内部のフラグをオンする（Ｓ３３０）。
【０１１０】
（３−４）本体チップ５のＣＰＵ１２は、図３（ａ）の書換モード時処理におけるＳ１０５にて、ハンドシェイク通信回路７３内の上記フラグを参照して、フラグがオンされていれば、当該本体チップ５の形態が、キャリブレーション用チップ６が接続された形態（キャリブレーション機能付きマイコンの形態）であると判定し、フラグがオンされていなければ、当該本体チップ５の形態が、キャリブレーション用チップ６が接続されていない形態（量産用マイコンの形態）であると判定する。
【０１１１】
つまり、第３実施形態の本体チップ５では、キャリブレーション用チップ６と通信を行い、端子２５から特定の通信信号としてのＡＣＫ信号が入力されたか否か（本実施形態では、キャリブレーション用チップ６との通信が成立したか否か）により、キャリブレーション用チップ６が接続されているか否かを判定するようになっている。
【０１１２】
このような第３実施形態の本体チップ５によれば、判定に関するセキュリティ性及び制御用ソフトウェアの不正書換防止という面でのセキュリティ性を、第２実施形態よりも更に高めることができる。
【０１１３】
尚、ハンドシェイク通信でやり取りされる信号の内容や、信号のやり取り手順を複雑化すればするほど、セキュリティ性を上げることができる。また、本実施形態では、本体チップ５の端子２５が接続判定用端子に相当し、ハンドシェイク通信回路７３が接続判定手段に相当している。
［変形例］
上記第３実施形態の本体チップ５（図５）において、ハンドシェイク通信回路７３は、図７に示すように、キャリブレーション用チップ６が接続されているか否かを判定する接続判定動作を、本体チップ５に電源が投入されてから一定の規定時間が経過するまでを限度として、キャリブレーション用チップ６が接続されていると判定するまで行うように構成しても良い。
【０１１４】
即ち、図７に示すように、ハンドシェイク通信回路７３は、電源の投入により動作を開始すると、図６（ａ）のＳ３１０及びＳ３２０の動作からなる接続判定動作を行い（Ｓ５１０）、キャリブレーション用チップ６が接続されていると判定すると（Ｓ５２０：ＹＥＳ）、内部のフラグをオンする（Ｓ５３０）が、キャリブレーション用チップ６が接続されていると判定しなければ（Ｓ５２０：ＮＯ）、動作開始時から一定の規定時間が経過したか否かを判定する（Ｓ５４０）。そして、規定時間が未だ経過していなければ（Ｓ５４０：ＮＯ）、引き続き接続判定動作（Ｓ５１０）を行うが、規定時間が経過したならば（Ｓ５４０：ＹＥＳ）、以後は接続判定動作を行わずに、内部のフラグをオフのままにする（Ｓ５５０）。
【０１１５】
このような構成の本体チップ５によれば、量産品のＥＣＵにおいて、不正行為者が何等かの手法によって、当該本体チップ５にキャリブレーション用チップ６が接続されていると誤判定させようとした場合（つまり、ＣＰＵ１２が認証処理を行うことなく書換処理を行うようにさせて、制御用ソフトウェアを不正に書き換えようとした場合）に、電源投入時から規定時間が過ぎれば、そのような誤判定がされることはないため、制御用ソフトウェアの不正書換防止という面でのセキュリティ性を一層高めることができる。また、電源投入時から規定時間が経過した後は、ハンドシェイク通信回路７３が接続判定動作を行うことによる消費電流を削減することができ、延いては、本体チップ５における消費電流及び発熱量を低減することができる。
【０１１６】
そして、このような変形例は、第１又は第２実施形態の本体チップ１，３についても、同様に適用することができる。
例えば、第２実施形態の本体チップ３（図４）であれば、周波数判定回路７１が、電源の投入により動作を開始すると、図７のＳ５１０にて、端子２３から特定周波数の信号が入力されたか否かを判定する動作を行うこととなり、動作開始時から規定時間が経過するまでに特定周波数の信号が入力されたならば、図７のＳ５２０にて、キャリブレーション用チップ４が接続されていると判定し、図７のＳ５３０にて、内部のフラグをオンすることとなる。
【０１１７】
また例えば、第１実施形態の本体チップ１（図１）であれば、以下のように変形すれば良い。
まず、ＣＰＵ１２が、本体チップ１への電源投入により動作を開始すると、接続判定手段に相当する処理として、図７の処理を行う。即ち、まずＳ５１０にて、接続判定動作として、Ｉ／Ｏポート１６から端子２３の電圧判定レベルを読み込むと共に、その電圧判定レベルがハイとローとの何れであるかを判定する。そして、端子２３の電圧判定レベルがハイであれば、当該本体チップ１にキャリブレーション用チップ２が接続されていると判定して（Ｓ５２０：ＹＥＳ）、接続判定フラグをオンする（Ｓ５３０）が、端子２３の電圧判定レベルがローであれば、キャリブレーション用チップ２が接続されていないと判定して（Ｓ５２０：ＮＯ）、動作開始時から規定時間が経過したか否かを判定する（Ｓ５４０）。そして、規定時間が未だ経過していなければ（Ｓ５４０：ＮＯ）、引き続き上記接続判定動作（Ｓ５１０）を行うが、規定時間が経過したならば（Ｓ５４０：ＹＥＳ）、接続判定フラグをオフのままにし（Ｓ５５０）、その後、図７の処理を終了する。
【０１１８】
そして、本体チップ１のＣＰＵ１２は、図３（ａ）の書換モード時処理におけるＳ１０５では、Ｉ／Ｏポート１６から端子２３の電圧判定レベルを読み込むのではなく、上記接続判定フラグを参照する。そして、接続フラグがオンされていれば、当該本体チップ１の形態が、キャリブレーション用チップ２が接続された形態であると判定し、接続フラグがオフならば、当該本体チップ１の形態が、キャリブレーション用チップ２が接続されていない形態であると判定する。
【０１１９】
そして、このように変形すれば、上記第２及び第３実施形態の各変形例と同様の効果が得られる。
一方、第２及び第３実施形態においては、本体チップ３，５に電源が投入されてから規定時間が経過しても未だ前述のフラグがオフならば（即ち、キャリブレーション用チップ４，６が接続されていると判定されていなければ）、周波数判定回路７１、ハンドシェイク通信回路７３への電源供給を遮断するタイマ回路を設けるようにしても良い。
［第４実施形態］
図８に示す第４実施形態の本体チップ７は、第１実施形態の本体チップ１と比較すると、下記（４−１）〜（４−４）の点が異なっている。
【０１２０】
（４−１）接続端子２２に接続されるのがキャリブレーション用チップ２と同様のキャリブレーション用チップ８であるが、その接続相手のキャリブレーション用チップ８は、キャリブレーション用チップ２と比較すると、端子３３に代えて、２つの端子３６，３７を備えており、更に、図１の抵抗Ｒａに代えて、端子３６，３７を介し当該本体チップ７と通信する認証通信回路７６を備えている。
【０１２１】
（４−２）本体チップ７は、端子２３に代えて、２つの端子２６，２７を備えている。そして、その各端子２６，２７には、当該本体チップ７にキャリブレーション用チップ８が接続された状態の場合に、そのキャリブレーション用チップ８の上記端子３６，３７がそれぞれ接続される。
【０１２２】
（４−３）図１の抵抗Ｒｂに代えて、認証通信回路７５を備えており、その認証通信回路７５は、端子２６，２７とバス１１に接続されている。そして、認証通信回路７５は、端子２６，２７を介してキャリブレーション用チップ８側の認証通信回路７６と接続され、その認証通信回路７６と通信を行う。
【０１２３】
（４−４）本体チップ７のＣＰＵ１２は、図３（ａ）の書換モード時処理に代えて、図９（ａ）の書換モード時処理を実行する。また、プログラム書換ツール５８も、図３（ｂ）の処理に代えて、図９（ｂ）の処理を行う。
【０１２４】
次に、図９（ａ），（ｂ）の各処理について説明する。尚、図９において、図３と同じ処理については同一のステップ番号を付しているため、説明を省略する。
まず、図９（ａ）の書換モード時処理は、図３（ａ）の書換モード時処理と比較すると、Ｓ１０５及びＳ１１０の処理に代えて、Ｓ６１０〜Ｓ６５０の処理が行われる点が異なっている。
【０１２５】
即ち、ＣＰＵ１２が図９（ａ）の書換モード時処理を開始すると、まずＳ６１０にて、プログラム書換ツール５８からデータを受信するまで待つ。
そして、プログラム書換ツール５８からのデータを受信すると（Ｓ６１０：ＹＥＳ）、Ｓ６２０に進み、その受信したデータが、セキュリティ解除データと、本第４実施形態に特有のセキュリティ解除パスデータとの何れであるかを判別する。
【０１２６】
ここで、セキュリティ解除パスデータは、ＣＰＵ１２が当該書換モード時処理においてＳ１２０の認証処理を行うことなくＳ１４０の書換処理を行うようにさせるためのデータであり、セキュリティ解除データによる認証をパスさせるためのデータである。また、セキュリティ解除パスデータは、キャリブレーション用チップ８と認証を行うための認証用データでもあり、このため、キャリブレーション用チップ８の種類毎に定められている。
【０１２７】
更に、セキュリティ解除パスデータは、セキュリティ解除データと同じフォーマットのデータ（同型のデータ）である。具体的には、セキュリティ解除データとセキュリティ解除パスデータは、同じビット数のデータであり、そのビット列における特定位置（本実施形態では、先頭のｎビット分（ｎは１以上の整数））に、そのデータがセキュリティ解除データとセキュリティ解除パスデータとの何れであるかを示す識別ビット（識別情報）が配置されている。
【０１２８】
このため、上記Ｓ６２０では、受信したデータの先頭からｎビット分である識別ビットを参照して、その受信したデータがセキュリティ解除データとセキュリティ解除パスデータとの何れであるかを判別する。
【０１２９】
そして、そのＳ６２０にて、受信したデータがセキュリティ解除データであると判定した場合（Ｓ６２０：ＮＯ）、即ち、プログラム書換ツール５８からセキュリティ解除データが送信されて来た場合には、第１実施形態と同様に、Ｓ１２０に進んで、そのセキュリティ解除データが正しいものか否かを判定する認証処理を行う。そして、セキュリティ解除データが正しいものと判定しなかった場合（Ｓ１２０：ＮＧ）には、Ｓ６１０に戻るが、セキュリティ解除データが正しいものと判定した場合（Ｓ１２０：ＯＫ）には、書換許可の認証が合格になったとして、Ｓ１３０に進み、プログラム書換ツール５８へ、書換許可の認証が合格になったことを示す認証通知を送信する。そして、この場合の以降の処理は、第１実施形態と同じである。
【０１３０】
一方、上記Ｓ６２０にて、受信したデータがセキュリティ解除パスデータであると判定した場合（Ｓ６２０：ＹＥＳ）、即ち、プログラム書換ツール５８からセキュリティ解除パスデータが送信されて来た場合には、Ｓ６３０に移行する。
【０１３１】
Ｓ６３０では、プログラム書換ツール５８からのセキュリティ解除パスデータを、認証通信回路７５に転送して、その認証通信回路７５からキャリブレーション用チップ８へ送信させる。
【０１３２】
このため、本体チップ７にキャリブレーション用チップ８が接続されていれば、そのキャリブレーション用チップ８において、認証通信回路７６が、上記Ｓ６３０で送信されるセキュリティ解除パスデータを受信することとなる。
【０１３３】
ここで、キャリブレーション用チップ８側の認証通信回路７６は、図１０の処理を行うようになっている。
即ち、認証通信回路７６は、本体チップ７側の認証通信回路７５から送信されるセキュリティ解除パスデータを受信するまで待ち（Ｓ７１０）、セキュリティ解除パスデータを受信したならば（Ｓ７１０：ＹＥＳ）、その受信したセキュリティ解除パスデータが正しいもの（即ち、当該キャリブレーション用チップ８に適合するもの）か否かを判定する認証処理を行う（Ｓ７２０）。その認証処理では、受信したセキュリティ解除パスデータが、当該認証通信回路７６内の不揮発性メモリ、或いは、キャリブレーション用チップ８における他の部分に設けられている不揮発性メモリに予め記憶されているデータであって、当該キャリブレーション用チップ８の種類に固有のデータと同じか否かを判定し、同じであれば、その受信したセキュリティ解除パスデータは正しいものであると判定する。
【０１３４】
そして、受信したセキュリティ解除パスデータが正しいものと判定しなかった場合（Ｓ７２０：ＮＧ）には、Ｓ７１０に戻るが、受信したセキュリティ解除パスデータが正しいものと判定した場合（Ｓ７２０：ＯＫ）には、当該キャリブレーション用チップ８との認証が合格になったとして、そのことを示す認証通知（合格通知に相当）を本体チップ７へ送信する（Ｓ７３０）。
【０１３５】
このため、ＣＰＵ１２は、上記Ｓ６３０に続くＳ６４０にて、キャリブレーション用チップ８から認証通知が送信されて来たか否かを判定する。そして、Ｓ６３０の処理を行ってから一定時間以内にキャリブレーション用チップ８からの認証通知を受信できなければ（Ｓ６４０：ＮＯ）、当該本体チップ７にキャリブレーション用チップ８が接続されていないと判断してＳ６１０に戻るが、キャリブレーション用チップ８からの認証通知を受信したならば（Ｓ６４０：ＹＥＳ）、当該本体チップ７にキャリブレーション用チップ８が接続されていると判断してＳ６５０に進む。
【０１３６】
そして、Ｓ６５０では、Ｓ１３０で送信するのと同じ認証通知をプログラム書換ツール５８に送信し、その後、Ｓ１４０に進んで前述の書換処理を行う。
尚、本実施形態において、キャリブレーション用チップ８側の認証通信回路７６が図７のＳ７３０で本体チップ７に送信する合格通知としての認証通知は、ＣＰＵ１２が図９（ａ）のＳ１３０でプログラム書換ツール５８へ送信する認証通知と同じデータに設定されている。このため、図９（ａ）のＳ６５０では、キャリブレーション用チップ８側から受信した認証通知を、そのままプログラム書換ツール５８へ送信する。また勿論、キャリブレーション用チップ８側の認証通信回路７６が図７のＳ７３０で送信する認証通知は、プログラム書換ツール５８への認証通知とは異なるデータとしても良く、その場合、図９（ａ）のＳ６５０では、プログラム書換ツール５８への認証通知を改めて作成して送信すれば良い。
【０１３７】
このように図９（ａ）の書換モード時処理では、プログラム書換ツール５８からセキュリティ解除パスデータが送信されて来たと判定したなら（Ｓ６２０：ＹＥＳ）、そのセキュリティ解除パスデータをキャリブレーション用チップ８に送信する動作（Ｓ６３０）を行い、そのセキュリティ解除パスデータがキャリブレーション用チップ８に適合するものであるとキャリブレーション用チップ８により判定されたことを示す合格通知としての認証通知が、キャリブレーション用チップ８から当該本体チップ７に送信されて来たならば（Ｓ６４０：ＹＥＳ）、キャリブレーション用チップ８が接続されていると判定して、Ｓ１２０の認証処理を行うことなくＳ１４０の書換処理を行うようになっている。
【０１３８】
次に、図９（ｂ）の処理は、図３（ｂ）の処理と比較すると、Ｓ２１０の処理に代えて、Ｓ２０７，Ｓ２０９及びＳ２１５の処理が行われる点が異なっている。
即ち、プログラム書換ツール５８が図９（ｂ）の処理を開始すると、まず、第１実施形態と同様に、Ｓ２０５にて、制御用ソフトウェアの書き換え対象であるマイコンが、量産用マイコンなのかキャリブレーション機能付きマイコンなのかを判別する。
【０１３９】
そして、Ｓ２０５にて、制御用ソフトウェアの書き換え対象であるマイコンが、量産用マイコンであると判別した場合（Ｓ２０５：ＹＥＳ）には、Ｓ２０７に進む。
Ｓ２０７では、当該プログラム書換ツール５８の使用者が操作部を操作して、ＥＣＵへのセキュリティ解除データとなるデータを入力するのを待ち、データが入力されると、その入力されたデータの先頭に、そのデータがセキュリティ解除データであることを示す識別ビットを付加し、その付加後のデータを、ＥＣＵへ送信すべきセキュリティ解除データとして送信バッファに格納する。そして、その後Ｓ２１５に進む。
【０１４０】
また、Ｓ２０５にて、制御用ソフトウェアの書き換え対象であるマイコンが、キャリブレーション機能付きマイコンであると判定した場合（Ｓ２０５：ＮＯ）には、Ｓ２０９に進む。
【０１４１】
Ｓ２０９では、当該プログラム書換ツール５８の使用者が操作部を操作して、ＥＣＵへのセキュリティ解除パスデータとなるデータを入力するのを待ち、データが入力されると、その入力されたデータの先頭に、そのデータがセキュリティ解除パスデータであることを示す識別ビットを付加し、その付加後のデータを、ＥＣＵへ送信すべきセキュリティ解除パスデータとして送信バッファに格納する。そして、その後Ｓ２１５に進む。
【０１４２】
Ｓ２１５では、上記Ｓ２０７又はＳ２０９で送信バッファに格納されたデータを、ＥＣＵ（延いては、本体チップ７）へ送信する。すると、そのデータ（即ち、セキュリティ解除データ又はセキュリティ解除パスデータ）は、本体チップ７に受信されて、前述したＳ６２０の処理により、セキュリティ解除データとセキュリティ解除パスデータとの何れであるかが判別されることとなる。
【０１４３】
そして、Ｓ２１５の送信処理が終わると、Ｓ２２０に進み、本体チップ７のＣＰＵ１２により図９（ａ）のＳ１３０又はＳ６５０で送信される認証通知を受信するまで待ち、その認証通知を受信したならば（Ｓ２２０：ＹＥＳ）、Ｓ２３０に進んで、ＥＣＵへの新制御用ソフトウェアの送信を開始する。
【０１４４】
以上のような第４実施形態の本体チップ７では、キャリブレーション用チップ８が接続された形態で開発段階のＥＣＵに搭載されている場合には、プログラム書換ツール５８から、書換要求を送信した後、キャリブレーション用チップ８に適合するセキュリティ解除パスデータを送信してやることで、ＣＰＵ１２が図９（ａ）の書換モード時処理にてＳ１２０の認証処理を行うことなく、Ｓ１４０の書換処理を行うようになる。
【０１４５】
詳しく説明すると、図８における一点鎖線で示すように、プログラム書換ツール５８からのセキュリティ解除パスデータは、本体チップ７からキャリブレーション用チップ８に送信される。そして、キャリブレーション用チップ８は、そのセキュリティ解除パスデータが自己に適合するものであるか否かを判定して、自己に適合するものであれば、図８における二点鎖線で示すように、本体チップ７へ合格通知としての認証通知を送信することとなる。そして、本体チップ１では、キャリブレーション用チップ８から認証通知が送信されて来たなら、キャリブレーション用チップ８が接続されていると判定することとなり、Ｓ１２０の認証処理を行うことなく、新制御用ソフトウェアの送信を開始させるためにプログラム書換ツール５８へ認証通知を送信すると共に、Ｓ１４０の書換処理を開始することとなる。
【０１４６】
このため、ＥＣＵの開発段階において、開発作業者は、プログラム書換ツール５８からＥＣＵ（詳しくは、キャリブレーション用チップ８が接続された形態の当該本体チップ７が搭載されているＥＣＵ）へ、そのＥＣＵに適合したセキュリティ解除データを送信させなくても、キャリブレーション用チップ８に適合したセキュリティ解除パスデータを送信させることで、制御用ソフトウェアを書き換えることができる。
【０１４７】
特に、キャリブレーション用チップ８の種類数は、最小の１つでも良く、ＥＣＵの種類数と比べると格段に少なくすることができるため、ＥＣＵの開発段階において、開発作業者が把握しなければならないセキュリティ解除パスデータの種類数は、セキュリティ解除データの種類数と比べると格段に少なくて済む。よって、ＥＣＵの開発段階において、開発作業者がプログラム書換ツール５８からセキュリティ解除データを送信させるよりも、セキュリティ解除パスデータを送信させる方が、誤ったデータを送信してしまう可能性を低くすることができ、延いては、制御用ソフトウェアの書き換えを効率的に実施できるようになる。
【０１４８】
また、本第４実施形態の本体チップ７によれば、ＥＣＵの開発段階において、開発作業者は、プログラム書換ツール５８からＥＣＵへ、書換要求を送信させ、その次にセキュリティ解除パスデータを送信させる、という手順により、制御用ソフトウェアを書き換えることができる。そして、この手順は、ＥＣＵ開発の最終段階において、開発作業者が、量産品と同じＥＣＵ（即ち、量産用マイコンを搭載したＥＣＵ）のＲＯＭ１３に制御用ソフトウェアを書き込んで該ＥＣＵの動作チェックを行う場合に、その制御用ソフトウェアの書き込みを行う際の手順（即ち、プログラム書換ツール５８からＥＣＵへ、書換要求を送信させ、その次にセキュリティ解除データを送信させる、という手順）と同じである。このため、量産品と同じＥＣＵに対して制御用ソフトウェアを書き込む場合と、開発途中のＥＣＵについて制御用ソフトウェアを書き換える場合とで、開発作業者が作業手順を混乱してしまう可能性を低くすることができる。
【０１４９】
尚、本第４実施形態においては、ＣＰＵ１２による図９（ａ）の書換モード時処理のうち、Ｓ１２０〜Ｓ１６０の処理が書換制御手段に相当し、Ｓ６１０〜Ｓ６４０の処理が接続判定手段に相当している。また、セキュリティ解除パスデータが、サブチップ認証用データに相当している。
【０１５０】
以上、本発明の一実施形態について説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々なる態様で実施し得ることは勿論である。
【０１５１】
例えば、図３（ａ）の処理及び図９（ａ）の処理の、全部又は一部をＣＰＵ１２とは別のハードウェア回路で実現するように構成しても良い。
【符号の説明】
【０１５２】
１，３，５，７…本体チップ（マイコンチップ）、２，４，６，８…キャリブレーション用チップ（サブチップ）、１０…キャリブレーション回路、１０ａ…ＲＡＭ、１１…バス、１２…ＣＰＵ、１３…ＲＯＭ（不揮発性メモリ）、１４…ＲＡＭ、１５…周辺回路、１６…Ｉ／Ｏポート、１７…シリアル通信回路、１８…タイマ、２２〜２７，３２〜３７…端子、５０…キャリブレーション機能付きマイコン、５１…ＥＣＵ（車両用電子制御装置）、５２…能動素子、５２ａ…ＩＣ（通信回路）、５３…受動素子、５４…電源ＩＣ、５５…コネクタ、５６…通信インターフェース、５８…プログラム書換ツール、５９…コネクタ、６１…インターポーザ、６２…ボンディングワイヤ、６３…樹脂、６４…信号配線、７１…周波数判定回路、７２…発振回路、７３，７４…ハンドシェイク通信回路、７５，７６…認証通信回路、ＣＴ…キャリブレーション用ツール、Ｒａ，Ｒｂ…抵抗
【図１】
2010250751.tif 000003
【図３】
2010250751.tif 000004
【図４】
2010250751.tif 000005
【図５】
2010250751.tif 000006
【図６】
2010250751.tif 000007
【図７】
2010250751.tif 000008
【図８】
2010250751.tif 000009
【図９】
2010250751.tif 000010
【図１０】
2010250751.tif 000011
【図１１】
2010250751.tif 000012
【図２】
2010250751.tif 000013