次のページ 前のページ 目次へ

7. (シリアルポートを除く)モデムの設定

7.1 モデムの検出

モデムの設定に多くの時間を費やす前に、モデムを検出できているか、そ して AT コマンドなどをモデムへ送出できるかどうか確認する必要があります。 従って、まず最初に使用予定の通信プログラムを非常に単純な設定で動かして、 正常に動作するか確かめることを勧めます。動作しているなら、モデムを検出 できています。動作しなければ、 モデムが 物理的には存在するのに検出できません をご覧ください。ソフトウェアモ デムは検出が難しく、Linux で動作しないかもしれません。

7.2 AT コマンド

モデムを接続するシリアルポートの設定が必要であると同時に、モデム自 体にも設定が必要です。データを送信するのと同じシリアル回線へ AT コマン ド(あるいはそれに類似したコマンド)を送って、モデムを設定します。

多くのモデムは AT コマンドセットを使用します。すべてのコマンド文字列は AT で始まり、暗号のような短い ASCII 文字のコマンドです。例: ATZ&K3 これには Z&K3 の 2 つのコマンドが含 まれています。不幸なことに、AT コマンドセットには多くの異なる種類があ ります。そのため、あるモデムで動作するコマンドが、他のモデムでは動作し ないことがあります。従って、本章で取り挙げる AT コマンドが、あなたのモ デムで動作する保証はありません。もうひとつ気を付けることは、モデムが AT コマンドに従う動作をするためには、コマンド文字列の最後に改行文字を 送らなければいけないことです。

このようなコマンド文字列は通信プログラムが自動的に送るか、あるいはあな たが直接入力します。多くの通信プログラムはモデムへ直接コマンドを送れる 画面を提供しています。電源を切ったあとでもモデムの設定を記憶しているの で、この画面でモデムを設定することは良い方法です。

モデムのマニュアルを持っているのなら、恐らくそのモデムの AT コマンドセッ トを調べることができます。その他に、インターネット上でコマンドセットを 探してみるのも良いでしょう。サーチエンジンを使い、コマンドに関して記述 しているけれどもコマンドリストを載せていないサイトの発見を避けるために、 実際のコマンドを検索語句に含めて検索することも良いかもしれません。 Web サイト に挙げるいくつかのサイトを見てみる のも良いでしょう。

7.3 初期化文字列: 保存および再呼出し

ここでの例は Hayes AT モデムコマンドセットを取り上げます。すべての コマンド文字列は AT の 2 文字で始めなければなりません(例えば、 AT&C1&D3)。モデムの電源を入れると、不揮発性メモリ中に格納 済の設定を用いて、モデム自身が自動的に設定を行います。この設定で充分な ら、もうすべきことはありません。

充分でないのなら、格納済みの設定を変更するか、モデムを使うたびに「初期 化文字列」と呼ぶコマンド文字列を送って設定する人もいるでしょう。通常、 通信プログラムがこれを行います。どのような初期化文字列を送るのかは、通 信プログラムの設定、Kermit を使うならスクリプトの記述に依存します。た いてい通信プログラムが使う初期化文字列は編集でき、どんな文字列にでも変 更できます。ときには、通信プログラムはユーザにモデムの型名を選択させ、 プログラムが最適だと考える初期化文字列を使用することもあります。

最初にモデムの電源を入れた際に使用する設定は、初期化文字列で表現できま す。この文字列を(プロファイルと呼ぶ)デフォルト「文字列」だと考えても構 いません。通信プログラムがモデムへ(初期化文字列を含む)他の文字列を送る と、この文字列はデフォルトの設定を変更します。例えば、初期化文字列が 2 つのコマンドを含んでいたなら、この 2 つの項目だけが変更されます。しか し、いくつかのコマンドはモデム内部の保存済みのプロファイルを呼び出し、 ひとつのコマンドで設定のすべてを変更できます。

最近のモデムには、(電源を切っても消えない)不揮発性メモリ中に保存する、 いくつかの異なったプロファイルがあります。著者のモデムには(変更できな い 0 と 1 )ふたつの工場設定プロファイルがあります。そして、(0 と 1 の) ふたつのユーザ定義プロファイルもあって、ユーザが設定しそれを保存できま す。あなたのモデムはより多くのプロファイルを持っているかもしれません。 電源を入れた際にユーザ定義プロファイルのうちどれを使用するかは、プロファ イルに保存済みのもうひとつの項目に依存します。&Y0 コマンドを 使用すると、次回の電源投入時からプロファイル 0 を使用します。ここで 0 ではなく 1 を入れると、電源を入れたときにプロファイル 1 を使用します。

