Смекни!
smekni.com

Разработка цифрового фазового корректора (стр. 2 из 3)

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

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


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

INTRA (B) – запрос прерывания по порту РА (РВ); BFA (B) – буфер порта РА (РВ) полон ( занят); STBA (B) – управляющий сигнал записи, соответствующий порту РА (РВ).

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

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


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

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

Таймер настроен на 3 – ий режим работы (ТМ1 = 1; ТМ2 = 1); Линии порта С используются в соответствии с выше приведённой таблицей при РС2 = 0 и РС1 = 0; Порт В настроен на вывод данных ( РВ = 1); Порт А настроен на вывод данных по сигналу готовности и квитирования ( РА = 1). При настройке режимов прерывания необходимо разрешить прерывание МП типа RST 6,5 по вводу

По команде SIMобеспечивается установка нового состояния маски в соответствии с содержимым аккумулятора:
A7 A6 A5 A4 A3 A2 A1 A0
SOD SDEN - R 7,5 MSEN M 7,5 M 6,5 M 5,5

А0 – А2 – соответственно маски RST 5.5, RST 6.5, RST 7.5;

А3 – разрешение установки маски; А4 – сброс триггера приема запроса RST 7.5; А5 – не используется; А6 – разрешение вывода данных; А7 – бит данных для вывода через SOD.

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

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


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

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

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

При подаче питания , схема сброса формирует импульсы сброса , который обнуляет счетчик команд МП и инициирует формирование импульса сброса RESETдля установки МП - системы в исходное состояние. Запускается программа инициализации МП – системы, которая должна начинаться с нулевого адреса. При инициализации:

- в указатель стека SPзаписывается начальный адрес , с которого начинается стек;

- порт PA (РФ55) настраивается на ввод данных ; в регистр направления передачи записывается управляющее слово;

- таймер настраивается на период переполнения , равным

в режиме 3;

- порт PA (РУ55) настраивается на ввод ;

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

- настройка режима прерывания.

Программа инициализации завершается остановом МП. Из состояния останова МП выводится сигналом INTRA , поступающим на вход RST 7.5 МП. Последующие операции выполняются под управлением рабочей программы фильтра. Выполнение рабочей программы - это реакция на прерывание, поэтому после обслуживания прерываний по команде возврата из подпрограммы МП возвращается в состояние останова.

Рис. 2. Общий алгоритм функционирования фильтра

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

Основой аппаратной части устройства является многопроцессорный набор К1821 , в состав которого входят три микросхемы:

- К1821ВМ85 – микропроцессор;

- КР1821РФ55 – ПЗУ с двумя портами ввода/вывода , работающими в режиме простого обмена;

- КР1821РУ55 – ОЗУ, таймер и два направленных порта ввода/вывода. Выходной сигнал должен иметь аналоговый вид, для преобразования цифрового кода в аналоговый сигнал , используя ЦАП типа К572ПА1.

Микросхема ЦАП К572ПА1 преобразует 10 – разрядный входной параллельный двоичный код в ток на аналоговом выходе, пропорциональный значениям кода и опорного напряжения.

Для преобразования кода в ток используют внешний источник опорного напряжения и матрица резисторов R – 2R.

В устройство РФ55 входит ПЗУ емкостью 2К х 8 бит и два 8-разрядных порта ввода – вывода. Каждая линия обоих портов может программироваться индивидуально и определяться как входная или выходная. Порты могут работать только в режиме простого обмена без каких-либо сопровождающих сигналов, причем выводимый байт запоминается в буферном регистре порта, а вводимый – не запоминается.

В устройство РУ55 входит статическое ОЗУ емкостью 258 х 8 бит, два 8-разрядных (А и В) и один 6-разрядный (С) порты ввода-вывода и 14-разрядный программируемый счетчик/таймер. Все разряды портов А и В используются для ввода-вывода параллельно, т.е. невозможна установка направления передачи индивидуально для каждого разряда. Порты А и В содержат буферные регистры для запоминания пересылаемого байта данных.

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

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

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

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

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

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

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

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

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

5006h, 5007h, 5008h, 5009h – хранение произведений p 1n, p2n, p 3n, p 4n;

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

;Программа "Фазовый корректор"

;Автор: студент гр.114 Тришин Сергей Викторович

;Дата: 10 апреля 2004 г.

;Разностное уравнение: yn= 0,988 xn– 1,6 xn – 1 + xn – 2 + 1,6 yn – 1 –0,988 yn – 2;

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


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



Листинг программного модуля вычисления выходного отсчета


С целью проверки на переполнение осуществлен ручной и машинный просчет программы. В качестве исходного случая взят случай, когда все отсчеты имеют максимальное значение.

Xn= 1(10)= 0,1111111(2) = 7F(16);

Xn-1 = –1(10)= 1,0000000(2) = 80(16);

Xn-2 = 1(10)= 0,1111111(2) = 7F(16);

Yn-1 = 1(10)= 0,1111111(2) = 7F(16);

Yn-2 = –1(10)= 1,0000000(2) = 80(16);

kМ = 0,1619(10)» 0,0010100(2) = 0,15625;

xn=XnkМ=0,9921875*0,15625= 0,155029296(10)»0,0010011(2) = 13(16);

xn-1=Xn-1kМ=–1*0,15625=–0,15625 (10)»1,1101100(2)= EC(16);

xn-2=Xn-2kМ=0,9921875*0,15625= 0,155029296(10)»0,0010011(2) = 13(16);

yn-1=Yn-1kМ=0,9921875*0,15625= 0,155029296(10)»0,0010011(2) = 13(16);

yn-2=Yn-2kМ=–1*0,15625=–0,15625 (10)»1,1101100(2)= EC(16);

Разностное уравнение имеет вид: yn= pn1 + pn2+ xn-2 + pn3+ pn4 , где с учётом погрешности

pn1=0,984375*xn, pn2=1,59765625*xn-1,

pn3=1,59765625*yn-1, pn4=0,984375*yn-2.

pn1=0, 984375*0,1484375=0,146118164 (10)» 0,0010010(2) = 12(16);

pn2=ï pn2ï=ï1,59765625*(–0,15625)ï=ï–0,24963379(10)ï» 0,0011111(2) = 1F(16);

pn3=1,59765625*0,1484375=0,237152099(10)» 0,0011110(2) = 1E(16);

pn4=ïpn4ï=ï0, 984375*(–0,15625)ï=ï–0,153808593(10)ï» 0,0010011(2) = 13(16);

yn=12 (16)+1F (16)+ 1E (16)+ 13 (16)=62(16).


Таким образом при ручном просчёте переполнения не произошло.

Машинный просчёт программного модуля вычисления выходного отсчета представлен на рисунке :

Результат машинного просчёта совпадает с результатом ручного просчёта. Таким образом в процессе выполнения программы переполнения не происходит.

6. Составление и описание электрической принципиальной схемы устройства

Электрическая принципиальная схема цифрового фазового корректора содержит следующие микросхемы:

DD1 – МП К1821ВМ85

DD2 – ПЗУ КР1821РФ55

DD3 – ОЗУ КР1821РУ55