Сайт Попова Вадима Сергеевича
:::Рекомендую:::
стань партнером
::: Как работать с модемом :::

Основные понятия.
Основной набор команд.
Дополнительный набор команд.
Описание S-регистров.

1 Основные понятия.

  Этот раздел предназначен для тех, кто никогда раньше модемов не видел, и хочет разобраться, что же такое МОДЕМ и для чего он вообще нужен.

  Итак - модем ! Название его происходит от двух слов: МОДулятор и ДЕМодулятор. Эти два слова как нельзя лучше отражают суть работы, производимой модемом. Он модулирует сигнал, передаваемый в телефонную линию, информацией, получаемой от компьютера, и наоборот, передает в компьютер то, что из линии демодулировал. Как Вы должно быть знаете , вся информация представляется в компьютере в виде нулей и единиц. Нули и единицы, в свою очередь, кодируются напряжением: нет напряжения - ноль, есть напряжение - единица. Естественно, что и обмениваться информацией компьютеры могут только с помощью нулей и единиц. Если расстояние, на которое нужно передать данные невелико, как например в компьютере - от одной микросхемы к другой, их просто соединяют проводами. А если Вы хотите передать что-то в компютер приятелю, который находится скажем в другом районе ? Вы разоритесь только на покупке провода, не говоря уже о том, чтобы заказывать рытье канавы для этого провода, или развешивание его на столбах.

  К счастью, во многих местах получил распространение телефон - а это ведь не что иное, как готовая пара проводов. Однако эти провода не так хороши, как хотелось бы, ведь предназначены они все-таки для передачи голоса, а не нолей и единиц. Тут-то и находится занятие для модема: преобразовать нули и единицы в сигнал, более-менее похожий по своим характеристикам на голос, а следовательно пригодный для передачи по телефону.

  По сути модем представляет собой маленький компьютер. В нем есть процессор, память, и другие детальки, необходимые для нормальной работы. Одним концом он подключается к телефонной линии, а другим к компьютеру. Если с телефонной линией мы немного разобрались, то про подключение к компьютеру стоит еще сказать несколько слов. Чтобы не делать для каждого типа компьютеров свой модем, умные люди решили договориться, и во все компьютеры ставить одинаковое устройство - коммуникационный порт (COM порт).

  Если компьютер имеет такой коммуникационный порт (стандарт на него имеет название RS232C в Америке, и V24 в Европе), то к нему можно подключить любой модем.

  Рассмотрим поподробнее стандарты на протоколы передачи данных по телефонной сети. Вообще говоря, принцип передачи информации по телефону чем-то напоминает радио. Модем генерирует так назывемую несущую частоту и модулирует ее поступающей от компьютера информацией по правилам определенного протокола.Здесь следует отметить, что данные по телефону передаются последовательно, бит за битом, и помимо основной информации, ради которой все затевается, передается и служебная, необходимая для "поддержания разговора". Как правило, в дополнение к 8 битам каждого байта данных прибавляется по 2 бита: один в начало (старт бит) и один в конец (стоп бит). Итого: байт будет состоять из 10 бит.

  Наука естественно не стоит на месте, и последнее время появились новые протоколы, повышающие скорость и предоставляющие дополнительный сервис. В качестве примера можно привести протоколы MNP и V42/V42bis. Модемы, их поддерживающие, могут автоматически корректировать ошибки, возникающие при передаче, и сжимать передаваемую информацию, что иногда увеличивает производительность. Как правило модемы выдерживают совместимость снизу-вверх. То-есть модемы, поддерживающие более совершенные протоколы обмена не перестают тем не менее работать с более старыми моделями.

  Теперь рассмотрим третий вид стандартов - это стандарт на команды модему. Для того, чтобы прояснить, что же такое "команда модему" сделаю одно пояснение: для любого стандартного модема возможны два режима, в которых он может находится. Первый режим - режим передачи данных. Модем принимает данные от компьютера, преобразует их в сигнал, и посылает в телефонную линию. Аналогично, тот сигнал, что пришел из линии преобразуется в данные, и передается компьютеру. Второй режим - командный. В этом режиме никакой модуляции/демодуляции модем не делает, и в линию ничего не посылает. Все данные, которые к нему поступают от компьютера, он рассматривает как команды, и пытается их выполнить. Этот режим является для модема базовым, то-есть когда Вы включаете модем, он начинает свою работу в командном режиме. В этом режиме Вы можете, посылая модему различные команды, заставить его поднять или опустить трубку, набрать номер, включить или выключить динамик, настроить параметры передачи данных и так далее.

  Общепринятым в настоящее время является стандарт на команды, предложенный американской фирмой HAYES. Вы должны учитывать, что любая команда модему должна быть не длиннее 40 символов, и заканчиваться кодом "возврата каретки" (клавиша ENTER), хотя здесь есть несколько исключений, которые мы рассмотрим дальше. Если модем распознал команду, он пытается ее выполнить, и сообщить о результате. Самая простая команда состоит всего из двух букв "AT", она заставляет модем "подать голос", ответить, что с ним все в порядке. Этот ответ выглядит как надпись "OK", выдаваемая модемом. Как правило модемы автоматически настраиваются на скорость и другие параметры КОМ порта, к которому они подключены, так-что любой исправный стандартный модем, находящийся в командном режиме должен откликаться на эту простую команду. Если же модем не может понять тот бред, который на него свалился, он ругается "ERROR", что значит ошибка.

  Большинство модемов не различают буквы верхнего и нижнего регистра, и игнорируют пробелы, тире и скобки, если они встречаются в командной строке. Это позволяет Вам более наглядно задавать команды. Еще одна особенность командного режима, на которую следует обратить внимание - модем не только обрабатывает поступающую к нему информацию, но и передает ее обратно в компьютер. Именно поэтому информация, которую Вы вводите с клавиатуры в терминальной программе выводится обратно на экран. Когда модем находится в режиме передачи данных этого не происходит, вся информация безвозвратно передается модемом в линию, и о том, чтобы возвратить ее Вам на экран должны заботиться программы, работающие с Вашим модемом.

