(57)【要約】【課題】外部ポートを介して行われようとする内部資源の一部に対するアクセスを、効率的に禁止することができるマイクロコンピュータを提供する。【解決手段】簡易デバッガモニタ１０がマイコン１と通信を行い、ＣＰＵ２に対して外部割込み信号が与えられた場合、アクセスの禁止対象となる内部資源がＲＡＭ４であれば、発生した割込み信号を、ＲＡＭ４に対するアクセスを制御するアクセスブリッジ３に対して与え、外部からのアクセスを禁止する。【選択図】図１
2008197707.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つの外部ポートにデバッガ装置が接続され、前記デバッガ装置が内部資源にアクセスを行う場合に発生する割込み信号がＣＰＵに与えられると、前記ＣＰＵが前記デバッガ装置の動作に対応するデバッガプログラムを実行するように構成されるマイクロコンピュータにおいて、
外部ポートを介して行われるアクセスに基づく割込み信号が発生すると、前記割込み信号を利用して、内部資源の一部に対するアクセスを禁止するように構成されることを特徴とするマイクロコンピュータ。
【請求項２】
前記アクセスの禁止対象となる内部資源はメモリであり、
前記割込み信号は、前記メモリに対するアクセスを制御するコントローラに対して与えられることを特徴とする請求項１記載のマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部ポートに接続されたデバッガ装置が内部資源にアクセスを行う場合に、対応するデバッガプログラムを実行するマイクロコンピュータに関する。
【背景技術】
【０００２】
一般に、ワンチップマイクロコンピュータを使用した製品については、製品開発時にデバッグを行うため、デバッガを使用してメモリなどの内部資源にアクセスする環境が提供されている。このようなデバッガとしては、例えば、ＪＴＡＧ方式を使用したＩＣＥ（In Circuit Emulator）や、マイコン側にデバッガプログラムを用意しておき、外部通信ポートを利用して外部のデバッガモニタを介してアクセスを行う簡易エミュレータなどがある。
ここで、マイコンが、例えば、有料テレビ放送の視聴機に組み込まれるデスクランブル機能や、ＩＣカードを用いた決済情報のやり取りを管理する機能といった、秘匿性の高い機能をメモリ上に展開して実現する場合には、その機能に関連した情報が、外部からのアクセスによって読み出されることがないように保護する必要がある。
【０００３】
その場合、ＩＣＥを使用したアクセスに関しては、ＩＣＥ本体や、マイコン側に用意されるＪＴＡＧ回路において、アクセスを禁止する仕組みを作り込むことは比較的容易である。一方、外部通信ポートを利用する簡易エミュレータ方式の場合は、マイコンに、ＵＡＲＴ（Universal Asynchronous Receiver Transmitter）やＧＰＩＯ（General Purpose I/O）のような汎用ポートを持たせないように構成することも考えられる。しかしながら、そのように構成すると、マイコンの汎用性を著しく欠くことになり現実的ではない。
例えば、マイコンの内部資源の一部に対するアクセスを禁止する技術として、特許文献１に開示されているものがある。
【特許文献１】特開２００１−２５６４６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１では、マイコン内部の閉じた環境について複数のアプリケーションプログラムを実行する場合に、それらのプログラム間におけるセキュリティを確保することを目的としており、外部ポートを介して行われるアクセスに対するセキュリティの確保については考慮されていない。
本発明は上記事情に鑑みてなされたものであり、その目的は、外部ポートを介して行われようとする内部資源の一部に対するアクセスを、効率的に禁止することができるマイクロコンピュータを提供することにある。
【課題を解決するための手段】
【０００５】
請求項１記載のマイクロコンピュータによれば、デバッガプログラムを実行するように構成されるものは、外部ポートに接続されるデバッガ装置が内部資源にアクセスを行う場合、ＣＰＵに対して割込み信号が与えられることに着目し、前記割込み信号が発生した場合は、その割込み信号を利用して、内部資源の一部に対するアクセスを禁止する。従って、マイクロコンピュータが、秘匿性が高い機能を実現する場合でも、その機能に関する情報が外部より読み出されることを極めて簡単に禁止することができる。
【０００６】
請求項２記載のマイクロコンピュータによれば、アクセスの禁止対象となる内部資源がメモリである場合に、前記割込み信号を、メモリに対するアクセスを制御するコントローラに対して与える。即ち、マイクロコンピュータが秘匿性の高い機能を実現する場合には、メモリ領域の一部を使用してプログラムを実行することが多いので、外部アクセスによる割込み信号が発生した場合に、メモリの特定領域に対するアクセスをコントローラによって禁止すれば、秘匿性を確保することができる。
【発明を実施するための最良の形態】
【０００７】
以下、本発明の一実施例について図面を参照して説明する。図１は、本発明のマイクロコンピュータが組み込まれた製品について、簡易デバッガ機能を利用してデバッグを行う状態を示すものである。ワンチップで構成されるマイクロコンピュータ（マイコン）１は、ＣＰＵ２，アクセスブリッジ（ＢＲＧ，コントローラ）３，ＲＡＭ（メモリ，内部資源）４，復号回路５，ＵＡＲＴ（外部ポート）６，割込みコントローラ（ＩＮＴＣ）７等を備えて構成されている。
また、マイコン１のチップ外に、フラッシュＲＯＭ８が配置されている。フラッシュＲＯＭ８は、マイコン１とバスを介して接続されており、ＣＰＵ２によって読出し，書き込みが可能となっている。そして、マイコン１とフラッシュＲＯＭ８とで制御装置９が構成されている。
【０００８】
ＣＰＵ２によって実行されるアプリケーションプログラム、簡易デバッガ機能のプログラムやデータは、フラッシュＲＯＭ８に記憶されており、必要に応じてＲＡＭ４に転送されて実行されるようになっている。また、アプリケーションプログラムの内、例えば、前述したデスクランブル機能のように秘匿性が高いものについては、例えば、ＡＥＳ（Advanced Encryption Standard）などに準拠した暗号化が施された状態で記憶されている。
そして、暗号化されていないプログラムやデータは、ＣＰＵ２がフラッシュＲＯＭ８より直接読み出す。一方、暗号化されているものについては、ＣＰＵ２の指令に応じて復号回路５が読み出しを行い、復号化処理したものをＲＡＭ４上に転送するようになっている。アクセスブリッジ３は、ＲＡＭ４に対するアクセスを制御するもので、アドレスデコーダやアービタ、バスバッファ（何れも図示せず）などを備えている。
【０００９】
ＵＡＲＴ６は、外部とシリアル通信を行うためのインターフェイスであり、ＣＰＵ２との間で転送されるデータについては、シリアル／パラレル変換を行なう。割込みコントローラ７は、ＣＰＵ２に対して出力する割込みを制御するもので、例えば、ＵＡＲＴ６が外部より送信されたデータを受信すると、割込み信号を、ＣＰＵ２と共にアクセスブリッジ３に出力するように構成されている。尚、外部割込みの要因は、ＵＡＲＴ６以外にも、ＧＰＩＯやＵＳＢ（Universal Serial Bus）など複数存在しており、それらの要因数に応じて出力される割込み信号数も複数本となっている。
そして、制御装置９のデバッグ作業を行う場合には、例えば、パーソナルコンピュータで構成される簡易デバッガ用モニタ１０をＵＡＲＴ６に接続し、デバッガ用モニタ１０よりデバッグ用のコマンドをマイコン１に送信して、ＣＰＵ２に実行させる。
【００１０】
図２は、アクセスブリッジ３について、本発明の要旨にかかる部分の構成を示すものである。アクセスブリッジ３は、アドレスデコーダ１１，ＡＮＤゲート１２，ＯＲゲート１３，フリップフロップ１４などを備えている。アドレスデコーダ１１は、アドレスバス上に出力されたアドレス信号をデコードし、そのアドレスがＲＡＭ４について設定されている外部アクセス禁止領域を示す場合に、sel＿RAM信号をＡＮＤゲート１２の一方の入力端子に出力する。ここで、外部アクセス禁止領域は、上述したように、フラッシュＲＯＭ８に暗号化された状態で記憶されているプログラム等を、復号回路５が読み出して復号化し、ＲＡＭ４上に転送されたものが配置されている領域である。
【００１１】
ＡＮＤゲート１２の他方の入力端子には、フリップフロップ１４の出力端子が接続されている。フリップフロップ１４には、ＯＲゲート１３を介してセット信号が与えられるが、ＯＲゲート１３の各入力端子には、割込みコントローラ７より出力される、要因１〜３に応じた３本の外部割込み信号が与えられている。即ち、割込み信号は通常エッジタイプの信号であるから、フリップフロップ１４をセットすることで保持を行う。
また、フリップフロップ１４のクリア信号としては、マイコン１につき定められている独自の方式により出力される保護解除信号が与えられている。尚、上記の保護解除についてもタンパリングを防止するため、秘匿性の高い解除方式を設定するべきである。例えば、ＣＰＵアクセスやＤＭＡアクセスを組み合わせることで保護解除を行うようなロジックを実装すれば、解除方式をかなり複雑にすることができる。
【００１２】
そして、ＡＮＤゲート１２の出力信号は、ＲＡＭ４の外部アクセス禁止領域について、アクセスを禁止するためのsel＿RAM＿protected信号となる。このsel＿RAM＿protected信号が出力されると、アクセスブリッジ７は、そのときに出力されているアドレス値にかかわらず、ＲＡＭ４の０番地を読み出すダミーサイクルを実行するように構成されている。即ち、アドレス０番地には、読み出されても問題がないダミーデータが設定されている。
【００１３】
次に、本実施例の作用について図３も参照して説明する。図３は、ユーザがデバッガ用モニタ１０を使用して制御装置９のデバッグ作業を行う場合の処理を示すフローチャートである。尚、このフローチャートは、マイコン１のハード，ソフト双方により実行される処理を併せて示している。先ず、デバッガ用モニタ１０より送信されたテスト用のコマンドをＵＡＲＴ６が受信すると、割込みコントローラ７がＣＰＵ２に割り込みを発生させる（ステップＳ１）。この時、アクセスブリッジ３の内部では、フリップフロップ１４がセットされる。
【００１４】
ＣＰＵ２は、割込みハンドラによってＵＡＲＴ６が発生させた割り込みであることを認識すると、デバッガルーチンの先頭アドレスにジャンプして、デバッガ機能を実行する（ステップＳ２）。そして、ＵＡＲＴ６内部の受信バッファにアクセスして、受信データを読み出す（ステップＳ３）。ここで、上記受信データの内容がＲＡＭ４の読出しである場合、ＣＰＵ２は、ＲＡＭ４の領域を示すアドレスを出力してリードサイクルを実行する（ステップＳ４）。
【００１５】
すると、アクセスブリッジ３では、出力されたアドレスをアドレスデコーダ１１がデコードして、そのデコード結果が外部アクセス禁止領域であるか否かを判定する（ステップＳ）。即ち、アドレスデコーダ１１がsel＿RAM信号を出力しなければ（ＮＯ）、デバッガ用モニタ１０によるアクセスは、読み出されても問題がない領域であることを示すので、アクセスブリッジ３は、そのリードアクセスを許可して実行する（ステップＳ６）。そして、ＣＰＵ２は、メインルーチンにリターンする（ステップＳ７）。
【００１６】
一方、ステップＳ５において、アドレスデコーダ１１がsel＿RAM信号を出力した場合は（ＹＥＳ）、禁止領域に対するアクセスであるから、ＡＮＤゲート１２がsel＿RAM＿protected信号を出力する。従って、この場合、アクセスブリッジ３は、要求されたリードアクセスに替えてダミーサイクルを実行し、ＲＡＭ４のアドレス０番地を読み出す（ステップＳ８）。それから、ステップＳ７に移行する。
【００１７】
以上のように本実施例によれば、簡易デバッガ用モニタ１０がマイコン１と通信を行うことでＣＰＵ２に対して外部割込み信号が与えられた場合は、その割込み信号を利用して、内部資源の一部に対するアクセスを禁止するので、マイコン１が、秘匿性が高い機能を実現する場合でも、その機能に関する情報が外部より読み出されることを極めて簡単に禁止することができる。
また、アクセスの禁止対象となる内部資源がＲＡＭ４である場合に、前記割込み信号を、ＲＡＭ４に対するアクセスを制御するアクセスブリッジ３に対して与えるので、マイコン１が、ＲＡＭ４の領域の一部を使用して秘匿性が高い機能に関するプログラムを実行する場合でも、秘匿性を確保することができる。
【００１８】
ここで、本発明の制御装置９を、車載器に適用することを想定する。例えば、ＥＴＣ（Electronic Toll Collection system）車載器は、車両に搭載されて、高速道路の料金所に設置されている路上機と通信を行うことで通行料金の決済を自動的に処理するものであり、その際に秘匿性が高い機能を実行する。従って、ＥＴＣ車載器を構成するマイクロコンピュータに関しては、外部ポートを設けずとも、その機能を実現することは可能である。
しかしながら、ＥＴＣ車載器を車両用ナビゲーション装置に組み込むことで両者を一体に構成することを想定すると、ナビゲーション装置の機能も実現する場合には、マイコンに外部ポートを用意する必要が生じる。従って、制御装置９は、上記のようなアプリケーションについて、極めて有効に適用することができる。
【００１９】
本発明は上記し又は図面に記載した実施例にのみ限定されるものではなく、以下のような変形が可能である。
フラッシュＲＯＭ８を、マイコン１のチップ上に搭載しても良い。また、フラッシュＲＯＭ８に替えて、マスクＲＯＭを使用しても良い。
アクセスを禁止する対象は、ＲＯＭであっても良い。また、ＲＡＭ４のようなメモリに限ることなく、例えば、復号回路５の出力バッファ（外部によるアクセスが可能である場合）でも良いし、ゲートアレイの内部に構成されるデータレジスタなどでも良い。従って、復号回路５は必要に応じて設ければ良い。
外部ポートは、ＵＡＲＴ６のみであっても良いし、ＧＰＩＯ，或いはＵＳＢのみであっても良い。
アクセスを禁止する場合、ダミーサイクルを実行するものに限らず、例えば、バスの使用権を与えてサイクルを実行せず、バスエラーを発生させても良い。
【図面の簡単な説明】
【００２０】
【図１】本発明の一実施例であり、マイクロコンピュータが組み込まれた製品について、簡易デバッガ機能を利用してデバッグを行う状態を示す図
【図２】アクセスブリッジについて、本発明の要旨にかかる部分の構成を示す図
【図３】ユーザがデバッガ用モニタを使用してデバッグ作業を行う場合の処理を示すフローチャート
【符号の説明】
【００２１】
図面中、１はマイクロコンピュータ、２はＣＰＵ、３はアクセスブリッジ（コントローラ）、４はＲＡＭ（メモリ，内部資源）、６はＵＡＲＴ（外部ポート）、７は割込みコントローラ、１０は簡易デバッガ用モニタを示す。
【図１】
2008197707.tif 000003
【図２】
2008197707.tif 000004
【図３】
2008197707.tif 000005