Смекни!
smekni.com

Типичный модем содержит следующие компоненты: специализи­рованный микропроцессор, управляющий работой модема, оператив­ную память, хранящую значения регистров модема и буферизующие входную/выходную информацию, постоянную память, динамик, позво­ляющий выполнять звуковой контроль связи, а также другие вспо­могательные элементы ( трансформатор, резисторы, конденсаторы, разьемы). Если у вас достаточно современный модем, то он скорее всего дополнительно содержит электрически перепрограммируемую постоянную память, в которой может быть сохранена конфигурация модема даже при выключении питания.

Чтобы модемы могли обмениваться друг с другом информацией, надо, чтобы они использовали одинаковые способы передачи данных по телефонным линиям. Для разработки стандартов передачи данных был создан специальный международный консультативный комитет по телеграфии и телефонии (CCITT) и приняты следующие рекоменда­ции:

CCITT V.21 - 300 bps. Модем, регламентированный данной ре­комендацией, предназначен для передачи данных по выделенным и коммутируемым линиям.

Он работает в асинхронном дуплексном режиме. Для передачи и приема данных используется способ частотной модуляции.

CCITT V.22 - 1200 bps. Модем, работающий в соответствии с данной рекомендацией, использует асинхронно-синхронный дуп­лексный режим передачи. Асинхронно-синхронный режим означает, что компьютер передает модему данные в асинхронном режиме. Мо­дем удаляет из потока данных компьютера стартовые и стоповые биты. И уже в синхронном виде передает их удаленному компьюте­ру. Для модуляции передаваемого сигнала применяется метод диф­ференциальной фазовой модуляции.

CCITT V.22bis - 2400 bps. Дуплексный модем, со скоростью передачи данных 2400 bps. При передаче со скоростью 2400 bps используется метод квадратурной модуляции, а при скорости 1200

- метод дифференциальной фазовой модуляции. На скорости 1200 bps модем CCITT V.22bis совместим с CCITT V.22.

CCITT V.23 - 600/1200 bps. Асинхронный модем, использующий метод частотной модуляции. Модем может работать в дуплексном режиме со скоростью передачи данных по прямому каналу - 600/1200 bps, а по обратной - только 75 bps. Этот стандарт не совместим с CCITT V.21, V.22, V.22bis.

Bell 103 - 300 bps, Bell 212A - 1200 bps.

Bell - это американский стандарт, не совместимый со стан­дартами CCITT.

4. Программирование модемов

После выпуска американской фирмой Hayes модемов серии Smartmodem, система команд, использованная в ней, стала неким стандартом, которого придерживаются остальные фирмы - разработ­чики модемов. Система команд, применяемая в этих модемах, носит название hayes-команд, или AT-команд.

Со времени выпуска первых AT-совместимых модемов набор их команд несколько расширился, но все основные команды остались без изменения.

Все команды, передаваемые компьютером модему, надо начи­нать префиксом AT (ATtention - внимание) и заканчивать символом возврата каретки ( <CR> ). Только команда А/ и Escape-последо­вательность "+++" не требуют для себя префикса AT.

После префикса AT могут идти одна или сразу несколько ко­манд. Для ясности эти команды могут быть отделены друг от друга символами пробела, тире, скобками. В большинстве случаев коман­ды могут быть написаны как заглавными, так и строчными буквами.

При передаче модему команд они сначала заносятся во внут­ренний буфер, который, как правило, имеет размер 40 символов. Команды, записанные в буфер модема, исполняются после поступле­ния символа возврата каретки. Вследствие ограниченности размера буфера не следует передавать модему слишком длинные команды ( больше размера буфера). Длинные команды можно разбивать на части и передавать в несколько заходов. При этом каждая часть должна начинаться префиксом АТ и заканчиваться символом возвра­та каретки.

Если вы допустили ошибку при наборе команды, то ее можно исправить, используя клавишу BackSpace.

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

Если у вас внешний модем, то на его лицевой панели нахо­дится восемь световых индикаторов. Хотя их расположение на раз­личных моделях может меняться, их обозначения являются стан­дартными:

MR Modem Ready - Модем готов к обмену данными. Если этот индикатор не горит, то надо проверить линию питания модема.

TR Terminal Ready - Компьютер готов к обмену данными с мо­демом. Этот индикатор горит, когда модем получил от компьютера сигнал DTR.

CD Carrier Detect - Индикатор зажигается, когда модем об­наружил несущую частоту на линии. Индикатор должен гореть на протяжении всего сеанса связи и гаснуть, когда один из модемов освободит линию.

SD Send Data - Индикатор мигает, когда модем получает дан­ные от компьютера.

RD Receave Data - Индикатор мигает, когда модем передает данные к компьютеру