2 Основной набор команд.

AT

Начало (префикс) командной строки. Эти две буквы являются префиксом для остальных команд, и в тоже время имеют самостоятельное значение. Это так называемая пустая команда. После получения этой команды модем автоматически подстраивает скорость передачи и формат знака к параметрам терминала.

A

Ручной ответ. Команда переключает модем из командного режима в режим ожидания сигнала несущей частоты вызывающего модема. После получения сигнала несущей, модем выдает свой ответ, и переходит в режим обмена данными с вызывающим модемом. Эта команда используется, чтобы заставить модем ответить на входящий звонок по телефону.

A/

Модем повторяет предыдущую командную строку. Внимание! Эта команда подается без префикса (AT) и нажатия .

Bn Выбор коммуникационного стандарта:
n = 0 - CCITT V.21, V.22, V.22 bis,
n = 1 - BELL 103/202A.
Ds

Автоматический набор телефонного номера. После получения этой команды, модем набирает номер и пытается связаться с удаленным модемом. Команда состоит из телефонного номера, и некоторых управляющих параметров:

s = P - обозначает, что цифры телефонного номера идущие после символа P модем должен набирать импульсно (то-есть так, как это делает обычный дисковый телефонный аппарат).

s = T - обозначает, что цифры телефонного номера идущие после символа T модем должен набирать частотой (этот способ очень распространен у буржуев, да и Москве уже стали появлятся новые АТС, его поддерживающие)

s = , - обозначает паузу в наборе номера. (обычно 2 секунды, но это время можно менять - см. описание регистра S8)

s = ; - если применяется как последний знак в командной строке, то модем после набора номера не пытается установить соединение, а остается в командном режиме работы.

s = @ - модем ожидает 5-секундной тишины на линии, если она не появится в течении 30 сек (содержимое регистра S7), модем отключается, и отвечает NO ANSWER.

s = ! - если знак ! стоит перед знаками последовательности на- бора, модем переходит в состояние ON HOOK (кладет трубку) на 0,5 сек, а затем снова перейдет в состояние OFF HOOK (снимает трубку).

s = S - модем набирает телефонный номер записанный в его энергонезависимой памяти.

s = R - при записи как последний символ в командной строке, устанавливает модем после набора номера в режим "answer" (ответ) , но только в том случае, если Ваш модем звонит к модему, который является "originate" (вызывающим).

s = W - модем ожидает ответ станции (длинный гудок) перед дальнейшим набором телефонного номера (например выход на автоматическую междугороднюю связь).

En

Местное эхо ON/OFF. После команды E1 модем возвращает эхо каждого знака передаваемого ему, что позволяет узнать, как действительно работает командная линия. Команда E0 блокирует эту функцию.
n = 0 - эхо выключено,
n = 1 - эхо включено (так стоит по умолчанию).

Hn

Управление линией. Команда используется прежде всего при окончании связи:
n = 0 - отключение модема от линии (ON HOOK),
n = 1 - подключение модема на линию (OFF HOOK).

In

Производственный код и контрольная сумма:
n = 0 - сообщение кода продукта,
n = 1 - подсчет контрольной суммы программы содержащейся в постоянной памяти (ROM),
n = 2 - модем проверяет состояние внутренней памяти ROM и возвращает сообщение OK или ERROR.

Ln Установка громкости сигнала встроенного динамика:
n = 0,1 - низкая,
n = 2 - средняя,
n = 3 - высокая.
Mn

