(57)【要約】【課題】動作モードの切り替えと、外部との通信と、ブレーク要求信号の入力とを、極力少ない端子で実現可能とするマイクロコンピュータを提供する。【解決手段】マイコン１に、外部より動作モードの切り替えを行うために使用されると共に、テストモードにおいて外部とＣＰＵ２とが通信を行うために使用されるモード／通信端子１１を備える。また、初期状態でノーマルモードが設定され、モード／通信端子１１を介して行われる通信で書き込みコマンドが入力されるとテストモードが設定されるテストモードレジスタ１５を備える。カウンタレジスタ１８は、モード／通信端子１１に接続され、当該端子のレベルがアクティブに維持されている間カウント動作を継続し、第１比較器１９は、カウンタ値が前記通信に要する時間よりも長く設定される第１閾値Ｙを超えるとＣＰＵ２にブレーク要求信号を出力し、第２比較器２０は、前記カウンタ値が第２閾値Ｚ（＞Ｙ）を超えるとテストモードを無効化してノーマルモード設定信号を出力する。【選択図】図１
2015156196.tif 000002
【特許請求の範囲】
【請求項１】
ブレーク要求信号が入力されると、実行中の動作を停止させるＣＰＵ（２）と、
外部より動作モードの切り替えを行うために使用されると共に、回路動作をテストするためのテストモードにおいて、外部と前記ＣＰＵとが通信を行うために使用されるモード切替え／通信用端子（１１）と、
このモード切替え／通信用端子に接続され、当該端子のレベルがアクティブに維持されている間カウント動作を継続するカウンタ（１８）と、
初期状態で通常動作モードが設定されていると共に、前記モード切替え／通信用端子を介して行われる通信により、テストモード書き込みコマンドが入力されるとテストモードが設定されるテストモードレジスタ（１６，３２）と、
前記カウンタのカウンタ値が、前記通信に要する時間よりも長く設定される第１閾値を超えると、前記ブレーク要求信号を出力する比較する第１比較器（１９）と、
前記カウンタのカウンタ値が、前記第１閾値よりも大きく設定される第２閾値を超えると、前記テストモードを無効化して前記通常動作モードを設定するための信号を出力する第２比較器（２０）とを備えたことを特徴とするマイクロコンピュータ。
【請求項２】
前記第２比較器（２０）は、前記テストモードレジスタ（３２）をリセットする信号を出力して、前記テストモードを無効化することを特徴とする請求項１記載のマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部より動作モードを切り替えてテストモードの実行が可能であり、ブレーク要求信号が入力されると、実行中の動作を停止させるＣＰＵを備えてなるマイクロコンピュータに関する。
【背景技術】
【０００２】
マイクロコンピュータ（以下、マイコンと称す）には、所謂オンチップ・デバッグ（以下、ＯＣＤと称す）機能を備えており、外部より動作モードを切り替えてテストモードの実行が可能に構成されているものがある。そして、テストモードを実行する際には、マイコンをパーソナルコンピュータ等のデバッガと接続して通信可能とし、デバッガがブレーク要求信号を発行した際にＣＰＵが実行中の動作を停止させるＯＣＤブレーク機能も必要となる。
【０００３】
また、マイコンには、低コスト化及び小型化が不断に要求されているため、製品として通常モードで動作する際には不要となる検査用の端子は極力少なくしたいという事情がある。例えば、特許文献１に開示されている技術は、半導体集積回路にテスト用カウンタ３１を備え、テスト信号Ｔ０がアサートされている期間をクロック信号にカウントし、最終カウント値Ｃ０をテストモードデコーダ３３でデコードすることで、多様なテストモードを設定可能にしている。また、マイコンのリセット端子に与えるリセット信号の長さをリセット信号生成回路３２でカウントし、そのカウント値が所定値未満の場合は通常（ユーザロジック回路２０）のリセットを行い、所定値以上の場合はテスト用カウンタ３１をリセットする。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２７４３５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１では、半導体集積回路をデバッガに接続した状態でデバッグを行うことは想定しておらず、特定のテストモードを設定すると、そのモードに応じて自律的にテストを実行する構成となっている。したがって、デバッガが発行したブレーク要求を受け付けることも想定されていない。リセット信号の長さに応じて与える信号の種類を変化させる構成を利用してブレーク要求を与えることを想定すると、マイコンを起動させる際にＣＰＵがブレーク供給を受け付けて、起動が停止することになってしまう。
【０００６】
本発明は上記事情に鑑みてなされたものであり、その目的は、動作モードの切り替えと、外部との通信と、ブレーク要求信号の入力とを、極力少ない端子で実現可能とするマイクロコンピュータを提供することにある。
【課題を解決するための手段】
【０００７】
請求項１記載のマイクロコンピュータによれば、外部より動作モードの切り替えを行うために使用されると共に、回路動作をテストするためのテストモードにおいて、外部とＣＰＵとが通信を行うために使用されるモード切替え／通信用端子を備える。また、初期状態で通常動作モードが設定されていると共に、モード切替え／通信用端子を介して行われる通信により、テストモード書き込みコマンドが入力されるとテストモードが設定されるテストモードレジスタを備える。
【０００８】
そして、カウンタは、モード切替え／通信用端子に接続され、当該端子のレベルがアクティブに維持されている間カウント動作を継続し、第１比較器は、カウンタのカウンタ値が、前記通信に要する時間よりも長く設定される第１閾値を超えると、ＣＰＵにブレーク要求信号を出力する。また、第２比較器は、前記カウンタ値が、第１閾値よりも大きく設定される第２閾値を超えると、テストモードを無効化して通常動作モードを設定するための信号を出力する。このように構成すれば、動作モードの切り替えと、外部との通信と、ブレーク要求信号の入力とを１つのモード切替え／通信用端子を利用して行うことができる。
【図面の簡単な説明】
【０００９】
【図１】第１実施形態であり、マイクロコンピュータの構成を要旨に係る部分について示す機能ブロック図
【図２】（ａ）はデバッグ通信、（ｂ）はＯＣＤブレーク要求、（ｃ）はモード管理に対応する信号形態を示すタイミングチャート
【図３】モード／通信端子がローレベルに固定されている場合のカウンタレジスタの動作を示すタイミングチャート
【図４】デバッガによりマイコンのデバッグを行う場合の、デバッガとマイコンとの間の処理シーケンスを示す図
【図５】第２実施形態を示す図１相当図
【発明を実施するための形態】
【００１０】
（第１実施形態）
図１に示すように、マイクロコンピュータ（マイコン）１は、ＣＰＵ２と、ＲＯＭ３，ＲＡＭ４，周辺回路５Ａ及び５Ｂなどが、アドレスバス６及びデータバス７を介して相互に接続されている。また、アドレスバス６及びデータバス７には、バス制御切替回路８が挿入されており、バス制御切替回路８を介してモード／通信回路９が接続されている。モード／通信回路９は、双方向Ｉ／Ｏ回路１０を介して、マイコン１の外部端子であるモード／通信端子１１（モード切替え／通信用端子）に接続されている。
【００１１】
モード／通信端子１１は、外部よりマイコン１の動作モードを切り替え設定するために使用されると共に、動作モードとしてテストモードが設定された際に、例えばパーソナルコンピュータ等のデバッガ（図示せず）が接続されてＣＰＵ２とシリアル通信を行うために使用される。モード／通信回路９は、上記の通信を仲介してマイコン１のＯＣＤ機能を実現するための回路である。
【００１２】
双方向Ｉ／Ｏ回路１０は、モード／通信回路９の通信インターフェイス（Ｉ／Ｆ）部１２に接続されている。通信Ｉ／Ｆ部１２は、双方向Ｉ／Ｏ回路１０との間で、信号の受信と送信とをそれぞれ１線式（シリアル）通信により行うもので、通信Ｉ／Ｆ部１２が受信した信号は、受信デコーダ１３においてデコードされてＯＣＤコマンドが発行される。また、通信Ｉ／Ｆ部１２の送信フレーム生成部１４は、ＣＰＵ２が出力したコマンド応答データが入力されると、そのデータを含む送信フレームを生成して双方向Ｉ／Ｏ回路１０に送信する。
【００１３】
上記ＯＣＤコマンドは、ＯＣＤコマンドＩ／Ｆ部１５に入力され、ここでコマンドに対応したアドレス及びデータが生成されてバス制御切替回路８に出力される。また、ＯＣＤコマンドＩ／Ｆ部１５は、入力されるＯＣＤコマンドに応じて、バス制御切替回路８のバス制御状態を選択する信号を出力する。バス制御切替回路８は、マイコン１がノーマルモード（通常動作モード）に設定されている場合はモード／通信回路９を切り離し、ＣＰＵ２が通常通り、アドレスバス６及びデータバス７を介してＲＯＭ３，ＲＡＭ４，周辺回路５にアクセス可能となるように制御する。
【００１４】
一方、マイコン１がテストモードに設定された場合、バス制御切替回路８は、ＯＣＤコマンドＩ／Ｆ部１５を介して発行されたコマンドを、ＣＰＵ２が受信可能となるように制御する。例えば、上記コマンドは、周辺回路５Ａ内に設けられているＯＣＤコマンドバッファに格納され、ＣＰＵ２は周辺回路５ＡにアクセスしてＯＣＤコマンドを取得する。その他、ＯＣＤコマンドバッファをバス制御切替回路８の内部に設けても良い。
【００１５】
また、テストモードでは、与えられたＯＣＤコマンドに応じてＣＰＵ２が外部のデバッガに送信するデータが、バス制御切替回路８及びＯＣＤコマンドＩ／Ｆ部１５を介して通信Ｉ／Ｆ部１２の送信フレーム生成部１４に入力される。これにより、外部のデバッガとマイコン１のＣＰＵ２との間の双方向通信を可能にしている。
【００１６】
また、ＯＣＤコマンドは、テストモードレジスタ１６にも入力されている。テストモードレジスタ１６は、リセットされた初期状態でノーマルモード設定信号を出力しており、ＯＣＤコマンドによりテストモードの設定が指示された場合にテストモード設定信号を出力する。これらのモード設定信号は、テストモード無効化部１７を介して、例えば周辺回路５Ａ，５Ｂ等に出力されている。
【００１７】
双方向Ｉ／Ｏ回路１０の出力端子は、カウンタレジスタ１８の入力端子にも接続されており、カウンタレジスタ１８は、上記出力端子がアクティブ（例えばロー）レベルとなっている期間をカウントし、カウント値を第１比較器１９及び第２比較器２０に出力する。尚、図示しないが、モード／通信回路９の各回路は、共通の内部クロック信号によりクロック同期で動作する。また、テストモードレジスタ１６及びカウンタレジスタ１８には、（マイコン１の）リセット信号が与えられている。
【００１８】
第１比較器１９は、カウンタレジスタ１８のカウント値が閾値Ｙ以上になるとブレーク要求を検出し、ＯＣＤブレーク要求をＯＣＤブレーク無効化部２１を介してＣＰＵ２に出力する。第２比較器２０は、カウンタレジスタ１８のカウント値が閾値Ｚ以上になるとノーマルモードの設定要求を検出し、テストモードの無効化信号をテストモード無効化部１７に出力する。尚、モード無効化部１７より出力されるノーマルモード設定信号は、ＯＣＤコマンドＩ／Ｆ部１５及びＯＣＤブレーク無効化部２１にも入力されている。そして、テストモードレジスタ１６がテストモード設定信号を出力している状態で、上記テストモード無効化信号が出力されると、テストモード設定信号は無効化されて、ノーマルモード設定信号が有効になる。
【００１９】
ここで、図２に示すように、モード／通信端子１１を介した信号制御には３つのパタンがある。（ａ）のデバッグ通信では、ハイレベルからローレベルに切り替わるとそれがスタートビット（Start Of Flame）となり、それに続いて複数のデータビットがハイ／ロウの二値レベル変化で示される。そして、最後にハイレベルのエンドビット（End Of Flame）が配置され、そこまでが通信の１フレームとなる。そして、この通信フレーム長は、カウンタレジスタ１８のカウント値Ｘ未満に設定されている。
【００２０】
（ｂ）のＯＣＤブレーク要求は、ローレベル期間をカウント値Ｙ（＞Ｘ，第１閾値）以上で且つＺ未満とするように設定されている。そして、（ｃ）のモード管理（ノーマルモード設定）は、ローレベル期間をカウント値Ｚ（第２閾値）以上とするように設定されている。尚、ＯＣＤブレーク要求は、マイコン１がテストモードで動作している場合にのみ有効となる。
【００２１】
すなわち、外部のデバッガは、これらのようにモード／通信端子１１に与える信号を制御することで、マイコン１に与える信号に異なる意義を付与可能となっている。具体数値例を挙げると、（ａ）のデバッグ通信に要する時間は数μｓ程度，（ｂ）のＯＣＤブレーク要求を有効にする時間は数１０μｓ程度，（ｃ）のノーマルモード設定を有効にする時間は数１０００μｓ程度である。
【００２２】
また、モード／通信端子１１は、マイコン１を製品としてフィールドで使用する際には、ノーマルモードに設定するためローレベルに固定される。この時、カウンタレジスタ１９がカウント動作を開始するタイミングは、マイコン１のリセットが解除された時点からとなる（図３参照）。
【００２３】
次に、本実施形態の作用について説明する。図４に示すように、マイコン１のデバッグを実行する際には、外部でデバッガを起動させてマイコン１の評価を開始する（Ｄ１）。先ず、モード／通信端子１１を介してデバッグ通信を行い、テストモードレジスタ１６への書き込みコマンド（テストモード設定）を発行する（Ｄ２）。すると、マイコン１側では、受信したコマンドを受けてテストモードレジスタ１６への書き込みが行われ、テストモードが設定される（Ｍ１）。
【００２４】
続いて、デバッガは、デバッグ通信によりＣＰＵバス（アドレスバス６及びデータバス７）の制御コマンドを発行し、更にＣＰＵ２にソフトウェアリセットを実行させるコマンドを発行する（Ｄ３）。すると、マイコン１側では、受信したコマンドを受けて、ソフトウェアリセットが実行されてＣＰＵ２が初期化され、ソフトウェアの実行が再スタートされる（Ｍ２）。
【００２５】
以降、デバッガは、ステップＤ３と同様に、ＣＰＵバスの制御コマンドを発行し、評価を行うためのコマンドを発行する（Ｄ４）。すると、マイコン１は、受信したコマンドに応じてＣＰＵバスに接続されている回路，周辺回路５やＲＡＭ４等の回路情報を読み出し、読み出した情報を「コマンド応答データ」として外部（デバッガ）に送信する（Ｍ３）。尚、「回路情報」とは、例えばＲＡＭ４に格納されているフラグやデータなどである。
【００２６】
そして、評価の内容に応じてステップＤ３→Ｍ３を適宜繰り返して実行した後、デバッガがＯＣＤブレーク要求を発行すると（Ｄ５）、マイコン１のＣＰＵ２は、ＯＣＤブレーク要求を受け付けて、その時点で通信を実行していれば転送中の通信を停止させる（Ｍ４）。そして、マイコン１のデバッグ，評価は終了となる（Ｄ６）。
【００２７】
以上のように本実施形態によれば、マイコン１に、外部より動作モードの切り替えを行うために使用されると共に、回路動作をテストするためのテストモードにおいて、外部とＣＰＵ２とが通信を行うために使用されるモード／通信端子１１を備える。また、初期状態でノーマルモードが設定されていると共に、モード／通信端子１１を介して行われる通信により、テストモード書き込みコマンドが入力されるとテストモードが設定されるテストモードレジスタ１５を備える。
【００２８】
そして、カウンタレジスタ１８は、モード／通信端子１１に接続され、当該端子のレベルがアクティブに維持されている間カウント動作を継続し、第１比較器１９は、カウンタレジスタ１８のカウンタ値が、前記通信に要する時間よりも長く設定される第１閾値Ｙを超えると、ＣＰＵ２にブレーク要求信号を出力する。また、第２比較器２０は、前記カウンタ値が、第１閾値Ｙよりも大きく設定される第２閾値Ｚを超えると、テストモードを無効化してノーマルモードを設定するための信号を出力する。このように構成すれば、動作モードの切り替えと、外部との通信と、ブレーク要求信号の入力とを１つのモード／通信端子１１を利用して行うことができる。したがって、マイコン１を小型に構成することが可能になる。
【００２９】
（第２実施形態）
以下、第１実施形態と同一部分には同一符号を付して説明を省略し、異なる部分について説明する。図５に示すように、第２実施形態のマイコン３１は、第１実施形態のマイコン１におけるテストモード無効化部１７を削除し、第２比較器２０が出力するノーマルモード検出信号をテストモードレジスタ３２に入力している。そして、テストモードレジスタ３２は、ノーマルモード検出信号が与えられるとリセットされて、テストモード設定信号を出力している状態であればその出力を停止し、ノーマルモード検出信号を出力する。
【００３０】
以上のように第２実施形態によれば、第２比較器２０は、テストモードレジスタ３２をリセットする信号を出力してテストモードを無効化するので、第１実施形態と同様の効果が得られる。
【００３１】
本発明は上記し、又は図面に記載した実施形態にのみ限定されるものではなく、以下のような変形又は拡張が可能である。
アドレスバス６及びデータバス７に接続される周辺回路の構成，種類は任意である。
ＣＰＵ２がステップＭ２で実行するソフトウェアは、アプリケーションプログラムとは別個に用意されているテスト用のプログラムであっても良い。
【符号の説明】
【００３２】
図面中、１はマイクロコンピュータ、２はＣＰＵ、９はモード／通信回路、１１はモード／通信端子（モード切替え／通信用端子）、１６はテストモードレジスタ、１８はカウンタレジスタ、１９は第１比較器、２０は第２比較器を示す。
【図１】
2015156196.tif 000003
【図２】
2015156196.tif 000004
【図３】
2015156196.tif 000005
【図４】
2015156196.tif 000006
【図５】
2015156196.tif 000007