(57)【特許請求の範囲】
【請求項１】
中央処理装置と、中央処理装置の制御プログラムおよび制御データを記憶したリード／ライト可能な不揮発性メモリと、デバックモジュールとを備えた電子制御装置であって、
特定の操作により、デバックモジュールを使用可能にするイネーブル状態と、デバックモジュールを使用不能にするディセーブル状態とに切り替える選択手段を設け、該選択手段は、デバックモジュールへのクロックの供給を停止することによりディセーブル状態にすることを特徴とする電子制御装置。
【請求項２】
選択手段は、デバックモジュールに接続されたクロック信号線に設けられたスイッチを含むものである請求項１に記載の電子制御装置。
【請求項３】
中央処理装置と、中央処理装置の制御プログラムおよび制御データを記憶したリード／ライト可能な不揮発性メモリと、デバックモジュールとを備えた電子制御装置であって、
特定の操作により、デバックモジュールを使用可能にするイネーブル状態と、デバックモジュールを使用不能にするディセーブル状態とに切り替える選択手段を設け、該選択手段は、デバックモジュールへの電源の供給を停止することによりディセーブル状態にすることを特徴とする電子制御装置。
【請求項４】
選択手段は、デバックモジュールに接続された電源ラインに設けられたスイッチを含むものである請求項３に記載の電子制御装置。
【請求項５】
中央処理装置と、中央処理装置の制御プログラムおよび制御データを記憶したリード／ライト可能な不揮発性メモリと、デバックモジュールとを備えた電子制御装置であって、
特定の操作により、デバックモジュールを用いて当該電子制御装置内部にアクセスできるように該デバックモジュールを使用可能にするイネーブル状態と、デバックモジュールを用いて当該電子制御装置内部に不正アクセスできないように該デバックモジュールを使用不能にするディセーブル状態とに切り替える選択手段を設けたことを特徴とする電子制御装置。
【請求項６】
中央処理装置と、中央処理装置の制御プログラムおよび制御データを記憶したリード／ライト可能な不揮発性メモリと、デバックモジュールとを備えた電子制御装置であって、
特定の操作により、デバックモジュールを用いて前記不揮発性メモリの記憶内容が書き換えられるように該デバックモジュールを使用可能にするイネーブル状態と、デバックモジュールを用いて前記不揮発性メモリの記憶内容が不正に書き換えられないように該デバックモジュールを使用不能にするディセーブル状態とに切り替える選択手段を設けたことを特徴とする電子制御装置。
【請求項７】
特定の操作は、通信を使用して外部からコマンドを送るものである請求項５または請求項６に記載の電子制御装置。
【請求項８】
特定の操作は、内部のハード設定を変えるものである請求項５または請求項６に記載の電子制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は電子制御装置に係り、詳しくは、リード／ライト可能な不揮発性メモリ（フラッシュメモリ）を内蔵したマイコンにおける不正書き換え防止技術に関するものである。
【０００２】
【従来の技術】
従来よりマイコンに組み込むソフトのデバッグ方法として、専用のデバッグモジュールをマイコンに内蔵し、外部装置であるパソコンを接続する形態がある。その一例として、特開平８−１６１１９１号公報に記載のようなＩＤＢ（Ｉnternal Ｄebug of Ｂlock）がある。これは、ターゲットラン中の実行している命令のアドレスを出力するトレース機能、ブレーク中にＣＰＵやメモリをアクセスできるシリアルアクセス機能、ターゲットラン中にメモリのデータ変更やモニタができるノンブレークデバッグ機能を有するものである。
【０００３】
しかし、製品が市場に出た後を含む製品の量産時もデバッグモジュールがマイコンに内蔵されており、自由にマイコン内部にアクセスすることができる。
一方、特開平１０−１０５４６８号公報等には、フラッシュメモリの内容を仕様毎に書き換える技術が開示されている。
【０００４】
これらの技術を用いると、デバッグモジュールを利用してフラッシュメモリの内容を読み込み、さらに、プログラム等の内容を不正に書き換えられてしまうおそれがある。
【０００５】
この対策として、（i)開発チップ（マイコン）にのみデバッグモジュールを内蔵し、量産チップには内蔵しない、または、（ii) デバッグ機能を限定するといったことで解決することはできる。しかし、（i)を行うと、開発チップによるマイコンと量産チップによるマイコンとが必要となり、マイコンの種類が増加してしまう。また、（ii) を行うと、デバッグモジュールを利用しての量産品不具合調査が困難になるという問題が生じる。
【０００６】
【発明が解決しようとする課題】
この発明はこのような事情を鑑みなされたものであり、その目的は、デバッグモジュールを内蔵した電子制御装置において、新規な構成にて種類の増加を抑えつつ、機能を限定することなくデバッグモジュールを利用して量産品での調査を行うことができる電子制御装置を提供することにある。
【０００７】
【課題を解決するための手段】
請求項１、３、５、６に記載の発明は、特定の操作により、デバックモジュールを使用可能にするイネーブル状態と、デバックモジュールを使用不能にするディセーブル状態とに切り替える選択手段を設けるようにしている。
【０００８】
よって、ターゲット製品の出荷前に、デバッグモジュールをディセーブル状態にして、デバッグモジュールを利用してメモリの内容を不正に書き換えられてしまうのを防止できる。また、デバックモジュールをイネーブル状態にすることにより、デバッグモジュールを利用して量産品の不具合調査を行うことができる。
【０００９】
このように、前述の（i)開発チップ（マイコン）にのみデバッグモジュールを内蔵し、量産チップには内蔵しない、あるいは、（ii) デバッグ機能を限定するといったことを行うことなく、種類の増加を抑えながら、機能を限定することなくデバッグモジュールを利用して量産品での調査を行うことができる。
【００１０】
ここで特に、請求項１に記載のように、選択手段を、デバックモジュールへのクロックの供給を停止することによりディセーブル状態にするものとしたり、請求項３に記載のように、デバックモジュールへの電源の供給を停止することによりディセーブル状態にするものとすると、実用上好ましいものとなる。
【００１１】
この際、請求項２，４に記載のように、クロック信号線や電源ラインを遮断／導通するスイッチを用いるとよい。
【００１２】
【発明の実施の形態】
以下、この発明を具体化した実施の形態を図面に従って説明する。
図１は、本実施形態における電子制御装置の全体構成図である。この電子制御装置は車載エンジン用のコントロールユニットとして用いられるものである。
【００１３】
電子制御装置（ＥＣＵ）１は、マイクロコンピュータ（以下、マイコンという）２と入出力回路３を備えている。マイコン２としてはシングルチップマイコンを用いている。
【００１４】
マイコン２は中央処理装置（ＣＰＵ）４とＲＡＭ５とＲＯＭ６とデバッグモジュール７を備えている。ＲＯＭ６はリード／ライト可能な不揮発性メモリであるフラッシュメモリ８を備えており、フラッシュメモリ８にはＣＰＵ４の制御プログラムおよび制御データが記憶されている。ＥＣＵ１はエンジン運転状態を検出するさまざまなセンサと接続されるとともに、エンジン制御のための各種アクチュエータが接続されている。そして、各種センサ信号を入出力回路３を介してＣＰＵ４に取り込み、ＣＰＵ４で各種の演算を実行し、入出力回路３を介して各アクチュエータ等を駆動する。
【００１５】
デバッグモジュール７はＣＰＵ４と接続されている。また、デバッグモジュール７にはクロック信号線Ｌclock を通してクロックが供給されるとともに、電源ラインＬvcc を通して電源Ｖccが供給される。クロック信号線Ｌclock および電源ラインＬvcc の途中には両ライン共通のスイッチ９が挿入されている。つまり、クロック信号線Ｌclock に接点９ａが、また、電源ラインＬvcc に接点９ｂが挿入され、両接点９ａ，９ｂは同じ動き（開閉動作）をする。そして、この接点９ａ，９ｂを閉路することによりクロック信号線Ｌclock および電源ラインＬvcc が導通状態となり、デバックモジュール７にクロックおよび電源が供給される。これにより、デバックモジュール７が使用可能になる（イネーブル状態になる）。一方、接点９ａ，９ｂを開路することによりクロック信号線Ｌclock および電源ラインＬvcc が遮断され、デバックモジュール７へのクロックおよび電源の供給が停止する。これにより、デバックモジュール７が使用不能になる（ディセーブル状態になる）。
【００１６】
レジスタ１０はスイッチ９を制御するために設けられたものであり、レジスタ１０の出力レベル（Ｈレベル、Ｌレベル）により、スイッチ９が開または閉状態に切り替えられる。
【００１７】
本実施形態においては、スイッチ９とレジスタ１０にてデバックモジュール７をイネーブル状態とディセーブル状態とに切り替える選択手段を構成している。
次に、このように構成した電子制御装置の作用を説明する。
【００１８】
図２にはチップ開発時の工程を示す。また、図３にはチップ量産時の工程を示す。さらに、図４にはチップ返品時の工程を示す。
まず、チップ開発時の手順について述べる。図２において、プログラミングを行った後、図１のＥＣＵ１にパソコン２０を接続する。そして、パソコン２０にてＥＣＵ１にイネーブルコマンドを送る。ＥＣＵ１において、このイネーブルコマンドが入出力回路３を経由してＣＰＵ４側に取り込まれる。
【００１９】
一方、ＣＰＵ４は図５の処理を実行している。ＣＰＵ４はステップ１００でイネーブルコマンドを受信したか否か判断し、イネーブルコマンドを受信するとステップ２００でレジスタ１０の出力をＨレベルに設定し、デバッグモジュール７をイネーブル状態にする。つまり、スイッチ９の接点９ａ，９ｂを閉じて、デバッグモジュール７にクロック信号線Ｌclock を通してクロックを供給するとともに電源ラインＬvcc を通して電源Ｖccを供給する。
【００２０】
ＣＰＵ４はステップ１００でイネーブルコマンドを受信しないとステップ３００に移行してディセーブルコマンドを受信したか否か判断する。そして、ディセーブルコマンドを受信すると、ステップ４００でレジスタ１０の出力をＬレベルに設定し、デバッグモジュール７をディセーブル状態にする。つまり、スイッチ９の接点９ａ，９ｂを開けて、デバッグモジュール７にクロック信号線Ｌclock を通してのクロックの供給を停止するとともに電源ラインＬvcc を通しての電源Ｖccの供給を停止する。
【００２１】
よって、チップ開発時においてプログラミングを行った後、ＥＣＵ１にイネーブルコマンドを送信すると、デバッグモジュール７がイネーブル状態になる。
そして、図２に示すように、デバッグモジュール７を使用してデバッグ処理が行われる。
【００２２】
その後に、再度のプログラミングが行われる。
次に、チップ量産時の手順について述べる。図３において、工場にてチップの組み立てが行われ、その後に製品検査が行われる。その後に、図１のＥＣＵ１にパソコン２０を接続する。そして、パソコン２０にてＥＣＵ１にディセーブルコマンドを送る。ＥＣＵ１において、このディセーブルコマンドが入出力回路３を経由してＣＰＵ４側に取り込まれる。
【００２３】
前述したようにＣＰＵ４は図５の処理を実行しているので、このディセーブルコマンドを送信すると、デバッグモジュール７がディセーブル状態にされる。
このように、ターゲット製品の工場出荷前に、シリアル通信等を利用して外部からターゲット製品の設計者のみ知り得るコマンドをマイコン２へ送り、デバッグモジュール７をディセーブル状態にする。
【００２４】
その後に、製品が出荷される。市場に製品が出ている時においてはデバッグモジュール７がディセーブル状態になっているので、同モジュール７のデバック機能を利用してフラッシュメモリ８の内容を読み込み、新たなプログラムを書き込むといった不正書き換えを行うことができない。
【００２５】
つまり、これ以降、誰もデバッグモジュール７を用いたフラッシュメモリ８の内容の読み込みや不正書き込みは実施できなくなる。
次に、市場不具合等でターゲット製品が返品された場合の手順について述べる。図４において、製品が返品されると、製品検査を行い、プログラム異常であると、図１のＥＣＵ１にパソコン２０を接続する。そして、パソコン２０にてＥＣＵ１にイネーブルコマンドを送る。ＥＣＵ１において、このイネーブルコマンドが入出力回路３を経由してＣＰＵ４側に取り込まれる。
【００２６】
前述したようにＣＰＵ４は図５の処理を実行しているので、このイネーブルコマンドを送信すると、デバッグモジュール７がイネーブル状態にされる。そして、デバックモジュール７を使用して不具合が解析される。
【００２７】
つまり、例えば製品検査でマイコン２のＲＡＭ不良が発覚した場合、デバッグモジュール７を使用して不良と思われる領域にＲ／Ｗを実施し調査する。
このように、市場不具合等でターゲット製品が返品された場合、再度、外部からコマンドを送り、デバッグモジュール７をイネーブルとし、マイコン内部の解析を実施する。
【００２８】
以上のように本実施形態は下記の特徴を有する。
（イ）スイッチ９とレジスタ１０を用いて特定のコマンドを外部装置であるパソコン２０から送るという特定の操作によりデバックモジュール７をイネーブル／ディセーブルに切り替え、製品出荷後においてデバッグモジュール７を利用してメモリの内容を不正に書き換えられてしまうのを防止できるとともに、返品時においてデバッグモジュール７を利用して量産品の不具合調査を行うことができる。
【００２９】
また、デバックモジュール７へのクロックまたは電源の供給を止めることにより、消費電流の低減、ノイズ発生の低減効果もある。
なお、図１においてはクロック信号線Ｌclock および電源ラインＬvcc に共通するスイッチ９、即ち、両ラインを同時に開閉するスイッチを設けたが、クロック信号線Ｌclock にのみスイッチ（接点９ａ）を設けたり、あるいは、電源ラインＬvcc にのみスイッチ（接点９ｂ）を設けもよい。即ち、デバックモジュール７へのクロックの供給のみを停止することによりデバックモジュール７をディセーブル状態にしたり、デバックモジュール７への電源の供給のみを停止することによりデバックモジュール７をディセーブル状態にしてもよい。
【００３０】
また、上述した実施形態は、パソコン２０からのコマンド送信によりデバックモジュール７をイネーブル状態、ディセーブル状態に切り換えていた。つまり、特定の操作は、通信を使用して外部からコマンドを送るものであった。この他にも、特定の操作は、ＥＣＵ１の内部のハード設定を変えるものとしてもよい。具体的には、図６に示すように、マイコン２の外部端子２５に電源電圧Ｖccを印加するか、アース電位を印加するかでデバックモジュール７をイネーブル状態、ディセーブル状態に切り換えてもよい。そして、この場合には、例えば、製品出荷時に外部端子２５の接続状態をアース側へとハード的に切り換えることで、ＣＰＵ４は図７に示す処理を実行することによりデバックモジュール７をディセーブル状態にする。
【００３１】
つまり、ＣＰＵ４はステップ５００で外部端子電圧が電源電圧Ｖccか否か判定し、外部端子電圧が電源電圧Ｖccであるとステップ６００でレジスタ１０の出力をＨレベルに設定し、デバッグモジュール７をイネーブル状態にする。これによりスイッチ９の接点９ａ，９ｂが閉じられ、デバッグモジュール７にクロック信号線Ｌclock を通してクロックが供給されるとともに電源ラインＬvcc を通して電源Ｖccが供給される。また、ＣＰＵ４はステップ５００で外部端子電圧が電源電圧Ｖccでないとステップ７００でレジスタ１０の出力をＬレベルに設定し、デバッグモジュール７をディセーブル状態にする。これにより、スイッチ９の接点９ａ，９ｂが開けられて、デバッグモジュール７にクロック信号線Ｌclock を通してのクロックの供給が停止されるとともに電源ラインＬvcc を通しての電源Ｖccの供給が停止される。
【図面の簡単な説明】
【図１】  実施の形態における電子制御装置の構成図。
【図２】  チップ開発時の工程図。
【図３】  チップ量産時の工程図。
【図４】  チップ返品時の工程図。
【図５】  ＣＰＵが実行する処理内容を示すフローチャート。
【図６】  別例の電子制御装置の構成図。
【図７】  ＣＰＵが実行する処理内容を示すフローチャート。
【符号の説明】
４…ＣＰＵ、７…デバックモジュール、８…フラッシュメモリ、９…スイッチ、１０…レジスタ。
【図１】
0003704973.tif 000002
【図２】
0003704973.tif 000003
【図３】
0003704973.tif 000004
【図４】
0003704973.tif 000005
【図５】
0003704973.tif 000006
【図６】
0003704973.tif 000007
【図７】
0003704973.tif 000008