4 つの格納済みプロファイルのいずれかを呼び出す(プロファイルを使用する) コマンドもあります。こういったコマンドを初期化文字列の中に入れる人もい るでしょう。もちろん、電源投入時に自動的に読みこむプロファイルと同じ設 定を初期化文字列が再び呼び出したとしても、最初から有効になるプロファイ ルが変わらない限り、設定は何も変わりません。たとえプロファイルを再び呼 び出すだけでも、設定を変更したあと、数種の初期化文字列を使うことは良い 考えです。

保存済みのプロファイルの再呼出し (0 ではなく 1 を指定するとプロファイ ル 1 を使用する):

Z0

ユーザ定義プロファイル 0 を呼び出しリセットする(電話を切るなど)

&F0

工場出荷時プロファイル0を呼出す

モデムへコマンドを送って設定したら、(工場出荷時のプロファイルを呼び出 して若干変更する場合も含んで) その設定をユーザ定義プロファイルへ保存し たくなるでしょう :
&W0 は現在の設定をユーザ定義プロ ファイル0へ保存します。

多くの人はモデムを使う度に長い初期化文字列をモデムに送ることを面倒に思っ て、代わりにモデムへ設定を保存します。また、初期化文字列で工場出荷時の デフォルト設定を呼び出し、その後ろにコマンドを追加して設定を少し変更す ることもできます。この方法により、電源投入時に読み込むユーザ定義プロファ イルを変更したことで問題を引き起こすことがなくなります。

あなたのモデムに適切だと思う初期化文字列を人からもらい、それを使用する のも良いでしょう。いくつかの通信プログラムは、その中から選択できるよう に初期化文字列のライブラリを持っています。最も難しい方法(そして、あな たがモデムに関する多くのことを学べること)は、モデムのマニュアルを研究 して初期化文字列を自分で書くことです。また、初期化文字列を不要にするた め、設定をモデムの中に保存できます。3 つ目の代替手法は、他人が書いた初 期化文字列をを目的に合わせて変更し、それを使ってモデムをスタートするこ とです。

通信プログラムが使用する初期化文字列を見ると、モデムコマンドにはない文 字があるかもしれません。この文字は通信プログラム自身のコマンド (~ は一時的なポーズの意味)であり、モデムへは送りません。

7.4 その他のモデムコマンド

Modem-HOWTO の将来のバージョンには、より多くの AT コマンドを載せる かもしれません。ですが、本節の残りのうち大部分は古い Serial-HOWTO のも のです。すべてのコマンド文字列は AT で始めなければなりません。コ マンド文字列中に含めるべき Hayes AT コマンドを挙げます。(含めなければ 工場出荷時のデフォルト設定、あるいは保存済みの設定を使用します。)

E1       コマンドエコー ON      
Q0       リザルトコードレポート有効
V1       冗長出力 ON
S0=0     出力無し (WAITFOR オプションを用いて uugetty が行う) 

モデム制御線の DCD と DSR に関係するコマンドを挙げます :

&C1 接続後のみ DCD を on
&S0 DSR 常時 on
このコマンドはモデムが電話をかけときと切るときの挙動に影響します。DTR がどのような動作をするのか設定しても構いませんが、その設定方法は更に複 雑になります。

モデムにプロファイルを保存できないのなら、設定ファイルなどへ 初期化 文字列を使用して設定できます。古いモデムにはディップスイッチで レジスタを設定するものもあります。正しく設定するよう、確認してください。

Greg Hankins さんはいろいろなモデムの設定集を持っています。あなた の設定を彼に送りたいのなら、そうしましょう : mailto:gregh@cc.gatech.edu ftp://ftp.cc.gatech.edu/pub/people/gregh/modem-configs に て、こういった設定ファイルを手に入れることができます。

確認: DTR が落ちたとき USR Courier V.34 モデムを正しくリセットする には、Greg Hankins さんは &D2 および S13=1 を設定しなけ ればなりませんでした(これは S13 レジスタを 0 に設定します)。この操作に より、USR Sportster V.34 モデムも正常に動作することを確認しました。

確認: いつかの Supra のモデムでは DCD の扱いが他のモデムと異なりま す。Supra を使っているなら、&C1 ではなく &C0 を 試してみてください。DTR を正しく扱うには、&D2 も設定する必要 があります。


次のページ 前のページ 目次へ