Мысловский Э.В. Цифровые сигнальные процесссоры (2003) (1264219), страница 14
Текст из файла (страница 14)
В режим нормального энергопотребления процессор возвращается по прерыванию.Вызов инструкции может быть без параметров, или в виде:IDLE n; /* где n=16,32,64,128 */Данная инструкция заставляет процессор ожидать прерывание в еще болееэкономичном режиме, деля частоту на n.5.5 ШиныВнутренние устройства связываются пятью шинами. Шина адреса памяти данныхDMA и шина адреса памяти программ РМА используются для указания адресовотносящихся к памяти данных и памяти программ.
Шины данных памяти данных DMD ишина данных памяти программ PMD используются для данных соответствующегоадресного пространства. Шина внутренних результатов R прямо связывает различныевнутренние устройства. Ширина шины РМА - 14 бит, что обеспечивает доступ к16Кбайтам инструкций и данных. Шина PMD имеют ширину 24 бита, что обеспечиваетзагрузку 3 байтных команд за один цикл.Ширина шины DMA - 14 бит обеспечивает доступ к 16 Кбайтам данных.
ШиринаDMD имеет ширину 16 бит.Устройство обмена между шинами PMD-DMD позволяет пересылать данные содной шины на другую и содержит логику для преодоления разницы ширины в 8 битмежду двумя шинами.925.6 Последовательные портыПочтивсепроцессорысемейства21ххимеют2двунаправленныхпоследовательных порта SPORTs с двойной буферизацией. Эти порты используютсинхронную передачу данных и используют сигналы кадровой синхронизации, чтобыконтролировать потоки данных. Аппаратно каждый последовательный порт представляетсобой интерфейс с пятью выводами:SCLK - Сигнал синхронизацииRFS - Сигнал приема кадраTFS - Сигнал передачи кадраDR - Вход приемаDT-Выход передачиШина данных памяти данных (DMD)Регистрпередачиданных TxnРегистрпри емаданных RxnМодулькомпандигаСдвиговый регистрМодульуправленияDT TFS SCLKСдвиговый регистрRFS DRРис.
5.5 Структурная схема последовательного портаПорт принимает последовательно передаваемые данные на выводе DR ипоследовательно передает данные на вывод DT. За счет двойной буферизации, то есть иприемная и передающая часть имеют отдельные буферные регистры и регистры сдвига,93прием и передача осуществляется одновременно. По окончании передачи слова данных(кадра) на выводе TFS генерируется сигнал кадровой синхронизации, указывающий наокончание передачи текущего слова данных и на начало передачи следующего словаданных. Последовательный порт может использовать внешнюю синхронизацию илигенерировать свои синхроимпульсы в широком диапазоне частот от 0 Гц.Последовательный порт SPORT 1 имеет альтернативную конфигурацию, вкоторой выводы DR и DT конфигурируются как входы прерываний IRQ0 и IRQ1.Каждый последовательный порт имеет прерывания приема и передачи.Приоритеты прерываний следующие:ВысшийПередача SPORTOПрием SPORTOПередача SPORT1Прием SPORT1Низший5.6.1 Работа последовательного портаПосле записи слова данных в регистр ТХ последовательного порта этот портготов для передачи; побитовая передача инициализируется сигналом TFS.
После началапередачи каждое слово данных, записанное в регистр ТХ, передается на регистр сдвига.Каждый бит слова данных в регистре сдвига сдвигается по переднему фронту сигналасинхронизации.После окончания передачи первого бита слова данных, из регистра сдвига,последовательный порт генерирует прерывание передачи. Несмотря на то, что передачаеще продолжается, становится возможным запись нового слова данных в регистр ТХ.(Вышесказанное не справедливо для режима автобуферизации, о котором будет подробнорассказано ниже). В принимающей части последовательного порта биты накапливаютсяво внутреннем регистре в порядке поступления.
По окончании приема всего слова данныхоно переписывается в регистр RX, и последовательный порт генерирует прерывание.5.6.2 Регистры конфигурирования последовательного порта94Конфигурированиепоследовательногопортаосуществляетсязаписьюопределенных значений в регистры конфигурации. SPORT0 имеет следующие регистрыконфигурации:SLEN - Длина слова в битах (1. .16)DTYPE - Формат данныхINVRFS - Инвертирование кадровой синхронизации приемаINVTFS - Инвертирование кадровой синхронизации передачиIRFS - Разрешение приема внутренней кадровой синхронизацииITFS - Разрешение передачи внутренней кадровой синхронизацииTFSW - Передача ширины кадровой синхронизацииTFSR - Прием ширины кадровой синхронизацииISCLK - Генерация внутренних тактов для SPORTMCE - Разрешение многоканального режима95RBUF=1 Разрешена автобуферизация приема, =0 запрещена автобуферизацияприемаTBUF=1 Разрешена автобуферизация передачи, =0 запрещена автобуферизацияпередачиSLEN - Длина слова в битах (1..
16)DTYPE - Формат данныхINVRFS - Инвертирование кадровой синхронизации приемаINVTFS Инвертирование кадровой синхронизации передачиIRFS - Разрешение приема внутренней кадровой синхронизацииITFS - Разрешение передачи внутренней кадровой синхронизацииTFSW - Передача ширины кадровой синхронизацииTFSR - Прием ширины кадровой синхронизацииISCLK - Генерация внутренних тактов для SPORTFLAG_OUT - Значение вывода FLAG_OUT (только для чтения)96RBUF=1 Разрешена автобуферизация приема, =0 запрещена автобуферизацияприемаTBUF=1 Разрешена автобуферизация передачи, =0 запрещена автобуферизацияпередачиШироко используется два способа конфигурирования последовательного порта.При первом способе используется непосредственная запись значений в регистрыконфигурации:Пример: Установка режима автобуферизацииAX0 = OxFFE1;{Содержимое регистра AX0 записывается }DM(0x3FF3) = АХО; {в регистр управления автобуферизацией SPORT0}Второй способ основан на непрерывности адресов конфигурационных регистров.Инициализация проводиться за один цикл, но данный способ требует выполненияподготовительных действий:Пример: Установка режима автобуферизацииI2=0x3FEF;M2=1;L2= 12;DM(I2, М2) = 0х6В25;DM(I2, М2) = 0;97Такимобразом,еслиприконфигурированиипоследовательногопортанеобходимо установить значения всех регистров предпочтительным является второйспособ.
Если при конфигурировании необходимо установить значение части регистров, тотут необходимо подсчитать, какое количество циклов займет решение первым способом ирешение вторым способом и выбрать наиболее короткий путь.5.6.3 Регистры последовательного портаПрием и передача данных последовательным портом осуществляется путемзаписи/чтения регистров TX/RX соответственно. Эти регистры не отображены на картепамяти, но распознаются мнемоникой ассемблера, регистрами передачи являютсярегистры ТХО, ТХ1 для портов SPORT0 и SPORT1 соответственно.Пример: Прием и передача отсчетов в последовательный порт SPORT0/* Команда передает число 0x2000 для передачи в SPORT0 */АХ0 = 0x2000;ТХ0 = АХ;/* Команда считывает из SPORT0 полученное значение */АХ0 = RX05.6.4 Активизация последовательного портаПоследовательные порты активизируются битами в регистре управлениясистемой.
Этот регистр находится по адресу 0x3FFFPWAIT- Количество тактов ожидания программной памяти BWAIT - Количество тактов ожидания загрузочной памятиSРАСЕ - Количество тактов ожидания программной памятиBFORCE - Количество тактов ожидания программной памятиMODE SPORT1 - Режим SPORT198E/D SPORT1 - Активизация SPORT1E/D SPORT0 - Активизация SPORT0Активизацияпоследовательныхпортовосуществляетсяустановкой1всоответствующих битах регистра управления системой.
Бит 10 определяет конфигурациюSPORT1. Если бит 10 установлен в 1 то SPORT 1 работает как обычныйпоследовательный порт, если бит 10 установлен в 0 то выводы SPORT1 имеют следующееназначение:НазваниеАльтернативноевыводаназваниеRFS1IRQ0Внешнее прерывание 0TFS1IRQ1Внешнее прерывание 1DR1FIВход флагаDT1FOВыход флагаSCLK1SCLK1СинхронизацияАльтернативная функция5.6.5 Синхронизация последовательных портовКаждыйпоследовательныйпортиспользуетсвоисинхросигналы.Синхроимпульсы могут быть внутренними, то есть генерироваться процессором, иливнешними.Бит ISCLK — бит 14 регистра управления SPORT0 или SPORT1 определяетисточник тактовых синхроимпульсов для каждого последовательного порта. Когда этотбит равен 1, процессор сам генерирует синхросигналы, когда бит равен 0 процессорожидает синхросигнала от внешнего источника.
После перезапуска бит ISCLKсбрасывается, таким образом, для обоих портов устанавливается режим работы свнешними синхросигналами. Со следующего цикла после установки бита ISCLKначинается генерация внутренних синхроимпульсов, независимо от того, разблокированили заблокирован соответствующий последовательный порт.Внешние тактовые синхроимпульсы могут иметь частоты равные тактовойчастотепроцессора,тоестьдо13.824МГц.99Частотавнутреннихтактовыхсинхроимпульсов функционально связана с тактовой частотой процессора и определяютсясодержимым регистра SCLKDIV (0x3FF5 для SPORT0 и 0x3FFl для SPORT 1).SCLKDIVЧастота SCLK20479300Гц51191200Гц6399600Гц9564кГц31,536МГц22,048МГц06,144МГцЕсли значение SCLKDIV меняется, когда последовательный порт разблокирован,то частота SCLK меняется по переднему фронту следующего импульса.5.6.6 Длина словаКаждый последовательный порт может обрабатывать слова длиной от 3 до 16 бит.Количествобитвсловеустанавливаетсяврегистреуправлениякаждогопоследовательного порта установкой группы бит SLEN.