6. Программирование модемов
После выпуска американской фирмой Hayes модемов серии Smartmodem, система команд, использованная в ней, стала неким стандартом, которого придерживаются остальные фирмы - разработчики модемов. Система команд, применяемая в этих модемах, носит название hayes-команд, или AT-команд.
Со времени выпуска первых AT-совместимых модемов набор их команд несколько расширился, но все основные команды остались без изменения.
Все команды, передаваемые компьютером модему, надо начинать префиксом AT (ATtention - внимание) и заканчивать символом возврата каретки ( <CR> ). Только команда А/ и Escape-последо-вательность «+++» не требуют для себя префикса AT.
После префикса AT могут идти одна или сразу несколько команд. Для ясности эти команды могут быть отделены друг от друга символами пробела, тире, скобками. В большинстве случаев команды могут быть написаны как заглавными, так и строчными буквами.
При передаче модему команд они сначала заносятся во внутренний буфер, который, как правило, имеет размер 40 символов. Команды, записанные в буфер модема, исполняются после поступления символа возврата каретки. Вследствие ограниченности размера буфера не следует передавать модему слишком длинные команды ( больше размера буфера). Длинные команды можно разбивать на части и передавать в несколько заходов. При этом каждая часть должна начинаться префиксом АТ и заканчиваться символом возврата каретки.
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.
S - Модем набирает телефонный номер, записанный в его памяти. Эта команда выполняется только для модемов, имеющих встроенную энергонезависимую память и возможность записи в нее номеров телефонов.
R - После набора номера переводит модем в режим автоответа. Этот модификатор должен находиться в конце набираемого номера.
W - Перед дальнейшим набором телефонного номера модем ожидает длинный гудок из линии. Причем время ожидания гудка содержится в регистре S7. Если в отведенное время гудок не появился, модем прекращает набор номера и возвращает сообщение NO DIALTONE. Этот параметр может быть полезен при наборе междугородних номеров.
Fn - Переключение между дуплексным/полудуплексным режимами. При n=0 переход в полудуплексный режим, а при n=1 - в дуплексный.
Hn - Эта команда используется для управления телефонной линией. Если n=0, то происходит отключение модема от линии, если n=1, модем подключается к линии.
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-регистров, свой идентификационный код, контрольную сумму памяти и результаты теста.
Sr? - Чтение содержимого регистра модема, имеющего номер r.
Sr=n - Запись в регистр модема с номером r числа n. Число
n может иметь значения от 0 до 255. Все команды модифицируют содержимое одного или более S-регистров. Некоторые S-регистры содержат временные параметры, которые можно поменять только командой S.
Vn - Производит выбор вида ответа модема на AT-команды.
При n=0 ответ происходит цифровым кодом, а при n=1 модем отвечает в символьном виде на английском языке. Использование цифровой формы ответа облегчает обработку результатов выполнения команды при написании собственных программ управления модемом.
Yn - Способ отключения модема от линии. Существуют два способа отключения модема от линии: стандартный, когда модем получает неактивный сигнал DTR от компьютера, и принудительный, когда модем получает от удаленного модема сигнал перерыва BREAK. Команда ATH0 направляет удаленному модему сигнал прерывания BREAK, который длится 4с. При n=0 модем отключается стандартно, при n=1 модем отключается после получения из линии сигнала BREAK.
Z - Сбрасывает конфигурацию модема. При этом во все регистры загружаются значения, принятые по умолчанию. Значения регистров, принятые по умолчанию берутся из энергонезависимой памяти модема или, если модем такой памяти не имеет, из постоянной памяти или определяется исходя из переключателей на плате модема.
+++ - Escape-последовательность, используемая для перехода в командный режим работы модема. Благодаря этой команде можно перейти из режима передачи данных модемом в командный режим работы без разрыва связи. Модем требует тишины перед и после направления этой Escape-последовательности. Величина этого промежутка тишины определена в регистре S12.
&F - модем устанавливает конфигурацию, записанную в постоянную память.
&Gn - Включение/выключение защитной частоты. n=0 - защитная частота выключена, n=1 - модем генерирует защитную частоту 550 Hz, n=2 - модем генерирует защитную частоту 1800 Hz. Использование данной команды зависит от особенностей телефонной линии.
&Ln - Вид линии связи. При n=0 передача по обычным (коммутируемым) линиям связи, n=1 передача по выделенным каналам.
&Mn - Установка асинхронно/синхронного режима работы. При n=0 устанавливается асинхронный режим, при n=1,2,3 устанавливается синхронный режим.
&Pn - Установка импульсного коэффициента набора номера в соответствии с различными стандартами. При n=0 - коэффициент заполнения замыкание/интервал 39/61 (Америка), при n=1 - 33/67 (Англия).
&Sn - Управление сигналом DSR порта RS-232-C. При n=0 сигнал DSR активен всегда, а при n=1 сигнал DSR активизируется только после окончания этапа установления связи между модемами.
Последовательность действий для установления связиа)Инициализация 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-порт.
При работе с асинхронным последовательным адаптером вы можете использовать механизм прерываний. Так как передача и прием данных модемом представляют собой длительный процесс, то применение прерываний от порта позволяет использовать процессорное время для других нужд.
7.Протоколы обмена данными
При передаче данных по зашумленным телефонным линиям всегда существует вероятность, что данные, передаваемые одним модемом, будут приняты другим модемом в искаженном виде. Например, некоторые передаваемые байты могут изменить свое значение или даже просто исчезнуть.
Для того, чтобы пользователь имел гарантии, что его данные переданы без ошибок, используются протоколы коррекции ошибок.
Общая форма передачи данных по протоколам с коррекцией ошибок следующая: данные передаются отдельными блоками (пакетами) по 16-20000 байт, в зависимости от качества связи. Каждый блок снабжается заголовком, в котором указана проверочная информация, например контрольная сумма блока. Принимающий компьютер самостоятельно подсчитывает контрольную сумму каждого блока и сравнивает ее с контрольной суммой из заголовка блока. Если эти две контрольный суммы совпали, принимающая программа считает, что блок передан без ошибок. В противном случае принимающий компьютер передает передающему запрос на повторную передачу этого блока.
Протоколы коррекции ошибок могут быть реализованы как на аппаратном уровне, так и на программном. Аппаратный уровень реализации более эффективен. Быстродействие аппаратной реализации протокола MNP примерно на 30% выше, чем программной.
8. Протоколы передачи файловВ отличие от протоколов нижнего уровня данные протоколы позволяют организовать прием и передачу файлов.
ASCII.Этот протокол работает без коррекции ошибок. В результате при передаче файлов по телефонным каналам из-за шума принятый файл сильно отличается от передаваемого. Если вы передаете выполняемый файл, то ошибки при передаче могут стать роковыми - полученная программа не будет работать. Если вы передаете короткие текстовые сообщения, то ошибки легко могут быть исправлены.
XModem.
Наиболее распространены три разновидности протокола XModem:
оригинальный протокол Xmodem
Xmodem c CRC
1K Xmodem
Оригинальный протокол Xmodem разработал Вард Кристенсен (Ward Christensen) в 1977 году. Вард Кристенсен был одним из первых специалистов по протоколам обмена данными. В честь него этот протокол иногда называют также протоколом Кристенсена.
При передаче файлов с помощью протоколов Xmodem формат данных должен быть следующим: 8-битовые данные, один стоповый бит и отсутствие проверки на четность. Для передачи использу-ется полудуплексный метод, т.е. данные могут передаваться в каждый момент времени только в одном направлении.
Протокол Xmodem Cheksum передает данные пакетами по 128 байт. Вместе с пакетом передается его контрольная сумма. При получении пакета контрольная сумма вычисляется снова и сравнивается с суммой, вычисленной на передающей машине. Пакет передан без ошибок, если суммы совпадают.
Этот метод обеспечивает достаточно хорошую защиту от ошибок. Только один из 256 пакетов может содержать ошибки, даже если контрольная сумма правильная.
Xmodem c CRC. Более защищенным от ошибок является протокол Xmodem CRC (Cyclic Redundancy Check). Xmodem CRC - протокол с проверкой циклическим избыточным кодом. В нем 8-битовая контрольная сумма заменена на 16-битовый циклический избыточный код. Этот протокол гарантирует вероятность обнаружения ошибок, равную 99,9984%. Только один из 700 биллионов плохих пакетов будет иметь правильный CRC-код. Протокол Xmodem CRC также передает данные пакетами по 128 байт.
1K Xmodem. Если передача идет без ошибок, протокол 1К Xmodem увеличивает размер пакета с 128 до 1024 байт. При увеличении числа ошибок размер пакета снова уменьшается. Такое изменение длины пакета позволяет увеличить скорость передачи файлов. В остальном протокол 1K Xmodem совпадает с протоколом Xmodem CRC.
Ymodem.
Протокол Ymodem разработал Чак Форсберг в 1984-1985 годах.
Протокол Ymodem похож на протокол 1K Xmodem, но имеет одно отличие: протокол Ymodem может передавать или принимать за один заход несколько файлов.
Существует модификация протокола Ymodem - Ymodem G. Протокол Ymodem G предназначен для использования с модемами, автоматически осуществляющими коррекцию ошибок на аппаратном уровне. Например, MNP-модемы с аппаратной реализацией MNP. В этом протоколе упрощена защита от ошибок, т.к. ее выполняет сам модем. Не используете этот протокол, если ваш модем не осуществляет аппаратную коррекцию ошибок.
9. Факс-модемные платы
В последнее время на рынке появилось множество факсимильных и факс-модемных плат. Если вы подключите эту плату к вашему компьютеру, то вы получите факсимильный аппарат. Благодаря этим платам вы можете передать факс на любой факсимильный аппарат или на любую факс-модемную плату в мире.
Факс-модемные платы можно использовать и как обычные модемы.
Программное обеспечение, обслуживающее Факс-модемные платы, позволяет преобразовывать данные в различных форматах к формату факсимильных аппаратов. Например, программа Quick Link II Fax позволяет передавать на факс-машины и другие факс-модемы следующие данные: текст, файлы в форматах TIFF, IMG подготовленные программой GEM Artline или Ventura Pablisher, BMP из Microsoft Windows, CUT из Dr.Halo и PCX из Paintbrush.
Некоторые модемы позволяют даже послать звуковое письмо.
Они обеспечивают запись и последующее воспроизведение речевого сигнала с помощью встроенных аналогово-цифрового и цифроаналогового преобразователей.
ВФИжГТУ
Кафедра ОВП и СУ
ЛЕКЦИЯ №19
Тема:
Интерфейсные БИС,
параллельный и последовательный в/в,
сопроцессор в/в,
наиболее известные БИС,
Модемы, протоколы обменами данных.
Выполнил : ст. гр. Д-861 Краснов А. Г.
Проверил : преп. Иванов А. Г.
Воткинск
1996
СОДЕРЖАНИЕ:
1. Сопроцессор в/в К1810 ВМ89
2. Генератор тактовых импульсов К1810 ГФ84
3. Контроллер накопителя на гибком магнитном диске К580ВГ72.
4.Модемы
4.1 Введение
4.2 Последовательный асинхронный адаптер
4.3 Аппаратная реализация
4.4 Программирование адаптера
4.5 Типы модемов
4.6 Программирование модемов
4.7 Протоколы обмена данными
4.8 Протоколы передачи файлов
4.9 Факс-модемные платы
... и доступен для чтения и записи со стороны ЦП. С помощью этого регистра осуществляется обмен данными между контроллером и ЦП, а также служебной информацией — загрузкой команды и чтением из регистров состояний и указателей. Запись и чтение служебной информации осуществляется в определенной последовательности, в соответствии со структурой команд. Основной регистр состояния RS доступен только для ...
... , В 3. Активное сопротивление, Ом «1» «10» «100» «1000» «1» «10» «100» «1000» «1» «10» «100» «1000» «10м» 2.2 Программное обеспечение тестирования устройства Программа тестирования ПЗУ по методу контрольной суммы LXI B 0040h ; Загрузить в ВС начальный адрес ПЗУ MVI D ...
0 комментариев