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

Из рисунка видно, что исходное



Иллюстрация


Из рисунка видно, что исходное состояние линии последовательной передачи данных - уровень логической 1. Это состояние линии называют отмеченным - MARK. Когда начинается передача данных, уровень линии переходит в 0. Это состояние линии называют пустым - SPACE. Если линия находится в таком состоянии больше определенного времени, считается, что линия перешла в состояние разрыва связи - BREAK.
Стартовый бит START сигнализирует о начале передачи данных. Далее передаются биты данных, вначале младшие, затем старшие.
Если используется бит четности P, то передается и он. Бит четности имеет такое значение, чтобы в пакете битов общее количество единиц (или нулей) было четно или нечетно, в зависимости от установки регистров порта. Этот бит служит для обнаружения ошибок, которые могут возникнуть при передаче данных из-за помех на линии. Приемное устройство заново вычисляет четность данных и сравнивает результат с принятым битом четности. Если четность не совпала, то считается, что данные переданы с ошибкой. Конечно, такой алгоритм не дает стопроцентной гарантии обнаружения ошибок. Так, если при передаче данных изменилось четное число битов, то четность сохраняется и ошибка не будет обнаружена. Поэтому на практике применяют более сложные методы обнаружения ошибок.
В самом конце передаются один или два стоповых бита STOP, завершающих передачу байта. Затем до прихода следующего стартового бита линия снова переходит в состояние MARK.
Использование бита четности, стартовых и стоповых битов определяют формат передачи данных. Очевидно, что передатчик и приемник должны использовать один и тот же формат данных, иначе обмен будет невозможен.
Другая важная характеристика - скорость передачи данных. Она также должна быть одинаковой для передатчика и приемника.
Скорость передачи данных обычно измеряется в бодах (по фамилии французского изобретателя телеграфного аппарата Emile Baudot - Э. Бодо). Боды определяют количество передаваемых битов в секунду. При этом учитываются и старт/стопные биты, а также бит четности.
Иногда используется другой термин - биты в секунду (bps). Здесь имеется в виду эффективная скорость передачи данных, без учета служебных битов.



Иллюстрация


Остальные линии при соединении компьютера и модема также должны быть соединены следующим образом:





Иллюстрация


Конечно, все это хорошо звучит. На практике все не так просто. Соединить компьютер и модем не составляет труда, так как интерфейс RS-232-C как раз для этого и предназначен. Но если вы захотите связать вместе два компьютера при помощи такого же кабеля, который вы использовали для связи модема и компьютера, то у вас возникнут проблемы.
Для соединения двух терминальных устройств - двух компьютеров - как минимум необходимо перекрестное соединение линий TR и RD:



Иллюстрация


Однако в большинстве случаев этого недостаточно, так как для устройств DTE и DCE функции, выполняемые линиями DSR, DTR, DCD, CTS и RTS, асимметричны.
Устройство DTE подает сигнал DTR и ожидает получения сигналов DSR и DCD. В свою очередь, устройство DCE подает сигналы DSR, DCD и ожидает получения сигнала DTR. Таким образом, если вы соедините вместе два устройства DTE кабелем, который вы использавали для соединения устройств DTE и DCE, то они не смогут договориться друг с другом. Не выполнится процесс подтверждения связи.
Теперь перейдем к сигналам RTS и CTS, управления потоком данных. Иногда для соединения двух устройств DTE эти линии соединяют вместе на каждом конце кабеля. В результате получаем то, что другое устройство всегда готово для получения данных. Поэтому, если при большой скорости передачи принимающее устройство не успевает приинимать и обрабатывать данные, возможна потеря данных.
Чтобы решить все эти проблемы для соединеия двух устройств типа DTE используется специальный кабель, в обиходе называемый нуль-модемом.
Имея два разъема и кабель, вы легко можете спаять его самостоятельно, руководствуясь следующими схемами.



Иллюстрация


Для полноты картины рассмотрим еще один аспект, связанный с механическим соединением портов RS-232-C. Из-за наличия двух типов разъемов - DB25 и DB9 - часто бывают нужны переходники с одного типа разъемов на другой. Например, вы можете использовать такой переходник для соединения COM-порта компьютера и кабеля нуль-модема, если на компьютере установлен разъем DB25, а кабель оканчивается разъемами DB9.
Схему такого переходника мы приводим на следующем рисунке:



Иллюстрация


