Настройка S-регистров позволяет решить многие проблемы совместимости модемов.

Точно так же, если вам вдруг потребуется скопировать информацию с корпоративного сервера во время служебной командировки, или ответить на поздний звонок из центра технического контроля, требующий удаленного доступа к системе управления, или посмотреть из дома корпоративную электронную почту, то вы, скорее всего, опять же воспользуетесь аналоговым модемом. Вероятно, это телекоммуникационное устройство будет верно служить еще многие годы.

Однако с аналоговыми модемами связана одна серьезная проблема: наличие большого количества функций и методов модуляции, поддерживаемых продуктами различных поставщиков. Хотя модемы, совместимые с протоколом V.90, производятся уже на протяжении нескольких лет, нередко в пуле модемов, обслуживающих удаленный доступ, только часть устройств работает по протоколу V.90, а остальные — по протоколу V.34. Точно так же ноутбуки из корпоративного компьютерного парка или ваш домашний ПК могут быть оснащены старыми или новыми версиями стандарта V.34 либо одним из двух предшественников стандарта V.90, продаваемых как V.90, но без обновленного встроенного программного обеспечения. Повсеместно и повседневно используются миллионы устаревших модемов, и пройдет немало времени, прежде чем они будут заменены на более современные устройства.

Очевидно, что вероятность применения разнотипных модемов с двух сторон канала обмена данными достаточно велика. Хотя стандартами на модемы предусматривается во время первичного установления соединения определенный механизм обмена информацией о возможностях устройств, однако время, отведенное на «переговорный» процесс, может оказаться недостаточным. Это лишь одна из многих проблем совместимости модемов, которая может быть решена путем изменения установок по умолчанию одного или нескольких S-регистров, что и является предметом настоящей статьи.

S-РЕГИСТРЫ

Появление «интеллектуальных» модемов стало заметным продвижением вперед в области телекоммуникаций. Повышение интеллектуальности модема было достигнуто установкой микропроцессора, а также добавлением памяти для хранения параметров, управляющих как функционированием модема, так и выполнением некоторых инструкций из набора команд данного устройства. Эти программируемые регистры получили название S-регистров, вероятно, потому, что им соответствуют области памяти (от англ. storage).

Хотя почти все модемы совместимы с базовым набором AT-команд, когда-то созданным для продуктов семейства Hayes Smartmodem компании Zoom Telephonics, в большей части устройств используются собственные коды для реализации дополнительных команд. В исходном варианте в S-регистрах хранились параметры, определяющие основные режимы работы устройств. Некоторые производители расширили набор параметров для обеспечения дополнительных режимов работы, таких, как включение и выключение управления потоком данных, компрессии, спуфинга и др.

Большая часть S-регистров в продуктах различных поставщиков используется по-разному, однако первые 13 S-регистров (с S0 по S12) имеют стандартное назначение. Кроме того, знание особенностей установок некоторых из этих базовых S-регистров может помочь в решении многих проблем совместимости модемов. Поэтому мы подробно остановимся на базовом наборе модемных регистров, перечисленных в Таблице, где приведены также их значения по умолчанию и поддерживаемый диапазон значений.

РАБОТА С РЕГИСТРАМИ

Прежде чем рассмотреть, как используются установки базовых S-регистров для решения некоторых обычных проблем совместимости модемов, мы покажем, как считывать, устанавливать и сбрасывать значения модемных регистров. Это также объяснит, каким образом некоторые коммуникационные программы управляют работой модема, предварительно запрашивая и анализируя список его возможностей, так что пользователю остается просто выбрать параметры, так как вся рутинная работа выполняется программным обеспечением.

Чтобы понять, как работать с модемным регистром, предположим, что вам необходимо проверить и, возможно, изменить значение регистра S6. Как видно из Таблицы, регистр S6 контролирует время ожидания сигнала в линии в секундах. Этот регистр появился для компенсации конструктивной особенности модема Hayes Smartmodem 300 и последующих моделей модемов различных производителей.

