(57)【要約】【課題】  複数マイコンが直列接続された電子制御装置において、先頭マイコン以下の後続マイコンとして、受信処理能力の低い安価なマイコンを用いても、外部装置からの入力データを受け付ける先頭マイコンから、後続マイコンに書込対象データを転送し、後続マイコンのＲＯＭに記録されたデータを正常に更新できるようにする。【解決手段】  外部装置に接続される第一マイコンは、後続の第二マイコンに対する書込対象データを、外部装置から受信すると、これを変換した後、自身内蔵のＲＡＭに保存して（Ｓ９２０）、一旦、書込対象データ全てをＲＡＭに記録する。その後、第一マイコンは、第二マイコンに対して書換コマンドを入力すると共に（Ｓ９５５）、第二マイコンからハンドシェイク信号を受信する度に、ＲＡＭに蓄積した書込対象データを、第二マイコンが一度に受信可能なＮＭバイト分ずつ、第二マイコンに送信する（Ｓ９６５）。【選択図】  図１２
2006268107.tif 000002
【特許請求の範囲】
【請求項１】
第一及び第二のマイクロコンピュータを備え、
前記各マイクロコンピュータは、データ書換可能な不揮発性メモリを内蔵すると共に、通信ラインに接続された通信回路を内蔵し、前記内蔵の不揮発性メモリが記憶するデータに基づく処理を実行する構成にされると共に、前記内蔵の通信回路を介して、自身宛の書込対象のデータを受信すると、前記書込対象のデータを、前記内蔵の不揮発性メモリに書き込み、前記不揮発性メモリが記憶するデータを更新する構成にされた電子制御装置であって、
前記第一のマイクロコンピュータは、
前記内蔵の通信回路として、外部装置に繋がる外部通信ライン及び前記第二のマイクロコンピュータに繋がる内部通信ラインに接続された通信回路を有すると共に、
前記内蔵の通信回路が受信したデータを、内蔵の揮発性メモリに蓄積する蓄積手段と、
前記内蔵の通信回路が前記外部装置から前記第二のマイクロコンピュータ宛のデータを受信すると、前記揮発性メモリに蓄積された前記第二のマイクロコンピュータ宛のデータを、前記第二のマイクロコンピュータの受信処理能力に合わせて、前記内蔵の通信回路を介し、前記第二のマイクロコンピュータに送信する転送手段と、
を備え、
前記第二のマイクロコンピュータは、前記内蔵の通信回路として、前記第一のマイクロコンピュータに繋がる内部通信ラインに接続された通信回路を有し、この通信回路を介して、前記第一のマイクロコンピュータから、前記外部装置から送信された自身宛の書込対象のデータを受信することを特徴とする電子制御装置。
【請求項２】
前記転送手段は、前記第二のマイクロコンピュータの受信処理能力に合わせて、前記揮発性メモリに蓄積された前記第二のマイクロコンピュータ宛のデータを分割して、前記第二のマイクロコンピュータに送信する構成にされていることを特徴とする請求項１記載の電子制御装置。
【請求項３】
前記転送手段は、前記揮発性メモリに蓄積された前記第二のマイクロコンピュータ宛のデータを、前記第二のマイクロコンピュータからハンドシェイク信号を受信する度に、所定量ずつ、前記第二のマイクロコンピュータに送信する構成にされていることを特徴とする請求項１又は請求項２記載の電子制御装置。
【請求項４】
前記第一のマイクロコンピュータは、
前記内蔵の通信回路が前記外部装置から受信したデータを、前記第二のマイクロコンピュータが解釈可能なデータに変換するデータ変換手段
を有し、
前記転送手段は、前記外部装置から受信した前記第二のマイクロコンピュータ宛のデータについて、前記データ変換手段による変換後のデータを、前記第二のマイクロコンピュータに送信する構成にされていることを特徴とする請求項１〜請求項３のいずれかに記載の電子制御装置。
【請求項５】
前記第二のマイクロコンピュータは、前記第一のマイクロコンピュータを介して、前記外部装置から書込先のメモリアドレスを表すアドレスデータを受信すると、前記アドレスデータと共に、前記第一のマイクロコンピュータを介して、前記外部装置から受信した自身宛の書込対象のデータを、前記内蔵の不揮発性メモリにおける前記アドレスデータが示すメモリアドレスに対応する領域に、書き込む構成にされていることを特徴とする請求項１〜請求項４のいずれかに記載の電子制御装置。
【請求項６】
前記第一のマイクロコンピュータは、
前記第二のマイクロコンピュータが前記第一のマイクロコンピュータから受信した書込対象のデータを、前記内蔵の通信回路を介して、前記第二のマイクロコンピュータから取得する取得手段と、
前記取得手段が取得したデータと、前記外部装置から受信した前記書込対象のデータとを、比較する比較手段と、
前記比較手段の比較結果を、前記内蔵の通信回路を介して、前記外部装置に送信する比較結果通知手段と、
を備えることを特徴とする請求項１〜請求項５のいずれかに記載の電子制御装置。
【請求項７】
前記第一のマイクロコンピュータは、前記外部装置から、前記内蔵の通信回路を介して、転送状況の通知を指示するコマンドを受信すると、前記転送手段の動作状況を表すデータを、前記内蔵の通信回路を介して、前記外部装置に送信するステータス通知手段、を備えることを特徴とする請求項１〜請求項６のいずれかに記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ書換可能な不揮発性メモリを内蔵する複数のマイクロコンピュータを備え、各マイクロコンピュータが、書込対象のデータを受信すると、不揮発性メモリに、受信した書込対象のデータを書き込んで、不揮発性メモリ内のデータを更新する電子制御装置に関する。
【背景技術】
【０００２】
従来より、電子制御装置としては、エンジン等の車両各部を制御するための電子制御装置が知られている。また、この種の電子制御装置としては、エンジン等の制御対象を制御するために、複数のマイクロコンピュータを備えたものが知られている（例えば、特許文献１参照）。
【０００３】
上記の電子制御装置では、各マイクロコンピュータがデータ書換可能な不揮発性メモリに制御プログラムや制御データを備え、外部から書込対象のデータ（制御プログラムや制御データ）を受信すると、これを、不揮発性メモリに書き込んで、不揮発性メモリ内のデータを更新する。また、各マイクロコンピュータは、直列接続されており、内部通信ラインに接続されたマイクロコンピュータは、外部通信ラインに接続されたマイクロコンピュータを通じて、外部装置から書込対象のデータを受信し、これを不揮発性メモリに書き込んで、データ更新する。
【０００４】
その他、電子制御装置としては、内部通信ラインに接続された電子制御装置からの受信信号を、外部装置の通信プロトコルに適合する信号に変換して、外部通信ラインに接続された外部装置に出力するものが知られている（例えば、特許文献２参照）。
【特許文献１】特開平９−１６０７６６号公報
【特許文献２】特開平７−０６９０９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、特許文献１記載の電子制御装置では、外部通信ラインに接続されたマイクロコンピュータが、内部通信ラインに接続されたマイクロコンピュータに対し、外部装置から送信された書込対象のデータを転送することによって、内部通信ラインに接続されたマイクロコンピュータでのデータ更新が実現されているが、上記電子制御装置では、単に書込対象のデータを転送する程度であるので、転送先のマイクロコンピュータの受信処理能力が、送信元装置の送信速度に対して劣る場合には、データ転送を実現することができないといった問題があった。
【０００６】
即ち、外部装置の通信プロトコルと、転送先マイクロコンピュータの通信プロトコルとが異なる程度であれば、外部通信ラインに接続されたマイクロコンピュータに、プロトコル変換機能をもたせることで、データ転送を実現することができるが、転送先のマイクロコンピュータの受信処理能力が送信元装置の送信速度に対して劣る場合には、単位時間当たりに、外部装置から送信されるデータ量に対して、転送先のマイクロコンピュータが受信可能なデータ量が少なすぎるために、外部通信ラインに接続された転送元のマイクロコンピュータにおいて、オーバーフローが発生してしまうのである。
【０００７】
従って、従来では、転送先マイクロコンピュータを、受信処理能力の高いものにしなければならず、転送先マイクロコンピュータとして高価なマイクロコンピュータを用いなければならないといった問題があった。
【０００８】
その他、転送先マイクロコンピュータが、データ変換なしに、外部装置の送信データを解釈することができない場合、従来では、転送先マイクロコンピュータで、外部装置からの受信データを変換していたが、この方法では、データ変換の処理負荷が原因で、転送先マイクロコンピュータに、高価なマイクロコンピュータを用いなければならない可能性があった。
【０００９】
本発明は、こうした問題に鑑みなされたものであり、内部通信ラインに接続されたマイクロコンピュータでのデータ更新を、外部通信ラインに接続されたマイクロコンピュータからのデータ転送によって実現する電子制御装置において、内部通信ラインに接続するマイクロコンピュータとして、安価なマイクロコンピュータを採用することが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【００１０】
かかる目的を達成するためになされた請求項１記載の電子制御装置は、第一及び第二のマイクロコンピュータを備える。各マイクロコンピュータは、データ書換可能な不揮発性メモリを内蔵し、不揮発性メモリが記憶するデータ（プログラム等）に基づく処理を実行する。また、各マイクロコンピュータは、通信ラインに接続された通信回路を内蔵し、この通信回路を介して、自身宛の書込対象のデータを受信すると、受信した書込対象のデータを、内蔵の不揮発性メモリに書き込み、不揮発性メモリが記憶するデータを更新する。
【００１１】
第一のマイクロコンピュータは、内蔵の通信回路として、外部装置に繋がる外部通信ライン及び第二のマイクロコンピュータに繋がる内部通信ラインに接続された通信回路を有し、この通信回路が受信したデータを、内蔵の揮発性メモリに、蓄積手段にて蓄積する。
【００１２】
また、第一のマイクロコンピュータは、内蔵の通信回路が外部装置から第二のマイクロコンピュータ宛のデータを受信すると、転送手段によって、揮発性メモリに蓄積された第二のマイクロコンピュータ宛のデータを、第二のマイクロコンピュータの受信処理能力に合わせ、内蔵の通信回路を介し、第二のマイクロコンピュータに送信する。
【００１３】
その他、第二のマイクロコンピュータは、内蔵の通信回路として、第一のマイクロコンピュータに繋がる内部通信ラインに接続された通信回路を有し、この通信回路を介して、外部装置から送信された自身宛の書込対象のデータを、第一のマイクロコンピュータから受信する。そして、この書込対象のデータを、内蔵の不揮発性メモリに書き込み、不揮発性メモリが記憶するデータを更新する。
【００１４】
この電子制御装置によれば、第一のマイクロコンピュータが、外部装置から受信したデータを、揮発性メモリに一旦蓄積するので、第二のマイクロコンピュータの受信処理能力が低く、第一のマイクロコンピュータが、外部装置から受信した第二のマイクロコンピュータ宛のデータを、外部装置の送信速度に合わせて、第二のマイクロコンピュータに送信することができない場合であっても、オーバーフローが発生するのを防止することができる。
【００１５】
また、この電子制御装置によれば、第一のマイクロコンピュータが、第二のマイクロコンピュータの受信処理能力に合わせて、第二のマイクロコンピュータ宛のデータを送信するので、第二のマイクロコンピュータとして、受信処理能力の低いマイクロコンピュータを用いても、第二のマイクロコンピュータに、確実にデータを転送することができ、外部通信ラインに接続されたマイクロコンピュータからのデータ転送による手法で、受信処理能力の低いマイクロコンピュータにおける不揮発性メモリ内のデータ更新を、実現することができる。従って、この発明によれば、安価なマイクロコンピュータを用いて電子制御装置を構成することができる。
【００１６】
尚、第二のマイクロコンピュータの受信処理能力に合わせて、データを転送する方法としては、時間当たりの送信量を調整する方法や、一度に送信するデータの量を、第二のマイクロコンピュータの受信処理能力に適合させる方法があるが、第二のマイクロコンピュータが、一度に所定量のデータを受信して、これを不揮発性メモリに書き込む構成にされている場合には、第二のマイクロコンピュータの受信処理能力に合わせて、揮発性メモリに蓄積された第二のマイクロコンピュータ宛のデータを分割送信するように、転送手段を構成するとよい（請求項２）。
【００１７】
その他、第二のマイクロコンピュータが、受信可能な状態となる度にハンドシェイク信号を送信する構成にされている場合には、揮発性メモリに蓄積された第二のマイクロコンピュータ宛のデータを、第二のマイクロコンピュータからハンドシェイク信号を受信する度に、第二のマイクロコンピュータが受信可能な所定量ずつ、第二のマイクロコンピュータに送信するように、転送手段を構成すればよい（請求項３）。
【００１８】
本発明では、第一のマイクロコンピュータが、外部装置からの受信データを揮発性メモリに蓄積するので、このように転送手段を構成すれば、外部装置と第一のマイクロコンピュータとの間では、オーバーフローの心配なく、高速なデータ通信を実現でき、第二のマイクロコンピュータには、送信データを確実に受信させることができる。従って、データ転送の失敗によって、誤ったデータが、第二のマイクロコンピュータにおいて、不揮発性メモリに書き込まれるのを防止することができる。
【００１９】
また、第二のマイクロコンピュータが、データ変換なしに、外部装置の送信データを解釈することができない場合、第二のマイクロコンピュータでは、外部装置からの受信データを変換しなければならず、データ変換にかかる処理負荷をカバーするために、第二のマイクロコンピュータとして、高性能なマイクロコンピュータを用いなければならなくなる可能性がある。
【００２０】
従って、上記の場合には、第一のマイクロコンピュータに、内蔵の通信回路が外部装置から受信したデータを、第二のマイクロコンピュータが解釈可能なデータに変換するデータ変換手段を設けるとよい。このように構成された請求項４記載の電子制御装置では、転送手段が、外部装置から受信した第二のマイクロコンピュータ宛のデータについて、データ変換手段による変換後のデータを、第二のマイクロコンピュータに送信する。
【００２１】
変換後のデータを、第二のマイクロコンピュータに送信するように、第一のマイクロコンピュータを構成すれば、結果として、第二のマイクロコンピュータに、データ変換機能を設けずに済み、安価なマイクロコンピュータを、第二のマイクロコンピュータとして用いて、上記の電子制御装置を構成することができる。
【００２２】
尚、データ変換手段は、例えば、揮発性メモリに格納されたデータを変換し、変換後のデータを、揮発性メモリに格納する構成とすることができる。その他、転送手段は、揮発性メモリに蓄積された変換後のデータを、第二のマイクロコンピュータに送信する構成とすることができる。
【００２３】
また、データ更新の際には、不揮発性メモリ内の領域全体を更新してもよいが、一部の領域のみを更新できるように、電子制御装置を構成すると、大変便利である。
請求項５記載の電子制御装置における第二のマイクロコンピュータは、第一のマイクロコンピュータを介して、外部装置から書込先のメモリアドレスを表すアドレスデータを受信すると、そのアドレスデータと共に、第一のマイクロコンピュータを介して、外部装置から受信した自身宛の書込対象のデータを、内蔵の不揮発性メモリにおけるアドレスデータが示すメモリアドレスに対応する領域に、書き込む構成にされている。このように第二のマイクロコンピュータを構成すれば、第二のマイクロコンピュータにおいて、不揮発性メモリが記憶する任意のデータを更新することができ、データ更新時間の短縮を図ることができる。
【００２４】
その他、内部通信ラインに接続された第二のマイクロコンピュータにおけるデータ更新を、外部通信ラインに接続された第一のマイクロコンピュータからのデータ転送によって実現する電子制御装置においては、第二のマイクロコンピュータにおけるデータ更新が正常に行われたか否かを、外部装置で直接把握することは困難であることから、上記の電子制御装置は、請求項６記載のように構成されるとよい。
【００２５】
即ち、第一のマイクロコンピュータには、第二のマイクロコンピュータが第一のマイクロコンピュータから受信した書込対象のデータを、内蔵の通信回路を介して、第二のマイクロコンピュータから取得する取得手段と、取得手段が取得したデータと、外部装置から受信した上記書込対象のデータとを比較する比較手段と、比較手段の比較結果を、内蔵の通信回路を介して、外部装置に送信する比較結果通知手段と、を設けるとよい。
【００２６】
この電子制御装置を用いれば、第一のマイクロコンピュータから第二のマイクロコンピュータへのデータ転送過程でエラーが生じたか否かを、外部装置にて把握することができる。従って、本発明によれば、第二のマイクロコンピュータにて、確実に、正確なデータ更新を実現することができる。
【００２７】
また、外部装置にて、データの転送状況を把握することができるようにすると、データ転送後の処理を迅速に行うことができると共に、外部装置を介して、ユーザに対しデータ転送の完了有無を通知することができるので、上記の電子制御装置は、請求項７記載のように構成にされるとよい。
【００２８】
請求項７記載の電子制御装置は、第一のマイクロコンピュータが、外部装置から、内蔵の通信回路を介して、転送状況の通知を指示するコマンドを受信すると、転送手段の動作状況を表すデータを、内蔵の通信回路を介して、外部装置に送信するステータス通知手段を備える。この電子制御装置を用いれば、外部装置にて、転送手段の動作状況を把握することができるので、後の処理を外部装置にて迅速に実行することができると共に、外部装置を介してユーザに対し、転送状況を通知することができる。
【発明を実施するための最良の形態】
【００２９】
以下、本発明の実施例について、図面と共に説明する。図１は、本発明が適用された電子制御装置１の構成を表す説明図である。尚、電子制御装置１としては、車両用の電子制御装置であって、エンジン、ブレーキ、トランスミッション、サスペンション等を制御対象とする電子制御装置を挙げることができるが、本発明は、制御対象について限定されず、各種電子制御装置に適用することができるので、以下では、制御対象について、特に言及せずに説明する。また、本発明は、以下に説明する実施例になんら限定されるものではなく、本発明を逸脱しない範囲において種々の態様で実施しうることはいうまでもない。
【００３０】
図１に示すように、本実施例の電子制御装置１は、制御対象を制御するためのマイクロコンピュータ（以下、単に「マイコン」と称する）を、複数備える。具体的に、電子制御装置１は、上記複数のマイコンとして、第一マイコン１０及び第二マイコン３０を備え、更に、ＲＯＭ書換装置５０のコネクタ（図示せず）に接続されるコネクタ３と、コネクタ３から第一マイコン１０に繋がる外部通信ライン５と、第一マイコン１０と第二マイコン３０とを結ぶ内部通信ライン６と、制御対象に接続され、第一マイコン１０又は第二マイコン３０からの制御信号を受けて、制御対象を駆動する入出力回路８，９とを備える。
【００３１】
第一マイコン１０は、外部通信ライン５に接続されたシリアル通信用の通信回路１１と、内部通信ライン６に接続されたシリアル通信用の通信回路１２と、プログラムに従って動作するＭＰＵ（マイクロ・プロセッサ・ユニット）１３と、ＭＰＵ１３での演算処理に必要なデータ（プログラムを含む）を記憶する不揮発性メモリとしてのＲＯＭ１５と、ＭＰＵ１３の演算結果等を一時的に記憶する揮発性メモリとしてのＲＡＭ１７と、入出力回路８との間で、信号のやりとりを行うＩ／Ｏポート１９と、を備える。
【００３２】
一方、第二マイコン３０は、内部通信ライン６に接続されたシリアル通信用の通信回路３１と、プログラムに従って動作するＭＰＵ３３と、ＭＰＵ３３での演算処理に必要なデータ（プログラムを含む）を記憶する不揮発性メモリとしてのＲＯＭ３５と、ＭＰＵ３３の演算結果等を一時的に記憶する揮発性メモリとしてのＲＡＭ３７と、入出力回路９との間で、信号のやりとりを行うＩ／Ｏポート３９と、を備える。
【００３３】
第一マイコン１０及び第二マイコン３０が内蔵するＲＯＭ１５，３５としては、電気的にデータの消去及び書込（即ち、書換）が可能なメモリ（フラッシュメモリ）が採用されている。また、ＲＯＭ１５，３５は、データの消去及び書込が可能な書換可能領域と、データの消去及び書込が不可能なマスク領域と、を有する。
【００３４】
具体的に、各ＲＯＭ１５，３５の書換可能領域には、第一マイコン１０及び第二マイコン３０が、制御対象を制御するために必要な演算処理を、自身内蔵のＭＰＵ１３，３３にて実行するための制御プログラム（メイン制御プログラム）が記憶されている。また、マスク領域には、電源投入時に第一マイコン１０及び第二マイコン３０が、自身内蔵のＭＰＵ１３，３３にて実行するブートプログラムと、第一マイコン１０及び第二マイコン３０が、自身内蔵のＲＯＭ１５，３５における書換可能領域内に記憶されたデータ（メイン制御プログラム等）を更新したり、書換可能領域に新規データを追加するための書換制御プログラムと、が記憶されている。
【００３５】
図２（ａ）は、第一マイコン１０のＲＯＭ１５に記憶されたデータを書き換える際に、ＲＯＭ書換装置５０が、第一マイコン１０に入力するコマンド及びデータを示したラダーチャートである。本実施例では、ＲＯＭ書換装置５０から消去コマンド及びアドレスデータを送信すると、それを受信した第一マイコン１０が、ＭＰＵ１３にて実行する書換制御プログラムによって、ＲＯＭ１５における上記アドレスデータに従う領域内のデータを消去し、その領域をデータ書込可能な状態にする。
【００３６】
また、ＲＯＭ書換装置５０は、消去コマンド及びアドレスデータの送信後、書換コマンド及び書込対象データを送信する構成にされており、第一マイコン１０は、この書換コマンドを受信すると、その後、送信されてくる書込対象データを、上記データ消去によってデータ書込可能な状態となったＲＯＭ１５内の領域に書き込み、ＲＯＭ１５が記憶するデータを更新する。
【００３７】
また、ＲＯＭ書換装置５０は、書換コマンド及び書込対象データの送信後、ＲＯＭ１５に書き込まれたデータが、送信データと一致するか否かを確認するために、比較コマンド及び、上記書込対象データと同一のデータである比較対象データを送信する。
【００３８】
第一マイコン１０は、この比較コマンドを受信すると、その後、送信されてくる比較対象データを受信して、その比較対象データと、ＲＯＭ１５に書き込まれたデータとを比較し、その比較結果をＲＯＭ書換装置５０に送信する。ＲＯＭ書換装置５０は、受信した比較結果を、ユーザに報知するための報知手段を備え（図示せず）、この報知手段を通じて、ユーザに比較結果を通知し、比較対象データと、ＲＯＭ１５に書き込まれたデータとが一致しない場合に、再度の処理を促す。
【００３９】
また、図２（ｂ）は、第二マイコン３０のＲＯＭ３５に記憶されたデータを書き換える際に、第一マイコン１０が行う処理を示したラダーチャートである。第一マイコン１０は、ＲＯＭ書換装置５０から書換先選択情報を受信すると、書換先選択情報が書換先として第二マイコン３０を示しているか否かを判断し、第二マイコン３０ではなく第一マイコン１０を示している場合には、上述のようにして（図２（ａ）参照）、ＲＯＭ１５内のデータ更新を実現するが、第二マイコン３０を示している場合には、図２（ｂ）に示すように、ＲＯＭ書換装置５０からの入力コマンド及びデータを、第二マイコン３０に転送する。第二マイコン３０は、第一マイコン１０から転送されてきたコマンド及びデータに基づき、上述した第一マイコン１０と同様の手法で、ＲＯＭ３５内のデータ更新を実現する。
【００４０】
但し、本実施例では、電子制御装置１を安価に構成するために、第二マイコン３０として受信処理能力の低い安価なマイコンを用いる。従って、ＲＯＭ書換装置５０と第一マイコン１０との間で、一度に送受信可能なデータ量Ｎに対して、第一マイコン１０と第二マイコン３０との間で、一度に送受信可能なデータ量ＮＭが小さくなる。
【００４１】
また、データ量ＮＭが、ＲＯＭ書換装置５０から送信されてくる書込対象データの量ＤＳよりも小さいと、第一マイコン１０において、ＲＯＭ書換装置５０から送信されてきた書込対象データを、単に転送するだけでは、第二マイコン３０において、書込対象データを正常に受信処理することができず、正常にＲＯＭ３５内のデータ更新を実現することができなくなる。
【００４２】
そこで、本実施例では、第一マイコン１０において、ＲＯＭ書換装置５０から送信されてきた書込対象データを、単に送信するのではなく、これを、第二マイコン３０が一度に受信可能なＮＭバイト分のデータ毎に、分割して送信する。また、データを分割して送信するために、通信回路１１が受信したデータを、一旦、ＲＡＭ１７に蓄積する。
【００４３】
以下では、このように構成された電子制御装置１における第一マイコン１０及び第二マイコン３０の動作について説明する。図３は、第一マイコン１０及び第二マイコン３０が実行するデータ受信処理を表すフローチャートである。第一マイコン１０及び第二マイコン３０は、受信準備が整う度にデータ受信処理を開始し、１回分の受信動作を行う。
【００４４】
第一マイコン１０及び第二マイコン３０は、データ受信処理を開始すると、自身内蔵の通信回路１１，１２，３１がデータを受信する度に、Ｓ１０１でＹｅｓと判断し、通信回路１１，１２，３１が内蔵するバッファから受信データを取り出し、これを自身内蔵のＲＡＭ１７，３７に蓄積する（Ｓ１０３）。このような動作を、全データの受信が完了するまで繰返し、全データの受信が完了すると（Ｓ１０５でＹｅｓ）、受信動作を終了する。
【００４５】
尚、第一マイコン１０では、１度に受信可能なデータ量がＮバイトであるので、Ｎバイト分のデータを受信すると（Ｓ１０５でＹｅｓ）、受信動作を終了する。また、第二マイコン３０では、１度に受信可能なデータ量がＮＭバイトであるので、ＮＭバイト分のデータを受信すると（Ｓ１０５でＹｅｓ）、受信動作を終了する。以下では、原則的に、第一マイコン１０及び第二マイコン３０におけるデータ受信の際、上述した受信動作が行われていることとする。
【００４６】
その他、第二マイコン３０は、第一マイコン１０からのデータを受信するための準備として、第一マイコン１０からのデータを受信可能な状態になる度に、ハンドシェイク信号を、第一マイコン１０に入力する。図４は、第二マイコン３０が繰返し実行する通信制御処理を表すフローチャートである。
【００４７】
第二マイコン３０は、通信制御処理を開始すると、ハンドシェイク信号を送信し（Ｓ１１１）、その後、第一マイコン１０から受信したデータについての受信後処理が終了して、第一マイコン１０からデータ受信可能な状態となるまで（即ち、受信データがＲＡＭ３７から処理されるまで）待機し（Ｓ１１３でＮｏ）、受信後処理が終了して、第一マイコン１０からのデータを受信可能な状態となると（Ｓ１１３でＹｅｓ）、Ｓ１１１に移行し、第一マイコン１０にハンドシェイク信号を送信する。
【００４８】
続いて、第一マイコン１０が、電源投入後にＭＰＵ１３にて実行するブートプログラムにより実現される起動処理について説明する。図５は、第一マイコン１０が実行する起動処理を表すフローチャートである。
【００４９】
起動処理を開始すると、第一マイコン１０は、ＲＯＭ１５が記憶するメイン制御プログラムが正当なプログラムであるか否か等の初期チェックを実行し（Ｓ２１０）、チェック結果がＮＧである場合には（Ｓ２２０でＮｏ）、Ｓ２２５に移行して、エラー処理を実行した後に、当該起動処理を終了する。エラー処理としては、例えば、コネクタ３に接続された外部装置（ＲＯＭ書換装置５０や、故障診断装置等）との通信により、故障診断したり、ＲＯＭ１５のデータ更新に係る処理を実行する処理等が挙げられる。
【００５０】
一方、チェック結果がＯＫである場合には（Ｓ２２０でＹｅｓ）、コネクタ３にＲＯＭ書換装置５０等の外部装置が接続されているか否かを判断し（Ｓ２３０）、外部装置が接続されていないと判断すると（Ｓ２３０でＮｏ）、ＲＯＭ１５が記憶するメイン制御プログラムを読み出して、このプログラムに従い制御対象を制御するためのメイン制御処理を実行する（Ｓ２４０）。そして、一通りの処理を終えると、再びコネクタ３に外部装置が接続されているか否かを判断し（Ｓ２３０）、外部装置が接続されている場合には、通信回路１１を介して、外部装置と通信し、外部装置からコマンドを受信する（Ｓ２５０）。
【００５１】
そして、受信コマンドが、書換モードへの移行を指示するコマンドであると、Ｓ２６０でＹｅｓと判断して、ＲＯＭ１５に記憶されている書換制御プログラムを読み出し、このプログラムに従い図６に示す書換制御処理を実行する（Ｓ２７０）。その後、当該起動処理を終了する。一方、受信コマンドが、書換モードへの移行を指示するコマンド以外のコマンドであると、Ｓ２６０でＮｏと判断して、受信コマンドに対応する処理を実行する（Ｓ２８０）。その後、当該起動処理を終了する。
【００５２】
図６は、第一マイコン１０が、ＭＰＵ１３にて実行する書換制御処理を表すフローチャートである。
書換制御処理を開始すると、第一マイコン１０は、第二マイコン３０に対して書換モードへの移行を指示する信号を入力して（Ｓ３１０）、第二マイコン３０を書換モードに移行させる。その後、ＲＯＭ書換装置５０から書換先選択情報を受信する（Ｓ３２０）。
【００５３】
書換先選択情報は、ＲＯＭのデータ更新を行う対象マイコンの識別情報を含み、第一マイコン１０は、書換先選択情報の受信後、書換先選択情報が第一マイコン１０（自身）を示しているか否かを判断する（Ｓ３３０）。そして、書換先選択情報が、第一マイコン１０（自身）を示している場合には（Ｓ３３０でＹｅｓ）、自身内蔵のＲＯＭ１５内のデータを更新するための自己書換処理（図８参照）を実行し（Ｓ３４０）、データ更新が終了すると、ＲＯＭ書換装置５０との通信を終了するための手続を実行し（Ｓ３６０）、その後、当該書換制御処理を終了する。
【００５４】
一方、書換先選択情報が、第二マイコン３０を示している場合には（Ｓ３３０でＮｏ）、ＲＯＭ書換装置５０からの入力コマンド及びデータを、第二マイコン３０に転送するためのＧＷ（ゲートウェイ）通信処理（図９参照）を実行する（Ｓ３５０）。その後、第二マイコン３０でのデータ更新が終了すると、ＲＯＭ書換装置５０との通信を終了するための手続を実行し（Ｓ３６０）、当該書換制御処理を終了する。
【００５５】
次に、第二マイコン３０が、電源投入後、ＭＰＵ３３にて実行するブートプログラムにより実現される起動処理について説明する。図７は、第二マイコン３０が実行する起動処理を表すフローチャートである。
【００５６】
起動処理を開始すると、第二マイコン３０は、ＲＯＭ３５が記憶するメイン制御プログラムが正当なプログラムであるか否か等の初期チェックを実行し（Ｓ４１０）、チェック結果がＮＧである場合には（Ｓ４２０でＮｏ）、Ｓ４２５にて、エラー処理を実行した後、当該起動処理を終了する。
【００５７】
一方、チェック結果がＯＫである場合には（Ｓ４２０でＹｅｓ）、第一マイコン１０から、書換モードへの移行を指示する信号が入力されているか否かを判断し（Ｓ４３０）、上記信号が入力されていない場合には（Ｓ４３０でＮｏ）、ＲＯＭ３５が記憶するメイン制御プログラムを読み出して、このプログラムに従い制御対象を制御するためのメイン制御処理を実行する（Ｓ４４０）。そして、一通りの処理を終えると、再び、上記信号が入力されているか否かを判断し（Ｓ４３０）、上記信号が入力されている場合には（Ｓ４３０でＹｅｓ）、ＲＯＭ３５に記憶されている書換制御プログラムを読み出して、このプログラムに従い図１５に示す書換制御処理を実行する（Ｓ４５０）。その後、当該起動処理を終了する。
【００５８】
次に、第一マイコン１０がＳ３４０で実行する自己書換処理について説明する。図８は、第一マイコン１０が、ＭＰＵ１３にて実行する自己書換処理を表すフローチャートである。
【００５９】
自己書換処理を実行すると、第一マイコン１０は、まず、通信に伴う初期処理を実行し（Ｓ５１０）、その後、ＲＯＭ書換装置５０から、通信回路１１を介して、指定領域を消去せよとの消去コマンドを受信するまで待機し（Ｓ５２０）、消去コマンドを受信すると（Ｓ５２０でＹｅｓ）、その後ＲＯＭ書換装置５０から送信されてくるアドレスデータを、通信回路１１を介して受信する（Ｓ５２５）。尚、アドレスデータには、消去対象の領域（上記指定領域）に対応するメモリアドレスが記されている。
【００６０】
第一マイコン１０は、アドレスデータの受信後、受信したアドレスデータを解析して、アドレスデータが示すメモリアドレスに対応するＲＯＭ１５内の領域に記憶されているデータを消去する（Ｓ５３０）。また、データ消去が終了すると、ＲＯＭ書換装置５０から、指定データを書き込めとの書換コマンドを、通信回路１１を介して受信するまで待機する。
【００６１】
また、書換コマンドを受信すると（Ｓ５４０でＹｅｓ）、その後ＲＯＭ書換装置５０から送信されてくる上記指定データとしての書込対象データを、通信回路１１を介して受信し（Ｓ５４５）、この書込対象データを、ＲＯＭ１５における上記データ消去後の領域に、書き込む（Ｓ５５０）。
【００６２】
また、書込が終了すると、ＲＯＭ書換装置５０から、書込後のデータを入力データと比較せよとの比較コマンドを受信するまで待機し、通信回路１１を介して、比較コマンドを受信すると（Ｓ５６０でＹｅｓ）、その後ＲＯＭ書換装置５０から送信されてくる上記入力データとしての比較対象データを受信する（Ｓ５７０）。
【００６３】
また、比較対象データを受信すると、第一マイコン１０は、この比較対象データとＲＯＭ１５に書き込んだデータとを、１バイト分比較する（Ｓ５８０）。
そして、データが一致すると（Ｓ５８１でＹｅｓ）、比較対象データを全て比較したか否かを判断し（Ｓ５８３）、比較対象データを、全バイトについて比較していない場合には（Ｓ５８３でＮｏ）、後続のデータ（１バイト分）について、比較対象データとＲＯＭ１５に書き込んだデータ（上記書込対象データ）とを比較する（Ｓ５８０）。そして、データが一致する場合には（Ｓ５８１でＹｅｓ）、Ｓ５８３に移行する。
【００６４】
一方、Ｓ５８３において、比較対象データとＲＯＭ１５に書き込んだデータとを全バイトについて比較したと判断すると（Ｓ５８３でＹｅｓ）、第一マイコン１０は、データ一致との情報を格納した応答信号を、通信回路１１を介して、ＲＯＭ書換装置５０に送信し（Ｓ５８５）、その後、当該自己書換処理を終了する。
【００６５】
これに対し、比較対象データとＲＯＭ１５に書き込んだデータとが一致しないと判断すると（Ｓ５８１でＮｏ）、第一マイコン１０は、Ｓ５８７に移行して、データ不一致との情報を格納した応答信号を、通信回路１１を介して、ＲＯＭ書換装置５０に送信し、その後、Ｓ５１０に移行して、自己書換処理を実行し直す。
【００６６】
次に、第一マイコン１０が、Ｓ３５０で実行するＧＷ通信処理について説明する。図９は、第一マイコン１０が実行するＧＷ通信処理を表すフローチャートである。また、図１０は、ＧＷ通信処理の過程で、第一マイコン１０が実行する消去通信処理を表すフローチャートであり、図１１は、第一マイコン１０が実行する外部データ転送処理を表すフローチャートである。その他、図１２は、第一マイコン１０が実行する書換通信処理を表すフローチャートであり、図１３は、第一マイコン１０が実行するデータ比較処理を表すフローチャートである。
【００６７】
ＧＷ通信処理を実行すると、第一マイコン１０は、まず、通信に伴う初期処理を実行し（Ｓ６１０）、その後、Ｓ６２０に移行して、図１０に示す消去通信処理を実行する。
消去通信処理を実行すると、第一マイコン１０は、ＲＯＭ書換装置５０から、通信回路１１を介して、消去コマンドＡを受信するまで待機し（Ｓ７１０）、消去コマンドＡを受信すると（Ｓ７１０でＹｅｓ）、その後ＲＯＭ書換装置５０から送信されてくるアドレスデータを、通信回路１１を介して受信する（Ｓ７１５）。
【００６８】
第一マイコン１０は、この後、上記受信したアドレスデータを、第二マイコン３０用のアドレスデータに変換して、第二マイコン３０への送信データを生成し、これをＲＡＭ１７内の送信データ格納領域に保存する（Ｓ７２０）。
【００６９】
また、Ｓ７２０での処理を終えると、上記受信した消去コマンドＡを、第二マイコン３０が受付可能な第二マイコン３０用の消去コマンドＢに変換して、これを送信対象コマンドに設定する（Ｓ７３０）。尚、本実施例では、ＲＯＭ書換装置５０から受信した第一マイコン１０用のコマンドを表記する際、その末尾に「Ａ」を記し、第一マイコン１０で生成された第二マイコン３０用のコマンドを表記する際、その末尾に「Ｂ」を記して、適宜区別して表現する。
【００７０】
Ｓ７３０での処理を終えると、第一マイコン１０は、Ｓ７４０に移行し、通信回路１２を通じて、第二マイコン３０からハンドシェイク信号を受信しているか否かを判断し、ハンドシェイク信号を受信していない場合には（Ｓ７４０でＮｏ）、ハンドシェイク信号を、第二マイコン３０から受信するまで待機する。
【００７１】
そして、ハンドシェイク信号を受信すると、Ｓ７４０でＹｅｓと判断し、第二マイコン３０へのコマンド送信が完了しているか否かを判断し（Ｓ７５０）、Ｓ７３０で設定した送信対象コマンドの第二マイコン３０への送信が完了していない場合には（Ｓ７５０でＮｏ）、Ｓ７５５に移行して、Ｓ７３０で設定した送信対象コマンドを、通信回路１２を介して、第二マイコン３０に送信する。
【００７２】
その後、第一マイコン１０は、送信対象コマンドが通信回路３１で受信されてＭＰＵ３３にて解釈されると、第二マイコン３０から送信されてくるハンドシェイク信号を受信するまで待機し（Ｓ７４０）、ハンドシェイク信号を受信すると（Ｓ７４０でＹｅｓ）、Ｓ７５０でＹｅｓと判断して、Ｓ７６０に移行する。そして、Ｓ７２０で生成した送信データの第二マイコン３０への送信が完了しているか否かを判断し、Ｓ７２０で生成した送信データの第二マイコン３０への送信が完了していないと判断すると（Ｓ７６０でＮｏ）、Ｓ７６５に移行して、図１１に示す外部データ転送処理を実行する。
【００７３】
外部データ転送処理を開始すると、第一マイコン１０は、送信データ格納領域に格納されている未送信データから、第二マイコン３０が一度に受信可能なＮＭバイト分のデータを、その先頭から抽出し、これを通信回路１２を介して、第二マイコン３０に送信する（Ｓ８１０）。
【００７４】
その後、Ｓ８２０に移行して、送信データ格納領域に格納されている未送信データを全て送信したか否かを判断し、全て送信していないと判断すると（Ｓ８２０でＮｏ）、第二マイコン３０に送信したＮＭバイト分のデータが通信回路３１からＭＰＵ３３に伝達し、コマンドに対応する処理（消去コマンドの場合には、アドレスデータに対応する領域のデータ消去）がＭＰＵ３３にてなされた後、第二マイコン３０から送信されてくるハンドシェイク信号を受信するまで待機し（Ｓ８３０）、ハンドシェイク信号を受信すると（Ｓ８３０でＹｅｓ）、再びＳ８１０に移行して、未送信データの先頭からＮＭバイト分のデータを抽出し、これを通信回路１２を介して、第二マイコン３０に送信する。そして、送信データ格納領域に格納されている未送信データの全てを送信すると（Ｓ８２０でＹｅｓ）、当該外部データ転送処理を終了する。
【００７５】
このようにして、Ｓ７６５で外部データ転送処理を終了すると、第一マイコン１０は、Ｓ７４０に移行し、第二マイコン３０からハンドシェイク信号を受信するまで待機し、ハンドシェイク信号を受信すると、Ｓ７５０及びＳ７６０でＹｅｓと判断して、当該消去通信処理を終了する。また、消去通信処理（Ｓ６２０）を終了すると、第一マイコン１０は、図１２に示す書換通信処理を実行する（Ｓ６３０）。
【００７６】
書換通信処理を開始すると、第一マイコン１０は、通信回路１１を介して書換コマンドＡを受信するまで待機し、書換コマンドＡを受信すると（Ｓ９１０でＹｅｓ）、その後ＲＯＭ書換装置５０から送信されてくる書込対象データを、通信回路１１を介して受信する（Ｓ９１５）。
【００７７】
また、第一マイコン１０は、書込対象データの受信後、その書込対象データを、第二マイコン３０が解釈可能なデータに変換して、第二マイコン３０への送信データを生成し、これをＲＡＭ１７内の送信データ格納領域に保存する（Ｓ９２０）。
【００７８】
また、Ｓ９２０での処理を終えると、上記受信した書換コマンドＡを、第二マイコン３０が受付可能な第二マイコン３０用の書換コマンドＢに変換して、これを送信対象コマンドに設定する（Ｓ９３０）。その後、第一マイコン１０は、Ｓ９４０に移行し、第二マイコン３０から通信回路１２を通じて、ハンドシェイク信号を受信しているか否かを判断し、ハンドシェイク信号を受信していない場合には（Ｓ９４０でＮｏ）、ハンドシェイク信号を、第二マイコン３０から受信するまで待機する。
【００７９】
一方、ハンドシェイク信号を受信していると判断すると（Ｓ９４０でＹｅｓ）、第一マイコン１０は、第二マイコン３０へのコマンド送信が完了しているか否かを判断し（Ｓ９５０）、Ｓ９３０で設定した送信対象コマンドの第二マイコン３０への送信が完了していない場合には（Ｓ９５０でＮｏ）、Ｓ９５５に移行して、Ｓ９３０で設定した送信対象コマンドを、通信回路１２を介し、第二マイコン３０に送信する。
【００８０】
その後、第一マイコン１０は、送信対象コマンドが通信回路３１で受信されてＭＰＵ３３に解釈されると、第二マイコン３０から送信されてくるハンドシェイク信号を受信するまで待機し（Ｓ９４０）、ハンドシェイク信号を受信すると（Ｓ９４０でＹｅｓ）、Ｓ９５０でＹｅｓと判断して、Ｓ９６０に移行する。
【００８１】
Ｓ９６０に移行すると、第一マイコン１０は、Ｓ９２０で生成した送信データの第二マイコン３０への送信が完了しているか否かを判断し、Ｓ９２０で生成した送信データの第二マイコン３０への送信が完了していないと判断すると（Ｓ９６０でＮｏ）、図１１に示す外部データ転送処理を実行する（Ｓ９６５）。
【００８２】
即ち、第一マイコン１０は、Ｓ９６５において、送信データ格納領域に格納されている未送信データの先頭から、第二マイコン３０が一度に受信可能なＮＭバイト分のデータを抽出し、これを第二マイコン３０に送信する（Ｓ８１０）。第二マイコン３０では、通信回路３１が受信したＮＭバイト分のデータが、ＭＰＵ３３にて処理され、ＲＯＭ３５に書き込まれる度に、ハンドシェイク信号が送出される。従って、第一マイコン１０は、ＮＭバイト分の書込対象データが、ＲＯＭ３５に書き込まれる度に、Ｓ８３０でＹｅｓと判断して、未送信データから、ＮＭバイト分のデータを抽出し、これを第二マイコン３０に送信する（Ｓ８１０）。そして、全データの送信が終了すると（Ｓ８２０でＹｅｓ）、外部データ転送処理を終了する。
【００８３】
Ｓ９６５での処理（外部データ転送処理）を終了すると、第一マイコン１０は、第二マイコン３０からハンドシェイク信号を受信するまで待機し、ハンドシェイク信号を受信すると、Ｓ９５０及びＳ９６０でＹｅｓと判断して、当該書換通信処理を終了する。また、Ｓ６３０で書換通信処理を終了すると、Ｓ６４０に移行し、図１３に示すデータ比較処理を実行する。
【００８４】
データ比較処理を実行すると、第一マイコン１０は、通信回路１１を介して、ＲＯＭ書換装置５０から、比較コマンドＡを受信するまで待機し、比較コマンドＡを受信すると（Ｓ１０１０でＹｅｓ）、その後ＲＯＭ書換装置５０から送信されてくる比較対象データを、通信回路１１を介して受信する（Ｓ１０１５）。
【００８５】
また、第一マイコン１０は、比較対象データの受信後、その比較対象データを、書込対象データと同様に、第二マイコン３０が解釈可能なデータに変換して、変換後の比較対象データを、ＲＡＭ１７に保存する（Ｓ１０２０）。その後、第二マイコン３０に対してＲＯＭ３５への書込データを送信せよとのデータ要求コマンドを、送信対象コマンドに設定する（Ｓ１０３０）。
【００８６】
Ｓ１０３０での処理を終えると、第一マイコン１０は、Ｓ１０４０に移行して、第二マイコン３０から通信回路１２を通じ、ハンドシェイク信号を受信しているか否かを判断し、ハンドシェイク信号を受信していないと判断すると（Ｓ１０４０でＮｏ）、ハンドシェイク信号を、第二マイコン３０から受信するまで待機する。
【００８７】
一方、ハンドシェイク信号を受信していると判断すると（Ｓ１０４０でＹｅｓ）、第一マイコン１０は、第二マイコン３０へのコマンド送信が完了しているか否かを判断し（Ｓ１０５０）、Ｓ１０３０で設定した送信対象コマンドの第二マイコン３０への送信が完了していないと判断すると（Ｓ１０５０でＮｏ）、Ｓ１０５５に移行して、Ｓ１０３０で設定した送信対象コマンドを、通信回路１２を介し第二マイコン３０に送信する。その後、Ｓ１０６０に移行する。
【００８８】
そして、Ｓ１０６０では、第二マイコン３０から受信すべき書込データを全て受信したか否かを判断し、受信していないと判断すると（Ｓ１０６０でＮｏ）、データ要求コマンドの受信に応答して第二マイコン３０から送信されてくるＮＭバイト分の書込データを、通信回路１２を介して受信する（Ｓ１０６３）。また、Ｓ１０６３での処理を終えると、Ｓ１０６７にて、コマンド送信フラグをリセットする。尚、このコマンド送信フラグは、Ｓ１０５０での判断基準となるフラグであり、コマンド送信フラグがリセットされると、Ｓ１０５０においては、送信対象コマンドの送信が完了していないと判断される。
【００８９】
Ｓ１０６７での処理を終えると、第一マイコン１０は、Ｓ１０４０に移行し、第二マイコン３０からハンドシェイク信号が送信されてくるまで待機する。尚、第二マイコン３０は、１回分（ＮＭバイト分）のデータ送信が完了する度に、ハンドシェイク信号を送出する構成にされている。
【００９０】
第一マイコン１０は、Ｓ１０６７での処理後、再びハンドシェイク信号を受信すると（Ｓ１０４０でＹｅｓ）、Ｓ１０５０でＮｏと判断して、送信対象コマンド（データ要求コマンドＢ）を、再び、第二マイコン３０に送信する（Ｓ１０５５）。その後、Ｓ１０６０にて、第二マイコン３０から受信すべき書込データを全て受信したか否かを判断し、受信していないと判断すると、Ｓ１０６３に移行して、受信していない残りの書込データをＮＭバイト分、第二マイコン３０から受信し、その後、Ｓ１０６７に移行する。
【００９１】
一方、第二マイコン３０から受信すべき書込データを全て受信したと判断すると（Ｓ１０６０でＹｅｓ）、Ｓ１０７０に移行し、ＲＯＭ書換装置５０から受信した比較対象データであって、ＲＡＭ１７に保存された変換後の比較対象データと、第二マイコン３０がＲＯＭ３５に書き込んだデータ（書込データ）であって、第二マイコン３０から受信しＲＡＭ１７に保存したデータとを、１バイト分比較する（Ｓ１０７０）。
【００９２】
そして、１バイト分のデータが一致すると（Ｓ１０７１でＹｅｓ）、比較対象データを全バイトについて比較したか否かを判断し（Ｓ１０７３）、比較対象データを、全バイトについて比較していないと判断すると（Ｓ１０７３でＮｏ）、次の１バイト分のデータ（後続のデータ１バイト分）について、変換後の比較対象データと、第二マイコン３０から受信した書込データとを比較する（Ｓ１０７０）。
【００９３】
そして、データが一致すると（Ｓ１０７１でＹｅｓ）、Ｓ１０７３に移行し、比較対象データを全バイトについて比較したと判断すると（Ｓ１０７３でＹｅｓ）、データ一致との情報を格納した応答信号を、通信回路１１を介して、ＲＯＭ書換装置５０に送信し（Ｓ１０７５）、その後、当該データ比較処理（Ｓ６４０）を終了し、それと共に、ＧＷ通信処理を終了する。
【００９４】
一方、Ｓ１０７０で比較した結果、変換後の比較対象データと、第二マイコン３０がＲＯＭ３５に書き込んだデータ（書込データ）とが一致しないと判断すると（Ｓ１０７１でＮｏ）、第一マイコン１０は、Ｓ１０７７に移行し、データ不一致との情報を格納した応答信号を、通信回路１１を介して、ＲＯＭ書換装置５０に送信し、その後、Ｓ６１０に移行する。
【００９５】
また、第一マイコン１０は、Ｓ６１０における初期処理の実行時に、図１４に示すステータス通知処理を開始して、これをＧＷ通信処理と並列に実行する構成にされている。図１４は、このステータス通知処理を表すフローチャートである。
【００９６】
尚、ステータス通知処理は、処理能力の低い第二マイコン３０に対してデータ転送する際や、書込データを受信する際など、時間を要する処理の実行中に、ＲＯＭ書換装置５０に対し、第一マイコン１０及び第二マイコン３０の状態を通知するための処理である。ＲＯＭ書換装置５０では、比較コマンドを送信する際などに、ステータスについての問合せ信号である問合せコマンドを送信する構成にされており、この応答信号に基づいて、比較コマンドを送信するタイミングを決定し、又、処理の進行具合を、ユーザに通知する。
【００９７】
第一マイコン１０は、ステータス通知処理を実行すると、ＲＯＭ書換装置５０から通信回路１１を介して問合せコマンドを受信するまで待機し（Ｓ１１１０）、問合せコマンドを受信すると（Ｓ１１１０でＹｅｓ）、外部データ転送処理が実行中であるか否かを判断し（Ｓ１１２０）、外部データ転送処理が実行中であると判断すると（Ｓ１１２０でＹｅｓ）、「ＢＵＳＹ」との値を示す応答信号を、ＲＯＭ書換装置５０に送信して（Ｓ１１５０）、一旦当該ステータス通知処理を終了した後、Ｓ１１１０に移行し、再度、問合せコマンドを受信するまで待機する。
【００９８】
一方、Ｓ１１２０にて、外部データ転送処理が実行中ではないと判断すると、第一マイコン１０は、Ｓ１１３０にて、書込データの受信中（具体的には、Ｓ１０４０〜Ｓ１０６７の処理実行中）であるか否かを判断する。そして、書込データの受信中であると判断すると（Ｓ１１３０でＹｅｓ）、Ｓ１１５０に移行し、「ＢＵＳＹ」との値を示す応答信号を、ＲＯＭ書換装置５０に送信する。その後、Ｓ１１１０に移行し、再度、問合せコマンドを受信するまで待機する。
【００９９】
その他、Ｓ１１３０にて、書込データの受信中ではないと判断すると、第一マイコン１０は、Ｓ１１４０にて、データ比較中（具体的には、Ｓ１０７０〜Ｓ１０７３の処理実行中）であるか否かを判断する。そして、データ比較中であると判断すると（Ｓ１１４０でＹｅｓ）、Ｓ１１５０に移行し、「ＢＵＳＹ」との値を示す応答信号を、ＲＯＭ書換装置５０に送信する。これに対し、Ｓ１１４０にて、データ比較中ではないと判断すると（Ｓ１１４０でＮｏ）、第一マイコン１０は、「ＮｏｔＢＵＳＹ」との値を示す応答信号を、ＲＯＭ書換装置５０に送信し（Ｓ１１６０）、当該ステータス通知処理を終了する。
【０１００】
このステータス通知処理によれば、データ転送が終了すると、応答信号の値が「ＢＵＳＹ」から「ＮｏｔＢＵＳＹ」に切り替わるので、ＲＯＭ書換装置５０は、この応答信号に基づいて、比較コマンドの送信タイミングを決定することができると共に、データの転送状況及びデータの比較状況を、ユーザに通知することができるのである。
【０１０１】
続いて、第二マイコン３０が、Ｓ４５０にて実行する書換制御処理について説明する。図１５は、第二マイコン３０が実行する書換制御処理を表すフローチャートである。また、図１６は、書換制御処理の実行過程で第二マイコン３０が実行する受信書込処理を表すフローチャートである。
【０１０２】
書換制御処理を実行すると、第二マイコン３０は、まず、通信に伴う初期処理を実行し（Ｓ１２１０）、その後、第一マイコン１０から、通信回路３１を介して、消去コマンドＢを受信するまで待機し（Ｓ１２２０）、消去コマンドＢを受信すると（Ｓ１２２０でＹｅｓ）、その後、第一マイコン１０から送信されてくるアドレスデータを、通信回路３１を介して受信する（Ｓ１２２５）。
【０１０３】
そして、アドレスデータを受信すると、そのアドレスデータを解析して、アドレスデータが示すメモリアドレスに対応するＲＯＭ３５内の領域に記憶されているデータを消去する（Ｓ１２３０）。また、データ消去が終了すると、第一マイコン１０から書換コマンドＢを、通信回路３１を介して受信するまで待機する（Ｓ１２４０）。
【０１０４】
そして、書換コマンドＢを受信すると（Ｓ１２４０でＹｅｓ）、受信書込処理を実行し、第一マイコン１０から、書込対象データを、ＮＭバイト毎に、通信回路３１を介して受信して、これをＲＯＭ３５に書き込む（Ｓ１２５０）。
【０１０５】
具体的に、受信書込処理を実行すると、第二マイコン３０は、第一マイコン１０から送信されてくるＮＭバイト分の書込対象データを、通信回路３１を介して受信し（Ｓ１２５１）、ＮＭバイト分の書込対象データを受信すると、これを、ＲＯＭ３５における上記データ消去後の領域に、未だデータを書き込んでいない上記領域の先頭を基点として、書き込む（Ｓ１２５５）。
【０１０６】
その後、書込対象データを全て（最終バイトまで）受信したか否か判断し（Ｓ１２５７）、書込対象データを全て受信していないと判断すると（Ｓ１２５７でＮｏ）、Ｓ１２５５の処理後に送信されるハンドシェイク信号を契機として、第一マイコン１０から送信されてくる続きのデータ（ＮＭバイト分の書込対象データ）を、Ｓ１２５１にて受信し、これを、ＲＯＭ３５における上記データ消去後の領域に、未だデータを書き込んでいない上記領域の先頭を基点として、書き込む（Ｓ１２５５）。その後、書込対象データを全て受信したと判断すると（Ｓ１２５７でＹｅｓ）、当該受信書込処理を終了する。
【０１０７】
このようにして、Ｓ１２５０で受信書込処理を終了すると、第二マイコン３０は、Ｓ１２６０に移行し、第一マイコン１０から、通信回路３１を介して、データ要求コマンドＢを受信するまで待機する。そして、データ要求コマンドＢを受信すると（Ｓ１２６０でＹｅｓ）、ＲＯＭ３５への書込データであって未送信のデータを、通信回路３１を介して、先頭から順にＮＭバイト分送信する（Ｓ１２７０）。
【０１０８】
その後、第二マイコン３０は、書込データを全て第一マイコン１０に送信したか否かを判断し（Ｓ１２８０）、送信していなければ（Ｓ１２８０でＮｏ）、Ｓ１２６０に移行して、再びデータ要求コマンドＢを、第一マイコン１０から受信するまで待機する。尚、上述したように、第一マイコン１０は、第二マイコン３０が書込データをＮＭバイト分送信し、データ受信可能な状態になると送出するハンドシェイク信号を受信すると、再び、データ要求コマンドＢを送信する構成にされており、第二マイコン３０は、このデータ要求コマンドＢを受信するまで待機する。
【０１０９】
そして、データ要求コマンドＢを受信すると、未送信データを、先頭から受信にＮＭバイト分送信する（Ｓ１２７０）。そして、この際、未送信データがＮＭバイト分ない場合には、未送信データ全てを、第一マイコン１０に向けて送信し、未送信データがない場合には、その旨の信号を、第一マイコン１０に送信する。そして、書込データを全て第一マイコン１０に送信している場合には、Ｓ１２８０でＹｅｓと判断し、当該書込制御処理を終了する。尚、書込制御処理後においても、書換モードは継続し、必要があれば、再びＳ１２１０から処理を開始する。
【０１１０】
以上、本実施例の電子制御装置１について説明したが、この電子制御装置１によれば、第一マイコン１０が、ＲＯＭ書換装置５０から受信したデータを、ＲＡＭ１７に一旦蓄積するので、第二マイコン３０の受信処理能力が低く、第一マイコン１０が、ＲＯＭ書換装置５０から受信した第二マイコン３０宛のデータを、ＲＯＭ書換装置５０の送信速度に合わせて、第二マイコン３０に転送することができない場合でも、オーバーフローが発生するのを防止することができる。
【０１１１】
また、この電子制御装置１によれば、第一マイコン１０が、第二マイコン３０の受信処理能力に合わせて、転送対象のデータを分割し、ハンドシェイク信号を受信する度に、所定量（ＮＭバイト）ずつ、第二マイコン３０に転送するので、第二マイコン３０に受信処理能力の低いマイコンを用いても、第二マイコン３０に対して、確実にデータを転送することができ、データ転送の失敗によって、誤ったデータが、第二マイコン３０のＲＯＭ３５に書き込まれるのを防止することができる。
【０１１２】
従って、本実施例によれば、安価なマイコンを第二マイコン３０として用いても、外部通信ライン５に接続された第一マイコン１０からのデータ転送による手法で、第二マイコン３０におけるＲＯＭ３５のデータ更新を、実現することができる。
【０１１３】
また、電子制御装置１では、ＲＯＭ書換装置５０から第二マイコン３０宛のデータを受信した場合、第一マイコン１０が、その受信データを、第二マイコン３０が解釈可能なデータに変換して、一旦ＲＡＭ１７に保存し、ＲＡＭ１７に保存された上記変換後のデータを、第二マイコン３０に転送する。従って、本実施例によれば、第二マイコン３０に対してデータ変換機能を設けずに済み、安価なマイコンを、第二マイコン３０として用いて、電子制御装置１を構成することができる。
【０１１４】
その他、本実施例の電子制御装置１では、第二マイコン３０が、第一マイコン１０を介して、ＲＯＭ書換装置５０から、アドレスデータを受信すると（Ｓ１２２５）、そのアドレスデータが示すメモリアドレスに対応するＲＯＭ３５内の領域をデータ消去して（Ｓ１２３０）、この後に送信されてくる書込対象データを、アドレスデータが示すメモリアドレスに対応する領域に、書き込む（Ｓ１２５０）。従って、本実施例によれば、ＲＯＭ３５が記憶する任意のデータを選択的に更新することができ、データ更新時間の短縮を図ることができる。
【０１１５】
また、本実施例では、第二マイコン３０のデータ更新時に、第二マイコン３０が第一マイコン１０から受信しデータ更新に用いたデータ（書込データ）を、第一マイコン１０が第二マイコン３０から取得し（Ｓ１０３０〜Ｓ１０６７）、第一マイコン１０が、その取得データと、ＲＯＭ書換装置５０から受信した書込対象データ（比較対象データ）とを比較し（Ｓ１０７０〜Ｓ１０７３）、比較結果を、通信回路１１を介してＲＯＭ書換装置５０に送信する（Ｓ１０７５，Ｓ１０７７）。
【０１１６】
従って、本実施例によれば、第一マイコン１０から第二マイコン３０へのデータ転送過程でエラーが生じたか否かを、ＲＯＭ書換装置５０にて把握することができる。また、データが一致しない場合には、再度のデータ更新をユーザに促すことができるので、第二マイコン３０にて、確実に、正確なデータ更新を実現することができる。
【０１１７】
その他、本実施例では、第一マイコン１０が、ＲＯＭ書換装置５０から通信回路１１を介して問合せコマンドを受信すると、外部データ転送処理によりデータ転送中であるか否かを判断し、その結果を表す応答信号を、通信回路１１を介してＲＯＭ書換装置５０に送信する（ステータス通知処理）。従って、本実施例によれば、ＲＯＭ書換装置５０にて、転送状況を把握することができ、次コマンドの送出を迅速に実行することができる。また、ＲＯＭ書換装置５０を介してユーザに対し、転送状況を通知することができ、ユーザに、処理の進行具合を容易に把握させることができる。
【０１１８】
尚、本発明の蓄積手段は、データ受信処理にて実現され、転送手段は、ＧＷ通信処理にて実現され、取得手段は、データ比較処理におけるＳ１０３０〜Ｓ１０６７の処理にて実現されている。また、比較手段は、Ｓ１０７０〜Ｓ１０７３の処理にて実現され、比較結果通知手段は、Ｓ１０７５，Ｓ１０７７の処理にて実現されている。その他、ステータス通知手段は、ステータス通知処理にて実現されている。
【図面の簡単な説明】
【０１１９】
【図１】本発明が適用された電子制御装置１の構成を表す説明図である。
【図２】ＲＯＭ１５のデータ更新手順（ａ）、及びＲＯＭ３５のデータ更新手順（ｂ）を示した説明図である。
【図３】第一マイコン１０及び第二マイコン３０が実行するデータ受信処理を表すフローチャートである。
【図４】第二マイコン３０が繰返し実行する通信制御処理を表すフローチャートである。
【図５】第一マイコン１０が実行する起動処理を表すフローチャートである。
【図６】第一マイコン１０が実行する書換制御処理を表すフローチャートである。
【図７】第二マイコン３０が実行する起動処理を表すフローチャートである。
【図８】第一マイコン１０が実行する自己書換処理を表すフローチャートである。
【図９】第一マイコン１０が実行するＧＷ通信処理を表すフローチャートである。
【図１０】第一マイコン１０が実行する消去通信処理を表すフローチャートである。
【図１１】第一マイコン１０が実行する外部データ転送処理を表すフローチャートである。
【図１２】第一マイコン１０が実行する書換通信処理を表すフローチャートである。
【図１３】第一マイコン１０が実行するデータ比較処理を表すフローチャートである。
【図１４】第一マイコン１０が実行するステータス通知処理を表すフローチャートである。
【図１５】第二マイコン３０が実行する書換制御処理を表すフローチャートである。
【図１６】第二マイコン３０が実行する受信書込処理を表すフローチャートである。
【符号の説明】
【０１２０】
１…電子制御装置、３…コネクタ、５…外部通信ライン、６…内部通信ライン、８，９…入出力回路、１０，３０…マイコン、１１，１２，３１…通信回路、１３，３３…ＭＰＵ、１５，３５…ＲＯＭ、１７，３７…ＲＡＭ、１９，３９…Ｉ／Ｏポート、５０…ＲＯＭ書換装置
【図１】
2006268107.tif 000003
【図２】
2006268107.tif 000004
【図３】
2006268107.tif 000005
【図４】
2006268107.tif 000006
【図５】
2006268107.tif 000007
【図６】
2006268107.tif 000008
【図７】
2006268107.tif 000009
【図８】
2006268107.tif 000010
【図９】
2006268107.tif 000011
【図１０】
2006268107.tif 000012
【図１１】
2006268107.tif 000013
【図１２】
2006268107.tif 000014
【図１３】
2006268107.tif 000015
【図１４】
2006268107.tif 000016
【図１５】
2006268107.tif 000017
【図１６】
2006268107.tif 000018