Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Руководство пользователя по сигнальным процессорам Sharc

.pdf
Скачиваний:
150
Добавлен:
01.05.2014
Размер:
9 Мб
Скачать
☆

Последовательные порты 10

в 16 разрядные слова. Упаковка и распаковка слов определяется битом PACK в регистрах управления STCTLx и SRCTLx.

Когда PACK=1 в регистре управления приемом (SRCTLx), два последовательно принятых слова упаковываются в одно 32 разрядное слово.

Когда PACK=1 в регистре управления передачей (SТCTLx), каждое 32 разрядное слово распаковывается и передается как два 16 разрядных слова.

Первое 16 разрядное (или меньше) слово выравнивается по правому разряду и размещается в битах 15 0 упакованного слова, второе 16 разрядное (или меньше) слово выравнивается по правому разряду и размещается в битах 31 16. Это справедливо и для приема (упаковка), и для передачи (распаковка). Компандирование может использоваться вместе с упаковкой или распаковкой.

При разрешенной упаковке данных последовательного порта прерывания передачи и приема генерируются для 32 разрядного упакованного слова, а не для каждого 16 разрядного слова.

Подсказка. Когда 16 разрядные принятые данные упаковываются в 32 разрядное слово и сохраняются в пространстве нормальных слов внутренней памяти ADSP 2106x, 16 разрядные слова могут считываться или записываться по адресам в пространстве коротких слов.

10.4.4. Тип данных

Поле DTYPE в регистрах управления STCTLx и SRCTLx определяет один из четырех форматов данных (не для работы в многоканальном режиме):

DTYPE

Формат данных

00Выравниваются по правому разряду, не используемые старшие биты заполняются нулями

01Выравниваются по правому разряду, не используемые старшие биты дополняются по знаку

10Компандирование по м закону

11Компандирование по А закону

Эти форматы применяются к передаваемым через последовательный порт словам данных, которые загружаются в буферы RX и ТХ (Фактически, слова данных ТХ не заполняются нулями или не дополняются по знаку, т. к. передаются только значащие биты).

При работе в многоканальном режиме выбор компандирования и выбор способа заполнения старших битов независимы:

361

10 Последовательные порты

DTYPE

Формат данных

х0

Выравниваются по правому разряду, не используемые старшие биты

 

заполняются нулями

х1

Выравниваются по правому разряду, не используемые старшие биты

 

дополняются по знаку

0х

Компандирование по м закону

1х

Компандирование по А закону

Если канал активизирован, но компандирование для этого канала не выбрано, то происходит линейная передача. Если канал активизирован и для него выбрано компандирование, то выполняется передача с компандированием. Регистры выбора закона компандирования в многоканальном режиме (MTCCSx и MRCCSx) определяют, для каких приемных и передающих каналов используется компандирование( См. «Регистры выбора канала» в разделе «Работа в многоканальном режиме» этой главы).

При передаче дополнение по знаку неиспользуемых битов определяется нулевым битом DTYPE в регистре STCTLx и является общим для всех каналов передачи. При приеме дополнение по знаку неиспользуемых битов определяется нулевым битом DTYPE в регистре SRCTLx и является общим для всех приемных каналов. Если нулевой бит DTYPE установлен, то дополнение по знаку будет выполняться в тех каналах, в которых не разрешено компандирование. Если этот бит не установлен, слова будут иметь 0 в старших неиспользуемых битах.

10.4.5. Компандирование

Компандирование (от английского «companding» – COMpressing (сжатие) + exPANding (расширение)) – это процесс логарифмического кодирования и декодирования данных с целью уменьшения числа бит передаваемых данных. Последовательные порты ADSP 2106x поддерживают два наиболее распространенных алгоритма компандирования: по m закону и А закону – выполняемых согласно спецификации MKKTT G.711. Тип компандирования может выбираться независимо для каждого последовательного порта. Компандирование управляется полем DTYPE в регистрах управления STCTLx и SRCTLx.