Хотя мы назвали эти модемы интеллектуальными, на самом деле на ранней стадии их разработки некоторые функции не были реализованы из-за стоимостных ограничений. Например, вместо того чтобы добавить функцию распознавания сигнала в линии, более экономичным решением оказалось добавление задержки между моментом «снятия трубки» и набором телефонного номера. Таким образом, регистр S6 управляет временем задержки, необходимой для того, чтобы модем не начал набор номера до получения сигнала о готовности линии. Отметим также, что регистр S6 может принимать значения из диапазона от 2 до 255, причем значение по умолчанию равно 2.

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

AT Command [Parameter(s)Command
 [Parameter(s)]...] Return 

Каждая командная строка начинается с префикса «AT», за которым следует соответствующая команда и ее параметры. В одной строке можно вводить несколько команд при соблюдении ограничения для длины до 40 или 80 символов, в зависимости от конструкции модема. Многие продукты Hayes Microcomputer имели ограничение командной строки до 40 символов, в то время как другие интеллектуальные модемы оснащены расширенным командным буфером, поддерживающим до 80 символов в строке. В любом случае командная строка заканчивается символом возврата каретки.

Возвращаясь к регистру S6, предположим, что требуется вывести на экран или прочитать его содержимое. Для этого на модем следует переслать следующую команду: ATS6? Ответом модема на данную команду может быть значение между 2 и 255, показывающее продолжительность интервала в секундах, в течение которого модем будет ожидать сигнала в линии. Предположим, что ответ модема указывает на то, что регистр S6 имеет значение по умолчанию, равное 2 с, а УАТС вашей организации — ветеран по отношению к современным техническим стандартам. Увеличивая время ожидания тонального сигнала в линии, вы можете гарантировать, что ваш модем начнет выполнять операцию набора номера только после его получения. Для изменения периода ожидания на модем нужно послать команду: ATS6=n, где n — значение в интервале 2—255.

Предположим, что устаревшей УАТС на коммутацию внешнего вызова требуется более 2 с для подачи сигнала в линию, но всегда выполняет эту операцию в течение 5 с. В этой ситуации необходимо выполнить следующую AT-команду: ATS6 =5

Заметим, что ранние версии Hayes Smartmodem, а также продукты других производителей могли принимать любое количество знаков в качестве аргумента S-регистра, преобразуя введенные символы ASCII во внутреннюю 8-разрядную переменную. Очевидно, ввод некорректных значений мог приводить к непредсказуемому результату. Сегодня ситуация изменилась: современные модемы возвращают сообщение об ошибке при попытке присвоить S-регистру значение, выходящее за пределы допустимого диапазона.

ПРОСМОТР КОНФИГУРАЦИИ МОДЕМА

Перед изменением установок модемных регистров полезно ознакомиться с его конфигурацией. Это можно сделать разными способами, но в данной статье мы рассмотрим только два из них. Во-первых, в среде Windows можно открыть «Панель управления» и дважды щелкнуть мышью по пиктограмме «Модемы». В открывшемся диалоговом окне «Свойства: Модемы» выберите сначала вкладку «Диагностика», как показано в левой части Рисунка 1.

Рисунок 1. Для просмотра конфигурации модема в среде Windows откройте диалоговое окно «Свойства: Модемы».

При нажатии на кнопку «Дополнительно...» выводится одноименное диалоговое окно (см. Рисунок 1), в котором указаны установки модема: Windows автоматически посылает на модем команду ATI4, которая распознается модемами U.S. Robotics как запрос на вывод текущей конфигурации. На Рисунке 1 в этом окне выведена часть установок S-регистров модема U.S. Robotics Sportster 33600. Этот модем имеет 38 S-регистров; другие модели могут поддерживать 100 и даже более S-регистров. Ранее уже упоминалось, что в этой статье в основном рассматриваются первые 13 S-регистров, использование которых неофициально стандартизировано в продуктах различных производителей.

