(57)【特許請求の範囲】
【請求項１】
送信データの極性変化点間の幅を検出する検出手段と、
該極性変化点間の極性を検出して極性データを得る第１判定手段と、
該極性変化点間の幅を該送信データの通信速度に応じて正規化して正規化データを得る正規化手段と、
モデム初期化直後に該通信速度を検出するとともに、該正規化データを参照して該極性変化点間の幅が該送信データの何ビットかを示すビット数を検出する第２判定手段と、
該第２判定手段での検出ビット数のビットデータ極性を前記極性データから検出し、極性が検出されたビットデータの配列が所定の特定文字のフォーマットのビットパターンと一致する際に、前記送信データに含まれる特定文字のフォーマットを示すフォーマット情報を出力する第３判定手段と、
を具備したことを特徴とするモデム装置。
【請求項２】
前記第２判定手段が、前記極性変化点間幅データに対応するアドレスの記憶領域に該通信速度を示すデータが記憶された第１テーブルを検索することにより前記送信データの通信速度を検出すること、
を特徴とする請求項１記載のモデム装置。
【請求項３】
前記第１テーブルは、前記送信データに所定量の偏差が生じた場合に得られる前記極性変化点間幅データに対応するアドレスを有し、
前記アドレスの記憶領域に、該偏差が生じない場合に得られる該極性変化点間幅データのアドレスの記憶領域に記憶されるデータを記憶し、該所定量の偏差を許容するようにしたこと、
を特徴とする請求項２記載のモデム装置。
【請求項４】
前記第２判定手段は、前記正規化データに対応するアドレスの記憶領域に前記ビット数を示すデータが記憶された第２テーブルを検索することにより該ビット数を検出すること、
を特徴とする請求項３記載のモデム装置。
【請求項５】
前記第２テーブルは、前記送信データに所定量の偏差が生じた場合に得られる前記正規化データに対応するアドレスを有し、
前記アドレスの記憶領域に、該偏差が生じない場合に得られる該正規化データのアドレスの記憶領域に記憶されるデータを記憶し、該所定量の偏差を許容するようにしたこと、
を特徴とする請求項４記載のモデム装置。
【請求項６】
前記第３判定手段に、前記送信データのスタートビット以降の極性変化時刻毎に判定処理を行う複数のルーチン系列を備え、
前記各ルーチン系列はビット極性及びビット数の期待値を有し、送信データが該期待値に一致するか否かを判定することによって前記フォーマット情報を出力すること、
を特徴とする請求項５記載のモデム装置。
【請求項７】
前記第３判定手段に、前記特定文字のフォーマットが複数の場合に、これらに対応する複数の前記ルーチン系列を備え、
前記各ルーチン系列は複数のサブルーチンを有し、各サブルーチン処理において前記送信データが前記期待値と一致した際に、同一ルーチン系列内の次の極性変化点時刻に対応付けられたサブルーチンを指定し、最後のサブルーチンにて送信データと期待値との一致が得られた場合に、この一致が得られたルーチン系列に対応する特定文字のフォーマット情報を出力すること、
を特徴とする請求項６記載のモデム装置。
【請求項８】
前記ルーチン系列の内、前記特定文字の最終ビット極性がストップビット極性と同一となるルーチン系列において、
該特定文字に対応する前記送信データの最後の極性変化時刻から該ストップビット入力時刻間に対応する時間をタイマに設定し、タイムアップ後にストップビットが入力された際に前記期待値に一致し続けたルーチン系列に対応する特定文字のフォーマット情報を出力すること、
を特徴とする請求項６記載のモデム装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は通信モデムにおける通信速度／キャラクタフォーマット識別方式に関する。
【０００２】
近年のパソコン通信モデムでは、利便性向上のため端末データの通信速度（ビット速度）／キャラクタフォーマットを、パソコンから特別な設定手段をこうじることなく自動識別する仕様になっている。
【０００３】
具体的には、ローカルコマンドモード時にパソコンからモデムへ「ＡＴ」文字で始まるコマンドを送出し、この時のビット速度／パリティビットの極性を判定することによって通信速度／キャラクタフォーマットを自動識別するものである。
【０００４】
【従来の技術】
パソコン通信モデムでは、コマンド行の先頭はＡＴ文字で始まることが規定されている。ＡＴ文字のＡはヘキサで「４１」のコードでありビット数が偶数、Ｔは「５４」のコードであり奇数である。即ちＡＴ文字の場合は先頭が偶数、後ろが奇数となっている。
【０００５】
このような配列のＡＴ文字のビット列の８ビット／７ビットが、「０／１」の偶数パリティであるか、「１／０」の奇数パリティであるか、「１／１」のパリティ無しであるか、またストップビットが１ビットであるか２ビットであるかを検査することにより、ビット速度／キャラクタフォーマットを自動識別している。
【０００６】
従来のパソコン通信モデムにおいては、ＡＴ文字を以下に説明するビット・サンプリングによって自動識別していた。この通信速度自動識別手順を図２５を参照して説明する。
【０００７】
図２５において、（ａ）〜（ｅ）は、パソコンからシリアルに送出される、３８．４Ｋｂｐｓ、１９．２Ｋｂｐｓ、９６００ｂｐｓ  、４８００ｂｐｓ  、２４００ｂｐｓ  の速度のＳＤ（Ｓｅｎｄｉｎｇ  Ｄａｔａ）信号（クロック信号）の波形を示すものである。
【０００８】
図２５に示す時刻ｔ１において、ＡＴ文字の先頭に付加されるスタートビットを検出する。これは、ＳＤ信号の立ち下がりエッジによる極性変化点を検出することによってスタートビットを検出するものである。
【０００９】
次に、時刻ｔ２において、時刻ｔ１の極性変化点から装置仕様中の最大ビット速度（この例では３８．４Ｋｂｐｓの場合）の１ビット分×０．５の時間経過後、即ち時刻ｔ２で示す１ビット目の中央をサンプリングする。中央をサンプリングするのはノイズ、ジッタ等を避けるためである。
【００１０】
ここでは、ＳＤ信号が立ち下がったままの状態をサンプリングするので正常であればその結果の信号極性は「０」となる。
時刻ｔ２の１回目のサンプリング結果が「０」であることが確認された場合は、時刻ｔ２から１ビット幅遅れた２ビット目の中央の時刻ｔ３において、２回目のサンプリングを行う。
【００１１】
この２回目のサンプリング結果が「１」であれば、１ビット毎に「０」、「１」と変化したことが分かる。その「１」がＡＴ文字のＡのＬＳＢである。ここで、「ＡＴ」コマンドのＬＳＢの「１」がきたことが分かるので、通信速度が３８．４Ｋｂｐｓと判定できる。３８．４Ｋｂｐｓと判定されたので以降、先の１ビット間隔でサンプリングを行う。
【００１２】
一方、時刻ｔ３で示す２回目のサンプリング結果が「０」であれば、時刻ｔ３から３８．４Ｋｂｐｓの１ビット分×１．５の時間経過後、即ち時刻ｔ４で示す位置で、３回目のサンプリングを行う。
【００１３】
この３回目のサンプリング結果が「１」であれば通信速度が１９．２Ｋｂｐｓと判定し、以降、時刻ｔ３とｔ４との幅である１９．２Ｋｂｐｓの１ビット毎にサンプリングを行う。
【００１４】
時刻ｔ４で示す３回目のサンプリング結果が「０」であれば、時刻ｔ４から３８．４Ｋｂｐｓの１ビット分×３の時間経過後、即ち時刻ｔ５で示す位置で、４回目のサンプリングを行う。
【００１５】
この４回目のサンプリング結果が「１」であれば通信速度が９６００ｂｐｓ  と判定し、以降、時刻ｔ４とｔ５との幅である９６００ｂｐｓ  の１ビット毎にサンプリングを行う。
【００１６】
時刻ｔ５で示す４回目のサンプリング結果が「０」であれば、時刻ｔ５から３８．４Ｋｂｐｓの１ビット分×６の時間経過後、即ち時刻ｔ６で示す位置で、５回目のサンプリングを行う。
【００１７】
この５回目のサンプリング結果が「１」であれば通信速度が４８００ｂｐｓ  と判定し、以降、時刻ｔ５とｔ６との幅である４８００ｂｐｓ  の１ビット毎にサンプリングを行う。
【００１８】
時刻ｔ６で示す５回目のサンプリング結果が「０」であれば、時刻ｔ６から３８．４Ｋｂｐｓの１ビット分×１２の時間経過後、即ち時刻ｔ７で示す位置で、６回目のサンプリングを行う。
【００１９】
この６回目のサンプリング結果が「１」であれば通信速度が２４００ｂｐｓ  と判定し、以降、時刻ｔ６とｔ７との幅である２４００ｂｐｓ  の１ビット毎にサンプリングを行う。
【００２０】
以上の手順によって判定したビット速度にて１０ビット分をサンプリングする。１０ビット分とは、Ａの８ビットとスタートビットの１ビット及びストップビットの１ビットの合計である。
【００２１】
このサンプリング結果得られるビット列が「０１０００００１０１」であればＡ文字入力完了となる。続いてのサンプリングで「０００１０１０１０１」がサンプリングされればＴ文字入力完了となる。
【００２２】
【発明が解決しようとする課題】
ところで、上述した従来のモデムにおける通信速度／キャラクタフォーマット識別方式においては、最初に通信速度を識別するために、スタートビット検出から始まって時刻ｔ１〜ｔ７でサンプリングを行うが、そのサンプリング時刻を決定するための最大ビット速度（３８．４Ｋｂｐｓ）の１ビット分に掛け合わせる乗数０．５、１．５、３、６、１２、…を規定する必要があるので識別処理が煩雑となる問題があった。
【００２３】
更にＡ文字ではなく「Ｆ」文字が入力された場合、ビット列が「００１１０００１０１」となり、ビット速度識別処理の先頭では、先頭からの「００１１００」によって、本来の１／２の速度であると誤認識する問題が生じる。勿論、以後の処理にてＡ文字のビット列「０１０００００１０１」と比較して合致しないため最終的に誤判定することはない。
【００２４】
しかし、その比較処理にて本来の速度で入力されているＳＤ信号のビット極性変化点をサンプリングすることによって「０」と「１」が逆に認識され、これによってビット速度の識別を誤る問題があった。例えば、図２５において、３８．４Ｋｂｐｓで「Ｅ」文字を入力すると時刻ｔ４に「１」を検出し、以降、時刻ｔ５のタイミングでサンプリングしてしまう。この場合、サンプリング時刻を微妙に調整すればよいが、その調整が容易でない。
【００２５】
先のビット速度の識別を誤る問題を回避するために、サンプリング時刻を先に記述した時刻ｔ４であれば、時刻ｔ３から１．５ビット分経過後ではなく、１ビット分経過後とする選択もある。しかし、２４００ｂｐｓ  等の低速の場合、１ビット幅が広いので、数％のビット速度偏差が生じた場合でも図２５に符号１１で示すように、３８．４Ｋｂｐｓ、１９．２Ｋｂｐｓの高速ビット速度信号にとっては大きな偏差となる。このことからビット幅の中央をサンプリングするのが望ましく前記した選択は採用しがたい。
【００２６】
また、入力されるビット速度に関係なく、装置仕様の最大ビット速度（３８．４Ｋｂｐｓ）×２倍で全ての時間をサンプリングする方法もあるが処理が増加し得策ではない。特に、その処理をＭＰＵのソフトウエアで実施する場合は、信号極性判定当たりのサンプリング処理時間が膨大となるので、時刻ｔ２，ｔ３，ｔ４，ｔ５，…の各サンプリングを正確な時刻に実行するのが困難となる。
【００２７】
この様な困難はビット速度が高くなるほど顕著となり、最近のモデムの仕様の５７．６Ｋｂｐｓ、１１５，２Ｋｂｐｓを判定するには高速処理ＭＰＵの適用又は専用回路が必要となる問題があった。
【００２８】
本発明は、このような点に鑑みてなされたものであり、専用回路を付加することなく一般のＭＰＵにて処理負荷を軽く安定に通信速度及びキャラクタフォーマットの識別を行うことができるモデムにおける通信速度／キャラクタフォーマット識別方式を提供することを目的としている。
【００２９】
【課題を解決するための手段】
図１に本発明の原理図を示す。この図１に示すモデムにおける通信速度／キャラクタフォーマット識別方式は、送信データＤ１の通信速度及び送信データに含まれる特定文字のフォーマットを自動識別するものであり、本発明の特徴は、送信データＤ１の極性変化点間の幅Ｄ２を検出する検出手段２５と、極性変化点間の極性を検出して極性データＤ７を得る第１判定手段３４と、極性変化点間の幅Ｄ２を送信データＤ１の通信速度Ｄ４に応じて正規化して正規化データＤ３を得る正規化手段２９と、モデム初期化直後に通信速度Ｄ４を検出すると共に、正規化データＤ３より極性変化点間の幅Ｄ２が送信データＤ１の何ビットかを示すビット数Ｄ５を検出する第２判定手段３１と、第２判定手段３１での検出ビット数Ｄ５のビットデータ極性を極性データＤ７から検出し、この極性が検出されたビットデータの配列が所定の特定文字のフォーマットのビットパターンと一致する際に、送信データＤ１に含まれる特定文字のフォーマットを示すフォーマット情報Ｄ６を出力する第３判定手段３３とを具備して構成したことにある。
【００３０】
このような構成によれば、モデムを、従来のようにビットサンプリング時刻を正確に設計することなく、容易なＭＰＵプログラム設計又は論理回路設計によりビット速度／キャラクタフォーマットの自動識別が可能なモデムを得ることができる。
【００３１】
【発明の実施の形態】
以下、図面を参照して本発明の一実施の形態について説明する。図２は本発明の一実施形態によるモデムのブロック構成図である。
【００３２】
図２において、符号２１はパソコン、２３はモデムである。モデム２３において、２５はオートクリア付きアップカウンタ、２７は発振器、２９はカウンタ値正規化部、３１はカウンタ値判定部、３３はＡＴ文字判定部、３４は極性判定部である。また、カウンタ値判定部３１は、図３に示すビット速度情報テーブル３０と、図４に示すビット数情報テーブル３２を有し、ＡＴ文字判定部３３はタイマ３５を有する。
【００３３】
アップカウンタ２５は、パソコン２１からシリアルに送出されるＳＤ信号Ｄ１のビット幅（クロック幅）を検出するものであり、ＳＤ信号Ｄ１の極性変化点から極性変化点までの幅が、発振器２７から出力されるクロック信号ＣＫの何カウント分かをカウントし、このカウンタ値Ｄ２をカウンタ値正規化部２９へ出力し、その後クリアされるようになっている。
【００３４】
例えばＳＤ信号Ｄ１が３８．４Ｋｂｐｓであり、そのビット幅がクロック信号ＣＫの１２周期分であれば、１ビット幅を示す「１２」のカウンタ値Ｄ２が出力され、ＳＤ信号Ｄ１が３８．４Ｋｂｐｓの１／２の速度の１９．２Ｋｂｐｓであれば、この１ビット幅を示すクロック信号ＣＫの２４周期分の「２４」のカウンタ値が出力されるようになっている。
【００３５】
このようなアップカウンタ２５は、簡単な論理回路でも実現できるが、近年のＭＰＵではアップカウンタ２５の機能が周辺回路として内蔵されており、容易に設定／制御が可能となる。
【００３６】
極性判定部３４は、ＳＤ信号Ｄ１が「０」か「１」かを判定し、これを極性値Ｄ７としてカウンタ値判定部３１へ出力するものである。
カウンタ値正規化部２９は、カウンタ値判定部３１から出力されるビット速度情報Ｄ４でカウンタ値Ｄ２を正規化し、この正規化カウンタ値Ｄ３をカウンタ値判定部３１へ出力するものである。但し、正規化カウンタ値Ｄ３は、ビット速度に依存しないビット数に対応した値である。
【００３７】
カウンタ値判定部３１は、モデム２３の初期化直後にカウンタ値正規化部２９を介してそのまま入力されるＳＤ信号Ｄ１のスタートビットＳＴのカウンタ値Ｄ２からビット速度情報テーブル３０を参照してビット速度を求め、これを図示せぬメモリ部に記憶し、先のビット速度情報Ｄ４として出力する。
【００３８】
また、カウンタ値判定部３１は、正規化カウンタ値Ｄ３を元にビット数情報テーブル３２を参照することによってその正規化カウンタ値Ｄ３が示すビット数、即ち１ビット、２ビット、…であるかを求め、この求められたビット数をビット数情報Ｄ５としてＡＴ文字判定部３３へ出力するものである。
【００３９】
但し、ビット速度情報Ｄ４は、モデム２３の初期化直後は装置仕様の最高速度（例えば３８．４Ｋｂｐｓ）に設定されている。また、前記した各テーブル３０，３２の参照に付いては後述のフローチャートを参照した処理において説明する。
【００４０】
ＡＴ文字判定部３３は、ビット数情報Ｄ５が「０」又は「１」であることを極性値Ｄ７から求めてＡ文字「０１０００００１０１」及びＴ文字「０００１０１０１０１」のビット配列を検出することにより、ＳＤ信号Ｄ１が、後述する８通りの何れのビットパターンのキャラクタであるかを示すキャラクタフォーマット情報（フォーマット情報）Ｄ６を出力するものである。
【００４１】
ＡＴ文字のビットパターンは、小文字の「ａｔ」の場合もあるので、図５の（ａ）〜（ｈ）に示すように全部で８通りのパターンがある。
（ａ）及び（ｂ）は、ＡＴ及びａｔのビットパターンが、８ビット／パリティ無し／１ストップビットのフォーマットである場合を示す。
【００４２】
（ｃ）及び（ｄ）は、ＡＴ及びａｔのビットパターンが、７ビット／奇数パリティ／１ストップビットのフォーマットである場合を示す。
（ｅ）及び（ｆ）は、ＡＴ及びａｔのビットパターンが、７ビット／偶数パリティ／１ストップビットのフォーマットである場合を示す。
【００４３】
（ｇ）及び（ｈ）は、ＡＴ及びａｔのビットパターンが、７ビット／パリティ無し／２ストップビットのフォーマットである場合を示す。
次に、図６〜図２４を参照してモデム２３が行う通信速度／キャラクタフォーマット識別処理を説明する。
【００４４】
但し、アップカウンタ２５は前述したようにＭＰＵの周辺回路にて構成され、他のモデム２３の構成要素は、ＭＰＵ上でプログラムによって実現され、ＳＤ信号Ｄ１がモデム２３のＭＰＵの割り込み端子に入力され、ＳＤ信号Ｄ１の極性変化点の入力時に割り込み処理プログラムをコールするように構成されているものとする。
【００４５】
割り込み処理プログラムは、図６に符号３７で示すＳＤ信号Ｄ１の極性変化点検出後に、ＳＥＱ０，ＳＥＱ１，ＳＥＱ２，ＳＥＱ３，…，ＳＥＱ１４，ＳＥＱ１５，ＳＥＱ１６のシーケンス番号を持つ１７個のルーチンに分かれている。その１７個のルーチンを図７〜図２３のフローチャートに示す。
【００４６】
シーケンス番号ＳＥＱ０〜ＳＥＱ１６の略符号Ｑ０〜Ｑ１６を図５の（ａ）〜（ｈ）のビットパターンに付し、ビットパターンのどの時刻ｔ１〜ｔ２１でシーケンス番号ＳＥＱ０〜ＳＥＱ１６のルーチン処理が行われるかを示した。
【００４７】
各ルーチンにおいて、期待されるビット極性／ビット数に合致した場合はシーケンス番号を進める。またＡ文字とＴ文字の間隔が大きく離れている場合があるが、この場合はカウンタ値Ｄ２がオーバーフローしていることを検出してシーケンス番号を進めるものとする。
【００４８】
更に、図５中のＱ１２′及びＱ１５′の処理についてはＳＤ信号Ｄ１の極性変化点が入力されないため、それぞれ後述で説明するシーケンス番号ＳＥＱ１１及び１３の処理においてタイマをセットし、タイマ割り込みによりＴ文字の入力完了を行うようになっている。
【００４９】
最初に、モデム２３の初期化が実行され、パソコン２１からＳＤ信号Ｄ１が入力され、図６に符号３７で示すようにＳＤ信号Ｄ１の極性変化点、まず図５に示す時刻ｔ２でスタートビットＳＴの立ち上がりエッジが検出されたとすると、シーケンス番号ＳＥＱ０のルーチン処理を行う図７に示すフローチャートへ進む。
【００５０】
図７のステップＳ１において、ＳＤ信号Ｄ１が「１」であるかが判断される。この判断結果がＮＯの場合は再び極性変化点検出に戻る。ＹＥＳの場合はステップＳ２において、ＭＰＵの周辺モジュール、即ちアップカウンタ２５からカウンタ値Ｄ２がカウンタ値正規化部２９を介してカウンタ値判定部３１へ出力される。この出力されるカウンタ値Ｄ２は、図５の時刻ｔ１〜ｔ２のスタートビットＳＴの「０」のビット幅を示すものである。
【００５１】
次に、ステップＳ３において、カウンタ値判定部３１が、カウンタ値Ｄ２即ちスタートビットＳＴのビット幅を元に図３に示すビット速度情報テーブル３０を検索することによって速度の判定を行う。
【００５２】
ここで、発振器２７から出力されるクロック信号ＣＫの周波数が４６０．８ＫＨｚであるとすると、ＳＤ信号Ｄ１が３８．４Ｋｂｐｓの場合、ＳＤ信号Ｄ１の１ビット幅はクロック信号ＣＫの１２個分となるので、カウンタ値Ｄ２は「１２」である。
【００５３】
ビット速度情報テーブル３０は、そのカウンタ値Ｄ２に対応する値がアドレスとして定められ、更にそのアドレスの記憶領域にビット速度情報Ｄ４が記憶されている。このことからカウンタ値Ｄ２が「１２」の場合は、アドレス１２のビット速度情報Ｄ４の「８」が得られる。この「８」はＳＤ信号Ｄ１が３８．４Ｋｂｐｓであることを示す。
【００５４】
更に、テーブル３０にはＳＤ信号Ｄ１のビット幅の偏差を許容するため、テーブル３０のアドレス欄に＊で示す理論値、例えば「１２」の±数％の偏差許容値「１０」〜「１３」（但し「１２」は除く）のアドレスが設けられている。
【００５５】
これによってカウンタ値Ｄ２が「１０」〜「１３」の場合でもＳＤ信号Ｄ１が３８．４Ｋｂｐｓであることを示すビット速度情報Ｄ４の「８」が得られるようになっている。
【００５６】
更に、テーブル３０には、カウンタ値Ｄ２が先の偏差許容値を越えた場合に、カウンタ値Ｄ２をリジェクトするためのアドレス、例えば「１４」〜「２０」が設けられている。つまりカウンタ値Ｄ２が「１４」〜「２０」であった場合は、そのアドレスの記憶領域に記憶された不感帯を示す「１０」を得るようになっている。
【００５７】
次に、ステップＳ４において、ステップＳ３で得られたビット速度情報Ｄ４がカウンタ値判定部３１のメモリ部に格納される。
この後、ステップＳ５において、シーケンス番号がＳＥＱ１に変更される。
【００５８】
このシーケンス番号ＳＥＱ１のルーチン処理を行う図８に示すフローチャートへ進む。
図８のステップＳ１において、ＭＰＵの周辺モジュール即ちアップカウンタ２５からカウンタ値Ｄ２がカウンタ値正規化部２９へ入力される。この入力されるカウンタ値Ｄ２は、図５の時刻ｔ２〜ｔ３で示すＳＤ信号Ｄ１の「１」である。
【００５９】
次に、ステップＳ２において、カウンタ値正規化部２９が上述したＳＥＱ０の処理で求めたビット速度情報Ｄ４を元に、速度に依存しないカウンタ値Ｄ２に正規化する。
【００６０】
例えば、ビット速度情報Ｄ４が３８．４Ｋｂｐｓを示すものであれば、カウンタ値Ｄ２をそのまま正規化カウンタ値Ｄ３として出力し、１９．２Ｋｂｐｓを示すものであればカウンタ値Ｄ２を１／２とした値を出力し、９６００ｂｐｓ  を示すものであればカウンタ値Ｄ２を１／４とした値、４８００ｂｐｓ  を示すものであればカウンタ値Ｄ２を１／８とした値、２４００ｂｐｓ  を示すものであればカウンタ値Ｄ２を１／１６とした値を正規化カウンタ値Ｄ３として出力する。
【００６１】
次に、ステップＳ３において、正規化後の値を示す正規化カウンタ値Ｄ３を元に、図４に示すビット数情報テーブル３２を検索してビット数を読み出し、この読みだされたビット数をビット数情報Ｄ５としてＡＴ文字判定部３３へ出力する。
【００６２】
ビット数情報テーブル３２は、正規化カウンタ値Ｄ３に対応する値がアドレスとして定められ、更にそのアドレスの記憶領域にビット数情報Ｄ５が記憶されている。
【００６３】
このことからカウンタ値Ｄ２が例えば「１２」の場合は、アドレス１２の記憶領域に記憶された１ビットを示すビット数情報Ｄ５が得られる。更に、テーブル３２にはＳＤ信号Ｄ１のビット幅の偏差を許容するため、テーブル３２のアドレス欄に＊で示す理論値、例えば「１２」の±数％の偏差許容値「６」〜「１７」（但し「１２」は除く）のアドレスが設けられている。
【００６４】
これによって正規化カウンタ値Ｄ３が「６」〜「１７」の場合でも入力ＳＤ信号Ｄ１が１ビットであることを示すビット数情報Ｄ５の「１」が得られるようになっている。
【００６５】
更に、テーブル３２には、正規化カウンタ値Ｄ３が先の偏差許容値を越えた場合に、ビット数情報Ｄ５をリジェクトするためのアドレス、「０」〜「５」が設けられている。つまり正規化カウンタ値Ｄ３が「０」〜「５」であった場合は、そのアドレスの記憶領域に記憶された不感帯を示す「０」がビット数情報Ｄ５として出力されるようになっている。また、破線枠３９で示すステップＳ１〜Ｓ３をサブルーチンとする。
【００６６】
次に、ステップＳ４において、ＡＴ文字判定部３３がＳＤ信号Ｄ１が「０」であるかを判断する。これは極性判定部３４から出力される極性値Ｄ７によって時刻ｔ３におけるＳＤ信号Ｄ１の立ち下がりエッジによる「０」が判断されるものである。
【００６７】
この判断結果がＮＯの場合、即ち「０」でない場合はステップＳ５において、シーケンス番号ＳＥＱを０に変更し、シーケンス番号ＳＥＱ０の処理を行う。
ＹＥＳの場合、即ち「０」の場合はステップＳ６において、ビット数情報Ｄ５のビット数が「１」かを判断する。この判断結果がＮＯの場合はステップＳ５に進み、ＹＥＳの場合は、ステップＳ７において、シーケンス番号ＳＥＱが「２」に変更され、このシーケンス番号ＳＥＱ２のルーチン処理を行う図９に示すフローチャートへ進む。
【００６８】
図９において、まず、図８で説明したと同様なサブルーチン３９の処理が行われる。但し、ここでは、図５に時刻ｔ３〜ｔ７で示すＳＤ信号Ｄ１の４ビットの「０」か、時刻ｔ３〜ｔ８で示す５ビットの「０」が入力されるので、そのビット数を示すビット数情報Ｄ５及び極性を示す極性値Ｄ７がＡＴ文字判定部３３に入力されることになる。
【００６９】
次に、図９のステップＳ１において、ＡＴ文字判定部３３がＳＤ信号Ｄ１が「１」であるかを判断する。これは極性判定部３４から出力される極性値Ｄ７によって時刻ｔ７におけるＳＤ信号Ｄ１の立ち上がりエッジによる「１」が判断されるか、或いは時刻ｔ８におけるＳＤ信号Ｄ１の立ち上がりエッジによる「１」が判断されるものである。
【００７０】
この判断結果がＮＯの場合、即ち「１」でない場合はステップＳ２において、シーケンス番号ＳＥＱを０に変更し、シーケンス番号ＳＥＱ０の処理を行う。
ＹＥＳの場合、即ち「１」の場合はステップＳ３において、ビット数情報Ｄ５のビット数が「４」かを判断する。この判断結果がＹＥＳの場合はステップＳ４において、シーケンス番号ＳＥＱが「４」に変更され、このシーケンス番号ＳＥＱ４のルーチン処理を行う図１１に示すフローチャートへ進む。
【００７１】
ステップＳ３の判断結果がＮＯの場合は、ステップＳ５において、ビット数情報Ｄ５のビット数が「５」かを判断する。この判断結果がＮＯの場合はステップＳ２に進み、ＹＥＳの場合は、ステップＳ６において、シーケンス番号ＳＥＱが「３」に変更され、このシーケンス番号ＳＥＱ３のルーチン処理を行う図１０に示すフローチャートへ進む。
【００７２】
図１０において、まず、図８で説明したと同様なサブルーチン３９の処理が行われる。但し、ここでは、図５の（ａ）又は（ｅ）における時刻ｔ８〜ｔ９で示すＳＤ信号Ｄ１の１ビットの「１」か、（ｃ）又は（ｇ）における時刻ｔ８〜ｔ１２で示すｎビット（ビット数不定）の「１」の何れかが入力されるので、そのビット数を示すビット数情報Ｄ５及び極性を示す極性値Ｄ７がＡＴ文字判定部３３に入力されることになる。
【００７３】
次に、図１０のステップＳ１において、ＡＴ文字判定部３３がＳＤ信号Ｄ１が「０」であるかを判断する。これは極性値Ｄ７によって時刻ｔ９における（ａ）又は（ｅ）のＳＤ信号Ｄ１の立ち下がりエッジによる「０」が判断されるか、或いは時刻ｔ１２における（ｃ）又は（ｇ）のＳＤ信号Ｄ１の立ち下がりエッジによる「０」が判断されるものである。
【００７４】
この判断結果がＮＯの場合、即ち「０」でない場合はステップＳ２において、シーケンス番号ＳＥＱを０に変更し、シーケンス番号ＳＥＱ０の処理を行う。
ＹＥＳの場合、即ち「０」の場合はステップＳ３において、ビット数情報Ｄ５のビット数がオーバーフローかを判断する。これは、同極性のビット数が設定値を越えた場合を判断するものである。この判断結果がＹＥＳの場合はステップＳ４において、（ｃ）又は（ｇ）に示すＡＴのＡ文字が送出されてきたと認識する。
【００７５】
この後、ステップＳ５において、シーケンス番号ＳＥＱが「９」に変更され、このシーケンス番号ＳＥＱ９のルーチン処理を行う図１６に示すフローチャートへ進む。
【００７６】
ステップＳ３の判断結果がＮＯの場合、ステップＳ６において、ビット数情報Ｄ５のビット数が「３」よりも小さいか判断する。この判断結果がＹＥＳの場合は前記同様ステップＳ４及びＳ５へ進む。
【００７７】
ステップＳ６の判断結果がＹＥＳの場合はステップＳ７において、ビット数情報Ｄ５のビット数が「１」であるかを判断する。この判断結果がＹＥＳの場合はステップＳ８において、シーケンス番号ＳＥＱが「５」に変更され、このシーケンス番号ＳＥＱ５のルーチン処理を行う図１２に示すフローチャートへ進む。
【００７８】
ステップＳ７の判断結果がＮＯの場合は、ステップＳ９において、シーケンス番号ＳＥＱを０に変更し、シーケンス番号ＳＥＱ０の処理を行う。
図１１において、まず、図８で説明したと同様なサブルーチン３９の処理が行われる。但し、ここでは、図５の（ｂ）又は（ｄ）における時刻ｔ７〜ｔ９で示すＳＤ信号Ｄ１の２ビットの「１」か、（ｆ）又は（ｈ）における時刻ｔ７〜ｔ１２で示すｎビット（ビット数不定）の「１」の何れかが入力されるので、そのビット数を示すビット数情報Ｄ５及び極性を示す極性値Ｄ７がＡＴ文字判定部３３に入力されることになる。
【００７９】
次に、図１１のステップＳ１において、ＡＴ文字判定部３３がＳＤ信号Ｄ１が「０」であるかを判断する。これは極性値Ｄ７によって時刻ｔ９における（ｂ）又は（ｄ）のＳＤ信号Ｄ１の立ち下がりエッジによる「０」が判断されるか、或いは時刻ｔ１２における（ｆ）又は（ｈ）のＳＤ信号Ｄ１の立ち下がりエッジによる「０」が判断されるものである。
【００８０】
この判断結果がＮＯの場合、即ち「０」でない場合はステップＳ２において、シーケンス番号ＳＥＱを０に変更し、シーケンス番号ＳＥＱ０の処理を行う。
ＹＥＳの場合、即ち「０」の場合はステップＳ３において、ビット数情報Ｄ５のビット数がオーバーフローかを判断する。この判断結果がＹＥＳの場合はステップＳ４において、（ｆ）又は（ｈ）に示すａｔのａ文字が送出されてきたと認識する。
【００８１】
この後、ステップＳ５において、シーケンス番号ＳＥＱが「９」に変更され、このシーケンス番号ＳＥＱ９のルーチン処理を行う図１６に示すフローチャートへ進む。
【００８２】
ステップＳ３の判断結果がＮＯの場合、ステップＳ６において、ビット数情報Ｄ５のビット数が「４」よりも小さいか判断する。この判断結果がＹＥＳの場合は前記同様ステップＳ４及びＳ５へ進む。
【００８３】
ステップＳ６の判断結果がＹＥＳの場合はステップＳ７において、ビット数情報Ｄ５のビット数が「２」であるかを判断する。この判断結果がＹＥＳの場合はステップＳ８において、シーケンス番号ＳＥＱが「６」に変更され、このシーケンス番号ＳＥＱ６のルーチン処理を行う図１３に示すフローチャートへ進む。
【００８４】
ステップＳ７の判断結果がＮＯの場合は、ステップＳ９において、シーケンス番号ＳＥＱを０に変更し、シーケンス番号ＳＥＱ０の処理を行う。
図１２において、まず、図８で説明したと同様なサブルーチン３９の処理が行われる。但し、ここでは、図５の（ａ）又は（ｅ）における時刻ｔ９〜ｔ１０で示すＳＤ信号Ｄ１の１ビットの「０」が入力されるので、そのビット数を示すビット数情報Ｄ５及び極性を示す極性値Ｄ７がＡＴ文字判定部３３に入力されることになる。
【００８５】
次に、図１２のステップＳ１において、ＡＴ文字判定部３３がＳＤ信号Ｄ１が「１」であるかを判断する。これは極性値Ｄ７によって時刻ｔ１０における（ａ）又は（ｅ）のＳＤ信号Ｄ１の立ち下がりエッジによる「１」が判断されるものである。
【００８６】
この判断結果がＮＯの場合はステップＳ２において、シーケンス番号ＳＥＱを０に変更し、シーケンス番号ＳＥＱ０の処理を行う。
ＹＥＳの場合はステップＳ３において、ビット数情報Ｄ５のビット数が「１」であるかを判断する。この判断結果がＹＥＳの場合はステップＳ４において、シーケンス番号ＳＥＱが「７」に変更され、このシーケンス番号ＳＥＱ７のルーチン処理を行う図１４に示すフローチャートへ進む。
【００８７】
ステップＳ３の判断結果がＮＯの場合がステップＳ６において、シーケンス番号ＳＥＱを０に変更し、シーケンス番号ＳＥＱ０の処理を行う。
図１３において、まず、図８で説明したと同様なサブルーチン３９の処理が行われる。但し、ここでは、図５の（ｂ）又は（ｄ）における時刻ｔ９〜ｔ１０で示すＳＤ信号Ｄ１の１ビットの「０」が入力されるので、そのビット数を示すビット数情報Ｄ５及び極性を示す極性値Ｄ７がＡＴ文字判定部３３に入力されることになる。
【００８８】
次に、図１３のステップＳ１において、ＡＴ文字判定部３３がＳＤ信号Ｄ１が「１」であるかを判断する。これは極性値Ｄ７によって時刻ｔ１０における（ｂ）又は（ｄ）のＳＤ信号Ｄ１の立ち下がりエッジによる「１」が判断されるものである。
【００８９】
この判断結果がＮＯの場合はステップＳ２において、シーケンス番号ＳＥＱを０に変更し、シーケンス番号ＳＥＱ０の処理を行う。
ＹＥＳの場合はステップＳ３において、ビット数情報Ｄ５のビット数が「１」であるかを判断する。この判断結果がＹＥＳの場合はステップＳ４において、シーケンス番号ＳＥＱが「８」に変更され、このシーケンス番号ＳＥＱ８のルーチン処理を行う図１５に示すフローチャートへ進む。
【００９０】
ステップＳ３の判断結果がＮＯの場合がステップＳ５において、シーケンス番号ＳＥＱを０に変更し、シーケンス番号ＳＥＱ０の処理を行う。
図１４において、まず、図８で説明したと同様なサブルーチン３９の処理が行われる。但し、ここでは、図５の（ａ）又は（ｅ）における時刻ｔ１０〜ｔ１２で示すＳＤ信号Ｄ１のｎビット（ビット数不定）の「１」が入力されるので、そのビット数を示すビット数情報Ｄ５及び極性を示す極性値Ｄ７がＡＴ文字判定部３３に入力されることになる。
【００９１】
次に、図１４のステップＳ１において、ＡＴ文字判定部３３がＳＤ信号Ｄ１が「０」であるかを判断する。これは極性値Ｄ７によって時刻ｔ１２における（ａ）又は（ｅ）のＳＤ信号Ｄ１の立ち下がりエッジによる「０」が判断されるものである。
【００９２】
この判断結果がＮＯの場合、即ち「０」でない場合はステップＳ２において、シーケンス番号ＳＥＱを０に変更し、シーケンス番号ＳＥＱ０の処理を行う。
ＹＥＳの場合はステップＳ３において、ビット数情報Ｄ５のビット数がオーバーフローかを判断する。この判断結果がＹＥＳの場合はステップＳ４において、（ａ）又は（ｅ）に示すＡＴのＡ文字が送出されてきたと認識する。
【００９３】
この後、ステップＳ５において、シーケンス番号ＳＥＱが「９」に変更され、このシーケンス番号ＳＥＱ９のルーチン処理を行う図１６に示すフローチャートへ進む。
【００９４】
ステップＳ３の判断結果がＮＯの場合、ステップＳ６において、ビット数情報Ｄ５のビット数が「１」以下かを判断する。この判断結果がＹＥＳの場合は前記同様ステップＳ４及びＳ５へ進み、ＮＯの場合は、ステップＳ９において、シーケンス番号ＳＥＱを０に変更し、シーケンス番号ＳＥＱ０の処理を行う。
【００９５】
図１５において、まず、図８で説明したと同様なサブルーチン３９の処理が行われる。但し、ここでは、図５の（ｂ）又は（ｄ）における時刻ｔ１０〜ｔ１２で示すＳＤ信号Ｄ１のｎビット（ビット数不定）の「１」が入力されるので、そのビット数を示すビット数情報Ｄ５及び極性を示す極性値Ｄ７がＡＴ文字判定部３３に入力されることになる。
【００９６】
次に、図１５のステップＳ１において、ＡＴ文字判定部３３がＳＤ信号Ｄ１が「０」であるかを判断する。これは極性値Ｄ７によって時刻ｔ１２における（ｂ）又は（ｄ）のＳＤ信号Ｄ１の立ち下がりエッジによる「０」が判断されるものである。
【００９７】
この判断結果がＮＯの場合、即ち「０」でない場合はステップＳ２において、シーケンス番号ＳＥＱを０に変更し、シーケンス番号ＳＥＱ０の処理を行う。
ＹＥＳの場合はステップＳ３において、ビット数情報Ｄ５のビット数がオーバーフローかを判断する。この判断結果がＹＥＳの場合はステップＳ４において、（ｂ）又は（ｄ）に示すａｔのａ文字が送出されてきたと認識する。
【００９８】
この後、ステップＳ５において、シーケンス番号ＳＥＱが「９」に変更され、このシーケンス番号ＳＥＱ９のルーチン処理を行う図１６に示すフローチャートへ進む。
【００９９】
ステップＳ３の判断結果がＮＯの場合、ステップＳ６において、ビット数情報Ｄ５のビット数が「１」以下かを判断する。この判断結果がＹＥＳの場合は前記同様ステップＳ４及びＳ５へ進み、ＮＯの場合は、ステップＳ９において、シーケンス番号ＳＥＱを０に変更し、シーケンス番号ＳＥＱ０の処理を行う。
【０１００】
図１６において、まず、図８で説明したと同様なサブルーチン３９の処理が行われる。但し、ここでは、図５の（ａ）〜（ｈ）における時刻ｔ１２〜ｔ１５で示すＳＤ信号Ｄ１の３ビットの「０」が入力されるので、そのビット数を示すビット数情報Ｄ５及び極性を示す極性値Ｄ７がＡＴ文字判定部３３に入力されることになる。
【０１０１】
次に、図１６のステップＳ１において、ＡＴ文字判定部３３がＳＤ信号Ｄ１が「１」であるかを判断する。これは極性値Ｄ７によって時刻ｔ１５における（ａ）〜（ｈ）のＳＤ信号Ｄ１の立ち上がりエッジによる「１」が判断されるものである。
【０１０２】
この判断結果がＮＯの場合はステップＳ２において、シーケンス番号ＳＥＱを０に変更し、シーケンス番号ＳＥＱ０の処理を行う。
ＹＥＳの場合はステップＳ３において、ビット数情報Ｄ５のビット数が「３」であるかを判断する。この判断結果がＹＥＳの場合はステップＳ４において、シーケンス番号ＳＥＱが「１０」に変更され、このシーケンス番号ＳＥＱ１０のルーチン処理を行う図１７に示すフローチャートへ進む。
【０１０３】
ステップＳ３の判断結果がＮＯの場合がステップＳ５において、シーケンス番号ＳＥＱを０に変更し、シーケンス番号ＳＥＱ０の処理を行う。
図１７において、まず、図８で説明したと同様なサブルーチン３９の処理が行われる。但し、ここでは、図５の（ａ）〜（ｈ）における時刻ｔ１５〜ｔ１６で示すＳＤ信号Ｄ１の１ビットの「１」が入力されるので、そのビット数を示すビット数情報Ｄ５及び極性を示す極性値Ｄ７がＡＴ文字判定部３３に入力されることになる。
【０１０４】
次に、図１７のステップＳ１において、ＡＴ文字判定部３３がＳＤ信号Ｄ１が「０」であるかを判断する。これは極性値Ｄ７によって時刻ｔ１６における（ａ）〜（ｈ）のＳＤ信号Ｄ１の立ち下がりエッジによる「０」が判断されるものである。
【０１０５】
この判断結果がＮＯの場合はステップＳ２において、シーケンス番号ＳＥＱを０に変更し、シーケンス番号ＳＥＱ０の処理を行う。
ＹＥＳの場合はステップＳ３において、ビット数情報Ｄ５のビット数が「１」であるかを判断する。この判断結果がＹＥＳの場合はステップＳ４において、シーケンス番号ＳＥＱが「１１」に変更され、このシーケンス番号ＳＥＱ１１のルーチン処理を行う図１８に示すフローチャートへ進む。
【０１０６】
ステップＳ３の判断結果がＮＯの場合がステップＳ５において、シーケンス番号ＳＥＱを０に変更し、シーケンス番号ＳＥＱ０の処理を行う。
図１８において、まず、図８で説明したと同様なサブルーチン３９の処理が行われる。但し、ここでは、図５の（ａ）〜（ｈ）における時刻ｔ１６〜ｔ１７で示すＳＤ信号Ｄ１の１ビットの「０」が入力されるので、そのビット数を示すビット数情報Ｄ５及び極性を示す極性値Ｄ７がＡＴ文字判定部３３に入力されることになる。
【０１０７】
次に、図１８のステップＳ１において、ＡＴ文字判定部３３がＳＤ信号Ｄ１が「１」であるかを判断する。これは極性値Ｄ７によって時刻ｔ１７における（ａ）〜（ｈ）のＳＤ信号Ｄ１の立ち上がりエッジによる「１」が判断されるものである。この判断結果がＮＯの場合はステップＳ２において、シーケンス番号ＳＥＱを０に変更し、シーケンス番号ＳＥＱ０の処理を行う。
【０１０８】
ＹＥＳの場合はステップＳ３において、ビット数情報Ｄ５のビット数が「１」であるかを判断する。この判断結果がＮＯの場合はステップＳ２において、シーケンス番号ＳＥＱを０に変更し、シーケンス番号ＳＥＱ０の処理を行う。
【０１０９】
ステップＳ３の判断結果がＹＥＳの場合はステップＳ４において、最高ビット速度の３８．４Ｋｂｐｓ換算で時刻ｔ１７からストップビットＳＴ直前の時刻ｔ２１までのビット数である４ビット分に対応するタイマ設定値を生成する。
【０１１０】
次にステップＳ５において、カウンタ値判定部３１のメモリ部に記憶されたビット速度情報Ｄ４を読み出し、このビット速度情報Ｄ４に応じて、ステップＳ４で生成したタイマ設定値に、次に記述するように倍掛けを行う。
【０１１１】
即ち、ビット速度情報Ｄ４が３８．４Ｋｂｐｓを示すものであれば、タイマ設定値をそのまま使用し、１９．２Ｋｂｐｓを示すものであればタイマ設定値を２倍し、９６００ｂｐｓ  を示すものであれば４倍、４８００ｂｐｓ  を示すものであれば８倍、２４００ｂｐｓ  を示すものであれば１６倍とする。
【０１１２】
次に、ステップＳ６において、ステップＳ５で求めたタイマ設定値をタイマ３５にセットし起動させ、この後、ステップＳ７において、シーケンス番号ＳＥＱを１２に変更し、このシーケンス番号ＳＥＱ１２のルーチン処理を行う図１９に示すフローチャートへ進む。
【０１１３】
図１９において、まず、図８で説明したと同様なサブルーチン３９の処理が行われる。但し、ここでは、図５の（ａ）、（ｃ）、（ｅ）、（ｇ）における時刻ｔ１７〜ｔ１８で示すＳＤ信号Ｄ１の１ビットの「１」が入力されるか、（ｂ）、（ｆ）における時刻ｔ１７〜ｔ２０で示すＳＤ信号Ｄ１の３ビットの「１」が入力されるので、そのビット数を示すビット数情報Ｄ５及び極性を示す極性値Ｄ７がＡＴ文字判定部３３に入力されることになる。
【０１１４】
次に、図１９のステップＳ１において、ＡＴ文字判定部３３がＳＤ信号Ｄ１が「０」であるかを判断する。これは極性値Ｄ７によって時刻ｔ１８における（ａ）、（ｃ）、（ｅ）、（ｇ）のＳＤ信号Ｄ１の立ち下がりエッジによる「１」が判断されるか、時刻ｔ２０における（ｂ）、（ｆ）のＳＤ信号Ｄ１の立ち下がりエッジによる「１」が判断されるものである。
【０１１５】
この判断結果がＮＯの場合はステップＳ２において、シーケンス番号ＳＥＱを０に変更し、シーケンス番号ＳＥＱ０の処理を行う。
ＹＥＳの場合はステップＳ３において、ビット数情報Ｄ５のビット数が「１」であるかを判断する。この判断結果がＹＥＳの場合はステップＳ４において、シーケンス番号ＳＥＱが「１３」に変更され、このシーケンス番号ＳＥＱ１３のルーチン処理を行う図２０に示すフローチャートへ進む。
【０１１６】
ステップＳ３の判断結果がＮＯの場合がステップＳ５において、ビット数情報Ｄ５のビット数が「３」であるかを判断する。この判断結果がＮＯの場合はステップＳ２において、シーケンス番号ＳＥＱを０に変更し、シーケンス番号ＳＥＱ０の処理を行う。ＹＥＳの場合はステップＳ６において、シーケンス番号ＳＥＱを０に変更し、シーケンス番号ＳＥＱ０の処理を行う。
【０１１７】
図２０において、まず、図８で説明したと同様なサブルーチン３９の処理が行われる。但し、ここでは、図５の（ａ）、（ｃ）、（ｅ）、（ｇ）における時刻ｔ１８〜ｔ１９で示すＳＤ信号Ｄ１の１ビットの「１」が入力されるので、そのビット数を示すビット数情報Ｄ５及び極性を示す極性値Ｄ７がＡＴ文字判定部３３に入力されることになる。
【０１１８】
次に、図２０のステップＳ１において、ＡＴ文字判定部３３がＳＤ信号Ｄ１が「１」であるかを判断する。これは極性値Ｄ７によって時刻ｔ１９における（ａ）、（ｃ）、（ｅ）、（ｇ）のＳＤ信号Ｄ１の立ち上がりエッジによる「１」が判断されるものである。この判断結果がＮＯの場合はステップＳ２において、シーケンス番号ＳＥＱを０に変更し、シーケンス番号ＳＥＱ０の処理を行う。
【０１１９】
ＹＥＳの場合はステップＳ３において、ビット数情報Ｄ５のビット数が「１」であるかを判断する。この判断結果がＮＯの場合はステップＳ２において、シーケンス番号ＳＥＱを０に変更し、シーケンス番号ＳＥＱ０の処理を行う。
【０１２０】
ステップＳ３の判断結果がＹＥＳの場合はステップＳ４において、最高ビット速度の３８．４Ｋｂｐｓ換算で時刻ｔ１９からストップビットＳＴ直前の時刻ｔ２１までのビット数である２ビット分に対応するタイマ設定値を生成する。
【０１２１】
次にステップＳ５において、カウンタ値判定部３１のメモリ部に記憶されたビット速度情報Ｄ４を読み出し、このビット速度情報Ｄ４に応じて、ステップＳ４で生成したタイマ設定値に、次に記述するように倍掛けを行う。
【０１２２】
即ち、ビット速度情報Ｄ４が３８．４Ｋｂｐｓを示すものであれば、タイマ設定値をそのまま使用し、１９．２Ｋｂｐｓを示すものであればタイマ設定値を２倍し、９６００ｂｐｓ  を示すものであれば４倍、４８００ｂｐｓ  を示すものであれば８倍、２４００ｂｐｓ  を示すものであれば１６倍とする。
【０１２３】
次に、ステップＳ６において、ステップＳ５で求めたタイマ設定値をタイマ３５にセットし起動させ、この後、ステップＳ７において、シーケンス番号ＳＥＱを１５に変更し、このシーケンス番号ＳＥＱ１５のルーチン処理を行う図２２に示すフローチャートへ進む。
【０１２４】
図２１において、まず、図８で説明したと同様なサブルーチン３９の処理が行われる。但し、ここでは、図５の（ｂ）又は（ｆ）における時刻ｔ２０〜ｔ２１で示すＳＤ信号Ｄ１の１ビットの「０」が入力されるので、そのビット数を示すビット数情報Ｄ５及び極性を示す極性値Ｄ７がＡＴ文字判定部３３に入力されることになる。
【０１２５】
次に、図２１のステップＳ１において、ＡＴ文字判定部３３がＳＤ信号Ｄ１が「１」であるかを判断する。これは極性値Ｄ７によって時刻ｔ２１における（ｂ）又は（ｆ）のＳＤ信号Ｄ１の立ち上がりエッジによる「１」が判断されるものである。この判断結果がＮＯの場合はステップＳ２において、シーケンス番号ＳＥＱを０に変更し、シーケンス番号ＳＥＱ０の処理を行う。
【０１２６】
ＹＥＳの場合はステップＳ３において、ビット数情報Ｄ５のビット数が「１」かを判断する。この判断結果がＮＯの場合はステップＳ２において、シーケンス番号ＳＥＱを０に変更し、シーケンス番号ＳＥＱ０の処理を行う。
【０１２７】
ステップＳ３の判断結果がＹＥＳの場合はステップＳ４において、パリティビットＰが「０」かを判断する。この判断結果がＹＥＳの場合はステップＳ５において、入力キャラクタフォーマットが（ｂ）のａｔ文字の８ビット・パリティ無し・  １ストップビットと認識され、これがフォーマット情報Ｄ６として出力される。
【０１２８】
この時点でフォーマット検出が完了するので、ステップＳ２において、シーケンス番号ＳＥＱを０に変更し、シーケンス番号ＳＥＱ０の処理を行う。
一方、ステップＳ４の判断結果がＮＯの場合はステップＳ６において、入力キャラクタフォーマットが（ｆ）のａｔ文字の７ビット・偶数パリティ・１ストップビットと認識され、これがフォーマット情報Ｄ６として出力される。
【０１２９】
この時点でフォーマット検出が完了するので、ステップＳ２において、シーケンス番号ＳＥＱを０に変更し、シーケンス番号ＳＥＱ０の処理を行う。
図２２において、まず、図８で説明したと同様なサブルーチン３９の処理が行われる。但し、ここでは、図５の（ａ）、（ｃ）における時刻ｔ１９〜ｔ２０で示すＳＤ信号Ｄ１の１ビットの「１」が入力されるので、そのビット数を示すビット数情報Ｄ５及び極性を示す極性値Ｄ７がＡＴ文字判定部３３に入力されることになる。
【０１３０】
次に、図２２のステップＳ１において、ＡＴ文字判定部３３がＳＤ信号Ｄ１が「０」であるかを判断する。これは極性値Ｄ７によって時刻ｔ２０における（ａ）〜（ｈ）のＳＤ信号Ｄ１の立ち下がりエッジによる「０」が判断されるものである。
【０１３１】
この判断結果がＮＯの場合はステップＳ２において、シーケンス番号ＳＥＱを０に変更し、シーケンス番号ＳＥＱ０の処理を行う。
ＹＥＳの場合はステップＳ３において、ビット数情報Ｄ５のビット数が「１」であるかを判断する。この判断結果がＹＥＳの場合はステップＳ４において、シーケンス番号ＳＥＱが「１６」に変更され、このシーケンス番号ＳＥＱ１６のルーチン処理を行う図２３に示すフローチャートへ進む。
【０１３２】
ステップＳ３の判断結果がＮＯの場合がステップＳ５において、シーケンス番号ＳＥＱを０に変更し、シーケンス番号ＳＥＱ０の処理を行う。
図２３において、まず、図８で説明したと同様なサブルーチン３９の処理が行われる。但し、ここでは、図５の（ａ）又は（ｃ）における時刻ｔ２０〜ｔ２１で示すＳＤ信号Ｄ１の１ビットの「０」が入力されるので、そのビット数を示すビット数情報Ｄ５及び極性を示す極性値Ｄ７がＡＴ文字判定部３３に入力されることになる。
【０１３３】
次に、図２３のステップＳ１において、ＡＴ文字判定部３３がＳＤ信号Ｄ１が「１」であるかを判断する。これは極性値Ｄ７によって時刻ｔ２１における（ａ）又は（ｃ）のＳＤ信号Ｄ１の立ち上がりエッジによる「１」が判断されるものである。この判断結果がＮＯの場合はステップＳ２において、シーケンス番号ＳＥＱを０に変更し、シーケンス番号ＳＥＱ０の処理を行う。
【０１３４】
ＹＥＳの場合はステップＳ３において、ビット数情報Ｄ５のビット数が「１」かを判断する。この判断結果がＮＯの場合はステップＳ２において、シーケンス番号ＳＥＱを０に変更し、シーケンス番号ＳＥＱ０の処理を行う。
【０１３５】
ステップＳ３の判断結果がＹＥＳの場合はステップＳ４において、パリティビットＰが「０」かを判断する。この判断結果がＹＥＳの場合はステップＳ５において、入力キャラクタフォーマットが（ａ）のＡＴ文字の８ビット・パリティ無し・  １ストップビットと認識され、これがフォーマット情報Ｄ６として出力される。
【０１３６】
この時点でフォーマット検出が完了するので、ステップＳ２において、シーケンス番号ＳＥＱを０に変更し、シーケンス番号ＳＥＱ０の処理を行う。
一方、ステップＳ４の判断結果がＮＯの場合はステップＳ６において、入力キャラクタフォーマットが（ｃ）のＡＴ文字の７ビット・奇数パリティ・１ストップビットと認識され、これがフォーマット情報Ｄ６として出力される。
【０１３７】
この時点でフォーマット検出が完了するので、ステップＳ２において、シーケンス番号ＳＥＱを０に変更し、シーケンス番号ＳＥＱ０の処理を行う。
最後に、図２４を参照して、シーケンス番号ＳＥＱ１１及び１３のルーチン処理で起動したタイマ３５のタイムアップ検出時の処理を説明する。
【０１３８】
図２４のステップＳ１において、タイマ３５のタイムアップが検出されたとする。ステップＳ２において、その検出時のルーチン処理のシーケンス番号ＳＥＱが「１２」であるか判断する。この判断結果がＹＥＳの場合はステップＳ３において、パリティビットＰが「０」かを判断する。
【０１３９】
この判断結果がＹＥＳの場合はステップＳ４において、入力キャラクタフォーマットが（ｄ）のａｔ文字の７ビット・奇数パリティ・  １ストップビットと認識され、これがフォーマット情報Ｄ６として出力される。
【０１４０】
この時点でフォーマット検出が完了するので、ステップＳ５において、シーケンス番号ＳＥＱを０に変更し、シーケンス番号ＳＥＱ０の処理を行う。
ステップＳ３の判断結果がＮＯの場合はステップＳ６において、入力キャラクタフォーマットが（ｈ）のａｔ文字の７ビット・パリティ無し・２ストップビットと認識され、これがフォーマット情報Ｄ６として出力される。この後、ステップＳ５に進む。
【０１４１】
一方、ステップＳ２の判断結果がＮＯの場合はステップＳ７において、ルーチン処理のシーケンス番号ＳＥＱが「１５」であるか判断する。この判断結果がＮＯの場合は図６の符号３７の処理に戻る。
【０１４２】
ステップＳ７の判断結果がＹＥＳの場合はステップＳ８において、パリティビットＰが「０」かを判断する。この判断結果がＹＥＳの場合はステップＳ９において、入力キャラクタフォーマットが（ｅ）のＡＴ文字の７ビット・偶数パリティ・  １ストップビットと認識され、これがフォーマット情報Ｄ６として出力され、この後、ステップＳ５に進む。
【０１４３】
ステップＳ８の判断結果がＮＯの場合はステップＳ１０において、入力キャラクタフォーマットが（ｇ）のＡＴ文字の７ビット・パリティ無し・２ストップビットと認識され、これがフォーマット情報Ｄ６として出力される。この後、ステップＳ５に進んでシーケンス番号ＳＥＱ０に戻る。
【０１４４】
以上説明した一実施形態によれば、モデムをビットサンプリング時刻を正確に設計することなく、容易なＭＰＵプログラム設計、又は論理回路設計によりビット速度／キャラクタフォーマットの識別が可能となるので、ＭＰＵの処理量の低減、装置の消費電力低下、コストダウンを図ることができる。
【０１４５】
【発明の効果】
以上説明したように、本発明のモデムにおける通信速度／キャラクタフォーマット識別方式によれば、専用回路を付加することなく一般のＭＰＵにて処理負荷を軽く安定に通信速度及びキャラクタフォーマットの識別を行うことができる効果がある。
【図面の簡単な説明】
【図１】本発明の原理図である。
【図２】本発明の一実施形態によるモデムのブロック構成図である。
【図３】図２に示すカウンタ値判定部に用いられるビット速度情報テーブル図である。
【図４】図２に示すカウンタ値判定部に用いられるビット数情報テーブル図である。
【図５】ＡＴ文字のビットパターン図である。
【図６】ＳＤ信号極性変化点検出時のルーチン処理のシーケンス番号を示す図である。
【図７】シーケンス番号ＳＥＱ０のルーチン処理のフローチャートである。
【図８】シーケンス番号ＳＥＱ１のルーチン処理のフローチャートである。
【図９】シーケンス番号ＳＥＱ２のルーチン処理のフローチャートである。
【図１０】シーケンス番号ＳＥＱ３のルーチン処理のフローチャートである。
【図１１】シーケンス番号ＳＥＱ４のルーチン処理のフローチャートである。
【図１２】シーケンス番号ＳＥＱ５のルーチン処理のフローチャートである。
【図１３】シーケンス番号ＳＥＱ６のルーチン処理のフローチャートである。
【図１４】シーケンス番号ＳＥＱ７のルーチン処理のフローチャートである。
【図１５】シーケンス番号ＳＥＱ８のルーチン処理のフローチャートである。
【図１６】シーケンス番号ＳＥＱ９のルーチン処理のフローチャートである。
【図１７】シーケンス番号ＳＥＱ１０のルーチン処理のフローチャートである。
【図１８】シーケンス番号ＳＥＱ１１のルーチン処理のフローチャートである。
【図１９】シーケンス番号ＳＥＱ１２のルーチン処理のフローチャートである。
【図２０】シーケンス番号ＳＥＱ１３のルーチン処理のフローチャートである。
【図２１】シーケンス番号ＳＥＱ１４のルーチン処理のフローチャートである。
【図２２】シーケンス番号ＳＥＱ１５のルーチン処理のフローチャートである。
【図２３】シーケンス番号ＳＥＱ１６のルーチン処理のフローチャートである。
【図２４】タイムアップ検出時の処理フローチャートである。
【図２５】従来例を説明するための図である。
【符号の説明】
２５  検出手段（アップカウンタ）
２９  正規化手段（カウンタ値正規化部）
３１  第２判定手段（カウンタ値判定部）
３３  第３判定手段（ＡＴ文字判定部）
３４  第１判定手段（極性判定部）
Ｄ１  送信データ（ＳＤ信号）
Ｄ２  極性変化点間幅データ（カウンタ値）
Ｄ３  正規化データ（正規化カウンタ値）
Ｄ４  通信速度（ビット速度情報）
Ｄ５  ビット数（ビット数情報）
Ｄ７  極性データ（極性値）
【図１】
0003585140.tif 000002
【図２】
0003585140.tif 000003
【図３】
0003585140.tif 000004
【図４】
0003585140.tif 000005
【図５】
0003585140.tif 000006
【図６】
0003585140.tif 000007
【図７】
0003585140.tif 000008
【図８】
0003585140.tif 000009
【図９】
0003585140.tif 000010
【図１０】
0003585140.tif 000011
【図１１】
0003585140.tif 000012
【図１２】
0003585140.tif 000013
【図１３】
0003585140.tif 000014
【図１４】
0003585140.tif 000015
【図１５】
0003585140.tif 000016
【図１６】
0003585140.tif 000017
【図１７】
0003585140.tif 000018
【図１８】
0003585140.tif 000019
【図１９】
0003585140.tif 000020
【図２０】
0003585140.tif 000021
【図２１】
0003585140.tif 000022
【図２２】
0003585140.tif 000023
【図２３】
0003585140.tif 000024
【図２４】
0003585140.tif 000025
【図２５】
0003585140.tif 000026