Олег Вальпа - Разработка устройств на основе цифровых сигнальных процессоров фирмы Analog Devices с использованием Visual DSP++
Глава 21. Синхронные последовательные порты
В этой главе говорится о двух синхронных последовательных портах, входящих в состав сигнального процессора, об их устройстве, назначении и использовании.
Кроме рассмотренных нами вычислительных и других устройств, сигнальный процессор имеет встроенные коммуникационные средства в виде двух синхронных последовательных портов, называемых SPORT0 и SPORT1. Данные порты поддерживают множество последовательных протоколов обмена данными и, кроме того, обеспечивают прямое соединение процессоров в многопроцессорной системе. Рассмотрим подробнее эти устройства и команды, которыми они управляются.
Каждый SPORT имеет пять интерфейсных линий:
SCLK — тактовый сигнал;
RFS — прием кадровых синхроимпульсов;
TFS — передача кадровых синхроимпульсов;
DR — прием данных;
DT — передача данных.
SPORT1, в отличие от SPORT0, имеет возможность программно переназначать все сигнальные линии, кроме SCLK. Описание выводов последовательных портов сигнального процессора ADSP-2181 приведено в табл. 21.1.
Таблица 21.1 Описание выводов последовательных портов сигнального процессора ADSP-2181
Сигнал Направление Назначение DT0 О Передача данных TFS0 I/O Кадровая синхронизация передачи RFS0 I/O Кадровая синхронизация приема DR0 I Прием данных SCLK0 I/O Программируемый генератор порта 0 DT1/FO O Передача данных или выходной флаг TFS1/IRQ1 I/O Кадровая синхронизация передачи или внешний запрос прерывания 1 RFS1/IRQ0 I/O Кадровая синхронизация приема или внешний запрос прерывания 0 DR1/FI I Прием данных или входной флаг SCLK1 I/O Программируемый генератор порта 1I — вход, O — выход, I/O — вход/выход.
SPORT0 и SPORT1 способны одновременно принимать последовательный поток данных на входе DR и передавать последовательный поток через выход DT, обеспечивая тем самым дуплексный режим работы. Кроме того, передаваемые и принимаемые данные могут быть аппаратно запакованы и распакованы с помощью аппаратного блока компандирования. Данная процедура широко применяется в аппаратуре цифровой связи. Биты данных синхронизируются тактовыми синхроимпульсами SCLK внутреннего генератора, если процессор запрограммирован как источник синхронизации. Если порт запрограммирован в режим внешней синхронизации, SCLK становится входом для внешних импульсов синхронизации.
Сигналы кадровой синхронизации RFS и TFS используются для указания начала слова последовательно передаваемых данных или потока последовательно передаваемых слов. Эти сигналы также могут генерироваться внутри процессора или формироваться извне.
На рис. 21.1 показана структурная схема последовательного порта.
Рис. 21.1. Структурная схема последовательного порта
Данные, предназначенные для передачи, записываются через шину данных DMD из внутреннего регистра процессора в регистр данных передатчика порта TX. Эти данные могут перед передачей сжиматься в блоке компандирования (упаковки-распаковки) при задании такого режима. После чего данные автоматически передаются в сдвиговый регистр передатчика. Из регистра сдвига биты передаются на вывод последовательного порта DT, начиная со старшего разряда, синхронно с тактовыми синхроимпульсами SCLK. Приемник последовательного порта принимает данные с вывода DR, также синхронно с тактовыми синхроимпульсами SCLK. После приема одного слова данные распаковываются в блоке компандирования (если такая процедура была предварительно программно задана), а затем передаются в регистр данных приемника RX последовательного порта. Таким образом, происходит аппаратная одновременная передача и прием последовательных данных в обоих портах.
После записи данных в регистр TX последовательного порта этот порт готов к передаче данных. Передача начинается синхронно с сигналом TFS. После начала передачи каждое слово, записанное в регистр TX, подается во внутренний сдвиговый регистр передатчика, откуда оно передается на выход последовательно по битам, начиная с самого старшего бита. Каждый бит сдвигается по переднему фронту тактового синхроимпульса. После окончания передачи первого (самого старшего) бита слова последовательный порт генерирует прерывание передатчика. Несмотря на то, что передача первого слова продолжается, становится возможной запись нового слова данных в регистр TX.
В приемнике последовательного порта биты накапливаются в том же порядке, как они поступают во внутренний сдвиговый регистр приемника. По окончании приема одного целого слова оно записывается в регистр RX, и последовательный порт генерирует прерывание приемника.
Благодаря имеющейся возможности программной настройки конфигурации портов, достигается их гибкость в работе и совместимость с другими типами последовательных портов. Режим работы каждого последовательного порта задается программно с помощью регистров управления. Назначение регистров управления последовательных портов сигнального процессора, а также назначение и приоритетность прерываний последовательных портов SPORT0 и SPORT1 были подробно описаны ранее.
Кроме дуплексного режима работы, каждый SPORT имеет двойную буферизацию. Т.е. приемник и передатчик последовательного порта имеют регистр данных для передачи слов данных в процессор и из него, а также сдвиговые регистры данных. Двойная буферизация сокращает время для обслуживания последовательного порта.
SPORT0 и SPORT1 могут самостоятельно формировать тактовые импульсы синхронизации последовательных потоков данных в широком диапазоне частот или использовать внешние тактовые синхроимпульсы.
Каждый последовательный порт поддерживает длину слова последовательно передаваемых и принимаемых данных от трех до шестнадцати бит.
Приемник и передатчик последовательного порта может функционировать как с использованием сигналов кадровой синхронизации, так и без кадровой синхронизации.
Сигналы кадровой синхронизации могут быть активными по высокому или по низкому уровню и с программируемой длительностью.
SPORT0 и SPORT1 могут выполнять аппаратное компандирование по А-закону или Мю-закону, согласно рекомендациям Международного консультативного комитета по телеграфии и телефонии (МККТТ) G.711.
Каждый последовательный порт может работать в режиме автобуферизации. Используя генераторы адреса данных, каждый последовательный порт может автоматически принимать и передавать весь циклический буфер со скоростью: одно слово данных за один процессорный цикл.
Приемник и передатчик последовательных портов способны генерировать прерывания по завершению передачи слова данных или после передачи целого буфера в режиме автобуферизации.
Порты имеют возможность задания режима кадровой синхронизации. В нормальном режиме сигнал кадровой синхронизации формируется раньше начала первого бита на один синхросигнал, а в альтернативном режиме сигнал кадровой синхронизации формируется одновременно с первым битом информации. В обоих режимах биты информации приемника фиксируются по заднему фронту тактового сигнала SCLK, а передаваемые биты информации поступают на выход передатчика по переднему фронту сигнала SCLK.
Пример диаграмм работы порта в различных режимах работы при передаче и приеме слов длиной в четыре бита информации показан на рис. 21.2–21.13. Описание рисунков диаграмм для удобства пользования сведено в табл. 21.2.
Таблица 21.2 Описание рисунков диаграмм
Номер рисунка Направление потока Режим кадровой синхронизации Поток данных Наличие синхронизации 21.2 Прием Нормальный С интервалами Есть 21.3 Прием Нормальный Непрерывный Есть 21.4 Прием Альтернативный С интервалами Есть 21.5 Прием Альтернативный Непрерывный Есть 21.6 Прием Нормальный Непрерывный Нет 21.7 Прием Альтернативный Непрерывный Нет 21.8 Передача Нормальный С интервалами Есть 21.9 Передача Нормальный Непрерывный Есть 21.10 Передача Альтернативный С интервалами Есть 21.11 Передача Альтернативный Непрерывный Есть 21.12 Передача Нормальный Непрерывный Нет 21.13 Передача Альтернативный Непрерывный НетРис. 21.2