Биты РА и РВ управляющего слова задают направление передачи данных через порты РА и РВ ( 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-разрядный программируемый счетчик/таймер. Все разряды портов А и В используются для ввода-вывода параллельно, т.е. невозможна установка направления передачи индивидуально для каждого разряда. Порты А и В содержат буферные регистры для запоминания пересылаемого байта данных.
Для преобразования выходного тока в выходное напряжение, пропорциональное значению входного кода, требуются внешние операционные усилители (ОУ) с цепью отрицательной обратной связи.
Рабочая программа разработана на основе спроектированного алгоритма функционирования устройства и результатов анализа и формализации задачи. Программа привязана к минимальной конфигурации аппаратной части фильтра.
Распределение памяти ПЗУ:
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).
Таким образом при ручном просчёте переполнения не произошло.
Машинный просчёт программного модуля вычисления выходного отсчета представлен на рисунке :
Результат машинного просчёта совпадает с результатом ручного просчёта. Таким образом в процессе выполнения программы переполнения не происходит.
Электрическая принципиальная схема цифрового фазового корректора содержит следующие микросхемы:
DD1 – МП К1821ВМ85
DD2 – ПЗУ КР1821РФ55
DD3 – ОЗУ КР1821РУ55