Заметим, что многие устройства (такие, как терминалы и модемы) позволяют управлять состоянием отдельных линий RS-232-C посредством внутренних переключателей (DIP-switches). Эти переключатели могут менять свое значение на разных моделях модемов. Поэтому для их использования следует изучить документацию модема.
Например, для hayes-совместимых модемов, если переключатель 1 находится в положении "выключен" (down), это означает, что модем не будет проверять наличие сигнала DTR. В результате модем может отвечать на приходящие звонки, даже если компьютер и не запрашивает у модема установление связи.
Технические параметры интерфейса RS-232-C
При передаче данных на большие расстояния без использования специальной аппаратуры из-за помех, наводимых электромагнитными полями, возможно возникновение ошибок. Вследствие этого накладываются ограничения на длину соединительного кабеля между устройствами DTR-DTR и DTR-DCE.
Официальное ограничение по длине для соединительного кабеля по стандарту RS-232-C составляет 15,24 метра. Однако на практике это расстояние может быть значительно больше. Оно непосредственно зависит от скорости передачи данных. Согласно McNamara (Technical Aspects of Data Communications, Digital Press, 1982) определены следующие значения:

скорость передачи в бодахмаксимальная длина для экранированного кабеля, м максимальная длина для неэкранированного кабеля, м
1101524,0914,4
3001524,0914,4
1200914,4914,4
2400304,8152,4
4800304,876,2
960076,276,2

Уровни напряжения на линиях разъема составляют для логического нуля -15..-3 вольта, для логической единицы - +3..+15 вольт. Промежуток от -3 до +3 вольт соответствует неопределенному значению.
Если вы подключаете внешние устройства к разъему интерфейса RS-232-C (а также при соединении двух компьютеров нуль-модемом), предварительно выключите его и компьютер, а также снимите статический заряд (подсоединив заземление). В противном случае можно вывести из строя асинхронный адаптер. Земля компьютера и земля внешнего устройства должны быть соединены вместе.



Иллюстрация


Далее вам надо выбрать режим работы - Master (главный, ведущий, основной) или Slave (ведомый), а также последовательный порт, который вы будете использовать для соединения - COM1 или COM2.
Для одного из соединяемых компьютеров надо выбрать основной режим, а для другого - ведомый. При этом вы сможете работать только на компьютере, находящемся в основном режиме. Ведомый компьютер можно рассматривать только как дополнительную внешнюю память, работать на нем нельзя.
Работая за основным компьютером можно только копировать файлы на или с ведомого компьютера. При этом нет различий в том, в каком направлении копируются файлы.
Turbo Mode - устанавливает повышенную скорость обмена данными. Режим Turbo Mode должен быть установлен одновременно на обоих компьютерах.
При помощи программы Norton Commander вы можете выполнять следующие действия:

  • копировать и перемещать файлы с одного компьютера на другой
  • удалять, создавать новые файлы на ведомом компьютере, изменять атрибуты файлов
  • создавать, удалять каталоги на ведомом компьютере.

Вы не можете, однако, с основного компьютера:

  • просматривать дерево каталогов ведомого компьютера
  • запускать программы на ведомом компьютере.




Иллюстрация


Как правило, с модемом поставляется специальный кабель для подключения модема к телефонной линии. Здесь следует отметить, что разъем RJ11-C не подходит к стандартным телефонным розеткам, используемым в нашей стране. Кроме того, разъем RJ11-C имеет четыре линии, а обычная городская телефонная линия только две. Если у вас нет специального переходника, вы можете изготовить его сами (из кабеля, поставляемого с модемом и обычной телефонной вилки и розетки) в соответствии со следующим рисунком:



Иллюстрация


Согласно рисунку, вам надо подключить к телефонной линии (телефону) два средних провода. Оставшиеся два провода надо оставить неподключенными.
После того как вы произвели все указанные действия, вы можете, не включая питания компьютера, снять трубку телефона. Если слышен длинный гудок все нормально, в противном случае проверьте соединения разъемов и кабели.
Если все нормально, включите питание компьютера и модема (в случае внешнего модема) и проверьте работу телефона. Если телефон не работает, проверьте разъемы и кабели. Если они в порядке, обратитесь к документации модема, возможно, что модем неисправен.
Затем вы можете приступить собственно к проверке самого модема. Для этого вам надо запустить любую коммуникационную программу (MTE, BITCOM, COMIT), находящуюся в вашем распоряжении, и попытаться связаться с другим модемом. Обычно такие программы поставляются вместе с модемом.



Иллюстрация


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


