(57)【特許請求の範囲】
【請求項１】
ＣＰＵがアクセスしたアドレスがユーザプログラム記憶用アドレス空間に設定された所定の割込ベクタアドレスであったときは割込検出指令を出力する割込ベクタ検出回路と、
通常においては前記ＣＰＵが割込ベクタアドレスにアクセスすることを有効化すると共に、外部から割込ベクタ発生切替指令が与えられた状態で前記割込ベクタ検出回路から割込検出指令が与えられたときは、前記ＣＰＵからの割込ベクタアドレスの所定の上位ビットパターンを反転することにより解析プログラム記憶用アドレス空間に設定された所定の割込ベクタアドレスに変換する割込ベクタアドレス変換回路とを備えたことを特徴とする割込ベクタアドレス生成装置。
【請求項２】
請求項１の割込ベクタアドレス生成装置を備えたことを特徴とするマイクロコンピュータ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＣＰＵによる割込処理に応じて所定の割込ベクタアドレスを発生する割込ベクタアドレス生成装置及び当該割込ベクタアドレス生成装置を備えたマイクロコンピュータに関する。
【０００２】
【従来の技術】
マイクロコンピュータ（以下、マイコンと称する）が電子基板上に実装された状態で不具合が発生した場合は、マイコンを電子基板から取外してマイコン単体で解析を行ったり、マイコン内に内蔵されたシリアル通信を利用してＲＡＭ上に解析プログラムを転送し、ＲＡＭ上の解析プログラムで実行させて不具合箇所を特定するようにしている。
【０００３】
【発明が解決しようとする課題】
ところが、マイコン単体で解析する場合には、システムが複雑化すると不具合再現が困難となり、解析に長時間を要する。また、ＲＡＭ上の解析プログラムで不具合箇所を特定する場合には、システムに沿った解析を行うことはできるものの、ＲＡＭ上の制限された解析プログラムで実行されるため、既にＲＯＭ上に実装されているユーザプログラムから独立させるには割込処理を除いて解析を行わなくてはならない。つまり、解析プログラムの実行中に割込要因が発生したときはマイクロコンピュータのＣＰＵはＲＯＭ上のユーザプログラムの割込ベクタアドレスにアクセスすこるとにより割込処理ルーチンへ分岐し、ＲＡＭ上の解析プログラムから離れて解析を続行できなくなるので、割込を加味した不具合解析を行うことができないという欠点がある。
【０００４】
本発明は上記事情に鑑みてなされたもので、その目的は、解析プログラムに従って不具合解析する場合に、割込を加味した不具合解析を行うことができる割込ベクタ発生装置及びマイクロコンピュータを提供することにある。
【０００５】
【課題を解決するための手段】
請求項１の発明によれば、ＣＰＵは、割込要因に応じて割込処理を実行するときはユーザプログラム記憶用アドレス空間に設定された所定の割込ベクタアドレスにアクセスする。このとき、割込ベクタ検出回路は、ＣＰＵからのアドレスが所定の割込ベクタアドレスであるので、割込検出指令を出力する。
【０００６】
ここで、割込ベクタアドレス変換回路は、通常においてはＣＰＵが割込ベクタアドレスにアクセスすることを有効化しているので、上述したようにＣＰＵがユーザプログラム記憶用アドレス空間に設定された割込ベクタアドレスにアクセスしたときはＣＰＵはユーザプログラムへ移行する。
【０００７】
さて、ＣＰＵが割込処理を実行するときにユーザプログラムではなく解析プログラム上で行わせるときは、割込ベクタアドレス変換回路に対して割込ベクタアドレス発生切替指令を与える。すると、割込ベクタアドレス変換回路は、割込ベクタ発生切替指令が与えられた状態で割込ベクタ検出回路から割込検出指令が与えられたときは、ＣＰＵからの割込ベクタアドレスの所定の上位アドレスのビットパターンを反転することにより解析プログラム記憶用アドレス空間に設定さたれ所定の割込ベクタアドレスに変換する。
【０００８】
これにより、ＣＰＵは、解析プログラム記憶用アドレス空間に設定された所定の割込ベクタアドレスにアクセスするようになるので、割込処理をユーザプログラムから解析プログラムに移行させることができる。
【０００９】
この場合、割込ベクタアドレス変換回路としては、ビットパターンを反転する機能を持たせれば済むので、回路構成を簡単化することができる。
【００１０】
【発明の実施の形態】
以下、本発明をシングルチップマイクロコンピュータに適用した一実施例を図面を参照して説明する。
図１はワンチップマイクロコンピュータの構成のうち本発明に関連した構成を概略的に示している。この図１において、マイクロコンピュータ１は１６ビットのＣＰＵ２を主体として構成されており、そのデータ端子Ｄ１５〜Ｄ０及びアドレス端子Ａ１１〜Ａ０は内部データバス（アドレスバス及びデータバス）を介してＲＡＭ３、ＲＯＭ４、周辺回路５、シリアル通信回路６と接続されている。
【００１１】
シリアル通信回路６は、シリアル送信端子６ａ及びシリアル受信端子６ｂを有しており、これらの端子６ａ，６ｂを通じてＲＡＭ３上に解析プログラムを転送することができる。
【００１２】
また、ＣＰＵ２のアドレス端子Ａ１５〜Ａ０はベクタアドレス生成回路７と接続されている。このベクタアドレス生成回路７は、ＣＰＵ２からのベクタアドレスに基づいて所定のベクタアドレスを生成してアドレスバスに出力するものである。
【００１３】
即ち、ベクタアドレス生成回路７において、割込ベクタ検出回路としての割込ベクタＲＯＭ領域デコーダ回路８にはＣＰＵ２のアドレス端子Ａ１５〜Ａ０が接続されている。この割込ベクタＲＯＭ領域デコーダ回路８は、アドレス端子Ａ１５〜Ａ１０が［ＦＦ００］ｈ、「ＦＦ０２］ｈ、［ＦＦ０４］ｈとなったときにハイレベルの割込検出指令をＮＡＮＤ回路９の一方の入力端子に出力する。
【００１４】
ＮＡＮＤ回路９の他方の入力端子は外部端子と接続されており、この外部端子を通じて割込ベクタ発生切替信号が与えられるようになっている。
４個のＡＮＤ回路１０の一方の入力端子はＣＰＵ２のアドレス端子Ａ１５〜Ａ１２と夫々接続され、他方の入力端子はＮＡＮＤ回路９の出力端子と接続されている。そして、ＡＮＤ回路１０の出力端子はアドレスバスを介して各回路と接続されている。本実施例では、これらのＮＡＮＤ回路９とＡＮＤ回路１０により割込ベクタアドレス変換回路が構成されている。
【００１５】
図２はＣＰＵ２がアクセス可能なアドレス空間を示している。この図２において、ＣＰＵ２のアドレス空間において、［００００］ｈ〜［０７ＦＦ］ｈ番地がＩＯ領域に設定され、［０８００］ｈ〜［３ＦＦＦ］ｈ番地がＲＡＭ領域に設定され、［４０００］ｈ〜［ＦＦＦＦ］ｈ番地がＲＯＭ領域に設定されている。
【００１６】
ＲＯＭ４にはユーザプログラムが格納されており、このユーザプログラムにおける［ＦＦ００］ｈ番地が通常動作時のスタートベクタに設定され、［ＦＦ０２］ｈ番地が通常動作時のタイマ割込ベクタに設定され、［ＦＦ０４］ｈ番地が通常動作時のＮＭＩ（Non Maskable Interrupt）割込ベクタに設定されている。
【００１７】
ＲＡＭ３には、ＣＰＵ２によりユーザプログラムが実行されるのに伴ってワーキングデータが格納される。このＲＡＭ３には、動作解析時は解析プログラムが通信により格納されるようになっており、その解析プログラムにおける［０Ｆ００］ｈ番地が解析動作時のスタートベクタに設定され、［０Ｆ０２］ｈ番地が解析動作時のタイマ割込ベクタに設定され、［０Ｆ０４］ｈ番地が解析動作時のＮＭＩ割込ベクタに設定されている。
【００１８】
ここで、スタートベクタとは、リセット解除後に最初に設定されるベクタで、プログラムの先頭番地にジャンプする処理を実行する。また、タイマ割込ベクタは、例えばタイマのカウント値のオーバフロー時に発生するベクタで、タイマがオーバフローしたときは、次はシステム的にどのような処理が必要かによってその動作内容が決まる。ＮＭＩ割込は、ＣＰＵ２が有するＮＭＩ端子から信号が入力したときに発生するベクタで、割込マスクが無効化されており非常に優先順位の高い割込であり、システム的に致命的な場合に行われるものである。
尚、上述したベクタとは、割込プログラムのジャンプ先のアドレスのことであり、ＣＰＵ２は、ベクタが示すアドレスにジャンプするようになっている。
【００１９】
次に上記構成の作用について説明する。
ＣＰＵ２の不具合動作を解析するときは、ＲＡＭ３上に解析プログラムをシリアル通信回路６を通じて転送して記憶させてからその解析プログラムを動作させる。
【００２０】
さて、解析プログラムの実行中に周辺回路５或いはシリアル通信回路６から割込が要求されたときは、ＣＰＵ２は、割込要因に対応して割込ベクタを発生させる。
【００２１】
即ち、ＣＰＵ２は、割込ベクタとしてスタートベクタ、タイマ割込ベクタ、ＮＭＩ割込ベクタが設定されており、スタートベクタを発生するときは［ＦＦ００］ｈをアドレスとして出力し、タイマ割込ベクタを発生するときは［ＦＦ０２］ｈをアドレスとして出力とし、ＮＭＩ割込ベクタを発生するときは［ＦＦ０４］ｈをアドレスとして出力する。
【００２２】
ここで、ＣＰＵ２がタイマ割込処理を実行する際の動作について説明する。  ＣＰＵ２は、タイマのカウント値がオーバフローすることによりタイマ割込要因信号が入力したときは、［ＦＦ０２］ｈをアドレスとして出力する（図３参照）。
すると、割込ベクタＲＯＭ領域デコーダ回路８は、アドレスが［ＦＦ０２］ｈとなることによりＮＡＮＤ回路９にハイレベルの割込検出指令を出力する。
【００２３】
このとき、ＮＡＮＤ回路９の一方の入力端子がハイレベルとなるものの、他方の入力端子に入力している割込ベクタ発生切替信号はローレベルのままであるので、ＮＡＮＤ回路９からはハイレベル信号が出力されている。従って、ＣＰＵ２からアドレスとして［ＦＦ０２］ｈが出力されたときは、全てのＡＮＤ回路１０の入力端子はハイレベルとなるので、ＡＮＤ回路１０からはハイレベル信号が出力される。
【００２４】
要するに、ＣＰＵ２からアドレスとして［ＦＦ０２］ｈが出力されたときは、ベクタアドレス生成回路７の存在にかかわらずアドレスバスに［ＦＦ０２］ｈが出力されることになる。
【００２５】
以上の動作により、ＣＰＵ２は、ＲＯＭ領域の［ＦＦ０２］ｈ番地に記憶されている通常動作時タイマ割込ベクタに基づいてタイマ割込処理に移行する。これにより、タイマがオーバフローしたときの次の処理に移行するようになる。
【００２６】
ところで、上述したように解析プログラムの実行時に割込要因が発生したときは、通常の割込処理に移行してしまい、解析動作が不可能となってしまう。
【００２７】
そこで、本実施例では、次のようにして割込要因が発生したときはＣＰＵ２が解析用の割込処理を実行するようにした。
即ち、解析用の割込処理の実行を希望するときは、ＮＡＮＤ回路９と接続された外部端子に与えられている割込ベクタ発生切替信号をハイレベルに切替える（図４参照）。
【００２８】
すると、ＮＡＮＤ回路９の出力端子の信号レベルがローレベルとなるので、上述したようにタイマがオーバフローすることによりＣＰＵ２から［ＦＦ０２］ｈがアドレスとして出力されるにしても、ＡＮＤ回路１０の出力はローレベルとなる。
【００２９】
以上の動作により、ベクタアドレス生成回路７からはアドレスＡ１５〜Ａ１２としてローレベルが出力されるので、アドレスは［０Ｆ０２］ｈに変換されることになる。
【００３０】
ここで、図２に示すようにアドレス空間の［０Ｆ０２］ｈ番地はＲＡＭ領域であり、解析プログラムにおける解析動作時のタイマ割込ベクタに設定されているので、ＣＰＵ２は、解析動作時の割込ベクタによって設定されたアドレスに移行することによりタイマ動作解析用の処理を実行するようになる。
【００３１】
同様にして、ＣＰＵ２は、割込要因の発生によりスタート割込或いはＮＭＩ割込処理を実行するときは、割込ベクタ発生切替信号の信号レベルに基づいて通常動作用の割込と解析用の割込とを選択的に実行することができる。
【００３２】
上記構成のものによれば、ベクタアドレス生成回路７は、ＣＰＵ２から割込用のアドレスが出力されたときは、割込ベクタ発生切替信号の信号レベルに応じてユーザプログラム中の割込処理若しくは解析プログラム中の割込処理を選択的に実行するので、ＣＰＵ２による割込処理を任意に切替えることができる。従って、割込要因に応じてＣＰＵが割込処理を実行するときは通常動作時の割込処理しか実行できない構成とは違って、割込処理に応じた解析が可能となり、ＣＰＵ２の動作解析の精度を高めることができる。
【００３３】
また、ベクタアドレス生成回路７は、割込ベクタＲＯＭ領域デコーダ回路８及びＮＡＮＤ回路９並びにＡＮＤ回路１０という簡単なデジタル回路から構成されているので、回路構成を簡単化することができる。
【００３４】
本発明は上記実施例にのみ限定されるものではなく、次のように変形または拡張できる。
割込ベクタＲＯＭ発生切替信号入力用の外部端子を設ける構成に代えて、マイクロコンピュータ内にベクタ発生切替制御レジスタを設け、ＣＰＵ２からデータ（１ｏｒ０）を書込むことによりベクタアドレス生成回路７にレベル信号を与えるように構成してもよい。
アドレス空間としては、ＲＡＭ領域をＲＯＭ領域よりも上位アドレスに設定するようにしてもよい。
【図面の簡単な説明】
【図１】本発明の一実施例における全体構成を示す概略図
【図２】ＣＰＵのアドレス空間を示す模式図
【図３】割込ベクタ発生切替信号がローレベルの場合の信号波形図
【図４】割込ベクタ発生切替信号がハイレベルの場合の信号波形図
【符号の説明】
１はシングルチップコンピュータ、２はＣＰＵ、３はＲＡＭ、４はＲＯＭ、５は周辺回路、６はシリアル通信回路、７はベクタアドレス生成回路、８は割込ベクタＲＯＭ領域デコーダ回路（割込ベクタ検出回路）、９はＮＡＮＤ回路（割込ベクタアドレス変換回路）、１０はＡＮＤ回路（割込ベクタアドレス変換回路）である。
【図１】
0003820707.tif 000002
【図２】
0003820707.tif 000003
【図３】
0003820707.tif 000004
【図４】
0003820707.tif 000005