Смекни!
smekni.com

Проектирование цифрового фильтра верхних частот (стр. 2 из 3)

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


4. Синтез операционного узла (выбор и обоснование аппаратной части устройства)

Однокристальный МП К1821ВМ85 (ВМ85) является усовершенствованной версией МП КР580ВМ80 (ВМ80). Разработка ВМ85 была направлена на повышение производительности, уменьшение числа БИС, необходимых для построения законченного МП устройства. В результате на одном кристалле размещено устройство, функционально эквивалентное трем БИС: микропроцессору ВМ80, генератору тактовых импульсов ГФ24 и системному контроллеру ВК28/ВК38. МП ВМ85 более экономичный (технология КМОП), использует только один источник питания (+5 В), имеет мультиплексированную шину адреса/данных, расширенные возможности обработки прерываний.

Система команд ВМ85 включает весь набор команд ВМ80 в их старой кодировке, что гарантирует полную совместимость с программным обеспечением МП ВМ80 на уровне объектного кода. Вместе с этим в состав системы команд ВМ85 введены новые: SIM (установка маски прерывания) и RIM (чтение маски прерывания). Есть модификации Intel 8085, в которых 12 дополнительных команд, включая SIM и RIM.

Команды SIM и RIM расширяют средства обработки прерываний и обеспечивают последовательный ввод – вывод.

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

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

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

А4 – сброс триггера приема запроса RST 7.5;

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

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

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

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

Команда RIM читает текущее состояние масок в аккумулятор в соответствии со следующим распределением:

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

A3 - флаг разрешения прерывания;

А4 – А6 – соответственно флаги запросов RST 5.5, RST 6.5, RST 7.5;

А7 – бит данных с входа SID.

Запросы на прерывания строго упорядочены, как это показано в таблице. Установленная приоритетная схема разрешает конфликт при одновременном появлении нескольких запросов и не учитывает текущего приоритета программы.

Тип прерывания Приоритет Стартовый адрес
TRAP 1 (высш.) 0024Н
RST 7.5 2 003СН
RST 6.5 3 0034Н
RST 5.5 4 002СН
INTR 5 (низш.) Вводится при подтверждении прер.

5. Синтез управляющего узла (разработка программы на языке микропроцессора)

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

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

5000h – хранение отсчета xn;

5001h – хранение отсчета xn – 2;

5002h – хранение отсчета yn – 1;

5003h – хранение произведений p 1n;

5004h – хранение произведений p2n;

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

;Программа: "Фильтр высоких частот"

;Автор: Халява Валентина Сергеевна

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

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

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

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

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

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

MVIA, 0FFh ;настройка порта РА (РФ55) на вывод

STA02h ;

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

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

MVI A, 0C1h ;

STA F005h ;

MVIA, 0C0h ;настройка порта РА (РУ55) на ввод

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

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

SIM ;

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

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

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

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

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

;реакции на прерывание типа RST 7.5

PUSHPSW ;

LDA5000h ;загрузка в аккумулятор значения xn

STA0800h ;

POP PSW ;восстановление аккумулятора

RET ;возврат из подпрограммы обслуживания к основной

;программе

LDA01h ;ввод текущего кода АЦП в аккумулятор

ADIh ;получение дополнительного кода для текущего отсчета

;программный модуль масштабирования:

;вычисления произведения

; xn:= xn = 20xn;

;входной отсчет хранится в аккумуляторе, масштабированный

; отсчет записать в ячейку ОЗУ с адресом АХ

MOVH, A ; xn®H

ADDH ;арифметические сдвиги входного

;отсчета и накопление суммы частичных

;произведений в аккумуляторе: 20xn® А

STA00h ;запоминание отсчета xn в памяти

;программный модуль вычисления произведения:

;p1n = 1,1 xn» 1,00011001xn = ( 20 + 2-4 + 2-5 + 2- 8) xn;

;xn хранится в ячейке ОЗУ с адресом X2;

;p1n записать в ячейку ОЗУ с адресом P1

LDA X2 ; Xn-2® H

MOV H, A ;

MOVA, H ;арифметические сдвиги отсчета xn

ARHL;и накопление суммы частичных

ARHL ;произведений в аккумуляторе:

ARHL ; ( 20 + 2-4 + 2-5 + 2- 8) xn®А

ARHL ;

ADD H ;

ARHL ;

ADD H ;

ADD H ;

ARHL ;

ARHL ;

ADD H ;

STA03h ;запоминаниеp1nвпамяти

;программный модуль вычисления произведения:

;p2n = 0,999 yn-1» 0, 11111111 yn-1

; = ( 2-1 + 2-2 + 2-3 + 2-4 + 2-5 + 2-6 + 2- 7+2- 8)yn-1;

