Смекни!
smekni.com

Проектирование цифрового фазового звена (стр. 2 из 4)

· порты ОЗУ (РУ55) настраиваются так:

РА на ввод;

РВ на вывод по сигналу готовности и квитирования;

· таймер (РУ55) останавливается;

· содержимое ячеек ОЗУ и буферных регистров портов (РУ55) сохраняется.

Из этого следует, что переходу фильтра в рабочий режим должна предшествовать его настройка (инициализация) на обеспечение принятого принципа функционирования, выбранных режимов работы узлов, заданных рабочих характеристик.

Для настройки портов ОЗУ (РУ55) нужно задать значение управляющего слова.

Формат управляющего слова:

D7 D6 D5 D4 D3 D2 D1 D0

TМ2 ТМ1 IE B IE A PC2 PC1 PB PA

Биты РА и РВ управляющего слова задают направление передачи данных через порты РА и РВ (0 - ввод, 1 - вывод).

Биты РС2 и РС1 определяют вариант использования порта С в соответствии с таблицей:

РС2 РС1 Линии порта С Назначение
0 0 РС0 - РС5 Ввод
0 1 РС0 - РС5 Вывод
1 0 РС0 INTR A
РС1 BF A
РС2 STB A
РС3 - РС5 Вывод
1 1 РС0 INTR A
РС1 BF A
РС2 STB A
РС3 INTR B
РС4 BF B
РС5 STB B

Здесь и ранее использованы следующие обозначения:

INTRA (B) - запрос прерывания по порту РА (РВ);

BFA (B) - буфер порта РА (РВ) полон (занят);

STBA (B) - управляющий сигнал записи, соответствующий порту РА (РВ).

Биты IEA, IEBуправляющего слова разрешают (IE= 1) или запрещают выработку сигналов прерывания INTR.

Биты ТМ2, ТМ1 содержат код (ТМ2 ТМ1) команды управления таймером. Описание команд приведено в таблице.

ТМ2 ТМ1 Описание команды таймера
0 0 Холостая команда, не влияющая на работу таймера
0 1 Немедленный останов таймера, если он находится в состоянии счета. Холостая команда, если таймер не запущен.
1 0 Останов таймера после окончания текущего цикла счета. Холостая команда, если таймер не запущен.
1 1 Пуск таймера. Если таймер не был запущен, то производятся установление режима работы, загрузка N и пуск таймера немедленно после загрузки. Если таймер находится в режиме счета, то установление нового режима, загрузка N и пуск производятся немедленно после окончания текущего цикла счета

Я выбрал следующее значение управляющего слова:

D7 D6 D5 D4 D3 D2 D1 D0

1 1 0 0 0 0 1 0

Таким образом я настроил ОЗУ (РУ55) следующим образом:

Таймер настроен на третий режим работы (ТМ1 = 1; ТМ2 = 1);

Линии порта С используются в соответствии с выше приведённой таблицей при РС2 = 0 и РС1 = 0;

Порт А настроен на ввод данных (РА = 0).

Порт В настроен на вывод данных по сигналу готовности и квитирования (РВ = 1);

Как уже говорилось выше ввод данных в МП осуществляется по сигналу готовности АЦП, используя для этого прерывание МП оповещающим сигналом /BUSY. Мы выбрали аппаратное прерывание динамического типа - RST7.5, которое разрешается при установке маски прерывания командой SIM.

По команде SIMобеспечивается установка нового состояния маски в соответствии с содержимым аккумулятора:

А0 - А2 - соответственно маски RST5.5, RST6.5, RST7.5;

А3 - разрешение установки маски;

А4 - сброс триггера приема запроса RST7.5;

А5 - не используется;

А6 - разрешение вывода данных;

А7 - бит данных для вывода через SOD.

Установка маски запрещает соответствующее прерывание. Смена маски в соответствии с А0 - А2 выполняется только при разрешении ее установки (А3 = 1). В противном случае функция установки маски подавляется.

Для маски прерывания RST7.5 содержимое аккумулятора будет следующим (1Вh):

A0 = 1; A1 = 1; A2 = 0; A3 = 1; A4 = 1; A5 = 0; A6 = 0; A7 = 0.

Разработка и описание общего алгоритма и функционирования фильтра

Общий алгоритм функционирования фильтра строится на основе выводов и определений, сделанных при анализе задачи, и включает в себя все функции устройства, реализуемые аппаратно и реализуемые программно. Он содержит также все сигналы и сообщения, необходимые для взаимосвязи аппаратно-реализуемых и программно-реализуемых операций (сигналы и сообщения, которые обеспечивают взаимодействие аппаратной части фильтра и программы).

Общий алгоритм функционирования фильтра приведен ниже.

Работа фильтра начинается с подачи питания на схему сброса. Импульс, сформированный схемой сброса (аппаратный узел), обнуляет счетчик команд МП и инициирует формирование импульса сброса RESETдля установки МП-системы в исходное состояние.

Таким образом, запускается программа инициализации МП-системы, которая должна начинаться с нулевого адреса. При инициализации: разрешаются прерывания МП типа RST7.5; в указатель стека SPзаписывается начальный адрес, с которого начинается стек; порт РA (РУ55) настраивается на ввод, а порт РB (РУ55) - на вывод по сигналу готовности и квитирования; таймер (аппаратный узел) настраивается на период переполнения, равный ТД в режиме 3; таймер запускается для формирования непрерывной последовательности импульсов с частотой дискретизации FД, которые используются далее для взятия отсчетов входного сигнала и запуска АЦП (аппаратного узла). Программа инициализации завершается операцией останова МП.

