(57)【特許請求の範囲】
【請求項１】
ＤＴＥからの調歩同期式シリアルデータをボーレートクロックに基づいて受信する送受信手段と、前記送受信手段の受信データを解析する制御手段と、前記制御手段の指示により前記送受信手段に出力するボーレートクロックを生成するボーレート生成手段と、前記制御手段からの指示に基づきＤＴＥから送出されるＡＴコマンドの第１キャラクタのスタートビットの幅を計測する計測手段と、前記計測手段の結果を受けて第１キャラクタのサンプリングするクロックを生成するための分周データを出力するとともに前記スタートビットがあらかじめ設定された以上の速度であればそのことを示すフラグを出力する速度解析手段と、前記フラグの有無により前記速度解析手段或いは前記制御手段からの分周データを選択しサンプリングクロックを生成するサンプリングクロック生成手段と、前記フラグもしくは前記制御手段の指示により前記サンプリングクロック生成手段からのクロックに基づいて第１キャラクタのスタートビットに続くデータ受信して保持し前記制御手段に送出するシフトレジスタ部と、を具備することを特徴とするＡＴコマンド解析装置。
【請求項２】
前記シフトレジスタ部は、第１キャラクタが“Ａ”、“ａ”（１６進表示で４１Ｈもしくは６１Ｈ）であることかどうかをビットをサンプルする毎にチェックし、異なったビットをサンプルした場合にはサンプル動作を中止し、エラーを表すフラグを前記制御手段へ出力することを特徴とする請求項１に記載のＡＴコマンド解析装置。
【請求項３】
前記シフトレジスタ部は、スタートビットに続くビットをサンプリングする前にそのビットがハイからローへ変化した場合にはサンプル動作を中止し、エラーを表すフラグを前記制御手段へ出力することを特徴とする請求項１または２に記載のＡＴコマンド解析装置。
【請求項４】
前記シフトレジスタ部は、スタートビットに続く８ビットをサンプリングした後に続くストップビットをサンプルし、その結果ストップビットが検出できなければエラーを表すフラグを前記制御手段へ出力することを特徴とする請求項１ないし３のいずれかに記載のＡＴコマンド解析装置。
【請求項５】
前記シフトレジスタ部にクロックを供給するクロック生成手段は１ショットパルス出力動作モードを持ち、前記制御手段の指示によりクロック生成モードと１ショットパルス出力動作モードが変更でき１ショットパルスを前記制御手段の割込み信号として出力することができることを特徴とする請求項１に記載のＡＴコマンド解析装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はパーソナルコンピュータ用モデム装置に用いられるＡＴコマンドの解析装置に関する。
【０００２】
【従来の技術】
従来のパーソナルコンピュータ用モデム装置に用いられているＡＴコマンドは、ＤＴＥ（ユーザ端末装置：Ｄａｔａ  Ｔｅｒｍｉｎａｌ  Ｅｑｕｉｐｕｍｅｎｔ）とＤＣＥ（回線装置：Ｄａｔａ  Ｃｉｒｃｕｉｔ  Ｔｅｒｍｉｎａｔｅｉｎｇ  Ｅｑｕｉｐｕｍｅｎｔ）間の通信速度及び通信パラメータを自動的に認識応答するものである。
【０００３】
まず、ＡＴコマンドは、コマンドの先頭の文字を「ＡＴ」または「ａｔ」の２種類に限定しており、ＡＴコマンドという名称はこの２文字に由来している。ＡＴコマンドで自動認織、応答するものには通信速度と通信パラメータがあり、以下それぞれの自動認織方法を説明する。
【０００４】
通信速度について説明する。
コマンド先頭のＡまたはａはＡＳＣＩＩコードで表すと１６進表示でそれぞれ４１ｈと６１ｈである。両方とも最下位ビット（ＬＳＢ）が１なので、これをシリアルインターフエースのＬＳＢフアーストのビット列に直すと、通信の始めに必ず１ビット分のスペース（スタートビット）が出現する。通信速度はこのスペース時間を計測することによって求められる。
【０００５】
ＡＴコマンドによるパソコン通信が開始された時代は通信速度は３００ｂｐｓであったが、その後の速度上昇は目覚ましく、１４４００ｂｐｓから３３６００ｂｐｓ、さらに最近では５６０００ｂｐｓが採用されている。しかもこの５６０００ｂｐｓはＤＣＥ−ＤＣＥ間の通信速度で、この間のデータは最大で１／４に圧縮されている可能性があり、ＤＣＥとＤＴＥ間はこの圧縮を復元した４倍の２３０．４ｋｂｐｓの通信速度を満たす必要がある。使用されるボーレートの種類は、２３０４００、１１５２００、５７６００、３８４００、１９２００、９６００、４８００、２４００、１２００、３００ｂｐｓが標準的である。非同期通信のため送信側と受信側とのクロックのずれが生じるが、標準の周波数に対して規定では＋２．５％、−１．０％までの周波数備差が許容されている。そのため、速度の自動設定を行う場合、相手からの受信速度を検出してその速度に最も近いサポートするボーレートの周波数に設置する必要がある。
【０００６】
上記通信パラメータにつき説明する。
通信パラメータは、はじめに８ビット（スタートビットとデータビットの７ビット）、パリティビットなしで設定しておき、１文字目（Ａまたはａ）で求めた通信速度でコマンドの２文字目（Ｔまたはｔ）を受信する。そして、１文字目と２文字日のそれぞれのパリティビット（Ｄ７）と、文字がＡＴかａｔかのいずれかによりＩＴＵ−ＴのＶ．２５ｔｅｒでサポートする通信パラメータが求められる。図７はこの通信パラメータを示す。なお、パリティビットを表すＤ７は、データビットが７ビットでその次にくるパリティビットを含め８ビットとしたとき、ＬＳＢファーストで各ビットをＤＯ〜Ｄ７で表した時の８番目のビットを表す。なお、通信パラメータはデータフォーマットとも呼ばれる。
【０００７】
ＡＴコマンドは、従来は中央処理演算部（ＭＰＵ）を用いて解析していたが、上記のように通信速度が高速化されたこと及び各種機能が増加してきたことにより、ＭＰＵの負担が大きくなってきた。ＭＰＵの負担を軽減し、ＡＴコマンドによる通信速度の自動認識のための技術が特開平９−１５３９２３号公報に開示されている。
【０００８】
特開平９−１５３９２３号公報において、開示されている従来のＡＴコマンド解析装置を図６に示し、この装置につき説明する。
【０００９】
図６において、ＲＸＤ１００はＤＴＥとのシリアルインターフエースの入力データ信号であり、解析開始判断部１０１は後述するＭＰＵ１０９の通信速度解析開始の指示を受けてＲＸＤ１０を監視し、速度測定開始のＳｔａｒｔ信号を送出する。速度解析部１０２はこのＳｔａｒｔ信号によりスタートビットの通信速度を解析する。シリアルデータ制御部１０３は速度解析部１０２より出力されるｇａｔｅ信号がＯＦＦの間、後述するＵＡＲＴ（調歩同期式シリアルデータ送受信回路）１０８へのＲＸＤ１００の入力を停止する。
【００１０】
デコーダ１０４は速度解析部１０２がスタートビットの通信期間をカウントしたカウント値から速度データとボーレートクロックを発生させるための分周データを生成する。速度レジスタ１０５はデコーダ１０４の速度データを保持する。シフトレジスタ部１０６は８ビットのシフトレジスタからなり、ＡＴコマンドの第１キャラクタを受信して保持する。ボーレートクロック生成部１０７はデコーダ１０４からの分周データにより、コマンドを受信するボーレートクロックを生成し、シフトレジスタ部１０６とＵＡＲＴ１０８に供給する。ＵＡＲＴ１０８は調歩同期式シリアルデータであるＲＸＤ１００を送受信する送受信回路である。
【００１１】
ＭＰＵ１０９はｉｎｄｉｃａｔｅ信号を解析開始判断部１０１に出力して通信速度開始を指示し、シフトレジスタ部１０６から第１キャラクタを入力して「Ａ」を判断し、ＵＡＲＴ１０８から第２キャラクタ以降の受信データを入力して解析する。解析開始判断部１０１はＭＰＵ１０９からのｉｎｄｉｃａｔｅ信号のＯＮを速度測定開始指示として受け付け、あらかじめ監視していたＲＸＤｌ００にスタートビット（Ｌまたは０）の逆の論理（Ｈまたは１）が続く定常状態がシフトレジスタクロックの１０周期分（スタート、ストップビット、パリティビットの各１ビットとデータビットの７ビットの合計１０ビットに相当）以上続けば、コマンドが発行されていない状態であると判断して、速度解析部１０２に対してｓｔａｒｔ信号をＯＮにし通信測度解析を開始させる。
【００１２】
速度解析部１０２はｇａｔｅ信号をＯＦＦにし、ＲＸＤｌ００を監視しスタートビットを待つ。シリアルデータ制御部１０３はｇａｔｅ信号がＯＦＦの間、ＵＡＲＴ１０８とＲＸＤｌ００を切り離すことにより速度設定前のＵＡＲＴ１０８が誤った通信速度でＡＴコマンドの第１キャラクタを受信することを防止する。速度解析部１０２はＲＸＤｌ００にスタートビットが表れたら内部のカウンタをスタートさせスタートビットの時間を計測し、スタートビットが終了すると内部カウンタを停止させｌｏａｄ信号をＯＮにし、ＭＰＵ１０９へ速度測定終了割り込み信号を発行する。
【００１３】
速度データは速度解析部１０２のカウント値より算出した速度の値と速度測定が失敗した場合にこれを知らせるエラービットとから成る。速度レジスタ１０５はデコーダ１０４からの速度データを速度解析部１０２からのｌｏａｄ信号がＯＮになったタイミングで保持する。ボーレートクロック生成部１０７は速度解析部１０２からのｌｏａｄ信号がＯＮになったタイミングでデコーダ１０４の分周データをロードし、この分周データに基づく新たなボーレートクロックを生成しＵＡＲＴ１０８へ供給する。これによりＵＡＲＴ１０８は通信速度に適合したクロックを絶えず供給される。またボーレートクロック生成部１０７はシフトレジスタ部１０６にボーレートクロックと同じ周波数のシフトレジスタクロックを８周期分供給する。
【００１４】
シフトレジスタ部１０６はボーレートクロック生成部１０７から供給されるシフトレジスタクロックのタイミングでコマンドの第１キャラクタのスタートビットの次に始まるデータビットの７ビットとパリティビットの８ビットを受信し、８ビットを終了したところで第１のキャラクタの受信終了信号をＯＮにしてＭＰＵ１０９に割込みを発生させる。速度解析部１０２はこの受信終了信号がＯＮになったらｇａｔｅ信号をＯＮにする。ｇａｔｅ信号がＯＮになるとＵＡＲＴ１０８にＲＸＤｌＯ０が入力される。これによりＵＡＲＴ１０８は第１キャラクタの影響を受けないので、ＡＴコマンドの第２キャラクタおよびこれに続くキャラクタをＵＡＲＴ１０８で確実に受信することができる。
【００１５】
ＵＡＲＴ１０８はボーレートクロック生成部１０７から供給されるボーレートクロックでＲＸＤｌＯ０のＡＴコマンドの第２キャラクタ以降を順次受信し、キャラクタ毎にＭＰＵ１０９に受信割り込みを発生させる。ＭＰＵ１０９は速度解析部１０２からの速度測定終了割り込み信号を受けると、速度レジスタ１０５の速度データをリードし、エラービットより速度測定か成功したか否かを判断し、成功した場合測定した結果の速度の値を確認する。
【００１６】
次に、ＭＰＵ１０９はシフトレジスタ部１０６からの受信終了割込みを受けるとシフトレジスタ部１０６よりコマンドの第１キャラクタとそのパリティビットをリードし、キャラクタがＡまたはａであることを確認する。速度測定がエラーになったとき、および第１キャラクタがＡまたはａでないときはｉｎｄｉｃａｔｅ信号を再びＯＮにして速度解析を初めからやり直す。ＡＴコマンドの第２キャラクタとこれに続くキャラクタはＵＡＲＴ１０８により受信する。ＭＰＵ１０９はＵＡＲＴ１０８からの受信割込みを受けた後、受信データをリードし、第２ビットがＴまたはｔならば第１キャラクタのパリティビットと第２キャラクタのパリティビットから、受信データのデータフォーマットを決定する。ＭＰＵ１０９はＵＡＲＴ１０８をこのデータフォーマットに設定し、ＵＡＲＴ１８はＡＴコマンドの第３キャラクタとこれに続くキャラクタを順次受信する。
【００１７】
上記した従来のＡＴコマンド解析装置は、送受信手段（ＵＡＲＴ）１０８と制御手段（ＭＰＵ）１０９に追加して、ＭＰＵ１０９の指示により通信速度を解析する速度解析部１０２と、解析した通信速度によりボーレートクロックを生成し、ＵＡＲＴ１０８に伝送し、通信速度を知らせるボーレートクロック生成部１０７と、このボーレートクロックを入力して第１キャラクタを受信するシフトレジスタ１０６とを設け、通信速度の解析、通信速度のＵＡＲＴ１０８への通知、第１キャラクタの受信といった従来ＭＰＵ１０９が行っていた役割を速度解析部１０２ボーレートクロック生成部１０７、シフトレジスタ１０６などの周辺回路が全て行うようにして、ＭＰＵ１０９の負担を軽減している。
【００１８】
【発明が解決しようとする課題】
上記したように、この従来技術によれば、ＡＴコマンドを認識してモデムを制御するＭＰＵの負担を軽減させるために、ハードによりボーレートの生成までをすべて行っている。
【００１９】
このように通信速度が高速化されたことで、ＭＰＵによらない周辺ハード回路によるＡＴコマンドの速度解析とボーレートの設定を行う方法を取らざる得ないが、サポートする速度は、３００〜２３０．５Ｋｂｐｓまでの多くの速度をサポートしなければならず、ＭＰＵのソフトを用いた制御方法に比べて、ＡＴコマンド解析のための回路制御やボーレートを決定するデコード回路などが増え、回路も複雑になるとともに、規模も大きくなる。
【００２０】
また、ＵＡＲＴ１０８のボーレートは、ボーレートクロック生成部１０７から出力されており、ＡＴコマンドの速度解析後にしか再設定されないようになっている。これでは、ＡＴコマンドを受信しない場合、たとえば、電話のリングが来た場合モデムは、それを検出すると、リングのキャラクタをＤＴＥへ送出する必要がある。その場合、ＭＰＵ１０９は、内部パラメータで設定されたボーレートにＵＡＲＴ１０８を設定して動作させる必要があるが、それが上述した従来の方法ではできない。
【００２１】
また、第１キャラクタは８ビットをサンプリングした後にキャラクタをＭＰＵがチェックするが、これがＡ、ａで無い場合、次のキャラクタを第１キャラクタとして受信する必要があるが、高速度なデータの場合、この判定がソフトの介在で遅れて、受信できない可能性がある。また、非同期通信においては、ストップビットのない不正フレームキャラクタが発生したとき、この従来の技術では、ストップビットをチェックしていないためエラーであるキャラクタと認織できない。
【００２２】
この発明は、上述の問題点に鑑みてなされたもので、ＡＴコマンドの速度解析にあたり、周辺回路の規模および複雑さを軽減することを目的とする。また、第１キャラクタが“Ａ”、“ａ”以外であるエラーを直ぐに検出できるエラー検出機能を強化することを目的とする。
【００２３】
さらに、この発明は、ＡＴコマンドの速度解析に使用する回路をモデムの別の機能を実現する回路にも適用できるようにして、全体の回路規模の増大を防ぐことを目的とする。
【００２４】
【課題を解決するための手段】
この発明のＡＴコマンド解析装置は、ＤＴＥからの調歩同期式シリアルデータをボーレートクロックに基づいて受信する送受信手段と、前記送受信手段の受信データを解析する制御手段と、前記制御手段の指示により前記送受信手段に出力するボーレートクロックを生成するボーレート生成手段と、前記制御手段からの指示に基づきＤＴＥから送出されるＡＴコマンドの第１キャラクタのスタートビットの幅を計測する計測手段と、前記計測手段の結果を受けて第１キャラクタのサンプリングするクロックを生成するための分周データを出力するとともに前記スタートビットがあらかじめ設定された以上の速度であればそのことを示すフラグを出力する速度解析手段と、前記フラグの有無により前記速度解析手段或いは前記制御手段からの分周データを選択しサンプリングクロックを生成するサンプリングクロック生成手段と、前記フラグもしくは前記制御手段の指示により前記サンプリングクロック生成手段からのクロックに基づいて第１キャラクタのスタートビットに続くデータ受信して保持し前記制御手段に送出するシフトレジスタ部と、を具備することを特徴とする。
【００２５】
上記したシフトレジスタ部は、第１キャラクタが“Ａ”、“ａ”（１６進表示で４１Ｈもしくは６１Ｈ）であることかどうかをビットをサンプルする毎にチェックし、異なったビットをサンプルした場合にはサンプル動作を中止し、エラーを表すフラグを前記制御手段へ出力するように構成すると良い。
【００２６】
また、上記のシフトレジスタ部は、スタートビットに続くビットをサンプリングする前にそのビットがハイからローへ変化した場合にはサンプル動作を中止し、エラーを表すフラグを前記制御手段へ出力するように構成すると良い。
【００２７】
更に、上記のシフトレジスタ部は、スタートビットに続く８ビットをサンプリングした後に続くストップビットをサンプルし、その結果ストップビットが検出できなければエラーを表すフラグを前記制御手段へ出力するように構成すると良い。
【００２８】
また、この発明は、前記シフトレジスタ部にクロックを供給するクロック生成手段は１ショットパルス出力動作モードを持ち、前記制御手段の指示によりクロック生成モードと１ショットパルス出力動作モードが変更でき１ショットパルスを前記制御手段の割込み信号として出力するように構成することができる。
【００２９】
上記したように、この発明のＡＴコマンド解析装置では、ＡＴコマンドの速度解析後の送受信手段（ＵＡＲＴ）のボーレート設定などは制御手段（ＭＰＵ）が行い、スタートビットの幅を測定したカウント値を基に、ＡＴコマンドの第１キャラクタをサンプリングするためのクロック速度を決定する部分は、周辺回路による自動設定と制御手段（ＭＰＵ）による設定とを用意し、ＡＴコマンドの速度によりどちらかが選択される。
【００３０】
この発明によれば、従来すべてを回路制御で行ってきた方法から、制御手段（ＭＰＵ）のソフトによる制御で十分に間に合う低速のＡＴコマンドの速度解析とその後のクロック生成の設定は制御手段（ＭＰＵ）のソフトで行い、制御手段（ＭＰＵ）ソフトで制御できない高速のＡＴコマンドの速度解析やクロック生成の設定は周辺回路により行うこととし、全体の回路規模や複雑さを軽減することができる。
【００３１】
以下、この発明の実施の形態につき図に従い説明する。図１は、この発明の実施の形態に係るＡＴコマンド解析装置を示すブロック図である。
【００３２】
この実施の形態においては、第１カウンタ１、第２カウンタ３及びボーレート生成部８は、クロック周波数３．６８６４ＭＨｚで動作している。
【００３３】
計測手段としての第１カウンタ１は、ＲＸＤ１０（シリアルライン）の受信データからＡＴコマンドの第１キャラクタのスタートビットのロー期間の幅を計測するカウンタであり、ＲＸＤ１０が立ち下がってからのロー期間をカウントし、そのカウント値をＭＰＵデータバスとデコーダ２に出力し、ＭＰＵ９に対してはカウント終了の割り込み信号を出力する。最も高いボーレートの２３０．４Ｋｂｐｓの場合、第１カウンタ１のスタートビットのカウンタ値は１０Ｈとなるが周波数誤差の許容範囲を考えると  ０ＦＨ〜１１Ｈまで変化する可能性がある。また、使用する回路の立ち上がり、立ち下がりの特性や回路遅延などの諸条件を考えた場合そのカウント値の範囲を０ＥＨ〜１２Ｈまで変化すると考えておく必要がある。
【００３４】
速度解析手段としてのデコーダ２は第１カウンタ１のカウント値が６ＦＨ以下のカウント値であれば高速度フラグをセットし、そのカウント値からサンプリングクロックを発生させるための分周データを出力する。分周データは、受信データのボーレートに最も近いサポートボーレートの倍のクロックを生成するための分周データとなる。
【００３５】
また、デーコーダ２は、カウント値が０ＥＨ〜１２Ｈの範囲にあれば、２３０．４Ｋｂｐｓの倍の周波数を生成するため０８Ｈを出力するように、ある範囲に値があればその値を一定の値に丸めて出力する丸め機能を持っている。ある範囲に値がある時に一定の値を出力するには、丸め機能以外にテーブルを使用する方法も考えられる。この実施の形態では、カウンタ値に＋６を行いその値の下位３ビットを０にし、そのデータを１／２することで丸めを行っている。この丸め方法の場合、テーブル参照に比べて回路量が少なく容易に実現できる利点がある。上記の例では、カウント値がＯＡＨ〜１９Ｈであれば、０８Ｈが出力され、２３０．４Ｋｂｐｓの倍の周波数のクロックに分周する値となる。また、カウンタ値が５ＡＨ〜６９Ｈの時には８０Ｈ（４８）が出力され、３８．４Ｋｂｐｓの倍の周波数のクロックに分周する値となる。尚、３．６８６４ＭＨｚを４８分周すると７６．８ＫＨｚとなる。
【００３６】
一方、１９．２Ｋｂｐｓの低速度の場合、第１カウンタ１のカウント値が６ＦＨを越えるため、高速度フラグはセットされない。また、低速度の場合の丸め処理は、許容誤差に対応していないため、分周データとして使用できない。全サポートボーレートまでを対象としたデコーダ回路は当然可能であるが、回路が複雑および大きくなることは避けれない。
【００３７】
サンプリングクロック生成手段としての第２カウンタ３は、上記したようにクロック周波数３．６８６４ＭＨｚで動作しており、第１カウンタ１からのカウント終了信号が来て、デコーダ２からの高速度フラグがセットされているとデコーダ２からの分周データをロードし、自動的に動作し、クロックを分周する。分周されたクロックは、結果的に、測定したボーレートの速度の２倍のクロックとなる。２倍のクロックを出力させるのは、フリップフロツプ４で２分周し、受信データのビットの中心でサンプリングするためのクロックを作成するためである。受信データ速度は、前述したように、その周波数の許容誤差があるため、受信ビットの端方でサンプリングすると８ビットサンプリングしていく間に受信周波数とサンプリング周波数との誤差が蓄積して誤った位置でサンプリングする可能性がある。そのため、サンプリングの位置はなるべくビットの中心で行う必要があるためである。
【００３８】
もし、デコーダ２からの速度フラグがセットされていなければ、第２カウンタ３は動作せず、制御手段（ＭＰＵ）９からの指示で分周データが設定され、動作を開始する。フリップフロツプ４は、第２カウンタ３からの分周クロックを１／２に分周してシフトレジスタ５のサンプルクロックを出力する。
【００３９】
図２に受信データ、第２カウンタ３の出力とフリップフロツプ４の出力タイミングを示す。
【００４０】
この図２に示すように、第２カウンタ３からの分周クロックがフリップフロップ４により分周され、その出力がシフトレジスタ５のサンプルクロックとして与えられ、シフトレジスタ５にＲＸＤ１０ラインの信号をサンプリングする。
【００４１】
第２カウンタ３は、通常の分周カウントモードと指定カウント値をカウントした後に１ショットパルスを出力する１ショットパルス出力モードの２つの動作モードを持っている。ＡＴコマンドの解析を行う場合は、ＭＰＵ９は、クロックを分周する動作モードに設定し、その後のＡＴコマンドのコマンド処理動作を行う場合には、１ショットパルス動作モードにすることにより、第２カウンタ３を他の目的に使用することが出来る。たとえば、パルスダイヤリング処理は、パルスのデューティを正確に保つ必要があるため、１ショットパルス動作にて割り込み信号を出力させ、オンフック、オフフックの時間管理を行うことが可能となる。
【００４２】
シフトレジスタ５は、ＲＸＤ１０ラインの信号をフリップフロツプ４からのサンプルクロックで８ビットのデータとしてサンプリングしデータを保持する。また、ビット毎に”Ａ”、”ａ”が，（１６進表示で４１Ｈもしくは６１Ｈ）のキャラクタかどうかをチェックし、もし、ビットが異なっていればサンプリングを中止しエラーフラグをセットする。例えば、図４に示すように、シフトレジスタ５にサンプリングされるデータのビット２が１と認識すると、ビットが異なっているので、キャラクタエラーと判断し、エラー（ＥＥＲＲ）ビットをセットし、エラーフラグをＭＰＵ９に与える。また、この動作と同時に、割り込み信号（ＡＳＰＩＮＴ）を出力し、ＭＰＵ９に割り込み信号を与え、シフト動作を停止させる。
【００４３】
また、シフトレジスタ５は、第２カウンタからの出力に基づく最初のサンプルクロックが到達する前に受信信号がハイレベルからローレベルへ変化するとエラーフラグをセットし、サンプリングを中止する。即ち、最初のサンプリングクロックが来る前に、ＲＸＤ１０のラインが変化することは正常動作ではないので、図５に示すように、サンプリングクロックが来る前に、ＲＸＤライン１０がローに変化すると、エラー（ＤＬＩＮＥ）ビットし、エラーフラグをＭＰＵ９に与える。また、この動作と同時に、割り込み信号（ＡＳＰＩＮＴ）を出力し、ＭＰＵ９に割り込み信号を与え、シフト動作を停止させる。
【００４４】
更に、シフトレジスタ５は、８ビットのサンプリングが終了した後のストップビットをチェックし、もし、ストップビットが検出されなければエラーとして同様の処理を行う。サンプリングが終了（エラーでの終了も含む）すれば、ＭＰＵ９に対して割り込み信号を出力する。
【００４５】
受信開始制御回路（ＵＡＲＴ）７は、高速度フラグがセットされている場合は、サンプリング終了割り込み信号発生時にシフトレジスタ５からのエラーフラグがセットされていなければＵＡＲＴ６の受信動作をイネーブルにする。もし、高速度フラグがセットされていなければ、ＭＰＵ９からの受信開始指示でＵＡＲＴ６は受信イネーブルとなる。
【００４６】
ボーレート生成部８は、ＭＰＵ９の指示のみによりボーレートを生成し、ＵＡＲＴ６に供給する。これは、ボーレートはＡＴコマンドの第１キャラクタをサンプリング終了までに設定すればよいので、ＭＰＵ９の割り込み処理で十分に対応できる。そのため、デコーダ２はボーレートデータを出力する必要はないため、回路規模は、従来のものより小さくできる。
【００４７】
上記したＵＡＲＴ６は、ＲＸＤ１０からＡＴコマンドの第２キャラクタ以降を受信開始制御回路７もしくはＭＰＵ９からの指示により受信開始する。
【００４８】
実際の動作を図３を参照してＡＴコマンドの速度が高速（１９．２Ｋｂｐｓ〜２３０．４Ｋｂｐｓ）の場合とそれ以下の速度の場合とで説明を行う。図３は正常に動作を行ったときの状態を示すタイミングチャートである。
【００４９】
まず、高速度の場合につき説明する。
ＭＰＵ９は、第１カウンタ１、第２カウンタ３などの回路を初期設定しておき、カウント１に対してカウントの開始を指示する。第１カウンタ１は、ＲＸＤ１０のデータをチェックし、スタートビットの幅をカウントし、カウンタ値とカウント終了信号を出力する。デコーダ２は、第１カウンタ１からのカウント値から分周データを出力し、高速フラグをセットする。図３に示す例においては、デコーダ３より１．８４３２ＭＨｚの分周データが出力され、第２カウンタ３のカウンタ値が０００８の場合である。
【００５０】
第２カウンタ３は、高速度フラグがセットされているため、デコーダ２からの分周データを自動的にロードし、分周動作を行い、分周クロックをフリップフロップ４に出力する。そして、フリップフロツプ４にて２分周されたサンプルクロックがシフトレジスタ５に出力される。
【００５１】
シフトレジスタ５は、受信データ８ビットをサンプリングし、ストップビットを検出すると、ＣＥＮＤビットをセットし、サンプリング動作を停止し、その結果をシフトレジスタ５に格納する。図３の例では、シフトレジスタ５は４１Ｈとなる。そして、次のシフトクロック、図３の例では、９発目のシフトクロック時点でＲＸＤ１０がハイの場合にはサンプリング終了信号（ＳＦＥＮＤ）をセットし、ＭＰＵ９へサンプル終了信号を出力する。尚、もし、ＲＸＤ１０がローであれば、以降のシフトクロックでＲＸＤ１０のハイがサンプリングされるまで、サンプリング終了信号はセットされない。
【００５２】
受信開始制御回路７は、高速度フラグがセットされて、サンプリング終了信号が出力され、サンプリングのエラーがない場合ＵＡＲＴ６の受信開始動作をイネーブルにする。
【００５３】
ＭＰＵ９は、第１カウンタ１からのカウント終了の割り込み信号を受けると、割り込みルーチンの中で高速度フラグがセットされているかどうかをチェックする。セットされていれば、第１カウンタ１のカウント値からボーレートを判定し、ボーレート生成部８にボーレートを設定し、ＵＡＲＴ６に対してボーレートクロックを供給する。シフトレジスタ５からのサンプリング終了の割り込み信号を受け取ると、割り込みルーチンの中でサンプリングのエラーフラグがセットされていない場合、正常に終わったことを確認する。もし、エラーが発生していた場合には、初期設定を再度行い、ＡＴコマンドの第１キャラクタを待つ。
【００５４】
次に、低速度の場合につき説明する。
ＭＰＵ９は、第１カウンタ１、第２カウンタ３などの回路を初期設定しておき、第１カウンタ１に対してカウントの開始を指示する。第１カウンタ１は、ＲＸＤ１０のデータをチェックし、スタートビットの幅をカウントしてカウンタ値とカウント終了の割り込み信号を出力する。デコーダ２は、第１カウンタ１からのカウント値から分周データを出力し、高速フラグをセットしない。第２カウンタ３は、高速度フラグがセットされていないため、動作は行わず、ＭＰＵ９からの指示による分周データで分周動作を行う。ＭＰＵ９からの分周データに基づきフリップフロツプ４を通してシフトレジスタ５のサンプリングクロックが出力される。レジスタ５は、受信データ８ビットをサンプリングし、ストップビットを検出するとサンプリング動作を停止し、サンプリング終了信号をＭＰＵ９へ出力する。受信開始制御回路７は、高速度フラグがセットされていないため動作しない。
【００５５】
ＭＰＵ９は、第１カウンタ１からのカウント終了の割り込み信号を受けると、割り込みルーチンの中で高速度フラグがセットされているかどうかをチェックする。低速度の場合には、フラグは、セットされていないため、第１カウンタ１のカウンタ値からボーレートを判定し、第２カウンタ３へＭＰＵ９から分周データを設定し、動作開始を指示する。また、ボーレート生成部８にボーレートを設定し、ＵＡＲＴ６に対してボーレートクロックを供給する。シフトレジスタ５からのサンプリング終了の割り込み信号を受け取ると、割り込みルーチンの中でサンプリングのエラーフラグがセットされていない場合、正常に終わったことを確認したらＵＡＲＴ６の受信開始をイネーブルにする。もし、エラーが発生していた場合には、初期設定を再度行い、ＡＴコマンドの第１キャラクタを待つ。
【００５６】
【発明の効果】
以上説明したように、この発明によれば、ＡＴコマンドの速度に応じて周辺回路により動作するモードと制御手段（ＭＰＵ）のソフトが制御するモードの２つを備えることにより、すべてを回路により行う場合に比べて全体の回路規模および複雑さを軽減できる。
【００５７】
また、デコーダからの分周データは、一部の高速度をサポートするボーレートのみに対応したものでよいため簡易な丸め回路で実現することができ回路規模を軽減できる。
【００５８】
さらに、ＡＴコマンド解析時のみに使用するカウンタは、他の動作モードを持たせることにより、ＡＴコマンドのコマンド処理には同じカウンタを異なった動作モードで使用することができ、全体の回路規模の軽減が可能となる。
【００５９】
また、この発明は、サンプリング時のエラーチェックもビットごとに行うため８ビットサンプリングを行っている間にできるため、エラー発生の場合には、次のキャラクタ受信のための準備が無駄なくできる。しかも従来技術では、ストップビットがないキャラクタのエラー処理がなかったが、このようなエラーキャラクタの検出も可能となり、不正キャラクタの誤受信動作が減少する。
【図面の簡単な説明】
【図１】この発明の実施の形態にかかるＡＴコマンド解析装置の構成を示すブロック図である。
【図２】この発明における受信データ、第２カウンタとフリップフロップの出力タイミングを示すタイミングチャートである。
【図３】この発明の実施の形態にかかるＡＴコマンド解析装置の正常動作のときのタイミングチャートである。
【図４】この発明の実施の形態にかかるＡＴコマンド解析装置のキャラクターエラーのときのタイミングチャートである。
【図５】この発明の実施の形態にかかるＡＴコマンド解析装置のライン変化を検出したエラーのときのタイミングチャートである。
【図６】従来のＡＴコマンド解析装置の構成を示すブロック図である。
【図７】ＡＴコマンドの通信パラメータを示す図である。
【符号の説明】
１  第１カウンタ
２  デコーダ
３  第２カウンタ
４  フリップフロップ
５  シフトレジスタ
６  ＵＡＲＴ
７  受信開始制御回路
８  ボーレート生成部
９  ＭＰＵ
１０  ＲＸＤ
【図１】
0003565730.tif 000002
【図２】
0003565730.tif 000003
【図３】
0003565730.tif 000004
【図４】
0003565730.tif 000005
【図５】
0003565730.tif 000006
【図６】
0003565730.tif 000007
【図７】
0003565730.tif 000008