(57)【要約】【課題】ＭＣＵによるオンチップデバッグ機能との通信における、取り込みタイミングの自動認識処理において、ＭＣＵの入力特性に依存して取り込みタイミングに誤差が生じるのを防ぐことを目的とする。【解決手段】本発明のインターフェース２０は、外部信号線に接続される入力端子３０、入力端子３０に入力される入力信号の第１の立ち下がりから、当該第１の立ち下がりの次の第２の立ち下がりまでの期間を計測するカウンタ２３、カウンタ２３の計測結果に基づき、入力信号の取り込みタイミングを生成するカウンタ２７を備えて構成される。【選択図】  図３
2009017361.tif 000002
【特許請求の範囲】
【請求項１】
外部信号線に接続される信号端子と、
前記信号端子に入力される入力信号の第１の立ち下がりから、当該第１の立ち下がりの次の第２の立ち下がりまでの期間を計測する計測手段と、
前記計測手段の計測結果に基づき、前記入力信号の取り込みタイミングを生成するタイミング生成手段と、
を備える、インターフェース。
【請求項２】
前記入力信号として、Ｌ期間：Ｈ期間＝１：１で始まり、その次のデータビットがＬとなる計測用の通信パターンが与えられる、
請求項１に記載のインターフェース。
【請求項３】
前記計測手段は、前記入力信号の前記第１の立ち下がりから前記第２の立ち下がりまでをカウントする第１のカウンタを備える、
請求項１または請求項２に記載のインターフェース。
【請求項４】
前記タイミング生成手段は、前記第１のカウンタのカウント値に応じた値を設定される第２のカウンタを備える、
請求項３に記載のインターフェース。
【請求項５】
前記第１のカウンタおよび前記第２のカウンタは内部クロックにより駆動される、
請求項４に記載のインターフェース。
【請求項６】
前記第１のカウンタはインクリメントカウンタであり、
前記第２のカウンタはデクリメントカウンタである、
請求項４または請求項５に記載のインターフェース。
【請求項７】
前記第１のカウンタは、前記入力信号の前記第２の立ち下がりまでをカウントした後、カウント動作を停止する、
請求項６に記載のインターフェース。
【請求項８】
前記第２のカウンタは、前記第１のカウンタのカウント値の１/２または１/４が設定される、
請求項６または請求項７に記載のインターフェース。
【請求項９】
前記第２のカウンタは、前記入力信号の前記第１の立ち下がりと前記第２の立ち下がりとの間の立ち上がりに応答して前記第１のカウンタのカウント値の１/２が設定され、その後、前記入力信号の前記第２の立ち下がり前に０までデクリメントしたとき前記第１のカウンタのカウント値の１/２が再設定される、
請求項８に記載のインターフェース。
【請求項１０】
前記第２のカウンタは、前記再設定後、０までデクリメントする前に前記入力信号の前記第２の立ち下がりがあったとき前記第１のカウンタのカウント値の１/４が設定され、その後０までデクリメントした時点が前記入力信号の取り込みタイミングとして規定される、
請求項９に記載のインターフェース。
【請求項１１】
前記第２のカウンタは、前記入力信号の取り込みタイミングにおいて、前記第１のカウンタのカウント値の１/２が設定され、その後０までデクリメントした時点が前記入力信号の次の取り込みタイミングとして規定され、以後これが繰り返されて前記入力信号の取り込みタイミングが順次発生される、
請求項１０に記載のインターフェース。
【請求項１２】
前記取り込みタイミングに同期して取り込まれた前記入力信号の所定ビット数のビット列を保持するデータ保持手段と、
前記データ保持手段に保持された前記ビット列が予め定められた期待値に一致するかどうかを判別する判別手段と、
をさらに備える、請求項１から請求項１１のいずれかに記載のインターフェース。
【請求項１３】
前記第１のカウンタのカウント値を外部に読み出す読み出し手段と、
外部からの通知に応じ前記第１のカウンタに所望の値を設定する設定手段と、
をさらに備える、請求項１から請求項１２のいずれかに記載のインターフェース。
【請求項１４】
前記読み出し手段により前記第１のカウンタのカウント値を外部に読み出した後、外部からの通知に応じ前記設定手段により前記第１のカウンタに前記カウント値よりも小さな値が設定される、
請求項１３に記載のインターフェース。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力信号の取り込みタイミングを生成する手段を備えた、インターフェースに関する。
【背景技術】
【０００２】
オンチップデバッグ機能を搭載したマイクロコントローラ（以下、ＭＣＵとする。）チップとの通信には、ＪＴＡＧ（ＩＥＥＥ−１１４９．１）が一般的に用いられているが、この場合ＭＣＵ側におけるデバッグ用端子として、少なくともクロック（ＴＣＫ）、データ入力（ＴＤＩ）、モード選択（ＴＭＳ）、データ出力（ＴＤＯ）の４端子を必要とする。
【０００３】
しかし、ピン数の少ないＭＣＵでは、コストアップを防止するため、デバッグ用端子を機能兼用端子とすることがあり、この場合デバッグ時においてその端子の機能が使用できなくなってしまう。ＪＴＡＧ以外のシリアル通信機能を用いたデバッグインターフェースも用いられているが、一般的なクロック同期型通信では、少なくともクロックとデータの２端子を必要とする。
【０００４】
これらに対し、非同期シリアルとも呼ばれる調歩同期式シリアル通信方式を使用し、かつ送受信を同時に行なわない半二重通信を使用すれば、通信データの１端子で双方向通信が可能である。
【０００５】
しかし、上述したような調歩同期式シリアル通信方式および半二重通信を使用した場合は、通信速度（以下、通信レートとする。）を、あらかじめ通信するＭＣＵおよびホスト側通信装置との間で取り決めておく必要がある。ここで、ＭＣＵのクロック源として何を使うかは、ＭＣＵの使い方に依存しており、一つのクロック源のみでその周波数が規定されるとは限らず、またＭＣＵ上動作しているプログラムやハードウエアによって該周波数を知る手段はない。従って、取り込みタイミングをあらかじめ決めておくことは困難である。
【０００６】
通信レートを計測する方法としては、ソフトウエアの処理により行われるものがある。また、その他の方法が、以下の特許文献に示されている。これらの文献には、信号に付加されたスタートビットにおける、立ち下がりから立ち上がりまでの期間を利用し、通信レートを計測する方法が示されている。
【０００７】
【特許文献１】特開平４−１６７７３８号公報
【特許文献２】特開平８−１７２４３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、ホスト側通信機器およびＭＣＵにおける外部信号線に接続される信号端子部について、通信信号の双方向通信を安全に行なうため、オープンドレイン出力とし、かつＨレベルをプルアップ抵抗により確保する方式を用いた場合、Ｈ→Ｌの信号変化に対して、Ｌ→Ｈの信号変化は外部信号線の浮遊容量をプルアップ抵抗でのみ充電されるため、信号レベルの変化が緩慢になる可能性が高い。したがって、ＭＣＵ側の入力特性（入力閾値）に依存してＨ／Ｌとして認識される幅が変化し、信号のＨ期間あるいはＬ期間のみからは、通信レートが正常に計測されないという問題点があった。また、取り込みタイミングの生成についてソフトウエアによる処理が必要な方法においては、そのためのソフトウエアを用意する必要があるという問題点があった。
【０００９】
この発明は上記のような問題点を解消するためになされたもので、ＭＣＵのクロック源の周波数が分からない場合について、デバッグ対象として制御したいＭＣＵの中央処理装置（以下、ＣＰＵとする。）を動作させてソフトウエア処理を行なうこと無く、１端子による通信路でも通信レートを自動計測してオンチップデバッグ機能との通信をおこなうことを可能にすることを目的とする。さらに、ＭＣＵ側の入力特性に依存して信号のＨ／Ｌとして認識される幅が変化してしまい、自動計測される通信レートに誤差が生じるのを防ぐことを目的とする。
【課題を解決するための手段】
【００１０】
本発明のインターフェースは、外部信号線に接続される信号端子、前記信号端子に入力される入力信号の第１の立ち下がりから、当該第１の立ち下がりの次の第２の立ち下がりまでの期間を計測する計測手段、前記計測手段の計測結果に基づき、前記入力信号の通信レートに適切な取り込みタイミングを生成するタイミング生成手段を備えて構成される。
【発明の効果】
【００１１】
ＭＣＵのオンチップデバッグ機能を使うための通信において、ＭＣＵのクロック源の周波数が分からない場合であっても、デバッグ対象として制御したいＭＣＵ内のＣＰＵを動作させてソフトウエア処理を行なうことなく、通信を行なうことが可能である。また、１端子による双方向通信に用いられるプルアップ抵抗を用いた通信手段で問題となる、ＭＣＵ側の入力特性に依存して信号のＨ／Ｌとして認識される幅が変化しても、信号の立下りタイミングのみを用いて計測を行なうので、自動計測される通信レートに誤差が生じることを防ぐことが可能である。
【発明を実施するための最良の形態】
【００１２】
以下、この発明をその実施の形態を示す図面に基づいて具体的に説明する。
【００１３】
＜実施の形態１＞
（構成）
図１は、本実施の形態に係るデバッグ処理が行われる機器の、全体構成を示す図である。
【００１４】
ホスト側通信装置１は入出力端子５を有し、入出力端子５は、ホスト側通信装置１内部の入力バッファ３の入力部、トライステートバッファ４の出力部と接続されている。トライステートバッファ４の出力部は、Ｌｏｗあるいはハイ・インピーダンスの信号を出力する。
【００１５】
また、図示していないが、ホスト側通信装置１内部において、ビット列パターンとしてＬ（スタートビット）、Ｈ（データビット０）、Ｌ（データビット１）の順で始まり、データビット７まで有する計測用の通信パターンを出力する機能を有する。
【００１６】
また、オンチップデバッグ機能を備えたＭＣＵ２は入出力端子（信号端子）９を有し、入出力端子９は、ＭＣＵ２内部の入力バッファ１０の入力部、およびオープンドレイントランジスタ１２のドレイン端子と接続されている。オープンドレイントランジスタ１２のソース端子はグランドに接続され、ゲート端子は出力バッファ１１の出力端子と接続されている。
【００１７】
ホスト側通信装置１の入出力端子５とＭＣＵ２の入出力端子９は、外部信号線８に接続されており、外部信号線８は浮遊容量６を有している。また、外部信号線８には、プルアップ抵抗７が接続されている。
【００１８】
次に、ＭＣＵ２の内部に設置され、入力信号の通信レートを計測し通信データをとりだす処理を行うインターフェース２０（図１には図示せず。）の構成について、図３により説明を行う。
【００１９】
インターフェース２０は入力端子３０を備えており、図１に示すホスト側通信装置１から出力された信号が、外部信号線８、ＭＣＵ２の入出力端子９および入力バッファ１０を介して入力される端子である。
【００２０】
入力端子３０は制御部２１の入力端子、およびシフトレジスタ３３を形成するフリップフロップ３３０の入力端子に接続される。シフトレジスタ３３は、フリップフロップ３３０〜３３７により構成される。フリップフロップ３３０〜３３７のクロック端子は、制御部２１の出力端子と接続される。
【００２１】
フリップフロップ３３０の出力端子はセレクタ３２を介してフリップフロップ３３１の入力端子と接続されており、セレクタ３２は、制御部２１の出力端子とも接続されている。また、フリップフロップ３３１の出力端子はフリップフロップ３３２の入力端子と接続されており、フリップフロップ３３２〜３３７について同様の構成で入力端子と出力端子が接続されている。各フリップフロップの出力端子は、８ビットのバス配線３１を介して、ＭＣＵ２の内部に接続されている。
【００２２】
また、インターフェース２０はセレクタ２２を有し、セレクタ２２の入力端子は制御部２１の出力端子、および第１のカウンタ２３（インクリメントカウンタ）の出力端子と接続されている。セレクタ２２の出力端子は、第１のカウンタ２３の入力端子と接続されている。
【００２３】
第１のカウンタ２３の出力端子は上述したセレクタ２２の入力端子の他に、除算回路２４，２５の入力端子とも接続される。除算回路２４，２５の出力端子はセレクタ２６の入力端子と接続され、セレクタ２６の出力端子は第２のカウンタ２７（デクリメントカウンタ）の入力端子、および比較回路２８の入力端子と接続される。比較回路２８は、セレクタ２６の出力信号が０と等しいかの比較を行う回路である。また、第１のカウンタ２３、第２のカウンタ２７は、ともにＭＣＵ２の内部クロックにより駆動される。
【００２４】
比較回路２８の出力端子は、検出回路２９の入力端子と接続される。検出回路２９は、ＭＣＵ２の内部クロックにより駆動され、比較回路２８の比較結果に応じた信号を出力する回路である。検出回路２９の出力端子は制御部２１の入力端子と接続される。また、第２のカウンタ２７の出力端子はセレクタ２６の入力端子と接続される。
【００２５】
（動作）
次に、本実施の形態におけるオンチップデバッグ機能を使うための通信時の動作説明を行う。
【００２６】
図１に示すホスト側通信装置１からデバッグ機能との通信に使用される通信パターンが送信され、ＭＣＵ２に入力信号として入力された後、ＭＣＵ２においてオンチップデバッグ機能に対する操作や応答が通信信号線を介して行われる。本実施の形態においては、最初に入力信号の通信レートを計測する処理が行われる。まず、このときの動作について、図１〜図８により説明を行う。
【００２７】
通信レートを計測するための通信パターンが、図１に示すホスト側通信装置１からＭＣＵ２に送信され、図３におけるインターフェース２０の入力端子３０に、入力信号として入力される。図４は、スタートビットが０（Ｌ）、データビット０が１（Ｈ）、データビット１が０（Ｌ）の、データ長８ビット、パリティ付加なし、ストップビット長１、ＬＳＢファーストである調歩同期式シリアル通信の入力信号により、通信レートを計測するときの、第１のカウンタ２３および第２のカウンタ２７の動作を示す図である。
【００２８】
上述したように、入力信号には、Ｌ期間：Ｈ期間＝１：１で始まり、その次のデータビットがＬとなる計測用の通信パターンが与えられる。なお、ＭＣＵ２はホスト側通信装置１とは無関係の周波数の内部クロックを有し、該クロックは例えばユーザにより任意に外部から入力される信号に基づいて生成される。
【００２９】
図４に示すように、内部クロックにより駆動される第１のカウンタ２３は、０で初期化されている状態からスタートされ、スタートビットの開始時点の入力信号の立ち下がり（第１の立ち下がり）が制御部２１により検出された時点（タイミング４０）から、カウント値がインクリメント、すなわち＋１ずつ増加されていく。
【００３０】
スタートビットからデータビット０に切り替わる時点、すなわち入力信号が立ち上った時点（タイミング４１）における、第１のカウンタ２３のカウント値をｘとする。この時点において、除算回路２４およびセレクタ２６により、第２のカウンタ２７に第１のカウンタ２３のカウント値ｘの１／２、すなわち０．５ｘが初期値（カウント値）として設定される。
【００３１】
ここで、入力信号がデータビット１によって立ち下がる時点（タイミング４３）を第２の立ち下がりと定義すると、第２のカウンタ２７は、入力信号の第１の立ち下がりとその次の第２の立ち下がりとの間の立ち上がりに応答して、第一のカウンタ２３のカウント値の１／２が設定されるといえる。なお、除算回路２４は、ビット演算における計算の容易性および回路構成の簡単化のため１／２の除算としているが、それを度外視すれば例えば０．４倍や０．６倍とする回路であってもよい。
【００３２】
この後、第１のカウンタ２３はインクリメントが継続され、第２のカウンタ２７はデクリメント、すなわちカウント値が−１ずつ減少される。
【００３３】
第２のカウンタ２７がデクリメントされ、第２の立ち下がり前に０までデクリメントされたことが比較回路２８および検出回路２９により検出されたとき（タイミング４２）、制御部２１にその旨を示す信号が伝達される。その後、その時点における第１のカウンタ２３のカウント値の１／２が、第２のカウンタ２７の初期値として再設定され、再びデクリメントされる。再設定される時点では、第１のカウンタ２３のカウント値は１．５ｘとなっており、第２のカウンタ２７は０．７５ｘが初期値として再設定される。
【００３４】
その後、第２のカウンタ２７のカウント値が再び０になる時点（タイミング４８）は、入力信号の第１の立ち上がり（タイミング４１）から１．２５ｘとなるので、入力信号のＤｕｔｙ比が正常（５０％）であれば、第２の立ち下がり（タイミング４３）のように、第２のカウンタ２７が０までデクリメントしてしまう前に、入力信号はデータビット１により立ち下がることになる。
【００３５】
また、第１のカウンタ２３は、第２の立ち下がりまでをインクリメント（カウント）した後、インクリメント動作（カウント動作）を停止する。すなわち、第１のカウンタ２３は、入力信号の第１の立ち下がり（タイミング４０）から、第１の立ち下がりの次の第２の立ち下がり（タイミング４３）までの期間をカウント（計測）する計測手段となる。
【００３６】
第１のカウンタ２３の動作が停止したときのカウント値をｙとすると、第２のカウンタ２７は除算回路２５およびセレクタ２６により、その１／４、すなわち０．２５ｙが初期値（カウント値）として再設定され、再びデクリメントされる。データビット１の中央時点（タイミング４４）でカウント値は０となり、この時点が入力信号の取り込みタイミングとして規定される。
【００３７】
すなわち、第２のカウンタ２７は、タイミング４２にて初期値が再設定された後、０までデクリメントする前に入力信号の第２の立ち下がりがあったとき、第１のカウンタ２３のカウント値の１／４が再設定され、さらにその後０までデクリメントした時点が入力信号の取り込みタイミングとして規定される。なお、除算回路２５は、ビット演算における計算の容易性および回路構成の簡単化のため１／４の除算としているが、それを度外視すれば例えば０．２倍や０．３倍とする回路であってもよい。
【００３８】
タイミング４４にて入力信号のデータビット１が取り込まれる。この時シフトレジスタの入力段の次のビット、すなわち図３におけるシフトレジスタ３３１には、取り込まれていないデータビット０の信号を補うため、セレクタ３２により信号１（Ｈ）が同時に入力される。
【００３９】
同時に、第２のカウンタ２７は第１のカウンタ２３のカウント値の１／２、すなわち０．５ｙが初期値として再設定され、その後０までデクリメントした時点（タイミング４５）が入力信号の次の取り込みタイミングとして規定される。以後これが繰り返されて、図４に示す入力信号のデータビット２，…，７がシフトレジスタ３３に取り込まれるタイミングが、順次発生される。
【００４０】
すなわち、第２のカウンタ２７は、第１のカウンタ２３のカウント値（計測結果）に基づき、それに応じた値が設定されることにより、入力信号のタイミングを生成するタイミング生成手段となる。このときのシフトレジスタのシフトクロックが図４に示されている。
【００４１】
入力信号がデータビット７まで取り込まれ、更にタイミング４６にてストップビットが１であることが確認されることにより、８ビット分のデータが有効になったとして扱われる。
【００４２】
図５は、第１，第２のカウンタ２３，２７における、カウント値の変化の具体例を示す図である。なお、図５におけるカウント値は１６進数表記で記述されている。
【００４３】
図４について示した動作と同様に、入力信号の第１の立ち下がり（タイミング４０）から、第１のカウンタ２３はカウント値がインクリメントされる。入力信号の第１の立ち上がり（タイミング４１）における第１のカウンタ２３のカウント値は”０Ｂ”となる。この時点で、除算回路２４により、第２のカウンタ２７には、第１のカウンタ２３のカウント値の１／２、すなわち”０５”が初期値として設定される。その後、第１のカウンタ２３はインクリメントが継続され、カウンタ２９はデクリメントされる。
【００４４】
第２のカウンタ２７が０になった時点（タイミング４２）で、再び第１のカウンタ２３の値”１１”の１／２、すなわち”０８”が第２のカウンタ２７の初期値として再設定され、再びデクリメントされる。
【００４５】
その後、第２のカウンタ２７が０になる前に入力信号が立ち下がったとき（タイミング４３）、第１のカウンタ２３はインクリメント動作が停止され、カウント値”１８”で固定される。第２のカウンタ２７は、”１８”の１／４すなわち”０６”が初期値として再設定される。
【００４６】
また、本実施の形態におけるインターフェース２０は、入力信号が正常であるか否かの判定を行う機能を有している。次にその処理について、図６〜８を用いて説明を行う。図６は、インターフェース２０の動作における状態遷移を示した図である。
【００４７】
ＷＳＴＡＲＴ状態はスタートビットによる第１の立ち下がりを待っている状態であり、第１のカウンタ２３は０に初期化される。ＷＳＴＡＲＴ状態で入力信号が立ち下がると（タイミング４０）、Ｗ１ＲＩＳＥ状態に遷移し、第１のカウンタ２３はインクリメントされる。
【００４８】
Ｗ１ＲＩＳＥ状態で第１のカウンタ２３の最上位ビットが１になった場合は、入力信号におけるスタートビットのＬの幅が計測可能な範囲を超えてしまったことになり、エラーと判断され、入力信号の立ち上がりを待つ状態のＥＲＲＩＳＥに遷移する。ＥＲＲＩＳＥ状態で、入力信号が立ち上がれば自動計測を再び行うようにＷＳＴＡＲＴ状態に遷移する。
【００４９】
Ｗ１ＲＩＳＥ状態で入力信号が立ち上がると（タイミング４１）、Ｗ１ＦＡＬＬ状態に遷移し、その時点で第２のカウンタ２７には、第１のカウンタ２３のカウント値の１／２が初期値として再設定される。
【００５０】
Ｗ１ＦＡＬＬ状態において、第１のカウンタ２３は継続してインクリメントされ、第２のカウンタ２７はデクリメントされる。Ｗ１ＦＡＬＬ状態で第２のカウンタ２７が０になれば（タイミング４２）、Ｗ２ＦＡＬＬ状態に遷移し、その時点で第２のカウンタ２７には、第１のカウンタ２３のカウント値の１／２が初期値として再設定される。
【００５１】
ここで、入力信号のスタートビットおよびデータビット０について、例えば図７に示すように、Ｌ：Ｈ＝１：（０．５以下）の入力信号であった場合、状態遷移図のＷ１ＦＡＬＬ状態において第２のカウンタ２７のカウント値が０になる（タイミング４２）前に、入力信号が立ち下がることになる（タイミング４７）。このときは、Ｄｕｔｙ比が異常であるためエラーと判断され、ＥＲＲＩＳＥ状態に遷移する。
【００５２】
Ｗ２ＦＡＬＬ状態では、第１のカウンタ２３は継続してインクリメントされ、第２のカウンタ２７はデクリメントされる。ここで、Ｗ２ＦＡＬＬ状態で第２のカウンタ２７が０になれば（タイミング４８）、通信レートの計測に失敗したとしてＷＳＴＡＲＴ状態に遷移する。例えば図８に示すように、スタートビットおよびデータビット０がＬ：Ｈ＝１：（１．２５以上）の入力信号であった場合、Ｗ２ＦＡＬＬ状態で第２のカウンタ２７が０になり（タイミング４８）、Ｄｕｔｙ比が異常であるためエラーと判断され、ＷＳＴＡＲＴに遷移する。
【００５３】
図１に示す外部信号線８は浮遊容量６を持ち、ホスト側通信装置１からの入力信号の立ち上がりはプルアップ抵抗７、立ち下がりはトライステートバッファ４のＮチャネルトランジスタによって行われる。ここで、立ち上がりについては、浮遊容量がプルアップ抵抗７でのみ充電されるため、入力信号は図２の信号１５に示すように、立ち上がりがなまる傾向にある。従ってＭＣＵ２の入力特性、すなわち入力閾値に依存してＨ／Ｌとして認識される幅が変化し、特にＨ期間と認識される期間が短くなる傾向にある。例えば、入力閾値が図２に示す入力閾値１４のように低めであればＬ幅１６、Ｈ幅１７として認識され、正常なＤｕｔｙ比に対して誤差は小さいが、入力閾値１３のように高めの特性になると、Ｌ幅１８、Ｈ幅１９のように、Ｈ期間と認識される期間が極端に短くなってしまう。
【００５４】
しかしながら、本実施の形態においてはＬ：Ｈ＝１：（０．５以下）およびＬ：Ｈ＝１：（１．２５以上）であればエラーと判断されるよう設定されており、Ｈ期間が短い場合について、Ｈ期間が長い場合より余裕を持たせた判定が行われるようになっている。
【００５５】
Ｗ２ＦＡＬＬ状態で第２のカウンタ２７が０になる（タイミング４８）前に、入力信号の立ち下がりが発生すれば（タイミング４３）、正常と判断されＡＣＴ状態に遷移し、第１のカウンタ２３のインクリメント動作は停止され、カウント値は固定される。その後は上述したように、該カウント値を用いて入力信号の取り込みが行われる。
【００５６】
上記の方法で正常に通信レートが計測された後は、該通信レートを用いてオンチップデバッグ機能を使うための通信が行われる。
【００５７】
図９は、正常と判断されＡＣＴ状態になった後の、オンチップデバッグ機能との通信時における入力信号と第１，第２のカウンタ２３，２７の動作を示す概念図である。上述したＷ２ＦＡＬＬ状態で入力信号が立ち下がった時点（タイミング４３）のカウント値ｙで第１のカウンタ２３は固定され、第２のカウンタ２７は、その後入力される入力信号のスタートビットの立ち下がり（タイミング５０）で０．２５ｙが取り込まれる。その後第２のカウンタ２７はデクリメントされ、カウンタ値が０になるスタートビットの中央時点（タイミング５１）まで待たれる。その後は、第２のカウンタ２７において０．５ｙのデクリメントが繰り返され、カウント値が０となった時点で順次データが取り込まれる。ストップビットが１であることが確認されて（タイミング５２）、８ビット分のデータが有効になったとして扱われる。このような動作により、正常な取り込みタイミングで８ビットのデータが取得され、ＭＣＵ２においてオンチップデバッグ機能が動作する。
【００５８】
（効果）
入力信号の通信レートに比べ、ＭＣＵ２が十分高い周波数のクロック源で動作されていれば、上述したようにソフトウエアを動作させることなく、入力信号の通信パターンにより通信レートが自動的に計測され、入力信号から正常にデータを取り込むことが可能となる。
【００５９】
また、入力信号の立ち下がりのみを用いて通信レートが計測されており、１端子での双方向通信に用いられる可能性の高い、オープンドレイントランジスタおよびプルアップ抵抗を用いた通信における、信号の立ち上がりがなまりやすいという信号特性に対して、通信レート計測の誤差を小さくする事が可能である。
【００６０】
また、本実施の形態においては、ある程度の誤差を許すＬ幅とＨ幅のＤｕｔｙ比のチェックが簡単な論理で実現されている。許される誤差は通信レートに比例し、またＬ幅が大きくなる方向には許容誤差は大きく、逆にＨ幅が大きくなる方向には小さい許容誤差となっている。従って、この点においても上述した信号特性に適している。
【００６１】
＜実施の形態２＞
（構成）
本実施の形態において、図１に示すＭＣＵ２は、ホスト側通信装置１から送信される特定の通信パターンをあらかじめ期待値として記憶する記憶回路、期待値と入力信号との比較を行う比較回路、および入力信号のストップビット、およびパリティビットが正常な値であるかのチェックを行うチェック回路（いずれも図示せず。）を備える。
【００６２】
また、ホスト側通信装置１は、特定の通信パターンを有した信号を生成する回路、および信号にパリティビットを付加する回路（いずれも図示せず。）を有している。
【００６３】
その他の構成は実施の形態１と同様であるので、ここでの詳細な説明は省略する。
【００６４】
（動作）
次に、本実施の形態におけるオンチップデバッグ機能との通信時の動作の説明を行う。
【００６５】
最初に、入力信号の取り込みタイミングを生成する処理が行われる。この動作について、図１、図３、図１０により説明を行う。
【００６６】
通信レートを計測するための、特定の通信パターンである０ｘ６９（０１１０１００１）が、図１に示すホスト側通信装置１からＭＣＵ２に送信され、図３に示すインターフェース２０の入力端子３０より、入力信号として入力される。該入力信号は、データ長８ビット、パリティ付加あり、ストップビット長１、ＬＳＢファーストの調歩同期式シリアル通信の入力信号である。
【００６７】
図１０は、上述した入力信号により通信レートを計測するときの、第１のカウンタ２３および第２のカウンタ２７の動作を示す図である。
【００６８】
入力信号は、実施の形態１と同様に、第１のカウンタ２３および第２のカウンタ２７を用いて取り込みタイミングが生成され、取り込みタイミングに同期してデータが取り込まれる。ストップビットが入力される時点（タイミング４６）において、シフトレジスタ３３（データ保持手段）を構成するフリップフロップ３３０〜３３７には、８ビットのビット列（０１１０１００１）が保持される。
【００６９】
また、ＭＣＵ２の記憶回路には、上述したビット列の値があらかじめ定められた期待値として保存されており、取り込まれたビット列の値と一致するかどうかの判別が比較回路（判別手段）により行われる。一致しない場合は、再び通信レートを計測する状態に遷移される。
【００７０】
また、入力信号にはパリティビットが付加されており、ＭＣＵ２内のチェック回路によりチェックが行われる。パリティエラー発生により、再び通信レートを計測する状態に遷移される。
【００７１】
入力信号が正常であれば、実施の形態１で示した図６おけるＡＣＴ状態（通信レートの計測が終った状態）に遷移される。しかし、既に通信を行なうことができる状態になったとしても、ストップビットが期待される値である１（Ｈ）ではない場合（フレーミングエラー発生時）は、再び通信レートを計測する状態に遷移される。
【００７２】
（効果）
誤った信号により通信レートを計測してしまうことにより、オンチップデバッグ機能との通信において誤動作が生じるのを防止することが可能であり、エラー発生時は再び通信レートを計測する状態に遷移されることで、ホスト側通信装置１からのリトライでの通信確保を待つことが可能である。
【００７３】
＜実施の形態３＞
（構成）
本実施の形態に係るインターフェース２０の構成図を図１１に示す。セレクタ２２の入力端子が、配線３４（設定手段）によりＭＣＵ２内に設置された内部データバスに接続されており、内部データバスからの信号を入力可能な構成となっている。よって、カウンタ２３へ入力される信号について、セレクタ２２により内部データバスからの値が選択可能な構成となっている。
【００７４】
また、カウンタ２３の出力端子も配線３５（読み出し手段）により内部データバスに接続されており、カウンタ２３のカウント値を内部データバスへ出力可能な構成となっている。
【００７５】
内部データバスのデータは、内部バスアクセスが行われることにより、ＭＣＵ２内の中央処理装置（以下、ＣＰＵとする。）などから値が読み出し可能であり、またＭＣＵ２において入力信号から通信レートが計測され通信可能な状態になった後は、ＭＣＵ２とホスト側通信装置１との間で、内部データバスのデータの通信が可能となる。
【００７６】
したがって、内部データバスを介して、ＭＣＵ２からホスト側通信装置１へカウンタ２３のカウント値を送信、あるいは逆にホスト側通信装置１からの働きかけによりＭＣＵ２側でカウンタ２３のカウント値を設定することが可能な構成となっている。
【００７７】
また、ホスト側通信装置１は、ＭＣＵ２から送信されたカウンタ２３のカウント値に基づき、高速通信用の新たなカウント値を生成する回路（図示せず。）を備える。
【００７８】
その他の構成は実施の形態１と同様であるので、ここでの詳細な説明は省略する。
【００７９】
（動作）
次に、動作の説明を行う。
【００８０】
図１１に示すカウンタ２３において、ｙの値が正常に設定されるまでの動作は、実施の形態１と同様であるため、ここでの詳細な説明は省略する。本実施の形態においては、その後、取り込みタイミングを高速にするための動作が行われる。この動作について、図１１およびその動作のフローチャートを示す図１２を用いて説明を行う。
【００８１】
ＭＣＵ２の内部クロック、すなわちインターフェース２０の動作クロックは１０ＭＨｚ±１０％として、処理がスタートされる（ステップＳ１）。
【００８２】
また、初期の取り込みタイミング、すなわち通信レートを９６００ｂｐｓとする。上述したようにインターフェース２０の動作クロックは、１０ＭＨｚ±１０％、すなわち９ＭＨｚ〜１１ＭＨｚの範囲とする。動作クロックの半周期でカウンタ２３はインクリメントされるとすると、９ＭＨｚのときは、カウンタ２３の値（ｙ）は１８７５±１、１１ＭＨｚのときは、２２９２±１となる。どちらも、９６００ｂｐｓに対して０．０５％程度の誤差で通信可能であり、通信レート９６００ｂｐｓのままで通信され、デバッグに必要な設定が行われる（ステップＳ２）。
【００８３】
その後、配線３５によりカウンタ２３のカウント値（ｙ）が読み出され、内部データバスを介して外部に読み出され、ホスト側通信装置１に通知される。その後、ホスト側通信装置１においてインターフェース２０の動作周波数が計算される。カウント値が１８７５のときは、９６００×（１８７５／２）＝９００００００より９ＭＨｚ、２２９２のときは、９６００×（２２９２／２）＝１１００１６００より１１ＭＨｚとなる。（ステップＳ３）。
【００８４】
次に、通信レートを９６００ｂｐｓから１Ｍｂｐｓまで上げようとした場合（約１０４倍）、ホスト側通信装置１からＭＣＵ２に対して、ステップＳ３で得られたインターフェース２０の動作周波数に応じた値、すなわち９ＭＨｚの場合は１８７５／１０４≒１８、１１ＭＨｚの場合は２２９２／１０４≒２２が、カウンタ２３の初期値として設定されるよう通知される。その後、ＭＣＵ２は前述の外部からの通知に応じ、内部データバスを介して、配線３４によりカウンタ２３に所望の値を設定する。このようにして、ステップＳ３において読み出されたカウント値（１８７５あるいは２２９２）よりも小さな値（１８あるいは２２）が設定される。上記の設定後、ホスト側通信装置１の通信速度は１Ｍｂｐｓに変更される（ステップＳ４）。
【００８５】
以上により、取り込みタイミングを高速にするための処理は終了する（ステップＳ５）。その後は、通信レート１Ｍｂｐｓで入力信号の取り込みが行われる。
【００８６】
（効果）
通信レートを上げて処理を行うことができ、通信の高速化を図ることが可能である。
【００８７】
また、通信レートの計測は低い通信レートで行なわれるため、カウンタ２３のカウント値ｙを大きくとることができ、インターフェース２０の動作クロック周波数を高い精度で知ることができるため、高速通信時の取り込みタイミングの誤差を抑えることが可能である。
【００８８】
＜実施の形態４＞
（構成）
本実施の形態においては、ホスト側通信装置１内部において、図１３の入力信号に示すような、４ビットのＬ（スタートビット、データビット０〜データビット２）、４ビットのＨ（データビット３〜データビット６）、１ビットのＬ（データビット７）の順で構成される計測用の通信パターンを出力する回路を備える。
【００８９】
また、ＭＣＵ２内に設置されるインターフェース２０は、図３に示した１／２用の除算回路２４、１／４用の除算回路２５の他に、１／８用の除算回路および１／１６用の除算回路を新たに備えており、除算回路２４，２５と同様の構成で接続されている。
【００９０】
その他の構成は実施の形態１と同様であるため、ここでの詳細な説明は省略する。
【００９１】
（動作）
次に、本実施の形態におけるオンチップデバッグ機能との通信時の動作の説明を行う。
【００９２】
取り込みタイミングを生成するための通信パターンが、図３におけるインターフェース２０の入力端子３０より、入力信号として入力される。図１３は、スタートビットおよびデータビット０〜２が０（Ｌ）、データビット３〜６が１（Ｈ）、データビット７が０（Ｌ）の、データ長８ビット、パリティ付加なし、ストップビット長１、ＬＳＢファーストである調歩同期式シリアル通信の入力信号により、取り込みタイミングが生成されるときの、第１のカウンタ２３および第２のカウンタ２７の動作を示す図である。
【００９３】
第１のカウンタ２３は、０で初期化されている状態からスタートされ、タイミング６０における、スタートビットの開始時点の入力信号の立ち下がりが制御部２１により検出された時点（タイミング６０）から、第１のカウンタ２３はカウント値がインクリメント、すなわち＋１ずつ増加されていく。
【００９４】
データビット２からデータビット３に切り替わる時点、すなわち入力信号が立ち上った時点（タイミング６１）における、第１のカウンタ２３のカウント値をｘとする。この時点で、除算回路２４およびセレクタ２６により、第２のカウンタ２７に第１のカウンタ２３のカウント値ｘの１／２、すなわち０．５ｘが初期値として設定される。
【００９５】
この後、第１のカウンタ２３はインクリメントが継続され、第２のカウンタ２７はデクリメント、すなわちカウント値が−１ずつ減少されていく。
【００９６】
第２のカウンタ２７でデクリメントされ、値が０になったことが比較回路２８および検出回路２９により検出されたとき（タイミング６２）、制御部２１に信号が伝達され、第１のカウンタ２３のカウント値の１／２が、第２のカウンタ２７の初期値として再設定され、再びデクリメントされる。再設定される時点では、第１のカウンタ２３のカウント値は１．５ｘとなっており、第２のカウンタ２７において０．７５ｘがデクリメントの初期値として再設定される。
【００９７】
第１のカウンタ２３は、タイミング６３までインクリメントした後、インクリメント動作を停止する。第１のカウンタ２３の動作が停止されたときのカウント値をｙとすると、第２のカウンタ２７は除算回路およびセレクタ２６により、その１／１６、すなわち０．０６２５ｙが初期値として再設定され、再びデクリメントされる。データビット７の中央時点（タイミング６４）で、カウント値は０となり、この時点がデータビット７の取り込みタイミングとして規定される。
【００９８】
同時に、第２のカウンタ２７は第１のカウンタ２３の１／８、すなわち０．１２５ｙが初期値として設定され、その後０までデクリメントされた時点（タイミング６５）がストップビットの取り込みタイミングとなり、ストップビットが１であることが確認される。
【００９９】
上記の方法でカウンタ２３のカウント値ｙが取得された後は、実施の形態１において図９に示したようにｙは固定され、オンチップデバッグ機能との通信が行われる。但し、本実施の形態においては、図９に示すタイミング５０でのカウンタ２７のカウント値は０．２５ｙではなく０．０６２５ｙ、タイミング５１以降のカウント値は０．５ｙではなく０．１２５ｙに設定される。
【０１００】
（効果）
取り込みタイミングの生成に使用されるｙの値について、より大きな期間で計測される事により、インターフェース２０の動作クロックにおけるサンプリング誤差(±１カウント)を小さくすることができ、低い通信レートでの初期通信を行わなくても、高い精度で取り込みタイミングを得ることが可能である。また、実施の形態３で示したような、カウンタ２３のカウント値によりインターフェース２０の動作クロックを求める場合についても、誤差を小さくすることが可能である。
【図面の簡単な説明】
【０１０１】
【図１】本発明の実施の形態１に係る機器の全体構成図である。
【図２】本発明の実施の形態１に係る通信信号を示す図である。
【図３】本発明の実施の形態１に係るインターフェースの構成図である。
【図４】本発明の実施の形態１に係るタイミングを示す図である。
【図５】本発明の実施の形態１に係るタイミングを示す図である。
【図６】本発明の実施の形態１に係る状態遷移図である。
【図７】本発明の実施の形態１に係るタイミングを示す図である。
【図８】本発明の実施の形態１に係るタイミングを示す図である。
【図９】本発明の実施の形態１に係るタイミングを示す図である。
【図１０】本発明の実施の形態２に係るタイミングを示す図である。
【図１１】本発明の実施の形態３に係るインターフェースの構成図である。
【図１２】本発明の実施の形態３に係るフローチャートを示す図である。
【図１３】本発明の実施の形態４に係るタイミングを示す図である。
【符号の説明】
【０１０２】
１  ホスト側通信装置、２  ＭＣＵ、３，１０  入力バッファ、４  トライステートバッファ、５，９  入出力端子、１１  出力バッファ、１２  オープンドレイントランジスタ、１３，１４  入力閾値、１５  信号、１６，１８  Ｌ幅、１７，１９  Ｈ幅、２０  インターフェース、２１  制御部、２２，２６，３２  セレクタ、２３，２７  カウンタ、２８  比較回路、２９  検出回路、３０  入力端子、３１  バス配線、３３  シフトレジスタ、４０〜４９，５０〜５２，６０〜６６  タイミング、３３０〜３３７  フリップフロップ。
【図１】
2009017361.tif 000003
【図２】
2009017361.tif 000004
【図３】
2009017361.tif 000005
【図４】
2009017361.tif 000006
【図５】
2009017361.tif 000007
【図６】
2009017361.tif 000008
【図７】
2009017361.tif 000009
【図８】
2009017361.tif 000010
【図９】
2009017361.tif 000011
【図１０】
2009017361.tif 000012
【図１１】
2009017361.tif 000013
【図１２】
2009017361.tif 000014
【図１３】
2009017361.tif 000015