ки на узлы функциональных групп, содержащихся в кодеке. Функциональная группа (function group) — это узел, представляющий собой объединение модулей (каждый из которых адресуем), совместно выполняющих одну прикладную задачу и управляемых одним драйвером. Примеры функциональных групп — AFG (аудиогруппа) и MFG (модемная группа). Узел функциональной группы имеет общее описание ее возможностей; в его описании содержатся начальный номер и число модулей, входящих в группу.
Модули, выполняющие определенные функции, называются widget Каждый модуль кодека может входить только в одну функциональную группу. В функциональной группе может быть множество однотипных модулей, что позволяет выполнять одновременно операции с несколькими каналами. Каждый модуль имеет параметр конфигурации, который определяет его режим: стерео (два канала) или моно. В описании модуля фигурирует список соединений (connection list), в нем перечисляются идентификаторы модулей, выходы которых могут быть поданы на вход данного модуля. Командами управления модули соединяются друг с другом.
В AFG определены следующие типы модулей:
♦ Выходной преобразователь (audio output converter) — ЦАП или устройство, формирующее цифровой поток на интерфейс S/PDIF. На вход модуля по ступает поток от интерфейса HDA Link, выход доступен в качестве входного сигнала для других модулей кодека (входит в списки их соединений). Может дополнительно содержать модуль усилителя и процессорный модуль.
♦ Входной преобразователь (audio input converter) — АЦП или устройство, извлекающее цифровой поток из S/PDIF. Его выход передает поток через интерфейс HDA Link, вход подключается к модулю, выбранному в его спи ске соединений. Дополнительно может содержать модуль усилителя и про цессорный модуль.
♦ Внешний вывод (pin widget), обеспечивающий внешнее соединение, аналого вое или цифровое. Вывод может быть входным, выходным или универсаль ным (переключаемым) и содержать дополнительный входной/выходной уси литель. Вывод может обеспечивать обнаружение факта подключения устрой ства, определение его импеданса и поддерживать подачу напряжения смеще ния для микрофонного входа (Vref). Для работы на выход источник сигнала определяется выбором в списке подключения данного модуля. При работе в качестве входа возможность соединения вывода с другими модулями опре деляется их списками.
♦ Микшер (mixer) — сумматор сигналов от нескольких своих входов, с каждым входом связан список соединений. В каждом входе (и после сумматора) мо жет присутствовать усилитель.
♦ Селектор входов (input selector) — мультиплексор, позволяющий по команде выбирать один из нескольких сигналов (выходов других модулей) в качест ве входа. Модуль может дополнительно содержать процессор и усилитель.
♦ Ручка уровня (volume knob) — модуль, позволяющий по внешнему сигналу управлять усилением в других (ведомых им) модулях. Программно по изме-
Звуковые карты PC____________________________________________ 725
нению положения ручки можно задать либо прямое управление усилением подчиненных модулей, либо генерацию не ожидаемых ответов (unsolicit response), которые должны анализироваться драйвером и отрабатываться соответствующими командами.
♦ Генератор тона (beep generator) обеспечивает подачу приблизительно сину соидального сигнала заданной частоты на все выводы, работающие в качест ве выходных. Во время активной работы генератора его сигнал либо смеши вается с выводимым потоком, либо временно заменяет его. Генератор тона не указывается в списках соединений. Во время подачи сигнала сброса ин терфейса (RST#) аналогичную функцию может выполнять сигнал от входа «PC Speaker».
♦ Модуль управления мощностью (power widget) позволяет управлять энерго потреблением (состоянием) кодека.
В спецификации приводится назначение контактов аудиокодека — микросхемы в 48-выводном корпусе. Помимо сигналов интерфейса HDA Link (по одной линии SDI и SDO) и цепей питания, в «настольном» варианте кодека определены следующие сигналы:
♦ 8 стереопортов (сигналы PORT-A_L, PORT-A_R, ..., PORT-HJ., PORT-H_R) - мо гут быть как входами, так и выходами. Выводы, используемые для портов G...H, становятся выводами смещения, если порты А, В, С, D используются как микрофонные входы.
♦ Цифровой интерфейс (вход и выход) SPDIF-IN, SPDIF-OUT.
♦ Вход РСВЕЕР (от выхода PC Speaker).
♦ Выходы смещения микрофонных входов (VrefOut-A,..., VrefOut-H) — управля ются программно. Могут быть заземлены, находиться в высокоимпедансном состоянии либо получать 50, 80 или 100 % питающего напряжения.
♦ Входы SENSE_A, SENSE_B — позволяют определять подключение разъемов с помощью кнопок, замыкаемых в гнездах при вставленных «джеках».
Входы SENSE_x дают возможность отслеживать подключение-отключение шнуров (точнее, вилок) за счет функции jack sense\ которой обладают многие современные звуковые карты (не только с HDA). На гнездах установлены кнопки, которые при вставленной вилке заземляют цепь через резистор; сопротивление резистора кодирует номер порта данного гнезда (рис. 12.11). При изменении состояния подключения кодек посылает сообщение, которое обрабатывается драйвером. Пользователю выводится вопрос о том, что он подключил к данному порту (и на картинке показывают, куда). Если возможности кодека позволяют сконфигурировать данный порт на требуемую функцию, посылаются необходимые конфигурационные команды. В противном случае пользователю показывают, куда это устройство следует подключить.
Конкретные модели кодеков могут использовать не все сигнальные выводы. Параметры кодеков, устанавливаемых в системных платах с интегрированным звуком, как правило, не являются выдающимися среди своих «родственников» — специализированных звуковых карт.