При разрешенном компандировании действительным значением регистров RX0 и RX1 является выровненное по правому разряду, дополненное по знаку, расширенное значение восьми принятых младших бит (LSB). Аналогично запись в регистры ТХ1 и ТХ0 вызывает сжатие 32 разрядного значения до восьми его LSB (дополненных по знаку до размера передаваемого слова) перед тем, как слово будет передано. Если 32 разрядное слово превышает 13 разрядный (для А

362

Последовательные порты 10

закона) или 14 разрядный (для m закона) максимум, то оно автоматически сжимается до максимальной величины.

Устройство компандирования может использоваться без передачи (или приема) данных, например, для тестирования и отладки. Для выполнения этой операции требуется один дополнительный цикл. Чтобы осуществить компандирование данных без передачи, необходимо выполнить следующие действия:

1.Разрешить компандирование с помощью поля DTYPE в регистре управления передачей STCTLx.

2.Записать 32 разрядное слово данных в ТХ (Компандирование выполняется в этом цикле).

3.Выждать один цикл. Для этого можно использовать команду NOP; если NOP не вставлена, то в любом случае ядро ADSP 2106x будет задержано на один цикл (Это даст возможность устройству компандирования последовательного порта перезагрузить в ТХ сжатое значение).

4.Считать 8 разрядное сжатое значение из ТХ.

Для расширения данных используется такая же последовательность действий, только с RX. При этом следует убедиться, что длина последовательно передаваемого слова (SLEN) установлена соответствующим образом в регистре управления SRCTLx.

При разрешенном компандировании интерфейс ADSP 2106x с кодеком требует незначительного программирования. Если компандирование не выбрано, то для принимаемых слов данных длиной менее 32 бит доступными являются два формата: в одном неиспользуемые MSB заполняются нулями, в другом дополняются по знаку (см. предыдущий раздел «Тип данных»).

10.5. Опции тактовой синхронизации

Каждый последовательный порт имеет сигналы тактовой синхронизации передачи (TCLKx) и приема (RCLKx). Параметры сигналов тактовой синхронизации определяются битами ICLK и CKRE в регистрах управления STCTLx и SRCTLx. Частоты сигналов TCLKx и RCLKx задаются значениями в регистрах TDIV и RDIV.

Выводы сигналов тактовой синхронизации приема и передачи могут соединяться вместе, если необходимо, чтобы ввод и вывод данных выполнялся на одной частоте.

363

10 Последовательные порты

10.5.1. Внутренняя и внешняя тактовая синхронизация

Сигналы тактовой синхронизации передачи и приема могут независимо генерироваться внутри процессора или приниматься от внешнего источника. Бит ICLK в регистрах управления STCTLx и SRCTLx определяет источник сигнала.

Когда ICLK=1, сигнал тактовой синхронизации генерируется ADSP 2106x и выводится через TCLKx или RCLKx. Частота сигнала тактовой синхронизации определяется значением коэффициентов деления TCLKDIV или RCLKDIV в регистрах TDIVх и RDIVх.

Когда ICLK=0, сигнал тактовой синхронизации принимается на выводах TCLKx или RCLKx, а коэффициент деления в регистрах TDIVх и RDIVх не учитывается. Сигнал внешней тактовой синхронизации может быть асинхронным с сигналом тактовой синхронизации ADSP 2106x.

10.6. Опции кадровой синхронизации

Сигналы кадровой синхронизации указывают на начало побитовой передачи каждого слова данных. Сигналы кадровой синхронизации каждого последовательного порта называются TFS (кадровая синхронизация передачи) и RFS (кадровая синхронизация приема). Доступен ряд опций кадровой синхронизации, которые определяются в регистрах управления последовательным портом. Сигналы TFS и RFS независимы и отдельно конфигурируются в регистрах управления.

10.6.1. Кадровая синхронизация

