Период дискретизации определяется прерываниями от таймера. Интервал дискретизации составляет 1/fД, на нём можно разместить fп/fд циклов процессора. После k проходов по внутреннему циклу программа выполняет подпрограммы, находящиеся во внешнем цикле. Их выполнение должно быть обязательно завершено до возникновения очередного прерывания. Отсюда следует, что суммарное время однократного выполнения всех подпрограмм, находящихся и во внутреннем, и во внешнем циклах программы, не должно превышать периода дискретизации.
Отношение суммарного времени выполнения разработанных Вами подпрограмм к периоду дискретизации, умноженное на 100%, характеризует полученную занятость процессора. Оставшееся время может быть использовано для реализации других функций.
Разработанная и отлаженная подпрограмма в большинстве случаев является одним из модулей программы и самостоятельно работать не может. Возникает задача, как убедиться в её работоспособности в условиях, когда другие модули, входящие в состав программы, ещё не готовы.
С учётом физики работы модуля, приходится разрабатывать простенькую программу, обеспечивающую имитацию исходных данных для проверки работы подпрограммы и обращение к ней. В испытуемую подпрограмму на время такой проверки тоже могут быть внесены некоторые упрощения. Такая работа должна отражаться в отдельной главе проекта и не затрагивать тех результатов разработки, которые должны строго соответствовать техническому заданию. В заключение такой главы приводятся экспериментальные цифровые данные, подтверждающие правильность функционирования подпрограммы.
Вариант программы для экспериментальной проверки может отличаться от того, который должен быть итогом пояснительной записки к проекту, из-за необходимости имитации испытательных сигналов, особенностей работы имитатора в части ввода/вывода информации через порты и т.п.
Процессоры ADSP-218x имеют отдельное пространство ввода/вывода. Для доступа к нему имеется дополнительная линия выбора памяти IOMS.
Пространство ввода/вывода ADSP-218x обслуживает до 2048 ячеек 16-битовых данных, используя 11 младших разрядов адреса. Используется для упрощения связи с параллельными устройствами: преобразователями данных, внешними регистрами и т. п.
Пространство ввода/вывода ADSP-218x имеет следующие особенности:
· обеспечивает непосредственную адресацию ячеек,
· поддерживает 16-битовые пересылки,
· имеет четыре секции с 512 ячейками в каждой секции (см. карту памяти CM-3),
· состояния ожидания IOWAIT до 15 циклов устанавливают в регистре 0x3FFE,
· имеет специальную линию выбора памяти ввода/вывода IOMS,
· язык ассемблера ADSP-218X имеет две специальные команды для обращения к пространству ввода/вывода:
dreg = IO(address); // чтение по адресу ввода
IO(address) = dreg; // запись по адресу вывода
Дополнительная линия выбора позволяет выполнять параллельно-периферийный ввод/вывод без дополнительных внешних аппаратных средств расшифровки, которые требуются другим процессорам семейства ADSP-21xx.
Пример программирования на ассемблере:
#define some_port 0x0100 // или установка значения адреса порта
.CONST some_port = 0x0100; // или директива описания адреса порта
IO(some_port) = AR; // вывод результата в порт
Порт ввода/вывода строится на базе так называемого буферного регистра, то есть регистра с буферными вентилями на его выходах. Они имеют третье (высокоимпедансное) состояние и управляются входом OE – разрешение выхода. Момент обращения к порту определяется дешифратором по возникновению адреса, присвоенного порту. Более сложные варианты портов строятся с использованием прерываний.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.