Введение
В последнее время модемы становятся неотъемлемой частью компьютера. Установив модем на свой компьютер, вы фактически открываете для себя новый мир. Ваш компьютер превращается из обособленного компьютера в звено глобальной сети.
Модем позволит вам, не выходя из дома, получить доступ к базам данных, которые могут быть удалены от вас на многие тысячи километров, разместить сообщение на BBS (электронной доске объявлений), доступной другим пользователям, скопировать с той же BBS интересующие вас файлы, интегрировать домашний компьютер в сеть вашего офиса, при этом создается полное ощущение работы в сети офиса. Кроме того, воспользовавшись глобальными сетями (RelCom, FidoNet, Internet) можно принимать и посылать электронные письма не только внутри города, но фактически в любой конец земного шара. Глобальные сети дают возможность не только обмениваться почтой, но и участвовать во всевозможных конференциях, получать новости практически по любой интересующей вас тематике.
Существует три основных способа соединения компьютеров для обмена информацией:
непосредственная связь, через асинхронный порт;
связь с использованием модема;
связь через локальные сети. 1. Типы модемов
Боды и биты в секунду. Когда говорят о модемах, то очень часто путают боды и биты в секунду (бит/с). Скорость передачи выраженная в бодах, указывает, сколько раз в секунду изменяется состояние сигнала, передаваемого из одного устройства в другое. Если, например, частота или фаза сигнала меняется 300 раз в секунду, то говорят, — скорость передачи сигнала равна 300 бодам. Если при этом каждое состояние (изменение) передаваемого сигнала используется для передачи одного бита, то 300 бод в данном случае эквивалентны 300 бит/с. Если же в каждом состоянии сигнала передается два бита информации, то скорость передачи в битах в секунду будетв 2 раза больше, т.е. 600 бит/с. В большинстве модемов каждому состоянию соответствует несколько битов, поэтому фактическая скорость передачи в бодах меньше скорости в битах в секунду.
В настоящее время выпускается огромное количество всевозможных модемов, начиная от простейших, обеспечивающих скорость передачи около 300 бит/сек, до сложных факс-модемных плат, позволяющих вам послать с вашего компьютера факс или звуковое письмо в любую точку мира.
Аппаратно модемы выполнены либо как отдельная плата, вставляемая в слот на материнской плате компьютера, либо в виде отдельного корпуса с блоком питания, который подключается к последовательному асинхронному порту компьютера. Первый из низ называется внутренним модемом, а второй — внешним.
Типичный модем содержит следующие компоненты: специализированный микропроцессор, управляющий работой модема, оперативную память, хранящую значения регистров модема и буферизующие входную/выходную информацию, постоянную память, динамик, позволяющий выполнять звуковой контроль связи, а также другие вспомогательные элементы (трансформатор, резисторы, конденсаторы, разьемы). Если у вас достаточно современный модем, то он скорее всего дополнительно содержит электрически перепрограммируемую постоянную память (EEPROM), в которой может быть сохранена конфигурация модема даже при выключении питания.
Чтобы модемы могли обмениваться друг с другом информацией, надо, чтобы они использовали одинаковые способы передачи данных по телефонным линиям. Для разработки стандартов передачи данных был создан специальный международный консультативный комитет по телеграфии и телефонии (CCITT) и приняты следующие рекомендации:
Bell 103
Стандарт со скоростью передачи 300 бит/с принят в США и Канаде. Тип используемой модуляции — частотная, каждому состоянию сигнала соответствует один бит. В большинстве быстродействующих современных компьютеров этот стандарт предусмотрен, хотя он уже устарел.
Bell 212A
Стандарт со скоростью передачи 1200 бит/с принят в США и Канаде. В нем используется дифференциальная фазовая модуляция DPSK (Differential Phase-Shift Keying), скорость передачи—600 бод, каждому состоянию соответствует 2 бит данных.
V.21
Этот международный стандарт передачи данных со скоростью 300 бит/с подобен стандарту Bell 103, однако из-за различий в используемых диапазонах частот модемы V.21 не совместимы с модемами Bell 103. В основном V.21 используется за пределами США.
V.22
Данный международный стандарт передачи данных со скоростью 1200 бит/с подобен Bell 212A, однако не совместим с ним по некоторым характеристикам, в частности по способу ответа на вызов. Этот стандарт используется, в основном, за пределами США.
V.22bis
Это международный стандарт передачи данных со скоростью 2400 бит/с. Слово bis означает второй, т.е улучшенный вариант стандарта V.22. Применяется V.22bis как в США, так и в других странах. Используется амплитудно-фазовая модуляция (QAM), скорость передачи данных— 600 бод, в каждом состоянии сигнала кодируется 4 бит.
V.23
Данным стандартом предусматривается передача данных со скоростью 1200 бит/с в одном направлении и 75 бит/с— в обратном. Модем, соответствующий этому стандарту, оказывается псевдодуплексным, т.е. он может обмениваться данными в обоих направлениях, но с разными скоростями. V.23 был разработан для того, чтобы снизить стоимость модемов со скоростью передачи 1200 бит/с, которые были довольно дорогими в начале 80-х годов. Используется, в основном, в Европе.
V.29
Этот стандарт определяет полудуплексный (однонаправленный) способ передачи данных со скоростью 9600 бит/с. Обычно он используется для факсимильных аппаратов (факсов), и очень редко для модемов. Поскольку указанный стандарт является полудуплексным, соответствующие устройства оказываются намного проще тех, которые работают в высокоскоростных дуплексных режимах. V.29 в качестве стандарта для модемов не является функционально полным, так как он не определяет полного набора требований к стандартам. Именно поэтому устройства разных серий редко оказываются совместимыми. Эти недостатки стандарта не касаются факсимильных аппаратов, параметры которых определены в V.29 полностью.
V.32
Это стандарт дуплексной передачи данных со скоростью 9600 бит/с. В нем определены методы коррекции ошибок и способы связи. Используется амплитудно-фазовая модуляция с так называемым кодированием TCQAM, при котором каждому состоянию сигнала соответствует 4 бит. При таком кодировании вместе с каждой группой из 4 бит передается дополнительный контрольный бит. Это позволяет выполнять коррекцию ошибок в приемном устройстве, что, в свою очередь, повышает устойчивость модемов, работающих в стандарте V.32, к воздействию шумов в линии передачи. Поскольку даже при однонаправленной передаче данных со скоростью 9600 бит/с используется практически вся полоса пропускания телефонной линии, в модемах V.32 реализуется сложная процедура прослушивания ответного сигнала, которая заключается в периодическом отключении собственных передаваемых сигналов и приеме ответных сигналов. До последнего времени распространение модемов, работающих в стандарте V.32, сдерживалось их сложностью и высокой стоимостью. Однако появление на рынке дешевых комплектов микросхем, разработанных специально для этих целей, изменило ситуацию, и V.32 постепенно превратился в общепринятый стандарт передачи данных со скоростью 9600 бит/с.
V.32bis
Стандарт V.32bis — это расширение V.32 со скоростью передачи 14400 бит/с. В нем применяется та же модуляция, что и в V.32 (TCQAM), скорость передачи — 2400 бод, в каждом состоянии кодируется 6 бит. Благодаря такому кодированию связь получается весьма надежной. Протокол V.32bis обеспечивает дуплексную связь. Если качество телефонной линии невысокое, то модемы переключаются в обычный режим V.32. Этот стандарт, благодаря своей производительности и помехоустойчивости, стал общепринятым при работе в современных телефонных линиях.
V.32fast
Стандарт V.32fast, также называемый V.FC (Fast Class), — это новый предложенный ССIТТ стандарт который является расширением V.32 и V.32bis. В нем предусмотрена скорость передачи данают 28800 бит/с, однако впоследствии он заменился стандартом V.34.
V.34
Стандарт V.34 — стандарт передачи данных со скоростью 31,2 и 33,6 Кбит/с. Многие существующие модемы V.34, оснащены сложными цифровыми процессорами Digital Signal Processors (DSPs).
V.90
Стандарт V.90 – стандарт передачи данных, который позволяет модему передавать со скоростью 57600 бит/с, и принимать данные со скокостью 33600 бит/с.
Ещё к представленным выше стандартам я хочу добавить наглядную таблицу стандартизации скорости модемов в зависимости от их применения. Скорость модема С какой целью он может использоваться 300 bps Для работы с местной BBS.(хотя не все диалоговые сервисные службы сейчас позволяют пользоваться ими так как они очень долго занимают телефонную линию, и вообще это очень устаревшая скорость передачи информации) 1200 bps Для местной BBS. 2400 bps Это самая низкая скорость продаваемых сегодня модемов может удовлетворять, если не осуществляется передача больших объемов информации(особенно на дальние расстояния) 9600 bps Модемы с такой скоростью (и выше) выполняют коррекцию ошибок и сжатие данных. Некоторые диалоговые сервисные службы приближаются к такому значению скорости, за исключением Internet. Многие BBS работают именно с этими параметрами скорости. 16 800 bps Такая скорость достигается только при установлении связи с модемом такой же модели. 19 200 bps То же, что и 16.8Kbps-модемы 28 800 bps Популярный ранее стандарт. Используется протокол v.34 bis 36 600 bps 56 000 bps Скорость современного модема. Используются протоколы: V90 и K56Flex 2. Программирование модемов
После выпуска американской фирмой Hayes модемов серии Smartmodem, система команд, использованная в ней, стала неким стандартом, которого придерживаются остальные фирмы — разработчики модемов. Система команд, применяемая в этих модемах, носит название hayes-команд, или AT-команд.
Со времени выпуска первых AT-совместимых модемов набор их команд несколько расширился, но все основные команды остались без изменения.
Все команды, передаваемые компьютером модему, надо начинать префиксом AT (ATtention — внимание) и заканчивать символом возврата каретки (). Только команда А/ и Escape-последовательность “+++” не требуют для себя префикса AT.
После префикса AT могут идти одна или сразу несколько команд. Для ясности эти команды могут быть отделены друг от друга символами пробела, тире, скобками. В большинстве случаев команды могут быть написаны как заглавными, так и строчными буквами.
При передаче модему команд они сначала заносятся во внутренний буфер, который, как правило, имеет размер 40 символов. Команды, записанные в буфер модема, исполняются после поступления символа возврата каретки. Вследствие ограниченности размера буфера не следует передавать модему слишком длинные команды (больше размера буфера). Длинные команды можно разбивать на части и передавать в несколько заходов. При этом каждая часть должна начинаться префиксом АТ и заканчиваться символом возврата каретки.
Если вы допустили ошибку при наборе команды, то ее можно исправить, используя клавишу BackSpace.
После выполнения каждой команды модем посылает обратно компьютеру ответ в виде числа или слова. Этот ответ означает, выполнена ли команда или произошла ошибка. Если у вас внешний модем, то на его лицевой панели находится восемь световых индикаторов. Хотя их расположение на различных моделях может меняться, их обозначения являются стандартными:
MR Modem Ready — Модем готов к обмену данными. Если этотиндикатор не горит, то надо проверить линию питания модема.
TR Terminal Ready — Компьютер готов к обмену данными с модемом. Этот индикатор горит, когда модем получил от компьютерасигнал DTR.
CD Carrier Detect — Индикатор зажигается, когда модем обнаружил несущую частоту на линии. Индикатор должен гореть на протяжении всего сеанса связи и гаснуть, когда один из модемов освободит линию.
SD Send Data — Индикатор мигает, когда модем получает данные от компьютера.
RD Receive Data — Индикатор мигает, когда модем передает данные к компьютеру
HS High Speed — Модем работает на максимально возможной для него скорости.
AA Auto Answer — Модем находится в режиме автоответа. То есть модем автоматически будет отвечать на приходящие звонки. Когда модем обнаружит звонок на телефонной линии, этот индикатор замигает.
OH Off-Hook — Этот индикатор горит, когда модем снял трубку (занимает линию).
Стандартный набор ответов модема
OK- Модем выполнил команду без ошибок
CONNECT- Модем установил связь со скоростью 300 bps
RING- Модем обнаружил сигнал звонка
NO CARRIER- Модем потерял несущую частоту
ERROR- Ошибка в командной строке
CONNECT X- Модем установил связь со скоростью X
NO DIALTONE- Отсутствие сигнала станции при снятии трубки
BUSY- Модем обнаружил сигнал «занято»
NO ANSWER- Нет ответа после ожидания сигнала
Основные принципы программирования модемов
Доступ к модему происходит через последовательный асинхронный порт. При этом для передачи модему команд их необходимо просто записать в регистр данных COM-порта, на котором находится модем. Ответ от модема также поступает через последовательный порт. Передавая модему команды, его можно проинициализировать, перевести в режим автоответа или заставить набрать номер.
Когда модем наберет номер удаленного абонента или когда модему в режиме автоответа придет вызов, он попытается установить связь с удаленным модемом. После установления связи модем передает компьютеру через COM-порт специальное сообщение и переключится из командного режима в режим передачи данных. После этого данные, передаваемые модему, перестают восприниматься им как команды и сразу передаются по телефонной линии на удаленный модем.
Итак, после установления связи с удаленным модемом, коммуникационная программа может начинать обмен данными. Обмен данными так же, как и передача команд, осуществляется через COM-порт. Затем при помощи специальной Escape-последовательности можно переключить модем из режима передачи данных обратно в командный режим и положить трубку, разорвав связь с удаленным модемом. 3. Последовательность действий для установления связи
Инициализация COM-порта.
Проводим инициализацию COM-порта, к которому подключен модем. Для этого программируем регистры микросхемы UART, задавая формат данных и скорость обмена. Заметим, что модем будет проводить соединение с удаленным модемом как раз на этой скорости. Чем скорость выше, тем быстрее будет происходить обмен данными с удаленным модемом. Однако при увеличении скорости на плохих телефонных линиях сильно возрастает количество ошибок.
Инициализация модема.
Передавая модему AT-команды через СОМ-порт, производим его инициализацию. При помощи АТ-команд можно установить различные режимы работы модема — выбрать протокол обмена, установить набор диагностических сообщений модема и т.д.
Соединение с удаленным модемом.
Передаем модему команду набора номера (ATD). В этом случае модем набирает номер и пытается установить связь с удаленным модемом. Или передаем модему команду AT S0=1 для перевода его в режим автоответа. После этого модем ожидает звонка от удаленного модема, а когда он приходит, пытается установить с ним связь.
Ожидаем ответ от модема.
В зависимости от режима, в котором находится модем, он может передавать компьютеру различные сообщения. Например, если модем производит вызов удаленного модема (АТ-команда ATD), то модем может выдать следующие сообщения:
CONNECT- Успешное соединение
BUSY- Номер занят
NO DIALTONE- На линии отсутствует сигнал коммутатора
NO ANSWER- Абонент не отвечает
NO CARRIER- Неудачная попытка установить связь
Когда приходит звонок, модем передает компьютеру сообщение RING, если регистр модема S0 равен нулю. В этом случае для ответа на звонок надо послать модему команду АТА. Если модем находится в режиме автоответа и регистр модема S0 не равен нулю, то модем автоматически пытается ответить на звонок и может выдать следующие сообщения:
CONNECT- Успешное соединение
NO DIALTONE- Нет несущей частоты удаленного модема
NO CARRIER- Неудачная попытка установить связь
Если модем передал компьютеру сообщение CONNECT, значит, он успешно произвел соединение и теперь работает в режиме передачи данных. Теперь все данные, которые вы передадите модему через СОМ-порт, будут преобразованы модемом в форму, пригодную для передачи по телефонным линиям, и переданы удаленному модему. И наоборот, данные, принятые модемом по телефонной линии, переводятся в цифровую форму и могут быть прочитаны через СОМ-порт, к которому подключен модем.
Если модем передал компьютеру сообщения BUSY, NO DIALTONE, NO ANSWER, NO CARRIER значит, произвести соединение с удаленным модемом не удалось и надо попытаться повторить соединение.
Подключение модема в командный режим.
После окончания работы коммуникационная программа должна перевести модем в командный режим и передать ему команду положить трубку (ATH0). Для перевода модема в командный режим можно воспользоваться Escape-последовательностью “+++”. После того как модем перешел в командный режим, можно опять передавать ему АТ-команды.
Сбрасываем сигналы налиниях DTR и RTS.
Низкий уровень сигналов DTR и RTS сообщает модему, что компьютер не готов к приему данных через COM-порт. При работе с асинхронным последовательным адаптером вы можете использовать механизм прерываний. Так как передача и прием данных модемом представляют собой длительный процесс, то применение прерываний от порта позволяет использовать процессорное время для других нужд.
Список литературы
Настраиваем модем //Hard & Soft, 1998г., №8
http://www.hardware.ru
Компьютер изнутри //Komputerra, 2000г., №3
Для подготовки данной работы были использованы материалы с сайта referat2000.bizforum.ru/