(57)【要約】【課題】使用される端子の数を削減しつつ、搭載されたシステムに所定の事象が発生した場合に対象を限定して初期化処理することが可能な通信装置、半導体装置、通信システムおよび初期化方法を提供すること。【解決手段】通信データを送信する送信モードと通信データを受信する受信モードとが切り換え可能とされた通信インタフェース部ＲＸＤ／ＴＸＤを含む通信装置１２であって、受信モードにおいて受信する通信データを監視し受信する通信データにおいて予め定められた条件が充足された場合に通信装置１２を初期化する初期化信号を発出する監視部２０を含む。【選択図】図１
2018029285.tif 000002
【特許請求の範囲】
【請求項１】
通信データを送信する送信モードと通信データを受信する受信モードとが切り換え可能とされた通信インタフェース部を含む通信装置であって、
前記受信モードにおいて受信する前記通信データを監視し受信する前記通信データにおいて予め定められた条件が充足された場合に自身を初期化する初期化信号を発出する監視部を含む通信装置。
【請求項２】
前記予め定められた条件が前記通信インタフェース部で受信される前記通信データにおいて予め定められた極性の通信データが予め定められた期間連続したことである
請求項１に記載の通信装置。
【請求項３】
第１の周波数の第１のクロック信号を発生する第１のクロック源をさらに含み、
前記監視部は、前記受信モードにおいて前記第１のクロック信号に基づき前記予め定められた極性の前記通信データの個数を計数するカウンタ、および計数された前記予め定められた極性の前記通信データの個数と予め定められた設定値とを比較する比較器を備え、計数された前記予め定められた極性の前記通信データの個数が前記予め定められた設定値を越えた場合に前記初期化信号を発出する
請求項２に記載の通信装置。
【請求項４】
前記監視部は、前記カウンタで前記予め定められた極性の前記通信データの個数を計数している途中で前記予め定められた極性と逆の極性の前記通信データを受信した場合に前記カウンタをクリアする
請求項３に記載の通信装置。
【請求項５】
前記監視部は、前記カウンタで前記予め定められた極性の前記通信データの個数を計数している途中で前記予め定められた極性と逆の極性の前記通信データとは無関係の外乱が入力された場合に前記カウンタによる前記クリアの動作を停止させる外乱キャンセル回路を備える
請求項４に記載の通信装置。
【請求項６】
前記通信装置の通信方式が調歩同期式通信であり、
前記予め定められた条件が前記通信インタフェース部で受信される前記通信データにおいて予め定められた極性の通信データが予め定められた期間連続したことである
請求項１〜請求項５のいずれか１項に記載の通信装置。
【請求項７】
前記予め定められた期間が前記調歩同期式通信で用いるフレームの１単位に相当する期間より長い
請求項６に記載の通信装置。
【請求項８】
前記調歩同期式通信で用いる、第２の周波数の第２のクロック信号を発生する第２のクロック源をさらに含む
請求項６または請求項７に記載の通信装置。
【請求項９】
前記予め定められた極性が負極性であり、
前記通信インタフェース部にはプルダウン処理がなされており、
監視部は、前記通信インタフェース部から前記通信装置と対向する対向通信装置に接続される通信線に断線が発生した場合にも前記初期化信号を発出する
請求項１〜請求項８のいずれか１項に記載の通信装置。
【請求項１０】
請求項１〜請求項９のいずれか１項に記載の通信装置と、
他の機器と接続するための機器接続インタフェース部と、
接続される前記他の機器を制御する制御部と、
を含む半導体装置。
【請求項１１】
請求項１０に記載の半導体装置、および通信線を介して前記通信インタフェース部に接続された対向通信装置を備えた対向装置を含む通信システムであって、
前記対向装置は、前記通信システムにおいて予め定められた事象を検出した場合に前記対向通信装置から前記通信線を介し前記予め定められた条件の通信データを前記通信装置に送信する
通信システム。
【請求項１２】
通信線を介し対向する対向装置に通信データを送信する送信モード、および前記対向装置からの通信データを受信する受信モードが切り換え可能とされた通信インタフェース部を含む通信装置であって、前記受信モードにおいて前記対向装置から受信する前記通信データを監視し受信する前記通信データにおいて予め定められた条件が充足された場合に初期化信号を発出する監視部を含む通信装置を用いた初期化方法であって、
前記対向装置が予め定められた事象を検出した場合に、前記対向装置が前記通信線を介して予め定められた極性の通信データを前記通信装置に送信し、
前記通信装置が前記予め定められた極性の通信データを予め定められた期間連続して受信した場合に、前記通信装置が前記初期化信号により自身を初期化するとともに前記初期化信号を前記対向装置に向け送信する
初期化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、半導体装置、通信システムおよび初期化方法、特に半導体装置としてのマイクロコントローラユニット（Ｍｉｃｒｏ  Ｃｏｎｔｒｏｌｌｅｒ  Ｕｎｉｔ、以下「ＭＣＵ」）に搭載されるシリアル伝送方式の通信装置、通信システム、およびその初期化方法に関する。
【背景技術】
【０００２】
ＭＣＵとは、１つの集積回路にコンピュータシステムを集積化した、主として組み込み用のマイクロプロセッサをさす。近年、ゲーム装置、カーナビゲーションシステム、プリンタ、携帯情報端末などの電子機器の高度化、複雑化に伴い、各種電子機器にこのＭＣＵが組み込まれる場合が多くなってきている。このような組み込み型のＭＣＵは、通常、ターゲットシステムと呼ばれるユーザボードに実装される。そして、このターゲットシステムを動作させるソフトウェアの開発をいかに効率的に行うかが１つの課題となっている。
【０００３】
このようなソフトウェア開発支援ツールとしては、従来ＩＣＥ（Ｉｎ  Ｃｉｒｃｕｉｔ  Ｅｍｕｌａｔｏｒ）と呼ばれるデバッグツールが広く使用されてきたが、近年ではオンチップエミュレータが主流となってきている。オンチップエミュレータとはＭＣＵ等をプリント基板に実装した状態でプログラムのデバッグを実行する装置の総称である。
【０００４】
オンチップエミュレータはマイクロコンピュータ（ＰＣ）に接続され、このＰＣを介してオンチップエミュレータが制御される。一方、デバッグ対象であるＭＣＵ等の内部にデバッグ回路が搭載され、このデバッグ回路で収集したデバッグ情報を用いてデバッグ作業が行われる。デバッグ情報はデバッグ用のインタフェースを介してオンチップエミュレータに送られ、オンチップエミュレータからＰＣに転送される。つまり、オンチップエミュレータ（デバッグツール）とＭＣＵ（ターゲットシステム）との間では、何らかの通信手段を介した通信が行われることとなる。
【０００５】
従来、デバッグシステムにおけるデバッグツールとターゲットシステムとの間の通信に言及した文献として特許文献１が知られている。特許文献１に開示されたデバッグシステムでは、ターゲットシステムからデバッグツールに送信されるデバッグ用の送信データに対応したシリアルデータ信号と、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の状態を示すラン／ブレーク状態信号をマージして出力信号を生成する回路を備え、当該出力信号を１つのデバッグ端子を介して出力している。特許文献１では、このようなデバッグシステムによれば、ＣＰＵのラン／ブレーク状態信号の送信とデバッグ用のデータの送信とを１本の通信ラインで共用して行うことができるので、ラン／ブレーク状態信号を出力するためのデバッグ用端子を個別に設ける必要がないとしている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−１７２６４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ここで、図８を参照し、比較例に係るデバッグシステム２について、デバッグツールとターゲットシステムとの間の通信を中心に説明する。図８に示すように、デバッグシステム２は、デバッグツールとしてのオンチップエミュレータ１００とターゲットシステムとしてのＭＣＵ５０を含んで構成されている。なお、図８では、オンチップエミュレータ１００に接続されるＰＣの図示を省略している。
【０００８】
オンチップエミュレータ１００には、通信装置１０２、クロック源（図８では、「ＯＳＣ」と表記）１０４、およびＣＰＵ１０６が含まれている。通信装置１０２は、ＭＣＵ５０との通信を実行する部位であり、通信装置１０２に接続されたコネクタＣＮ３にデータ信号送信用のＴＸＤ端子、受信用のＲＸＤ端子、クロック信号送信用のＣＬＫ端子、ＭＣＵ５０に対するリセット信号送信用のＲＥＳＥＴ端子、および電源用のＶＣＣ端子、ＶＳＳ端子が配置されている。クロック源１０４は発振回路を含み、通信装置１０２に供給する周波数ｆ１のクロック信号ＣＬＫｅを発生する部位である。ＣＰＵ１０６はオンチップエミュレータ１００を統括制御する部位である。
【０００９】
一方、ＭＣＵ５０には、通信装置５２、およびＣＰＵ５４が含まれている。通信装置５２は通信装置１０２と対向してオンチップエミュレータ１００との通信を実行する部位であり、コネクタＣＮ４にデータ信号受信用のＲＸＤ端子、送信用のＴＸＤ端子、クロック信号受信用のＣＬＫ端子、ＭＣＵ５０に対するリセット信号受信用のＲＥＳＥＴ端子、および電源用のＶＣＣ端子、ＶＳＳ端子が配置されている。
【００１０】
デバッグシステム２におけるオンチップエミュレータ１００とＭＣＵ５０との間の通信は、クロック源１０４によるクロック信号ＣＬＫｅを同期クロックとする同期式通信で行われる。そのため、オンチップエミュレータ１００とＭＣＵ５０との間には、データ信号を双方向で送信、受信するためのデータ信号線として２線、オンチップエミュレータ１００からＭＣＵ５０にクロック信号ＣＬＫｅを供給するための信号線１本、さらにＭＣＵ５０をリセットするリセット信号を送信するための信号線１本が必要になる。その結果、ＭＣＵ５０にもこれらの信号線に対応する端子が必要になる。しかしながら、これらの端子はデバッグ専用の端子であり、ＭＣＵ５０が組み込まれた電子機器等の実機では使用されない。
【００１１】
一方、近年のＭＣＵの高機能化等に伴い、電子機器等においてＩ／Ｏ端子など実際に使用する端子も増加する傾向にある。そのため、Ｉ／Ｏ端子の２次機能としてデバッグに用いることも考えられるが、この場合には兼用されたＩ／Ｏ端子のＩ／Ｏ端子としての機能についてデバッグすることができなくなってしまう。このように、実際に使用する端子が増加することによりデバッグに用いられる端子は少なくすることが求められる。従って、上記のようにＭＣＵのソフトウェア開発、システム開発（デバッグ等）においてのみ使用される端子は、極力少なくすることが求められている。
【００１２】
他方、オンチップエミュレータ１００を用いたＭＣＵ５０のシステム開発においては、効率的なデバッグ作業等の観点から、随時ＭＣＵ５０をリセット（初期化）させる処理が必要となる。さらに、この場合のリセット処理についてもＭＣＵ５０の全体だけでなく、必要な回路ブロックだけ部分的にリセットさせたい場合もある。デバッグシステム２においても、ＣＰＵ１０６の判断に従ってオンチップエミュレータ１００からＭＣＵ５０に向けてリセット信号ＲＥＳＥＴが発出可能なように構成されている。
【００１３】
しかしながら、比較例に係るデバッグシステム２におけるこのリセット信号ＲＥＳＥＴはＭＣＵ５０の全体をリセットする信号である。従って、例えばＭＣＵ５０のデバッグ回路に付随するメモリ等に記憶されたデータは保持しつつ通信装置１２だけをリセットするようなことはできない。
【００１４】
上記のような状況下、特許文献１に開示されたデバッグシステムでもデバッグで使用される端子の数を削減している。しかしながら、特許文献１では端子の数を削減した上での部分的なリセット処理については言及していない。
【００１５】
本発明は、上述した課題を解決するためになされたものであり、使用される端子の数を削減しつつ、搭載されたシステムに所定の事象が発生した場合に対象を限定して初期化処理することが可能な通信装置、半導体装置、通信システムおよび初期化方法を提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明に係る通信装置は、通信データを送信する送信モードと通信データを受信する受信モードとが切り換え可能とされた通信インタフェース部を含む通信装置であって、前記受信モードにおいて受信する前記通信データを監視し受信する前記通信データにおいて予め定められた条件が充足された場合に自身を初期化する初期化信号を発出する監視部を含むものである。
【００１７】
本発明に係る半導体装置は、上記の通信装置と、他の機器と接続するための機器接続インタフェース部と、接続される他の機器を制御する制御部と、を含むものである。
【００１８】
本発明に係る通信システムは、上記の半導体装置、および通信線を介して前記通信インタフェース部に接続された対向通信装置を備えた対向装置を含む通信システムであって、前記対向装置は、前記通信システムにおいて予め定められた事象を検出した場合に前記対向通信装置から前記通信線を介し前記予め定められた条件の通信データを前記通信装置に送信するものである。
【００１９】
本発明に係る初期化方法は、通信線を介し対向する対向装置に通信データを送信する送信モード、および前記対向装置からの通信データを受信する受信モードが切り換え可能とされた通信インタフェース部を含む通信装置であって、前記受信モードにおいて前記対向装置から受信する前記通信データを監視し受信する前記通信データにおいて予め定められた条件が充足された場合に初期化信号を発出する監視部を含む通信装置を用いた初期化方法であって、前記対向装置が予め定められた事象を検出した場合に、前記対向装置が前記通信線を介して予め定められた極性の通信データを前記通信装置に送信し、前記通信装置が前記予め定められた極性の通信データを予め定められた期間連続して受信した場合に、前記通信装置が前記初期化信号により自身を初期化するとともに前記初期化信号を前記対向装置に向け送信するものである。
【発明の効果】
【００２０】
本発明によれば、使用される端子の数を削減しつつ、搭載されたシステムに所定の事象が発生した場合に対象を限定して初期化処理することが可能な通信装置、半導体装置、通信システムおよび初期化方法を提供することが可能となる。
【図面の簡単な説明】
【００２１】
【図１】第１の実施の形態に係るデバッグシステムを示すブロック図である。
【図２】実施の形態に係る調歩同期式通信におけるフレーム構成の一例を示す図である。
【図３】第１の実施の形態に係る監視回路の一例を示す回路図である。
【図４】第１の実施の形態に係る監視回路の各節点の波形を示すタイミングチャートである。
【図５】実施の形態に係るＲＸＤ／ＴＸＤ端子のプルアップ回路およびプルダウン回路の一例を示す回路図である。
【図６】第２の実施の形態に係る監視回路の一例を示す回路図である。
【図７】第２の実施の形態に係る監視回路の各節点の波形を示すタイミングチャートである。
【図８】比較例に係るデバッグシステムを示すブロック図である。
【発明を実施するための形態】
【００２２】
以下、図面を参照して、本発明を実施するための形態について詳細に説明する。
【００２３】
［第１の実施の形態］
図１ないし図５を参照して、本実施の形態に係る通信装置、半導体装置、通信システムおよび初期化方法について説明する。図１は、本実施の形態に係る通信システムとしてのデバッグシステム１を示しており、本実施の形態に係る半導体装置としてのＭＣＵ１０をオンチップエミュレータ１００とともに図示したものである。本実施の形態に係るデバッグシステム１（通信システム）では、オンチップエミュレータ１００とＭＣＵ１０との間の通信に調歩同期式通信（Ｕｎｉｖｅｒｓａｌ  Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｒｅｃｅｉｖｅｒ  Ｔｒａｎｓｍｉｔｔｅｒ：ＵＡＲＴ、非同期式通信）を採用し、該通信におけるデータ信号線を利用し、ハードウェアリセットによる通信装置の初期化に加え、ソフトウェアリセットによる初期化を実現している。
【００２４】
オンチップエミュレータ１００は、通信装置１０２、周波数ｆ１（通信周波数）のクロック源１０４（図１では「ＯＳＣ」と表記）、およびＣＰＵ１０６を含んで構成されている。
【００２５】
通信装置１０２は、調歩同期式通信に対応可能な通信装置であり、コネクタＣＮ１に配置された通信データを送信するＴＸＤ端子、受信するＲＸＤ端子、クロック信号を送信するＣＬＫ端子、リセット信号を送信するＲＥＳＥＴ端子、および電源を供給するＶＣＣ端子、ＶＳＳ端子を有している。調歩同期式通信では１本のデータ信号線を送信、受信で共用するため、データ送信用のＴＸＤ端子とデータ受信用のＲＸＤ端子とは、コネクタＣＮ１で短絡されている。通信装置１０２では、さらにクロック信号送信用のＣＬＫ端子とリセット信号送信用のＲＥＳＥＴ端子とがコネクタＣＮ１で短絡され、共用化が図られている。
【００２６】
本実施の形態に係るクロック源１０４で発生されたクロック信号ＣＬＫｅは、通信装置１０２における調歩同期式通信に使用されるクロック信号（通信クロック信号）であり、ＣＬＫ端子からＭＣＵ１０に送られるわけではない。また、ＣＰＵ１０６は、オンチップエミュレータ１００の全体を統括管理する。
【００２７】
一方、本実施の形態に係るＭＣＵ１０は、通信装置１２、周波数ｆ２のクロック信号ＣＬＫｉを発生させるクロック源１４（図１では「ＯＳＣ」と表記）、ＣＰＵ１６、および監視回路２０を含んで構成されている。
【００２８】
通信装置１２はＭＣＵ１０に内蔵された調歩同期方式の通信装置であり、通信データの送信線と受信線とが共用化され、ＭＣＵ１０におけるデバッグ専用端子の削減が図られている。そのため、通信装置１２は、送信モードと受信モードとを切り換えてオンチップエミュレータ１００との通信を行う。通信装置１２は、コネクタＣＮ２に配置されたデータ送受信用のＲＸＤ／ＴＸＤ端子、クロック信号およびリセット信号を受信するＣＬＫ／ＲＥＳＥＴ端子（本実施の形態では常態において使用しない）、およびオンチップエミュレータ１００から電源の供給を受けるＶＣＣ端子、ＶＳＳ端子を有している。本実施の形態では、一例として、ＭＣＵ１０の電源ＶＣＣは正電源であり、電源ＶＳＳはグランド（ＧＮＤ）である。なお、本実施の形態では、電源ＶＣＣ、ＶＳＳの各々はオンチップエミュレータ１００から供給される構成としているが、ＭＣＵ１０の電源は必ずしもオンチップエミュレータ１００から供給される必要はなく、外部からＭＣＵ１０に直接供給されるようにしてもよい。
【００２９】
本実施の形態に係るクロック源１４で発生されたクロック信号ＣＬＫｉは、通信装置１２における調歩同期式通信に使用される通信クロック信号である。従って、本実施の形態では、クロック源１４の周波数ｆ２（通信周波数）を、オンチップエミュレータ１００のクロック源１０４の周波数ｆ１（通信周波数）と同じ周波数としている（ｆ１≒ｆ２）。
むろん、これに限られず、ＭＣＵ１０の通信周波数ｆ２をクロック源１０４の通信周波数ｆ１と異なる周波数としてもよい。また、ＣＰＵ１６は、オンチップエミュレータ１００の全体を統括管理する。
【００３０】
監視回路２０は、通信装置１２から受信データ信号ＲＤを受け、クロック源１４からクロック信号ＣＬＫｉを受け、これらの信号に基づいて受信データ信号ＲＤを監視し、所定の条件が充足された場合に通信装置１２をリセット（初期化）するためのリセット信号ＲＳＴを発生させる。図１では便宜的に通信装置１２と監視回路２０とを分離して図示しているが、両者は実質的に一体として動作する回路であり、監視回路２０を通信装置１２に内蔵させてもよい。監視回路２０の詳細については後述する。
【００３１】
次に、ＭＣＵ１０における通信装置１２のインタフェースについて、より詳細に説明する。本実施の形態に係る通信装置１２では、上述のように調歩同期式通信を採用して送信データ信号線と受信データ信号線とを共有化（双方向化）し、データ信号線を１本とすることによりＭＣＵ１０におけるデバッグ専用の端子数の削減を図っている。以下、この１本のデータ信号線をＵＡＲＴ  ＩＦ（Ｉｎｔｅｒｆａｃｅ）という場合がある。本実施の形態に係る監視回路２０は、このＵＡＲＴ  ＩＦを利用して、オンチップエミュレータ１００からＭＣＵ１０をソフトウェア的にリセットすることを可能としている。
【００３２】
本実施の形態では、さらにＣＬＫ端子とＲＥＳＥＴ端子とを共用化して、ＭＣＵ１０のデバッグ専用端子数の節約を図り、ＭＣＵ１０が搭載された実機で用いられるＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）の端子数を増やしている。しかしながら、さらなる端子の節約という理由と、以下に述べる理由とにより、オンチップエミュレータ１００とＭＣＵ１０との間の信号線を２本（ＲＸＤ／ＴＸＤ（ＵＡＲＴ  ＩＦ）線、ＣＬＫ／ＲＥＳＥＴ線）からさらにＵＡＲＴ  ＩＦの１本だけにしている。
【００３３】
すなわち、一般にＲＥＳＥＴ端子にはノイズの除去やパワーオンリセットを目的としたフィルタが挿入されることが多く、そのためＲＥＳＥＴ端子に印加する信号の速度が制限される。その結果、ＣＬＫ端子とＲＥＳＥＴ端子とを共用化するとＣＬＫ端子から送るクロック信号の高速化が図れず、同期通信を用いる意義が薄れるからである。そのため、本実施の形態では、通信線としてクロック信号の伝送が不要なＵＡＲＴ  ＩＦの１本のみを用い、かつオンチップエミュレータ１００からＭＣＵ１０へのリセット要求をこのＵＡＲＴ  ＩＦを用いて行うように構成している。リセット要求を認識したＭＣＵ１０は自身をリセットする。自身のリセットとともに、リセット要求を認識したことをオンチップエミュレータ１００に返送するようにしてもよい。
【００３４】
次に、図２を参照し調歩同期式通信で使用するフレーム構成について説明する。図２は、調歩同期式通信で採用されている１フレームの構成（図２では「シリアルデータ」と表記）を内部クロック（通信クロック）とともに示した図である。図２に示すように、調歩同期式通信では１回に送るデータを７ビットあるいは８ビットとし（図２では、Ｄ０ないしＤ８の８ビットとしている）、このデータの前後にスタートビットとストップビットを挟みこむことで、１回の送受信が行われる。このスタートビットからストップビットまでの１組の配列が「１フレーム」（または、「１キャラクタ」）と呼ばれている。
【００３５】
スタートビットは１ビット固定であるのに対し、ストップビットは１ビットまたは２ビットとされ（図２に示す例では２ビット）、かつスタートビットとは別の極性の信号とされる。つまり、スタートビットがロウレベル（以下、「Ｌ」）ならばストップビットはハイレベル（以下、「Ｈ」）であり、スタートビットがＨならばストップビットはＬである。データビット（Ｄ０〜Ｄ８）の後にパリティビットが付加される場合もある。なお、以下ではスタートビットをＬ、ストップビットをＨとして説明している。
【００３６】
図２における内部クロックは、図１のクロック信号ＣＬＫｉを示している。本実施の形態では、上述したように、オンチップエミュレータ１００とＭＣＵ１０との間でクロック信号のやり取りを行わない。そのため、図１に示すように、オンチップエミュレータ１００とＭＣＵ１０とは個別にクロック源（クロック源１０４とクロック源１４）を備えている。
【００３７】
調歩同期式通信では、まず送信側がスタートビットを送出すると、受信側は内部クロックの周期で受信したデータ（受信データ信号ＲＤ）の極性を判別し、ＨからＬに変化したことを検出すると送受信動作を開始する。受信データ信号ＲＤの１ビットの幅は内部クロックのサイクル数で予め設定しておく。このサイクル数が送受信のスピード、すなわちボーレートになる。送信側と受信側でこのボーレートを一致させておくことが必要である。
【００３８】
次に、通信装置１２においてリセット（初期化）処理が必要となる場合について説明する。調歩同期式通信ではクロック信号の伝送がないため、通信を行う両端の装置の双方がクロック源（発振回路）を備えている必要がある。正常な通信が行われるためには双方の発振回路の周波数が一致している必要があるため、双方の発振回路には高い精度、例えば周波数変動で５％以内という精度が要求される。しかしながら、発振回路の周波数精度が５％の精度であっても、図２に示すように、調歩同期式通信の１フレームは約１０ビットであるので、５％のずれが蓄積すると１フレームの終端付近では５０％を越えてしまう。
周波数のずれが５０％を越えると、受信側において受信データを取りこぼす可能性が発生する。従って、クロック信号のずれを監視し、クロック信号のずれが許容範囲外となるつどボーレートの補正を行う必要が生ずる。
【００３９】
また、上記のボーレートの補正は比較的微小な範囲の調整ですむが、ボーレート自体の再設定が必要になる場合も考えられる。例えば、ボーレート設定用レジスタにノイズが混入し、ボーレート設定用レジスタのレジスタ値が変化してしまうような場合である。このような場合には、オンチップエミュレータ１００とＭＣＵ１０との間でボーレートが大きくずれ、もはやオンチップエミュレータ１００とＭＣＵ１０との間の通信が不可能になってしまうことも想定される。
【００４０】
さらに、調歩同期式通信では送信線、受信線が共用化されているため、どちらが受信中でどちらが送信中であるかを示すステート（状態）、処理中であることを示すＢＵＳＹ（ビジー）ステート、応答待ちを示すＲＥＡＤＹ（レディ）ステートなどのステートを持つ。しかしながら、このステートを管理するステートマシンの状態にずれが生じたり、あるいは何らかの原因でステートマシンにおけるステートが不明となった場合には、ＵＡＲＴ  ＩＦの両端の装置がお互いを認識できない状態に陥ることも想定される。
【００４１】
しかしながら、本実施の形態に係るデバッグシステム１では、オンチップエミュレータ１００とＭＣＵ１０との間の接続がＵＡＲＴ  ＩＦの１本であるため、上記のような状況が発生した場合にオンチップエミュレータ１００とＭＣＵ１０との間の通信を回復する手段がない。
【００４２】
上記のような場合に対応する手段のひとつとして、通信状態監視の一手段であるウォッチドッグタイマを用いることも考えられる。ウォッチドッグタイマを用いた監視では、通信状態の正常動作を監視するためにオンチップエミュレータ１００からＭＣＵ１０に一定周期の信号を送信し、ＭＣＵ１０に内蔵したウォッチドッグタイマをリセットする。通信状態が異常となりＭＣＵ１０が一定時間以内に信号を送れなくなると、ウォッチドッグタイマがタイムアップするので、このタイムアップを契機としオンチップエミュレータ１００がＭＣＵ１０に向けリセットの指示を発出して初期化させる。
【００４３】
しかしながら、上記のウォッチドッグタイマによる監視では定期的な通信により解除処理を行なわなければならないが、そもそも通信手段が確立していない状態では解除処理ができない。また、どこでリセットがかかったかオンチップエミュレータ１００が判断できないという問題がある。さらに、一般にウォッチドッグタイマによる監視では監視時間が長く、またＭＣＵ１０の全体がリセットされるのみで、通信装置１２のみをリセットするという処理ができないという問題もある。
【００４４】
単にリセットするだけならば、ＭＣＵ１０に備えられたハードウェアリセットであるＣＬＫ／ＲＥＳＥＴ端子（図１参照）を使用することも考えられる。しかしながら、このハードウェアリセットもＭＣＵ１０全体のリセットである。例えば、ＵＡＲＴ  ＩＦを介した通信をともなうデバッグ過程において、ＭＣＵ１０が有するＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等に重要なパラメータが記憶されているような場合には、ＭＣＵ１０全体のリセットを行うことはデバッグの効率を大きく損ねる。
【００４５】
これに対し、本実施の形態に係るＭＣＵ１０では、通信装置１２のみをリセットすることが可能となっているので、デバッグの効率を向上させることができる。また、ＵＡＲＴ  ＩＦを使用してリセット処理を行うため、オンチップエミュレータ１００のリセット端子の接続を省略することも可能となっている。なお、本実施の形態では、ＭＣＵ１０のリセット処理においては通信装置１２のみをリセットする形態を例示して説明するが、これに限られず、ＭＣＵ１０内の他の回路をリセットすることとしてもよいし、またリセット信号をオンチップエミュレータ１００に送信するようにしてもよい。
【００４６】
次に、図３および図４を参照し、本実施の形態に係る監視回路２０についてより詳細に説明する。図３は監視回路２０の一例を示す回路図であり、図４は監視回路２０の各節点の動作波形を示すタイミングチャートである。ＭＣＵ１０に搭載された監視回路２０は、ＵＡＲＴ  ＩＦの受信データ信号ＲＤを監視し、所定の条件を充足する場合にオンチップエミュレータ１００から初期化（リセット）の指示（リセット指示信号）が発出されたと判断し、主として通信装置１２を初期化する機能を有している。
【００４７】
図３に示すように、監視回路２０は、カウンタ２２、フリップフロップ２４、比較器２６、ＡＮＤ回路２８、インバータ３０、ＯＲ回路３２、３４、３６を含んで構成されている。図１に示すＲＸＤ／ＴＸＤ端子を介して受信された受信データ信号ＲＤは、ＡＮＤ回路２８の反転入力と、ＯＲ回路３２、３４に入力される。また、上述したクロック信号ＣＬＫｉがカウンタ２２、フリップフロップ２４に入力される。受信データ信号ＲＤの監視において所定の条件が充足された場合には、インバータ３０から通信装置１２をリセットさせるリセット信号ＲＳＴが出力される。本実施の形態では、リセット信号ＲＳＴはＬで有効とされている（アクティブＬ）。
【００４８】
カウンタ２２は、受信データ信号ＲＤにおける予め定められた極性（本実施の形態ではこの極性をＬとしている）の連続期間を監視するカウンタであり、本実施の形態では一例として１２ビットカウンタとしている。本実施の形態では、この連続期間の監視をカウンタ２２のクロック入力に入力されたクロック信号ＣＬＫｉのパルス数によって行っている。カウンタ２２のＵＰ入力には監視対象である受信データ信号ＲＤが入力され、Ｒ（同期）入力にはカウンタ２２のカウント値のクリア信号が入力される。
【００４９】
比較器２６は、カウンタ２２によるカウント信号（カウント値を示す信号）と予め定められた設定値とを比較し、カウント値が設定値に達した場合にカウント終了信号を発出する。図３では、カウンタのカウント信号を符号ＣＶで示し、カウント値の予め定められた設定値を符号ＯＦｒｅｆで示し、カウント終了信号を符号ＣＥで示している。なお、本実施の形態では、カウント終了信号ＣＥの極性をＨで有効としている（アクティブＨ）。また、設定値ＯＦｒｅｆの値を例えば４０９６としている。すなわち、本実施の形態では、受信データ信号ＲＤのＬがクロック信号ＣＬＫｉの４０９６周期以上継続した場合に、リセット信号ＲＳＴが発出される。
【００５０】
フリップフロップ２４は、比較器２６による比較結果を格納する。カウンタ２２のリセット入力Ｒとフリップフロップ２４のリセット入力Ｒに入力されているリセット信号ＩＣＥ  ＲＳＴは、監視回路２０をリセットさせるための信号である。
【００５１】
ＡＮＤ回路２８は、受信データ信号ＲＤがＬでありかつカウント終了信号ＣＥがＨの場合にフリップフロップ２４のＱ出力をＨとする。このフリップフロップ２４のＱ出力からリセット信号ＲＳＴの補信号（ＲＳＴ＿ＢＡＲ）が出力される。フリップフロップ２４のＱ出力はインバータ３０により反転され、リセット信号ＲＳＴとして通信装置１２に入力される（図１参照）。ＯＲ回路３６は、フリップフロップ２４のＱ出力を帰還させてカウント終了信号ＣＥとの論理和をとることによりＨを維持させる。
【００５２】
ＯＲ回路３４は、受信データ信号ＲＤとフリップフロップ２４のＱ出力との論理和をとることにより、カウント終了信号ＣＥが有効になった場合のカウンタ２２のＵＰ入力の入力値をＬに固定する。ＯＲ回路３２は、受信データ信号ＲＤとフリップフロップ２４のＱ出力との論理和をとることにより、カウント終了信号ＣＥが有効になった場合にカウンタ２２のＲ（同期）入力にカウンタ２２のクリア信号を入力する。
【００５３】
次に、図４に示すタイミングチャートを参照し、監視回路２０の動作についてより詳細に説明する。上述したように、通信装置１２では、ＵＡＲＴ  ＩＦのＲＸＤ／ＴＸＤ端子に入力される信号（受信データ信号ＲＤ）においてＨからＬへの遷移が検出されるとスタートビットが受信されたものと認識し、ストップビットのＨが検出されるまで受信処理を行う。
【００５４】
監視回路２０は、受信データ信号ＲＤを受信しつつ、オンチップエミュレータ１００からリセットの指示を示す信号（リセット指示信号）の監視を行う。すなわち、受信データ信号ＲＤがＬになったことを検出すると、カウンタ２２のカウント値が１だけカウントアップする。上述したように、このカウンタ２２によるカウントは、クロック信号ＣＬＫｉのパルス数を計数することによって行う。本実施の形態では、クロック信号ＣＬＫｉを通信装置１２の通信に用いるクロック（ボーレートカウンタ用クロック、あるいはサンプリングクロック等の通信クロック）としている。しかしながら、これに限られず、通信クロックとは独立した周波数の異なるクロック源によるクロックを用いてもよい。通信装置自身のクロックが停止すると自動的に本回路も停止に陥るため、別系統のクロックの方がより好ましい。
【００５５】
図４に示す動作例では、時刻ｔ１において受信データ信号ＲＤのＨからＬへの遷移が検出されたためカウンタ２２がカウントを開始し、カウント値ＣＶがカウントアップされている。受信データ信号ＲＤがＬであるかぎりこのカウントアップが継続される。しかしながら、カウントの途中の時刻ｔ２において受信データ信号ＲＤがＬからＨに遷移したため、カウンタ２２がリセット（クリア）され、時刻ｔ３においてカウント値が破棄され０に戻っている。ＵＡＲＴ  ＩＦで通常のデータ信号を受信している場合には、常時このカウンタ２２のクリアが行われている。
【００５６】
時刻ｔ４で受信データ信号ＲＤが再びＨからＬに遷移したので、カウンタ２２によるカウントが再開されている。そして、時刻ｔ５においてカウント値が設定値ＯＦｒｅｆ＝４０９６に達したのでカウント終了信号ＣＥがＬからＨに変化する（活性化する）。次のクロックサイクルでフリップフロップ２４のＱ出力がＨにセットされ、リセット信号ＲＳＴがＬに変化し、リセット信号ＲＳＴが有効になる（活性化する）。その後、時刻ｔ６でカウンタが０にクリアされ、時刻ｔ７で受信データ信号ＲＤがＨになったので、これを受けリセット信号ＲＳＴがＨとされる（非活性化される）。
【００５７】
なお、本実施の形態では、受信データ信号ＲＤにおいて、クロック信号ＣＬＫｉの４０９６周期分のＬが継続された場合（図４では、検出時間Ｔｐとして示している）にリセット信号ＲＳＴを発出するようにしている。しかしながら、検出時間Ｔｐの設定はこれに限られるものではなく、設計条件等に応じて４０９６周期より多くしても少なくしてもよい。ただし、検出時間Ｔｐは、少なくともＵＡＲＴ  ＩＦの１フレームの時間よりも長くし、通常のデータ信号と区別が可能なようにしておく必要がある。
【００５８】
例えば、一例としてクロック信号ＣＬＫｉの周波数を時計などと同じ３２７６８Ｈｚとした場合、検出時間Ｔｐは１２５ｍｓ（ｍｉｌｌｉｓｅｃｏｎｄ：ミリ秒）以上とする必要がある（４０９６／３２７６８＝１２５ｍｓ）。ちなみに、検出時間Ｔｐを１フレーム分とすると１フレームが１２５ｍｓとなり、１フレームが図２に示すように１２ビットであるとすると、ＵＡＲＴ  ＩＦにおけるボーレートは９６（＝１２／０．１２５）ｂｐｓ（ｂｉｔ  ｐｅｒ  ｓｅｃｏｎｄ）となる。
【００５９】
以上詳述したように、本実施の形態に係るデバッグシステム１では、オンチップエミュレータ１００が所定の事象（例えば、ＭＣＵ１０の認識ができなくなる事象等）を検出し、リセット（初期化）が必要と判断した場合には、通信装置１０２によりＵＡＲＴ  ＩＦの送信データ信号ＳＤを強制的にＬに固定してリセット指示信号を発出することにより、通信装置１２がどのような状況下にあっても、ＭＣＵ１０をリセット（初期化）させることが可能となる。なお、本実施の形態でいう初期化にはボーレートの設定も含まれる。
【００６０】
以下、オンチップエミュレータ１００からＵＡＲＴ  ＩＦを介して送信されるリセット指示信号と、ＭＣＵ１０における処理との関係について補足する。まず、ＭＣＵ１０が受信待ち状態の場合、オンチップエミュレータ１００からＬ固定のリセット指示信号を受け取ると、ＭＣＵ１０は受信データ信号ＲＤの到来と認識するが、Ｈのストップビット（図２参照）が受信されないのでフレーミングエラーとして処理する。従って、リセット指示信号がデータ信号と誤認されることはない。
【００６１】
一方、ＭＣＵ１０が送信状態となっている場合においてリセット指示信号を受け取った場合、送信データがＬであれば問題ないが、送信データがＨの場合リセット指示信号のＬと衝突する。この場合の対策として図５（ａ）に示すように、ＲＸＤ／ＴＸＤ端子をプルアップ抵抗Ｒｕで高電位側（本実施の形態ではＶＤＤ側）にプルアップしておくことが考えられる。プルアップによるＨは駆動能力が比較的低いのでオンチップエミュレータ１００からのＬ入力が勝り、リセット指示信号の受信に支障はない。
【００６２】
ＭＣＵ１０のＲＸＤ／ＴＸＤ端子の処理としては上記プルアップに限られず、図５（ｂ）に示すように、プルダウン抵抗Ｒｄで低電位側（本実施の形態ではＶＳＳ側）にプルダウンする処理としてもよい。この場合、ＲＸＤ／ＴＸＤ端子をプルダウン処理することで、オンチップエミュレータ１００とＭＣＵ１０との接続が外れたこと（断線したこと）を検出することも可能となる。すなわち、ＵＡＲＴ  ＩＦにおける通信がアイドル状態では、ＭＣＵ１０は常時Ｈを受信しているが、オンチップエミュレータ１００とＭＣＵ１０との間の通信線が断線するとＲＸＤ／ＴＸＤ端子がＬに張り付き、検出時間Ｔｐの経過の後ＭＣＵ１０は強制的にリセット（初期化）される。この意図しないリセットによって、オンチップエミュレータ１００は通信線における断線の可能性を認識することができる。
【００６３】
［第２の実施の形態］
図６および図７を参照して、本実施の形態に係る監視回路２０ａについて説明する。図６は監視回路２０ａを示す回路図であり、図７は監視回路２０ａの各節点の動作波形を示すタイミングチャートである。監視回路２０ａは、上記の監視回路２０において外乱（ノイズ）に対する耐性を向上させるために、フリップフロップ３８およびＡＮＤ回路４０を含むノイズキャンセラ（外乱キャンセル回路）を追加したものである。従って、監視回路２０と同様の構成には同じ符号を付し、詳細な説明を省略する。
【００６４】
図６に示すように、追加されたフリップフロップ３８のＤ入力には受信データ信号ＲＤが入力され、クロック入力にはインバータ４２を介してクロック信号ＣＬＫｉが入力される。従って、フリップフロップ３８はクロック信号ＣＬＫｉの立下りで動作する。また、フリップフロップ３８のＱ出力は、追加されたＡＮＤ回路４０に入力される。追加されたＡＮＤ回路４０は上記Ｑ出力と受信データ信号ＲＤの論理積をとり、その結果をＯＲ回路３２および３４に入力する。換言すれば、図３に示す監視回路２０では、受信データ信号ＲＤが直接ＯＲ回路３２、３４に入力されるのに対し、監視回路２０ａでは、フリップフロップ３８およびＡＮＤ回路４０で処理された受信データ信号ＲＤがＯＲ回路３２、３４に入力される。
【００６５】
次に、図７を参照して監視回路２０ａの動作について、より詳細に説明する。まず、図７（ａ）を参照して、外乱に対する対策を備えていない監視回路２０の動作について説明する。図７（ａ）に示す例では、時刻ｔ８において受信データ信号ＲＤがＨからＬに遷移したことにより、カウンタ２２がカウントを開始する。しかしながら、サンプリングのタイミングである時刻ｔ１０で外乱Ｎ（ヒゲ）が発生し、受信データ信号ＲＤが瞬間的にＨに戻ったためにカウンタ２２がリセットされ、再びＬになることにより０からカウントを再開している。その後時刻ｔ１１でカウント値が設定値ＯＦｒｅｆに達し、カウント終了信号ＣＥが発生している。以降の動作は図４と同様である。すなわち、外乱に対する対策が施されていない場合には、時刻ｔ８からｔ１０の間のカウンタ２２によるカウントが無駄になり、リセット信号ＲＳＴの発出までに余計な時間がかかることになる。
【００６６】
それに対し、フリップフロップ３８、ＡＮＤ回路４０による外乱キャンセル回路（ノイズキャンセラ）を含む本実施の形態に係る監視回路２０ａでは、外乱Ｎの影響を抑制することができる。すなわち、フリップフロップ３８は、時刻ｔ９におけるクロック信号ＣＬＫｉの立下り時に受信データ信号ＲＤを取り込む。次の半サイクル後の時刻ｔ１０におけるクロック信号ＣＬＫｉの立ち上がり時に、ＡＮＤ回路４０によってフリップフロップ３８のＱ出力と受信データ信号ＲＤとの論理積が演算される。このような動作により、ＡＮＤ回路４０の入力がどちらもＨの場合にかぎりＡＮＤ回路４０の出力がＨになり、カウンタ２２がクリアされる。つまり、図６に示す例では、時刻ｔ９で受信データ信号ＲＤのＬが取り込まれるので、時刻ｔ１０で受信データ信号ＲＤとの論理積をとるとＡＮＤ回路４０はＬを出力し、その結果カウンタ２２はクリアされない。
【００６７】
なお、本実施の形態では、リセットが有効になるまでの間のノイズ対策を例示して説明したが、同様の対策回路を用いることによりリセットが有効となった後、ノイズによりリセットが解除されるのを抑止するようなノイズ対策にも適用可能である。
【００６８】
また、上記各実施の形態では各種信号の極性（例えば、リセット信号ＲＳＴはアクティブＬ等）を指定して説明しているが、これらの極性はあくまで一例であり逆の極性としてもよい。
【符号の説明】
【００６９】
１、２    デバッグシステム
１０      ＭＣＵ
１２      通信装置
１４      クロック源
１６      ＣＰＵ
２０、２０ａ  監視回路
２２      カウンタ
２４      フリップフロップ
２６      比較器
２８      ＡＮＤ回路
３０      インバータ
３２、３４、３６  ＯＲ回路
３８      フリップフロップ
４０      ＡＮＤ回路
４２      インバータ
５０      ＭＣＵ
５２      通信装置
５４      ＣＰＵ
１００    オンチップエミュレータ
１０２    通信装置
１０４    クロック源
１０６    ＣＰＵ
ＣＬＫｅ、ＣＬＫｉ  クロック信号
ＣＮ１、ＣＮ２、ＣＮ３、ＣＮ４  コネクタ
ＲＤ      受信データ信号
Ｒｕ      プルアップ抵抗
Ｒｄ      プルダウン抵抗
【図１】
2018029285.tif 000003
【図２】
2018029285.tif 000004
【図３】
2018029285.tif 000005
【図４】
2018029285.tif 000006
【図５】
2018029285.tif 000007
【図６】
2018029285.tif 000008
【図７】
2018029285.tif 000009
【図８】
2018029285.tif 000010