MRModem ReadyМодем готов к обмену данными. Если этот индикатор не горит, то надо проверить линию питания модема
TRTerminal ReadyКомпьютер готов к обмену данными с модемом Этот индикатор горит, когда модем получил от компьютера сигнал DTR.
CDCarrier DetectИндикатор зажигается, когда модем обнаружил несущую частоту на линии. Индикатор должен гореть на протяжении всего сеанса связи и гаснуть, когда один из модемов освободит линию (положит трубку)
SDSend DataИндикатор мигает, когда модем получает данные от компьютера
RDReceave DataИндикатор мигает, когда модем передает данные компьютеру
HSHigh SpeedМодем работает на максимально возможной для него скорости
AAAuto AnswerМодем находится в режиме автоответа. То есть модем автоматически будет отвечать на приходящие звонки. Когда модем обнаружит звонок (вызов) на телефонной линии, этот индикатор замигает
OHOff-HookЭтот индикатор горит, когда модем снял трубку (занимает линию)

Теперь мы приведем описание расширенной системы команд hayes-модемов. Команды приведены в алфавитном порядке. Для каждой команды дано ее краткое описание и рекомендации по ее использованию.
AT- начало (префикс) командной строки. После получения этой команды модем автоматически подстраивает скорость передачи и формат данных к параметрам компьютера.
A - автоответ. Если режим автоматического ответа выключен (регистр S0 = 0), команда используется для ответа на звонок от удаленного модема. Команда заставляет модем снять трубку (подключиться к линии) и установить связь с удаленным модемом.
A/ - модем повторяет последнюю введенную команду. Команда передается на модем без префикса AT и исполняется модемом немедленно, не ожидая прихода символа возврата каретки <CR>. Если вы передадите модему строку AT A/ <CR>, то модем укажет на ошибку и вернет слово ERROR.



Иллюстрация


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



Иллюстрация


Команда & T4 дает согласие на начало удаленного цифрового теста, который запрашивает удаленный модем.
Команда &T5 не дает согласия удаленному модему на начало удаленного цифрового теста.
Команда &T6 вызывает выполнение удаленного цифрового теста. При этом происходит проверка локального компьютера, локального модема удаленного модема и линии связи:



Иллюстрация


По команде & T7 модем выполняет удаленный цифровой тест с самодиагностикой. Модем сам генерирует тестовые сообщения и подсчитывает число ошибок.



Иллюстрация


По команде &T8 - локальный аналоговый тест с самодиагностикой. При этом модем сам генерирует тестовые сообщения и подсчитывает число ошибок.



Иллюстрация


&V-  модем показывает свою текущую конфигурацию и телефонные номера, записанные в энергонезависимой памяти.
&W - модем записывает свою текущую конфигурацию в энергонезависимую память. При сбросе модема будет загружена именно эта конфигурация.
&Zn..... - используется для записи телефонного номера в энергонезависимую память модема. Количество номеров зависит от конкретной модели модема.
  Например, для записи в энергонезависимую память номера 325-48-17 можно передать модему следующую команду:
AT &Z1 3254817
  Тогда для набора этого номера можно передать модему следующую команду:
AT DP S=1



Иллюстрация


Как видно, в этой таблице отсутствуют символы кириллицы. В настоящее время существуют несколько вариантов кодировки русских букв (кириллицы) для операционной системы MS-DOS - основная, альтернативная, минская и т.д. Они отличаются в основном расположением русских букв и символов псевдографики. Однако наибольшее распространение получила альтернативная таблица кодировки (номер 866), особенно после того, как в 1989 году эта таблица была принята IBM в качестве стандартной для Советского Союза. Локализованная версия MS-DOS 4.01 содержит соответствующую кодовую страницу:



Иллюстрация

Первые 32 символа с кодами ASCII от 0 до 32 используются как управляющие символы:
000hNUL пустой символ
101hSOH начало заголовка
202hSTX начало текста
303hETX конец текста
404hEOT конец передачи
505hENQ запрос
606hACK подтверждение
707hBEL звонок
808hBS возврат на одну позицию
909hHT горизонтальная табуляция
100AhLF перевод строки
110BhVT вертикальная табуляция
120ChFF подача бланка (новый лист)
130DhCR возврат каретки
140EhSO переход на верхний регистр
150FhSI переход на нижний регистр
1610hDLE переключение кода
1711hDC1 управление первым устройством
1812hDC2 управление вторым устройством
1913hDC3 управление третьим устройством
2014hDC4 управление четвертым устройством
2115hNAK переспрос
2216hSYN режим синхронного ожидания
2317hETB конец передачи блока
2418hCAN отмена
2519hEM конец носителя
261AhSUB замена
271BhESC переход
281ChFS разделитель файла
291DhGS разделитель группы
311EhRS разделитель записи
321FhUS разделитель блока
1277FhDEL стирание
Содержание раздела