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


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

Глава 12. Аудиосистема ПК. кодек может содержать и передатчик S/PDIF, который б каналов РСМ кодиру­ет в единый поток



кодек может содержать и передатчик S/PDIF, который б каналов РСМ кодиру­ет в единый поток АС-3 для систем 5.1. Передатчик S/PDIF может использо­ваться и для вывода пары каналов в формате РСМ.

Многоканальный звук — High Definition Audio

На смену АС'97 в 2004 году фирма Intel выпустила спецификацию High Defi­nition Audio (сократим ее название до HDA). Ее основная цель — создать ин­фраструктуру и определить архитектуру аудиоподсистемы, обеспечивающей многоканальные цифровые потоки между кодеками и памятью. В специфика­ции описан и аудиокодек с более богатыми (по сравнению с АС'97) возможно­стями. Аудиопотоки позволяют использовать HDA и для подключения кодеков голосовых модемов. Совместимость HDA с АС'97 не предусматривается, хотя общая архитектурная идея та же и даже микросхемы аудиокодеков совпадают по назначению многих выводов.

По сравнению с АС'97 в HDA увеличилась пропускная способность интерфей­са и повысилась эффективность его использования за счет отказа от деления кадра на фиксированные 20-битные слоты. Система HDA поддерживает одно­временную работу 15 входных и 15 выходных потоков, при этом каждый поток может нести цифровую информацию до 16 каналов. Поддерживаемые частоты выборок — 6-192 кГц, разрядность отсчетов — 8, 16, 20, 24 и 32 бит.

Как и в АС'97, система HDA начинается с контроллера — устройства PCI, обес­печивающего передачу потоков данных между системной памятью и кодеками через интерфейс HDA Link. Контроллер HDA, оставаясь (логически) устрой­ством PCI, может включаться в чипсет или подключаться к какой-либо шине семейства PCI. Кодеков может подключаться несколько — например, аудиоко­дек, модемный кодек и дополнительный аудиокодек в док-станции мобильного ПК. Интерфейс с контроллером обеспечивается через его регистры, отображен­ные на пространство памяти, и структуры данных в памяти.

Поток (stream) представляет собой логическое (виртуальное) соединение меж­ду буферами в ОЗУ и кодеком, организуемое отдельным каналом DMA. Поток состоит из одного или нескольких каналов данных, каждый канал связан со сво­им преобразователем (ЦАП, АЦП или конвертором интерфейсов) в кодеке. На­пример, стереопоток содержит данные левого и правого каналов. Данные кана­лов потока в памяти расположены рядом и по интерфейсу HDA Link передаются совместно. Выходной поток (outbound stream) распространяется по интерфей­су широковещательно, он может приниматься несколькими кодеками. Каж­дый входной поток (inbound stream) может приниматься только от одного ко­дека.

По каждой входной и выходной сигнальной линии интерфейса передается по­следовательность кадров, частота кадров фиксирована — 48 кГц. Кадр начина­ется с поля команды/ответа, за которым передаются пакеты, содержащие бло­ки данных потоков. Каждый пакет начинается с тега потока (stream tag), идентифицирующего поток и указывающего число блоков в пакете, за тегом следуют блоки отсчетов. Блок содержит отсчеты (выборки) всех каналов, од-


Звуковые карты PC____________________________________________ 721

новременно поступающие на ЦАП (или от АЦП). Остаток (если ееть) времени в кадре заполняется нулями. Для потоков с частотой выборки 48 кГц в каждом кадре присутствует по одному блоку данных с комплектом выборок его кана­лов. Если частота выборок выше или ниже, то число блоков данного потока в кадре оказывается иным (возможно, и переменным от кадра к кадру).

Тактовая частота интерфейса — 24 МГц. В выходном потоке информация пере­дается с двойной синхронизацией. Таким образом, в каждом кадре передается 1000 бит (62,5 16-битных слов), из них 40 бит выделяется для нужд управле­ния, для канальных данных остается 60 слов. Во входном потоке имеет место одиночная синхронизация, в кадре умещается 500 бит (31,25 слов). Из них 36 бит используется для приема ответов, для пакетов данных остается 29 слов.

С каждым потоком связывается канал DMA, обеспечивающий изохронную пе­редачу данных. Передача описывается списком дескрипторов буферов, задаю­щих положение и длину фрагментов потока в физических адресах ОЗУ. Для каждого канала в контроллере имеются регистр-указатель на начало списка и регистр, указывающий на последний действительный дескриптор. Канал DMA должен иметь буферы на 1-2 кадра, предохраняющие контроллер от перепол­нения (переопустошения) в случае загруженности шины.

После сброса интерфейс HDA Link обеспечивает обнаружение подключенных кодеков. По окончании загрузки соответствующих им драйверов определяются возможности и свойства кодеков. Далее драйвер определяет наличие и типы входных и выходных разъемов кодека. Кодек может определить, подключено ли устройство к данному разъему, а в ряде случаев и тип подключенного уст­ройства. В случае неправильного подключения кодек может исправить ошибку, перекоммутировав сигналы своих входов-выходов.

Взаимодействие драйвера с контроллером осуществляется через регистры и па­мять. В ОЗУ определяется адрес структуры DMA Position in Buffer, в которой контроллер регулярно сообщает текущую позицию (адрес исполняемого деск­риптора) для каждого потока. С каждым потоком связан набор структур в па­мяти, включая структуры BDL, CORB, RIRB и структуру формата потока.

Драйвер заполняет в памяти список дескрипторов буферов (Buffer Descriptor List, BDL), состоящий из 2-256 элементов. Каждый дескриптор описывает на­чальный адрес и длину фрагмента в памяти, а также содержит бит ЮС, указы­вающий на необходимость генерации запроса прерывания при выборке данного дескриптора.

Кольцевой буфер CORB (Command Output Ring Buffer) содержит команды, по­сылаемые контроллером в выходной поток в начале каждого кадра. Размер бу­фера может составлять 2, 16 или 256 элементов. Каждый элемент этого буфера содержит 4-битный адрес кодека, 8-битную команду (verb) и 20 бит данных для этой команды. Контроллер аппаратно оперирует парой указателей: CORB WP и CORB RP; по указателю CORB WP (Write Pointer) драйвер добавляет новые коман­ды в буфер (и соответствующим образом модифицирует WP), а по указателю CORB RP (Read Pointer) контроллер задает позицию текущей считанной команды.


 




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

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