Использование сигналов кадровой синхронизации не является обязательным при организации связи через последовательные порты. Биты управления TFSR (требование кадровой синхронизации передачи) и RFSR (требование кадровой синхронизации приема) определяют, требуются ли сигналы кадровой синхронизации. Эти биты находятся в регистрах управления STCTLx и SRCTLx.

Когда TFSR=1 или RFSR=1, сигнал кадровой синхронизации требуется в начале передачи или приема каждого слова данных. Для обеспечения непрерывной передачи из ADSP 2106x каждое слово данных должно загружаться в буфер ТХ до того, как предыдущее слово поступает в регистр сдвига и передается (См. раздел «Независимый от данных сигнал кадровой синхронизации» в этой главе).

Когда TFSR=0 или RFSR=0, соответствующие сигналы кадровой синхронизации не требуются. Один сигнал кадровой синхронизации необходим только для

364

Последовательные порты 10

начальной установки связи; после передачи первого бита он игнорируется. Затем слова передаются постоянно без кадровой синхронизации. (Предупреждение: Если в этом режиме – когда не требуется кадровая синхронизация – разрешен DMA, то запросы DMA могут задерживаться при инициализации цепочки или могут обслуживаться недостаточно часто, не обеспечивая непрерывный поток данных).

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

♦Биты TFSR и RFSR в регистрах управления STCTLx, SRCTLx определяют режим работы с кадровой синхронизацией и без нее.

♦В режиме с кадровой синхронизацией ее сигнал требуется для каждого слова. В режиме без кадровой синхронизации этот сигнал игнорируется сразу после начала передачи первого слова.

♦Режим без кадровой синхронизации подходит для непрерывного приема.

♦Активный высокий и активный низкий уровни сигнала кадровой синхронизации определяются битами LTFS и LRFS в регистрах управления STCTLx, SRCTLx.

10.6.2. Внутренние и внешние сигналы кадровой синхронизации

Сигналы кадровой синхронизации передачи и приема могут независимо генерироваться процессором или приниматься от внешнего источника. Биты ITFS и IRFS в регистрах управления STCTLx и SRCTLx определяют источник этих сигналов.

Рис. 10.6. Передача данных с использованием кадровой синхронизации и без нее

365

10 Последовательные порты

При ITFS=1 или IRFS=1 соответствующий сигнал кадровой синхронизации генерируется ADSP 2106x и подается на выводы TFSx или RFSx. Частота следования сигналов определяется величиной коэффициента деления частоты кадровой синхронизации (TFSDIV или RFSDIV) в регистрах TDIV или RDIV.

При ITFS=0 или IRFS=0 соответствующий сигнал кадровой синхронизации принимается по входам TFS или RFS, а коэффициент деления частоты кадровой синхронизации в регистрах TDIV и RDIV не учитывается.

Все опции кадровой синхронизации доступны и при внутренней и при внешней генерации сигнала.

10.6.3. Активный высокий и активный низкий уровень

Сигналы кадровой синхронизации могут быть активными по высокому уровню или по низкому уровню (т. е. инвертированы). Биты LTFS и LRFS регистров управления STCTLx и SRCTLx определяют логический уровень сигналов кадровой синхронизации.

Когда LTFS=0 или LRFS=0, соответствующий сигнал кадровой синхронизации активен по высокому уровню.

Когда LTFS=1 или LRFS=1, соответствующий сигнал кадровой синхронизации активен по низкому уровню.

Активным уровнем сигналов кадровой синхронизации по умолчанию является высокий; биты LTFS и LRFS после сброса процессора устанавливаются в 0.

10.6.4. Выбор фронта для опроса данных и сигнала кадровой синхронизации

Данные и сигналы кадровой синхронизации могут опрашиваться по переднему и по заднему фронтам импульсов тактовой синхронизации последовательного порта. Это определяется битом CKRE в регистрах управления STCTLx и SRCTLx.

При установке CKRE=1 в STCTLx данные и сигнал кадровой синхронизации при передаче опрашиваются по переднему фронту TCLKx; при CKRE=0 – по заднему фронту TCLKx. Заметим, что данные и сигналы кадровой синхронизации будут изменять свое состояние по противоположному фронту, т. е. по тому, который не выбран.

При установке CKRE=1 в SRCTLx данные и сигнал кадровой синхронизации при приеме опрашиваются по переднему фронту RCLKx; при CKRE=0 – по заднему фронту RCLKx.

366

Последовательные порты 10

Для реализации функций приема и передачи двух последовательных портов, соединенных вместе, всегда устанавливайте одинаковые значения CKRE, чтобы все внутренне генерируемые сигналы выводились по одному фронту, а любые принимаемые сигналы опрашивались по другому фронту.

10.6.5. Ранняя и поздняя генерация сигнала кадровой синхронизации

Сигнал кадровой синхронизации может генерироваться вместе с первым битом каждого слова данных (поздняя генерация) или в цикле, непосредственно предшествующем первому биту (ранняя генерация). Эта опция определяется битом LAFS в регистрах управления STCTLx и SRCTLx.

Когда LAFS=0, установлен режим ранней генерации сигнала кадровой синхронизации, т .е. нормальный режим. В этом режиме первый бит передаваемого слова данных выводится (или первый бит принимаемого слова данных фиксируется) в следующем цикле тактовой синхронизации после выставления сигнала кадровой синхронизации. Сигналы кадровой синхронизации не проверяются далее до окончания передачи (или приема) всего слова данных (для многоканального режима это справедливо, если сигнал кадровой синхронизации задержан на 1 цикл).

Если прием или передача данных осуществляется непрерывно, т. е. за последним битом каждого слова без перерыва следует первый бит следующего слова, то сигнал кадровой синхронизации должен выставляться в одном цикле вместе с последним битом каждого слова. Внутренне генерируемый сигнал кадровой синхронизации в режиме ранней синхронизации выставляется на один тактовый цикл.

Когда LAFS=1, установлен режим поздней генерации сигнала кадровой синхронизации, т. е. альтернативный режим. В этом режиме первый бит передаваемого слова данных выводится (или первый бит принимаемого слова данных фиксируется) в том же самом цикле тактовой синхронизации, в котором выставляется сигнал кадровой синхронизации. (для многоканального режима это справедливо, если задержка сигнала кадровой синхронизации равна нулю). Биты принимаемых данных фиксируются по фронту импульса тактовой синхронизации; сигнал кадровой синхронизации проверяется только для первого бита каждого слова. Внутренне генерируемый сигнал кадровой синхронизации в режиме поздней генерации остается выставленным на время приема или передачи целого слова данных. Внешне генерируемый сигнал кадровой синхронизации проверяется только во время передачи или приема первого бита.

На рис. 10.7 показаны два режима кадровой синхронизации:

367

10 Последовательные порты

Рис. 10.7. Нормальный и альтернативный режимы кадровой синхронизации

♦Установка битов LAFS в регистрах управления STCTLx и SRCTLx: LAFS=0 для ранней кадровой синхронизации, LAFS=1 для поздней кадровой синхронизации.

♦Ранняя генерация: сигнал кадровой синхронизации генерируется за один цикл до того, как передаются данные. Поздняя генерация: сигнал кадровой синхронизации проверяется только при передаче или приеме первого бита.

♦Передача данных начинается со старших бит (SENDN=0) или с младших бит (SENDN=1).

♦Внутренняя или внешняя генерация сигналов кадровой и тактовой синхронизации.

10.6.6. Не зависящий от данных сигнал кадровой синхронизации передачи

Обычно внутренний сигнал кадровой синхронизации выводится только тогда, когда буфер ТХ содержит готовые к передаче данные. Режим не зависящей от данных генерации сигнала кадровой синхронизации передачи (DITFS – Data Independent Transmit Frame Sync) обеспечивает непрерывную генерацию сигнала TFS при наличии или без наличия новых данных. Эта опция управляется битом DITFS в регистре управления STCTLx.