;yn-1 хранится в ячейке ОЗУ с адресом Y1;

;p2n записать в ячейку ОЗУ с адресом P2

LDA Y1 ; yn-1® A

MOV H, A ; yn-1® H

ARHL ;арифметические сдвиги отсчета yn-1

MOVA, H ;и накопление суммы частичных

ARHL ; произведений в аккумуляторе:

MOVA, H ; ( 2-1 + 2-2 + 2-3 + 2-4 + 2-5 + 2-6 + 2- 7+2- 8)yn-1® А

ARHL ;

MOV A, H ;

ARHL ;

MOV A, H ;

ARHL ;

MOV A, H ;

ARHL ;

MOV A, H ;

ARHL ;

MOV A, H ;

ARHL ;

ADD H ;

STA04h ;запоминание p2n в памяти

;программный модуль вычисления промежу-

;точного и выходного отсчета:

; yn = xn– xn - 2 – p2n– p3n

;слагаемые хранятся в ячейках ОЗУ, результат

;вычисления записать в ячейки ОЗУ

LDA00h ; xn®A

LXIH, 5001h ;загрузка адреса xn - 1

SUBM ; xn - xn - 2®A

INXH ;получение адреса vn – 1

INX H ;

SUB M ; xn - xn – 2 - vn – 1® A

LXIH, 5003h ;загрузка адреса p 1n

SUB M ; xn - xn –2 - vn –1 - p 1n® A

STA02h ;запоминание yn-2 в памяти

LXIH, 5001h ;загрузка адреса xn –2

SUBM ;xn - xn - 2®A

LXIH, 5004h ;загрузка адреса p 2n

SUB M ; x n - x n - 2 - p 2n® A

STA05h ;запоминание yn в памяти

ADIh ;получение смещенного входного

;кода ЦАП

STA00h ;вывод кода на ЦАП через порт РА (РФ55)

;программный модуль сдвига отсчетов памяти

LHLD00h ;

SHLD01h ;

LHLD05h ;

SHLD06h ;

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


6. Оценка быстродействия устройства

Быстродействие фильтра в рабочем режиме оценим как время, необходимое для обработки каждого прерывания процессора. Рабочая программа фильтра линейная (не содержит разветвлений), поэтому общее число машинных тактов, требуемых для выполнения программы, получим как сумму машинных тактов всех последовательно выполняемых команд, составляющих рабочий цикл процессора. Сумма машинных тактов для рабочего цикла приведенной выше программы равна 531. Из этого следует вывод, что процессор не успеет выполнить подпрограмму обслуживания прерывания за интервал дискретизации TД. При частоте FCLK МП = 1,5 МГц FД = 4.3 кГц (349 машинных тактов процессора). Поэтому тактовая частота процессора должна быть увеличена. Примем FCLK МП = 3 МГц, что для заданной БИС МП допустимо, но при этом следует вернуться к вопросам формирования тактовых импульсов для АЦП и входных импульсов таймера.

Повышение тактовой частоты МП может быть также необходимым, если ставить задачу увеличения динамического диапазона представления данных для входного сигнала. При однобайтной обработке данных вследствие масштабирования шумы квантования увеличиваются в kМ раз. Их уменьшения можно добиться переходом к двухбайтному представлению данных при хранении и обработке, что приведет, естественно, к увеличению длины программы и числа машинных тактов для ее реализации.

Уточнение аппаратной части фильтра

Принятые ранее решения по аппаратной части и программе изменятся в минимальной степени, если при FCLK МП = 3 МГц тактовые импульсы для АЦП и таймера с частотой FCLK АЦП= FCLK Т = 1,5 МГц получить путем деления в два раза в счетном триггере. Для этого можно применить ИС КМОП К564ТВ1 (сдвоенный JK-триггер с динамическим тактовым входом и асинхронными RS-входами).


7. Расчёт АЧХ фильтра

Разностное уравнение проектируемого фильтра в общем виде можно представить следующим образом:

yn = b 20X n + b 21X n – 1 + b 22X n – 2 – a 21 y n – 1 – a 22 y n – 2.

Коэффициенты b1i , a1i , b2i , a2iопределяют характеристики фильтра. При значениях коэффициентов фильтр имеет АЧХ фильтра верхних частот

b 20 = 1;b 21 = 0;b 22 = 1.1; a 21 = 0.999;a 22 = 0.000

Разностное уравнение задает во временной области порядок получения выходной последовательности отсчетов из входной. В z-плоскости свойства цифрового фильтра описывает передаточная функция H(z), которая при двухкаскадной структуре и для приведенного выше разностного уравнения имеет вид: