Главная > Компьютеры > Коммуникации >
Настройка программных HCF/HSF модемов на чипах Conexant [1/3]

Настройка программных 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\{4D36E96D-E325-11CE-BFC1-08002BE10318}\xxxx\]

где xxxx - номер используемого модема *.

Если Вы используете операционную систему Windows2000, необходимо проделать следующие операции:

  1. Создать удаленное соединение с интернетом, можете даже не указывать номер телефона;
  2. Позвонить с помощью удаленного соединения.

Компьютер откроет порт и будет пытаться набрать номер. Можете разорвать связь. Все вышеуказанные операции необходимы для того, чтобы в разделе

[HKEY _ LOCAL _ MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96D-E325-11CE-BFC1-08002BE10318}\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. AbortPlay <h10><h03> - Прерывает передачу данных;
  2. AttachedTo- указывает, какой номер com-порта эмулировать;
  3. BondOption: Режимы, поддерживаемые модемом. В этом разделе хранится два байта, которые раскладывается раздельно по битам. Если бит равен 1 - это означает включенное состояние того режима, за который он отвечает; 0 - выключенное состояние. Первый байт содержит 8-15 биты, второй байт 0-7 биты.

Значения каждого байта приведены в следующей таблице:

Bit Enables
0 Включает протокол V.34
1 Модем поддерживает Full duplex V34, VFC, V32, V22
2 28Mhz/22Mhz
3 V.34Fax
4 Voice - режим указывает, что модем обладает голосовыми возможностями
5 SpeakerPhone - чип, установленный на модеме, поддерживает работу внешних звуковых устройств
6 V.FC - разрешить использование протокола V.FC. Протокол V.FC включается автоматически, если оба модема поддерживают данный режим работы
7 Разрешить использовать K56flex
8-15 Для модема hsf , ввести первые три бита равные 1 (h07), для включения v92, v44 и TX speed =48000 - недокументированный параметр. Применяется в драйверах, выпущенных в 2000 и 2001 году

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 байт. Мы свели их в своеобразную таблицу:

N байтов Описание
1 Количество фаз, из которых состоит один период сигнала
Описание сигнала "Dialtone" - сигнал станции, для России не применимо
2,3,4,5 Minimum ON time (ms); (1 фаза)
6,7,8,9 Maximum ON time (ms);(1 фаза)
10,11,12,13 Minimum OFF time (ms);(1 фаза)
14,15,16,17 Maximum OFF time (ms);(1 фаза)
18,19,20,21 Minimum ON time (ms); (2фаза)
22,23,24,25 Maximum ON time (ms);(2фаза)
26,27,28,29 Minimum OFF time (ms);(2фаза)
30,31,32,33 Maximum OFF time (ms);(2фаза)
34,35,36,37 Number of cycles needed for detection - количество циклов, необходимых для детектирования сигнала
Описание сигнала "BUSY" - сигнал "занято"
38,39,40,41 Minimum ON time (ms); (1 фаза)
42,43,44,45 Maximum ON time (ms);(1 фаза)
46,47,48,49 Minimum OFF time (ms);(1 фаза)
50,51,52,53 Maximum OFF time (ms);(1 фаза)
54,55,56,57 Minimum ON time (ms); (2фаза)
58,59,60,61 Maximum ON time (ms);(2фаза)
62,63,64,65 Minimum OFF time (ms);(2фаза)
66,67,68,69 Maximum OFF time (ms);(2фаза)
70,71,72,73 Number of cycles needed for detection - количество циклов, необходимых для детектирования сигнала
Описание сигнала "RINGBACK" - сигнал "ответ модема"
74,75,76,77 Minimum ON time (ms); (1 фаза)
78,79,80,81 Maximum ON time (ms);(1 фаза)
82,83,84,85 Minimum OFF time (ms);(1 фаза)
86,87,88,89 Maximum OFF time (ms);(1 фаза)
90,91,92,93 Minimum ON time (ms); (2фаза)
94,95,96,97 Maximum ON time (ms);(2фаза)
98,99,100,101 Minimum OFF time (ms);(2фаза)
102,103,104,105 Maximum OFF time (ms);(2фаза)
106,107,108,109 Number of cycles needed for detection - количество циклов, необходимых для детектирования сигнала
Описание сигнала "Congestion" - сигнал "станция загружена". Этот сигнал появляется, когда АТС загружена и не может предоставить абоненту линию
110,111,112,113 Minimum ON time (ms); (1 фаза)
114,115,116,117 Maximum ON time (ms);(1 фаза)
118,119,120,121 Minimum OFF time (ms);(1 фаза)
122,123,124,125 Maximum OFF time (ms);(1 фаза)
126,127,128,129 Minimum ON time (ms); (2фаза)
130,131,132,133 Maximum ON time (ms);(2фаза)
134,135,136,137 Minimum OFF time (ms);(2фаза)
138,139,140,141 Maximum OFF time (ms);(2фаза)
142,143,144,145 Number of cycles needed for detection - количество циклов, необходимых для детектирования сигнала

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 - ключ, содержащий информацию о параметре сигнала "ответ станции", применяемых в данной стране. Используется также при работе с локальными АТС.

Все параметры задаются побайтно:

N байта Значение
1,2 Указывается время определения сигнала DialTone
3,4 Указывается время определения сигнала DialTone после паузы, например после команды W
5,6 Недокументированы
7,8 Указывается время определения сигнала DialTone перед слепым набором

Параметры сигнала DialTone, указываются в ключе - CADENCE.

6.6 FLAGS - ключ содержит четыре байта, в шестнадцатеричной системе исчисления. Каждый байт раскладывается побитно.

Байт Бит Значение бита

1

0 Использовать дополнительный фильтр вместо основного для определения сигнала "ответ АТС". Задается в ключе TONEPARAMS
1 Использовать дополнительный фильтр вместо основного для определения call progress. Задается в ключе TONEPARAMS
2 Использовать дополнительный фильтр вместо основного для определения сигнала "второй ответ АТС". Задается в ключе TONEPARAMS. Это нужно, например, если вы выходите на дополнительную линию с помощью промежуточных АТС. Иногда, позывные разных станций отличаются
3 Использовать дополнительный фильтр вместо основного для определения сигнала "второй ответ АТС" после набора кода выхода на линию. Задается в ключе TONEPARAMS
4..7 Недокументированы

2

0 Определять сигнал "ответ АТС" принудительно. Все команды включающие "слепой" набор игнорируются
1 Включить режим посылки сигнала "передача данных" принудительно
2 Включить подачу 1800 Гц защитного тона в линию. Все о тключающие данный режим команды - игнорируются
3 Включить определение сигнала "Занято". Все отключающие данный режим команды - игнорируются
4 Использовать значение s-регистра S7 как длительность паузы, для команды W
5 Повесить трубку, если обнаружен сигнал "Ожидание звонка", применяется в SmartDAA технологии
6..7 Недокументированы
3 0 Запретить команду АТH1
1 Запретить смешанный (пульсовый и тоновый одновременно) набор номера
2 Включить пульсовый набор
3 Включить в тоновый набор символы А,B,C и т.д
4 Включить использование черного списка. Для России не используется
5 Разрешить определять "длинный гудок", как сигнал "занято". Интересный параметр, может помочь в тяжелых случаях для определения сигнала "занято". Введен для того, что бы модем не принимал короткие сигналы удаленного аппарата за "сигнал АТС - линия занята"
6 Использовать режим U-Law, вместо А-Law. В России используется стандарт А-Law
7 Выключить Bell режимы
4 0 Игнорировать все запятые до первой цифры в набираемом номере
1 Разрешить использование ключа DTMF_COMP_LEVEL
2..7 Недокументированы

Прим.: Разрешает параметр бит установленный в 1, отменяет бит установленный в 0.

6.7 PULSE - ключ содержит параметры, определяющие пульсовый набор номера.

1 байт - выбор стандарта для пульсового набора. Чтобы понять значение этого параметра, необходимо вспомнить, что Вы слышите, когда набираете номер с помощью пульсового набора. В этот момент, в зависимости от набираемой цифры, количество "щелчков" разное - т.е. вы набрали "1" - слышите затем один "щелчок". В некоторых странах этот стандарт другой. Рассмотрим для примера следующую таблицу :

Набираемая
цифра
Пульсовый стандарт
  0 1 2
1 1 9 2
2 2 8 3
3 3 7 4
4 4 6 5
5 5 5 6
6 6 4 7
7 7 3 8
8 8 2 9
9 9 1 10
0 10 10 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 (РЕЛЕ) - ключ указывает параметры, которые используются для управления чипом при различных режимах работы с дополнительными устройствами (реле, аудиочасть). Значения определяются в зависимости от модификации модема.

Все команды двухбайтовые, записываются в шестнадцатеричном виде.

N байта Описание
1,2 Значение раскладывается побитно и определяет, какие из GPIO сигналов доступны, а какие нет. Применяется для совместимости драйвера с различными типами модемов и чипов. Нумерация - самый младший бит - начальный GPIO
3,4 Значение раскладывается побитно и определяет, какие из GPIO сигналов разрешают контроль состояния входного сигнала линии
5,6 Значение раскладывается побитно и определяет, какие из GPIO сигналов переводят модем в состояние : "трубка снята, дополнительное гнездо используется для подключения телефона"
7,8 Значение раскладывается побитно и определяет, какие из GPIO сигналов переводят модем в состояние : "трубка снята, дополнительное гнездо отключено"
9,10 Значение раскладывается побитно и определяет, какие из GPIO сигналов переводят модем в состояние : "трубка положена, дополнительное гнездо используется для подключения телефона, контроль сигнала CID включен"
11,12 Значение раскладывается побитно и определяет, какие из GPIO сигналов переводят модем в состояние : "трубка положена, дополнительное гнездо используется для подключения телефона, контроль сигнала CID отключен"
13,14 Значение раскладывается побитно и определяет, какие из GPIO сигналов переводят модем в состояние : "трубка положена, дополнительное гнездо отключено, контроль сигнала CID включен"
15,16 Значение раскладывается побитно и определяет, какие из GPIO сигналов переводят модем в состояние : "трубка положена, дополнительное гнездо отключено, контроль сигнала CID выключен"
17,18 Значение раскладывается побитно и определяет, какие из GPIO сигналов переводят модем в состояние : "трубка снята, начинает подаваться пульсовый импульс"
19,20 Значение раскладывается побитно и определяет, какие из GPIO сигналов переводят модем в состояние : "трубка снята, заканчивает подаваться пульсовый импульс "
21,22 Значение раскладывается побитно и определяет, какие из GPIO сигналов переводят модем в состояние : "трубка снята, определяется значение следующего пульсового импульса"
23,24 Значение раскладывается побитно и определяет, какие из GPIO сигналов переводят модем в состояние : "трубка снята, сбрасывается значение предыдущего пульсового импульса"


Страница 1 2 3 | Предыдущая | Следующая


Украинская Баннерная Сеть

Главная  Алфавитный индекс  Справка  Добавить FAQ  E-mail
Новости  Поиск по сайту

© УкрFAQ 2009
Сайт создан в системе uCoz