При DITFS=0 внутренне генерируемый сигнал TFS выводится только тогда, когда новое слово данных загружается в буфер ТХ. Загруженные в ТХ данные не будут передаваться до тех пор, пока не будет сгенерирован сигнал TFS. В этом режиме передача данных разрешается только в определенные моменты времени.

368

Последовательные порты 10

При DITFS=1 внутренне генерируемый сигнал TFS выводится через запрограммированный интервал времени независимо от наличия новых данных в буфере ТХ. Любые находящиеся в ТХ данные будут передаваться при каждом выставлении сигнала TFS. Если старые данные будут переданы повторно, то установится бит состояния потери значащих разрядов при передаче (TUVF) в регистре управления STCTLx. Бит состояния TUVF также установится, если буфер ТХ не имеет новых данных при приходе сигнала TFS, генерируемого внешним устройством. Заметим, что в этом режиме работы генерация первого внутреннего сигнала TFS будет задержана, пока данные не будут загружены в буфер ТХ.

При использовании внутренней генерации сигнала TFS для начала передачи требуется выполнить одну запись в регистр данных ТХ.

10.7. Работа в многоканальном режиме

Последовательные порты ADSP 2106x могут работать в многоканальном режиме, который позволяет реализовывать связь через SPORT в системе с временным разделением (TDM) каналов. Каждое слово данных в последовательно передаваемом потоке бит принадлежит определенному каналу. Например, блок данных из 24 х слов содержит по одному слову для каждого из 24 х каналов.

Последовательный порт может автоматически выбирать слова для определенных каналов, игнорируя при этом другие. Для передачи и приема доступны 32 канала, причем каждый SPORT может принимать и передавать данные выборочно по любому из 32 каналов. Другими словами, в каждом канале SPORT может выполнять следующее:

1)передавать данные;

2)принимать данные;

3)передавать и принимать данные;

4)ничего не делать.

В многоканальном режиме также могут использоваться компандирование данных и передачи по DMA.

Если работа последовательного порта разрешена (SPEN=1 в регистре управления STCTL), вывод DT всегда управляется, т. е. не переводится в третье состояние. Исключением является работа последовательного порта в многоканальном режиме: когда канал не используется для передачи, то вывод DT находится в третьем состоянии.

369

10 Последовательные порты

Рис. 10.8. Работа в многоканальном режиме

Заметим, что в многоканальном режиме вывод TCLKx всегда является входом и должен соединяться с соответствующим выводом RCLKx.

На рис. 10.8 показаны временные диаграммы при передаче в многоканальном режиме со следующими характеристиками.

♦Используется метод TDM, когда данные передаются и принимаются по различным каналам, через одну и ту же совместную последовательную шину.

♦Число каналов определяется битами NCH в SRCTLx: NCH=число каналов – 1.

♦Каналы для передачи и приема выбираются независимо.

♦Сигнал RFS указывает на начало блока данных.

♦TFS используется как сигнал «Передаваемые данные истинные» для внешней логики; активен только в течение передачи по каналу;

♦В примере: прием по каналам 0 и 2, передача по каналам 1 и 2.

10.7.1. Кадровая синхронизация в многоканальном режиме

Все передающие и принимающие устройства в многоканальной системе должны синхронизироваться в один момент времени. Используемый для этого сигнал RFS указывает на начало передачи или приема блока (или кадра) слов данных в многоканальном режиме.

Если для SPORT разрешен многоканальный режим, то передатчик и приемник используют RFS в качестве сигнала кадровой синхронизации. Это справедливо и для внутренней и для внешней генерации RFS. Сигнал RFS используется для синхронизации каналов и для перезапуска последовательности операций в многоканальном режиме. RFS выставляется в начале слова данных нулевого канала.

TFS используется как сигнал передаваемые данные истинные, который активен в течение передачи разрешенного слова. Так как вывод DTx последовательного порта переводиться в третье состояние на время, в течение которого канал не

370