(57)【要約】【課題】ＡＴコマンドの位相ずれを発生させること無く、ＡＴコマンドの高速な処理を実現する手段を提供する。【解決手段】シリアル回線２経由でＤＴＥ１からのＡＴコマンドを受信すると、ＤＣＥ３はコマンド保持用のバッファに受信したコマンドを一括してコピーする。ＤＣＥ３はコマンド保持用のバッファに蓄積されたＡＴコマンド単位でエコーリザルトを出力し、処理後にリザルトコードを出力する。コマンド保持用のバッファが空になるまでこれを繰り返すことで、受信した全てのＡＴコマンドに対応する。【選択図】図１
2012080300.tif 000002
【特許請求の範囲】
【請求項１】
データ通信網に接続されたＤＴＥと、前記ＤＴＥから送られてきたデータを通信回線に適した信号に伝送路符号化を行うＤＣＥと、を含む無線システムであって、
前記ＤＴＥから前記ＤＣＥ宛のコマンドを一時的にためておくコマンド保持用のバッファを有し、
前記ＤＴＥは、前記コマンド保持用のバッファに蓄えられたコマンドを逐次処理していくことを特徴とする無線システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シリアル通信でＡＴコマンドの処理を行う装置において、ＡＴコマンドの応答を待たずに、逐次ＡＴコマンドを送信された場合の処理方法に関する。
【背景技術】
【０００２】
ＡＴコマンドとは、モデムやターミナルアダプタの制御に用いられるコマンド体系である。モデムやターミナルアダプタに直接触れることなく、外部のパーソナルコンピュータからこれらの機器を制御できる点で広く普及している。
【０００３】
図１は、ＡＴコマンドを用いてシリアル通信経由で処理を行う際の一般的な装置構成の概念図である。
【０００４】
この装置構成ではＤＴＥ１、シリアル回線２及びＤＣＥ３を含む。
【０００５】
ＤＴＥ（Ｄａｔａ  Ｔｅｒｍｉｎａｌ  Ｅｑｕｉｐｍｅｎｔ）１は、データ通信網に接続されたパーソナルコンピュータなどの機器である。
【０００６】
シリアル回線２は、ＤＴＥ１とＤＣＥ３の間を繋ぐＲＳ−２３２Ｃ等のシリアル通信ケーブルである。
【０００７】
ＤＣＥ（Ｄａｔａ  Ｃｅｒｃｕｉｔ  Ｔｅｒｍｉｎａｔｉｎｇ  Ｅｑｕｉｐｍｅｎｔ）３は、データ通信において、ＤＴＥ１等の機器から送られてくる信号を通信回線に適した信号に変換したり、その逆を行ったりするモデム等である。
【０００８】
次にこの環境下での通信手順について説明する。図２は、図１の装置構成下での通信の手順を表すシーケンスチャートである。なお、下記のコマンドの送受信は全てシリアル回線２を経由して行う。
【０００９】
まず、ＤＴＥ１がＤＣＥ３に対して、「ＡＴｘｘｘｘｘｘ＜ＣＲ＞」コマンドを送信する（ＣＭ１０１）。ここでＡＴはＡＴコマンドの先頭を表す文字列であり、＜ＣＲ＞はキャリッジリターン（行頭復帰）を表す１バイトのコマンドコードである。実際のコマンドの内容は「ＡＴ」と「＜ＣＲ＞」に囲まれた「ｘｘｘｘｘｘ」に記載される。なお、ＣＭ１０１をコマンドと述べる。
【００１０】
ＤＣＥ３はＣＭ１０１を正常に受信できた場合には、同じ内容の「ＡＴｘｘｘｘｘｘ＜ＣＲ＞」コマンドを返送することで受信成功のアクノリッジ信号とする（ＣＭ１０２）。このＣＭ１０２で返送するアクノリッジ信号をエコーリザルトと述べる。
【００１１】
その後、ＤＣＥ３はコマンドに対応した処理を内部で実行する。この結果をＤＣＥ３はＤＴＥ１に対して返送する（ＣＭ１０３）。このＣＭ１０３で出力する内部処理の結果をリザルトコードと述べる。
【００１２】
本図では、ＤＣＥ３における内部処理は成功裏に終わったものとしてＯＫを返している。しかし、失敗時にはこの限りではないことはいうまでもない。
【００１３】
このようにＡＴコマンドは、１コマンドずつ処理を行うことを前提にされた設計となっている。従って、上記ＤＴＥ１から一斉にコマンドが発行された場合には、応答遅延を生ずることが考えられる。
【００１４】
特開２００８−２５８７１２号公報（特許文献１）記載では、設定モードで送信されたＡＴコマンドを受信したときに、ＤＣＥは受信したＡＴコマンド情報を参照し、予め記憶させた複数の応答内容及び応答タイミングの中から判別設定情報に対応する応答内容及び応答タイミングを抽出して登録する。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開２００８−２５８７１２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
しかし、多数のコマンドがほぼ同時に入力されると、コマンドとエコーリザルトの対応が崩れる可能性がある。すなわち、二件目のＣＭ１０１と一件目のＣＭ１０２（エコーリザルト）が続けて送信される、といった形である。
【００１７】
図３は、従来の問題を説明するための概念図である。本図では、ＤＣＥ３にコマンド保持用のバッファが無い場合を想定する。
【００１８】
最初にＤＴＥ１から、「ＡＴｘｘｘｘｘｘ＜ＣＲ＞」（ＣＭ１１１）、「ＡＴｙｙｙｙｙｙ＜ＣＲ＞」（ＣＭ１１２）の順でコマンドをＤＣＥ３に対して連続に送出する。
【００１９】
このときに、ＤＣＥ３は最初のＣＭ１１１に対してエコーリザルトを返送する（ＣＭ１１３）。これにより、既述のコマンドとエコーリザルトの対応が崩れた状態になる。
【００２０】
最終的に処理が完了するとＤＣＥ３はリザルトコードをＤＴＥ１に出力する（ＣＭ１１４）。そして、ＤＣＥ３にコマンド保持用のバッファが無い場合には、ＣＭ１１２には受け捨てられてしまい、ＣＭ１１２に対応したエコーリザルトの送出及び内部処理が行われない。
【００２１】
図４は、従来の別の問題を説明するための概念図である。図３はコマンド保持用のバッファが無い場合に付いて述べたが、本図はＤＣＥ３にコマンド保持用のバッファがある場合に付いてのものである。
【００２２】
最初にＤＴＥ１から、「ＡＴｘｘｘｘｘｘ＜ＣＲ＞」（ＣＭ１２１）、「ＡＴｙｙｙｙｙｙ＜ＣＲ＞」（ＣＭ１２２）の順でコマンドをＤＣＥ３に対して連続に送出すること、ＤＣＥ３は最初のＣＭ１２１に対してエコーリザルトを返送すること（ＣＭ１２３）、リザルトコードの出力（ＣＭ１２４）は図３同様である。
【００２３】
ＣＭ１２４の後、ＤＴＥ１が「ＡＴｚｚｚｚｚｚ＜ＣＲ＞」をＤＣＥ３に対して送出したとする（ＣＭ１２５）。この際、コマンド保持用のバッファ中にはＣＭ１２２の「ＡＴｙｙｙｙｙｙ＜ＣＲ＞」が残存しているため、エコーリザルトとしてＤＣＥ３はＤＴＥ１に対して、「ＡＴｙｙｙｙｙｙ＜ＣＲ＞」を送出する。
【００２４】
このようにＣＭ１２５とＣＭ１２６との間で同期が取れなくなることが生じる。
【００２５】
このようになると、結果としてＤＴＥ１とＤＣＥ３で位相のずれが生じることとなる。これによりＡＴコマンドの再送、異常発生時のリカバリ処理が必要となり、結果としてシステム全体の遅延につながる。
【００２６】
本発明の目的は、かかるＡＴコマンドの位相ずれを発生させること無く、ＡＴコマンドの高速な処理を実現する手段を提供することにある。
【００２７】
本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００２８】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次の通りである。
【００２９】
本発明の代表的な実施の形態に関わる無線システムは、データ通信網に接続されたＤＴＥと、このＤＴＥから送られてきたデータを通信回線に適した信号に伝送路符号化を行うＤＣＥと、を含み、ＤＴＥからＤＣＥ宛のコマンドを一時的にためておくコマンド保持用のバッファを有し、ＤＴＥは、コマンド保持用のバッファに蓄えられたコマンドを逐次処理していくことを特徴とする。
【発明の効果】
【００３０】
本発明に関わる無線システムを採用し、ＤＣＥに複数のＡＴコマンドを処理するためのコマンド保持用のバッファを用意することで、ＤＴＥがＤＣＥからの回答を待たずにＡＴコマンドを送信してくる場合でも、ＤＴＥが受信したＡＴコマンドから順番に処理できる。これにより、ＤＴＥコマンドの再送や異常処理（電源ＯＮ／ＯＦＦなど）を行う必要が無くなり、システムとしての処理の遅延が無くなる。
【図面の簡単な説明】
【００３１】
【図１】ＡＴコマンドを用いてシリアル通信経由で処理を行う際の一般的な装置構成の概念図である。
【図２】図１の装置構成下での通信の手順を表すシーケンスチャートである。
【図３】従来の問題を説明するための概念図である。
【図４】従来の別の問題を説明するための概念図である。
【図５】本発明の実施の形態に関わるシーケンスチャートである。
【図６】コマンド保持用のバッファの処理についての概念図である。
【図７】ＤＣＥの動作を表すフローチャートである。
【発明を実施するための形態】
【００３２】
以下の実施の形態においては、便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明する。しかし、特に明示した場合を除き、それは互いに無関係なものではなく、一方は他方の一部又は全部の変形例、詳細、補足説明などの関係にある。また、以下の実施の形態において、要素の数など（個数、数値、量、範囲などを含む）に言及する場合、特に明示した場合及び原理的に明らかに特定の数に限定される場合などを除き、その特定の数に限定されるものでなく、特定の数以上でも以下でも良い。
【００３３】
以下、図を用いて本発明の実施の形態を説明する。
【００３４】
（第１の実施の形態）
図５は、本発明の実施の形態に関わるシーケンスチャートである。
【００３５】
想定する構成としては図１の従来の構成中のＤＣＥ３にコマンド保持用のバッファがある場合を想定する。またこのシーケンスチャートでは、図３同様に「ＡＴｘｘｘｘｘｘ＜ＣＲ＞」、「ＡＴｙｙｙｙｙｙ＜ＣＲ＞」の順番で、ＤＴＥ１からＤＣＥ３に対してコマンドが送信されていることを想定する。
【００３６】
まず、ＤＴＥ１からＤＣＥ３に対して「ＡＴｘｘｘｘｘｘ＜ＣＲ＞」（ＣＭ２１１）を、次に「ＡＴｙｙｙｙｙｙ＜ＣＲ＞」（ＣＭ２１２）を連続して送信する。この際、ＤＣＥ３は後述するコマンド保持用のバッファにこれらのコマンドを保持する。
【００３７】
ＣＭ２１１に対応して、ＤＣＥ３はＤＴＥ１に対してエコーリザルト「ＡＴｘｘｘｘｘｘ＜ＣＲ＞」を返送する（ＣＭ２１３）。その後、ＣＭ２１１に対応した処理をＤＣＥ３は実行し、リザルトコードをＤＴＥ１に対して出力する（ＣＭ２１４）。
【００３８】
その後、ＤＣＥ３はコマンド保持用のバッファから「ＡＴｘｘｘｘｘｘ＜ＣＲ＞」を削除し、残余のコマンドが存在するか確認する（ＢＰ１）。
【００３９】
本図の場合、バッファ内にはＣＭ２１２に関する「ＡＴｙｙｙｙｙｙ＜ＣＲ＞」が残置する。従って、このコマンドに関する処理をＤＣＥ３は実行する必要がある。
【００４０】
まず、これまでにＣＭ２１２に対してエコーコマンドを発行していないため、エコーコマンドを出力する（ＣＭ２１５）。
【００４１】
その後、ＤＣＥ３は実際のコマンド処理を実行する。この実行結果を、リザルトコードとして出力する（ＣＭ２１６）。
【００４２】
次に、上記ＢＰ１等で用いられるコマンド保持用のバッファの処理について説明する。図６はコマンド保持用のバッファＢＵＦの処理についての概念図である。なお、図上では１８バイトのバッファとして記載しているが、バッファの容量は設計事項である。また、このバッファの設計に際してはリングバッファ形式とすると思われるが、実際どのように設計するかは設計事項である。また図５で＜ＣＲ＞として表記しているキャリッジリターンは一マスに「ＣＲ」と書くことで表現している。
【００４３】
リードポインタＲＰは、次の読み出しでコマンド保持用のバッファＢＵＦのどのバイトを読み出すかを示すアドレスポインタである。
【００４４】
ライトポインタＷＰは、次にデータの書き込みを行うのがどのバイトかを示すアドレスポインタである。
【００４５】
リードポインタＲＰの値とライトポインタＷＰの値が一致している場合には、コマンド保持用のバッファＢＵＦにはデータが存在していないことを表す。一方、リードポインタＲＰの値とライトポインタＷＰの値が異なるときには、コマンド保持用のバッファＢＵＦにコマンドが保持されていることが分かる。
【００４６】
上記、図５に当てはめると、コマンド保持用のバッファＢＵＦの処理は以下のようになる。
【００４７】
まず、ＣＭ２１１で「ＡＴｘｘｘｘｘｘ＜ＣＲ＞」を受信すると、ライトポインタで示されたバッファのアドレスから受信コマンドを記録する。そして、書き込んだバイト数分ライトポインタがインクリメントされる。
【００４８】
同様にＣＭ２１２で「ＡＴｙｙｙｙｙｙ＜ＣＲ＞」を受信すると、ライトポインタで示されたバッファのアドレスから受信コマンドを記録する。そして、書き込んだバイト数分ライトポインタがインクリメントされる。
【００４９】
ＤＣＥ３内でコマンドに関する処理が終了しリザルトコードが出力されると、当該コマンドに関する処理は完了したものとされる。リザルトコードの出力後、ＤＣＥ３はリードポインタをキャリッジリターンまでのバイト数をカウントし、リードポインタの値に加算する。この加算の後、既述のリードポインタの値とアドレスポインタの値が一致しているかの判定を行う。
【００５０】
本図ＢＰ１では一致しないため、次のコマンド（「ＡＴｙｙｙｙｙｙ＜ＣＲ＞」）の処理に移行する。一方ＣＭ２１６後は、リードポインタの値とアドレスポインタの値は一致しているため、ＡＴコマンドの処理全般が終了する。
【００５１】
これらのＤＣＥ３側の処理を図７を用いて説明する。図７はＤＣＥ３の動作を表すフローチャートである。
【００５２】
このフローチャートは、ＤＴＥ１から送信されるコマンドを受信するところから開始される（ステップＳ１００１）。
【００５３】
ＤＣＥ３は受信したコマンドをコマンド保持用のバッファＢＵＦ（図６参照）にコピーする（ステップＳ１００２）。また読み込んだデータのバイト数分だけライトポインタＷＰを増分する（ステップＳ１００３）。
【００５４】
その後リードポインタＲＰの指す値と、ライトポインタＷＰの指す値が一致するかを確認する（ステップＳ１００４）。リードポインタＲＰの指す値と、ライトポインタＷＰの指す値が一致した場合には（ステップＳ１００４：Ｙｅｓ）、処理を終了する。
【００５５】
一方、リードポインタＲＰの指す値と、ライトポインタＷＰの指す値が一致しない場合には（ステップＳ１００４：Ｎｏ）、ＤＣＥ３はエコーリザルトを出力し（ステップＳ１００５）、リードポインタＲＰを1バイト分増分する（ステップＳ１００６）。
【００５６】
その後、リードポインタが読み出したところまでで、ＡＴコマンドが検出できるかを確認する（ステップＳ１００７）。確認できない場合には（ステップＳ１００７：Ｎｏ）、再度ステップＳ１００４まで戻って処理を行う。
【００５７】
確認できた場合には（ステップＳ１００７：Ｙｅｓ）、ＤＣＥ３は該ＡＴコマンドの処理を行った後（ステップＳ１００８）、リザルトコードを出力する（ステップＳ１００９）。
【００５８】
以上のように処理することで、ＤＣＥ３に複数のＡＴコマンドを処理するためのコマンド保持用のバッファＢＵＦを用意することでＤＴＥ１がＤＣＥ３からの回答を待たずにＡＴコマンドを送信してくる場合でも、ＤＣＥ３が受信したＡＴコマンドから順番に処理できる。これにより、ＤＴＥコマンドの再送や異常処理（電源ＯＮ／ＯＦＦなど）を行う必要が無くなり、システムとしての処理の遅延が無くなる。
【００５９】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更が可能であることは言うまでもない。
【符号の説明】
【００６０】
１…ＤＴＥ、２…シリアル回線、３…ＤＣＥ。
【図１】
2012080300.tif 000003
【図２】
2012080300.tif 000004
【図３】
2012080300.tif 000005
【図４】
2012080300.tif 000006
【図５】
2012080300.tif 000007
【図６】
2012080300.tif 000008
【図７】
2012080300.tif 000009