Диалоговое окно «Свойства: Модемы» позволяет просматривать конфигурацию модема, но оно не дает возможности изменять установки. Для вывода на экран и изменения значений S-регистров потребуется использовать программу эмуляции терминала, например HyperTerminal, входящую в комплект поставки различных версий Windows.

Если вы собираетесь использовать HyperTerminal, то ее надо настроить на подключение к модему. На Рисунке 2 приведена экранная форма, где в качестве метода соединения был выбран режим Direct to Com1.

Рисунок 2. Для проверки и возможного изменения установок модема программу HyperTerminal следует настроить на прямое соединение с соответствующим последовательным портом.

После корректной настройки программа HyperTerminal переходит в режим работы терминала. Теперь вы непосредственно соединены с модемом и можете подавать ему команды. Одной из наиболее полезных модемных команд является команда отображения текущей конфигурации устройства. Как отмечалось ранее, команда ATI4 выводит параметры текущей конфигурации модема U.S. Robotics. Это иллюстрирует Рисунок 3, где заранее установленное прямое соединение через HyperTerminal было использовано для отображения конфигурации модема с помощью ввода команды ATI4. Обратите внимание, что, как видно в нижней части Рисунка 3, я использовал команду ATS6=5 для изменения значения регистра. Необходимо отметить также, что на каждую успешно выполненную команду модем отвечает сообщением OK.

Рисунок 3. Используя соответствующую команду, вы можете отобразить текущую конфигурацию модема.

Хотя значение регистра S6 было изменено на 5, это новое значение будет оставаться в памяти только до выключения питания модема (неприятность, которую многие центры технической поддержки в состоянии исправить только частично). Это происходит потому, что все изменения установок модема являются временными до тех пор, пока новая конфигурация не будет сохранена в энергонезависимой памяти (Non-Volatile RAM, NVRAM). Для этого большинство модемов поддерживает команду &Wn, где n указывает на номер шаблона или профиля, в котором будет сохранена конфигурация, или, в модемной терминологии, «зашита» в память.

Несмотря на то что U.S. Robotics использует команду ATI4 достаточно последовательно, ее применение не стандартизовано. Например, компания Telebit (которая уже ушла из модемного бизнеса, но была одним из первых разработчиков высокоскоростных по тем временам модемов со скоростью 9,6 Кбит/с, где применялась технология, аналогичная дискретной многотональной модуляции (Discrete Multitone, DMT), используемой в модемах DSL) поддерживала команду &V для отображения активной конфигурации своих модемов. Другой компанией, поддерживающей команду &V, является Zoom Technologies (которая приобрела Hayes), чьи модемы активно продвигаются на рынке.

Если по каким-либо причинам у вас нет под рукой руководства по эксплуатации вашего модема, то тогда можно воспользоваться ранее упоминавшимся диалоговым окном «Свойства: Модемы» с целью определения соответствующей команды для отображения его конфигурации. Это оказывается возможно благодаря тому, что при конфигурации модема в среде Windows для него создается база данных применяемых команд. Затем в диалоговом окне «Дополнительно...» можно просмотреть не только текущую конфигурацию, но и команду, используемую для ее отображения. Теперь, когда у вас сложилось представление о том, как отображать и изменять установки регистров, мы остановимся на функциях базовых S-регистров.

ИСПОЛЬЗОВАНИЕ БАЗОВЫХ S-РЕГИСТРОВ

Первый S-регистр, S0, определяет количество звонков, необходимых для активации модема в режиме автоответа. Если значение этого регистра задается равным нулю, то функция автоответа отключается, и модем не будет отвечать на вызовы. В некоторых моделях модемов предусмотрена возможность изменения значения данного регистра с помощью DIP-переключателя. Если модем не отвечает на вызовы, то перед возвращением изделия поставщику или вызовом специалистов технической поддержки вам следует проверить значение регистра S0 и конфигурацию DIP-переключателей.

