Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
глава 6 готово.doc
Скачиваний:
10
Добавлен:
15.09.2019
Размер:
3.38 Mб
Скачать

6.2.7. Последовательный аудиоинтерфейс (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).

Регистр управления скоростью передачи (BRC).

Частота тактового сигнала последовательной передачи данных определяется управляющими битами в регистре управления скоростью передачи (BRC. Содержимое этого регистра показано на рис. 6.62. Максимально допустимая частота внутренне сгенерированного сигнала равна fosc/4, максимально допустимая частота внешне сгенерированного сигнала - f0S(J3- Биты BRC следует модифицировать только тогда, когда работа генератора скорости передачи данных запрещена (т. е. когда секции приемника и передатчика данных определены как ведомые или когда они находятся в своих состояниях сброса).

Когда с помощью DSP осуществляется чтение, содержимое этого регистра появляется в двух младших байтах 24-битного слова, остальные биты читаются как нули. Содержимое регистра сбрасывается при аппаратном или программном сбросе.

Выбор величины модуля делителя при предварительном масштабировании (РМ[7:0]-биты 7-0). Биты РМ[7:0] определяют значение делителя в генераторе скорости передачи SAI. При этом может быть выбрано значение делителя от 1 до 256 (РМ[7:0] = $OO-$FE). Биты РМ[7:0] сбрасываются во время аппаратного или программного сброса.

Диапазон предварительного масштабирования (PRS - бит 8). Бит PRS управляет предварительным масштабированием деления на восемь, которое выполняется перед обработкой в блоке делителя. Этот бит используется для того, чтобы расширить диапазон предварительного масштабирования для тех случаев, когда желательно использование более медленного тактового сигнала. Когда этот бит устанавливается, то предварительное масштабирование пропускается. Когда бит сбрасывается, выполняется деление на восемь. Бит PRS сбрасывается во время аппаратного или программного сброса.

Резервные биты BRC (биты 15—9). Эти биты не используются и читаются как нули, записывать в них следует нули для обеспечения дальнейшей совместимости.

Регистр управления/статуса приемника (RCS).

Регистр RCS является 16-битным регистром управления/статуса, доступным для чтению и записи и используемым для управления при выполнении операции в секции приемника (рис. 6.62). Управляющие биты регистра определяют последовательный формат передачи данных, а биты статуса этого регистра используются программистом DSP для опроса статуса приемника. Также в регистре RCS находятся биты разрешения приема и прерываний. Когда DSP осуществляет чтение, содержимое этого регистра появляется в двух младших байтах 24-битного слова, остальные биты читаются как нули. Содержимое регистра сбрасывается во время аппаратного или программного сброса. Если оба бита R0EN и R1EN сбрасываются, то работа секции приемника запрещается и она переводится в состояние сброса. Такой индивидуальный сброс происходит в первом цикле команды после сброса указанных битов. Во время нахождения в состоянии останова или индивидуального сброса биты статуса регистра также сбрасываются. Останов или сброс не оказывают влияния на управляющие биты регистра RCS. Следует изменять содержимое управляющих битов регистра, пока секция приемника находится в состоянии сброса (или запрещения работы), иначе результаты операции будут неверны.

Бит разрешения работы приемника (ROEN - бит 0). Доступный для записи и для чтения управляющий бит разрешения работы приемника 0 разрешает выполнение операции приемника О SAI. Когда этот бит установлен, работа приемника 0 разрешена. И наоборот, когда этот бит сброшен, работа приемника запрещена. Если оба бита R0EN и R1EN сбрасываются, то работа секции приемника запрещается, что эквивалентно состоянию индивидуального сброса. Содержимое бита R0EN сбрасывается во время аппаратного или программного сбросов.

Бит разрешения работы приемника (R0EN - бит 1). Доступный для записи и для чтения управляющий бит разрешения работы приемника 1 разрешает выполнение операции приемника 1 SAI. Когда этот бит установлен, работа приемника 1 разрешена. И наоборот, когда этот бит сброшен, работа приемника запрещена. Если оба бита R0EN и R1EN сбрасываются, то работа секции приемника запрещается, что эквивалентно состоянию индивидуального сброса. Содержимое бита R1EN сбрасывается во время аппаратного или программного сбросов.

Резервные биты (RCS-биты 13 и 2). Эти биты не используются. Они читаются как нули; в эти биты также следует записывать нули для обеспечения дальнейшей совместимости.

Бит ведущего приемника (RMST- бит 3). Доступный для записи и для чтения управляющий бит ведущего приемника позволяет переключать работу секции приемника из режима ведущего в режим ведомого и наоборот. Когда этот бит установлен, секция приемника SAI устанавливается в режим ведущего. В режиме ведущего управление приемника происходит с помощью выводов SCKR и WSR. В режиме ведомого управление этими выводами осуществляется от внешнего источника. Содержимое бита RMST сбрасывается во время аппаратного или программного сброса.

Биты управления длиной слова приемника (RWL[1:0] - биты 4 и 5). Доступный для записи и чтения бит управления длиной слова используется для выбора длины слова, получаемой SAI. Длина слова данных определяется числом циклов тактового сигнала последовательной передачи между двумя краями сигнала выбора слова. Слово длиной 16, 24 или 32 бита может быть выбрано в соответствии с табл. 6.40. Регистры данных приемника всегда заполняются 24-битными данными, когда поступает новое слово данных. Если выбрана 16-битная длина слова, то полученное 16-битное слово данных будет размещено в 16 старших битах регистра данных приемника независимо от бита направления сдвига данных приемника (RDIR); восемь младших битов регистра данных приемника очищаются. Если выбрана 32-битная длина слова, то восемь бит отбрасываются в соответствии со значением управляющего бита округления слова данных приемника (RDWT). Биты RWL[1:0] также используются для генерации отображения выбранного слова, когда секция приемника сконфигурирована в режим ведущего (RMST = 1). Содержимое битов RWL[1:0] сбрасывается во время аппаратного или программного сброса.

Бит направления сдвига данных приемника (RDIR- бит 6). Доступный для записи и чтения бит RDIR позволяет выбрать направление сдвига. Когда бит сбрасывается, то данные вдвигаются со стороны старшего бита. Когда бит установлен, данные вдвигаются со стороны младшего бита (рис. 6.63). Содержимое бита сбрасывается во время аппаратного или программного сброса.

Бит выбора правого/левого слова приемника (RLRS-бит 7). Доступный для записи и чтения бит RLRS позволяет выбрать полярность сигнала выбора слова приемника (WSR), который определяет левое и правое слово во входном потоке. Когда бит сбрасывается, низкий сигнал WSR идентифицирует левое слово данных. Когда бит устанавливается, низкий сигнал WSR идентифицирует правое слово данных (рис. 6.64). Содержимое бита сбрасывается во время аппаратного или программного сброса.

Бит полярности тактового сигнала приемника (ИСКР - бит 8), Доступный для записи и чтения бит RCKP позволяет выбрать полярность тактового сигнала последовательного приема данных. Когда бит очищается, полярность тактового сигнала отрицательна. Когда бит устанавливается, полярность тактового сигнала положительна. Отрицательная полярность означает, что линии приема выбранного слова (WSR) и входа последовательных данных (SDIx) работают синхронно по отрицательному краю (спаду) тактового сигнала и рассматриваются как действительные во время положительного перехода тактового сигнала. Положительная полярность означает, что WSR и SDIx работают синхронно по положительному краю (фронту) тактового сигнала и рассматриваются как действительные во время отрицательного перехода тактового сигнала (рис. 6.65). Содержимое бита сбрасывается во время аппаратного или программного сброса.

Бит относительной синхронизации приемника (RREL — бит 9). Доступный для записи и чтения бит RREL позволяет выбрать синхронизацию сигнала приемника выбранного слова (WSR) относительно линии входа последовательных данных (SDIx). Когда бит сбрасывается, переход на линии WSR, отражающий начало слова данных, происходит одновременно с 1-м битом слова данных. Когда этот бит устанавливается, переход на линии WSR происходит на один такт раньше (вместе с последним битом предыдущего слова данных), что соответствует формату I 2S (рис. 6.66).

Содержимое бита сбрасывается при аппаратном или программном сбросе.

Бит округления слов данных приемника (RDWT- бит 10). Доступный для записи и чтения бит RDWT позволяет выбрать 24-битную часть полученного 32-битного слова, которая будет передаваться из сдвигового регистра в регистр данных. Когда бит сбрасывается, в регистр данных передаются первые 24 бита. Когда бит устанавливается, в регистр данных передаются последние 24 бита. Бит RDWT игнорируется, если биты RWL[1:0] устанавливаются в положение, соответствующее длине, не равной 32 битам

(рис. 6.67). Содержимое бита сбрасывается во время аппаратного или программного сброса.

Бит разрешения прерывания приемника (RXIE- бит 11). Когда доступный для записи и чтения управляющий бит RXIE устанавливается, разрешаются прерывания приемника для слов данных справа и слева, а работа DSP прерывается, если установлен один или оба бита - RLDF и RRDF. Когда RXIE сбрасывается, прерывания приемника запрещаются, однако биты RLDF и RRDF продолжают отображать условие заполнения регистра данных приемника. Отметим, что сброс бита RXIE будет маскировать отложенное прерывание приемника только после задержки величиной в один цикл команды. Если бит RXIE сбрасывается в подпрограмме обслуживания длительного прерывания, то рекомендуется, чтобы хотя бы одна команда была вставлена между командами, которые очищают RXIE, а в конце процедуры обработки прерывания была бы вставлена команда RTI.

Существуют три различных типа прерываний для приемника, которые имеют отдельные вектора прерываний:

  1. прерывание приема по левому каналу; генерируется когда RXIE = 1, RDLF = 1, RDF = 0;

  1. прерывание приема по правому каналу; генерируется когда RXIE = 1, RDLF = 0, RRDF = 1;

  1. прерывание приема с исключительной ситуацией (перезапуск); генерируется когда RXIE = 1, RDLF = 1, RRDF = 1; это означает, что предыдущие данные в регистре данных приемника были потеряны или произошел перезапуск.

Для того чтобы очистить RDLF и RRDF во время обслуживания прерываний по правому или левому каналу, должно быть прочитано содержимое регистра данных приема того приемника, работа которого разрешена. Очистка RDLF или RRDF приведет к сбросу соответствующего запроса на прерывание. Если возникает ситуация «прерывания приема с исключительной ситуацией» (RDLF = RRDF = 1), то оба бита - RDLF и RRDF очищаются с помощью чтения содержимого регистра RCS, которое следует за чтением содержимого регистра данных приема тех приемников, работа которых разрешена.

Бит размещения прерываний приема (RXIL - бит 12). Доступный для записи и чтения бит управления RXIL определяет размещение векторов прерываний приемников. Когда RXIL = 0, прерывания по левому и правому каналам приемника, а также прерывание приема с исключительной ситуацией размещаются по программным адресам $16, $18, $1А соответственно. Когда RXIL = 1, прерывания по левому и правому каналам приемника, а также прерывание приема с исключительной ситуацией размещаются по программным адресам $46, $48, $4А соответственно. Бит RXIL сбрасывается во время аппаратного или программного сброса (см. табл. 6.38).

Бит полноты данных слева при приеме (RLDF- бит 14). Бит RLDF доступен только для чтения и вместе с битом RRDF (см. ниже) отражает статус регистров данных приема, работа которых разрешена. Бит RLDF устанавливается, когда слово данных слева (что отражается на выводе WSR и в бите RLRS регистра RCS) передается в регистры данных приема после того, как они были получены с помощью сдвига через регистр сдвига разрешенного приемника. Поскольку аудиоданные располагаются в словах двух типов (слева и справа) и читаются наоборот, то обычная операция приема происходит, когда установлен или бит RLDF или бит RRDF. Условие перезапуска приема показывает, что установлены оба бита. Бит RLDF сбрасывается, когда DSP осуществляет чтение содержимого регистра данных приема того приемника, работа которого разрешена; при этом RLDF © RRDF = 1. В случае возникновения условия перезапуска (RLDF • RRDF =1), бит RLDF сбрасывается при первом чтении содержимого RCS, следующем за чтением регистра данных приема разрешенного приемника. Бит RLDF также сбрасывается при аппаратном или программном сбросе, когда DSP находится в состоянии останова и когда все приемники запрещены (R0EN и R1EN сброшены). Если бит RXIE установлен, то, когда будет установлен бит RLDF, возникнет запрос прерывания. Вектор запроса прерывания будет зависеть от условия перезапуска приема.

Бит полноты данных справа при приеме (RRDF- бит 15). Бит RRDF доступен только для чтения и вместе с битом RLDF отражает статус регистров данных приема, работа которых разрешена. Бит RRDF устанавливается, когда слово данных справа (что отражается на выводе WSR и в бите RLRS регистра RCS) передается в регистры данных приема после того, как они были получены с помощью сдвига через регистр сдвига разрешенного приемника. Поскольку аудиоданные располагаются в словах двух типов (слева и справа) и читаются наоборот, то обычная операция приема происходит, когда установлен бит RLDF или бит RRDF. Условие перезапуска приема показывает, что установлены оба бита. Бит RRDF сбрасывается, когда DSP осуществляет чтение содержимого регистра данных приема того приемника, работа которого разрешена; при этом RLDF © RRDF = 1. В случае возникновения условия перезапуска (RLDF • RRDF = 1) бит RLDF сбрасывается при первом чтении содержимого RCS, следующем за чтением регистра данных приема разрешенного приемника. Бит RRDF также сбрасывается при аппаратном или программном сбросе, когда DSP находится в состоянии останова и когда все приемника запрещены (R0EN и R1EN сброшены). Если бит RXIE установлен, то при установке бита RRDF возникнет запрос прерывания. Вектор запроса прерывания будет зависеть от условия перезапуска приема.

Регистры данных приема SAI (RXO, RX1).

Регистры данных приема (RXO, RX1) являются 24-битными регистрами, доступными только для чтения. Они обеспечивают доступ данных из регистров сдвига при приеме информации, когда все биты поступающих данных уже получены. Регистры данных приема содержат два канала данных -левый и правый. В первую очередь, после разрешения работы соответствующего приемника должны появиться данные для левого канала.

Регистр управления/статуса передатчика (TCS).

Регистр TCS является 16-битным регистром управления/статуса, доступным для чтения и записи и используемым для управления при выполнении операции в секции передатчика (см. рис. 6.62). Управляющие биты регистра определяют последовательный формат передачи данных, а биты статуса этого регистра используются программистом DSP для опроса статуса приемника. В регистре TCS также находятся биты разрешения раздельной передачи и прерываний. Когда DSP осуществляет чтение, содержимое этого регистра появляется в двух младших байтах 24-битного слова; биты старшего байта читаются как нули. Содержимое регистра сбрасывается во время аппаратного или программного сброса. Если биты TOEN, T1EN и T2EN сбрасываются, то работа секции приемника запрещается и секция переводится в состояние сброса после задержки в один цикл команды. Во время нахождения в состоянии останова или индивидуального сброса биты статуса регистра также сбрасываются. Останов или сброс не оказывают влияния на управляющие биты регистра TCS.

Биты разрешения работы передатчика 0,1,2 (TOEN, T1EN, T2EN — биты 0,1,2). Доступный для записи и чтения управляющий бит разрешения работы передатчика 0/1/ 2 разрешает выполнение операции передатчика 0/1/2 SAI соответственно. Когда этот бит установлен, работа передатчика разрешена. И наоборот, когда этот бит сброшен, работа передатчика запрещена, а на линии SDO0/SDO1/SDO2 находится сигнал высокого уровня. Если биты TOEN, T1EN и T2EN сбрасываются, то работа секции передатчика запрещается, что эквивалентно состоянию индивидуального сброса. Содержимое бита T0EN/ T1ENЯ2EN сбрасывается во время аппаратного или программного сброса.

Бит ведущего передатчика (TMST- бит 3). Доступный для записи и чтения управляющий бит ведущего передатчика позволяет переключать работу секции передатчика из режима ведущего в режим ведомого и наоборот. Когда этот бит установлен, секция передатчика SAI устанавливается в режим ведущего. В режиме ведущего управление передатчика происходит с помощью выводов SCKT и WST. В режиме ведомого управление этими выводами осуществляется от внешнего источника. Содержимое бита TMST сбрасывается во время аппаратного или программного сброса.

Бит управления длиной слова передатчика (TWL[1:0] - биты 4 и 5). Доступные для записи и чтения биты управления длиной слова используется для выбора длины слова, передаваемой SAI. Длина слова данных определяется числом циклов тактового сигнала последовательной передачи между двумя краями сигнала выбора слова. Слово длиной 16, 24 или 32 бита может быть выбрано в соответствии с табл. 6.41. Если выбрана 16-битная длина слова, то 16 старших значащих битов регистра данных передачи будет передано в выбранном направлении сдвига (TDIR см. ниже). Если выбрана 32-битная длина слова, то 24 бита слова регистра данных передачи дополняются до 32 бит в соответствии со значением управляющего бита (TDWE).

Биты TWL[1:0] также используются для генерации отображения выбранного слова, когда секция передатчика сконфигурирована в режим ведущего (TMST =1). Содержимое битов TWL[1:0] сбрасывается при аппаратном или программном сбросе.

Бит направления сдвига данных передачи (TDIR- бит 6). Доступный для записи и чтения бит TDIR позволяет выбрать направление сдвига передаваемых данных. Когда бит сбрасывается, то данные выдвигаются со стороны старшего значащего бита. Когда бит установлен, данные выдвигаются со стороны младшего значащего бита (рис. 6.68). Содержимое бита сбрасывается во время аппаратного или программного сбросе.

Бит выбора правого/левого слова передачи (TLRS-бит 7). Доступный для записи и чтения бит TLRS позволяет выбрать полярность сигнала выбора слова передатчика (WST), который определяет левое и правое слово в выходном потоке. Когда бит сбрасывается, низкий сигнал WST идентифицирует левое слово данных. Когда бит устанавливается, низкий сигнал WST идентифицирует правое слово данных (рис. 6.69). Содержимое бита сбрасывается при аппаратном или программном сбросе.

Бит полярности тактового сигнала передатчика (ТСКР - бит 8). Доступный для записи и чтения бит ТСКР позволяет выбрать полярность тактового сигнала последовательного приема данных. Когда бит очищается, полярность тактового сигнала отрицательна. Когда бит устанавливается, полярность тактового сигнала положительна. Отрицательная полярность означает, что линии приема выбранного слова (WST) и входа последовательных данных (SDOx) работают синхронно по отрицательному краю (спаду) тактового сигнала и рассматриваются как действительные во время положительного перехода тактового сигнала. Положительная полярность означает, что WST и SDOx работают синхронно по положительному фронту тактового сигнала и рассматриваются как действительные во время отрицательного перехода тактового сигнала (рис. 6.70). Содержимое бита сбрасывается во время аппаратного или программного сброса.

Бит относительной синхронизации передатчика (TREL - бит 9). Доступный для записи и чтения бит TREL позволяет выбрать относительную синхронизацию сигнала WST относительно линии выхода последовательных данных (SDOx). Когда бит сбрасывается, переход на линии WST, отражающий начало слова данных, происходит одновременно с 1-м битом слова данных. Когда этот бит устанавливается, переход на линии WST происходит на один такт раньше (вместе с последним битом предыдущего слова данных), что соответствует формату I2S (рис. 6.71). Содержимое бита сбрасывается во время аппаратного или программного сброса.

Бит округления слов данных при передаче (TDWE) - бит 10). Доступный для записи и для чтения бит TDWE позволяет выбрать метод расширения во время передачи 24-битного слова данных до 32 битов. Когда бит сбрасывается после передачи 24-битного слова данных из регистра передачи данных, восемь раз передается последний бит, Когда бит устанавливается, восемь раз передается 1-й бит, а затем из регистра данных передачи передается 24-битовое слово. Бит TDWE игнорируется, если биты TWL[1:0] устанавливаются в положение, соответствующее длине, не равной 32 битам (рис. 6.72). Содержимое бита сбрасывается во время аппаратного или программного сброса.

Бит разрешения прерывания передатчика (TXIE- бит 11). Когда доступный для записи и чтения управляющий бит TXIE устанавливается, разрешаются прерывания передатчика для слов данных справа и слева, а работа DSP прерывается, если установлен один или оба бита TLDE и TRDE. Когда TXIE сбрасывается, прерывания передатчика запрещаются, однако биты TLDE и TRDE продолжают отображать условие пустоты регистра данных приемника. Отметим, что сброс бита RXIE будет маскировать отложенное прерывание приемника только после задержки величиной в один цикл команды. Если бит TXIE сбрасывается в подпрограмме обслуживания длительного прерывания, то рекомендуется, чтобы хотя бы одна команда была вставлена между командами, которые очищают TXIE, а в конце процедуры обработки прерывания была вставлена команда RTI.

Существуют три различных типа прерываний для передатчика, которые имеют отдельные векторы прерываний.

  1. Прерывание передачи по левому каналу; генерируется при TXIE = 1, TDLE = 1, TRDE = 0. Регистры данных передачи следует загрузить данными слева.

  2. Прерывание передачи по левому каналу; генерируется при TXIE = 1, TDLE = 0, TRDE = 1. Регистры данных передачи следует загрузить данными справа.

  3. Прерывание передачи с исключительной ситуацией; генерируется при ТХ1Е=1, TDLE = 1, TRDE = 1. Это означает, что предыдущие данные в регистре данных приемника были потеряны или произошел перезапуск, т. е. передаются старые данные.

Для того чтобы очистить TDLE и TRDE во время обслуживания прерываний по правому или левому каналу, должно быть прочитано содержимое регистра данных передачи того приемника, работа которого разрешена. Очистка TDLE или TRDE приведет к сбросу соответствующего запроса на прерывание. Если возникает ситуация «прерывания приема с исключительной ситуацией» (TDLE = TRDE = 1), то оба бита TDLE и TRDE очищаются с помощью чтения содержимого регистра TCS, которое следует за чтением содержимого регистра данных приема тех приемников, работа которых разрешена.

Бит размещения прерываний передачи (TXIL - бит 12). Доступный для записи и чтения бит управления TXIL определяет размещение векторов прерываний приемников. Когда TXIL = 0, прерывания по левому и правому каналам приемника, а также прерывание приема с исключительной ситуацией размещаются по программным адресам $10, $12, $14 соответственно. Когда TXIL = 1, прерывания по левому и правому каналам приемника, а также прерывание приема с исключительной ситуацией размещаются по программным адресам $40, $42, $44 соответственно. Бит TXIL сбрасывается во время аппаратного или программного сброса (см. табл. 6.38).

Резервный бит (TCS - бит 13). Этот бит не используется и читается как нуль, его следует также записывать нулевым для обеспечения дальнейшей совместимости.

Бит пустоты данных слева при передаче (TLDE—бит 14), Бит TLDE доступен только для чтения и вместе с битом TRDE отражает статус регистров данных передачи, работа которых разрешена. Бит TLDE устанавливается, когда слово данных справа (что отражается в бите TLRS регистра TCS) одновременно передается из регистров данных передачи в регистры сдвига передачи разрешенного передатчика. Это означает, что регистры данных передачи в данный момент свободны для загрузки слов данных слева. Поскольку аудиоданные располагаются в словах двух типов (слева и справа) и читаются наоборот, то обычная операция передачи происходит, когда установлен только один бит статуса (TLDE или TRDE). Условие дополнительного запуска передачи показывает, что установлены оба бита. Бит TLDE сбрасывается, когда DSP осуществляет запись содержимого регистра данных передачи того передатчика, работа которого разрешена, при этом TLDE TRDE = 1. В случае возникновения условия дополнительного запуска TLDE • TRDE = 1, предыдущие данные будут переданы повторно (те данные, которые находятся в регистре данных передачи). В этом случае бит TLDE сбрасывается при первом чтении содержимого TCS, следующем за записью регистра данных передачи разрешенного передатчика. Если бит TXIE установлен, то, когда будет установлен бит TLDE, возникнет запрос прерывания. Вектор запроса прерывания будет зависеть от условия дополнительного запуска передачи. Бит TLDE также сбрасывается при аппаратном или программном сбросе, когда DSP находится в состоянии останова и когда все передатчики запрещены (TOEN, T1EN, T2EN сброшены).

Бит пустоты данных справа при передаче (TLDE - бит 15). Бит TLDE доступен только для чтения и вместе с битом TRDE отражает статус регистров данных передачи, работа которых разрешена. Бит TLDE устанавливается, когда слово данных слева (что отражается в бите TLRS регистра TCS) одновременно передается из регистра данных передачи в регистры сдвига передачи разрешенного передатчика. Это означает, что регистры данных передачи в данный момент свободны для загрузки слов данных слева. Поскольку аудиоданные располагаются в словах двух типов (слева и справа) и читаются наоборот, то обычная операция передачи происходит, когда установлен только один бит статуса (TLDE или TRDE). Условие дополнительного запуска передачи показывает, что установлены оба бита. Бит TLDE сбрасывается, когда DSP осуществляет запись содержимого регистра данных передачи того передатчика, работа которого разрешена, при этом TLDE ©TRDE = 1. В случае возникновения условия дополнительного запуска (TLDE • TRDE = 1) предыдущие данные будут переданы повторно (те данные, которые находятся в регистре данных передачи). В этом случае бит TLDE сбрасывается при первом чтении содержимого TCS, следующем за записью регистра данных передачи разрешенного передатчика. Если бит TXIE установлен, то, когда будет установлен бит TLDE, возникнет запрос прерывания. Вектор запроса прерывания будет зависеть от условия дополнительного запуска передачи. Бит TLDE также сбрасывается при аппаратном или программном сбросе, когда DSP находится в состоянии останова и когда все передатчики запрещены (TOEN, T1EN, T2EN сброшены).

Регистры данных передачи SAI (TXO, RX1, ТХ2).

Регистры данных передачи (ТХО, ТХ1, ТХ2) являются 24-битными регистрами. Данные, которые следует передать, записываются в эти регистры и одновременно передаются в соответствующие регистры сдвига после того, как выдвинут последний бит. Регистры данных приема следует записывать попеременно по правому и левому каналам. После разрешения работы соответствующего передатчика в первую очередь должны появиться данные для левого канала.

Особенности программирования SAI

Работа SAI во время останова.

Работа SAI не может быть продолжена, когда DSP находится в состоянии останова, поскольку DSP не активизирует тактовый сигнал. Входящие последовательные данные будут проигнорированы. Пока DSP находится в состоянии останова, секции SAI будут оставаться в состоянии индивидуального сброса, а биты статуса регистров RCS и TCS будут сброшены. Управляющие биты в этом процессе не задействованы. Рекомендуется запретить работу SAI перед вхождением в состояние останова.

Инициализация сеанса передачи.

Рекомендуемым методом инициализации сеанса передачи является запись в регистры данных передачи действительных данных и затем разрешение выполнения операции передачи. Данные при этом будут передаваться после разрешения работы передатчиков (при работе в режиме ведущего) или после события выбора слова для слова передачи слева на выводе WST (при работе в режиме ведомого). Отметим, что, хотя флаги статуса TRDE и TLDE всегда сбрасываются, пока секция передатчика находится в состоянии индивидуального сброса, регистры данных передачи в этом состоянии могут записываться. Данные останутся в регистрах данных передачи, пока секция передатчика будет находиться в состоянии индивидуального сброса, и будут передаваться в сдвиговые регистры передачи только после разрешения работы соответствующего передатчика и когда произойдет передача слова слева непосредственно для режима ведущего или в соответствии с WST для режима ведомого.

Использование прерывания для обслуживания секций приемника и передатчика. Допускается использовать одну процедуру обработки прерываний для обслуживания двух секций (приемника и передатчика), если эти секции полностью синхронизированы. Для того чтобы обеспечить полную синхронизацию, обе секции должны работать с одним протоколом и одним источником тактового сигнала. Следует разрешить выполнение прерываний приема (RXIE = 1). При возникновении условия прерывания приема та же самая процедура обслуживания прерывания может использоваться для чтения данных из секции приемника и записи в секцию передатчика.

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

  1. запись слова данных слева в регистры данных передачи;

  2. разрешение работы приемников SAI, если RXIE = 1 (в регистре RCS);

  1. разрешение работы приемников SAI, если TXIE = 0 (в регистре TCS); разрешение работы передатчиков обеспечит передачу слова данных слева из регистров данных пе редачи в сдвиговые регистры;

  1. опрос бита статуса TRDE в регистре TCS для того, чтобы определить, когда в реги стры данных передачи можно загрузить слово данных справа; запись слова данных справа в регистры данных передачи, если бит TRDE установлен;

  2. момент прерывания приема следует использовать для обслуживания и приемников и передатчиков; когда генерируется прерывание приема по левому каналу, в процедуре обслуживания прерывания следует осуществить запись слов данных слева в передатчики и прочитать полученные слова данных слева из приемников (повторить эту процедуру для приемников/передатчиков правого канала).

Машинное состояние SAI.

Когда SAI работает в режиме ведущего, а битовый тактовый сигнал и входы выбора слова неожиданно меняются, то результат может быть непредсказуемым. В частности, это может произойти, когда SCKR (SCKT) запущен, a WSR/ WST-передачи выполняются раньше или позже, чем ожидается (в соответствии с полным циклом битового тактового сигнала). Реакция SAI на подобное условие определяется через машинное состояние SAI.

После выполнения передачи слова данных (или вплоть до осуществления индивидуального останова) SAI ищет отдельные передачи WSR/WST для того, чтобы отслеживать правую/левую ориентацию следующего ожидаемого слова. Например, после выполнения передачи слова данных справа или вплоть до осуществления индивидуального останова SAI ищет передачи WSR/WST, которые определяют начало передачи слова данных слева. Аналогично этому после выполнения передачи слова данных слева SAI ищет передачи WSR/WST, которые определяют начало передачи слова данных справа. Если определено, что передача верна, то SAI начинает вдвигать данные (прием) или выдвигать данные (передача) по одному сдвигу за один цикл битового тактового сигнала. Передача слова данных завершается, когда число поступающих в SCKR (SCKT) битовых тактовых сигналов во время определения корректности передачи WSR/WST достигает заранее запрограммированного значения длины слова данных. Во время передачи слова данных (т. е. перед завершением) все переходы в WSR/WST игнорируются. После завершения передачи слова данных SAI останавливает сдвиг данных в любом направлении до появления следующей корректной передачи. Таким образом, когда передача WSR/ WST появляется раньше чем ожидалось, она игнорируется, и следующая пара слов данных (правое и левое) теряется. Подобно этому, когда передача WSR/WST появляется позже, чем ожидалось, в период времени между завершением предыдущего слова и появлением опоздавшей передачи WSR/WST, получаемые биты данных игнорируется; данные в этом случае не передаются.

Кроме того, запрещение приема или передачи ненужных слов данных может осуществляться с помощью задержки запуска SCKR(SCKT) и задержки WSR/WST на определенное число циклов битового тактового сигнала.