Управление динамиком:
n = 0 - динамик выключен,
n = 1 - динамик включен только во время набора номера и выключается после обнаружения несущей,
n = 2 - динамик включен все время,
n = 3 - динамик включается после набора последней цифры номера и выключается после обнаружения несущей отвечающего модема.

Qn

Управление ответом модема (будет ли модем сообщать Вам о результатах выполнения команд):
n = 0 - ответ включен,
n = 1 - ответ выключен.
Независимо от состояния Q0 или Q1 модем всегда сообщает содержание S-регистров, код продукта, контрольную сумму и результаты теста (смотри команды S, I, а также &T).

O

После прохождения команды, модем настраивается на режим передачи данных и пытается установить соединение.

Sr? считывание содержимого S-регистра номер r.
Sr=nnn

Ввод числового параметра nnn в S-регистр номер r. Все команды модифицируют содержимое одного или более S-регистров. Некоторые S-регистры содержат временные параметры, которые можно поменять только командой S. (описания регистров смотрите ниже)

Vn выбор вида ответа модема.
n = 0 ответ цифровым кодом,
n = 1 ответ в символьном виде на английском языке.

Стандартный набор ответов модема

0 = ОК - Модем успешно выполнил команду.
1 = CONNECT - Модем подключен со скоростью 300 бит/с после команды X0 возможна работа со скоростью 600, 1200, 2400 бит/с.
2 = RING - Модем обнаружил правильный сигнал звонка. Ответ выдается всегда, независимо от режима работы.
3 = NO CARRIER - Модем потерял несущую или не получил ответ от удаленного модема.
4 = ERROR - Ошибка в командной строке. Командная строка длиннее 40 символов, или ошибка в контрольной сумме (смотри команду L2).
5 = CONNECT 1200 - Модем подключен со скоростью 1200 бит/с, (смотри команды X1, X2, X3, X4).
6 = NO DIALTONE - Отсутствие сигнала станции коммутации (смотри комманды X2, X4).
7 = BUSY - Номер (канал) занят.
8 = NO ANSWER - Ответ получается в случае использования в командной строке управляющего символа @ и если не выполнено условие - 5 сек тишины (см команду D).
9 = CONNECT 600 - Модем подключен со скоростью 600 бит/с, (смотри команды X1, X2, X3, X4).
10 = CONNECT 2400 - Модем подключен со скоростью 2400 бит/с, (смотри команды X1, X2, X3, X4).
Yn

Cпособ отключения модема от линии.Существуют два способа отключения модема от линии: - обыкновенный, когда модем получит неактивный сигнал DTR, - когда модем получит от удаленного модема сигнал перерыва Команда ATH0 направляет сигнал перерыва, который длится 4 сек.
n = 0 - модем отключается обыкновенно (см. команду &D),
n = 1 - модем отключается после получения сигнала из линии.

Z

Инициализация модема (модем считывает свою монфигурацию из энергонезависимой памяти).

+++

Последовательность выхода. Благодаря этой команде можно перейти из режима передачи данных в командный режим работы модема без перерыва связи. Команда требует тишины перед и после направления последовательности выхода. Величина этого времени определена в регистре S12 ( обычно 50 = 1s ). Десятичную код знака ASCII, который явдяется знаком последовательности выхода содержит регистр S2 ( обычно 43 т.е. '+' ).


3 Дополнительный набор команд

Эти команды могут отсутствовать в Вашем модеме, или иметь немного отличающиеся функции.
&Cn

Функция сигнала DCD. (определяет, когда модем будет активизировать сигнал DCD)
n = 0 - сигнал DCD всегда активен,
n = 1 - сигнал DCD будет активен с момента, когда модем определит несущую.

&Dn

Функция сигнала DTR в асинхронном режиме работы.
n = 0 - модем игнорирует DTR,
n = 1 - с момента потери DTR модем переходит в командный режим работы,
n = 2 - с момента потери DTR модем прекращает связь, выключает функцию "auto-answer" и переходит в командный режим работы,
n = 3 - с момента потери DTR модем автоматически реализует команду ATZ.

&F

Модем считывает свою конфигурацию записанную в постоянную память (ПЗУ).

&Gn

Включение/выключение защитной частоты. (эта функция используется при дальних междугородних и международных звонках).
n = 0 - защитная частота выключена,
n = 1 - модем будет посылать защитную частоту 550Hz,
n = 2 - модем будет посылать защитную частоту 1800Hz.

&Ln

Вид линии связи.
n = 0 - передача на коммутируемых линиях связи, n = 1 - передача на постоянных линиях связи.

&Mn

Режим работы.
n = 0 - асинхронный,
n = 1 - для терминалов, которые могут работать как в синхронном, так и в асинхронном режиме работы; команду набора номера модем передает асинхронно, а передачу данных - синхронно,
n = 2 - с момента появления сигнала DTR, модем набирает номер записанный командой &Z в энергонезависимую память,
n = 3 - при неактивном сигнале DTR производится ручой набор номера. После получения соединения, с момента поступления сигнала DTR модем подключается к линии.

