Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Глава 12. Аудиосистема ПК. Кольцевой буфер RIRB (Response Input Ring Buffer) содержит 32-битные слова ответов у приходящих в



Кольцевой буфер RIRB (Response Input Ring Buffer) содержит 32-битные слова ответов у приходящих в каждом кадре от кодеков, дополняемые 32-битным сло­вом расширения, генерируемым контроллером. Ответы могут быть ожидаемы­ми (solicit) ответами на команды и неожиданными (unsolicit); последние иден­тифицируются тегами, размещенными в старших 6 битах ответа и признаком в слове расширения. В слове расширения указывается 4-битный номер кодека, приславшего ответ, и признак неожиданного ответа. Размер буфера может со­ставлять 2, 16 или 256 элементов. Указатели позиций CIRB WP и CIRB RP аналогич­ны вышеописанным, но по назначению им «зеркальны» (драйвер считывает от­вет по RP).

Структура формата потока описывает тип потока (РСМ или нет), для РСМ-потока задаются частота выборок, разрядность и число каналов. Частота выбо­рок определяется через базовую частоту (48 или 44,1 кГц), ее множитель (1-4) и делитель (1-8).

Данные потока размещаются в памяти определенным образом. Каждый отсчет в памяти упаковывается в контейнер длиной 8, 16 или 32 бита в зависимости от требуемой разрядности. Отсчет «прижимается» к левому краю (старшим би­там) контейнера, неиспользуемые биты заполняются нулями. Так, 24-битный отсчет размещается в 32-битном контейнере, и его младшие 8 битов становятся нулевыми. По интерфейсу заполнители не передаются. Отсчеты одного блока (одновременные выборки всех каналов) размещаются в смежных контейнерах. Если частота выборок потока превышает 48 кГц, то пакет, который передается в кадре, будет содержать более одного блока. Пакеты располагаются в буферах длиной, кратной 128 байтам; в каждом буфере должен размещаться хотя бы один полный пакет.

Интерфейс контроллера позволяет управлять потоками: запускать, приоста­навливать, возобновлять, останавливать и синхронизировать. В системе может быть установлено несколько контроллеров, и их потоки могут быть взаимно синхронизированы (программно, используя значения их счетчиков тактов). Потоки одного контроллера могут быть синхронизированы по запуску и оста­нову. Прерывания от HDA генерируются по событиям контроллера и потоков.

Приведенное описание программного интерфейса HDA очень сильно напоми­нает изохронную часть контроллера OHCI для шины FireWire, что и неудиви­тельно, поскольку они решают одни и те же задачи. Радует, что идеологически правильный подход к организации потокового взаимодействия становится фак­тическим стандартом в платформе PC.

Интерфейс HDA Link состоит из следующих сигналов:

♦ BCLK — сигнал глобальной тактовой синхронизации частотой 24 МГц (выра­
батывается контроллером, принимается всеми кодеками);

♦ SYNC — сигнал синхронизации кадров (48 кГц), с помощью которого переда­
ются и теги выходных потоков (синхронизация и по фронту, и по спаду
BCLK);

♦ SDO — шина данных, широковещательно передаваемых от контроллера к ко­
декам (синхронизация и по фронту, и по спаду BCLK);


Звуковые карты PC



♦ SDI — последовательные линии данных, передаваемых кодеками (двухточеч­
ные соединения);

♦ RST# — сигнал сброса.

По составу сигналов интерфейс HDA Link аналогичен AC-Link, но сигналы на­зываются короче и используются иначе. Для масштабирования пропускной способности шина SDO может иметь разрядность 1, 2 или 4 бита. На широкой (более 1 бита) шине управляющая информация, передаваемая в начале каждого кадра, направляется по всем линиям шины (копируется). Данные распределя­ются по линиям (striping). Для повышения пропускной способности кодек мо­жет использовать более одной линии SDI, при этом с точки зрения интерфейса они независимы.

Организацию обмена на интерфейсе HDA Link иллюстрирует рис. 12.10. Нача­ло кадра отмечается сигналом SYNC длительностью 4 такта. С момента его спада начинается передача пакета потока команд (command) и прием потока ответов (response). Передача пакета каждого выходного потока отмечается тегом, кото­рый передается по линии SYNC в конце передачи предыдущего пакета. В теге со­держится 4-битный идентификатор потока, перед которым передается преамбу­ла (1110). Такая конструкция позволяет отличить передачу тега от передачи метки начала кадра.


BCLK

Предыдущий кадр


I Следующий кадр


Рис. 12.10. Интерфейс HDALink

Для входных потоков пакеты маркируются иначе. Тег пакета, содержащий 4-бит­ный идентификатор пакета и 6-битное поле длины данных, передается по ли­нии SDI перед самим телом пакета. В конце пакета входного потока могут при­сутствовать 4 бита-заполнителя (нули).

Спецификация HDA определяет модульную архитектуру кодеков и информа­ционные структуры, позволяющие программно выяснять возможности кодеков и управлять их конфигурацией и работой. Кодек состоит из параметризован­ных модулей и их наборов, выполняющих определенную функцию. Каждый подключенный кодек получает свой адрес (CAd). Каждый модуль, а также набор представляет собой узел (node), уникально адресуемый своим идентификато­ром N1 (Node Id) в пределах кодека. Узел имеет набор параметров (которые можно только читать) и команд (с помощью которых модуль подключается, конфигурируется и управляется). Корневой узел (root node) обеспечивает ссыл-


 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.