Из состояния останова МП выводится сигналом /BUSY (код АЦП готов), поступающим на вход RST7.5 МП.

Последующие операции (ввод, вывод, преобразование кодов, оперативные обращения к памяти, арифметические преобразования) в каждом цикле работы фильтра выполняются под управлением рабочей программы фильтра. Каждый рабочий цикл МП есть реакция на прерывание (выполнение подпрограммы обслуживания прерывания), поэтому после обслуживания прерывания по команде возврата из подпрограммы в каждом рабочем цикле МП возвращается в состояние останова (в состояние ожидания очередного прерывания).

Обоснование аппаратной части устройства.

По заданию необходимо спроектировать цифровое устройство, работающее как фазовое звено. Это устройство надо выполнить на наборе К1821 и АЦП КР572ПВ3, имеющем разрядность 8. Набор К1821 состоит из микропроцессора К1821ВМ85, ПЗУ ёмкостью 2К x8 бит и двух 8 - разрядных портов ввода-вывода КР1821РФ55, статического ОЗУ ёмкостью 258 x8 (2048) бит, двух 8 - разрядных и одного 6 - разрядного портов ввода-вывода и 14-разрядного программируемого счётчика - таймера КР1821РУ55.

Полная структурная схема фильтра должна содержать и дополнительные аппаратные узлы.

АЦП КР572ПВ3 предназначен для преобразования аналогового сигнала, поступающего на вход фильтра, в цифровой код, который поступает в порт ввода РAРУ55.

Тактирование АЦП осуществляется от генератора тактовых импульсов, входящего в состав МП. Чтобы обеспечить тактовую частоту в пределах 0,4…1,5 МГц применен двоичный реверсивный счётчик К555ИЕ7.

Тактирование АЦП осуществляется тактовыми импульсами CLKМП-системы, поступающими через логическую схему И (микросхема К155ЛИ5) на тактовый вход СLKАЦП. Высокий уровень сигнала /BUSY, устанавливающийся при окончании преобразования в АЦП, подаётся через инвертор (микросхема К155ЛН1) на логическую схему И, прекращая поступление импульсов CLKна тактовый вход

Операционный усилитель К154УД3 используется как согласующий усилитель, на который подается входное напряжение.

К1100СК2В - схема выборки и хранения. Используется для предотвращения потери данных на входе АЦП.

Разработка и отладка программы на языке команд микропроцессора.

Рабочая программа разработана на основе спроектированного алгоритма функционирования устройства и результатов анализа и формализации задачи. Программа привязана к минимальной конфигурации аппаратной части фильтра.

Распределение памяти ПЗУ:

0000h….003Bh - программа инициализации;

003Ch….07FFh - программа реакции на прерывание RST7.5.

Распределение памяти ОЗУ:

5000h, 5001h, 5002h - хранение отсчетов xn,xn - 1, xn - 2;

5003h, 5004h, 5005h - хранение отсчетов yn,yn - 1, yn - 2;

5006h, 5007h - хранение произведений p1n,p2n;

50FFh - начальный адрес стека.

; Программа “Фазовое звено

; Автор: студент гр.215 Доронин Максим Олегович

; Дата: 25 марта 2005 г.

; Разностное уравнение: yn= 0,85 xn+ xn - 2 - 0,85 yn - 2;

; Определение символических имен

PARU.EQU7001h; порт РА (РУ55)

PBRU.EQU7002h; порт РB (РУ55)

RGRU.EQU7000h; регистр управляющего слова (РУ55)

TL.EQU7004h; младший байт таймера

TH.EQU7005h; старший байт таймера

STL.EQUBBh; младшее слово для загрузки в тай-

; мер

STH.EQUC0h; старшее слово для загрузки в таймер

SRU.EQUC2h; управляющее слово для настройки

; портов и пуска таймера (РУ55)

SPR.EQU1Bh; управляющее слово для настройки

; прерываний

АХ.EQU5000h; адрес отсчета xn

АХ1.EQU5001h; адрес отсчета xn-1

АХ2.EQU5002h; адрес отсчета xn-2

АY.EQU5003h; адрес отсчета yn

АY1.EQU5004h; адрес отсчета yn-1

АY2.EQU5005h; адрес отсчета yn-2

АP1.EQU5006h; адрес произведения p1n

АP2.EQU5007h; адрес произведения p2n

; Инициализация по сигналу “Сброс”

.ORG0; начальный адрес программного

; модуля инициализации

DI; запрет прерываний

LXISP, 50FFh; организация стека

MVIA, STL; настройка таймера на частоту пере-

STATL; полнения Т = ТД в режиме 3

MVI A, STH;

STA TH;

MVIA, SRU; настройка порта PA (РУ55) на ввод,

STARGRU; порта РB (РУ55) на вывод по сигналу

; готовности и квитирования

; и пуск таймера

MVIA, SPR; настройка режима прерываний

SIM;

EI; разрешение прерываний

M1: HLT; останов, ожидание прерывания

JMPM1; переход на команду останова

; процессора по окончании подпро-

; граммы обслуживания прерывания