----------------------------------------------------------------------
- Что такое CPS?
Это исторически укоренившаяся единица измерения скорости передачи
данных между программами (Characters Per Second - символов в секунду),
которая обозначает скорость передачи "компьютерных" (восьмибитовых)
символов (байтов) между оконечными программами. "Модемная" скорость в
BPS для этого не подходит, так как обозначает скорость передачи данных
между модемами в физическом канале, а на реальную скорость передачи по
полному каналу (между программами) влияют коррекция ошибок, сжатие
данных, тонкости аппаратных и системных протоколов, настройки портов и
т.п.
CPS - чисто "компьютерная" единица, не имеющая отношения к "модемным"
символам модуляции, введенным в V.FC, V.34 и более поздних протоколах.
----------------------------------------------------------------------
- Как работают протоколы коррекции ошибок?
Практически все протоколы коррекции ошибок основаны на повторении
передачи ошибочного блока (кадра) по запросу от принимающего модема.
Каждый блок снабжается контрольной суммой, которая проверяется на
приемном конце, и блок не отдается потребителю до тех пор, пока не
будет принят в правильном виде. Это порождает возможные задержки
передачи, однако практически гарантирует безошибочную передачу данных
без дополнительного контроля более высокого уровня.
Для увеличения эффективности передачи протоколы коррекции
устанавливают соединение в синхронном режиме, в котором передаваемые
по физическому каналу биты уже не делятся на байты, а оформляются в
пакеты большего размера. За счет этого одна и та же пара модемов по
чистому качественному каналу на протоколах с коррекцией чаще всего
передает данные быстрее, нежели на низкоуровневых асинхронных
протоколах без коррекции.
Наиболее распространенные протоколы коррекции - MNP (Microcom
Networking Protocol) уровня 4 (MNP4), введенный фирмой Microcom и
ставший стандартом де-факто, и включающий его более поздний V.42,
называемый также LAP-M (Link Access Procedure - Modems), введенный
ITU-T. Последний более эффективен, поэтому при установлении связи
модемы в первую очередь пытаются использовать V.42, а при неудаче -
MNP4.
И в MNP4, и в V.42 отвергание (reject) принимающим модемом ошибочного
кадра может быть как индивидуальным, так и включать в себя все
последующие кадры, которые к этому моменту успел передать удаленный
модем. Чаще всего реализуется вторая схема, как более простая, однако
в ряде моделей используется выборочный повтор кадров - Selective
Reject (SREJ), заметно повышающий скорость передачи на каналах с
частыми ошибками связи.
Еще более позднее расширение MNP уровня 10 ориентировано на каналы с
быстро меняющимися параметрами (радиочастотные, сотовые) и
оптимизировано для снижения потерь от таких изменений.
Кроме исправления ошибок, протоколы коррекции могут передавать ряд
служебных сообщений между модемами. В основном используется два типа
таких сообщений - сигнал временного перерыва в передаче (Breаk),
передаваемый между компьютером и модемом в виде длинной серии без
стопового бита в конце, и сигнал разрыва связи (Link Disconnect),
передаваемый одним модемом другому при прекращении связи (многократная
неудача приема блока, падение DTR, команда ATH и ей подобные). Первое
сообщение позволяет передавать между компьютерами "несимвольный"
сигнал, который часто называется сигналом типа "внимание", а второе -
облегчить и ускорить процедуру разрыва связи, чтобы удаленный модем не
пытался ее восстановить.
----------------------------------------------------------------------
- Как работают протоколы сжатия данных?
Сжатие данных выполняется путем обнаружения и частичного устранения
избыточности информации во входном потоке передающего модема, после
чего закодированные блоки данных уменьшенного размера направляются
принимающему модему, который восстанавливает их исходный вид. Принцип
действия алгоритмов сжатия во многом похож на работу архиваторов.
Наиболее распространены протоколы сжатия MNP5, введенный фирмой
Microcom, и V.42bis, введенный ITU-T. Алгоритм MNP5 основан на
относительно простых методах сжатия, его эффективность в лучших
случаях редко превышает 2. V.42bis основан на популярном методе сжатия
LZW, применяемом в большинстве архиваторов, и в удачных случаях
обеспечивает сжатие до четырех раз. В модемах, где реализованы оба
протокола, предпочтение при соединении по умолчанию отдается V.42bis.
В протоколе MNP5 алгоритм сжатия не отключается, и протокол всегда
пытается кодировать поступающие данные. Это часто приводит к тому, что
данные, не поддающиеся сжатию, за счет кодирования увеличиваются в
размере, и эффективная скорость передачи падает. Протокол V.42bis
следит за эффективностью сжатия потока, и временно прекращает работу,
если сжатие не достигает своих целей. Если в модеме реализован только
протокол MNP5, рекомендуется отключать его для сеансов, в которых
преобладают данные с низкой избыточностью (архивы, дистрибутивы,
изображения, звук, видео и т.п.), и включать - для сеансов передачи
текстов, HTML-страниц, непакованных баз данных и т.п.
Алгоритм сжатия в модеме всегда имеет дело с непрерывным потоком
данных, из-за чего сжатию подвергаются лишь отдельные, относительно
небольшие и независимые фрагменты потока, а это не позволяет достичь
столь же высокой степени сжатия, как в архиваторах. Например, текст на
русском языке большинством архиваторов сжимается в 4-5 раз, в то время
как реальная эффективность лучших модемных протоколов сжатия не
превышает 2-3, а более высокая степень достигается лишь при передаче
повторяющихся серий (таблиц, непакованных баз данных с высокой
избыточностью и т.п.).
----------------------------------------------------------------------
- Как устроен интерфейс модема и DTE?
Чаще всего используется интерфейс RS-232C, на модеме устанавливается
25-контактный или 9-контактный разъем типа DB female (гнездо).
Назначение контактов разъема и направление передачи сигналов (> - в
модем, < - из модема):
DB-9 DB-25
1 Экран, корпус
3 2 > TxD Transmitted Data - передаваемые в модем данные
2 3 < RxD Received Data - принимаемые из модема данные
7 4 > RTS Request to Send - запрос передачи
8 5 < CTS Clear to Send - готовность к передаче
6 6 < DSR Data Set Ready - общая готовность модема
5 7 GND Ground - сигнальная земля
1 8 < DCD Data Carrier Detected - обнаружена несущая
4 20 > DTR Data Terminal Ready - общая готовность DTE
9 22 < RI Ring Indicator - индикатор звонка
Данные по линиям передаются двуполярными посылками напряжения +/- 12 В
относительно общего провода (GND). Допускается снижение амплитуды
напряжения на входах модема до +/- 5 В. Активный уровень напряжения -
положительный, кроме линий TxD и RxD.
Сигналы DSR (модем) и DTR (DTE) показывают базовую готовность
устройств, устанавливаются в начале сеанса работы и снимаются в его
конце. Сигнал DTR может влиять на режим работы модема - его снятие по
умолчанию вызывает разрыв связи, отключение от линии и переход модема
в командный режим.
Сигналы CTS (модем) и RTS (DTE) относятся к сигналам аппаратного
управления потоком (hardware flow control, RTS/CTS) и отражают
готовность устройств к приему или передаче в каждый конкретный момент.
DTE устанавливает RTS, когда готово к приему очередного байта, и
снимает его в случае неготовности; модем аналогичным образом
устанавливает CTS.
Сигнал DCD устанавливается модемом при обнаружении несущей. Ряд
модемов выдает в линию DCD реальное состояние несущей, однако
большинство модемов фактически выдает состояние связи: DCD
устанавливается, когда процесс вхождения в связь завершен, и снимается
при разрыве связи.
Сигнал RI устанавливается модемом при обнаружении в линии вызывного
звонка и удерживается в течение каждого периода звонка.
Вместо аппаратного управления потоком может использоваться программное
(software, XOn/XOff), при котором каждое устройство посылает символ
XOff (код по умолчанию - 17 hex) для прекращения передачи со стороны
другого устройства, и символ XOn (код по умолчанию - 15 hex) для ее
возобновления. Из-за наличия этих резервных символов программное
управление потоком используется только там, где невозможно аппаратное
управление.
----------------------------------------------------------------------
- Каким образом происходит общение DTE с модемом?
Практически все телефонные модемы общего назначения имеют
унифицированный набор команд, предложенный и закрепленный фирмой
Hayes, по имени которой назван и сам набор. Другое название набора -
AT-набор (AT-set), поскольку большинство команд начинается с префикса
AT (ATtention - внимание). Ряд специализированных модемов имеет
собственные наборы команд, несовместимые с Hayes и между собой.
Различаются два основных режиме работы модема: режим команд и режим
данных. В первом режиме DTE передает модему команды и получает
сообщения, во втором модем прозрачно передает данные между DTE и
удаленным модемом.
В командном режиме процессор Hayes-модема постоянно следит за потоком
битов от DTE и пытается обнаружить сочетание "AT" или "at", переданное
на одной из допустимых скоростей. Как только такое сочетание
обнаружено - процессор фиксирует данную скорость и переходит в режим
ввода командной строки, записывая получаемые символы во внутренний
буфер, объем которого обычно равен 40 символам. Пробелы в командах
игнорируются, если это не оговорено особо для отдельных команд.
Неправильно набранные символы можно стирать символом "забоя" (по
умолчанию - BS, код 08 hex), однако префикс AT в буфер не заносится,
поэтому невозможно ни его стирание, ни отмена режима ввода командной
строки.
Командный режим модема изначально был ориентирован на ручной ввод
команд с простого терминала, поэтому способ ввода и структура команд
разработаны в "человеческой" форме. По той же причине модем в
командном режиме по умолчанию возвращает (эхо-режим) каждый полученный
от DTE символ, позволяя визуально контролировать правильность набора
команд. В режиме данных полученные символы по умолчанию не
возвращаются.
Большинство команд Hayes-модемов обозначаются буквой - "A", "P", или
символом с буквой - &C, %T. Команда может иметь параметр (обычно
числовой) - X1, &D2. Если числовой параметр опущен, он полагается
нулевым. Ряд команд имеет синтаксис, не подчиняющийся этим правилам.
В одной командной строке может быть записана как одна, так и несколько
команд; исключение составляют случаи, когда очередная команда приводит
к смене режимов, делающей следующие за ней команды бессмысленными.
Выполнение каждой команды происходит после завершения ее выделения из
командной строки и синтаксического разбора. В случае успешного
выполнения командной строки выдается сообщение OK; перед ним могут
быть выданы строки дополнительной информации, запрошенные введенными
командами. При обнаружении ошибки выдается сообщение ERROR и обработка
строки прекращается, но все предшествующие правильные команды к этому
моменту будут выполнены.
Примеры командных строк:
ATX
at&d1
at l1 m3 e1 &c
Каждая строка AT-команд завершается символом CR (код по умолчанию - 0D
hex, клавиша Enter). После получения CR процессор модема анализирует
командную строку и по возможности выполняет каждую команду в ней,
после чего выдает сообщение о подтверждении, ошибке или запрошенную
командами информацию. Диагностические сообщения Hayes-модемов по
умолчанию выдаются в текстовой форме, но могут выдаваться и в виде
трехзначных десятичных кодов.
AT-команды служат для получения сведений о состоянии модема, изменения
режимов его работы, набора номера, установки/завершения связи и
тестирования модема и линии. Для изменения основных параметров имеются
отдельные команды, прочие параметры хранятся в так называемых
S-регистрах, принимающих значения от 0 до 255. Значения S-регистров
могут использоваться как полностью, так и раздельно по полям и
отдельным битам. На самом деле все или большая часть параметров
хранятся в S-регистрах, а отдельные команды управления ими введены
исключительно для удобства.
За редкими исключениями, команды изменения состояния действуют только
на текущий набор параметров, теряющий свои значения при отключении или
сбросе модема. Содержимое текущего набора может быть записано в один
из сохраненных наборов в NVRAM; кроме этого, ряд команд может
непосредственно изменять содержимое NVRAM.
Кроме командных строк, начинающихся с AT, Hayes-модемы поддерживают
также команду "A/". Она повторяет последнюю введенную командную
строку; исполнение начинается сразу после получения символа "/", кода
CR не требуется.
При выполнении команд соединения (вызов, ответ, тестирование)
происходит соединение модемов и переход в режим данных, сопровождаемый
выдачей сообщения CONNECT. В режиме данных все поступающие символы
прозрачно пересылаются модемом. Исключение составляет так называемая
Escape-последовательность из трех одинаковых символов (по умолчанию -
"+"), перед и после которой должны быть выдержаны охранные интервалы
(по умолчанию - 1 сек). При получении такой последовательности модем
переходит в командный режим, не разрывая соединения; впоследствии
можно как вернуться в режим данных, так и разорвать соединение любой
из подходящих команд.
----------------------------------------------------------------------
- Какие основные команды используются в Hayes-модемах?
A - переход в режим ответа (Answer). Модем выдает оговоренную для
разрешенных протоколов последовательность тональных сигналов ответа,
ожидая подтверждения от вызывающего модема. Если подтверждение
получено - модемы переходят к установлению соединения, успешное
завершение которого приводит к выдаче сообщения CONNECT и переходу в
режим данных.
D - переход в режим вызова и набор номера (Dial). Команда имеет
сложный синтаксис, который подробно рассмотрен далее.
En - возврат символов (Echo) в командном режиме. 0 запрещает эхо, 1 -
разрешает (стандарт).
Hn - состояние подключения к линии (Hook). 0 (стандарт) - модем
отключен от линии ("трубка висит на крючке" - on-hook), 1 - модем
подключен к линии ("трубка снята с крючка" - off-hook).
In - запрос информации (Information) о модеме. 0 - тип модема, 1 -
контрольная сумма ПЗУ, 2 - проверка правильности контрольной суммы, 3
и более - запрос информации, зависящей от типа модема.
Ln - громкость динамика (voLume). 0 - минимальная громкость, 1 и 2
(стандарт) - средняя, 3 - высокая.
Mn - режим (Mode) работы динамика. 0 - отключен, 1 (стандарт) -
включен на время набора и установки соединения, 2 - включен всегда, 3
- отключен на время набора и включен на время установки соединения.
On - возврат в режим данных (On line) после временного перехода в
командный режим по Escape-последовательности. 0 - немедленный возврат,
1 - повторение процедуры установки связи и перенастройка эквалайзера
(retrain). Не все модемы в состоянии надежно возвращаться в режим
данных после выхода в командный режим.
P - установка по умолчанию импульсного (Pulse) способа набора номера.
Q - "немой" режим (Quiet). 0 - возвращать ответы после команд
(стандарт), 1 - не возвращать.
S - работа с S-регистрами (Storage). Имеет сложный синтаксис, который
подробно описан далее.
T - установка по умолчанию тонального (Tone) способа набора номера.
Vn - вид ответов модема. 0 - числовой формат, 1 (стандарт) - словесный
(Verbal).
Wn - вид сообщений о соединении (CONNECT). 0 - в сообщении выдается
скорость модем-DTE независимо от реальной скорости канала; 1 - то же,
но вместе с сообщением CONNECT могут выдаваться дополнительные
сообщения о протоколах соединения и скорости канала; 2 - выдается
скорость канала. Команда часто работает по-разному в модемах различных
типов.
Xn - режим распознавания состояния линии в режиме вызова. 0 - сигналы
АТС не анализируются (blind dialing - набор вслепую), при соединении
выдается сообщение CONNECT без указания скорости. 1 - то же, разрешена
выдача скорости в сообщении CONNECT. 2 - то же, распознается только
сигнал "свободно" (непрерывный гудок). 3 - то же, что и 1,
распознается только сигнал "занято". 4 - распознаются сигналы
"свободно" и "занято", разрешены все сообщения.
Zn - сброс модема (initialiZation) и установка набора параметров по
умолчанию (profile). 0 - загрузка набора 0, 1 - загрузка набора 1.
Сброс модема всегда разрывает соединение и отключает модем от линии.
Большинство модемов игнорирует конец командной строки по причине
инициализации буфера.
&Cn - режим контроля несущего сигнала (Carrier). 0 отменяет контроль,
и модем постоянно выдает активный уровень на линии DCD. Параметр 1
(стандарт) разрешает контроль, уровень на линии DCD отражает наличие
несущего сигнала в канале.
&Dn - режим обработки падения (перехода в пассивное состояние)
входного сигнала DTR. 0 - DTR игнорируется, 1 - переход в командный
режим без разрыва соединения, 2 (стандарт) - то же, с разрывом
соединения, 3 - полный сброс модема.
&Fn - загрузка стандартных заводских (Factory) параметров модема. Для
модемов, имеющих более одной стандартной конфигурации, n задает ее
номер - например, для модемов US Robotics/3COM конфигурация 0 обычно
подобрана под программное управление потоком, а 1 - под аппаратное.
&Gn - режим выдачи в линию защитного сигнала (Guard tone). 0 -
запрещено, 1 - 550 Гц, 2 - 1800 Гц. Защитный сигнал сообщает станции,
что к линии подключен модем и имеет смысл только для станций,
способных его опознать.
&Kn - режим управления потоком: 0 - запрещено; 3 - двустороннее
аппаратное; 4 - двустороннее программное; 5 - программное только со
стороны модема.
&Ln - тип телефонной линии (Line). 0 - двухпроводная коммутируемая, 1
- двухпроводная выделенная. Работу с выделенной линией поддерживают не
все типы модемов; в этом режиме изменяется поведение модема при
установлении и поддержании соединения.
&Mn - асинхронный или синхронный режим (Mode) общения с DTE. 0 -
асинхронный режим 1 - переход в синхронный режим только на время
соединения; 2 - переход DTR в активное состояние вызывает
автоматический набор первого сохраненного (&Z0) номера и установку
соединения в синхронном режиме; 3 - переход DTR в активное состояние
вызывает установку соединения в синхронном режиме без набора номера.
&Pn - соотношение импульс/пауза при импульсном (Pulse) методе набора
номера. 0 (стандарт) - 39% / 61% (США/Канада), 1 - 33% / 67% (Европа,
Восточная Азия).
&Tn - группа тестовых режимов. Описана в последующих разделах.
&V - просмотр (View) текущих настроек в модема (параметры команд,
S-регистры и т.п.).
&Wn - запись (Write) текущих настроек в NVRAM модема. n задает номер
набора (profile), в который записываются настройки.
&Yn - установка набора, из которого будут загружаться настройки модема
при инициализации модема. Стандартное значение - 0.
&Zn=xxx - запоминание часто используемых телефонных номеров. n задает
номер ячейки, где запоминается номер, xxx - строку номера в формате
команды D. Количество доступных ячеек зависит от типа модема.
Модемы, поддерживающие коррекцию ошибок и сжатие данных, почти всегда
имеют группу команд "\" и "%":
\An - размер кадра MNP в байтах: 0 - 64, 1 - 128, 2 - 192, 3 - 256
(стандарт).
\Gn - протокол XOn/XOff: 0 - запрет (стандарт), 1 - разрешение.
\Jn - переход в обмене с DTE на скорость соединения: 0 - запрещен, 1 -
разрешен.
\Ln - режим MNP: 0 - потоковый, 1 - блочный.
\Nn - допустимые режимы соединения: 0 - без коррекции с буферизацией;
1 - без коррекции, прямой; 2 - только с коррекцией; 3 - с коррекцией
либо прямой.
\Qn - управление потоком в режиме с коррекцией ошибок: 0 - запрещено;
1 - двустороннее программное; 2 - аппаратное со стороны модема; 3 -
двустороннее аппаратное.
\Vn - расширенные сообщения о протоколах при соединении (Verbose): 0 -
запрещены; 1 - разрешены. Команда работает по-разному в модемах
различных типов.
%Cn - сжатие данных: 0 - запрещено, 1 - разрешено (стандарт).
----------------------------------------------------------------------
- Какова структура команды набора номера?
Команда набора номера D имеет параметр в виде строки последовательно
интерпретируемых символов, управляющих процессом набора номера:
0..9 - набор соответствующей цифры
P - переключение в режим импульсного набора (Pulse)
T - переключение в режим тонального набора (Tone)
W - ожидание (Wait) сигнала "свободно" (длинный гудок)
@ - ожидание периода тишины (отсутствия сигналов) заданной длительности
, - пауза с длительностью, заданной регистром S8
; - переход в командный режим
! - кратковременный разрыв линии (Flash)
R - переход в режим ответа (Reverse)
S=n - набор номера, записанного в ячейке n
Страница 1 2 3 4 <<< Предыдущая Следущая >>>
|