(57)【要約】【課題】オンチップ・デバッグ・エミュレータを安価に構成する。【解決手段】ターゲット装置上に組み込まれたプログラムをリモートでデバッグするホストＰＣ１１０とターゲット装置間に接続されたオンチップ・デバッグ・エミュレータ１２０は、デバッグ通信制御部１３０を備える。デバッグ通信制御部１３０は、ターゲット装置と接続され、ホストＰＣ１１０から出力される命令に基づいてターゲット装置との間の通信を制御するものであり、複数のシリアル通信回路１４０ａ〜１４０ｎを有する。それぞれのシリアル通信回路は、送信バッファ若しくは受信バッファを有し、クロック信号に同期して送信バッファ若しくは受信バッファに格納されるデータのシリアル転送をターゲット装置との間で実行する。これらのシリアル通信回路は、共通のクロック信号に同期して動作するように構成されている。【選択図】図１
2008226083.tif 000002
【特許請求の範囲】
【請求項１】
ターゲット装置上に組み込まれたプログラムをリモートでデバッグするホスト装置と前記ターゲット装置間に接続されたオンチップ・デバッグ・エミュレータであって、
前記ターゲット装置と接続され、前記ホスト装置から出力される命令に基づいて前記ターゲット装置との間の通信を制御するデバッグ通信制御部を備え、
該デバッグ通信制御部は、
送信バッファ若しくは受信バッファを有し、クロック信号に同期して前記送信バッファ若しくは前記受信バッファに格納されるデータのシリアル転送を前記ターゲット装置との間で実行するシリアル通信回路を複数備え、
該複数のシリアル通信回路は、共通の前記クロック信号に同期して動作することを特徴とするオンチップ・デバッグ・エミュレータ。
【請求項２】
前記シリアル通信回路は、マイクロコンピュータに含まれるものであることを特徴とする請求項１に記載のオンチップ・デバッグ・エミュレータ。
【請求項３】
前記デバッグ通信制御部は、ＪＴＡＧ（Ｊｏｉｎｔ  Ｔｅｓｔ  Ａｃｔｉｏｎ  Ｇｒｏｕｐ）規格に準拠したものであり、
前記複数のシリアル通信回路に、マスタ通信回路と、第１と第２のスレーブ通信回路とが含まれており、
前記マスタ通信回路は、前記クロック信号を出力すると共に、前記ターゲット装置の動作モードを制御する動作モード制御信号を前記クロック信号に同期して前記ターゲット装置に送信し、
前記第１のスレーブ通信回路は、前記マスタ通信回路が出力した前記クロック信号に同期して、前記動作モード制御信号以外の出力信号を前記ターゲット装置に送信し、
前記第２のスレーブ通信回路は、前記クロック信号に同期して、前記ターゲット装置から出力された信号を受信することを特徴とする請求項１または２に記載のオンチップ・デバッグ・エミュレータ。
【請求項４】
前記複数のシリアル通信回路に、トレース機能を備える前記ターゲット装置からのトレース・クロック信号および複数のトレース信号を受信する複数のスレーブ通信回路が含まれており、
該複数のスレーブ通信回路のうちの１つは、前記トレース・クロック信号を受信すると共に、該トレース・クロック信号に同期して１つのトレース信号を受信し、
前記複数のスレーブ通信回路のうちの他のスレーブ通信回路は、前記トレース・クロック信号に同期して他のトレース信号をそれぞれ１つ受信することを特徴とする請求項１から３のいずれか１項に記載のオンチップ・デバッグ・エミュレータ。
【請求項５】
ホスト装置と、
ターゲット装置と、
前記ホスト装置と前記ターゲット装置との間に接続されたオンチップ・デバッグ・エミュレータであって、送信バッファ若しくは受信バッファを有し、クロック信号に同期して前記送信バッファ若しくは前記受信バッファに格納されるデータのシリアル転送を前記ターゲット装置との間で実行するシリアル通信回路を複数備える前記オンチップ・デバッグ・エミュレータとから構成されるデバッグ・システムにおいて、前記ホスト装置から前記ターゲット装置に組み込まれたプログラムをリモートでデバッグするデバッグ方法であって、
前記オンチップ・デバッグ・エミュレータが前記ホスト装置から出力される命令を受信する工程と、
前記複数のシリアル通信回路が共通の前記クロック信号に同期して前記命令に対応したデータのシリアル転送を前記ターゲット装置との間で実行する実行工程とを備えることを特徴とするデバッグ方法。
【請求項６】
前記オンチップ・デバッグ・エミュレータと前記ターゲット装置のインターフェースは、ＪＴＡＧ（Ｊｏｉｎｔ  Ｔｅｓｔ  Ａｃｔｉｏｎ  Ｇｒｏｕｐ）規格に準拠したものであり、
前記実行工程は、
前記複数のシリアル通信回路のうちのマスタ通信回路により、前記クロック信号を出力すると共に、前記ターゲット装置の動作モードを制御する動作モード制御信号を前記クロック信号に同期して前記ターゲット装置に送信する工程と、
前記複数のシリアル通信回路のうちの第１のスレーブ通信回路により、前記マスタ通信回路が出力した前記クロック信号に同期して、前記動作モード制御信号以外の出力信号を前記ターゲット装置に送信する工程と、
前記複数のシリアル通信回路のうちの第２のスレーブ通信回路は、前記クロック信号に同期して、前記ターゲット装置から出力された信号を受信する工程とを含むことを特徴とする請求項５に記載のデバッグ方法。
【請求項７】
前記実行工程は、
トレース機能を備える前記ターゲット装置からのトレース・クロック信号および複数のトレース信号を、前記複数のシリアル通信回路に含まれた複数のスレーブ通信回路で受信するトレース工程を有し、
該トレース工程は、
前記複数のスレーブ通信回路のうちの１つにより、前記トレース・クロック信号を受信すると共に、該トレース・クロック信号に同期して１つのトレース信号を受信する工程と、
前記複数のスレーブ通信回路のうちの他のスレーブ通信回路により、前記トレース・クロック信号に同期して他のトレース信号をそれぞれ１つ受信する工程とを含むことを特徴とする請求項５または６に記載のデバッグ方法。
【請求項８】
記憶回路と、
前記記憶回路に格納されたプログラムを読み出して実行する中央演算装置と、
第１のクロック端子と、
送信バッファ若しくは受信バッファを有し、クロック信号に同期して前記送信バッファ若しくは前記受信バッファに格納されるデータのシリアル転送を外部に接続される装置との間で実行する第１のシリアル通信回路および第２のシリアル通信回路とを備え、
前記第１のシリアル通信回路と第２のシリアル通信回路は、第１のクロック・ノードと第２のクロック・ノードをそれぞれ有し、
前記第１のクロック・ノードと、前記第２のクロック・ノードと、前記第１のクロック端子が接続されている第１の接続状態と、前記第１のクロック・ノードと前記第１のクロック端子とが接続されている第２の接続状態とを切り換える切換回路を有することを特徴とするマイクロコンピュータ。
【請求項９】
第２のクロック端子をさらに備え、
前記第２の接続状態において、前記第２のクロック・ノードと前記第２のクロック端子が接続されていることを特徴とする請求項８に記載のマイクロコンピュータ。
【請求項１０】
ターゲット装置上に組み込まれたプログラムをリモートでデバッグするホスト装置と前記ターゲット装置間に接続されたオンチップ・デバッグ・エミュレータに設けられたものであって、前記ターゲット装置と接続され、前記ホスト装置から出力される命令に基づいて前記ターゲット装置との間の通信をＪＴＡＧ（Ｊｏｉｎｔ  Ｔｅｓｔ  Ａｃｔｉｏｎ  Ｇｒｏｕｐ）規格に準拠して制御するものであり、
前記第１のシリアル通信回路は２つあり、各前記第１のシリアル通信回路に対して前記第１のクロック端子と前記切換回路が設けられており、
前記第２のシリアル通信回路は、前記第２のクロック・ノードと前記第２のクロック端子を介してクロック信号を出力すると共に、該クロック信号に同期して前記ターゲット装置の動作モードを制御する動作モード制御信号を前記クロック信号に同期して前記ターゲット装置に送信するマスタ通信回路であり、
２つの前記第１のシリアル通信回路は、前記第１の接続状態に切り換えられており、前記マスタ通信回路から出力された前記クロック信号に同期して、前記動作モード制御信号以外の出力信号を前記ターゲット装置に送信する処理と、前記ターゲット装置から出力された信号を受信する処理とをそれぞれ行うスレーブ通信回路であることを特徴とする請求項９に記載のマイクロコンピュータ。
【請求項１１】
トレース機能を備える前記ターゲット装置からのトレース・クロック信号および複数のトレース信号を受信するための複数の前記第１のシリアル通信回路をさらに備え、
該複数の第１のシリアル通信回路は、それぞれ前記第１のクロック端子と前記切換回路が設けられていると共に、前記第１の接続状態に切り換えられており、
前記複数の第１のシリアル通信回路のうちの１つは、前記トレース・クロック信号を受信すると共に、該トレース・クロック信号に同期して１つのトレース信号を受信するスレーブ通信回路であり、
前記複数の第１のシリアル通信回路のうちの他の第１のシリアル通信回路は、前記トレース・クロック信号に同期して他のトレース信号をそれぞれ１つ受信するスレーブ通信回路であることを特徴とする請求項１０に記載のマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ターゲット装置上で実行されるプログラムをリモートでデバッグする技術に関し、より具体的にはオンチップ・デバッグ・エミュレータを用いてデバッグする技術に関する。
【背景技術】
【０００２】
ターゲット装置上で実行されるプログラムをリモートでデバッグするためのエミュレータとして、フル機能インサーキット・エミュレータ（以下フルＩＣＥと呼ぶ）とオンチップ・デバッグ・エミュレータ（以下ＯＣＤと呼ぶ）が知られている。
【０００３】
フルＩＣＥを使う場合は、ターゲット装置は、マイクロコンピュータ（以下単にマイコンと呼ぶ）を実装する代わりにフルＩＣＥが接続されるソケットを持ったターゲット・ボードから構成される。デバッグの際に、マイコンの代わりにフルＩＣＥをターゲット・ボードに接続し、フルＩＣＥに含まれるＣＰＵ機能をエミュレーションするエバチップや周辺機能をエミュレーションする周辺エバチップなどで、ホスト装置例えばパーソナルコンピュータ上のデバッガからの命令に基づいてマイコンの動作をエミュレーションする。フルＩＣＥには、エバチップの内外にデバッグ用回路が設けられており、フルＩＣＥとターゲット・ボードは、ターゲット装置のマイコンが用いるすべての信号を伝送可能なプローブ・ケーブルにより接続される。
【０００４】
フルＩＣＥでは、エバチップ内外のデバッグ用回路により豊富なデバッグ機能を実現することができ、マイコンのほぼすべての端子のデバッグができる一方、高価であり、マイコン毎に設計する必要がある。また、エミュレーションチップでエミュレーションしているため、実際のマイコンと動作が異なることもありえる。
【０００５】
ＯＣＤの場合は、ターゲット装置上のマイコン自身にデバッグ用回路が内蔵されている。デバッグの際に、ＯＣＤはデバッグＩ／Ｆを介してターゲット装置上のマイコン内のデバッグ用回路と接続され、ホスト装置からの命令に対応したデータをマイコンとの間で転送する。ターゲット装置にはＯＣＤと接続するための専用コネクタが設けられている。
【０００６】
ＯＣＤでは、デバッグ用回路がターゲット装置上のマイコンの回路面積に影響を与え、フルＩＣＥの場合に比べてデバッグできない端子があるなどデバッグ機能が比較的に低い一方、高速なデバッグが可能であり、また、実動作時とデバッグ時の動作の違いが少ないため、実機での最終デバッグやパラメータの調整に最適である。
【０００７】
このような事情において、近年、ターゲット装置上にマイコンを搭載したままデバッグが行えるなどの利点から、ＯＣＤはデバッグに広く利用されるようになっている。ＯＣＤの場合に使用されるデバッグＩ／Ｆは多種多様なものがあるが、ＪＥＴＡＧ（Ｊｏｉｎｔ  Ｅｕｒｏｐｅａｎ  Ｔｅｓｔ  Ａｃｔｉｏｎ  Ｇｒｏｕｐ。現ＪＴＡＧ）により提案され、米国電気電子学会ＩＥＥＥにより標準化されたＩＥＥＥ  ｓｔｄ．１１４９．１−１９９０「Ｓｔａｎｄａｒｄ  Ａｃｅｓｓ  Ｐｏｒｔ  ａｎｄ  Ｂｏｕｎｄａｒｙ−Ｓｃａｎ  Ａｒｃｈｉｔｅｃｔｕｒｅ）に準拠するＪＴＡＧ  Ｉ／Ｆが多く用いられている。ＪＴＡＧ  Ｉ／Ｆは、標準的なＩ／Ｆであるため、エミュレータの作成が容易で、ピン数が少ないなどの利点がある。
【０００８】
特許文献１には、ＯＣＤを用いたデバッグ・システムが開示されている。図１２（特許文献１における図１）に示すように、このデバッグ・システムは、ホスト・コンピュータ１とターゲット装置の間にＪＴＡＧインターフェース回路２（ＪＴＡＧ  Ｉ／Ｆ）が接続されており、ターゲット装置は、メモリ１９とＣＰＵ８を備えたマイコンをターゲット・ボード３に設けてなる。ホスト・コンピュータ１にはデバッガ４が設けられており、ＣＰＵ８には、デバッグ専用回路となるＪＴＡＧデバッグ・モジュール５が設けられている。デバッガ４とＪＴＡＧインターフェース回路２はパラレル・ケーブル６で接続されており、ＪＴＡＧインターフェース回路２とＪＴＡＧデバッグ・モジュール５はＪＴＡＧ専用ケーブル７と基板上の配線９で接続されている。
【０００９】
デバッグ効率の向上のため、ＪＴＡＧインターフェース回路２とホスト・コンピュータ１間、およびＪＴＡＧインターフェース回路２とターゲット・ボード３間はパラレル通信が要求され、ＪＴＡＧインターフェース回路２は、パラレル・ケーブル６およびＪＴＡＧ専用ケーブル７によって、デバッガ４およびＪＴＡＧデバッグ・モジュール５とのパラレル通信が可能である。
【００１０】
ＪＴＡＧインターフェース回路２には、ホスト・コンピュータ１におけるデバッガ４との通信並びにその制御を行うホストＩ／Ｆ回路と、ターゲット・ボード３におけるＪＴＡＧデバッグ・モジュール５との通信並びにその制御を行うＪＴＡＧコントローラを含む。ＪＴＡＧインターフェース回路２は、ＪＴＡＧデバッグ・モジュール５との間においてＪＴＡＧインターフェースによる通信方式で通信し、ホスト・コンピュータ１との通信方式をＪＴＡＧインターフェースによる通信方式に変換する。
【００１１】
通常、このＪＴＡＧコントローラは専用回路であり、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇａｒｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）やゲートアレイを用いて構成されていることが多い。ＦＰＧＡやゲートアレイは高価であるため、その結果、ＯＣＤ自体も高価になってしまうという問題があった。
【００１２】
上記問題を解決するために、ＪＴＡＧコントローラの一部の機能、具体的には制御機能を安価な汎用マイコンで構成する手法が考えられる。この手法によれば、ＪＴＡＧコントローラの一部は汎用マイコンにより構成されるので、その部分についてＦＰＧＡなどを用いずに済む。そのため、ＪＴＡＧコントローラのコストを低減でき、ひいてはＯＣＤ自体を安価にすることができる。
【特許文献１】特開２００２−３６６３７８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
ところで、各企業がコストダウンにしのぎを削る昨今では、ＯＣＤのコストをさらに下げることが希望されている。上記手法よりもＯＣＤのコストを下げようと考えた場合には、ＪＴＡＧコントローラの機能をすべて汎用マイコンで実現することが好ましい。こうすると、汎用マイコンがＪＴＡＧコントローラにとって代わり、ＦＧＰＡなどの高価なデバイスを一切使用しないで済むため、ＯＣＤのさらなるコストダウンを図ることができる。
【００１４】
しかし、ＪＴＡＧコントローラには、制御を担う部分以外に、ターゲット・ボード上のマイコンとデータの送受信を行うためのパラレルのターゲットＩ／Ｆ回路が含まれている。安価な汎用マイコンにはパラレルＩ／Ｆ回路が搭載されていないため、ターゲットＩ／Ｆを構成するためにパラレルＩ／Ｆ回路が搭載された高価なマイコンを使用するのでは、コストダウンを図ることができない。
【課題を解決するための手段】
【００１５】
本発明の１つの態様は、ターゲット装置と、ターゲット装置上に組み込まれたプログラムをリモートでデバッグするホスト装置との間に接続されたオンチップ・デバッグ・エミュレータであり、デバッグ通信制御部を備える。このデバッグ通信制御部は、ターゲット装置と接続され、ホスト装置から出力される命令に基づいてターゲット装置との間の通信を制御するものであり、複数のシリアル通信回路を有する。それぞれのシリアル通信回路は、送信バッファ若しくは受信バッファを有し、クロック信号に同期して送信バッファ若しくは受信バッファに格納されるデータのシリアル転送をターゲット装置との間で実行する。該複数のシリアル通信回路は、共通のクロック信号に同期して動作する。
【００１６】
本発明の別の態様は、デバッグ方法である。このデバッグ方法は、ホスト装置と、ターゲット装置と、ホスト装置とターゲット装置との間に接続されたオンチップ・デバッグ・エミュレータであって、送信バッファ若しは受信バッファを有し、クロック信号に同期して送信バッファ若しくは受信バッファに格納されるデータのシリアル転送をターゲット装置との間で実行するシリアル通信回路を複数備えるオンチップ・デバッグ・エミュレータとから構成されるデバッグ・システムにおいて、ホスト装置からターゲット装置に組み込まれたプログラムをリモートでデバッグするデバッグ方法であり、オンチップ・デバッグ・エミュレータがホスト装置から出力される命令を受信する工程と、複数のシリアル通信回路が共通の前記クロック信号に同期してホスト装置からの命令に対応したデータのシリアル転送をターゲット装置との間で実行する実行工程とを備える。
【００１７】
本発明の更なる別の態様は、マイクロコンピュータである。このマイクロコンピュータは、記憶回路と、該記憶回路に格納されたプログラムを読み出して実行する中央演算装置と、複数のシリアル通信回路と、複数のクロック端子と、切換回路を備える。
【００１８】
それぞれのシリアル通信回路は、送信バッファ若しくは受信バッファを有し、クロック信号に同期して送信バッファ若しくは受信バッファに格納されるデータのシリアル転送を外部に接続される装置との間で実行するものであって、クロック・ノードを有する。
【００１９】
複数のクロック端子は、複数のシリアル通信回路のクロック・ノードにそれぞれ対応する。切換回路は、各クロック・ノードが複数のクロック端子のうちの所定の１つのクロック端子に接続された接続状態と、各クロック・ノードが自身と対応するクロック端子にそれぞれ接続された接続状態とを切り換える。
【００２０】
なお、以上の構成要素の任意の組合せや、本発明をシステムとして表現したものも、本発明の態様としては有効である。
【発明の効果】
【００２１】
本発明によれば、安価なマイコンによりＯＣＤを構成することができ、ＯＣＤのコストダウンを図ることができる。
【発明を実施するための最良の形態】
【００２２】
本発明にかかる実施の形態を具体的に説明する前に、まず、本発明によるデバッグ・システムの原理について説明する。
図１は、本発明の原理に基づくデバッグ・システム１００の模式図を示す。デバッグ・システム１００は、ホスト装置となるホスト・コンピュータ（以下ホストＰＣという）１１０と、ターゲット・ボード１５０およびそれに設けられたターゲット・マイコン１６０からなるターゲット装置と、ホストＰＣ１１０とターゲット装置の間に接続され、ホストＰＣ１１０からの命令に基づいてターゲット装置との間の通信を制御するオンチップ・デバッグ・エミュレータ（以下単にエミュレータという）１２０を備える。
【００２３】
ホストＰＣ１１０には、ターゲット装置をリモートでデバッグするデバッガ１１４が設けられている。
【００２４】
ターゲット・マイコン１６０は、デバッグ用回路１６４と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１８２と、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：中央演算装置）１８４と、周辺回路１８８が設けられており、ＣＰＵ１８４と周辺回路１８８は、バス１８６を介して接続されている。また、ＣＰＵ１８４は、デバッグ用回路１６４とＲＯＭ１８２とも接続されている。なお、ターゲット・ボード１５０にはエミュレータＩ／Ｆコネクタ１６２が設けられており、エミュレータＩ／Ｆコネクタ１６２を介して、ターゲット・マイコンのデバッグ用回路１６４と、エミュレータ１２０におけるデバッグ通信制御部１３０（後述する）が接続されている。ターゲット・ボード１５０の各機能ブロックは協働してエミュレータ１２０の制御に従って動作する。なお、ターゲット・マイコン１６０は、１チップ構成であってもよいし、複数チップ構成であってもよい。これは、後述する各実施の形態におけるターゲット・マイコンについても同じである。
【００２５】
エミュレータ１２０は、ホストＰＣ１１０と接続するためのホスト・インターフェイス回路（以下ホストＩ／Ｆ回路という）１２４と、ホストＩ／Ｆ回路１２４を介してホストＰＣ１１０のデバッガ１１４からの命令に基づいてターゲット装置との間の通信を制御するデバッグ通信制御部１３０と、デバッグ通信制御部１３０をターゲット・マイコン１６０におけるデバッグ用回路１６４に接続するためのターゲットＩ／Ｆコネクタ１３８を備える。
【００２６】
デバッグ通信制御部１３０は、マイコンにより構成され、汎用マイコンが通常備えられる機能ブロックを有する。図示のように、デバッグ通信制御部１３０は、中央演算装置となるＣＰＵ１３２と、ＣＰＵ１３２が演算を行うための種々のデータを記憶するメモリ１３１と、ＣＰＵ１３２がホストＩ／Ｆ回路１２４と接続するための外部メモリ・インターフェイス回路（以下外部メモリＩ／Ｆ回路という）１３４と、複数のシリアル通信回路１４０ａ〜１４０ｎを備える。また、ＣＰＵ１３２と各シリアル通信回路は、バス１３６を介して接続されている。
【００２７】
デバッガ１１４がエミュレータ１２０にデバッグに関する命令をすると、エミュレータ１２０は、その命令に基づいてターゲット装置へ送信する命令やデータを生成して出力すると共に、これらの命令やデータに応じてターゲット装置、具体的にはデバッグ用回路１６４から送られてきたデータを受信してデバッガ１１４に出力する。これらの命令やデータの生成はＣＰＵ１３２により行われる。また、デバッグ用回路１６４との通信は、複数のシリアル通信回路によりＣＰＵ１３２の制御に従って行われる。
【００２８】
デバッグ用回路１６４は、パラレル方式でデバッグ通信制御部１３０と命令やデータの送受信を行うものである。
【００２９】
シリアル通信回路１４０ａ〜１４０ｎは、シリアル通信回路１４０ａから出力されるクロック信号ＣＬＫに同期して、受信信号ＩＮＰＵＴの受信と、送信信号ＯＵＴＰＵＴの送信を行うことによって、デバッグ用回路１６４とのパラレル方式の送受信を実現する。
【００３０】
ここで、各シリアル通信回路の詳細を説明する。シリアル通信回路１４０ｂ〜１４０ｎは、同じ機能と構成を有するため、ここでシリアル通信回路１４０ａとシリアル通信回路１４０ｂについてのみ説明および図示する。なお、シリアル通信回路は、マスタに設定された場合にはクロックを生成して自身の送受信回路に供給すると共に、生成したクロックを出力する。また、スレーブに設定された場合にはクロック信号を受信して、受信したクロックを内部の送受信回路に供給するようになっている。また、マスタかスレーブかの設定は、ＣＰＵ１３２を介して行うことができる。以下の説明において、マスタであるシリアル通信回路とスレーブであるシリアル通信回路は、マスタに設定されたシリアル通信回路とスレーブに設定されたシリアル通信回路をそれぞれ意味する。
【００３１】
図２は、シリアル通信回路１４０ａとシリアル通信回路１４０ｂの構成を示す。シリアル通信回路１４０ａは、マスタであり、クロック回路１４１ａと、ターゲット装置からの信号（受信信号ＩＮＰＵＴ）をシリアル受信する受信回路１４５ａと、受信回路１４５ａにより受信した信号を一時的に記憶する受信バッファ１４４ａと、ターゲット装置へ出力する信号を一時的に記憶する送信バッファ１４６ａと、送信バッファ１４６ａに記憶された信号を送信信号ＯＵＴＰＵＴとしてターゲット装置へシリアル出力する送信回路１４７ａと、クロック・ノード１４２ａを備える。クロック回路１４１ａは、クロックを生成して受信回路１４５ａと送信回路１４７ａに供給すると共に、クロック・ノード１４２ａを介して生成したクロック信号（クロック信号ＣＬＫ）を外部に出力する。受信回路１４５ａと送信回路１４７ａは、クロック回路１４１ａから供給されたクロックに同期して送受信を行う。
【００３２】
シリアル通信回路１４０ｂは、スレーブであり、クロック回路１４１ｂと、受信バッファ１４４ｂと、受信回路１４５ｂと、送信バッファ１４６ｂと、送信回路１４７ｂと、クロック・ノード１４２ｂを備える。クロック・ノード１４２ｂは、シリアル通信回路１４０ａのクロック・ノード１４２ａと接続されている。クロック回路１４１ｂは、クロック・ノード１４２ｂを介してクロック信号ＣＬＫを受信して、それを受信回路１４５ｂと送信回路１４７ｂに供給する。そのため、受信回路１４５ｂと送信回路１４７ｂは、シリアル通信回路１４０ａにおけるクロック回路１４１ａが出力したクロック信号ＣＬＫに同期して送受信を行う。
【００３３】
すなわち、複数のシリアル通信回路のうち、シリアル通信回路１４０ａはマスタであり、シリアル通信回路１４０ｂ〜１４０ｎはスレーブである。すべてのシリアル通信回路は、同じクロック信号ＣＬＫに同期して送受信を行う。
【００３４】
図１に戻る。クロック信号ＣＬＫは、デバッグ用回路１６４のクロック入力端子にも入力される。各シリアル通信回路の受信回路はデバッグ用回路１６４のデータ出力端子に接続されており、送信回路はデバッグ用回路１６４のデータ入力端子に接続されている。なお、デバッグ用回路１６４のクロック入力端子、データ出力端子、データ入力端子は、エミュレータＩ／Ｆコネクタ１６２に接続されており、これらの図示をここで省略している。
【００３５】
このような構成によって、デバッグ通信制御部１３０とデバッグ用回路１６４間において、送受信毎に最大ｎビットのパラレル通信が可能である。また、図１および図２に示すように、スレーブとマスタ間のクロック信号ＣＬＫを送受信するための結線は、マイコンの外部になされているため、マイコンの内部配線を変更する必要が無い。すなわち、パラレル通信回路が設けられていない安価なマイコンにより、ターゲット装置とのパラレル通信を実現することができる。
【００３６】
次いで、上記原理を具現化したシステムについて説明する。
＜第１の実施の形態＞
図３は、本発明の実施の形態にかかるデバッグ・システム２００を示す。なお、以下の説明および図示において、デバッグ・システム１００のものと同様の構成または機能を有する部分に対して同一の符号を付与するとともに、それらの詳細な説明を省略する。
【００３７】
デバッグ・システム２００は、ホストＰＣ１１０と、ターゲット・ボード２５０およびそれに設けられたターゲット・マイコン２６０からなるターゲット装置と、ホストＰＣ１１０とターゲット装置の間に接続され、ホストＰＣ１１０からの命令に基づいてターゲット装置との間の通信を制御するオンチップ・デバッグ・エミュレータ（以下単にエミュレータという）２２０を備える。
【００３８】
本実施の形態のデバッグ・システム２００はＪＴＡＧに準拠したものであり、ターゲット・マイコン２６０に設けられたデバッグ用回路２６４は、エミュレータ２２０とＪＴＡＧ通信を行うＪＴＡＧ通信制御部２７１と、ＪＴＡＧ通信制御部２７１からのデータを元にデバッグ動作を実行するデバッグ機能制御部２７５を備える。また、ＪＴＡＧ通信制御部２７１は、ターゲット・ボード２５０上のエミュレータＩ／Ｆコネクタ２６２を介してエミュレータ２２０におけるデバッグ通信制御部２３０（後述する）に接続される。
【００３９】
ＪＴＡＧ通信制御部２７１には、エミュレータ２２０から送られてコマンドを格納する命令レジスタ２７２と、エミュレータ２２０から送られてきたデータをデバッグ機能制御部２７５に転送したり、デバッグ機能制御部２７５から読み出したデータをエミュレータ２２０に送信したりするためのシフトレジスタ２７３が設けられている。これらのレジスタは、一般的なＪＴＡＧ通信制御回路を構成するものと同じである。
【００４０】
デバッグ機能制御部２７５は、データレジスタ２７６やデータレジスタ２７８など種々のデータレジスタを備えており、それらに記憶されたデータ値に基づいてデバッグ動作を実行したり、デバッグ動作を実行することによって得られたエミュレータ２２０に送信すべきデータを書き込んだりする。また、ＪＴＡＧ通信制御部２７１は、命令レジスタ２７２に格納された命令にしたがって、シフトレジスタ２７３を介してこれらのデータレジスタの読み書きを行う。
【００４１】
エミュレータ２２０は、ホストＰＣ１１０と接続するためのホストＩ／Ｆ回路１２４と、ホストＩ／Ｆ回路１２４を介してホストＰＣ１１０のデバッガ１１４からの命令に基づいてターゲット装置との間の通信を制御するデバッグ通信制御部２３０と、デバッグ通信制御部２３０をデバッグ用回路２６４におけるＪＴＡＧ通信制御部２７１に接続するためのターゲットＩ／Ｆコネクタ２３８を備える。
【００４２】
デバッグ通信制御部２３０は、マイコンにより構成され、汎用マイコンが通常備えられる機能ブロックを有する。図示のように、デバッグ通信制御部２３０は、中央演算装置となるＣＰＵ１３２と、ＣＰＵ１３２が演算を行うための種々のデータを記憶するメモリ１３１と、ＣＰＵ１３２がホストＩ／Ｆ回路１２４と接続するための外部メモリＩ／Ｆ回路１３４と、３つのシリアル通信回路２４０ａ〜２４０ｃを備える。また、ＣＰＵ１３２と各シリアル通信回路は、バス１３６を介して接続されている。
【００４３】
ここで、デバッグ処理の流れについて説明する。なお、分かりやすいように、ここではエミュレータ２２０の介在を省略して説明する。
【００４４】
ホストＰＣ１１０は、ユーザにより操作される。ユーザは、ホストＰＣ１１０で動作するデバッガ１１４より、ターゲット・マイコン２６０上のＲＯＭ１８２にプログラム・コードをロードして、さらにプログラム実行、デバッグ等の操作を行うことができる。
【００４５】
ユーザはデバッガ１１４より、ターゲット・マイコン１６０の通常動作中にデバッグを開始する命令（デバッグ開始命令）を挿入してデバッグを行う。
【００４６】
デバッガ１１４は、ユーザが命令を挿入すると、挿入されたアドレスを調べて、ターゲット・マイコン１６０のＲＯＭ１８２における該当アドレスにある命令を読み出して保存する。このとき、保存されるのは、その命令があったアドレスと、ユーザが挿入した命令である。
【００４７】
デバッガ１１４は、ターゲット・マイコン２６０における、ユーザがデバッグ開始命令の挿入を指示したアドレスにデバッグ・モードに入るためのコマンドを書き込む。
【００４８】
ターゲット・マイコン２６０において、ＲＯＭ１８２にロードされたプログラムが逐次実行され、上記のアドレスに到達すると、そのコマンドが実行される。これにより、ターゲット・マイコン２６０はデバッグ・モードに入る。
【００４９】
デバッガ１１４は、デバッグ用回路２６４の状態を監視しており、ターゲット・マイコン１６０がデバッグ・モードに入ったことを知ることができる。デバッガ１１４は、ターゲット・マイコン１６０がデバッグ・モードに入ったことを検知すると、デバッガよりメモリリード／ライトやレジスタリードといったデバッグ処理を実行することで、デバッグは実現される。
【００５０】
デバッグ処理が終了すると、デバッガ１１４は、デバッグ開始命令が挿入されたアドレスに当初あった命令をロードして実行するようにターゲット・マイコン１６０を制御する。これによりターゲット・マイコン１６０はデバッグ・モードから通常動作モードに復帰する。
【００５１】
この一連の処理は、ホストＰＣ１１０とターゲット・マイコン２６０間に命令、データの送受信を介して行われる。ホストＰＣ１１０とターゲット・マイコン２６０間の全てのデータの送受信は、エミュレータ２２０を介して行われる。
【００５２】
エミュレータ２２０は、ホストＰＣ１１０との通信方式と、ＪＴＡＧによる通信方式との間の変換を行い、デバッガ１１４とターゲット・マイコン２６０間のデータの送受信を実現する。
【００５３】
ＣＰＵ１３２は、デバッガ１１４から送信されてきた命令およびデータを該当するシリアル通信回路の送信バッファに入力し、シリアル通信回路が受信して自身の受信バッファに一時的に記憶したデバッグ用回路２６４からのデータをデバッガ１１４に出力する。
【００５４】
デバッグ用回路２６４との通信はＪＴＡＧ方式である。ここでまずＪＴＡＧ方式の通信プロトコルについて説明する。
図４に示すように、ＪＴＡＧ通信にはクロック信号ＴＣＫ、動作モード制御信号ＴＭＳ、ターゲット装置に出力されるデータや命令などの出力信号ＴＤＩ、ターゲット装置から出力されエミュレータに入力されデータとなる入力信号ＴＤＯの４つの信号が用いられる。そのうち、動作モード制御信号ＴＭＳと出力信号ＴＤＩはエミュレータからターゲット装置に出力されるものであり、入力信号ＴＤＯは、ターゲット装置からエミュレータに出力されるものである。
【００５５】
動作モード制御信号ＴＭＳ、出力信号ＴＤＩ、入力信号ＴＤＯは、クロック信号ＴＣＫに同期して送受信される。具体的には、エミュレータからターゲット装置へ命令およびデータを書き込むための出力信号ＴＤＩは、ターゲット装置にデバッグ・モードに切り換えさせるための動作モード制御信号ＴＭＳの立下がりの２クロック後に行われ、ターゲット装置から出力されるデータすなわちエミュレータがターゲット装置から読み出すデータ（入力信号ＴＤＯ）の出力は、出力信号ＴＤＩの出力開始時の１クロック後に行われる。デバッグ通信制御部２３０は、シリアル通信回路２４０ａ〜２４０ｂによって、デバッグ用回路２６４間のこのプロトコルに準拠した通信を行う。
【００５６】
図３に戻って各シリアル通信回路について説明する。分かりやすいように、図３において省略しているが、各シリアル通信回路には、通常のシリアル通式回路と同じように受信バッファと送信バッファが設けられている。
【００５７】
シリアル通信回路２４０ａ〜２４０ｃのうち、シリアル通信回路２４０ａはマスタとなっており、クロック信号ＴＣＫと、動作モード制御信号ＴＭＳの出力を担う。図３に示すように、シリアル通信回路２４０ａは、クロック回路２４１ａと、クロック・ノード２４２ａと、受信回路２４５ａと、送信回路２４７ａを備える。
【００５８】
クロック回路２４１ａは、クロック信号ＴＣＫを生成して受信回路２４５ａと送信回路２４７ａに供給する。また、クロック信号ＴＣＫは、クロック・ノード２４２ａを介して出力され、デバッグ用回路２６４のクロック入力端子にも入力される。
【００５９】
シリアル通信回路２４０ａの受信回路２４５ａは、本実施の形態では用いられない。
【００６０】
シリアル通信回路２４０ａの送信回路２４７ａは、ターゲットＩ／Ｆコネクタ２３８を介してＪＴＡＧ通信制御部２７１と接続され、クロック信号ＴＣＫに同期して動作モード制御信号ＴＭＳをＪＴＡＧ通信制御部２７１へ出力する。
【００６１】
シリアル通信回路２４０ｂは、クロック・ノード２４２ｂと、クロック回路２４１ｂと、受信回路２４５ｂと、送信回路２４７ｂを備える。受信回路２４５ｂは本実施の形態では用いられず、送信回路２４７ｂは、ターゲットＩ／Ｆコネクタ２３８を介してＪＴＡＧ通信制御部２７１と接続され、出力信号ＴＤＩの出力を担う。また、クロック・ノード２４２ｂは、シリアル通信回路２４０ａのクロック・ノード２４２ａと接続されているため、クロック回路２４１ｂは、クロック・ノード２４２ｂを介してクロック信号ＴＣＫを受信する。そのため、送信回路２４７ｂもクロック信号ＴＣＫに同期して動作する。
【００６２】
シリアル通信回路２４０ｃは、クロック・ノード２４２ｃと、クロック回路２４１ｃと、受信回路２４５ｃと、送信回路２４７ｃを備える。送信回路２４７ｃは本実施の形態では用いられず、受信回路２４５ｃは、入力信号ＴＤＯの受信を担う。また、クロック・ノード２４２ｃは、シリアル通信回路２４０ａのクロック・ノード２４２ａと接続されているため、クロック回路２４１ｃは、クロック・ノード２４２ｃを介してクロック信号ＴＣＫを受信する。そのため、受信回路２４５ｃもクロック信号ＴＣＫに同期して動作する。
すなわち、シリアル通信回路２４０ｂとシリアル通信回路２４０ｃは、シリアル通信回路２４０ａのスレーブとなっている。
【００６３】
以下の説明において、クロック信号ＴＣＫ、動作モード制御信号ＴＭＳ、出力信号ＴＤＩ、入力信号ＴＤＯをそれぞれ単にＴＣＫ、ＴＭＳ、ＴＤＩ、ＴＤＯという。
【００６４】
図５は、デバッグ通信制御部２３０がターゲット装置へデータを出力（ライト）する際のフローチャートを示す。ターゲット装置へライトするのに当たり、ＣＰＵ１３２は、シリアル通信回路２４０ａとシリアル通信回路２４０ｂの送信バッファに、ＴＭＳとＴＤＩをそれぞれ設定する（Ｓ１０、Ｓ２０）。シリアル通信回路２４０ａの送信バッファにデータが書き込まれると、デバッグ通信制御部２３０とデバッグ用回路２６４の通信が開始される。
【００６５】
データの送受信が終了するまで上記処理が続行される（Ｓ３０：Ｎｏ、Ｓ４０）。そして、このライトに関するデータの送受信が終了する（Ｓ３０：Ｙｅｓ）と、シリアル通信回路２４０ａとシリアル通信回路２４０ｂは動作を終了する。
【００６６】
なお、図５に示すライト処理によりデバッグ通信制御部２３０からターゲット装置へ出力されるデータは、命令であれば命令レジスタ２７２に書き込まれ、命令以外のデータであればシフトレジスタ２７３に書き込まれる。
【００６７】
図６は、デバッグ通信制御部２３０がターゲット装置からデータを読み出す（リード）する際のフローチャートを示す。ターゲット装置からリードするのに当たり、ＣＰＵ１３２は、シリアル通信回路２４０ａとシリアル通信回路２４０ｂの送信バッファに、ＴＭＳとＴＤＩをそれぞれ設定する（Ｓ５０、Ｓ６０）。ライト時と同じように、シリアル通信回路２４０ａの送信バッファにデータが書き込まれると、デバッグ通信制御部２３０とデバッグ用回路２６４の通信が開始される。
【００６８】
データの送受信が終了するまで上記処理が続行される（Ｓ７０：Ｎｏ、Ｓ８０）。そして、このリードに関するデータの送受信が終了する（Ｓ７０：Ｙｅｓ）と、シリアル通信回路２４０ｃの受信バッファからデータが読み出され、ＣＰＵ１３２によりデバッガ１１４へ出力される（Ｓ９０）。
【００６９】
このように、本実施の形態のデバッグ・システム２００において、マイコンの外部においてシリアル通信回路のクロック結線をし、シリアル通信回路２４０ｂとシリアル通信回路２４０ｃがシリアル通信回路２４０ａのスレーブとなることによって、３つのシリアル通信回路が同じクロック信号ＴＣＫに同期して動作することによって、安価な汎用マイコンによりＯＣＤを構成することができ、ＯＣＤのコストダウンを図ることができる。
【００７０】
また、専用回路でターゲット装置と通信を行う部分を構成しているわけではないため、例えば入出力ピン数の増減などデバッグの通信方式に変更が生じたとしても、マイコンの外部でシリアル通信回路の結線を変えれば対応することができ、デバッグ通信方式の変更に柔軟に対応できる。
＜第２の実施の形態＞
【００７１】
図７は、本発明の第２の実施の形態にかかるデバッグ・システム３００を示す。なお、以下の説明および図示において、デバッグ・システム２００のものと同様の構成または機能を有する部分に対して同一の符号を付与するとともに、それらの詳細な説明を省略する。
【００７２】
デバッグ・システム３００は、ホストＰＣ１１０と、ターゲット・ボード３５０およびそれに設けられたターゲット・マイコン３６０からなるターゲット装置と、ホストＰＣ１１０とターゲット装置の間に接続され、ホストＰＣ１１０からの命令に基づいてターゲット装置との間の通信を制御するオンチップ・デバッグ・エミュレータ（以下単にエミュレータという）３２０を備える。
【００７３】
本実施の形態のデバッグ・システム３００もＪＴＡＧに準拠したものであり、ターゲット・マイコン３６０に設けられたデバッグ用回路３６４は、エミュレータ３２０とＪＴＡＧ通信を行うＪＴＡＧ通信制御部２７１と、デバッグ機能制御部３７５と、トレース機能制御部３７８を備える。デバッグ機能制御部３７５は、ＪＴＡＧ通信制御部２７１からのデータを元にデバッグ動作を実行すると共に、トレース機能制御部３７８とも接続され、ＪＴＡＧ通信制御部２７１から来たトレース機能制御部３７８への命令の転送やトレース機能制御部３７８からエミュレータ３２０へ出力するデータをＪＴＡＧ通信制御部２７１に渡すことも実行する。また、ＪＴＡＧ通信制御部２７１とトレース機能制御部３７８は、ターゲット・ボード３５０上のエミュレータＩ／Ｆコネクタ３６２を介してエミュレータ３２０におけるデバッグ通信制御部３３０（後述する）に接続される。
【００７４】
トレース機能制御部３７８は、ターゲット・マイコン３６０においてプログラムが実行されている際に、実行過程がトレースできる情報をエミュレータに出力するものである。例えば、ＣＰＵ１８４が実行した命令を実行順にデータとして出力する。これらのデータとして、トレース・クロック信号ＴＲＣＣＬＫ（以下単にＴＲＣＣＬＫという）、ＴＲＣＥＮＤ、ＴＲＣＤＡＴＡ「０」、ＴＲＣＤＡＴＡ「１」、ＴＲＣＤＡＴＡ「２」、ＴＲＣＤＡＴＡ「３」の６つの信号が用いられ、図８に示すプロトコルでＴＲＣＣＬＫに同期して送受信される。
【００７５】
本実施の形態のデバッグ・システム３００において、エミュレータ３２０のデバッグ通信制御部３３０に、トレース機能制御部３７８からのデータを受信するためのトレース用通信回路３４０が設けられた点を除いて、他の各部分はデバッグ・システム２００における相対応するものと同じであるので、ここでトレース用通信回路３４０についてのみ説明する。なお、デバッグ通信制御部３３０は、ターゲットＩ／Ｆコネクタ３３８を介してターゲット・マイコン６６０におけるＪＴＡＧ通信制御部２７１およびトレース機能制御部３７８に接続されている。
【００７６】
図９は、トレース用通信回路３４０を示す。トレース用通信回路３４０は、５つのシリアル通信回路２４０ｄ〜２４０ｈを有する。各シリアル通信回路は、クロック・ノード、クロック回路、受信回路、受信バッファ、送信回路、送信バッファを備える。これらのシリアル通信回路はスレーブに設定されており、クロック・ノードを介して受信したクロックを自身の受信回路に供給する。
【００７７】
シリアル通信回路２４０ｄにおけるクロック回路２４１ｄは、クロック・ノード２４２を介してトレース機能制御部３７８からのＴＲＣＣＬＫを受信し、受信したＴＲＣＣＬＫを送信回路２４７ｄに供給する。また、シリアル通信回路２４０ｅ〜２４０ｈのクロック・ノード２４２ｅ〜２４２ｈは、クロック・ノード２４２ｄと接続されており、これらのシリアル通信回路も、クロック・ノードを介してＴＲＣＣＬＫを受信して自身の受信回路に供給する。すなわち、シリアル通信回路２４０ｄ〜２４０ｈにおける受信回路は、同じクロック信号ＴＲＣＣＬＫに同期して動作する。
【００７８】
トレース機能制御部３７８からシリアル通信回路２４０ｄ〜２４０ｈの受信回路２４５ｄ〜２４５ｈに、ＴＲＣＥＮＤ、ＴＲＣＤＡＴＡ「０」、ＴＲＣＤＡＴＡ「１」、ＴＲＣＤＡＴＡ「２」、ＴＲＣＤＡＴＡ「３」がそれぞれ入力され、それぞれの受信バッファに一時格納される。これらのデータの送受信は、ＴＲＣＣＬＫに同期して行われる。
【００７９】
受信バッファに格納されたデータは、後にＣＰＵ１３２により読み出され、ホストＰＣ１１０に送信される。
【００８０】
なお、各シリアル通信回路２４０ｄ〜２４０ｈの送信回路２４７ｄ〜ｈと送信バッファは、ここでは使用されない。
【００８１】
このように、本実施の形態のデバッグ・システム３００では、安価なマイコンに通常備えられるシリアル通信回路によりＪＴＡＧのインターフェースを実現できると共に、ターゲット装置の実行過程をトレースするためのインターフェースも提供できる。
＜第３の実施の形態＞
【００８２】
図１０は、本発明の第３の実施の形態にかかるマイコン４００を示す。マイコン４００は、ＣＰＵ４０２と、ＣＰＵ４０２が演算を行うための種々のデータを記憶するメモリ４０１、ＣＰＵ４０２が外部装置例えばパーソナルコンピュータと接続するための外部メモリＩ／Ｆ回路４０４と、複数のシリアル通信回路４２０ａ〜４２０ｎを備える。また、ＣＰＵ４０２と各シリアル通信回路は、バス４０６を介して接続されており、データの送受信ができる。
【００８３】
シリアル通信回路４２０ｂ〜シリアル通信回路４２０ｎに対してそれぞれ切換回路４３０ｂ〜４３０ｎが設けられており、それらの切換動作は切換制御信号線４１０を介してＣＰＵ４０２により制御される。以下、図１１を参照して各シリアル通信回路および切換回路の詳細を説明する。なお、シリアル通信回路４２０ｂ〜４２０ｎは同じ構成および機能を有し、切換回路４３０ｂ〜４３０ｎは同じ構成および機能を有するため、シリアル通信回路４２０ａ、シリアル通信回路４２０ｂ、切換回路４３０ｂについてのみ説明する。
【００８４】
図１１に示すように、シリアル通信回路４２０ａは、クロック回路４２１ａと、クロック・ノード４２２ａと、受信信号ＩＮＰＵＴをシリアル受信する受信回路４２５ａと、受信回路４２５ａにより受信した信号を一時的に記憶する受信バッファ４２４ａと、外部の装置へ出力する信号を一時的に記憶する送信バッファ４２６ａと、送信バッファ４２６ａに記憶された信号を送信信号ＯＵＴＰＵＴとしてシリアル出力する送信回路４２７ａを備える。なお、シリアル通信回路４２０ａは、マスタであり、クロック信号ＣＬＫを自身の送受信回路に供給すると共に、クロック・ノード４２２ａからクロック信号ＣＬＫを出力する。
【００８５】
シリアル通信回路４２０ａに対して、クロック端子４２３ａが設けられている。クロック端子４２３ａを介して、クロック・ノード４２２ａからのクロック信号ＣＬＫが外部に出力可能となっている。
【００８６】
シリアル通信回路４２０ｂは、シリアル通信回路４２０ａと同じ構成を有するが、それに対して、切換回路４３０ｂとクロック端子４２３ｂが設けられている。切換回路４３０ｂは、クロック・ノード４２２ｂがクロック端子４２３ｂに接続されている状態と、シリアル通信回路４２０ａのクロック端子４２３ａに接続されている状態との切換を行う。
【００８７】
クロック・ノード４２２ｂがクロック端子４２３ｂに接続された状態では、シリアル通信回路４２０ｂがマスタであるかスレーブであるかによってクロック回路４２１ｂは異なる動作をする。マスタに設定された場合には、クロックを生成して受信回路４２５ｂと送信回路４２７ｂに供給すると共に、クロック・ノード４２２ｂおよびクロック端子４２３ｂを介してクロックを出力する。一方、スレーブに設定された場合には、クロック端子４２３を介して送信されてきたクロック信号を受信して、それを受信回路４２５ｂと送信回路４２７ｂに供給する。この状態は、マイコンに備えられる通常のシリアル通信回路の動作状態である。
【００８８】
一方、クロック・ノード４２２ｂがシリアル通信回路４２０ａのクロック端子４２３ａに接続された状態では、シリアル通信回路４２１ａがマスタであるため、シリアル通信回路４２１ｂはスレーブに設定される必要がある。この場合、クロック回路４２１ｂは、クロック・ノード４２２ｂを介して、シリアル通信回路４２０ａのクロック回路４２１ａが出力したクロック信号ＣＬＫを受信して受信回路４２５ｂと送信回路４２７ｂに供給する。
この状態では、マイコン４００と送受信する外部の装置がパラレル通信方式のものであっても対応できる。
【００８９】
切換回路４３０ｂは、切換制御信号線４１０を介してＣＰＵ４０２に制御される。例えば切換制御信号線４１０を介してＣＰＵ４０２が送信してきた切換制御信号に応じて切換をしてもよいし、ＣＰＵ４０２に設けられた設定レジスタの値を参照して切換を行うようにしてもよい。
【００９０】
第３の実施の形態のマイコン４００は、このような構成によって、いわゆる通常のマイコンとして使用することができるとともに、切換回路でクロック・ノードの接続を切換るだけで、第１の実施の形態および第２の実施の形態のシステムにおけるＪＴＡＧ用のＯＣＤに適用することができる。
【００９１】
なお、図１０に示すように、本実施の形態のマイコン４００において、マイコン内部で切換回路を結線しているため、汎用マイコンではないが、パラレルのＩ／Ｆ回路を備えていないにもかかわらず、設定次第でパラレル通信ができる。ＦＰＧＡやゲートアレイなども使用していないので、マイコン４００によりＯＣＤを構成する際に、コストダウンを図ることができる。
【００９２】
以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、さまざまな変更、増減を加えてもよい。これらの変更、増減が加えられた変形例も本発明の範囲にあることは当業者に理解されるところである。
【００９３】
例えば、第１および第２の実施の形態において、例として本発明のオンチップ・デバッグ・エミュレータをＪＴＡＧ方式のデバッグ・システムに適用しているが、ターゲット装置とエミュレータ間の通信方式としてパラレル方式が用いられるいかなるデバッグ・システムにも適用可能であり、これらのシステムにおけるエミュレータを安価に構成することができる。
【００９４】
また、ターゲット装置との通信インターフェースのみならず、例えばホストＰＣとパラレル接続される場合には、本発明の原理に基づいてマイコンのシリアル通信回路によりホストＩ／Ｆ回路を構成してもよい。
【図面の簡単な説明】
【００９５】
【図１】本発明の原理を説明するために用いられたデバッグ・システムを示す図である。
【図２】図１に示すデバッグ・システムにおける各シリアル通信回路を説明するための図である。
【図３】本発明の第１の実施の形態にかかるデバッグ・システムを示す図である。
【図４】ＪＴＡＧのプロトコルを示す図である。
【図５】図３に示すデバッグ・システムにおいてターゲット装置へのライトの流れを示すフローチャートである。
【図６】図３に示すデバッグ・システムにおいてターゲット装置からのリードの流れを示すフローチャートである。
【図７】本発明の第２の実施の形態にかかるデバッグ・システムを示す図である。
【図８】トレースのプロトコルを示す図である。
【図９】図７に示すデバッグ・システムにおけるトレース用通信回路の詳細を示す図である。
【図１０】本発明の第３の実施の形態にかかるマイクロコンピュータを示す図である。
【図１１】図１０に示すマイクロコンピュータにおけるシリアル通信回路および切換回路を説明するための図である。
【図１２】従来のデバッグ・システムを示す図である。
【符号の説明】
【００９６】
１００  デバッグ・システム  １１０  ホストＰＣ  １１４  デバッガ
１２０  エミュレータ  １２４  ホストＩ／Ｆ回路  １３０  デバッグ通信制御部
１３１  メモリ  １３２  ＣＰＵ  １３４  外部メモリＩ／Ｆ回路
１３６  バス  １３８  ターゲットＩ／Ｆコネクタ  １４０  シリアル通信回路
１４１  クロック回路  １４２  クロック・ノード  １４４  受信バッファ
１４５  受信回路  １４６  送信バッファ  １４７  送信回路
１５０  ターゲット・ボード  １６０  ターゲット・マイコン
１６２  エミュレータＩ／Ｆコネクタ  １６４  デバッグ用回路  １８２  ＲＯＭ
１８４  ＣＰＵ  １８６  バス  １８８  周辺回路
２００  デバッグ・システム  ２２０  エミュレータ
２３０  デバッグ通信制御部  ２３８  ターゲットＩ／Ｆコネクタ
２４０  シリアル通信回路  ２４１  クロック回路  ２４２  クロック・ノード
２４４  受信バッファ  ２４５  受信回路  ２４６  送信バッファ
２４７  送信回路  ２５０  ターゲット・ボード  ２６０  ターゲット・マイコン
２６２  エミュレータＩ／Ｆコネクタ  ２６４  デバッグ用回路
２７１  ＪＴＡＧ通信制御部  ２７２  命令レジスタ  ２７３  シフトレジスタ
２７５  デバッグ機能制御部  ２７６  データレジスタ  ２７８  データレジスタ
３００  デバッグ・システム  ３２０  エミュレータ
３３０  デバッグ通信制御部  ３３８  ターゲットＩ／Ｆコネクタ
３４０  トレース用通信回路  ３５０  ターゲット・ボード
３６０  ターゲット・マイコン  ３６２  エミュレータＩ／Ｆコネクタ
３６４  デバッグ用回路  ３７５  デバッグ機能制御部  ３７８  トレース機能制御部
４００  マイコン  ４０１  メモリ  ４０２  ＣＰＵ
４０４  外部メモリＩ／Ｆ回路  ４０６  バス  ４１０  切換制御信号線
４２０  シリアル通信回路  ４２１  クロック回路  ４２２  クロック・ノード
４２３  クロック端子  ４２４  受信バッファ  ４２５  受信回路
４２６  送信バッファ  ４２７  送信回路  ４３０  切換回路
【図１】
2008226083.tif 000003
【図２】
2008226083.tif 000004
【図３】
2008226083.tif 000005
【図４】
2008226083.tif 000006
【図５】
2008226083.tif 000007
【図６】
2008226083.tif 000008
【図７】
2008226083.tif 000009
【図８】
2008226083.tif 000010
【図９】
2008226083.tif 000011
【図１０】
2008226083.tif 000012
【図１１】
2008226083.tif 000013
【図１２】
2008226083.tif 000014