Регистры управления работой последовательных портов

Регистры конфигурирования и управления работой последовательных портов являются частью множества регистров IOP-процессора. Каждый последовательный порт имеет собственный набор 32-битных регистров управления и буферов данных.

Последовательный порт программируется путем записи нужных значений по соответствующим адресам памяти, в которых отображаются регистры последовательного порта. При модификации значений регистров управления последовательным портом изменения вступают в силу через один такт после операции записи. Таким образом, SPORTn будет готов начать передачу или прием данных через два цикла после того, как он будет разрешен установкой соответствующего бита в STCTLn или SRCTLn.

Регистр Функция
STCTLn регистр управления передачей через SPORTn
TXn буфер данных при передаче
TDIVn тактовый и кадровый делители частоты при передаче
MTCSn выбор каналов при многоканальной передаче
MTCCSn режим компандирования для каждого канала при многоканальной передаче
SRCTLn регистр управления приемом
RXn буфер данных при приеме через SPORTn
RDIVn тактовый и кадровый делители частоты при приеме
MRCSn выбор каналов при многоканальном приеме
MRCCSn режим компандирования для каждого канала при многоканальном приеме
SPATHn длина пути (для многопроцессорной системы). Разрядность – 16 бит
KEYWDn режим сравнения (только для ADSP-21061)
KEYMASKn маска для режима сравнения (только для ADSP-21061)

 

Основными регистрами управления последовательным портом являются его регистры STCTL и SRCTL.

Регистр STCTL

Биты Поле Функция
SPEN разрешение передачи через последовательный порт
1-2 DTYPE формат передаваемых данных
SENDN направление передачи (=1 – с младших битов слова; =0 – со старших битов слова)
4-8 SLEN = длина передаваемых слов – 1
PACK распаковка данных (передавать одно 32-битное слово как два 16-битных)
ICLK внутренняя генерация сигнала синхронизации данных на передачу
--- зарезервировано
CKRE синхронизация по переднему/заднему фронту сигналов синхронизации данных и кадров при передаче
TFSR режим кадровой синхронизации при передаче
ITFS внутренняя генерация сигнала кадровой синхронизации при передаче
DITFS зависимость сигнала кадровой синхронизации от данных при передаче
LTFS активный уровень сигнала кадровой синхронизации (=0 – высокий, =1 – низкий) при передаче
LAFS поздний сигнал кадровой синхронизации при передаче
SDEN включение DMA-пересылки при передаче
SCHEN разрешение цепочечной DMA при передаче
20-23 MFD задержка кадра в многоканальном режиме при передаче
24-28 CHNL статус текущего канала при передаче
TUVF флаг потери значимости (underflow) в буфере передачи
30-31 TXS статус буфера передачи (=11 – буфер полон, =00 – буфер пуст, =10 – буфер частично заполнен)

Регистр SRCTL

Биты Поле Функция
SPEN разрешение приема через последовательный порт
1-2 DTYPE формат принимаемых данных
SENDN направление приема (=1 – с младших битов слова; =0 – со старших битов слова)
4-8 SLEN = длина принимаемых слов – 1
PACK упаковка данных (принимать два 16-битных слова как одно 32-битное)
ICLK внутренняя генерация сигнала синхронизации данных при приеме
--- зарезервировано
CKRE синхронизация по переднему/заднему фронту сигналов синхронизации данных и кадров при приеме
RFSR режим кадровой синхронизации при приеме
IRFS внутренняя генерация сигнала кадровой синхронизации при приеме
IMODE режим сравнения при приеме данных (только для ADSP-21061)
LRFS активный уровень сигнала кадровой синхронизации (=0 – высокий, =1 – низкий) при приеме
LAFS поздний сигнал кадровой синхронизации при приеме
SDEN включение DMA-пересылки при приеме
SCHEN разрешение цепочечной DMA при приеме
IMAT режим принятия значения в режиме со сравнением (=1 – принять слово, если результат сравнения ложный, =0 –если истинный)
D2DMA разрешить режим 2-мерной DMA
SPL подавать на вход значения с выхода того же порта (режим loopback, используется для тестирования)
MCE разрешение многоканального режима
24-28 NCH количество каналов – 1 (в многоканальном режиме)
ROVF флаг переполнения (overflow) буфера приема
30-31 RXS статус буфера приема (=11 – буфер полон, =00 – буфер пуст, =10 – буфер частично заполнен)

 

Для тестирования программ, использующих обмен данными через последовательный порт, может использоваться режим зацикливания порта, устанавливаемый битом SPL в регистре SRCTLn. В этом режиме сигналы на линиях DRx, RCLKx и RFSx порта всегда равны сигналам DTx, TCLKx и TFSx того же порта. Активными являются только сигналы передающей части последовательного порта, тогда как сигналы его приемной части игнорируются. Многоканальный режим при зацикливании не поддерживается.