Регистр S1 доступен только для чтения, в отличие от остальных регистров с возможностями чтения и записи. Данный регистр считает и запоминает количество звонков от входящих вызовов. Он является одним из немногих S-регистров, который вам никогда не понадобится настраивать.

Регистры S2—S5 определяют специальные символы, используемые для различных функций модема. В регистре S2 хранится символ, при троекратном повторении которого модем переходит из режима передачи данных в командный режим без завершения соединения или разрыва несущей. По умолчанию данный символ является знаком плюс (+), которому соответствует код ASCII 43; три плюса (+++) представляют собой последовательность кодов для перехода в командный режим.

В регистре S3 хранится значение, интерпретируемое модемом как завершающий символ командной строки. По умолчанию им является символ возврата каретки, которому соответствует код ASCII 13. В регистре S4 хранится символ, используемый для перехода на новую строку, которым по умолчанию считается символ перевода строки, код ASCII 10. Если вы используете терминал, поддерживающий коды ASCII, маловероятно, что вам когда-либо понадобится изменять значения этих двух регистров.

Регистр S5 определяет символ возврата на одну позицию, которому по умолчанию соответствует код ASCII 8. Как и в случае регистров S3 и S4, изменить значение регистра S5 вам может потребоваться лишь в том случае, если у вас установлена клавиатура без поддержки ASCII, в которой для возврата на одну позицию используется другой символ.

Мы уже использовали регистр S6 в демонстрационных целях, поэтому далее перейдем к регистру S7. Этот регистр определяет интервал времени после набора телефонного номера, в течение которого модем будет ждать сигнала несущей перед возвращением в командный режим. В большинстве модемов, как показано в Таблице, используется значение по умолчанию 30 с, хотя некоторые производители увеличивают этот интервал до 60 с. К сожалению, оба значения могут оказаться недостаточными для современного процесса установления соединения между модемами. Когда один модем вызывает другой, отвечающий модем подает в линию сигнал несущей, отражающий его скорость работы. Этот ответный сигнал длится в течение 15 с, чтобы вызывающее устройство могло «захватить» отвечающее. Однако если вызывающее устройство настроено на меньшую скорость, чем отвечающее, то последнее автоматически понижает скорость до следующей позиции скорости соединения и подает в линию новый сигнал несущей, соответствующий новой скорости. Итак, отвечающий модем для каждой новой скорости генерирует новый сигнал несущей продолжительностью 15 с.

Вызывающий модем должен в конечном счете «захватить» подходящий сигнал несущей, однако если общая продолжительность сигналов превысит 30 с, модемам со значением регистра S7 по умолчанию может не хватить времени для установления соединения. Как только истечет время на захват несущей, определенное в регистре S7, модем возвратится в командный режим и выдаст сообщение NO CARRIER (отсутствие несущей), в зависимости от конфигурации определенных параметров модемных команд. Этим объясняется, почему динамик вашего модема генерирует различные сигналы, звучащие, как голоса китов в бухте Монтерей. Если ваш модем не сможет захватить несущую, то соединение не будет установлено. Решением может стать запись в регистр S7 большего значения, например 90 с.

Регистр S8 определяет продолжительность паузы при появлении в строке набора номера запятой, используемой в качестве разделителя при наборе внешнего телефонного номера. При исходном значении регистра S8 запятая вызывает двухсекундную задержку. Если требуется дополнительная пауза, то можно либо записать в регистр S8 большее значение, либо использовать подряд несколько запятых.

Регистры S9 и S10 определяют временные параметры сигнала несущей. Регистр S9 задает в десятых долях секунды, сколько времени требуется вашему модему на определение сигнала несущей удаленного модема. Как указано в Таблице, обычное значение по умолчанию регистра S9 составляет 0,6 с.

Установка регистра S10 может оказаться полезной для преодоления кратковременных разрывов модемного соединения. Этот регистр определяет интервал времени (в десятых долях секунды), в течение которого модем будет находиться в состоянии ожидания после потери сигнала несущей перед возвращением в командный режим и прерыванием соединения. Первоначальным назначением данного регистра было предотвращение разрыва связи вследствие повышения уровня шума, накладывающегося на сигнал несущей. Хотя исходное значение (0,7 с) достаточно для предотвращения разрыва соединения из-за шума, некоторые пользователи увеличивают значение данного регистра во избежание разрыва связи, вызываемого сигналом ожидания вызова. Однако лучшей альтернативой является временное отключение режима ожидания вызова. Например, если префикс отключения режима «*70W», то вы можете ввести модемную команду ADT*70W и затем свой номер телефона.

S11 задает скорость тонального набора номера в миллисекундах (мс). Скорость набора обратно пропорциональна удвоенному значению данного регистра (1/2t, где t измеряется в миллисекундах), поэтому значение по умолчанию (70 мс) соответствует темпу набора около семи знаков в секунду. Для сравнения: максимальное значение (255) уменьшает скорость до двух знаков в секунду, что примерно соответствует темпу набора номера человеком.

Регистр S12 управляет защитным интервалом времени для последовательности выхода, используемой для перевода модема из режима передачи данных в командный режим. Последовательность выхода обычно представляет собой три знака плюс (+++), передаваемые друг за другом, однако для изменения этого символа можно воспользоваться регистром S2. Защитный интервал времени, значение которого по умолчанию составляет 50 мс, или 1/20 долю секунды, определяет минимальный интервал молчания до и после последовательности выхода. При ручном управлении модемом этого значения по умолчанию обычно более чем достаточно. При автоматизированном управлении может понадобиться меньшее значение. В качестве альтернативного решения в некоторых программах предусмотрена автоматическая задержка.

БОЛЬШИЕ ВОЗМОЖНОСТИ

Настроить модем на конкретные условия работы можно, применяя соответствующие команды и установки S-регистров. Хотя во многих программах подаваемые команды и установки регистров скрыты от пользователя, в некоторых случаях может появиться необходимость в просмотре конфигурации модема и, возможно, изменении содержимого одного или нескольких регистров либо в замене параметра модемной команды. Способность манипулировать модемными командами и значениями регистров может в немалой степени помочь вам оптимизировать работу сети.

Гилберт Хелд является автором более 40 книг и 400 технических статей; с ним можно связаться по адресу: gil_held@yahoo.com.


Ресурсы Internet

Глоссарий модемной терминологии от Intel находится на Web-странице компании по адресу: http://support.intel.com/support/faxmodem/4308.htm.

Список AT-команд модемов, совместимых с Hayes, можно найти по адресу: http://www.bconnex.net/help/reference/modem_at.html.


Назначение и установки S-регистров
Регистр Назначение Исходное значениеДиапазон значений
S0Звонок, на который следует отвечать*-0-255
S1Счетчик количества звонков0 0-255
S2Символ последовательности выхода ASCII 43 ASCII 0 - ASCII 127
S3Символ возврата каретки ASCII 13 ASCII 0 - ASCII 127
S4Символ перевода строки ASCII 10 ASCII 0 - ASCII 127
S5Символ возврата на одну позицию ASCII 8 ASCII 0 - ASCII 127
S6Время ожидания сигнала в линии в секундах 2 2-255
S7Время ожидания несущей в секундах 30 1-255
S8Продолжительность паузы "," в секундах 2 0-255
S9Время реакции на обнаружение несущей в десятых долях секунды6 1-255
S10Продолжительность ожидания после потери несущей в десятых долях секунды7 1-255
S11Продолжительность посылки и интервала тонального набора в миллисекундах70 50-255
S12Продолжительность защитного интервала для последовательности выхода в пятидесятых долях секунды50 0-255
*Может зависеть от положения переключателей.

Регистры. S-регистры обеспечивают возможность настройки оборудования с помощью команд и значений параметров в целях повышения производительности и улучшения совместимости различных модемов.

вернуться