Последовательный аудиоинтерфейс (sai)
Общая характеристика
DSP осуществляет объединение источников и приемников данных через последовательный аудиоинтерфейс (Serial Audio Interface -SAI). SAI является синхронным и специально предназначен для передачи аудиоданных. Он обеспечивает взаимодействие полнодуплексного последовательного порта с различными аудиоустройствами, в том числе такими как АЦП, ЦАП, устройствами компакт-дисков и т. д. SAI реализует широкий диапазон форматов последовательных данных, используемых в настоящее время в аудио-промышленности:
• формат I2S (Philips);
• формат CDP (Sony);
• формат МЕС (Matsushita);
• промышленные А/Ц- и Ц/А-стандарты.
SAI состоит из независимых секций приемника, передатчика и разделяемого (совместно используемого) генератора скорости передачи данных. Каждая из секций приемника и передатчика может работать в режиме ведомого или ведущего. В режиме ведущего в соответствии с программой работы генератора скорости передачи данных производится внутреннее управление последовательным тактовым сигналом и выбором линий данных. В режиме ведомого от внешнего источника передаются три вида сигналов. Передатчик состоит из трех регистров передаваемых данных, трех полностью синхронизируемых регистров сдвига на выходе и трех линий выхода последовательных данных, управляемых одним контроллером передатчика. Это обеспечивает возможность осуществления одновременной передачи для одного, двух или трех стерео-, аудиоустройств. Приемник состоит из двух регистров принимаемых данных, двух полностью синхронизируемых регистров сдвига на входе и двух линий входа последовательных данных, управляемых одним контроллером приемника. Это обеспечивает одновременный прием из одного или двух аудиоустройств.
Основные признаки SAI:
• программируемый генератор последовательного тактового сигнала с высоким
разрешением, равным f sск= f osc/2i(для i> 1);
• максимальный уровень внешнего последовательного тактового сигнала равен 1/3
тактового сигнала ядра DSP;
• режимы ведущего и ведомого;
• три линии синхронизируемой передачи данных;
• две линии синхронизируемого приема данных;
• двойная буферизация;
• программная поддержка пользователей в различных аудиоформатах;
• три вектора прерываний приемника: прием с левого канала, прием с правого канала,
прием с исключительной ситуацией;
• три вектора прерываний передатчика: передача с левого канала, передача с правого
канала, передача с исключительной ситуацией.
Структурная организация SAI
Функционально SAI включает три блока:
1)генератор скорости передачи данных;
2)секцию приемника;
3)секцию передатчика.
Секции приемника и передатчика полностью независимы и могут работать как вместе, так и отдельно.
Генератор скорости передачи данных.
Генератор скорости передачи данных вырабатывает внутренний последовательный тактовый сигнал для SAI, если одна или обе секции (приемника и передатчика) сконфигурированы в режиме ведущего. Работа генератора запрещается, если эти секции сконфигурированы как ведомые.
Рис. 6.59 иллюстрирует соединения для внутреннего последовательного тактового сигнала. Тактовые сигналы приемника и передатчика могут быть как внешними, так и внутренними в зависимости от значений управляющих битов: ведущий - приемник (RMST); ведущий - передатчик (TMST).
Секция приемника.
Секция приемника содержит два приемника и состоит из
16-битного регистра управления/статуса, двух 24-битных сдвиговых регистров и двух
24-битных регистров данных. Приемники имеют один механизм управления, поэтому тактовый сигнал, линия выборки слова данных и все управляющие сигналы, сгенерированные в секции приемника, одновременно влияют на оба приемника. Секция приемника может быть сконфигурирована или в режим ведущего (при этом тактовый сигнал и линии выборки слова данных берутся от внутреннего генератора скорости передачи данных) или в режим ведомого (тогда эти сигналы поступают от внешнего источника).
Когда работа обоих приемников запрещена, контроллер приемника прекращает свою работу, биты статуса RDLF и RRDF в регистре управления/статуса приемника RCS сбрасываются, внешние выводы секции приемника переводятся в третье состояние.
Рис. 6.59. Структурная схема генератора скорости передачи данных SAI
Структурная схема секции приемника представлена на рис. 6.60.
24-битные сдвиговые регистры получают входные данные с выводов входа последовательных данных (SDIO, SDI1 или SDIx). Данные поступают в соответствии с тактовым сигналом последовательного приема SCKR.
Если RDIR сбрасывается, то должен быть получен первым старший байт слова MSB, в противном случае первым будет получен младший байт - LSB. Данные передаются в регистры данных приемника SAI после того, как поступили 16, 24 или 32 бита, как определено битами RWL1 и RWL0 управления длиной слова. Для эмуляции 32-битного сдвигового регистра, если длина слова определена как 32 бита, используется специальный механизм управления. Такой механизм работает за счет запрещения сдвига данных на восемь разрядов в начале/конце передачи данных в соответствии с содержимым бита RDWT в регистре RCS. Эти сдвиговые регистры не могут быть непосредственно доступны DSP.
Секция передатчика.
Структурная схема секции передатчика представлена на рис. 6.61. Секция передатчика содержит три передатчика и состоит из 16-битного регистра управления/статуса, трех 24-битных сдвиговых регистров и трех 24-битных регистров данных. Передатчики имеют один механизм управления, поэтому тактовый сигнал, линия выборки слова данных и все управляющие сигналы, сгенерированные в секции передатчика, одновременно влияют на все три передатчика.
Секция передатчика может быть сконфигурирована или в режим ведущего (при этом тактовый сигнал и линии выборки слова данных берутся от внутреннего генератора скорости передачи данных) или в режим ведомого (тогда эти сигналы поступают от внешнего источника). Каждый из трех передатчиков может работать независимо от остальных. Когда работа передатчика запрещена, связанный с ним вывод выхода последовательных данных (SDO) находится в состоянии высокого уровня. Когда работа всех передатчиков запрещена, контроллер приемника прекращает свою работу, биты статуса TRDE и TLDE сбрасываются, внешние выводы секции передатчика, WST -выбор слова, SCKT -тактовый сигнал последовательной передачи переводятся в третье состояние. Секция передатчика состоит из полностью синхронизированных трех регистров данных и трех сдвиговых регистров, способных работать одновременно. 24-битные сдвиговые регистры выдают данные с выводов выхода последовательных данных (SDO). Данные выдвигаются в соответствии с тактовым сигналом последовательной передачи SCKT. Если TDIR сбрасывается, то первым выдается старший байт слова MSB, в противном случае - младший байт LSB.
Число передаваемых данных -16, 24 или 32 бита, как определено битами управления длиной слова TWL1 и TWL0. Для эмуляции 32-битного сдвигового регистра, если длина слова определена как 32 бита, используется специальный механизм управления. Такой механизм работает за счет запрещения сдвига данных на восемь разрядов в начале/конце передачи данных в соответствии с содержимым бита TDWE в регистре TCS. Описанные сдвиговые регистры не могут быть непосредственно доступны DSP.
Программная модель SAI
Регистры последовательного аудиоинтерфейса, которые доступны программисту, показаны на рис. 6.62.
Расположение векторов прерываний для SAI показано в табл. 6.38. Прерывания генерируются в соответствии с заданными приоритетами, как показано в табл. 6.39.
Векторы прерываний SAI могут быть размещены в одной или двух различных областях памяти. Расположение вектора прерывания передатчика контролируется с помощью бита TXIL в регистре управления/статуса передатчика (TCS). Аналогично этому расположение вектора прерывания передатчика контролируется с помощью бита RXIL в регистре управления/статуса приемника (RCS).