HS High Speed - Модем работает на максимально возможной для него скорости.

AA Auto Answer - Модем находится в режиме автоответа. То есть модем автоматически будет отвечать на приходящие звонки. Когда модем обнаружит звонок на телефонной линии, этот индика­тор замигает.

OH Off-Hook - Этот индикатор горит, когда модем снял труб­ку ( занимает линию).

Основные команды модема

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

A - Автоответ. Если режим автоматического ответа выключен (S0=0), команда используется для ответа на звонок от удаленного модема. Команда заставляет модем снять трубку ( подключиться к линии ) и установить связь с удаленным модемом.

A/ - Модем повторяет последнюю введенную команду. Команда передается на модем без префикса AT и исполняется модемом не­медленно, не ожидая прихода символа возврата каретки. Если вы передадите модему строку AT A/ <CR>, то модем укажет на ошибку и вернет слово ERROR.

Bn - Команда производит выбор стандарта, согласно которому будет происходить обмен данными между модемами. При скорости передачи 300 бит/с происходит выбор между стандартами BELL 103 и CCITT V.21, при скорости 1200 bps - между BELL 212A и CCITT

V.22bis. При скорости 2400 bps эта команда игнорируется и используется стандарт CCITT V.22. Если n=0, устанавливаются стандарты CCITT V.21/V.22, а если n=1 - стандарты BELL 103/212A.

Ds - Команда используется для набора номера. После получе­ния этой команды модем начинает набор номера и при установлении связи переходит в режим передачи данных. Команда состоит из префикса AT, символа D и телефонного номера, в состав которого могут входить следующие управляющие модификаторы: P или T. Эти модификаторы производят выбор между импульсной и тоновой систе­мой набора ( в нашей стране используется импульсная система).

, - Символ запятой вызывает паузу при наборе номера. Дли­тельность паузы определяется содержимым регистра S8.

; - Символ точки с запятой, если он находится в конце ко­мандной строки, переводит модем после набора номера в командный режим.

@ - Модем ожидает пятисекундной тишины на линии в течение заданного промежутка времени. Промежуток времени, в течение ко­торого модем ожидает тишины, задается в регистре S7. Если в те­чение этого времени паузы тишины не было, модем отключается и отвечает NO ANSWER.

! - Если знак ! стоит перед знаками последовательности на­бора, модем переходит в состояние ON HOOK (кладет трубку) на 1/2 секунды, а затем снова переходит в состояние OFF HOOK ( снимает трубку).

S - Модем набирает телефонный номер, записанный в его па­мяти. Эта команда выполняется только для модемов, имеющих встроенную энергонезависимую память и возможность записи в нее номеров телефонов.

R - После набора номера переводит модем в режим автоотве­та. Этот модификатор должен находиться в конце набираемого но­мера.

W - Перед дальнейшим набором телефонного номера модем ожи­дает длинный гудок из линии. Причем время ожидания гудка содер­жится в регистре S7. Если в отведенное время гудок не появился, модем прекращает набор номера и возвращает сообщение NO DIALTONE. Этот параметр может быть полезен при наборе междуго­родних номеров.

En - Управление эхо-выводом команд, передаваемых модему. После команды Е1 модем возвращает каждый знак, передаваемый ему, обратно компьютеру, что позволяет узнать, как работает связь модема и компьютера. Команда Е0 запрещает эхо-вывод.

Fn - Переключение между дуплексным/полудуплексным режима­ми. При n=0 переход в полудуплексный режим, а при n=1 - в дуп­лексный.

Hn - Эта команда используется для управления телефонной линией. Если n=0, то происходит отключение модема от линии, если n=1, модем подключается к линии.

In - Выдает идентификационный код модема и контрольную сумму содержимого памяти модема. Если n=0, модем сообщает свой идентификационный код, если n=1, модем проводит подсчет конт­рольной суммы EPROM и передает ее компьютеру, n=2 - модем про­веряет состояние внутренней памяти ROM и возвращает сообщение OK или CHECKSUM ERROR (ошибка контрольной суммы). При n=3 выда­ется состояние модема.

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

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

Qn - Управление ответом модема на AT-команды. При n=0 от­вет разрешен, при n=1 ответ запрещен. Независимо от состояния Q0 или Q1 модем всегда сообщает содержание S-регистров, свой идентификационный код, контрольную сумму памяти и результаты теста.

On - Команда переводит модем из командного режима в режим передачи данных. При этом модем отвечает CONNECT. Команда О и О0 переводят модем в режим передачи данных без инициирования последовательности сигналов проверки линии связи. Команда О1 переводит модем в режим передачи данных и заставляет модем пе­редать последовательности сигналов проверки линии связи, т.е. производить повторное квитирование с удаленным модемом.