Модемы - это устройства, позволяющие устанавливать соединения по обычным телефонным линиям. В этой главе описаны стандарты и общие принципы настройки модемов, а также советы по работе с наиболее распространенными типами модемов.
Модем - это устройство, которое позволяет устанавливать соединение между компьютерами по обычной телефонной линии. Современная система телефонных линий не может передавать сигналы путем изменения напряжения, что необходимо для прямой цифровой связи. Поэтому для передачи по телефонной линии модем преобразует цифровую информацию в звуковые сигналы, а при получении этих сигналов преобразует их обратно в цифровые данные. Для работы с модемами как правило применяется программа Основные сетевые утилиты (BNU) или другие версии Программы копирования UNIX-UNIX (UUCP). При использовании высокоскоростных модемов (14,400 бит/с и более) для передачи данных по Протоколу управления передачей/протоколу Internet (TCP/IP) применяется Протокол подключения к Internet по последовательной линии (SLIP).
Для описания скорости передачи данных с помощью модема (быстродействия модема) помимо термина бит/с употребляется термин бод. Бод - это единица измерения частоты модуляции. В модемах устаревших моделей одним изменением сигнала кодировался только один бит, поэтому скорость передачи данных в бодах для модема приравнивалась к скорости передачи данных в бит/с. Тем не менее, даже модемы с более высокой скоростью передачи данных по-прежнему работают на частоте 2400 (или даже 1200) бод, но кодируют два или более бит за период изменения сигнала. Скорость передачи данных в бит/с определяется умножением числа бит данных, передаваемых за сигнал, на значение бод (например, 2400 бод x 6 бит за период изменения сигнала = 14400 бит в секунду). Современные модемы работают с различным быстродействием (например, 14400, 9600, 7800, 4800 и 2400 бит/с).
Ранее были разработаны стандарты для модемов со скоростью передачи 300, 1200 и 2400 бит/с. Со временем технологии производства модемов с высоким быстродействием усовершенствовались, и современные производители предлагают модемы, не совместимые с модемами других фирм. На сегодняшний день стандарты высокопроизводительных линий связи определяются организацией ITU-TSS (бывший Консультативный комитет ООН по международной телефонной и телеграфной связи).
Модемы даже с самым высоким быстродействием работают гораздо медленнее других средств компьютерной связи. Модем с высоким быстродействием передает данные со скоростью 28800 бит/с, в то время как по соединению Ethernet данные передаются со скоростью 10000000 бит/с. Для ускорения процесса передачи модемы с высоким быстродействием обычно используют один или несколько алгоритмов сжатия. С помощью этих алгоритмов можно увеличить производительность модема до 57600 бит/с (при скорости передачи 14400 бит/с) или 115200 бит/с (при скорости передачи данных 28800 бит/с). Учтите, что применение алгоритмов сжатия напрямую зависит от передаваемых данных. Если данные уже были предварительно сжаты (например, с помощью команды compress), то сжатие передаваемых данных не увеличит скорость передачи, а скорее наоборот - замедлит ее. Применение технологии сжатия данных может значительно повысить производительность соединения DTE/DCE между компьютером и модемом. Например, скорость передачи данных модемом V.32bis со сжатием данных V.42bis (скорость передачи по телефонной линии) - 14400 бит/с. После включения сжатия V.42bis реальное быстродействие возрастает до 57600 бит/с. Для наибольшей эффективности при применении сжатия следует выбрать скорость передачи данных DTE/DCE между компьютером и модемом равной 57600 бит/с.
Внимание: Скорость передачи данных некоторыми модемами со сжатием данных и современными схемами модуляции может превышать скорость приема данных системой и асинхронным адаптером.
Все стандарты для высокопроизводительных линий связи, включая алгоритмы сжатия данных, определяются организацией ITU-TSS (бывшая CCITT). Стандартам ITU-TSS обычно присваивается имя V.nn, где nn - некоторый номер. Кроме того, применяется стандарт Microcom Networking Protocol (MNP). Стандарт MNP существует в версиях 1-9 (называемых классами). Этот высокопроизводительный, высокоскоростной протокол был разработан достаточно давно и фактически являлся основным стандартом до появления стандартов CCITT.
Ниже приведен список основных
стандартов связи, определенных ITU-TSS. Учтите, что этот список не
полный. Полный список приведен на Web-сайте организации ITU-TSS.
Для установки модема выполните следующие действия:
Первое действие, которое необходимо выполнить при установке модема - это подключение кабелей. Ниже описаны типы кабелей и их кодовые номера.
Рис. 5-1. Переходник с 10 на 25 штырьков. На рисунке показан переходник с 10-штырькового разъема на 25-штырьковый.
Рис. 5-2. Кабель для подключения модема к последовательному порту. На рисунке показан кабель с разъемом 59F3740 со стороны порта и разъемом 6323741 со стороны модема.
Рис. 5-3. Кабель для подключения модема к 8-портовому интерфейсу. На рисунке показан 8-портовый интерфейс, подключенный к модему с помощью кабеля 6323741.
Рис. 5-4. Кабель для подключения модема к 16-портовому интерфейсу. На рисунке показан кабель с разъемом 59F3432 со стороны порта и разъемом 6323741 со стороны модема.
:
Система должна быть включена, а модем - выключен. Воспользуйтесь Web-администратором системы (wsm) или командой быстрого доступа SMIT smit mktty.
При настройке модема воспользуйтесь одним из предложенных здесь методов.
Если в системе установлены Основные сетевые утилиты (BNU), то для настройки модема можно применять команду cu.
Direct tty# - Any direct
Примечание: Необходимо ввести только одну из следующих команд.
Примечание: Следующую команду необходимо вводить только в том случае, если после ввода предыдущей команды соединение было прервано.
penable tty# pshare tty# pdelay tty# pdisable tty#
Теперь для модема задана конфигурация, подходящая для большинства системных соединений. Если соединение не установлено, для диагностической проверки связи введите команду cu в формате cu -dl.
Если с помощью описанного выше способа установить соединение не удалось, или в системе не установлен BNU, то запустите следующую программу на C. Создайте файл с именем motalk.c, содержащий следующий код. Сохраните этот файл. Откомпилируйте его и запустите согласно инструкциям, приведенным в комментариях.
/*************************************************************/ /* MoTalk - Программа на "C" для настройки модема. */ /* Эта программа приведена в качестве примера */ /* и не поддерживается фирмой IBM. */ /* Для компиляции: cc -o motalk motalk.c */ /* Вызов: motalk /dev/tty? [скорость] */ /*************************************************************/ #include <errno.h> #include <stdio.h> #include <signal.h> #include <fcntl.h> #include <termio.h> FILE *fdr, *fdw; int fd; struct termio term_save, stdin_save; void Exit(int sig) { if (fdr) fclose(fdr); if (fdw) fclose(fdw); ioctl(fd, TCSETA, &term_save); close(fd); ioctl(fileno(stdin), TCSETA, &stdin_save); exit(sig); } main(int argc, char *argv[]) { char *b, buffer[80]; int baud=0, num; struct termio term, tstdin; if (argc < 2 || !strcmp(argv[1], "-?")) { fprintf(stderr, "Вызов: motalk /dev/tty? [скорость]\n"); exit(1); } if ((fd = open(argv[1], O_RDWR | O_NDELAY)) < 0) { perror(argv[1]); exit(errno); } if (argc > 2) { switch(atoi(argv[2])) { case 300: baud = B300; break; case 1200: baud = B1200; break; case 2400: baud = B2400; break; case 4800: baud = B4800; break; case 9600: baud = B9600; break; case 19200: baud = B19200; break; case 38400: baud = B38400; break; default: baud = 0; fprintf(stderr, "%s: скорость %s не поддерживается\n", argv[0],argv[2]); exit(1); } } /* Сохранить состояние stdin и tty; отслеживание некоторых сигналов */ ioctl(fd, TCGETA, &term_save); ioctl(fileno(stdin), TCGETA, &stdin_save); signal(SIGHUP, Exit); signal(SIGINT, Exit); signal(SIGQUIT, Exit); signal(SIGTERM, Exit); /* Перевести stdin в линейный режим, выключить эхо */ ioctl(fileno(stdin), TCGETA, &tstdin); tstdin.c_iflag = 0; tstdin.c_lflag &= ~(ICANON | ECHO); tstdin.c_cc[VMIN] = 0; tstdin.c_cc[VTIME] = 0; ioctl(fileno(stdin), TCSETA, &tstdin); /* Задать состояние tty */ ioctl(fd, TCGETA, &term); term.c_cflag |= CLOCAL|HUPCL; if (baud > 0) { term.c_cflag &= ~CBAUD; term.c_cflag |= baud; } term.c_lflag &= ~(ICANON | ECHO); /* линейный режим */ term.c_iflag &= ~ICRNL; /* исключить пустые строки */ term.c_cc[VMIN] = 0; term.c_cc[VTIME] = 10; ioctl(fd, TCSETA, &term); fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) & ~O_NDELAY); /* Открыть tty для чтения и записи */ if ((fdr = fopen(argv[1], "r")) == NULL ) { perror(argv[1]); exit(errno); } if ((fdw = fopen(argv[1], "w")) == NULL ) { perror(argv[1]); exit(errno); } /* Связь с модемом */ puts("Готов... ^C для выхода"); while (1) { if ((num = read(fileno(stdin), buffer, 80)) > 0) write(fileno(fdw), buffer, num); if ((num = read(fileno(fdr), buffer, 80)) > 0) write(fileno(stdout), buffer, num); Exit (0); } }
hayes Nvr HAYESPROG 2400
# Только для программирования модема Hayes HAYESPROG tty0 - 2400 HayesProgrm2400 #стандартная запись ACU: ACU tty0 - Any hayes
# Эта запись применяется только для программирования модема: # Следующие три строки должны быть объединены в одну: HayesProgrm2400 =,-, "" \d\dAT\r\c OK AT&F\r\c OK ATM1\r\c OK AT&D3\r\c OK AT&K3&C1\r\c OK ATL0E0Q2\r\c OK ATS0=1\r\c OK AT&W\r\c OK hayes =,-, "" \dAT\r\c OK ATDT\T\d\r\c CONNECT
Если вы не передаете двоичные файлы и не используете BNU, то не вызывайте команду &K3 и выберите XON для управления потоком. Как правило, более эффективным оказывается аппаратное управление потоком, а не квитирование XON-XOFF. Для выбора этого варианта примените значения и записи Dialers из следующего этапа.
В этом разделе приведен список
типичных неполадок модема.
Признак | Причина | Исправление |
Из-за модема (или другого устройства, подключенного к последовательному порту) система постепенно начинает работать медленнее, и в результате зависает. Обычно система начинает работать нормально после отключения этого устройства или модема. | У программируемого модема всегда включен индикатор CD. Система отправляет запрос на подключение, который модем пытается интерпретировать как команду. Распознать команду не удается, и модем передает ее обратно в порт tty в системе. Этот цикл повторяется непрерывно. | Укажите для порта терминала режим ожидания системы, чтобы запрос на подключение не отправлялся. При этом запрос на подключение будет передан только в том случае, если хостом, входящим в систему, был отправлен символ перевода строки. Вы также можете изменить профайл настройки АТ модема и указать, что CD должен включаться только в том случае, если на телефонной линии обнаружен допустимый сигнал. |
Перед тем, как обратиться в службу технической поддержки, соберите следующую информацию:
Ниже приведен список команд
модема Hayes Smartmodem. Эти команды включены в набор команд AT,
применяемых модемами распространенных моделей. Источник данной
информации - документ Quick Reference Card для модема Hayes
Smartmodem 2400, выпущенный компанией Hayes Microcomputer Products,
Inc.
Регистр | Диапазон | Описание |
S0 | 0-255 | Выберите число звонков до ответа модема. |
S1 | 0-255 | Прошедшее число звонков (с увеличением на единицу после каждого звонка). |
S2 | 0-127 | Определяет символ escape-последовательности (ASCII). |
S3 | 0-127 | Определяет символ возврата каретки (ASCII). |
S4 | 0-127 | Определяет символ перевода строки (ASCII). |
S5 | 0-32, 127 | Определяет символ Backspace (ASCII). |
S6 | 2-255 | Задает время в секундах до начала набора номера "вслепую". |
S7 | 1-55 | Задает время ожидания сигнала в секундах. |
S8 | 0-255 | Выберите продолжительность паузы по запятой, в секундах. |
S9 | 1-255 | Время ответа при обнаружении несущей частоты, в десятых долях секунды. |
S10 | 1-255 | Пауза между потерей несущего сигнала и моментом, когда модем вешает трубку (в десятых долях секунды). |
S11 | 50-255 | Продолжительность/ интервал тонов в миллисекундах. |
S12 | 50-255 | Время для управляющей последовательности, в десятых долях секунды. |
S13 | -- | Зарезервировано. |
S14 | -- | Зарезервировано. |
S15 | -- | Зарезервировано. |
S16 | -- | Зарезервировано. Функции этого регистра управляются командами &T. |
S17 | -- | Зарезервировано. |
S18 | 0-255 | Продолжительность теста в секундах. |
S19 | -- | Зарезервировано. |
S20 | -- | Зарезервировано. |
S21 | -- | Зарезервировано. |
S22 | -- | Зарезервировано. |
S23 | -- | Зарезервировано. |
S24 | -- | Зарезервировано. |
S25 | 0-255 | Время обнаружения изменения DTR, в десятых долях секунды. |
S26 | 0-255 | Задержка RTS/CTS, в десятых долях секунды. |
S27 | -- | Зарезервировано. |
Число | Слово | Описание |
0 | OK | Команда выполнена. |
1 | CONNECT | Установлено соединение со скоростью передачи данных 0-300 бит/с. |
2 | RING | Обнаружен сигнал вызова. |
3 | NO CARRIER | Несущий сигнал потерян или не обнаружен. |
4 | ERROR | Недопустимая команда, контрольная сумма, ошибка в командной строке, либо слишком длинная командная строка. |
5 | CONNECT 1200 | Установлено соединение со скоростью передачи данных 1200 бит/с. |
6 | NO DIALTONE | Нет непрерывного гудка на линии. |
7 | BUSY | Линия занята. |
8 | NO ANSWER | При попытке установить соединение удаленная система не отвечает на вызов. |
9 | CONNECT 2400 | Установлено соединение со скоростью передачи данных 2400 бит/c. |
Ниже приведен список и описание
опций набора номера: