Frequently Asked Questions (Часто
Задаваемые Вопросы) Создан: 27.12.98 Все права в отношении данного текста принадлежат автору. При воспроизведении текста или его части сохранение Copyright обязательно. Коммерческое использование допускается только с письменного разрешения автора. При наличии изменений с момента последней публикации они отмечаются знаком ">-". Оглавление
Что такое модем и каковы его функции?Слово "модем" (modem) происходит от сочетания "модулятор/демодулятор" и используется для обозначения широкого спектра устройств передачи цифровой информации при помощи аналоговых сигналов путем их модуляции - изменения во времени одной или нескольких характеристик аналогового сигнала: частоты, амплитуды и фазы. При этом модулируемый аналоговый сигнал называется несущим (carrier) и обычно представляет собой сигнал постоянной частоты и амплитуды (несущая частота). Количество модуляций в секунду называется скоростью модуляции и измеряется в бодах (Бод); количество переданной при этом информации измеряется в битах в секунду (бит/с или BPS - Bits Per Second). Одна модуляция может передавать как один бит, так и большее или меньшее их количество. В новых модемных протоколах единица информации, передаваемая за одну модуляцию, называется символом (character). "Модемный" символ может в общем случае иметь любой размер. Исходный цифровой сигнал подается на модулятор, преобразующий его в серию изменений несущего аналогового сигнала, по линии связи передаваемого демодулятору, который по этим изменениям воссоздает исходный цифровой сигнал. Для получения симметричной двунаправленной линии связи модулятор и демодулятор объединяются в одном устройстве - модеме. Несмотря на то, что модуляторы/демодуляторы применяются во множестве устройств - сетевых адаптерах, дисководах, CD-рекордерах и т.п., термин "модем" (modem) закрепился для обозначения в основном интеллектуальных модемов для телефонных линий. Такой модем является сложным устройством, в который собственно модулятор и демодулятор входят лишь в качестве основных по смыслу функциональных узлов. Модемы применяются там, где линия связи не позволяет надежно передавать цифровой сигнал простым изменением амплитуды. Наиболее надежно передаются изменения частоты - частотная модуляция, однако для фиксации такого изменения на приемном конце требуется несколько периодов сигнала, что требует использования несущих частот, значительно бОльших частоты цифрового сигнала. Для увеличения количества информации, передаваемой за одну модуляцию, используются параллельная фазовая и амплитудная модуляции. Типовая схема организации связи двух цифровых устройств при помощи модемов имеет вид: |DTE 1|----|DCE 1|----|Линия связи|----|DCE 2|----|DTE 2 | Аббревиатурой DTE (Data Terminal Equipment - оконечное оборудование передачи данных) в терминологии систем связи обозначаются оконечные цифровые устройства, генерирующие или получающие данные. Аббревиатурой DCE (Data Communication Equipment - оборудование передачи данных) обозначаются модемы. Линия связи между DCE - аналоговая, между DCE и DTE - цифровая. Если для связи DTE и DCE используется унифицированный цифровой интерфейс, это зачастую дает возможность связать два расположенных рядом DTE прямой цифровой линией - так называемым нуль-модемным кабелем. В случае разнесения DTE на большое расстояние в разрыв вместо нуль-модемного кабеля включается пара модемов и аналоговая линия связи, обеспечивая прозрачное соединение и передачу данных. Модемы различного типа используются во многих областях связи; в данном FAQ рассматриваются только интеллектуальные модемы для телефонных линий связи, предназначенные для связи между компьютерами и алфавитно-цифровыми терминалами. Как устроен и работает современный модем?Практически все современные модемы имеют похожие функциональные схемы, состоящие из основного процессора, сигнального процессора, оперативного запоминающего устройства (ОЗУ, RAM), постоянного запоминающего устройства (ПЗУ, ROM), перепрограммируемого запоминающего устройства (Non-Volatile RAM, NVRAM - неразрушающаяся память с прямым доступом), собственно модулятора/демодулятора, схемы согласования с линией и динамика. Основной процессор фактически является встроенным микрокомпьютером, отвечающим за прием и выполнение команд, буферизацию и обработку данных - кодирование, декодирование, сжатие/распаковку и т.п., а также за управление сигнальным процессором. В большинстве модемов используются специализированные процессоры на основе типовых наборов микросхем, а в некоторых (US Robotics, ZyXEL) - процессоры общего назначения (Intel, Zilog, Motorola). Сигнальный процессор (DSP, Digital Signal Processor - цифровой сигнальный процессор) и модулятор/демодулятор занимаются непосредственно операциями с сигналом - модуляцией/демодуляцией, разделением частотных полос, подавлением эха и т.п. В качестве таких процессоров также используются либо специализированные, ориентированные на конкретный набор способов и протоколов модуляции (AT&T, Rockwell, Exar), либо универсальные со сменной микропрограммой (например, TMS), позволяющие впоследствии дорабатывать и изменять алгоритмы работы. В зависимости от типа и сложности модема основная интеллектуальная нагрузка смещается в сторону DSP или модулятора/демодулятора. В низкоскоростных (300..2400 бит/с) модемах основную работу выполняет модулятор/демодулятор, в скоростных (4800 бит/с и выше) - DSP. В ПЗУ хранятся программы для основного и сигнального процессоров (firmware). ПЗУ может быть однократно программируемым (PROM), перепрограммируемым со стиранием ультрафиолетом (EPROM) или перепрограммируемым электрически (EEPROM, Flash ROM). Последний тип ПЗУ позволяет оперативно менять прошивки по мере исправления ошибок или появления новых возможностей. ОЗУ используется в качестве временной памяти при работе основного и сигнального процессоров; оно может быть как раздельным, так и общим. В ОЗУ хранится также текущий набор параметров модема (active profile). В NVRAM хранятся сохраненные наборы параметров модема (stored profiles), один из которых загружается в текущий набор при каждом включении или сбросе. Обычно имеется два сохраненных набора - основной (profile 0) и дополнительный (profile 1). По умолчанию для инициализации используется основной набор, но есть возможность переключиться на дополнительный. Ряд модемов имеет более двух сохраненных наборов. Схемы согласования с линией включают разделительный трансформатор для передачи сигнала, оптопару для опознания сигнала звонка (Ring), реле подключения к линии ("поднятия трубки",off-hook) и набора номера, а также элементы создания нагрузки в линии и защиты от перенапряжений. Вместо реле могут применяться бесшумные электронные ключи. В некоторых модемах применяются дополнительные оптопары для контроля напряжения линии. Подключение к линии и набор номера могут выполняться как одним, так и раздельными ключами. На динамик (speaker) выводится усиленный сигнал с линии для слухового контроля ее состояния. Динамик может быть включен на время набора номера и соединения, во время всего соединения, а также отключен совсем. Внешние модемы дополнительно содержат схему формирования питающих напряжений (обычно +5, +12 и -12 В) из одного переменного (реже - постоянного) напряжения источника питания. Кроме этого, внешние модемы содержат интерфейсные цепи для связи с DTE. Чем различаются внутренние и внешние модемы?Внутренний модем выполняется в виде платы расширения, размещаемой в корпусе компьютера, подключаемой напрямую к системной шине и использующей общий источник питания компьютера. Внешний модем выполняется в виде отдельного устройства, подключаемого к одному из портов - последовательному или параллельному, и питаемый от собственного сетевого источника. Внешний модем также имеет индикаторы режимов работы в виде набора светодиодов или жидкокристаллического дисплея. Достоинства внутреннего модема:
Недостатки внутреннего модема:
Достоинства внешнего модема:
Недостатки внешних модемов:
Какие способы модуляции используются в модемной связи?При частотной модуляции ЧМ (Frequency Shift Keying - FSK) элементы передаются различными частотами несущего сигнала. Это наиболее надежный и помехоустойчивый способ модуляции, однако наименее скоростной. При относительной фазовой модуляции ОФМ (Differential Phase Shift Keying - DPSK) информация передается путем сдвига фазы несущего сигнала. Квадратурно-амплитудная КАМ (Quadrature Amplitude Modulation - QAM) сочетает изменение фазы и амплитуды сигнала. Квадратурной этот вид модуляции называется потому, что сигнал представляется суммой синусоидальной и косинусоидально составляющих, которые находятся в квадратуре по отношению друг к другу. Для увеличения помехоустойчивости при многопозиционной модуляции применяется предварительное кодирование информации. Без кодирования появление в сигнале каждой очередной позиции модуляции равновероятно, и при большом количестве позиций сильно возрастает вероятность ошибки демодулятора. Кодирование изменяет статистические свойства потока информации так, что вероятность появления каждой позиции зависит от предыстории, позволяя демодулятору принимать более надежные решения. Такие методы кодирования носят название сверточных, или Trellis Encoding. Как организуется передача данных посредством модемов?Передача данных организуется на основе набора протоколов, каждый из которых устанавливает правила взаимодействия связывающихся устройств. Протоколы, используемые в модемах, делятся на четыре основные группы:
Первые три группы относятся только к связи DCE-DCE, последняя - только к связи DCE-DTE. Первая группа протоколов устанавливает правила вхождения модемов в связь, ее поддержания и разрыва, параметры аналоговых сигналов, правила кодирования и модуляции. Эти протоколы непосредственно относятся к сигналам, передаваемым по межмодемной аналоговой линии связи. Соединение двух модемов возможно только в случае поддержки ими каких-либо общих или совместимых протоколов этой группы. В семиуровневой иерархии протоколов связи OSI эта группа протоколов имеет уровень 1 (физический) и формирует канал цифровой связи в реальном времени, однако не защищенный от ошибок передачи. Протоколы физической связи могут быть симплексными (simplex) - реализующими в каждый момент времени передачу только в одну сторону, и дуплексными (duplex) - с одновременной двунаправленной передачей. Чаще всего применяются дуплексные протоколы, которые могут быть симметричными, когда скорости передачи в обоих направлениях равны, и несимметричными, когда скорости различаются. Несимметричный дуплекс применяется для повышения скорости передачи в одну сторону за счет ее снижения в обратную сторону, когда поток передаваемых данных имеет выраженную асимметрию. Для определения направления передачи в физическом канале используются понятия вызывающего (инициирующего соединение) и отвечающего модемов; направление передачи определяется со стороны вызывающего модема. Вторая группа устанавливает правила обнаружения и коррекции ошибок, возникающих на этапе передачи с помощью протоколов первой группы. Эти протоколы имеют дело только с цифровой информацией; для проверки целостности информации она разделяется на блоки (пакеты), снабжаемые контрольными избыточными кодами (CRC - Cyclic Redundancy Check). При несовпадении контрольного кода на приемном конце переданный пакет считается ошибочным и запрашивается его повторная передача. Эта группа протоколов формирует из ненадежного физического канала надежный (защищенный от ошибок) канал более высокого уровня, однако это приводит к потере связи в реальном времени и дается ценой определенных накладных расходов. В модели OSI эта группа соответствует уровню 2 (канальный). Третья группа устанавливает правила сжатия передаваемых данных путем уменьшения их избыточности. При этом на передающем конце происходит их анализ и упаковка, а на приемном - распаковка в исходный вид. Сжатие позволяет повысить скорость передачи сверх физической пропускной способности канала за счет уменьшения объема реально передаваемых данных. Реализация сжатия также требует некоторых накладных расходов на анализ информации и формирование пакетов; в случае неэффективного сжатия скорость передачи может оказаться ниже скорости физического канала. Последняя группа протоколов задает правила взаимодействия DCE и DTE. Они подразделяются на физические, касающиеся кабелей, разъемов и сигналов взаимодействия, и информационные, относящиеся к формату и смыслу передаваемых сообщений. Посредством этих протоколов реализуется общение DTE и DCE во время подготовки к вхождению в связь, организации вызова и ответа, а также в процессе самого обмена данными. Как скорость передачи зависит от параметров канала?Для оценки теоретической пропускной способности идеального канала связи, единственной формой помех в котором является чистый белый шум (равномерно распределенный по всей полосе частот), применяется формула Шеннона: V = dF * log2 (SNR + 1), NL = -10 lg (SNR) При стандартной для телефонии полосе частот 3100 Гц (300..3400) и SNR свыше 10 дБ теоретический предел скорости в килобитах в секунду, приблизительно равен SNR в децибелах. Предел допустимого уровня шума на внутригородских линиях России установлен в -25 дБ; реально он составляет более 30 дБ на хороших и менее 20 дБ на плохих линиях. Используемая в настоящее время система цифрового уплотнения линий с импульсно-кодовой модуляцией (ИКМ, Pulse Code Modulation - PCM), передающая 8-разрядные цифровые отсчеты на частоте дискретизации 8 кГц, имеет предельно возможное соотношение сигнал/шум около -48 (6.02 * 8) дБ; реально предел оценивается примерно в -38 дБ, что соответствует скорости 35 кбит/с. Шум, возникающий в линиях передачи, не является чисто белым и нередко в значительной мере зависит от передаваемого сигнала (коррелирован с ним), что сильно снижает реально достижимые скорости передачи. Для снижения влияния шумов и помех в канале применяется помехоустойчивое кодирование, повышающее различимость сигнальных элементов; при повышении скорости передачи в пределах одной системы кодирования надежность передачи снижается, однако с переходом на более рациональную систему она может оставаться неизменной и даже возрастать. Почему сигнал модема похож на шипение?Это происходит в результате скремблирования (scrambling) - придания сигналу в линии связи параметров псевдослучайного, имеющего равномерный спектр и по звуку напоминающего шипение. Скремблирование применяется для снижения влияния структуры исходного цифрового сигнала на спектр выходного аналогового, что облегчает декодеру выделение несущей частоты и декодирование сигнальных элементов. Какие протоколы модуляции используются в модемной связи?Большинство используемых протоколов стандартизировано Международным Союзом Связи (International Telecommunications Union - ITU), ранее носившим название Международный Консультативный Комитет по Телеграфии и Телефонии, МККТТ (Comite Consultatif Internationale de Telegraphie et Telephonie - CCITT). Отдел ITU, относящийся к телефонной связи, обозначается ITU-T. Рекомендации ITU-T в области передачи данных по телефонным линиям собраны в разделе "V", рекомендации по общему построению систем передачи данных - в разделе "X". Из протоколов физической связи наибольшее распространение получили следующие: - Bell 103J (American Telephone & Telegraph, AT&T), V.21 (International Telecommunications Union - Telecommunications, ITU-T). Дуплексные, симметричные, используют ЧМ. Для организации дуплекса полоса частот канала делится на два подканала - нижний для передачи и верхний для приема данных. При модуляции используются следующие частоты: Bell 103J: V.21: За одну модуляцию частоты передается один бит; таким образом, скорости модуляции и передачи равны и составляют 300 Бод и бит/с. - V.22 (ITU-T). Дуплексный, симметричный, использует относительную фазовую модуляцию ОФМ (Differential Phase Shift Keying - DPSK), передающую информацию путем сдвига фазы несущего сигнала. Несущие частоты - 1200 и 2400 Гц, скорость модуляции - 600 Бод. Протокол имеет два режима, в одном из которых одной модуляцией передается один бит, а в другом - два бита (дибит). Соответственно, в первом случае имеется две, а во втором - четыре позиции модуляции с относительным сдвигом фазы на 180 и 90 градусов, а скорость передачи равна 600 и 1200 бит/с. Реализация протокола предусматривает наличие эквалайзера, корректирующего частотные и фазовые характеристики сигнала. - V.22bis (ITU-T). Развитие V.22 путем исключения однопозиционной и введения шестнадцатипозиционной квадратурно-амплитудной модуляции с передачей четырех бит (квадбита) за одну модуляцию сигнала. Соответственно, максимальная скорость передачи увеличена до 2400 бит/с. - V.32 (ITU-T). Использует шестнадцатипозиционную КАМ и Trellis-кодирование, скорости передачи - 4800 и 9600 бит/с. - V.32bis (ITU-T). Расширение V.32 со скоростью передачи до 14400 бит/с, введены промежуточные скорости 7200 и 12000 бит/с. В протокол включена поддержка процедур автоматического изменения скорости во время сеанса при изменении качества линии, однако в ряде модемов реализованы лишь процедуры ее снижения без возврата к исходной скорости. - HST (US Robotics). Оригинальный помехоустойчивый несимметричный протокол с передачей в одну сторону со скоростью до 16800 бит/с, в обратном канале скорость фиксирована - 300 или 450 бит/с. Протокол автоматически ориентируется в сторону наиболее плотного потока данных; при потоках сравнимой плотности происходит периодический "разворот" протокола. - V.32terbo (AT&T). Расширение V.32bis со скоростью передачи до 19200 бит/с, промежуточная скорость - 16800 бит/с. - V.32terbo/ASL (USR). Расширение V.32bis со скоростью до 21600 бит/с. ASL - Adaptive Speed Leveling, адаптивная коррекция скорости в зависимости от качества передачи. Управление осуществляется по протоколу V.42. Поддерживаются быстрые пересоединения (retrain) без полной настройки систем эхоподавления. Начальное соединение для надежности выполняется на скорости 7200. - ZYX (ZyXEL). Оригинальный протокол со скоростью передачи от 7200 до 16800 бит/с в обычных моделях, и до 19200 бит/с - в моделях Plus. Дискретность изменения скорости - 2400 бит/с. - ZyCELL. Оригинальный помехоустойчивый протокол, ориентированный на работу по сотовым (cellular) линиям связи. - V.34 (ITU-T). Протокол последнего поколения со скоростью передачи до 28800 бит/с, промежуточные скорости - 2400..26400 бит/с с дискретностью 2400. Принятию стандарта ITU предшествовали протоколы ряда производителей под названиями V.Fast и V.FC. Модуляция - 256-позиционная КАМ с дополнительным временнЫм кодированием, при котором решение на приемном конце принимается по двум смежным состояниям сигнала. В связи с увеличением размера передаваемого за одну модуляцию элемента данных вместо понятия "бод" используется "символ в секунду"; в данном случае размер символа равен 8 битам, или одному байту. Соответственно, введено понятие "символьная скорость" - 2400, 2743, 2800, 3000, 3200, 3429 симв/с. Две последние скорости формально не укладываются в стандартную полосу пропускания телефонного тракта, однако ряд телефонных линий реально обладает нужной пропускной способностью. - V.34bis (ITU-T). Расширение V.34 до скорости 33600 бит/с с промежуточной скоростью 31200 бит/с. - V.90 (ITU-T). Несимметричный, "полуцифровой"скоростной протокол, позволяющий поднять скорость передачи в одну сторону до 56 кбит/с. Стандарту предшествовали протоколы x2 (USR/3COM) и k56flex (Rockwell/Lucent). Данная группа протоколов известна также под названиями V.PCM и 56k. Протоколы 56k реализуются только на несимметричных линиях, когда с одной стороны устанавливается блок прямого сопряжения ("цифровой модем") с подключением к цифровому каналу T1/E1, ISDN и др., а с другой - аналоговый модем с поддержкой V.90. При таком соединении сигнал со стороны цифрового канала большую часть расстояния передается в неизменной цифровой форме, и только от абонентского комплекта до обычного модема - в аналоговой. Поскольку преобразование из цифровой формы в аналоговую сопряжено с меньшими потерями информации, чем обратно, предельная пропускная способность цифрового канала (64 кбит/с) понижается только до 56 кбит/с (реально обычно до 45-53 кбит/с). В обратную сторону предельной является скорость 33.6 кбит/с. Протоколы 56k ориентированы в первую очередь на централизованные системы связи - провайдеры Internet (ISP - Internet Service Provider), банковские и информационные сети и т.п., где преобладает передача информации от центра к абоненту (download), а передача от абонента к центру (upload) встречается гораздо реже. Что такое 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 (гнездо). Назначение контактов разъема и направление передачи сигналов (> - в модем, < - из модема):
Данные по линиям передаются двуполярными посылками напряжения +/- 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-команд завершается символом 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) Какова структура команд работы с S-регистрами?Команда работы с S-регистрами S имеет две формы: Sn=xxx n - десятичный номер регистра (0..255), а xxx - новое десятичное значение регистра. Первая команда записывает новое значение в регистр, вторая - выводит текущее содержимое регистра. В ряде модемов для регистров, работающих в режиме битовых полей (bitmap), введены команды записи отдельных битов: Sn.b=x где b - номер бита в регистра (с нуля), а x - новое значение бита (0/1). Наиболее общие S-регистры: S0 - номер звонка, на который отвечает модем; 0 - не отвечает. S1 - счетчик входящих звонков (устанавливается модемом). S2 - код символа Escape, стандартно 43 ("+"). S3 - код символа Enter, стандартно 13 (CR). S4 - код символа перевода строки, стандартно 10 (LF). S5 - код символа забоя, стандартно 8 (BackSpace). S6 - время ожидания непрерывного гудка, сек; стандартно 2. S7 - предельное время установки соединения, сек. S8 - длительность паузы при наборе (символ ","), сек; стандартно 2. S9 - время опознания несущей, 1/10 сек;стандартно 6. S10 - время ожидания восстановления несущей, 1/10сек; стандартно 7. S11 - длительность сигнала/паузы тонального набора, мс. S12 - охранная пауза до и после Escape, 1/50 сек; стандартно 20. S18 - длительность теста, сек; 0 - бесконечный тест. Как работает команда тестирования &T?Группа команд &T позволяет проверить правильность работы как отдельного модема, так и пары модемов, соединенных между собой, однако поддерживается не всеми модемами. Различается три типа тестовых режимов - Local Analog Loopback (LAL), Remote Digital Loopback (RDL) и Local Digital Loopback (LDL). Последний режим является вспомогательным для обеспечения работы в режиме RDL. В каждом из этих режимов происходит соединение между собой (Loopback - замыкание, возврат), передатчика и приемника модема: Analog - аналоговое, со стороны телефонной линии, перед разделительным трансформатором; Digital - цифровое, со стороны DTE, перед интерфейсом с DTE. Слово Local в названии режима означает, что замыкание выполняется в местном модеме, Remote - в удаленном. Тесты LAL выполняются только на местном модеме, тесты LDL и RDL требуют участия как местного, так и удаленного модемов. Модемы могут быть соединены как по обычной коммутируемой линии, так и по выделенной, либо просто отрезком телефонного провода. В режимах Digital Loopback один из модемов является активным (находится в режиме данных с DTE или формирует тестовую последовательность), а другой - пассивным (предоставляет шлейф). Пассивный модем может предоставлять шлейф автоматически по запросу другого модема (для модемов, поддерживающих протоколы тестирования ITU-T V.54) либо по команде. Время выполнения каждого теста в секундах задает регистр S18. При нулевом значении в регистре тест выполняется до его ручного прерывания. Каждый из режимов LAL и RDL имеет две разновидности - с ручным и автоматическим контролем. В первом случае модем устанавливает связь через аналоговое или цифровое замыкание линии, выдает сообщение CONNECT и переходит в режим данных. Этот режим ничем не отличается от обычного соединения, кроме того, что все переданные символы сразу же возвращаются обратно, позволяя проверить правильность их прохождения. Используя полнодуплексный протокол связи (например, Hydra), в этом режиме можно имитировать передачу и прием файлов, проверить работу методов управления потоком, буферизацию и т.п. Во втором случае модем после установления связи остается в командном режиме, а его процессор начинает формирование тестовой последовательности данных, которая проходит через замыкание линии и проверяется после приема. Количество ошибок подсчитывается и выдается в виде трехзначного числа после завершения или прерывания теста. Для теста LAL с автоматической проверкой рекомендуется отключить протоколы коррекции ошибок, чтобы они не влияли на результат проверки. Этот тест в любом случае не должен обнаруживать ошибок, иначе модем неисправен. В тесте RDL в проверке участвует вся линия связи и удаленный модем, поэтому количество ошибок может быть ненулевым. Параметры команды &Tn: 0 - прекращение работающего теста 1 - тест Local Analog Loopback 3 - режим Local Digital Loopback (предоставление шлейфа по команде) 4 - разрешение предоставления шлейфа для удаленного модема 5 - запрет предоставления шлейфа для удаленного модема 6 - тест Remote Digital Loopback 7 - тест Remote Digital Loopback с автоматической проверкой 8 - тест Local Analog Loopback с автоматической проверкой Таким образом, для проверки модема в режимах LAL достаточно ввести соответствующие команды. В режимах RDL необходимо вначале вручную установить соединение, затем при помощи Escape-последовательности перейти в командный режим и выдать команду RDL с активного модема. В удаленном модеме при этом либо должно быть разрешено предоставление шлейфа по запросу, либо заранее, путем ручного перехода в командный режим, установлен режим LDL. Какие ответы модем может давать на командные строки?Основной набор ответов, определенный для всех Hayes-модемов: OK - команда выполнена успешно Дополнительные ответы, введенные в некоторых расширениях: RINGING - в режиме вызова в линии обнаружен длинный гудок
Сообщение CONNECT без параметров выдается либо в том случае, когда запрещены расширенные сообщения (X0), либо установлено соединение на скорости 300 бит/с. Сообщение RING выдается модемом после завершения каждого вызывного сигнала (интервал около 5 сек). Сообщения RINGING/RINGBACK выдаются не всеми типами модемов. Сообщение VOICE поддерживается только некоторыми модемами и выдается в том случае, когда в линии обнаружен сигнал, который нельзя отнести к какому-либо известному классу линейных или модемных сигналов. В этом случае считается, что абонент ответил голосом, и после выдачи сообщения модем отключается от линии. Что представляет собой факс-модем?Это модем со встроенными факсовыми протоколами установления связи, модуляции и передачи изображений. Такой модем может работать как с обычными модемами посредством протоколов передачи данных, так и с факс-машинами через протоколы передачи изображений. Функциональность факс-модема определяется его классом: 1, 2 или 2.0. Класс 1 предполагает поддержку только протоколов физического уровня, все остальные процедуры выполняет управляющая программа компьютера. Класс 2 вносит бОльшую часть интеллектуальных функций в сам модем, однако является "промежуточным" стандартом де-факто. Класс 2.0 добавляет функции кодирования и декодирования изображений, содержит ряд изменений, и утвержден в качестве официального стандарта. Классы факс-модемов не совместимы снизу вверх (функции младших классов не поддерживаются в старших), а модемы старших классов чаще всего не поддерживают младшие классы факсовых команд. Программы, ориентированные на работу с факс-модемами (BitFax, BGFax, WinFax и др.), позволяют передавать и принимать избражения в различных графических форматах (BMP, GIF, TIFF, JPG и т.п.). Кроме этого, большинство программ, а также встроенные факс-службы современных ОС, позволяют передавать документы любого типа, для чего в системе устанавливается фиктивное устройство класса "принтер", при "печати" документов на которое они преобразуются в чистое изображение и отправляются факс-модемом. Что представляет собой голосовой модем?Это модем с возможностью голосового (voice) контакта между абонентами. Первые модемы с поддержкой голоса имели только микрофонный и телефонный усилитель с возможностью подключения наушников с микрофоном, что добавляло к модему функции обычного телефонного аппарата. Современные модемы, кроме этого, способны одновременно передавать по каналу данные и голос, отчего эта группа модемов имеет общее обозначение SVD (Simultaneous Voice and Data), и часто позволяет делать это при помощи подключенного к модему телефонного аппарата. Различаются две основные технологии передачи голоса вместе с данными: ASVD - аналоговая, когда звуковая информация внедряется в поток данных в аналоговом виде на этапе модуляции. Скорость потока данных в канале при этом падает. Примером может служить протокол V.61 (скорость данных 4800 бит/с), а также его расширения от Rockwell, называемые AudioSpan: ML144 (4800..9600 бит/с) и ML288/V.34Q (4800..14400 бит/с). ASVD позволяет разговаривать с абонентом при помощь телефонной трубки или наушников с микрофоном, но не позволяет передавать по голосовому каналу звук из компьютера без его преобразования в аналоговую форму. DSVD - цифровая, когда звук в цифровом виде прозрачно внедряется в основной цифровой поток посредством служебных кадров. При этом звук может как оцифровываться с микрофона на входе и подаваться на наушники с выхода, так и напрямую передаваться с компьютера или на компьютер. Пример - протокол V.70. Помимо прямых голосовых разговоров, при помощи голосовых модемов реализуются системы определения номера звонящего абонента, автоответчики, системы автоматической рассылки речевых сообщений и т.п. Что такое Soft-modem?Так называют класс модемов, часть "интеллекта" которых переносится из самого модема в основной компьютер. Повышение быстродействия центральных процессоров и появление специализированных команд для обработки сигналов (MMX) позволяют передать часть функций модемной аппаратуры операционной системе основного компьютера. Встречаются также три наиболее распространенные разновидности soft-модемов: - модем без ПЗУ микропрограммы, содержащий только ОЗУ. Микропрограмма в такой модем загружается из файла специальным программным загрузчиком, после чего такой модем вплоть до отключения питания работает, как обычный. Такая конструкция облегчает обновление микропрограмм и исключает полную потерю работоспособности модема с некорректно "перешитым" ПЗУ, однако требует операции первоначальной загрузки микропрограммы, без которой модем неработоспособен. - модем с упрощенным контроллером, реализующим только протоколы модуляции и установления связи. Коррекция ошибок, сжатие данных и другие сервисные функции выполняются программным обеспечением (драйверами ОС или специализированными связными программами). Такой модем выглядит как обычный, имеет набор команд, однако без внешних сервисных программ неспособен реализовать описанные функции. Частным случаем являются модемы с интерфейсом RPI (Rockwell Protocol Interface - интерфейс протоколов Rockwell), построенные на серии микросхем Rockwell. - модем без контроллера (controllerless). Такие модемы выпускаются только во внутреннем исполнении, и фактически представляют собой модулятор/демодулятор с "неинтеллектуальным" интерфейсом. Все функции по инициализации такого адаптера и превращению его в привычный интеллектуальный модем с набором AT-команд возлагаются на центральный процессор и драйверы, что создает значительные накладные расходы и требует процессора значительной мощности. Модемы этого типа работоспособны только в среде ОС, в которой установлены их драйверы, в остальных случаях они не имеют никакого смысла. Наиболее известным примером является USR Sportster WinModem. Как первоначально настроить новый модем?Для внутреннего модема прежде всего необходимо установить номер COM-порта и линии IRq, которые он будет использовать. Подавляющее большинство внутренних модемов видны компьютеру, как дополнительный COM-порт, за исключением Soft-модемов с полностью программным управлением, которые могут иметь произвольный интерфейс. При установке номера порта нужно иметь в виду, что на всех современных системных платах имеется встроенный контроллер ввода/вывода, поддерживающий два последовательных порта, по умолчанию обычно работающих как COM1 и COM2. В BIOS Setup для каждого из этих портов может быть также режим Auto, в котором порт включается только в случае наличия свободных стандартных адресов и линий IRq. Например, если для второго системного порта задано Auto и в плату установлен внутренний модем, настроенный, как COM2, BIOS в зависимости от типа и версии может либо перенести второй системный порт на COM4, либо отключить его совсем. Если два порта настроены на одну линию IRq (IRq sharing), то возможна работа только с одним из них в каждый конкретный момент времени. При попытке активизировать оба порта не сможет работать ни один, кроме случая, когда оба порта обслуживает специализированная программа, которая в состоянии разобраться, какой порт генерирует какое прерывание. При настройке двух портов на один и тот же адрес оба будут неработоспособны. Внутренние модемы с интерфейсом Plug & Play в специальной настройке не нуждаются; может потребоваться разве что установка перемычками режима PnP, если модем допускает также и прямое конфигурирование адреса и IRq. На внешнем модеме может потребоваться установка режимов работы переключателями, если они есть. Проверить правильность работы порта модема можно при помощи любой терминальной программы (Telix, Terminate, Telemate - для DOS, или стандартный Hyper Terminal (Программа Связи) - для Windows 95). На ввод строки AT&F модем обязательно должен дать ответ OK. Можно использовать и строку ATZ, однако в том случае, если в параметрах по умолчанию установлен режим Q1, модем не даст ответа OK на эту строку. Убедившись, что модем работает, необходимо сформировать набор параметров по умолчанию. Для этого вводится команда &Fn с нужным номером конфигурации, описанной в руководстве к модему; крайне желательна конфигурация с аппаратным (hardware, RTS/CTS) управлением потоком данных. Если некоторые параметры желательно иметь отличными от заводской конфигурации, их нужные значения задаются после команды &Fn. После настройки всех параметров вводится команда &W, которая записывает сформированный набор в качестве набора по умолчанию с номером 0. Впоследствии, при каждом включении модема или после выполнения команды Z, будет устанавливаться этот набор параметров. Для того, чтобы программы правильно отображали скорость установленного соединения, необходимо задать модему режим вывода в строке CONNECT реальной скорости вместо скорости модем-DTE. Для этого служит команда Wn; также могут потребоваться и другие команды (например, \Vn), которые нужно найти в описании. Проверить формат строки CONNECT на большинстве модемов можно командой &T1, устанавливающей тестовое соединение по типу Local Analog Loopback. Что такое строка инициализации и зачем она нужна?Строкой инициализации называют последовательность команд, приводящую модем в заранее известное состояние. Обычно такая строка начинается с одной из команд &Fn, устанавливающей заводские установки, следом за которой идут команды установки нужных режимов. Если терминальная программа поддерживает несколько строк инициализации, последовательно выводимых в модем, удобно начинать последовательность с команды Z. В этом случае в активный набор параметров по умолчанию записываются наиболее общие установки для всех применений модема на данной станции. В том случае, если для всех применений модема достаточно одного набора параметров, наиболее удобным будет запоминание его в NVRAM. Строка инициализации в этом случае сводится к одной команде Z. Как можно оптимизировать настройку модема и управляющей программы?В общем случае оптимальная настройка модема и программы весьма сложна и неоднозначна, однако в большинстве случаев можно выделить несколько наиболее типичных моментов: - Надежность соединения. Все современные модемы поддерживают аппаратную коррекцию ошибок, однако заводские установки разрешают соединение без коррекции, если в процессе вхождения в связь модемам не удалось выбрать общий протокол коррекции. В результате даже при случайной помехе в этот момент может быть установлено соединение без коррекции, что чревато появлением на выходе модема большого количества мусора вперемешку с полезными данными и значительное снижение общей скорости передачи. Для избежания подобных ситуаций рекомендуется задавать принудительный режим коррекции командами \N2, \N4, \N5, \N6 (для большинства модемов), &M5 (USR/3COM) и т.п. - Эффективность сжатия данных. По умолчанию все современные модемы пытаются задействовать протокол сжатия. В случае передачи неупакованных данных это чаще всего повышает общую скорость обмена, однако в случае передачи эффективно упакованной информации (архивы ZIP, ARJ, RAR, свернутые дистрибутивные наборы, CAB-файлы и т.п.) алгоритм сжатия V.42bis чаще всего работает вхолостую, а алгоритм MNP5 в любом случае пытается сжимать поток, вызывая его увеличение из-за накладных расходов. Поэтому, если данная сессия связи ориентирована главным образом на передачу непакованных данных - лучше разрешить сжатие, если же преобладают большие объемы пакованных, а модем поддерживает только MNP5 - сжатие имеет смысл запретить. - Пропускная способность интерфейса с DTE. При установке соединения модем может либо установить с DTE такую же скорость передачи, что и в канале (floating speed), либо всегда работать с DTE на фиксированной скорости (fixed speed). Последний случай называется режимом фиксации скорости порта (Port Locking, Baud Locking и т.п.) и является наиболее удобным и эффективным. Фиксированную скорость порта рекомендуется устанавливать максимальной, на которой система и программы сохраняют способность надежно принимать данные, или хотя бы вдвое большей максимальной скорости соединения. В результате возрастание скорости передачи вследствие сжатия данных будет компенсировано увеличением скорости порта, и интерфейс с DTE не будет узким местом модемного тракта. - На линиях невысокого качества в зависимости от спектра помех могут по-разному вести себя различные протоколы модуляции при близких битовых скоростях передачи. Например, при соединении по протоколу V.34 со скоростью 16800 бит/с скорость обмена из-за исправления ошибок может оказаться ниже, чем при соединении по протоколу V.32bis на скорости 14400 бит/с. В таких случаях имеет смысл принудительно ограничивать возможные протоколы и скорости для конкретных сеансов связи. Чем различаются асинхронные и синхронные режимы?В асинхронном режиме данные передаются побайтно, каждый байт предваряется стартовым битом и завершается одним или двумя стоповыми битами. Таким образом, минимальной единицей передачи является байт, а стартовые/стоповые биты между байтами обеспечивают правильное опознание начала и конца каждого байта. Этот режим удобен с точки зрения надежности выделения сигналов с линии однако требует упаковки/распаковки битовых данных в байты, а также снижает скоростей передачи в канале за счет избыточных стартовых и стоповых битов (минимум на 25% - 2/8). В синхронном режиме данные передаются побитно, без группировки в байты. В этом случае нет накладных расходов на группировку битов, и единицей передачи является отдельный бит. Тем не менее, чтобы приемник имел возможность пересинхронизации в случае потери части потока, биты часто оформляются в пакеты различной длины, снабженные заголовком и контрольной суммой. Минимальной информационной единицей в этом случае является пакет. Поскольку длина пакета значительно превышает длину его служебной части, накладные расходы оказываются намного меньше. Все протоколы коррекции ошибок и сжатия данных устанавливают между модемами синхронный режим передачи с обменом пакетами. В то же время обмен между модемом и DTE чаще всего идет в асинхронном режиме, что вкупе с накладными расходами на оформление и обработку пакетов порождает разность скоростей в канале и с DTE. Для компенсации этой разности в модеме имеется буфер, а также используются методы управления потоком (flow control). Специализированные устройства (пейджерные станции, промышленные системы сбора информации и т.п.) нередко используют синхронную передачу между собой и модемом, сами формируя пакеты и следя за их правильностью. В таких случаях, из-за неспособности обычного компьтерного порта работать в синхронном режиме, взаимодействие компьютера с такими устройствами через пару модемов может оказаться невозможным. Почему при смене видеорежима нарушается связь на внутреннем модеме?Это происходит в основном при работе с рядом видеоадаптеров на основе микросхем S3. Эти микросхемы используют для управления ускорителем порты с адресами, младшая часть которых совпадает со стандартными адресами COM4 (2E8..2EF). При корректно реализованном интерфейсе PCI/ISA на системной плате обращения к этим адресам должны выдаваться только на шину PCI, однако некоторые chipset'ы системных плат ошибочно транслируют их также и на ISA. Если внутренний модем настроен на COM4 - это вызовет сбой в обмене данными, разрыв связи или даже неработоспособность модема до его повторной инициализации. Почему модем не распознает сигнал "занято"?Подавляющее большинство модемов настроено на распознавание телефонных сигналов в стандарте США/Канады. Сигнал "занято" в этом стандарте представляет собой сочетание двух частот - 480 и 620 Гц, длительность тона и паузы - 0.5 с, причем громкость сигнала существенно (на 12 дБ) ниже громкости непрерывного гудка. В российской телефонной системе сигналы "занято" передаются посылками частоты 425 Гц, длительность тона и паузы 0.35 с, уровень всех сигналов одинаковый. В результате, если анализатор модема не имеет достаточного запаса по длительности/интенсивности сигналов, корректное их опознание происходит редко или его не происходит вовсе. Если модем имеет возможность регулировки чувствительности к сигналам станции и диапазона их параметров - можно попытаться подобрать подходящие значения. Модемы, ориентированные на российскую телефонную сеть (IDC, Russian ZyXEL, Russian Courier) изначально настроены на параметры отечественных сигналов. Для модемов, не имеющих подобных регулировок, в том случае, когда трудность в опознании сигнала "занято" вызвана слишком громким его уровнем, можно попытаться ослабить входной сигнал, включив последовательно с линией резистор сопротивлением 50..500 Ом, однако это чаще всего отрицательно сказывается на качестве связи. Отчего модем может зависнуть, и как с этим бороться?Как и любой компьютер, внутренний микрокомпьютер модема может зависать по нескольким причинам: - ошибки в микропрограмме - нестандартные входные сигналы или элементы данных, против которых в модеме не предусмотрено защиты - некачественная фильтрация питающих напряжений - электростатические разряды или мощные магнитные поля Наиболее частыми причинами зависания являются первые две. В частности, в большинстве современных модемов протоколы реализуются методом конечных автоматов, предусматривающих большое количество состояний и правил перехода между ними. При таком подходе крайне трудно проверить все возможные переходы и исключить появление "запрещенных" состояний, в которые модем может попасть по ошибке, а также некорректных цепочек таких состояний. В результате, при определенном сочетании входных условий (типы модемов в паре, протоколы связи, виды передаваемых данных и т.п.) один или оба модема могут попасть в запрещенные состояния. В зависимости от тяжести зависания модем может быть выведен из него либо срабатыванием внутреннего таймера (если таковой имеется), либо снятием сигнала DTR, либо полным аппаратным сбросом. Если модем регулярно зависает и нет возможности сменить его или хотя бы микропрограмму - можно принять компромиссные меры: - Установить режим &D3 для сброса по падению сигнала DTR. Однако на большинстве модемов сигнал DTR наравне с другими анализируется процессором модема, и зависший процессор часто оказывается неспособным отреагировать на его изменение. Модемы повышенной надежности могут иметь специальный режим, в котором сигнал DTR напрямую подключается к цепи аппаратного сброса. - Установить в модем схему аппаратного сброса, формирующую импульс сигнала Reset, который автоматически формируется при включении питания. Сигнал сброса можно сформировать из падения сигнала DTR, либо взять отдельный сигнал с какого-либо другого порта (COM или LPT). В первом случае потребуется только доработка самого модема, так как практически все программы умеют сбрасывать DTR для разрыва соединения. Во втором случае потребуется запуск специальной программы, которая будет выдавать в нужный порт сигнал, от которого сработает схема аппаратного сброса. - Для внешнего модема можно сделать схему кратковременного отключения питания, работающую на тех же принципах. Метод хорош тем, что не требует вмешательства в схему самого модема. Вариант с формированием сигнала внутреннего сброса имеет ограниченное применение в случае внутреннего модема. Дело в том, что внутренний модем всегда содержит еще и контроллер COM-порта, настройку которого большинство программ выполняет только в начале работы. Таким образом, если сигнал сброса формируется от падения DTR, то порт также окажется приведенным в стандартное состояние, и программа не сможет с ним работать до повторной инициализации. В этом случае нужно, чтобы программа, обнаружив зависание модема, аварийно перезапускалась. Какой максимальный CPS достижим на данной битовой скорости?При условии, что в тракте нет узких мест (в частности, скорость асинхронных последовательных портов с обеих сторон превышает скорость соединения) и данные везде передаются с максимальной скоростью, предельный CPS без эффективного сжатия (например, при передаче архивов) примерно равен 90..95% от битовой скорости, деленной на восемь. Например, для скорости 14400 бит/с предел CPS около 1650, а для 28800 - около 3400. При эффективной работе протоколов сжатия реальная скорость может возрастать в два и более раз (наиболее эффективно сжимаются длинные серии повторяющихся символов). Различные программы по-разному измеряют CPS при обмене: одни отображают только мгновенное значение, вычисленное при передаче текущего пакета, другие - результат деления общего количества переданных/принятых байтов на время с начала обмена. В первом случае значение сильно изменяется от влияния кратковременных факторов, а во втором оно неоправданно занижается. Наиболее корректным является отображение среднего CPS за небольшой промежуток времени (несколько секунд) с одновременным подсчетом среднего CPS за все время передачи. Чем различается работа по коммутируемой и выделенной линии?Стандартная коммутируемая линия отличается наличием питающего напряжения (около 60 вольт в российских телефонных сетях) и способностью выдавать и принимать сигналы состояния линии и набора номера. Соответственно, при работе по коммутируемой линии вызывающий модем в общем случае дожидается непрерывного гудка, затем набирает номер, и только после этого ожидает ответа от удаленного модема. Отвечающий модем, в свою очередь, воспринимает сигнал вызова (звонок), после чего подключается к линии ("берет трубку") и переходит в режим ответа. Выделенная линия представляет собой постоянное двухточечное соединение между двумя абонентами. Обычно это - двух- или четырехпроводная линию связи, напрямую соединяющая два модема и никак не соединенная со станционной аппаратурой. В простейшем случае это может быть обычный телефонный кабель, входящий в комплект модема, в наиболее сложном - участок многоканального проводного, оптоволоконного или радиотракта, который при помощи канальной аппаратуры имитирует простое проводное соединение. Модемы, поддерживающие работу по выделенной линии (команда &L1) в этом режиме автоматически отключают проверку наличия непрерывного гудка, а также автоматически пытаются восстановить соединение при его разрыве. Для начальной установки соединения один модем должен быть активизирован как вызывающий (команда D), а другой - как отвечающий (команда A). После этого восстановление связи при обрыве модемы выполняют сами в тех же ролях. Кроме этого, модемы с поддержкой выделенных линий имеют запоминаемые режимы, в которых установление связи в выбранной роли выполняется автоматически при включении питания (либо после появления сигнала DTR). Таким образом, пара таких модемов сразу после включения питания или появления DTR создает автоматически поддерживаемое соединение без вмешательства управляющих программ, которым в этом случае остается лишь слежение за сигналом DCD и/или сообщениями CONNECT/NO CARRIER. В идеальном случае такая пара модемов позволяет организовать полностью прозрачное соединение, аналогичное нуль-модемному кабелю, при котором программам совершенно неизвестно о существовании в каких-либо дополнительных устройств в тракте. По выделенной линии могут работать практически все модемы - даже не поддерживающие команду &L1. Достаточно, чтобы модем не обращал внимания на наличие напряжения в линии (некоторые модемы имеют датчик напряжения) и не пытался ожидать гудка при переходе в режим вызова (это обеспечивает команда X3). Для установления связи на вызывающем модеме вводятся команды X3D, после чего на отвечающем вводится команда A. Единственное неудобство в этом случае - обычные модемы не умеют автоматически восстанавливать оборванное соединение. Описанная технология может использоваться и при работе по коммутируемой линии - для установления модемной связи по каналу, уже соединенному для голосового разговора. При этом модемы должны быть подключены параллельно каждому телефонному аппарату, их операторы выбирают для себя роли вызывающего/отвечающего, после чего вызывающий вводит команду D и после подключения его модема к линии кладет трубку. Отвечающий оператор, услышав щелчок подключившегося к линии удаленного модема, вводит команду A и тоже кладет трубку, после чего модемы переходят к обмену сигналами установки соединения. Как подключить модем через блокиратор или АВУ?Блокиратор используется для разделения спаренных абонентских линий, когда к одной телефонной паре подключаются две абонентские линии, каждая из которых использует свою полярность питающего и вызывного напряжения, и одновременная работа обеих линий невозможна. Типовой блокиратор представляет собой диодный однополярный выпрямитель, пропускающий в абонентскую линию только напряжение "своей" полярности, и также содержит транзисторный ключ, замыкающий обратный ток вызывного сигнала (звонка). Такой блокиратор рассчитан на телефонные аппараты с индуктивным звонком; после завершения действия очередного полупериода однополярного вызывного сигнала в катушке звонка возникает ток того же направления, замыкающийся через транзисторный ключ. Телефонные аппараты с электронным звонком и модемы содержат разделительный конденсатор, в котором возникает ток противоположной направленности, а для этого в блокираторе нет разрядной цепи. В результате аппарат или модем нормально работает во всех режимах, кроме опознания звонка. Для нормальной работы на спаренных линиях выпускаются блокираторы, поддерживающие аппараты с электронным звонком. Можно также самостоятельно собрать схему, обеспечивающую замыкание возвратного тока и разряд разделительного конденсатора. При помощи АВУ (аппаратура высокочастотного уплотнения) к двухпроводной телефонной линии может подключаться несколько (обычно две) абонентские линии, могущие работать одновременно. При этом одна из линий работает в обычном режиме - на низкой частоте, а остальные - на высоких частотах. Для передачи сигналов вызова по линии, уплотненной АВУ, используются специальные сигналы, принимаемые блоком АВУ и преобразуемые в стандартный вызывной сигнал напряжением 110 В и частотой 100 Гц. Типовой блок АВУ также рассчитан на аппараты с индуктивным звонком и имеет три точки подключения: два - низковольтная линия, и третий - вы- ход вызывного сигнала. Для подключения аппаратов с электронным звонком или модемов нужен либо блок АВУ с двумя точками подключения, либо специальный адаптер. Если через блокиратор модем в общем случае работает практически без потери качества, то на высокочастотной линии АВУ часто наблюдается значительное снижение скорости и надежности связи. Что такое FOSSIL?Fido/Opus/SeaDog Standard Interface Layer - стандартный уровень интерфейса, совместно разработанный Fido, Opus и SeaDog. Служит для унификации интерфейса с последовательными портами в DOS, заменяя и дополняя функции BIOS. В дополнение к стандартным для BIOS функциям ввода/вывода символа с ожиданием предоставляет функции ввода/вывода без ожидания, работы по прерываниям, буферизованного ввода/вывода и т.д. В FOSSIL может быть также включен интерфейс с видеоадаптером. Наиболее известные версии FOSSIL для DOS - BNU и X00. FOSSIL полезен и под многозадачными системами типа OS/2 и Windows. Стандартные средства виртуализации портов этих систем эмулируют только поведение порта на аппаратном уровне - байтовый ввод/вывод по прерываниям, при этом эмуляция побайтного обмена с прерыванием на каждые несколько байтов создает заметные накладные расходы и приводит к периодической потере байтов. Версии FOSSIL для этих систем создают DOS-программам оптимальный интерфейс с портами. Наиболее известная версии FOSSIL для Windows - WinFossil, для OS/2 - SIO (Serial I/O). SIO является развитием версии X00 и, помимо поддержки функций FOSSIL, эмулирует соединение двух последовательных портов посредством сетевых протоколов. Где взять драйверы под Win95/98 для модема <...>?Для большинства модемов, как и для мониторов, каких-либо специальных драйверов не существует - Windows использует стандартные драйверы последовательных портов. Исключение составляют модемы с нестандартным интерфейсом - Soft-модемы, модемы с RPI, некоторые голосовые модемы. Тем не менее, для корректного опознания модема в Windows требуется INF-файл, содержащий характеристики модема, команды установки режимов, строки сообщений и т.п. Для большинства модемов эти файлы прилагаются в комплекте поставки. Если Windows не в состоянии опознать модем даже при наличии INF-файла от производителся - это означает, что либо полное название типа модема в INF-файле не соответствует выдаваемому самим модемом по командам In, либо INF-файл предназначен для другой версии Windows. Если не удается найти корректный INF-файл на сайте или BBS производителя, можно попробовать задать подходящий по скорости тип стандартного модема. На качестве связи это не скажется - не будут поддерживаться только расширенные возможности (голос, факс, АОН и т.п.). Как уменьшить шум от реле набора номера?- Минимальное решение: обклеить реле кусочками поролона, подобрав их размеры и конфигурацию для оптимального поглощения звука. Этот способ, однако, редко дает заметный эффект, так как вибрация реле передается всей плате, которая излучает сильнее, чем сам корпус реле. - Оптимальное решение: выпаять реле и присоединить его отрезками тонкого гибкого провода, а само реле так же обклеить поролоном. При этом вибрация практически не будет передаваться печатной плате. - Кардинальное решение: заменить реле на герконовое. Хорошо подходят 5-вольтовые РЭС-55А (модель 0201). Если реле имеет две пары контактов, вторая из которых отключает параллельный телефон - можно поставить два реле, или же замкнуть выключатель телефона накоротко. Реле также можно заменить на электронный ключ, которые продаются на радиорынках, однако в этом случае может ухудшиться соотношение сигнал/шум из-за паразитного влияния электронных компонент ключа. Можно ли добавить в модем поддержку новых возможностей?Проще всего это сделать, если модем имеет электрически перепрограммируемое ПЗУ (Flash EEPROM). Тогда при появлении новых микропрограмм ("прошивок") любая из них может быть записана в EEPROM при помощи специальной программы загрузки. Прошивки микропрограмм обычно выпускаются самими производителями модемов, однако для некоторых модемов (USR, ZyXEL) имеются и "самодельные" прошивки, в которых нередко исправлены ошибки и добавлены новые возможности. Перед записью прошивки в EEPROM происходит полное стирание его прежнего содержимого, поэтому прерывание процесса записи (сброс программы, зависание или отключение компьютера, отключение питания модема, сбой процедуры записи) чаще всего приводит к полной неработоспособности модема. Процесс восстановления EEPROM довольно сложен, особенно в моде мах со впаянной микросхемой, поэтому операция смены прошивки является потенциально опасной. Если модем содержит только обычное ПЗУ, то при наличии более новой версии прошивки ее можно записать в ПЗУ при помощи программатора, или заменить саму микросхему на уже записанный экземпляр. После замены прошивки рекомендуется выполнить команды установки заводских параметров (&Fn и ей подобные), после чего записать текущие параметры в NVRAM. Это нужно для того, чтобы новая версия микропрограммы могла корректно установить по умолчанию новые параметры, или скорректировать старые, смысл которых изменился. После этого можно заново настраивать модем, как при его первоначальной установке. Где найти программы, драйверы и информацию по модемам?ACorp - acorp.com.tw http://www.56k.com/, http://www.v90.com/ - страницы технологии 56k http://www.faqs.org/ - большое собрание FAQ www.chat.ru/~pirogoff - FAQ Игоря Пирогова по модемам на микросхемах Rockwell www.geocities.com/CapeCanaveral/5997/signal_and_circuit_conditions.htm - параметры телефонных линий и сигналов в них. Большое спасибо всем приславшим ответы, рекомендации, замечания и советы для этого FAQ. Текст FAQ в альтернативной кодировке доступен для FReq на 2:5000/14@FidoNet по имени MODEMFAQ. Полный пакет FAQ и описаний доступен на ftp://spider.nrcde.ru/pub/text/tech/emtcfaqs.zip и через страницу FAQ на http://spider.nrcde.ru. |