Библиотека Интернет Индустрии I2R.ru |
|||
|
Настройка программных HCF/HSF модемов на чипах ConexantВведениеВ настоящий момент в мире выпускается большое количество программных модемов, причем наибольшую популярность завоевали те, которые собраны на чипсетах от именитых фирм. И в этом отношении нужно признать, что модемы на чипах от Conexant сегодня занимают едва ли не доминирующую позицию в продукции различных фирм - производителей. На территории СНГ наибольшее распространение получили модемы Acorp 56K PCI PIM (HCF) и Acorp 56K PCI IRW (HSF), но это не значит, что не используются и другие. Не вдаваясь в подробности этой популярности, заметим, что наряду с огромным количеством самых различных моделей, качество и количество документации сопровождения до сих пор продолжает оставаться на весьма низком уровне. Отметим, что это справедливо, когда речь идет об англоязычной документации. Если же говорить о документации на русском языке, то ее вообще можно пересчитать по пальцам. В итоге страдает конечный пользователь, который не хочет вдаваться в тонкости настройки модема, а хочет сразу же получить сверхскоростные результаты от своего модема. Именно по этой причине в различных конференциях, форумах, опросах зачастую бытует мнение о невозможности добиться каких-либо значимых результатов. "Мой модем никак нельзя заставить набирать номер пульсом", "Помогите, модем не ловит BUSY!", "Скажите, а как изменить уровень выходного сигнала" и т.д, и т.п - вот едва ли не самые часто задаваемые вопросы. Ответ на них не лежит на поверхности. Кроме того, если посмотреть на количество регистров и доступных команд из профиля модема, кажется, что более ограниченного в своих возможностях модема не найти. На самом деле это не так, и количественные и качественные характеристики намного богаче, чем у других, если только суметь к ним подобраться. И вот тут придется вооружиться терпением и опытом в правке реестра Windows. Если у Вас подобные качества отсутствуют, то есть только два выхода из положения - либо дочитать этот документ до конца и воспользоваться полученными знаниями, либо купить другой модем. Заранее предупреждаем, что стиль изложения и многочисленные термины, встречающиеся по ходу текста, рассчитаны на подготовленных пользователей. Впрочем, даже если вы пока новичок, вы все равно сможете сделать первые шаги в освоении подобных модемов. Многократное возвращение к нему поможет решить многие проблемы, и даже, вполне вероятно, позволит Вам в дальнейшем самостоятельно делать исправления не только реестра, но и файлов, входящих в состав драйверов модема - создавая собственные. Немного истории. В тот момент, когда готовился очередной обзор по программным модемам, в руки одного из авторов попался любопытный документ. В нем рассматривались ключевые положения по исправлению отдельных секций установочных файлов с расширениями .inf входящих в состав драйверов полностью программных HSF (host - based signal function) модемов. Внимательное изучение этого документа позволило сделать выводы о том, что его основные положения вполне пригодны для редактирования и правки основных управляющих секций .inf-файлов, входящих в состав бесконтроллерных HCF (host - based control function) модемов. Более того, благодаря данному файлу, общий взгляд на эти модемы изменился в позитивную сторону. Увы, первоисточник был написан на английском языке, и не все могут им активно пользоваться. Первоначально задумывался простой дословный перевод этого документа, но по мере его совершенствования он обрастал дополнительными комментариями, правкой допущенных технических ошибок, и собственными выводами, полученными от активной проработки наиболее интересных положений. В итоге, авторы склонны рассматривать его как самостоятельное руководство, да еще и с перспективой дальнейшего обновления. А вот насколько эффективно Вы, уважаемый читатель, сможете воспользоваться им, зависит только от Вас. Любые операции Вы будете вынуждены делать на свой страх и риск. "Кто предупрежден - тот вооружен". Итак, в путь! Реестр Windows, с точки зрения пользователя HCF/HSF модемаРеестр в OS Windows - это конфигурационный файл, в котором хранятся основные настройки программной оболочки. Также, в реестр заносятся конфигурационные профили некоторых программ, которые устанавливает пользователь. С точки зрения пользователя HSF/HCF модемов, секции реестра в грубом приближении можно рассматривать как набор основных параметров модема, которыми можно управлять для его настройки. Поэтому, чтобы иметь возможность правильно адаптировать эти типы модемов к конкретным условиям эксплуатации, необходимо научиться работать с реестром Windows. Правка реестра - дело кропотливое и требует внимания и терпения. Для этих целей существуют различные утилиты, но мы будем рассматривать только одну, а именно - REGEDIT (Registry Editor), которая входит в любой комплект OS Windows от Microsoft. Вызвать ее можно следующим образом: Нажать "Пуск" (Start), затем - "Выполнить" (Run). В появившемся поле набрать REGEDIT. После этого вы увидите следующее окно: нажимая на "+" мышкой, можно посмотреть вложенные папки. Все настройки для HSF/HCF модемов можно найти, открыв последовательно следующие папки (начиная с главной): Windows 9x: [HKEY _ LOCAL _ MACHINE\System\CurrentControlSet\Services\Class\Modem\xxxx\]Windows 2000 (Pro\Sever) [HKEY _ LOCAL _ MACHINE\SYSTEM\CurrentControlSet\Control\Class\\xxxx\]где xxxx - номер используемого модема *. Если Вы используете операционную систему Windows2000, необходимо проделать следующие операции:
Компьютер откроет порт и будет пытаться набрать номер. Можете разорвать связь. Все вышеуказанные операции необходимы для того, чтобы в разделе [HKEY _ LOCAL _ MACHINE\SYSTEM\CurrentControlSet\Control\Class\\xxxx\]появились необходимые подразделы. *- при первой установке драйвера xxxx обычно равно 0000, в случае использования 2-х и более модемов одновременно, переустановки драйвера или если Вы ставили модем в разные слоты, xxxx может принимать значения 0001, 0002 и т.д. Один раздел отвечает за один модем. Вам будет необходимо определить, к какому разделу (0000, 0001..) обращается система в данный момент. Для этого нужно сделать следующее: Откройте следующие папки на рабочем столе: Мой компьютер (My computer), Панель управления (Control panel), Система (System), далее найдите вкладку с устройствами (для Windows 9x она вторая слева, для Windows 2000 - Hardware/Device manager). После этого, откройте свойства модема и в открывшемся окне найдите ту вкладку, где есть поле для ввода строки инициализации (Extra Settings). Введите в этом поле AT#UG и нажмите "применить" (apply). После этого заходите в REGEDIT, в то место, где хранятся настройки для модема и перебирая по очереди вкладки 0000, 0001… ставим на них маркер и смотрим, когда в правой части появится в конце списка строчка "UserInit REG_GZ AT#UG" С той вкладкой, где эта строчка будет обнаружена, мы и будем работать. Если у Вас xxxx имеет только значение 0000, то вышеуказанные действия совершать не нужно - 0000 и есть искомая папка. Условные обозначенияПосле того, как вы найдете нужную папку, вы увидите следующую картинку: Все данные в каждом из разделов, имеют следующий формат: Название параметра | тип переменных | значение. Название параметра - тут объяснений не нужно. Тип переменных - показывает, в каком формате представлены значения. Бывают: А) reg_sz - формат данных: не что иное, как текстовая строка; Б) reg_dword - данные представлены в виде одного числа; В) reg_binary - данные представлены одним или несколькими числами. Все числа записываются в шестнадцатиричной системе исчисления. Стандартный калькулятор в Windows позволяет переводить числа в эту систему. В данном документе не рассматриваются данные для SmartHSF/SmartHCF режимов, поскольку на сегодняшний день нет точной документации по разделам, относящимся к SmartDAA. Для того, что бы в дальнейшем нам не запутаться, все папки, находящиеся в левой части окна, мы будем закрашивать в синий цвет, а названия папок в правой части - в красный. Папки будут рассматриваться сверху вниз. Основные настройки HCF/HSF модемов, хранящиеся в реестре1. Папка 0000 содержит папки:
Значения каждого байта приведены в следующей таблице:
1.4 EnableACPI (ON/OFF) - разрешает или запрещает совместимость драйвера с режимом ACPI (режим расширенного управления питанием компьютера). Работает не на всех версиях драйверов. 1.5 MaximumPortSpeed - максимальная скорость виртуального порта. 1.6 HW_Option (присутствует не во всех версиях драйверов) Восемь параметров, которые определяют специфические особенности модема, задаются в байтах, 01 - опция включена; 00 - выключена: 1 - СallerID - включение режима СallerID 2 - Handset - модем поддерживает управление вторым телефонным гнездом (в большинстве модемов оба входа соединены между собой, у некоторых есть система управления 2 гнездом). 3 - LCS 4 - VoiceRelay 5 - SPKR - модем поддерживает голосовые возможности. 6 - Mic - модем поддерживает работу микрофона. 7 - Ring1 8 - Ring2 Для модемов AcorpPIM и AcorpIRW - состояние по умолчанию: 01 01 01 01 01 01 01 01. 1.7 NVRamBody - Виртуальное ПЗУ модема. В него заносятся s-registers с ограничениями для выбранной страны, значения команды +MS и настройки некоторых команд. Это сохраненный профиль 0. Полную информацию о занесенных значениях можно узнать, набрав команду AT&V. 1.8 NVRamZBody - то же, что и NVRamBody, только профиль 1. 2. Answer - в этой папке определено, какую команду использовать при ответе модема на входящий звонок. По умолчанию ATA. Если команд несколько, их нужно заносить по номерам, начиная с 1. 3. ATPUD - после соединения сюда заносятся параметры линии, которые затем можно посмотреть командами AT#UD;AT#UG. 4. CloseHandset - указываются команды, которые должен выполнить модем, чтобы отключить телефонное устройство, воткнутое в параллельное с линией гнездо. 5. Country - одна из самых важных папок, содержащая много полезных настроек. Структура данной папки такова: Country - +---0000 +---0001 где Country - корневой каталог, а 0000, 0001… установки для разных стран. 5.1 CountryList - список кодов стран, доступных для выбора 5.2 Current - код текущей страны. 5.3 Previous - код предыдущей страны, которая была выбрана до указанной в Current. Для каждой страны имеются собственные настройки, которые расположены в подключах 0000, 0001 и т.д. Для примера возьмем страну: 6. 0000. Рассмотрим подробнее эти параметры: 6.1 BLACKLISTING - в России он не применяется. 6.2 CADENCE - Параметр, указывающий основные характеристики сигналов "занято", "линия свободна", "сигнал ответа модема","сигнал загруженности АТС". Любой сигнал имеет высокий и низкий уровень. Для большей наглядности рассмотрим приведенный выше рисунок. На нем изображен поступающий сигнал. Синим цветом изображен максимальный сигнал, который может послать станция, красным - минимальный. Первое расстояние между осью level и синим квадратом - минимальная пауза между сигналами; первое расстояние между синим и красным квадратом - максимальное время. В реестре Вы задаете все пределы для определения конкретного сигнала. Если сигнал от станции не укладывается в заданные рамки, модем просто не сможет его опознать. Подведя итог, можно сказать, что, задавая параметры, Вы должны указать границу так, чтобы параметры сигнала станции OFF/ON time попали бы между вашими min/max и не выступали бы за их границу. Ключ CADENCE содержит в себе 145 байт. Мы свели их в своеобразную таблицу:
6.3 CALLERID - определяет формат сигнала, содержащего информацию о звонящем к Вам абоненте. Функция CallerID позволяет делать запросы к базе данных, которую определяет сам абонент. В этой базе могут содержаться сведения не только о телефонном номере звонящего, но и его день рождения, номер банковского счета и т.п. Принцип действия CallerID в корне отличается от Российского Автоматического Определения Номера (АОН) звонящего вам абонента, и доступна очень небольшой группе пользователей современных цифровых АТС. 0 - запрет на определение звонящего абонента. 1 - выводить информацию о абоненте в форматированном варианте. Учитывается стандарт для США. 2 - выводить информацию о абоненте в форматированном варианте. Учитывается стандарт для Японии. 3 - выводить информацию о абоненте в форматированном варианте. Учитывается стандарт для Японии (универсальный). 4 - выводить информацию о абоненте в форматированном варианте. Учитывается стандарт для Франции. 5 - выводить информацию о абоненте в форматированном варианте. Учитывается стандарт для Англии. 6.4 DTMF - параметр имеет четыре байта в шестнадцатиричной системе исчисления. aa,bb,cc,dd, которые определяют следующие параметры тонового набора номера. bb,aa - продолжительность одного тонового сигнала, при наборе номера тоном. dd,cc - пауза между этими сигналами. 6.5 TONE - ключ, содержащий информацию о параметре сигнала "ответ станции", применяемых в данной стране. Используется также при работе с локальными АТС. Все параметры задаются побайтно:
Параметры сигнала DialTone, указываются в ключе - CADENCE. 6.6 FLAGS - ключ содержит четыре байта, в шестнадцатеричной системе исчисления. Каждый байт раскладывается побитно.
Прим.: Разрешает параметр бит установленный в 1, отменяет бит установленный в 0. 6.7 PULSE - ключ содержит параметры, определяющие пульсовый набор номера. 1 байт - выбор стандарта для пульсового набора. Чтобы понять значение этого параметра, необходимо вспомнить, что Вы слышите, когда набираете номер с помощью пульсового набора. В этот момент, в зависимости от набираемой цифры, количество "щелчков" разное - т.е. вы набрали "1" - слышите затем один "щелчок". В некоторых странах этот стандарт другой. Рассмотрим для примера следующую таблицу :
В таблице для каждого стандарта указано количество "щелчков", которое необходимо сделать, чтобы АТС распознала правильно набранную цифру. Для России используется 0 стандарт. 2 байт - определяется значение команды &P0 (см. АТ команды) 3 байт - определяется значение команды &P1 (см. АТ - команды) 4 байт - определяется значение команды &P2 (см. АТ - команды) 5 байт - определяется значение команды &P3 (см. АТ - команды) 6 байт - время в миллисекундах, которое будет прибавляться/вычитаться к общему времени закрытия реле при наборе номера. 7 байт - время в миллисекундах, которое будет прибавляться/вычитаться к общему времени открытия реле при наборе номера. 8 байт - время в миллисекундах, устанавливающее DAA в режим GPIO_ModemOffHook_PulseSetup (описание всех GPIO сигналов, находится в разделе RELAYS) 9 байт - время в миллисекундах, устанавливающее DAA в режим GPIO_ModemOffHook_PulseClear 10,11 байт - шестнадцатеричное число, указывающее время после набора одной цифры и началом набора другой. 11,12 байт - шестнадцатеричное число, указывающее время установки реле в режим OFFHOOK_PULSESETUP ((см. техническую документацию по GPIO). 6.8 RELAY (РЕЛЕ) - ключ указывает параметры, которые используются для управления чипом при различных режимах работы с дополнительными устройствами (реле, аудиочасть). Значения определяются в зависимости от модификации модема. Все команды двухбайтовые, записываются в шестнадцатеричном виде.
6.9 RING - значения, определяющие параметры входного сигнала "вызов станции". Параметры задаются побайтно, в шестнадцатеричной системе исчисления.
6.10 SPEEDADJUST - Раздел, содержащий 3 байта, которые указывают модему, как себя "вести" на конкретной линии. 1 байт отвечает за соединение по протоколу V.90, второй - по протоколу k56, третий - v34. В разных версиях драйверов возможна разная реализация этого параметра. Это безразмерный коэффициент, определяющий поведение модема. Значение высчитывается по формуле Чтобы понять, как заносить это значение в реестр, разложим обычное число побитно: 76543210. Первые 4 бита (3210) обозначают число M, последние 4 бита (7654) обозначают степень S. Например, число 100 в десятичной системе исчисления, можно разложить побитно: 110 0100. Очевидно, что M=0100 , S=110, переведем эти числа в десятичный вариант и подставим в формулу: . Нетрудно заметить, что минимальное значение - 00011111(h1F), максимальное - 11110000(hF0). Значение этого параметра можно определить исключительно практическим путем, в зависимости от линии. Conexant относит этот параметр к разряду ненормируемых и рекомендует выбирать значения самим, методом проб и ошибок. На практике это может выглядеть так: Выставляем blers=f0 xx xx и соединяемся по протоколу V.90, со скоростью на прием 44000; выставляем blers=64 и скорость падает до 40000; ставим blers=1f и модем вообще будет соединятся по протоколу V.34. Из многолетней практики удалось вывести лишь такое определение этому параметру: чем меньше значение, тем модем увереннее держится на плохих линиях и оптимальнее выбирает режимы работы. 6.11 SREG - Ограничения s-register для данной страны. В некоторых странах имеются специфические особенности при работе с телефонными линиями. Поэтому некоторые значения S-регистров не подходят. Данный раздел указывает, какие s-регистры следует изменить в зависимости от используемой страны. Значения задаются побайтно и группами. Группа состоит из 4 байт: 1-й байт - номер s-регистра 2-й байт - минимальное значение этого s-регистра 3-й байт - максимальное значение этого s-регистра 4-й байт - установленное по умолчанию значение этого s-регистра Допускается использовать до 10 групп. 6.12 T35code - внутренний код страны. Т.е., в этом значении указывается, что вся вкладка 0000(0001 и т.д.) имеет внутренний номер, который используется выбора страны в ключе Country-Current. 6.13 TIMING - значения задаются побайтно, в шестнадцатиричной системе исчисления. Единицы измерения - миллисекунды.
6.14 TONEPARAMS (только для модемов HSF) - данный ключ содержит информацию о параметрах сигнального фильтра, который используется для распознавания сигналов. Значения задаются побайтно, в шестнадцатиричном виде:
6.15 Txlevel - уровень выходного сигнала для различных режимов работы модема. Задается в байтах, в шестнадцатиричной системе исчисления.
В случае использования некоторых протоколов, например V.90, уровень сигнала будет выставляться удаленным оборудованием при помощи процедуры Power Drop. Если сигнал слишком громкий, на некоторых версиях драйверов имеется возможность уйти от некорректной обработки запросов на выполнение Power Drop путем задания значения 1, 2, 3 байтов ниже -15Дб. 7. DSPINFO\FILTERS - недокументированный раздел. 8. EnableCallerID - раздел, содержащий описание команды для включения режима CallerID. 9.Fax\ Class1\ AdaptiveAnswer\ AnswerCommand - описание команд, которые должен выполнить модем для принятия\отправки факса. 10. GenerateDigit - Описание команды, служащей для формирования тонового сигнала. 11.HandsetSetPlayFormat - Этот раздел указывает, какую команду модема использовать при включении сжатия в голосовом режиме работы при воспроизведении звука через модем с помощью дополнительного гнезда. 12.HandsetSetRecordFormat - Этот раздел указывает, какую команду модема использовать при включении сжатия в голосовом режиме работы при записи звука через модем с помощью дополнительного гнезда. 13.HangUp - Описание команды, которая будет выполняться по запросу "положить трубку". 14.Init - описание строки инициализации. Если команд несколько, и они не могут быть записаны в одну строку, создаются несколько подключей, с порядковыми номерами. Первая строка должна иметь 1 номер. Например: 1 REG_SZ AT 2 REG_SZ AT&F 15.LineSetPlayFormat - Этот раздел содержит команду, указывающую метод компрессии при воспроизведении звука в голосовом режиме работы через модем, с помощью главного телефонного гнезда. 16.LineSetRecordFormat - Этот раздел содержит команду, указывающую метод компрессии при записи звука в голосовом режиме работы через модем, с помощью главного телефонного гнезда. 17.Monitor - Описание команды, которая устанавливает параметры мониторинга линии. Обычно это ATS0=0. Модем регистрирует звонки, но не отвечает на них. 18.OEM - Раздел, содержащий описание основных настроек модема для работы в режиме передачи данных. Часть настроек имеет прямую связь с AT-командами, поэтому описание смотрите в соответствующем документе. Ключи:
Далее в той же последовательности, но для разных сигналов:
18.7 DAAType - Тип DAA: 0 - стандартый, 1 - Smart, 2 - программный DAA - параметр, который указывает драйверу модема, какая аналоговая схема установлена в модеме. 0 - стандартный набор - аналоговая часть и трансформаторная развязка. 1 - smart - перед трансформатором схема содержит набор специальных микросхем, которые позволяют расширить возможности модема. Например, более точное управление уровнями выходного и входного сигнала. 2 - программный - применяется в том случае, если не используется питание телефонной сети - например нуль-модемное соединение. Продолжение на iXBT. |
|
2000-2008 г. Все авторские права соблюдены. |
|