В приложении мы приведем описание расширенного набора команд и регистров Hayes-модемов, представим формат регистров асинхронного адаптера.
Для тех, кто не боится взять в руки паяльник, мы приведем разводку кабелей, используемых при подключении к компьютеру внешнего модема, схему нуль-модема и переходника между широкими (DB25) и узкими (DB9) разъемами асинхронного адаптера.
При передаче данных на большие расстояния из-за помех, наводимых электромагнитными полями, возможно возникновение ошибок. Вследствие этого накладываются ограничения на длину соединительного кабеля между устройствами DTE-DTE и DTE-DCE.
Официальное ограничение по длине для соединительного кабеля по стандарту RS-232-C составляет 15,24 метра. Однако на практике это расстояние может быть значительно больше. Оно непосредственно зависит от скорости передачи данных. Согласно McNamara (Technical Aspects of Data Communications, Digital Press, 1982) определены следующие значения:
Скорость передачи в
бодах |
Максимальная длина для
экранированного кабеля, м |
Максимальная длина для
неэкранированного кабеля, м |
110 |
1524,0 |
914,4 |
300 |
1524,0 |
914,4 |
1200 |
914,4 |
914,4 |
2400 |
304,8 |
152,4 |
4800 |
304,8 |
76,2 |
9600 |
76,2 |
76,2 |
Уровни напряжения на линиях разъема составляют для логического нуля -15..-3 вольта, для логической единицы - +3..+15_вольт. Промежуток от -3 до +3 вольт соответствует неопределенному значению.
Если вы подключаете внешние устройства к разъему интерфейса RS-232-C (а также при соединении двух компьютеров нуль-модемом), предварительно выключите его и компьютер, а также снимите статический заряд (подсоединив заземление). В противном случае можно вывести из строя асинхронный адаптер. Земля компьютера и земля внешнего устройства должны быть соединены вместе.
Каждый COM-порт асинхронного последовательного адаптера имеет собственный разъем, через который к нему можно подключать различные устройства. Встречаются две разновидности таких разъемов DB25 и DB9.
В следующей таблице представлена разводка разъема DB25 со стороны последовательного асинхронного адаптера:
Номер контакта |
Назначение контакта |
Вход или выход |
1 |
Защитное заземление (Frame Ground, FG) |
- |
2 |
Передаваемые данные (Transmitted Data, TD) |
Выход |
3 |
Принимаемые данные (Received Data, RD) |
Вход |
4 |
Запрос для передачи (Request to send, RTS) |
Выход |
5 |
Сброс для передачи (Clear to Send, CTS) |
Вход |
6 |
Готовность данных (Data Set Ready, DSR) |
Вход |
7 |
Сигнальное заземление (Signal Ground, SG) |
- |
8 |
Детектор принимаемого с линии сигнала (Data Carrier Detect,
DCD). Иногда сигнал DCD
обозначают как CD (Carrier Detect) или RLSD (Receive Line
Signal Detect) |
Вход |
9-19 |
Не используются |
|
20 |
Готовность выходных данных (Data Terminal Ready, DTR) |
Выход |
21 |
Не используется |
|
22 |
Индикатор вызова (Ring Indicator, RI) |
Вход |
23-25 |
Не используются |
|
Теперь приведем разводку разъема DB9 со стороны последовательного асинхронного адаптера:
Номер контакта |
Назначение контакта |
Вход или выход |
1 |
Детектор принимаемого с линии сигнала (Data Carrier Detect,
DCD). Иногда сигнал DCD
обозначают как CD или RLSD |
Вход |
2 |
Принимаемые данные (Received Data, RD) |
Вход |
3 |
Передаваемые данные (Transmitted Data, TD) |
Выход |
4 |
Готовность выходных данных (Data Terminal Ready, DTR) |
Выход |
5 |
Сигнальное заземление (Signal Ground, SG) |
- |
6 |
Готовность данных (Data Set Ready, DSR) |
Вход |
7 |
Запрос для передачи (Request to send, RTS) |
Выход |
8 |
Сброс для передачи (Clear to Send, CTS) |
Вход |
9 |
Индикатор вызова (Ring Indicator, RI) |
Вход |
Работая с COM-портами, часто приходится иметь дело с различными соединительными кабелями. В этом приложении мы приведем разводку таких кабелей.
На рисунке 8.1 представлены две модификации кабеля, применяемого для соединения компьютера и внешнего модема. Если вы используете высокоскоростной модем или модем с аппаратным сжатием передаваемой информации, вам необходимо использовать первый вариант кабеля.
Рис. 8.1.
Для непосредственного соединения двух компьютеров применяется нуль-модемный кабель, отличающийся от обычного соединительного кабеля. На рисунке 8.2 представлены две различные схемы нуль-модемного кабеля. Если ваше программное обеспечение использует протокол управления потоком, мы рекомендуем использовать вторую схему.
Рис. 8.2. Нуль-модем
Из-за наличия двух типов разъемов - DB25 и DB9 - часто бывают нужны переходники с одного типа разъемов на другой. На рисунке 8.3 мы приводим схему такого переходника.
Рис. 8.3. Переходник для разъемов DB25 и DB9
Последняя схема, которую мы представим вашему вниманию, применяется программами проверки COM-портов компьютера, например, программой CheckIt (см. рис. 8.4). Эту схему можно также применять при отладке собственного коммуникационного программного обеспечения.
Рис. 8.4. Заглушка для COM-порта
Операционная система MS-DOS позволяет задать режим работы портов асинхронного последовательного адаптера (COM1, COM2, COM3, и COM4) непосредственно из строки системного приглашения с помощью команды MODE. Команда MODE позволяет установить скорость передачи данных, режим проверки на четность, количество информационных и стоповых бит в передаваемых словах (символах).
Приведем короткий и полный форматы команды при использовании ее для управления асинхронным последовательным адаптером:
MODE COMm[:] [b[,p[,d[,s[,r]]]]]MODE COMm[:] [BAUD=b] [PARITY=p] [DATA=d] [STOP=s] [RETRY=r]
Если вы используете короткий формат команды, MODE распознает назначение параметров по их позиции в строке параметров. И если вы желаете опустить какой-либо параметр, вы все же должны указать два символа запятой перед следующим параметром
Параметр COMm задает номер COM-порта. Этот параметр может принимать значения от 1 до 4.
Параметр b задает скорость передачи информации. Может состоять из двух цифр, являющихся первыми двумя цифрами устанавливаемой скорости. В следующей таблице представлены возможные значения для параметра b и соответствующие им скорости передачи информации в битах за секунду.
Параметр b |
Скорость передачи, бит
за секунду (baud) |
11 |
110 |
15 |
150 |
30 |
300 |
60 |
600 |
12 |
1200 |
24 |
2400 |
48 |
4800 |
96 |
9600 |
19 |
19200 |
Параметр p определяет, как будет использоваться бит четности при передаче данных по линии. Параметр может принимать одно из четырех значений - N, E, O, M, S. В следующей таблице описаны эти значения:
Параметр p |
Режим проверки на
четность |
N |
Проверка на четность не производится |
E |
Проверка на четность. Этот режим применяется по умолчанию |
O |
Проверка на нечетность |
M |
Бит четности всегда установлен |
S |
Бит четности всегда сброшен |
Параметр d определяет количество бит в символах. Может принимать значения от 5 до 8. По умолчанию устанавливается значение 7.
Параметр s задает количество стоповых бит, определяющих конец символа. Возможные значения 1, 1.5 или 2. Если устанавливается скорость передачи 110, то по умолчанию используются два стоповых бита. При других скоростях используется один стоповый бит.
Параметр r используется при работе с принтерами, подключенными к асинхронному последовательному адаптеру, и нами не рассматривается.