(57)【要約】【課題】調歩同期方式のATコマンドに基づいて、通信速度およびキャラクタフォーマットを認識する文字認識回路を提供。【解決手段】文字認識回路10は、受信したシリアル入力信号108が示すATコマンドをAT文字解析する回路であって、キャラクタ検出回路22にてシリアル入力信号108から第１のキャラクタおよび第２のキャラクタを検出し、キャラクタ識別回路24にて、第１のキャラクタが文字「A」または「a」であることを識別し、かつ第２のキャラクタが文字「T」、「t」および「/」であることを識別して、さらに第１のキャラクタおよび第２のキャラクタの組み合わせを識別して、この識別結果に応じてキャラクタフォーマット選択回路26でキャラクタフォーマットを選択して汎用非同期送受信回路42に設定するものである。【選択図】図１
2007036850.tif 000002
【特許請求の範囲】
【請求項１】
調歩同期方式で送信されたシリアルデータを受信して汎用非同期送受信回路に出力する文字認識回路において、該回路は、
前記シリアルデータを受信し、該シリアルデータからキャラクタを検出して検出キャラクタを出力するキャラクタ検出手段と、
前記検出キャラクタがATコマンドを示すか否かを判定するキャラクタ識別手段と、
該キャラクタ識別手段の識別結果であるキャラクタの組み合わせに応じて、キャラクタフォーマットを選択し、選択した前記キャラクタフォーマットを前記汎用非同期送受信回路に設定するキャラクタフォーマット選択手段とを含み、
前記キャラクタ識別手段は、前記検出キャラクタがATコマンドの第１のキャラクタであるか否かを識別する第１の識別手段と、前記検出キャラクタがATコマンドの第２のキャラクタであるか否かを識別する第２の識別手段とを含み、
第１の識別手段の結果、前記検出キャラクタを文字「A」または「a」であると識別した場合には、前記検出キャラクタを第１のキャラクタとして保持し、
第２の識別手段の結果、前記検出キャラクタを文字「A」または「a」であると識別した場合には、前記検出キャラクタを第１のキャラクタとして保持し、文字「T」、「t」または「/」であると識別した場合には、前記検出キャラクタを第２のキャラクタとして保持して第１のキャラクタおよび第２のキャラクタをキャラクタフォーマット選択手段へと出力し、
前記キャラクタフォーマット選択手段は、第１のキャラクタおよび第２のキャラクタの組み合わせに応じて、前記キャラクタフォーマットを選択することを特徴とする文字認識回路。
【請求項２】
請求項１に記載の文字認識回路において、前記キャラクタフォーマット選択手段は、第１のキャラクタおよび第２のキャラクタの組み合わせが文字列「AT」、「at」または「A/」の場合、それぞれ対応する前記キャラクタフォーマットを選択することを特徴とする文字認識回路。
【請求項３】
請求項１に記載の文字認識回路において、前記キャラクタフォーマット選択手段は、第１のキャラクタおよび第２のキャラクタの組み合わせが文字列「a/」の場合、第１のキャラクタおよび第２のキャラクタのASCIIコードの組み合わせを判定して、該ASCIIコードの組み合わせが「61h」および「2Fh」、または「E1h」および「AFh」の場合、それまで選択されていたキャラクタフォーマットを再選択することを特徴とする文字認識回路。
【請求項４】
請求項１に記載の文字認識回路において、前記キャラクタフォーマット選択手段は、第１のキャラクタおよび第２のキャラクタの組み合わせに応じて、データ長、パリティ種別およびSTOPビット長で識別可能な前記キャラクタフォーマットを選択することを特徴とする文字認識回路。
【請求項５】
請求項１に記載の文字認識回路において、前記キャラクタフォーマット選択手段は、第１のキャラクタおよび第２のキャラクタの組み合わせ、ならびに前記キャラクタフォーマットの対応関係をあらかじめ設定して記憶する第１の記憶手段を有し、第１のキャラクタおよび第２のキャラクタの組み合わせに基づいて第１の記憶手段を参照して前記キャラクタフォーマットを選択することを特徴とする文字認識回路。
【請求項６】
請求項１に記載の文字認識回路において、該回路は、上位アプリケーションからのAT文字解析の開始命令を受信して、該開始命令に応じて各部を制御して前記シリアルデータのAT文字解析を開始し、該AT文字解析が終了するとAT文字解析の終了の割り込みを前記上位アプリケーションに対して通知し、
前記開始命令を受信してから前記終了の割り込みを通知するまでの間、前記シリアルデータの前記汎用非同期送受信回路への出力をマスクするマスク手段と、
前記開始命令を受信してから前記終了の割り込みを通知するまでの間に限り、マスタークロックを各部に供給するゲート手段とを含むことを特徴とする文字認識回路。
【請求項７】
請求項６に記載の文字認識回路において、該回路は、前記開始命令を受信してから、第１の識別手段を実行し、前記キャラクタ識別手段が第１のキャラクタを保持した後、第２の識別手段を実行して、第２の識別手段の結果、前記検出キャラクタを文字「A」または「a」であると識別した場合、再度第２の識別手段を実行することを特徴とする文字認識回路。
【請求項８】
請求項６に記載の文字認識回路において、前記キャラクタフォーマット選択手段は、該回路が前記開始命令を受信してから、前記キャラクタ検出手段が最初にキャラクタを検出する前に、前記汎用非同期送受信回路に設定されているキャラクタフォーマットを取得して保持することを特徴とする文字認識回路。
【請求項９】
請求項６に記載の文字認識回路において、該回路は、上位アプリケーションから前記開始命令とともにエコーバック有無情報を受信して、該エコーバック有無情報を前記キャラクタ識別手段に供給し、
前記キャラクタ識別手段は、前記エコーバック有無情報がエコーバックありを示す場合、保持している第１のキャラクタまたは第２のキャラクタを前記汎用非同期送受信回路に設定して、前記汎用非同期送受信回路がエコーバック可能となることを特徴とする文字認識回路。
【請求項１０】
請求項９に記載の文字認識回路において、前記キャラクタフォーマット選択手段は、前記キャラクタ識別手段が第１のキャラクタを保持したときに、エラーとならない標準キャラクタフォーマットを前記キャラクタフォーマットとして選択し、
前記キャラクタ識別手段は、第１のキャラクタを保持したときに、前記エコーバック有無情報がエコーバックありを示す場合、保持している第１のキャラクタを前記汎用非同期送受信回路に設定し、
前記キャラクタフォーマット選択手段は、前記キャラクタ識別手段が第２のキャラクタを保持したときに、第１のキャラクタおよび第２のキャラクタの組み合わせに応じて前記キャラクタフォーマットを選択し、
前記キャラクタ識別手段は、第２のキャラクタを保持したときに、前記エコーバック有無情報がエコーバックありを示す場合、保持している第２のキャラクタを前記汎用非同期送受信回路に設定することを特徴とする文字認識回路。
【請求項１１】
請求項６に記載の文字認識回路において、該回路は、前記開始命令を受信してから最初のスタートビットを前記シリアルデータから検出してそのスタートビット期間を測定し、該スタートビット期間に応じたシリアル通信速度を選択して、該シリアル通信速度を前記汎用非同期送受信回路に設定する通信速度選択手段を含むことを特徴とする文字認識回路。
【請求項１２】
請求項１１に記載の文字認識回路において、前記通信速度選択手段は、前記スタートビット期間および前記シリアル通信速度の対応関係をあらかじめ設定して記憶する第２の記憶手段を有し、前記スタートビット期間に基づいて第２の記憶手段を参照して前記シリアル通信速度を選択することを特徴とする文字認識回路。
【請求項１３】
請求項１１に記載の文字認識回路において、該回路は、前記マスタークロックの周期で動作して、前記シリアルデータをシフトする複数のシフト回路を有して、該複数のシフト回路を複数段カスケード接続し、該複数のシフト回路の出力の内、多数値をノイズ除去出力とするノイズ除去手段を含み、
前記通信速度選択手段は、前記ノイズ除去出力から前記最初のスタートビットを検出してそのスタートビット期間を測定し、
前記キャラクタ検出手段は、前記ノイズ除去出力からキャラクタを検出して前記検出キャラクタを出力することを特徴とする文字認識回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パーソナル・コンピュータなどのデータ端末装置から送られてアナログ・モデムなどのデータ回線終端装置で受信される調歩同期方式のATコマンドに基づいて、通信速度およびキャラクタフォーマットを認識する文字認識回路に関するものである。
【背景技術】
【０００２】
従来から、アナログ・モデムやターミナルアダプタなどのデータ回線終端装置（Data Circuit terminating Equipment：DCE）は、パーソナルコンピュータなどのデータ端末装置（Data Terminal Equipment：DTE）と、RS232CやITU-T勧告V.24に記載されたインタフェースで接続され、このDTEとデータ通信を行うときには、ITU-T勧告のV.25terに記載されるようなATコマンド方式を用いて、調歩同期方式によって、このDCEを制御することができる。
【０００３】
このような従来のDCEは、調歩同期方式で送られたATコマンドを、汎用非同期送受信回路（Universal Asynchronous Receiver Transmitter：UART）と呼ばれる調歩同期方式のシリアルデータ送受信回路で受信して、受信したATコマンドに応じた通信制御を行うことができる。
【０００４】
また、このDCEは、DTEからのATコマンドを解析する文字認識回路を備えて、DTEにおける調歩同期方式の通信速度およびキャラクタフォーマットを識別し、UARTにおける通信速度およびキャラクタフォーマットを、DTEにおけるものと一致させることにより、ATコマンドを受信することができる。
【０００５】
たとえば、特許文献１に記載のATコマンド受信回路は、UARTと接続されて、ATコマンドの先頭部分である「AT」または「at」の２文字を受信するもので、最初のスタートビットの区間の時間を計測して調歩同期方式の通信速度を検出する。また、ATコマンド受信回路は、この通信速度を用いて受信した先頭文字が「A」または「a」であるときに、先頭文字が「A」ならば受信した次の文字が「T」であるか、または先頭文字が「a」ならば受信した次の文字が「t」であるかを確認する。この確認の結果、連続して受信した２文字が「AT」または「at」であるとき、ATコマンド受信回路は、これらの文字のASCIIコードの組み合わせに応じて調歩同期方式のキャラクタフォーマットを検出し、２文字目の受信終了時点で、UARTに対して通信速度およびキャラクタフォーマットを設定して、３文字目以降の受信をUARTで行うことにより、CPUの処理を低減させている。
【０００６】
さらに、ATコマンド受信回路は、文字「A」または「a」の入力待ちから、文字「AT」または「at」の解析終了までの期間と、ATコマンド入力の終了を示すキャリッジリターン「cr」の検出以降においては、UARTへの受信クロックを停止させることで消費電流を節約している。
【０００７】
【特許文献１】特開2000-278356号
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１に記載のATコマンド受信回路では、文字「AT」または「at」の組み合わせのみを検出するために、その他の組み合わせ、たとえば、直前に実行させたATコマンドの再実行を要求する場合のコマンドを示す文字「A/」または「a/」を検出することはできない。
【０００９】
また、従来から、DTEは、ATコマンド入力時に、DCEが正常に受信していることを確認するために、DCEに対して、ATコマンド入力時に受信した文字をDTEに返す機能（エコーバック）を要求（たとえばATE１コマンド）することがある。このとき、従来のDCEにおけるCPUは、UARTに対して受信した文字を書き込む必要があるが、このCPUは、文字「AT」または「at」の２文字の組み合わせが検出されるまで、その結果を知ることができないため、先頭文字の受信時点でのエコーバックをすることができない。
【００１０】
さらに、従来のDCEは、ATコマンド入力の終了を示すキャリッジリターン「cr」を検出すると、UARTへの受信クロックを停止させるため、DTEが実行中のATコマンドを中止させる目的で入力する１文字（エニーキーキャンセル）を受信することができず、またATコマンドの実行によりデータ通信が可能になった段階においてDTEとのデータの送受信ができなくなる。
【００１１】
本発明はこのような従来技術の欠点を解消し、文字の組み合わせに限定されずにATコマンドを解析して、シリアル通信速度およびキャラクタフォーマットの識別および設定を行う文字認識回路を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明は上述の課題を解決するために、調歩同期方式で送信されたシリアルデータを受信して汎用非同期送受信回路に出力する文字認識回路は、このシリアルデータを受信し、このシリアルデータからキャラクタを検出して検出キャラクタを出力するキャラクタ検出手段と、この検出キャラクタがATコマンドを示すか否かを判定するキャラクタ識別手段と、このキャラクタ識別手段の識別結果であるキャラクタの組み合わせに応じて、キャラクタフォーマットを選択し、選択したこのキャラクタフォーマットをこの汎用非同期送受信回路に設定するキャラクタフォーマット選択手段とを含み、このキャラクタ識別手段は、この検出キャラクタがATコマンドの第１のキャラクタであるか否かを識別する第１の識別手段と、この検出キャラクタがATコマンドの第２のキャラクタであるか否かを識別する第２の識別手段とを含み、第１の識別手段の結果、この検出キャラクタを文字「A」または「a」であると識別した場合には、この検出キャラクタを第１のキャラクタとして保持し、第２の識別手段の結果、この検出キャラクタを文字「A」または「a」であると識別した場合には、この検出キャラクタを第１のキャラクタとして保持し、文字「T」、「t」または「/」であると識別した場合には、この検出キャラクタを第２のキャラクタとして保持して第１のキャラクタおよび第２のキャラクタをキャラクタフォーマット選択手段へと出力し、このキャラクタフォーマット選択手段は、第１のキャラクタおよび第２のキャラクタの組み合わせに応じて、このキャラクタフォーマットを選択することを特徴とする。
【発明の効果】
【００１３】
本発明の文字認識回路によれば、上位アプリケーションからの命令によって、ATコマンドの解析として、入力された文字列の確認を行いながら、シリアル通信速度およびキャラクタフォーマットを識別し、かつUARTへ自動的に設定することにより、UARTがATコマンドを受信する際に、DTEが要求しているシリアル通信速度およびキャラクタフォーマットに一致させることができる。
【００１４】
このとき、本発明の文字認識回路では、動作していないときにクロックを停止させて電流の消費を低減することができる。
【００１５】
また、本発明の文字認識回路では、認識した文字のエコーバックを自動的に行うことでCPUの負荷を低減することができ、割込信号によって動作終了および解析結果を上位アプリケーションに通知するため、上位アプリケーションは、AT文字解析の開始命令から動作終了の割り込みが発生するまでの期間は、ATコマンド解析を意識する必要がなく、他の処理を行うことができる。
【００１６】
また、本発明の文字認識回路では、動作終了の割り込みが発生した時点が、シリアル入力信号がマスクされてから、少なくとも１キャラクタ分以上の時間が経過しているため、上位アプリケーションが、動作終了の割り込み発生のタイミングから１キャラクタ分の時間内に、UARTにおけるATコマンド解析時の受信データを読み出して破棄することにより、UARTでは、３文字目以降のATコマンドを受信する際に、間違ったキャラクタなどの無効データの混入を防止することもできる。
【００１７】
また、本発明の文字認識回路では、シリアル入力信号におけるノイズおよびグリッジを除去することにより、誤認識や誤判定が防止できるため、シリアル通信速度およびキャラクタフォーマットの識別をより正確に行うことができる。
【発明を実施するための最良の形態】
【００１８】
次に添付図面を参照して、本発明による文字認識回路の実施例を詳細に説明する。たとえば、本発明の文字認識回路10は、図１に示すように、CPUインタフェース回路12と接続する制御回路14に制御されて、スタートビット期間測定回路16およびボーレート選択回路18で通信速度を決定し、この通信速度を用いて内部クロック発生回路20で内部クロックを発生させ、この内部クロックに従ってキャラクタ検出回路22でATコマンドにおけるキャラクタを検出してキャラクタ識別回路24でこのキャラクタを識別し、この識別結果に応じてキャラクタフォーマット選択回路26で送受信データのキャラクタフォーマットを選択する回路である。なお、本発明の理解に直接関係のない部分は、図示を省略し、冗長な説明を避ける。
【００１９】
また、文字認識回路10は、マスタークロック信号112の入力を切り替えるゲート回路28、およびシリアル入力信号108の出力を切り替えるマスク回路30を有する。
【００２０】
本実施例において、文字認識回路10は、図１に示すように、汎用非同期送受信回路（Universal Asynchronous Receiver Transmitter：UART）42と接続して、アナログ・モデムやターミナルアダプタなどのデータ回線終端装置（Data Circuit terminating Equipment：DCE）40に搭載されるものである。
【００２１】
DCE 40は、パーソナルコンピュータなどのデータ端末装置（Data Terminal Equipment：DTE）と、RS232CやITU-T勧告V.24に記載されたインタフェースで接続されて、たとえばRS232Cを介して調歩同期方式のシリアル入力信号108を入力するものである。本回路10は、DCE 40自体からこのシリアル入力信号108を入力して、シリアル入力信号108により供給されるATコマンドを解析するもので、その結果、ATコマンドに基づいて得たキャラクタフォーマットをUART 42に設定することにより、UART 42が、このキャラクタフォーマットに基づいてシリアルデータを送受信可能となる。
【００２２】
また、本回路10は、DCE 40自体が用いるリセット信号106およびマスタークロック信号112を入力するとよい。
【００２３】
本実施例において、CPUインタフェース回路12は、DCE 40のCPUとCPUバス信号102により接続して制御信号をやり取りし、CPUから入力する制御信号120を制御回路14に供給し、他方、制御回路14からの指示に応じてCPUに割込信号104を出力する。
【００２４】
CPUインタフェース回路12は、たとえば、DCE 40としてアナログ・モデム装置が適用されている場合、モデム制御プログラムなどの上位アプリケーションによってDCE 40のCPUから供給される命令を、CPUバス信号102を介して受ける。
【００２５】
制御回路14は、本回路10全体の動作を制御、統括する制御機能部である。本実施例の制御回路14は、DCE 40自体から供給されるリセット信号106に応じて本回路10を初期化し、上位アプリケーションによりDCE 40のCPUからCPUインタフェース回路12を介して供給される制御信号120によって命令を受けて、たとえば、AT文字解析の開始命令を受けて本回路10の動作を開始する。また、制御回路14は、AT文字解析の開始命令として、エコーバック有無情報などの他の情報を含む命令を入力するとよく、上位アプリケーションが把握しているキャラクタフォーマットを含んでもよい。
【００２６】
また、制御回路14は、割り込みを発生させることができ、たとえば、本回路10のAT文字解析の終了を示す割込信号を、制御信号120によって出力し、CPUインタフェース回路12を介してDCE 40のCPUに供給することができる。
【００２７】
本実施例の制御回路14は、スタートビット期間測定回路16、ボーレート選択回路18、内部クロック発生回路20、キャラクタ検出回路22、キャラクタ識別回路24、キャラクタフォーマット選択回路26、ゲート回路28およびマスク回路30と接続して制御することができ、それぞれを制御信号122、124、126、128、130、132、134、および136によって制御する。
【００２８】
スタートビット期間測定回路16は、DCE 40自体からシリアル入力信号108を入力して、シリアル入力信号108により供給されるATコマンドのスタートビット期間を検出し、さらにゲート回路28からのサンプリングクロック信号154のクロック数をこのスタートビット期間において測定して、その測定結果を測定カウント信号138によってボーレート選択回路18に出力するものである。
【００２９】
本実施例のスタートビット期間測定回路16は、制御回路14からスタートビット検出開始を指示する制御信号122を受けてスタートビットの検出を開始し、たとえばシリアル入力信号108のレベルを監視してスタートビットを検出することによりスタートビット期間を検出するもので、また、測定結果が得られたときに測定終了を制御信号122によって制御回路14に通知する。
【００３０】
ボーレート選択回路18は、スタートビット期間測定回路16からの測定カウント信号138に応じてボーレートを選択し、その選択結果に応じた内部クロック設定値を示すボーレート信号140を内部クロック発生回路20に出力するものである。また、ボーレート選択回路18は、ボーレート選択が終了したときに、ボーレート選択終了を制御信号124によって制御回路14に通知する。
【００３１】
たとえば、ボーレート選択回路18は、測定カウント信号138が示すクロック数に基づいて、適したボーレート、すなわちシリアル通信速度を選択し、この速度に対応する内部クロック設定値を検出する。また、ボーレート選択回路18は、内部クロック設定値だけでなくシリアル通信速度を含むボーレート信号140を出力してもよい。
【００３２】
本実施例のボーレート選択回路18は、クロック数、シリアル通信速度および内部クロック設定値の対応関係をあらかじめ設定して記憶し、図２に示すように、これらの対応関係を格納したリストをメモリまたはレジスタに保持するとよい。ボーレート選択回路18は、クロック数に基づいてこのリストを参照することにより、シリアル通信速度を選択し、内部クロック設定値を検出することができる。
【００３３】
ボーレート選択回路18は、図２に示すリストでは、内部クロック設定値として、シリアル通信速度を所定の内部クロック定数倍して設定した周波数を保持し、たとえば、シリアル通信速度を16倍した値を設定している。図２に示すリストでは、マスタークロック信号112が3.6864MHzであるとき、たとえば、スタートビット期間内のクロック数が１〜24クロックの範囲内の場合、対応するシリアル通信速度を230400bpsとし、内部クロックの設定周波数を3.6864MHzとして設定している。また、ボーレート選択回路18は、図２に示すように、内部クロック分周比を内部クロック設定値としてもよい。
【００３４】
また、ボーレート選択回路18は、シリアル通信速度に対応するDLM値およびDLL値を図２に示すリストに保持してよく、書き込みを指示する制御信号124を制御回路14から受けて、選択されたシリアル通信速度に応じたDLM値およびDLL値をこのリストから得てボーレート設定信号142によってUART 42に出力して設定してもよい。
【００３５】
内部クロック発生回路20は、ボーレート選択回路18からのボーレート信号140に応じて、ゲート回路28からのサンプリングクロック信号154に基づいた内部クロック信号144を発生させるものである。また、内部クロック発生回路20は、内部クロックの発生を開始したときに、この内部クロックの発生開始を制御信号126によって制御回路14に通知する。
【００３６】
たとえば、内部クロック発生回路20は、ボーレート信号140が示す内部クロック設定値に従って、サンプリングクロック信号154を逓倍または分周して、内部クロックを発生させてよい。
【００３７】
キャラクタ検出回路22は、DCE 40自体からシリアル入力信号108を入力し、内部クロック発生回路20からの内部クロック信号144を用いて、シリアル入力信号108により供給されるATコマンドにおけるキャラクタを検出し、その検出結果をキャラクタ信号146によってキャラクタ識別回路24に供給する。また、キャラクタ検出回路22は、制御回路14からキャラクタ検出開始を指示する制御信号128を受けてキャラクタ検出を開始する。
【００３８】
ところで、シリアル入力信号108におけるATコマンドでは、図４および図５に示すように、シリアル通信速度に応じた周期で各ビットデータが示され、すなわち、この周期は、内部クロック信号144の内部クロック定数分に、たとえば16クロック分になっている。本実施例のキャラクタ検出回路22は、各ビットデータを、その周期の中間に当たるタイミング、すなわち内部クロック信号144が内部クロック定数の半数分経過したタイミング、たとえば第８クロック目で読み出すことができる。
【００３９】
本実施例において、キャラクタ検出回路22は、シリアル入力信号108のATコマンドから、先頭および２番目の文字、すなわち第１および第２キャラクタを検出する。また、本実施例のキャラクタ検出回路22は、制御信号128が第１キャラクタの検出開始を指示する場合、第１キャラクタの検出を開始し、第２キャラクタの検出開始を指示する場合、第２キャラクタの検出を開始する。
【００４０】
たとえば、キャラクタ検出回路22は、第１キャラクタを検出する場合、シリアル入力信号108のATコマンドに対して、図４に示すように、bit0〜bit7の各区間の中間に当たる内部クロック信号144のタイミングでビットデータを読み出して、bit0〜bit7の８ビット分のビットデータを得て第１キャラクタ値を取得する。キャラクタ検出回路22は、これら８ビット分のビットデータに基づくASCIIコードを第１キャラクタとしてキャラクタ信号146を生成してよい。
【００４１】
このキャラクタ検出回路22は、第１キャラクタにおけるスタートビット期間の終了と実質的に同時に、第１キャラクタの検出開始を指示する制御信号128を受け、また、内部クロック発生回路20からの最初の内部クロック信号144を受けることができる。また、キャラクタ検出回路22は、第１キャラクタにおけるスタートビット期間の終了時点から遅れて、この最初の内部クロック信号144を受けてもよい。キャラクタ検出回路22は、この最初の内部クロック信号144の受信タイミングに拘らず、bit0の区間の中間に当たる内部クロック信号144のタイミングで、第１キャラクタのbit0のビットデータを読み出すように、読み出しタイミングを調整するとよい。キャラクタ検出回路22は、たとえば、このbit0の読み出しタイミングを基準にしてシリアル通信速度に応じた周期ごとに、第１キャラクタのbit1〜bit7の読み出しタイミングを計るものでよい。
【００４２】
また、キャラクタ検出回路22は、第１キャラクタのbit7の次のビット区間の中間に当たる内部クロック信号144のタイミングで、ビットデータを読み出し、第１キャラクタのSTOPビット値を取得する。キャラクタ検出回路22は、このSTOPビット値の取得時点で、キャラクタ信号146によりキャラクタ識別回路24に第１キャラクタ値とSTOPビット値を通知する。またキャラクタ検出回路22は、制御信号128によって、制御回路14に対して第１キャラクタの受信終了を通知する。
【００４３】
また、たとえば、キャラクタ検出回路22は、第２キャラクタを検出する場合、第１キャラクタの検出と同様にして、シリアル入力信号108のATコマンドに対して、図４に示すように、bit0〜bit7の各区間の中間に当たる内部クロック信号144のタイミングで、bit0〜bit7の８ビット分のビットデータを読み出して第２キャラクタ値を取得する。キャラクタ検出回路22は、これら８ビット分のビットデータに基づくASCIIコードを第２キャラクタとしてキャラクタ信号146を生成してよい。
【００４４】
このキャラクタ検出回路22では、図５に示すように、シリアル入力信号108が「H」レベルから「L」レベルに変化してから、シリアル通信速度に応じた周期、すなわち内部クロック信号144が内部クロック定数分だけ経過した時点、すなわち第２キャラクタにおけるスタートビット期間が終了した時点を、第２キャラクタのbit0の区間の開始時点とする。キャラクタ検出回路22は、この第２キャラクタのbit0の区間の開始時点の後、内部クロック定数の半数分の内部クロック信号144のタイミングで、bit0のビットデータを読み出すことができる。また、キャラクタ検出回路22は、たとえば、第１キャラクタの検出と同様にして、このbit0の読み出しタイミングを基準にして、シリアル通信速度に応じた周期ごとに、第２キャラクタのbit1〜bit7の読み出しタイミングを計るものでよい。
【００４５】
また、キャラクタ検出回路22は、第１キャラクタ検出時と同様にして、第２キャラクタのbit7の次のビット区間の中間に当たる内部クロック信号144のタイミングで、ビットデータを読み出し、第２キャラクタのSTOPビット値を取得する。キャラクタ検出回路22は、このSTOPビット値の取得時点で、キャラクタ信号146によりキャラクタ識別回路24に第２キャラクタ値とSTOPビット値を通知する。またキャラクタ検出回路22は、制御信号128によって、制御回路14に対して第２キャラクタの受信終了を通知する。
【００４６】
キャラクタ識別回路24は、キャラクタ検出回路22から供給されるキャラクタ信号146のキャラクタ値およびSTOPビット値を識別して、そのキャラクタがATコマンドを示すか否かを判定するものである。
【００４７】
本実施例のキャラクタ識別回路24は、キャラクタ検出回路22からのキャラクタ信号146が示す、第１キャラクタ値のASCIIコードが41hまたはC1hで、かつSTOPビット値が「1」の場合、第１キャラクタを「A」と識別し、第１キャラクタ値のASCIIコードが61hまたはE1hで、かつSTOPビット値が「1」の場合、第１キャラクタを「a」と識別して、この識別結果の第１キャラクタをメモリなどに保持する。また、キャラクタ識別回路24は、この識別結果が「A」または「a」以外の場合、制御信号130によって制御回路14に第１キャラクタの受信の失敗を通知し、識別結果が「A」または「a」の場合、制御信号130によって制御回路14に第１キャラクタの受信の成功を通知する。
【００４８】
また、キャラクタ識別回路24は、エコーバックを指示する制御信号130を制御回路14から受けるとき、保持している第１キャラクタをエコーバック信号150によってUART 42のTHRレジスタに書き込むとよい。
【００４９】
また、キャラクタ識別回路24は、キャラクタ検出回路22からのからのキャラクタ信号146が示す、第２キャラクタ値のASCIIコードが41hまたはC1hで、かつSTOPビット値が「1」の場合、第２キャラクタを「A」と識別し、第２キャラクタ値のASCIIコードが61hまたはE1hで、かつSTOPビット値が「1」の場合、第２キャラクタを「a」と識別し、第２キャラクタ値のASCIIコードが54hまたはD4hで、かつSTOPビット値が「1」の場合、第２キャラクタを「T」と識別し、第２キャラクタ値のASCIIコードが74hまたはF4hで、かつSTOPビット値が「1」の場合、第２キャラクタを「t」と識別し、第２キャラクタ値のASCIIコードが2FhまたはAFhで、かつSTOPビット値が「1」の場合、第２キャラクタを「/」と識別して、この識別結果の第２キャラクタをメモリなどに保持する。
【００５０】
また、キャラクタ識別回路24は、この識別結果が「A」または「a」の場合、保持している第２キャラクタを第１キャラクタとしてメモリに保持し、制御信号130によって、制御回路14に第２キャラクタの受信において「A」または「a」が受信されたことを通知する。
【００５１】
キャラクタ識別回路24は、この識別結果が「A」または「a」以外であって、「T」、「t」または「/」以外の場合、制御信号130によって、制御回路14に第２キャラクタの受信が失敗したことを通知する。
【００５２】
キャラクタ識別回路24は、この識別結果が「T」、「t」または「/」である場合、制御信号130によって、第２キャラクタ受信の終了を制御回路14に通知し、さらに、保持している第１キャラクタおよび第２キャラクタを識別キャラクタ信号148によってキャラクタフォーマット選択回路26に通知する。
【００５３】
キャラクタフォーマット選択回路26は、キャラクタフォーマットの取得を指示する制御信号132を制御回路14から受けて、UART 42のLCRレジスタからキャラクタフォーマット設定信号152を介してキャラクタフォーマットを取得し、そのキャラクタフォーマットを保持する。
【００５４】
また、キャラクタフォーマット選択回路26は、標準のキャラクタフォーマットの設定を指示する制御信号132を制御回路14から受けて、エラーとならない標準のキャラクタフォーマットを、キャラクタフォーマット設定信号152を介してUART 42のLCRレジスタに書き込んで設定する。このとき、キャラクタフォーマット選択回路26は、図３に示すようなキャラクタフォーマット「DATA=8bit, Parity=Non, Stop=1bit」をLCRレジスタに設定してよい。
【００５５】
また、キャラクタフォーマット選択回路26は、キャラクタ識別回路24から供給される識別キャラクタ信号148に応じて、識別キャラクタ信号148が示すキャラクタを判定し、本実施例では、第１キャラクタおよび第２キャラクタの組み合わせ結果を判定して、この組み合わせの成功または失敗を制御信号132によって制御回路14に通知する。
【００５６】
本実施例のキャラクタフォーマット選択回路26は、図３に示すように、第１キャラクタおよび第２キャラクタの組み合わせを識別結果ならびにキャラクタフォーマットと対応させてあらかじめ格納したリストをメモリまたはレジスタに保持してよく、この組み合わせに基づいて図３に示すリストを参照して識別結果を検出し、キャラクタフォーマットを選択することができる。本実施例において、キャラクタフォーマット選択回路26は、図３に示すように、データ長、パリティ種別およびSTOPビット長で識別可能なキャラクタフォーマットを格納して、このキャラクタフォーマットを本回路10で使用することができる。また、この図３に示すリストでは、第１キャラクタおよび第２キャラクタの組み合わせを、ASCIIコードによっても区別して格納してよい。
【００５７】
たとえば、キャラクタフォーマット選択回路26は、この組み合わせが「At」または「aT」の場合、図３に示すリストからキャラクタフォーマットを選択することができず、組み合わせが失敗したことを制御信号132によって制御回路14に通知する。
【００５８】
また、キャラクタフォーマット選択回路26は、この組み合わせが、「AT」、「at」または「A/」の場合、図３に示すリストから対応するキャラクタフォーマットを選択する。
【００５９】
また、キャラクタフォーマット選択回路26は、この組み合わせが、「a/」の場合、ASCIIコードの組み合わせをも判定する。この選択回路26は、ASCIIコードの組み合わせが、「61h」および「2Fh」、または「E1h」および「AFh」以外の場合には、図３に示すリストからキャラクタフォーマットを選択することができず、組み合わせが失敗したことを制御信号132によって制御回路14に通知する。他方、この選択回路26は、ASCIIコードの組み合わせが、「61h」および「2Fh」、または「E1h」および「AFh」の場合には、図３に示すように、それまで選択されていたキャラクタフォーマット、すなわち当該選択回路26が保持していたキャラクタフォーマットを再選択する。
【００６０】
さらに、キャラクタフォーマット選択回路26は、選択されたキャラクタフォーマットを、キャラクタフォーマット設定信号152によってUART 42のLCRレジスタヘ設定し、その後、第１キャラクタおよび第２キャラクタと、選択されたキャラクタフォーマットと、UART 42への設定終了とを制御信号132によって制御回路14に通知する。
【００６１】
ゲート回路28は、制御回路14からの制御信号134に応じて、マスタークロック信号112を透過してサンプリングクロック信号154としてスタートビット期間測定回路16および内部クロック発生回路20に出力し、または、透過せずにサンプリングクロック信号154の出力を停止するものである。
【００６２】
マスク回路30は、制御回路14からの制御信号136に応じて、シリアル入力信号108を透過してマスク出力信号156としてUART 42に出力し、または、シリアル入力信号108をマスクしてマスク出力信号156の出力を停止するものである。たとえば、マスク回路30は、シリアル入力信号108をマスクする場合、「1」状態のマスク出力信号156を出力するとよい。
【００６３】
UART 42は、調歩同期方式のシリアルデータ送受信回路であり、通信速度およびキャラクタフォーマットを、DCE 40と接続するDTEにおける調歩同期方式の通信速度およびキャラクタフォーマットと一致させて動作することにより、DCE 40のATコマンドの受信を可能とする。
【００６４】
本実施例のUART 42は、クロック入力CLKにはマスタークロック信号112を入力し、シリアルデータ入力SINにはマスク出力信号156を入力し、シリアルデータ出力SOUTからはシリアル出力信号110を出力する。
【００６５】
さらに、UART 42は、キャラクタフォーマットを格納するLCR（Line Control Register）レジスタ、シリアル通信速度を格納するDLM（Divisor Latch：MS）レジスタおよびDLL（Divisor Latch：LS）レジスタ、およびシリアルデータを格納するTHR（Transmitter Holding Register）レジスタを有し、キャラクタフォーマット設定信号152によってLCRレジスタの書き込みおよび読み出しを可能とし、ボーレート設定信号142によってDLMレジスタおよびDLLレジスタの書き込みを可能とし、さらにエコーバック信号150によってTHRレジスタの書き込みを可能にする。
【００６６】
次に、本実施例における文字認識回路10について、シリアル入力信号に応じた内部クロックを発生させる動作を図６のフローチャートを参照しながら説明する。
【００６７】
文字認識回路10では、まずリセット信号106がDCE 40自体から供給されて、制御回路14に入力する。
【００６８】
このとき、制御回路14では、リセット信号106に応じて、本回路10の動作状態が初期化されて、クロック停止状態（ステップS202）になる。
【００６９】
クロック停止状態の制御回路14では、クロック停止を指示する制御信号134が、ゲート回路28に供給されて、ゲート回路28において、マスタークロック信号112が透過されずにサンプリングクロック信号154の出力が停止される。
【００７０】
また、クロック停止状態の制御回路14では、シリアル入力の透過を指示する制御信号136が、マスク回路30に供給されて、マスク回路30において、シリアル入力信号108が透過されて、マスク出力信号156がUART 42のシリアルデータ入力SINに出力される。これにより、UART 42では、通常の動作が実行可能となる。
【００７１】
次に、制御回路14では、開始命令待機状態（ステップS204）となり、上位アプリケーションによりDCE 40のCPUからCPUインタフェース回路12を介して供給される制御信号120が、AT文字解析の開始命令を示すか否かを判定する。この制御信号120による開始命令は、エコーバック有無情報などの他の情報を含む命令でよく、上位アプリケーションが把握しているキャラクタフォーマットを含んでもよい。
【００７２】
開始命令待機状態の制御回路14では、制御信号120がAT文字解析の開始命令を示す場合、クロック開始状態（ステップS206）に進み、示さない場合、この開始命令が入力するまで待機する。
【００７３】
クロック開始状態の制御回路14では、まず、クロックの透過を指示する制御信号134が、ゲート回路28に供給されて、ゲート回路28において、マスタークロック信号112が透過されて、スタートビット期間測定回路16および内部クロック発生回路20へのサンプリングクロック信号154の供給が開始される。
【００７４】
次に、制御回路14では、シリアル入力の停止を指示する制御信号136が、マスク回路30に供給されて、マスク回路30において、シリアル入力信号108が透過されずにマスク出力信号156の出力が停止される。このとき、マスク回路30では、「1」状態のマスク出力信号156が、UART 42のシリアルデータ入力SINに出力されてよく、これにより、UART 42では、「入力なし」と判断される。
【００７５】
さらに、クロック開始状態の制御回路14では、キャラクタフォーマットの取得を指示する制御信号132が、キャラクタフォーマット選択回路26に供給される。このとき、キャラクタフォーマット選択回路26では、キャラクタフォーマットの取得を指示するキャラクタフォーマット設定信号152がUART 42に供給され、UART 42のLCRレジスタからキャラクタフォーマット設定信号152を介してキャラクタフォーマットが取得されて保持される。また、キャラクタフォーマット選択回路26では、キャラクタフォーマットを保持したことを示す制御信号132が、制御回路14に供給されてもよい。
【００７６】
また、クロック開始状態の制御回路14では、上位アプリケーションが把握しているキャラクタフォーマットを示す制御信号132が、キャラクタフォーマット選択回路26に供給されて、キャラクタフォーマット選択回路26でそのキャラクタフォーマットが取得されて保持されてもよい。
【００７７】
次に、制御回路14では、たとえば、キャラクタフォーマットを保持したことを示す制御信号132がキャラクタフォーマット選択回路26から供給されたときに、スタートビット検出状態（ステップS208）となる。スタートビット検出状態の制御回路14では、スタートビット検出の開始を指示する制御信号122が、スタートビット期間測定回路16に供給される。
【００７８】
このとき、スタートビット期間測定回路16では、スタートビットの検出が開始され、DCE 40自体から入力されるシリアル入力信号108が監視されて、「H」レベルか「L」レベルかが判定される。ここで、シリアル入力信号108が、「H」レベルから「L」レベルへ変化したとき、これが第１の変化として検出される。
【００７９】
スタートビット期間測定回路16では、第１の変化が検出されると、スタートビット期間測定状態（ステップS210）に進むが、検出されない場合、図６に示すように、ステップＦに進んで、第１の変化が検出されるまでスタートビット検出状態が続く。
【００８０】
スタートビット期間測定状態におけるスタートビット期間測定回路16では、第１の変化の後に再度シリアル入力信号108が「H」レベルへ変化したとき、これが第２の変化として検出される。
【００８１】
本実施例のスタートビット期間測定回路16では、第１の変化から第２の変化までの間、すなわち第１の変化の後でシリアル入力信号108が「L」レベルである期間をスタートビット期間とし、この期間内のサンプリングクロック信号154がカウントされ、スタートビット期間内のクロック数が測定される。
【００８２】
また、スタートビット期間測定状態において、第１の変化の後に再度シリアル入力信号108が「H」レベルへ変化したとき、ボーレート選択状態（ステップS212）となって、スタートビット期間内のクロック数を示す測定カウント信号138が、ボーレート選択回路18に供給され、このとき、スタートビット期間の測定終了を示す制御信号122が制御回路14に通知される。
【００８３】
また、ボーレート選択状態では、ボーレート選択回路18において、測定カウント信号138が示すクロック数に応じた内部クロック設定値が選択される。このとき、ボーレート選択回路18では、このクロック数に基づいて図２に示すようなリストを参照して、シリアル通信速度および内部クロック設定値が選択されてよい。この内部クロック設定値は、ボーレート信号140によって内部クロック発生回路20に供給され、このとき、ボーレート選択終了を示す制御信号124が制御回路14に通知される。
【００８４】
次に、内部クロック発生回路20では、ボーレート選択回路18からのボーレート信号140が示す内部クロック設定値に従って、内部クロック信号144が発生してキャラクタ検出回路22に供給され、このとき、内部クロックの発生開始を示す制御信号126が制御回路14に通知される。
【００８５】
このようにして、内部クロックの発生が開始すると、図６に示すように、ステップＡに移行する。次に、ステップＡの後、第１キャラクタを受信する動作を図７のフローチャートを参照しながら説明する。
【００８６】
ここでは、まず、制御回路14において、内部クロックの発生開始を示す制御信号126に応じて、第１キャラクタ受信状態（ステップS220）となり、第１キャラクタの検出開始を指示する制御信号128が、キャラクタ検出回路22に供給されて第１キャラクタの検出が開始される。
【００８７】
キャラクタ検出回路22では、内部クロック発生回路20からの内部クロック信号144に応じて、DCE 40自体からのシリアル入力信号108から、ステップS210のスタートビット期間測定状態で検出したスタートビット期間の後のビットデータが読み出され、図４に示すように、第１キャラクタ値としてbit0〜bit7の８ビット分のビットデータが読み出される。このとき、本実施例におけるキャラクタ検出回路22では、各ビットデータの期間の中間に当たる内部クロック信号144に応じて、各ビットデータが読み出されるとよい。
【００８８】
さらに、キャラクタ検出回路22では、第１キャラクタのbit7ビットデータが読み出された後、STOPビットが読み出されて、第１キャラクタ値およびSTOPビット値を示すキャラクタ信号146がキャラクタ識別回路24に供給され、このとき、第１キャラクタの受信終了を示す制御信号128が制御回路14に通知される。
【００８９】
次に、キャラクタ識別回路24では、第１キャラクタ識別状態（ステップS222）となり、キャラクタ信号146が示す第１キャラクタ値のASCIIコードが判定される。このとき、このASCIIコードが41hまたはC1hで、かつキャラクタ信号146が示すSTOPビット値が「1」の場合、第１キャラクタは「A」と識別され、ASCIIコードが61hまたはE1hで、かつSTOPビット値が「1」の場合、第１キャラクタは「a」と識別されて、第１キャラクタ値がキャラクタ識別回路24に保持される。
【００９０】
さらに、キャラクタ識別回路24では、第１キャラクタ判定状態（ステップS224）に進み、第１キャラクタ識別状態での識別結果が「A」または「a」であるかが判定される。このとき、本実施例のキャラクタ識別回路24において、第１キャラクタ値が「A」または「a」でない場合、第１キャラクタの受信の失敗を示す制御信号130が制御回路14に通知され、ステップＦに移行して図６に示すスタートビット検出状態に移行する。他方、第１キャラクタ値が「A」または「a」である場合、第１キャラクタの受信の成功を示す制御信号130が制御回路14に通知され、制御回路14では、ボーレート設定状態（ステップS226）となる。
【００９１】
このボーレート設定状態において、制御回路14では、ステップS212のボーレート選択状態で選択したシリアル通信速度が、ボーレート選択回路18から制御信号124によって供給される。また、このとき、制御回路14では、書き込みを指示する制御信号124がボーレート選択回路18に供給され、ボーレート選択回路18では、このシリアル通信速度に応じたDLM値およびDLL値が、ボーレート設定信号142によってUART 42に出力され、DLMレジスタおよびDLLレジスタに書き込まれる。
【００９２】
さらに、制御回路14において、標準のキャラクタフォーマットの設定を指示する制御信号132がキャラクタフォーマット選択回路26に供給され、キャラクタフォーマット選択回路26では、エラーとならない標準のキャラクタフォーマットが、キャラクタフォーマット設定信号152によってUART 42に出力され、LCRレジスタに書き込まれる。
【００９３】
次に、制御回路14では、エコーバック判定状態（ステップS228）となり、CPUインタフェース回路12から供給される制御信号120による開始命令が、エコーバック有無情報を含むか否かが判定される。
【００９４】
ここで、制御回路14では、エコーバックありと判定される場合、第１キャラクタ書き込み状態（ステップS230）となり、書き込みを指示する制御信号130がキャラクタ識別回路24に供給され、キャラクタ識別回路24では、保持している第１キャラクタが、エコーバック信号150によってUART 42に供給されてTHRレジスタに書き込まれる。これにより、UART 42では、シリアルデータ出力SOUTから第１キャラクタに相当する出力が開始され、シリアル出力信号110が出力されて、DCE 40自体へのエコーバックとなる。このようにして書き込みが終了すると、図７に示すように、ステップＢに移行する。
【００９５】
また、第１キャラクタ書き込み状態の制御回路14では、エコーバックなしと判定される場合、第１キャラクタの書き込みは行われずに、図７に示すように、ステップＢに移行する。
【００９６】
次に、ステップＢの後、第２キャラクタを受信する動作を図８のフローチャートを参照しながら説明する。
【００９７】
ここでは、まず、制御回路14において、第１キャラクタの受信終了を示す制御信号128に応じて、第２キャラクタ受信状態（ステップS240）となり、第２キャラクタの検出開始を指示する制御信号128が、キャラクタ検出回路22に供給されて第２キャラクタの検出が開始される。
【００９８】
キャラクタ検出回路22では、内部クロック発生回路20からの内部クロック信号144に応じて、DCE 40自体からのシリアル入力信号108から、第２キャラクタのスタートビット期間の後のビットデータが読み出され、ステップS220の第１キャラクタ受信状態と同様にして、図５に示すように、第２キャラクタ値としてbit0〜bit7の８ビット分のビットデータ、およびSTOPビットが読み出される。
【００９９】
さらに、キャラクタ検出回路22では、第２キャラクタ値およびSTOPビット値を示すキャラクタ信号146がキャラクタ識別回路24に供給され、このとき、第２キャラクタの受信終了を示す制御信号128が制御回路14に通知される。
【０１００】
次に、キャラクタ識別回路24では、第２キャラクタ識別状態（ステップS242）となり、キャラクタ信号146が示す第２キャラクタ値のASCIIコードが判定される。このとき、このASCIIコードが41hまたはC1hで、かつキャラクタ信号146が示すSTOPビット値が「1」の場合、第２キャラクタは「A」と識別され、ASCIIコードが61hまたはE1hで、かつSTOPビット値が「1」の場合、第２キャラクタは「a」と識別され、ASCIIコードが54hまたはD4hで、かつSTOPビット値が「1」の場合、第２キャラクタは「T」と識別され、ASCIIコードが74hまたはF4hで、かつSTOPビット値が「1」の場合、第２キャラクタは「t」と識別され、ASCIIコードが2FhまたはAFhで、かつSTOPビット値が「1」の場合、第２キャラクタは「/」と識別されて、第２キャラクタ値がキャラクタ識別回路24に保持される。
【０１０１】
さらに、キャラクタ識別回路24では、第２キャラクタの第１判定状態（ステップS244）に進み、第２キャラクタ識別状態での識別結果が「A」または「a」であるかが判定される。このとき、本実施例のキャラクタ識別回路24において、第１キャラクタ値が「A」または「a」であると判定された場合、保持される第２キャラクタ値は、第１キャラクタ値としてキャラクタ識別回路24で保持され、第２キャラクタの受信において「A」または「a」が受信されたことが、制御信号130によって制御回路14に通知され、ステップＧに移行して図７に示すステップS228のエコーバック判定状態に移行する。
【０１０２】
他方、第２キャラクタの第１判定状態において、キャラクタ識別回路24にて、第２キャラクタ値が「A」または「a」でないと判定された場合、第２キャラクタの第２判定状態（ステップS246）に進む。
【０１０３】
第２キャラクタの第２判定状態のキャラクタ識別回路24では、第２キャラクタ識別状態での識別結果が「T」、「t」または「/」であるかが判定される。このとき、本実施例のキャラクタ識別回路24において、第１キャラクタ値が「T」、「t」または「/」でないと判定された場合、第２キャラクタの受信が失敗したことを示す制御信号130が、制御回路14に通知され、ステップＦに移行して図６に示すステップS208のスタートビット検出状態に移行する。
【０１０４】
他方、第２キャラクタの第２判定状態において、キャラクタ識別回路24にて、第２キャラクタ値が「T」、「t」または「/」であると判定された場合、第２キャラクタ受信の終了を示す制御信号130が、制御回路14に通知され、また、保持している第１キャラクタ値および第２キャラクタ値が、識別キャラクタ信号148によってキャラクタフォーマット選択回路26に通知される。
【０１０５】
このようにして、識別キャラクタ信号148が供給されると、図８に示すように、ステップＣに移行する。次に、ステップＣの後、キャラクタフォーマットを選択する動作を図９のフローチャートを参照しながら説明する。
【０１０６】
ここでは、まず、キャラクタフォーマット選択回路26において、第１キャラクタ値および第２キャラクタ値を含む識別キャラクタ信号148に応じて、第１の組み合わせ判定状態（ステップS260）となり、第１キャラクタ値および第２キャラクタ値との組み合わせが判定される。
【０１０７】
第１の組み合わせ判定状態において、第１キャラクタ値および第２キャラクタ値との組み合わせが、「At」または「aT」である場合、組み合わせが失敗したことを示す制御信号132が制御回路14に通知され、ステップＦに移行して図６に示すスタートビット検出状態に移行する。他方、この組み合わせが、「a/」である場合、第２の組み合わせ判定状態（ステップS262）に進み、また、「AT」、「at」もしくは「A/」である場合、第１のキャラクタフォーマット選択状態（ステップS264）に進む。
【０１０８】
第２の組み合わせ判定状態において、本実施例のキャラクタフォーマット選択回路26では、第１キャラクタ値および第２キャラクタ値のASCIIコードの組み合わせが判定される。ここで、ASCIIコードの組み合わせが、「61h」および「2Fh」、または「E1h」および「AFh」以外である場合、組み合わせが失敗したことを示す制御信号132が制御回路14に通知され、ステップＦに移行して図６に示すスタートビット検出状態に移行する。他方、ASCIIコードの組み合わせが、「61h」および「2Fh」、または「E1h」および「AFh」である場合、第２のキャラクタフォーマット選択状態（ステップS266）に進む。
【０１０９】
第１のキャラクタフォーマット選択状態において、本実施例のキャラクタフォーマット選択回路26では、第１キャラクタ値および第２キャラクタ値の組み合わせに基づいて、図３に示すようなキャラクタフォーマットのリストを参照して、該当するキャラクタフォーマットを選択し、キャラクタフォーマット設定状態（ステップS268）に進む。
【０１１０】
第２のキャラクタフォーマット選択状態において、本実施例のキャラクタフォーマット選択回路26では、図３のキャラクタフォーマットのリストに示すように、当該選択回路26がそれまで保持していたキャラクタフォーマット、すなわち、UART 42のLCRレジスタに設定されていたキャラクタフォーマットを選択し、キャラクタフォーマット設定状態（ステップS268）に進む。
【０１１１】
キャラクタフォーマット設定状態において、本実施例のキャラクタフォーマット選択回路26では、第１または第２のキャラクタフォーマット選択状態で選択されたキャラクタフォーマットが、キャラクタフォーマット設定信号152によってUART 42のLCRレジスタに設定される。その後、キャラクタフォーマット選択回路26では、第１キャラクタ値および第２キャラクタ値、設定されたキャラクタフォーマット、およびUART 42への設定終了を示す制御信号132が制御回路14に通知される。
【０１１２】
このようにして、キャラクタフォーマットが設定されると、制御回路14では、エコーバック判定状態（ステップS270）となり、CPUインタフェース回路12から供給される制御信号120による開始命令が、エコーバック有無情報を含むか否かが判定される。
【０１１３】
ここで、制御回路14では、エコーバックありと判定される場合、第２キャラクタ書き込み状態（ステップS272）となり、書き込みを指示する制御信号130がキャラクタ識別回路24に供給され、キャラクタ識別回路24では、保持している第２キャラクタが、エコーバック信号150によってUART 42に供給されてTHRレジスタに書き込まれる。これにより、UART 42では、シリアルデータ出力SOUTから第２キャラクタに相当する出力が開始され、シリアル出力信号110が出力されて、DCE 40自体へのエコーバックとなる。このようにして書き込みが終了すると、図９に示すように、終了状態（ステップS274）に進む。
【０１１４】
また、第２キャラクタ書き込み状態の制御回路14では、エコーバックなしと判定される場合、第２キャラクタの書き込みは行われずに、図９に示すように、終了状態（ステップS274）に進む。
【０１１５】
終了状態の制御回路14では、上位アプリケーションにAT文字解析の終了を通知する割り込みが発生し、この割り込みを指示する制御信号120がCPUインタフェース回路12に供給されて、この制御信号120に応じた割込信号104が、CPUインタフェース回路12からDCE 40のCPUへと供給され、AT文字解析の終了が通知される。このとき、制御回路14では、キャラクタフォーマット設定状態で得られた第１キャラクタ値および第２キャラクタ値、ならびに設定されたキャラクタフォーマットが、割り込みを指示する制御信号120によってCPUインタフェース回路12に供給され、さらに、CPUバス信号102によってCPUインタフェース回路12からCPUへと供給される。
【０１１６】
このようにして、AT文字解析の終了が通知されると、図９に示すように、ステップＥに移行して図６に示すステップS202のクロック停止状態に移行する。
【０１１７】
このように、クロック停止状態に移行する場合、ゲート回路28が制御信号134によってクロック停止を指示されて、マスタークロック信号112が透過されずにサンプリングクロック信号154の出力が停止されるので、内部クロック発生回路20における内部クロック信号144の発生が停止する。
【０１１８】
また、他の実施例として、文字認識回路300は、図10に示すように、DTEから調歩同期方式で送られてきたATコマンドに対して、動作クロックを用いてノイズおよびグリッジの除去を行うノイズ除去回路302を含み、第１文字のスタートビット幅の時間の測定と、第１文字および第２文字の受信とをより確実に行うことで、間違った通信速度の選択および間違ったキャラクタフォーマットの選択を防止することができるものである。
【０１１９】
ノイズ除去回路302は、ゲート回路28から供給されるサンプリングクロック信号154を用いて、シリアル入力信号108からノイズおよびグリッジを除去してノイズ除去出力信号302を生成し、スタートビット期間測定回路16およびキャラクタ検出回路22に供給するものである。
【０１２０】
ノイズ除去回路302は、複数のシフト回路を複数段カスケード接続するものでよく、本実施例では、図11に示すように、第１フリップフロップ304、第２フリップフロップ306および第３フリップフロップ308、ならびに第１NOR 310、第２NOR 312、第３NOR 314および第４NOR 316を含んで構成される。また、ノイズ除去回路302は、シリアル入力信号108を第１フリップフロップ304の入力Dに入力し、サンプリングクロック信号154を、第１フリップフロップ304、第２フリップフロップ306および第３フリップフロップ308のそれぞれのクロック入力CKに入力する。
【０１２１】
ノイズ除去回路302において、第１フリップフロップ304の出力QAは、第２フリップフロップ306の入力D、第１NOR 310の一方の入力、および第２NOR 312の一方の入力に接続される。また、第２フリップフロップ306の出力QAは、第３フリップフロップ308の入力D、第１NOR 310の他方の入力、および第３NOR 314の一方の入力に接続される。また、第３フリップフロップ308の出力QAは、第２NOR 312の他方の入力、および第３NOR 314の他方の入力に接続される。
【０１２２】
また、ノイズ除去回路302において、第１NOR 310の出力、第２NOR 312の出力および第３NOR 314の出力は、それぞれ、第４NOR 316に接続され、第４NOR 316の出力は、ノイズ除去出力信号302として出力される。
【０１２３】
また、本実施例において、スタートビット期間測定回路16およびキャラクタ検出回路22は、ノイズ除去出力信号302を、上記実施例によるシリアル入力信号108のように用いて処理する。
【０１２４】
次に、本実施例における文字認識回路300のノイズ除去回路302について、シリアル入力信号をノイズ除去する動作を図12のタイミングチャートを参照しながら説明する。
【０１２５】
ノイズ除去回路302では、第１フリップフロップ304の入力Dに入力されるシリアル入力信号108が、第１フリップフロップ304、第２フリップフロップ306および第３フリップフロップ308において、順次、ゲート回路28から出力されるサンプリングクロック信号154によるシフト動作が施される。
【０１２６】
このとき、第１フリップフロップ304では、シリアル入力信号108がサンプリングクロック信号154によりシフトされて、図12に示すような第１シフト出力322が出力QAから出力される。また、第２フリップフロップ306では、第１シフト出力322がサンプリングクロック信号154によりシフトされて、図12に示すような第２シフト出力324が出力QAから出力され、同様にして、第３フリップフロップ308では、第２シフト出力324がサンプリングクロック信号154によりシフトされて、図12に示すような第３シフト出力326が出力QAから出力される。
【０１２７】
次に、第１フリップフロップ304、第２フリップフロップ306および第３フリップフロップ308のQA出力において、いずれか２つ以上のQA出力が「L」レベルであるとき、第１NOR 310、第２NOR 312または第３NOR 314の１つ以上が「H」レベルの出力となり、その結果、第４NOR 316の出力であるノイズ除去出力信号320が「L」レベルとなって出力される。
【０１２８】
たとえば、図12に示すように時刻T330では、第１シフト出力322および第２シフト出力324が「L」レベルとなるので、ノイズ除去出力信号320が「L」レベルとなる。
【０１２９】
また、第１フリップフロップ304、第２フリップフロップ306および第３フリップフロップ308のQA出力において、いずれか１つのQA出力が「L」レベルであるとき、またはいずれのQA出力も「L」レベルでないときには、第１NOR 310、第２NOR 312または第３NOR 314のすべてが「L」レベルの出力となり、その結果、第４NOR 316の出力であるノイズ除去出力信号320が「H」レベルとなって出力される。
【０１３０】
たとえば、図12に示すように時刻T332では、第３シフト出力326のみが「L」レベルとなるので、ノイズ除去出力信号320が「H」レベルとなる。
【０１３１】
このようにして、ノイズ除去回路302が動作することにより、シリアル入力信号108における、サンプリングクロック信号154のクロック間隔以下のノイズやグリッジを除去することができ、このノイズ除去回路302の動作は、サンプリングクロック信号154が停止するまで継続するとよい。
【０１３２】
本実施例のノイズ除去回路302の動作は、図６に示すフローチャートにおいては、ステップS206のクロック開始状態になったときに、ゲート回路28でマスタークロック信号112が透過されると、ノイズ除去回路302へのサンプリングクロック信号154の供給が開始される。これにより、ノイズ除去回路302では、シリアル入力信号108のノイズ除去が開始される。
【０１３３】
また、本実施例のノイズ除去回路302の動作は、図９に示すフローチャートにおいて、ステップS274の終了状態でAT文字解析の終了が通知され、ステップＥに移行して図６に示すステップS202のクロック停止状態に移行した場合、このクロック停止状態では、ゲート回路28でマスタークロック信号112が透過されずにノイズ除去回路302へのサンプリングクロック信号154の供給が停止する。これにより、ノイズ除去回路302では、シリアル入力信号108のノイズ除去が停止する。
【０１３４】
また、本実施例のノイズ除去回路302の動作は、図６ないし図９に示すフローチャートにおいて、他の各ステップは、上記実施例と同様にして実行されてよく、特に、スタートビット期間測定回路16およびキャラクタ検出回路22では、ノイズ除去出力信号320が、上記実施例によるシリアル入力信号108のように用いられて処理される。
【０１３５】
また、ノイズ除去回路302では、サンプリングクロック信号154ではなくマスタークロック信号112を用いてシリアル入力信号108からノイズおよびグリッジを除去してノイズ除去出力信号302を生成してもよい。このとき、文字認識回路300のマスク回路30では、シリアル入力信号108ではなく、ノイズ除去回路302が出力するノイズ除去出力信号302を入力する。このように、ノイズ除去回路302を常に動作させることにより、文字認識回路300に接続するUART 42では、ノイズおよびグリッジを除去したマスク出力信号156を入力することができる。
【図面の簡単な説明】
【０１３６】
【図１】本発明に係る文字認識回路の一実施例、およびその適用例を示すブロック図である。
【図２】図１に示す実施例の文字認識回路において、スタートビット期間、シリアル通信速度および内部クロック設定値の関係を示す図である。
【図３】図１に示す実施例の文字認識回路において、ATコマンドの受信文字列およびキャラクタフォーマットの関係を示す図である。
【図４】図１に示す実施例の文字認識回路において、第１キャラクタ受信時における動作を説明するタイミングチャートである。
【図５】図１に示す実施例の文字認識回路において、第２キャラクタ受信時における動作を説明するタイミングチャートである。
【図６】図１に示す実施例の文字認識回路の内部クロック発生の動作手順を説明するフローチャートである。
【図７】図１に示す実施例の文字認識回路の第１キャラクタ受信の動作手順を説明するフローチャートである。
【図８】図１に示す実施例の文字認識回路の第２キャラクタ受信の動作手順を説明するフローチャートである。
【図９】図１に示す実施例の文字認識回路のキャラクタフォーマット選択の動作手順を説明するフローチャートである。
【図１０】本発明に係る文字認識回路の他の実施例、およびその適用例を示すブロック図である。
【図１１】図１０に示す実施例の文字認識回路におけるノイズ除去回路を示すブロック図である。
【図１２】図１１に示すノイズ除去回路における動作を説明するタイミングチャートである。
【符号の説明】
【０１３７】
10  文字認識回路
12  CPUインタフェース回路
14  制御回路
16  スタートビット期間測定回路
18  ボーレート選択回路
20  内部クロック発生回路
22  キャラクタ受信回路
24  受信キャラクタ識別回路
26  キャラクタフォーマット選択回路
28  ゲート回路
30  マスク回路
40  データ回線終端装置
42  汎用非同期送受信回路
【図１】
2007036850.tif 000003
【図２】
2007036850.tif 000004
【図３】
2007036850.tif 000005
【図４】
2007036850.tif 000006
【図５】
2007036850.tif 000007
【図６】
2007036850.tif 000008
【図７】
2007036850.tif 000009
【図８】
2007036850.tif 000010
【図９】
2007036850.tif 000011
【図１０】
2007036850.tif 000012
【図１１】
2007036850.tif 000013
【図１２】
2007036850.tif 000014