ДОПОЛНИТЕЛЬНОЕ АППАРАТНОЕ ОБЕСПЕЧЕНИЕ
13.1
ОБЗОРВ данной главе описываются некоторые схемы, которые могут использоваться в дополнение к последовательным портам, порту интерфейса хост-машины (ХИП) или интерфейсу памяти. Как и в других аналогичных случаях, при разработке данных аппаратных средств следует обратить особое внимание на их временные характеристики и синхронизацию. Поэтому, при изучении приводимых в данной главе примеров вам также следует обращаться к техническим описаниям конкретных процессоров семейства
ADSP-2100.13.2
НАЧАЛЬНАЯ ЗАГРУЗКА ЧЕРЕЗ ХОСТ-МАШИНУ С ИСПОЛЬЗОВАНИЕМ ПРОЦЕДУР ЗАПРОСА И ПРЕДОСТАВЛЕНИЯ ШИНЫВсе процессоры семейства
ADSP-2100, в которых имеется внутреннее ОЗУ программы, поддерживают операцию начальной загрузки, во время которой процессор побайтно считывает команды с какого-либо внешнего устройства памяти (как правило, ППЗУ) через интерфейс памяти и записывает эти команды во внутреннюю память программы, формируя слова по 24 бита. Так как внешнее устройство запрограммировано на подачу байт в соответствующем порядке, то операция начальной загрузки может производиться автоматически при перезапуске или, в случае принудительного осуществления начальной загрузки, при помощи программных средств.В некоторых системах, в которых управление процессором семейства
ADSP-2100 осуществляется хост-машиной, начальная загрузка должна производиться непосредственно с хост-машины. В таких случаях именно хост-машина, а не ППЗУ является источником загружаемых во внутреннюю память байт информации. Процессоры семейства ADSP-2100, в которых имеется порт интерфейса хост-машины (например, ADSP-2111), могут автоматически выполнять операцию начальной загрузки через этот порт. Однако, если процессор не имеет порта интерфейса хост-машины, начальная загрузка может осуществляться через интерфейс памяти с использованием сигнала запроса шины по процедуре, которая будет рассмотрена ниже.Данный пример демонстрирует наиболее простой способ загрузки программ с хост-машины во внутреннюю память программы процессора семейства
ADSP-2100. Имеется несколько способов соединения цифрового сигнального процессора с хост-машиной. Использование какого-либо из этих способов зависитот строения порта ввода/вывода хост-машины, доступности линий порта ввода/вывода и уже имеющегося в системе объема логики декодирования адреса.
На рис.
13.1 приводится минимальная система, позволяющая осуществлять начальную загрузку процессора семейства ADSP-2100 через микроконтроллер. Из аппаратных средств в этой системе требуется только D-òðèããåð и резистор на 5 кОм, который используется для поддержания высокого напряжения на выводеРис.
13.1 Начальная загрузка процессора семейства ADSP-2100 с хост-машины
Механизм квитирования передачи каждого байта загружаемых данных обеспечивается тремя программируемыми битами порта микроконтроллера (РВ
8-10). Кроме того, биты РВ9 и РВ10 могут реализовываться как отображенный в карте памяти порт. Бит РВ8 используется для перезапуска процессора семейства ADSP-2100 после чего начинается операция начальной загрузки последнего. Обратите внимание, что, если РВ8 при подаче питания не низкий, то процессор будет выполнять неопределенные команды, пока РВ8 не станет низким.Загружаемые байты подаются микроконтроллером либо через
8 битов порта (РВО-7), либо через отображенный в карте памяти порт. По завершению начальной загрузки биты РВО-7 должны находиться в третьем состоянии, чтобы исключить конфликтные ситуации при попытках процессора записывать данные во внешнюю память или периферийные устройства.Для данной системы типична следующая процедура начальной загрузки:
1)
Для перезапуска процессора семейства ADSP-2100 PB8 устанавливается низким.3)
Для запуска процессора PB8 устанавливается высоким.4)
На шину данных помещается байт загружаемых данных (РВО-7).7)
Повторение пунктов 4, 5, 6 для каждого байта загружаемых данных. После последней итерации процессор семейства ADSP-2100 автоматически начинает свою работу.Примечание: Следует соблюдать правильную последовательность загрузки байт (т.е. порядок, в котором эти байты подаются на процессор хост-машиной). Эта последовательность рассматривалась в главе
10 "Интерфейс памяти". Для создания файла начальной загрузки используйте утилиту PROM сплиттер, которая входит в программные средства отладки процессоров семейства ADSP-2100. PROM сплиттер автоматически организует байты в правильном порядке для их начальной загрузки.13.3.
СОПРЯЖЕНИЕ ПОСЛЕДОВАТЕЛЬНОГО ПОРТА С КОДЕРОМКодек (КОдер/ДЕКодер) объединяет в одном устройстве функции АЦП, ЦАП и фильтра. Рассматриваемый в данном примере кодек также выполняет операции кодирования и декодирования кодово-импульсной модуляции по закону с ц-характеристикой в соответствии со стандартами МККТТ. Кодово-импульсная модуляция сжимает цифровые данные таким образом, что для хранения той же информации требуется меньшее число бит. Последовательные порты процессоров семейства
ADSP-2100 могут осуществлять компавдирование (сжатие/расширение) как по закону с m -, так и с А-характеристикой.В рассматриваемом примере кодек преобразует входные аналоговые данные в цифровую форму, сжимает их, а затем посылает их по битам на последовательный порт процессора семейства
ADSP-2100. Одновременно процессор посылает сжатые данные через последовательный порт на кодек, который расширяет их и преобразует результат в аналоговый сигнал.На рис.
13.2 показан промышленный кодек с компандированием по закону с ц-характеристикой, подсоединенный к последовательному порту (в данном случае, в SPORTO) процессора семейства ADSP-2100. Входной аналоговый сигнал этого кодека на входе VFXI+ усиливается встроенным усилителем, коэффициент усиления которого управляется набором резисторов на GSX и VFXI-. Коэффициент усиления равен:20 log(Rl + R2)/R2
в данном случае, 20 log2.Процессор семейства
ADSP-2100 управляет работой кодека при помощи сигналов тактовой синхронизации. В показанной конфигурации принимающая и передающая части кодека работают синхронно. MCLKR и MCLKX являютсяуправляющими тактовыми синхроимпульсами для передающей и принимающей частей кодека.
BCLKX является битовым синхроимпульсом, который в данной конфигурации используется для синхронизации как последовательно принимаемых, так и передаваемых данных. MCLKR, MCLKX, BCLKZ должны быть синхронными и, в данном случае, являться одним и тем же сигналом, а именно выходным сигналом SCLKO, который генерируется процессором семейства ADSP-2100. При низком уровне входного сигнала BCLKR/CLKSEL частота MCLKX должна быть равна 2,048 МГц. Поэтому процессор семейства ADSP-2100 должен быть запрограммирован на генерирование SCLKO с частотой 2,048 МГц.Рис.
13.2 Сопряжение последовательного порта ADSP-2100 с КОДЕКом ТР3054Процессор использует сигналы кадровой синхронизации для указания кодеку, что будет осуществлена передача или прием данных. Для передачи данных на кодек процессор посылает импульс TFSO на ввод FSR кодека, а затем выводит в течение восьми периодов последовательного тактового генератора восемь бит через DTO. Кодек принимает данные через вывод DR. Аналогичным образом, процессор начинает прием данных, посылая импульс RFSO на вывод кодека FSX, в результате чего кодек выводит восемь бит через вывод DX в течение восьми следующих периодов последовательного тактового генератора. Процессор принимает данные через вывод DRO. Процессор семейства ADSP-2100 должен быть запрограммирован для работы в нормальном режиме кадровой синхронизации, со словами данных длиной 8 бит и внутренне генерируемыми сигналами кадровой синхронизации активными по высокому уровню.
Показанный ниже код программы для процессора семейства ADSP-2100 задает конфигурацию SPORTO для работы с рассматриваемым в данном примере аппаратным обеспечением, что требует:
•
внутренней генерации тактовых синхроимпульсов;•
частоты последовательных тактовых синхроимпульсов в 2,048 МГц:•
кадровой синхронизации приема и передачи;•
использования нормального режима кадровой синхронизации для приема и передачи данных;•
внутренней генерации сигналов кадровой синхронизации приема и передачи;•
активных по высокому уровню сигналов кадровой синхронизации;•
слов данных длиной 8 бит;•
компандирования по закону с ^-характеристикой.В данной программе предполагается, что процессор работает с частотой
12,288 МГц. Кроме того, в данной программе задается, чтобы процессор запрашивал данные с кодека с частотой 8 кГц (этот регистр не инициализируется при перезапуске, и перед активизацией SPORTO в него всегда должно записываться значение, если сигнал RFS генерируется внутренне). Процессор передает данные, как это требуется выполняемой им программой.
13.4
СОПРЯЖЕНИЕ ПОСЛЕДОВАТЕЛЬНОГО ПОРТА С ЦАПЛюбой процесс цифровой обработки сигнала в конце концов должен заканчиваться выводом информации в аналоговой форме. Последовательный пор! процессоров семейства
ADSP-2100 может непосредственно посылать данные на ЦАП (цифро-аналоговый преобразователь) для их последующего преобразования в аналоговый сигнал.ЦАП фирмы
Analog Devices AD766 не требует никаких дополнительных логических устройств для сопряжения с последовательным портом. AD766 полу чает слова данных длиной 16 бит начиная с самого старшего бита и преобразуе-их в аналоговый сигнал. Цифровой интерфейс этого преобразователя состоит из трех входов: DATA - вход последовательных данных; CLK для сигнала синхронизации данных в ЦАП (активен по низкому уровню, так как данные синхронизируются по заднему фронту) и LE (разрешение фиксации), который фиксирует каждое 16-разрядное слово данных в преобразующей части ЦАП.Соединение последовательного порта с
AD766 показано на рис. 13.3. В данной конфигурации процессор внутренне генерирует последовательные тактовые синхроимпульсы SCLK и подает их на ЦАП. Данные последовательно выводятся через вывод DT процессора на вход DATA ЦАП. На вход ЦАП LE подается сигнал кадровой синхронизации передачи TFS.Рис.
13.3 Сопряжение последовательного порта с ЦАП AD766В цикле тактового генератора после передачи самого младшего (шестнадцатого) бита слова на вход
LE должен быть подан низкий уровень, чтобы 16-разрядное слово было зафиксировано в ЦАП. Для обеспечения временного согласования этого процесса сигнал TFS задается неинвертируемым для альтернативного режима кадровой синхронизации; этот сигнал имеет высокий уровень во время передачи первого бита и низкий уровень после передачи последнего бита. Таким образом, слово фиксируется в AD766 по заднему фронту этого сигнала. Единственным ограничением является то, что последовательный порт не может передавать данные беспрерывно; между последним битом одного слова и первым битом следующего слова должен быть перерыв, необходимый для понижения уровня сигнала TFS.
Регистр управления
SPORTO: Ox3FF6 Регистр управления SPORT I: Ox3FF2Рис.
13.8 Установки регистра управления для сопряжения последовательного порта с АЦП AD7872На рис. 13.5 показана конфигурация регистров управления последовательного порта для рассматриваемого примера.
Регистр управления
SPORTO: Ox3FF6 Регистр управления SPORT1: Ox3FF2Рис. 13.5 Установки регистров управления для сопряжения последовательного порта с ЦАП
13.5 СОПРЯЖЕНИЕ ПОСЛЕДОВАТЕЛЬНОГО ПОРТА С АЦП
АЦП (аналого-цифровой преобразователь) преобразует аналоговый сигнал в цифровые выборки, пригодные для обработки цифровым сигнальным процессором. Процессоры семейства ADSP-2100 могут непосредственно получать данные с АЦП через последовательный порт.
АЦП фирмы Analog Devices AD7872 не требует никаких дополнительных логических устройств для сопряжения с последовательным портом. AD7872 преобразует аналоговый сигнал в 14-разрядные выборки. Каждая выборка дополняется двумя самыми старшими битами равными нулю для формирования 16-разрядных слов. AD7872 выводит слово последовательно, начиная с самого старшего бита. Цифровой интерфейс этого АЦП состоит из трех выводов: SDATA - вывод последовательных данных; SCLK - для синхронизации данных при их выводе и SSTRB (последовательный строб), который осуществляет кадровую синхронизацию каждого последовательно передаваемого слова.
CONVST
вместо таймера. AD7872 внутренне генерирует последовательные тактовые синхроимпульсы SCLK и подает их на процессор. При удерживаемом на входе CONTROL напряжении -5В сигнал SCLK является непрерывным и генерируется даже после вывода данных.13.7.
, MSB(O)
ОРис. 13.7 Временные характеристики передачи с AD7872 на последовательный порт
Сигнал кадровой синхронизации приема настраивается при инициализации как генерируемый внешне с инвертированной логикой (активным по низкому уровню) для альтернативного режима кадровой синхронизации. Последовательный порт также должен быть запрограммирован для работы с внешне генерируемыми тактовыми синхроимпульсами и словами данных длиной 16 бит. На рис. 13.8 показана конфигурация регистра управления последовательным портом, необходимая для его использования при сопряжении с данным АЦП.
13.6
Последовательные порты представляют собой удобный способ передачи данных между процессорами семейства
ADSP-2100 не прибегая к использованию внешней памяти или шины памяти и без временной остановки работы одного из процессоров. Последовательные порты соединяются как показано на рис. 13.9. В данном примере, SPORT 1 одного процессора (#1) подсоединен к SPORTO второго (#2).Оба процессора используют тактовые синхроимпульсы, сгенерированные процессором
#1. Процессор #2 сконфигурирован для получения тактовых синхроимпульсов из вне. Регистры управления последовательных портов должны иметь следующие установленные параметры:Процессор
#1, SPORT]SCLKDIV =
зависит от системыSLEN =
зависит от системыISCLK=1
TFSR=1
RFSR=1
IRFS=0
ITFS=1
RFSDIV=
не важноПроцессор
#2, SPORTOSCLKDIV = зависит от системы
SLEN =
зависит от системыISCLK=0
TFSR=1
RFSR=1
IRPS=0
ITFS=1
RFSDIV=
не важноTFSW1 = RFSW1 = TFSW2 = RFSW2 =
зависит от системы 1NVRFS1 = INVTFS1 = INVRFS2 = INVTFS2 = зависит от системыADSP-21xx RFS1 TFSl #1 SPORT1 driSCLK1 |
|
RFS0 ADSP-21xx TFSO#2 DRO SPORTO SCLKO |
|
||
|
||
|
||
|
||
|
Рис.
13.9 Сопряжение последовательных портов двух процессоров семейства ADSP-2100Для координации передачи данных используется кадровая синхронизация. Каждый процессор внутренне генерирует сигнал кадровой синхронизации передачи
(TFS) и ждет прихода внешнего сигнала кадровой синхронизации приема (RFS) от другого процессора. Может использоваться нормальный или альтернативный режим кадровой синхронизации, однако оба последовательных порта должны работать в одном режиме кадровой синхронизации. Подобным образом, оба последовательных порта должны быть сконфигурированы для работы со словами данных одной и той же длины и для одного и того же типа компандирования, если оно используется, или для одного и того же формата данных, если компандирование не используется.В данной конфигурации можно использовать автобуферизацию последовательных портов, которая позволяет передавать целый буфер данных из памяти данных одного процессора на другой, без потерь на обслуживание прерываний. Последовательные порты автоматически квитируют связи: когда один процессор записывает данные в свой регистр ТХО, эти данные автоматически передаются в регистр
RXO другого процессора, и при этом генерируется цикл автобуферизации.В действительности, передачи с использованием автобуферизации могут одновременно осуществляться в обоих направлениях, в то время как каждый процессор выполняет другие основные задачи. По завершению передачи с использованием автобуферизации каждый порт генерирует прерывание. Описание автобуферизации было дано в главе "Последовательные порты", где оно сопровождалось примером кода программы установки параметров автобуферизации.
13.7
Порт интерфейса хост-машины в процессорах
ADSP-2111, ADSP-2171 и ADSP-21msp5x облегчает сообщение этих процессоров с главным вычислительным микрокомпьютером (хост-машиной) типа Intel 80C51. Пример их соединения приводится на рис. 13.10. В данном примере регистры данных ХИП (HDR) и регистры состояния ХИП (HSR) процессора ADSP-2111 занимают восемь расположенных рядом ячеек памяти микрокомпьютера 80С51.Рис.
13.10 Сопряжение порта интерфейса хост-машины с 80C51Для обращения к одному из регистров ХИП микрокомпьютер
80C51 выставляет сигнал ALE и выводит 16-разрядный адрес: старшие биты - по Р2.0-2.7, младшие биты адреса - по РО.О-Р0.7. Старшая половина бит декодируется дляВ данном примере
80C51 считывает и записывает 8-разрядные данные, и вход HSIZE процессора ADSP-2100 удерживается на высоком уровне. Используются только восемь младших бит каждого регистра ХИП. Вывод HMDO удерживается на низком уровне из-за того, что микрокомпьютер 80C51 скорее использует отдельные стробы считывания и записи, нежели одну линию считывания/записи. Вывод HMD1 удерживается на высоком уровне, так как для адреса и данных используется одна и та же шина (мультиплексированная с использованием ALE), а не отдельные шины.14.1
ОБЗОРВ данной главе дается краткое описание процесса отладки программ для процессоров семейства
ADSP-2100. Описание сопровождается примерами программ, которые должны дать читателю представление о том, как ему следует писать его собственные программы для процессоров рассматриваемого семейства.Представленные в данной главе примеры программ используются во многих операциях цифровой обработки сигналов. Наиболее общими, и применимыми в различных условиях многофункциональными алгоритмами фильтров являются фильтр КИХ и последовательно включенный биквадратный фильтр БИХ. Умножение массивов используется для обработки изображений и в других областях, где требуются операции над векторами. Функция синуса часто требуется во множестве приложений. БПФ (быстрое преобразование Фурье) имеет широкое применение в технике анализа сигналов. Каждый из указанных примеров более подробно описывается в первом томе издания:
"Digital Signal Processing Applications Using ADSP-2100 Family". Эти примеры даются здесь для иллюстрации некоторых аспектов наиболее типичных программ для процессоров семейства ADSP-2100.БПФ проиллюстрирован всей программой, которая состоит из подпрограммы, непосредственно выполняющей БПФ, и главной программы инициализации регистров и вызова подпрограммы БПФ, а также дополнительной программы.
Все другие примеры представлены как подпрограммы в их собственном модуле. Модуль начинается с директивы
.MODULE, которая называет модуль, и заканчивается директивой .ENDMOD. Подпрограмма может вызываться из программы, содержащейся в другом модуле и объявляющей начальную метку подпрограммы в качестве внешнего символа. Каждая подпрограмма завершается командой RTS, которая передает управление обратно программе, из которой была вызвана данная подпрограмма. Обратите внимание, что текст программы сопровождается комментарием в фигурных скобках { }.Перед каждым модулем идет блок комментариев, содержащий следующую информацию:
337
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
14.2
ПРОЦЕСС ОТЛАДКИ СИСТЕМЫПроцессоры семейства
ADSP-2100 поддерживаются полным набором средств отладки. Средства программирования и симуляторы процессоров облегчают проектирование и отладку программного обеспечения. Встроенные эмуляторы и демонстрационные платы помогают моделировать аппаратное обеспечение.Система программных средств отладки включает в себя несколько программ: построитель системы, ассемблер, редактор связей (линкер), подпрограмму разбиения главной программы на блоки
(PROM сплиттер), программы-симуляторы и компилятор С с библиотекой рабочих программ. Все эти программы подробно описываются в следующих изданиях: "ADSP-2100 Family Assembler Tools &Simulator Manual". "ADSP-2100 Family С Tools Manual", "ADSP-2100 Family С Runtime Library Manual".Блок схема процесса отладки системы показана на рис.
14.1.Процесс отладки начинается с задачи описания аппаратного окружения для программных средств отладки. Здесь вы создаете файл описания системы используя редактор текстов. Этот файл содержит простые директивы, которые описывают адреса памяти и портов ввода/вывода, тип процессора и состояние вывода ММАР в проектируемой конфигурации аппаратных средств. Построитель системы считывает этот файл и генерирует файл описания архитектуры, который передает информацию редактору связей, симулятору и эмулятору.
Генерирование кода программы начинается с создания файлов исходного кода на языке С или ассемблере. Модуль является блоком команд на ассемблере, который образует главную программу, подпрограмму или объявление переменных данных. Программист на языке С записывает файлы на языке С и использует компилятор С для создания из этих файлов модулей кодов ассемблера. Программист на языке ассемблера непосредственно записывает модули кодов ассемблера. Каждый модуль кода программы транслируется ассемблером отдельно.
Рис.
14.1 Процесс отладки системы для процессоров семейства ADSP-2100Редактор связей связывает вместе несколько модулей, формируя, таким образом, выполняемую программу (файл отображения в памяти). Редактор связей считывает информацию о разрабатываемой системе аппаратных средств из файла описания архитектуры и определяет на ее основе оптимальные адреса для кода программы и данных. В модулях программ на ассемблере каждый фрагмент кода/ данных может быть задан как полностью перемещаемый, перемещаемый внутри определенного сегмента памяти или неперемещаемый (расположенный по абсолютному адресу). Редактор связей помещает неперемещаемые модули кода программы или данных по заданным адресам в памяти, при условии что область памяти имеет правильные атрибуты. Перемещаемые объекты помещаются по адресам, выбранным редактором связей. Редактор связей генерирует файл отображения памяти, содержащий одну выполняемую программу, которая может для ее проверки загружаться в симулятор или эмулятор.
Программа-симулятор выводит на дисплей окна, в которых можно видеть различные часть аппаратного окружения. Для дублирования проектируемых аппаратных средств симулятор конфигурирует свою память в соответствии с файлом архитектуры, сгенерированные построителем системы, и моделирует отображенные в карте памяти порты ввода/вывода. Такое моделирование позволяет отладить аппаратные средства системы и проанализировать их рабочие характеристики перед тем, как приступить к их макетированию.
После окончания моделирования системы и ее программного обеспечения в ходе макетирования аппаратных средств может использоваться встроенный эмулятор, с помощью которого проверяются электрические схемы, временные характеристики и выполнение программы в реальном времени.
Программа разбиения (сплиттер) транслирует полученную редактором связей программу в файл стандартного формата для программатора ППЗУ. Как только код программы записан в ППЗУ и инсталлирован (с процессором семейства
ADSP-2100) на макете, макет готов к работе.\