&Pn

Установка импульсного коэффициента.
n = 0 коэффициент замыкание/интервал 39/61%,
n = 1 коэффициент замыкание/интервал 33/67%.

&Rn

Уравление зависимостью RTS/CTS :
n = 0 - сигнал CTS выставляется после сигнала RTS. Такой вариант проявляется во время моделирования полудуплексного режима работы. Данные появляющиеся до поступления сигнала управление зависимостью RTS/CTS :
n = 1 - модем игнорирует RTS, при активном CTS сразу после подключения модема. Во время асинхронной передачи данных (команда &M0) сигнал CTS всегда активен.

&Sn

Функции сигнала DSR:
n = 0 - сигнал DSR активен,
n = 1 - DSR активизируется после окончания этапа установления связи.

&Tn

Тесты модема.
n = 0 - окончание текущего теста,
n = 1 - начало теста внутренней аналоговой петлей,
n = 2 - не используется,
n = 3 - начало теста внутренней цифровой петлей,
n = 4 - модем дает согласие начала цифровой петли, которую передает удаленный модем,
n = 5 - модем не дает внешнему устройству согласия,
n = 6 - начало дистанционной цифровой петли,
n = 7 - модем генерирует петлю RDL, а затем генерирует и передает тестирующий сигнал,
n = 8 - аналоговая петля связанная с внутренним тестом.

&W

Модем читает свою конфигурацию из оперативной памяти (RAM) и записывает ее в энергонезависимую память (NVRAM).

&Xn

Выбор опорного времени для передачи.
n = 0 - модем сам генерирует основу времени - сигнал таймера 114 (с выводом на 15-ый штырек разъема),
n = 1 - модем получает основу времени для передачи из компьютера: сигнал таймера 113 (14-ый штырек),
n = 2 - модем получает основу времени для передачи из линии, от несущей.

&Z

Запись телефонного номера в память NVRAM, (максимум 33 знака).


4 Описание S-регистров.

Для описания отдельных S-регистров указано два параметра:
диапазон - обозначает диапазон параметров сохраняемых в S-регистре.
величина - обозначает заводскую величину параметра, записанную в S-регистре фирмой изготовителем.

S0

Количество сигналов звонка
Диапазон : 0 - 255
Величина : 000
Количество сигналов звонка, которого ждет модем перед ответом на вызов телефонной линии: S0 = 0 автоответ выключен S0 > 0 автоответ включен

S1

Счетчик сигналов звонка (информационный параметр)
Диапазон : 0 - 255
Величина : -
Содержимое этого S-регистра увеличивается каждый раз, когда модем получает сигнал звонка из телефонной линии и по истечении 8s после сигнала ответа сбрасывается.
Этот регистр - единственный, исполняющий чисто информационную роль, его содержимое можно только читать.

S2

Символ возврата в командный режим
Диапазон : 0 - 255
Величина : 043 (ASCII '+')
Содержит десятичный код символа ASCII, который является знаком последовательности возврата /смотри '+++'/. В случае, когда S2 > 127 происходит блокировка последовательности возврата.

S3

Символ
Диапазон : 0 - 127
Величина : 013 (ASCII '' или Ctrl-M (^M))
Содержит десятичный код символа ASCII, который является знаком .

S4

Символ
Диапазон : 0 - 127
Величина : 010 (ASCII '' или Ctrl-J (^J))
Содержит десятичный код символа ASCII, который является знаком новой строки .

S5

Символ
Диапазон : 0 - 32, 127
Величина : 008 (ASCII '' или Ctrl-H (^H))
Содержит десятичный код символа ASCII, который является знаком "забой" (backspase) .

S6

Время ожидания ответа станции
Диапазон : 2 - 255
Величина : 002 сек

S7

Время ожидание сигнала несущей
Диапазон : 1 - 155
Величина : 030 сек

S8

Время паузы при наборе номера для символа ","
Диапазон : 0 - 255
Величина : 002 сек

S9

Время реакции DCD
Диапазон : 0 - 255
Величина : 006 ( * 1/10 сек = 0,6 сек )
Время задержки активизации сигнала DCD после появления несущей.

S10

Задержка разъединения после потери несущей.
Диапазон : 1 - 255
Величина : 014 ( * 1/10s = 1,4 сек )

S12

Время тишины для последовательности возврата в командный режим.
Диапазон : 20 - 255
Величина : 050 ( * 1/50 сек = 1 сек )
Содержимое регистра определяет время требуемой тишины в линии при передаче перед и после последовательности возврата (смотри '+++').


© Попов В.С. 2001, Мариуполь, Украина
800 x 600 IE5 best view.