Проектирование цифрового фильтра верхних частот
Курсовая работа предусматривает проектирование специализированного микропроцессорного устройства, работающего в реальном времени и выполняющего необходимый набор и необходимую последовательность операций над входным сигналом для его обработки по принципу сглаживающего фильтра.
Фильтр должен быть выполнен на основе МП комплекта К1821 при использовании ЦАП 572ПА2. МП комплект К1821 состоит из микросхем: К1821ВМ85 - микропроцессор, К1821РФ55 тАУ ПЗУ (емкость тАУ 2 Кб; два 8-разрядных порта ввода-вывода), К1821РУ55 тАУ ОЗУ (емкость тАУ256 байт; два 8-разрядных и один 6-разрядный порты ввода-вывода, встроенный счетчик-таймер).
Проектируемое устройство, его базовая конфигурация должны содержать минимальные аппаратные и программные средства, достаточные для выполнения поставленной выше задачи обработки.
2. Анализ задачи и её формализация
Минимальная конфигурация МП-системы на основе набора К1821, характеристики АЦП (572ПВ3) и технические требования по обеспечению их работы определяют функциональную схему фильтра, приведенную на рис. 1.
Входное напряжение UВХ через согласующий усилитель подается на вход AI1 АЦП. Согласующий усилитель включен с целью увеличения размаха входного напряжения до требуемого для работы АЦП. Сдвиг входного напряжения в рабочую область АЦП осуществляет напряжение UCМ, поступающее на вход AI2. Опорное напряжение UОП1 требуется для работы АЦП, входящего в состав БИС 572ПВ3.
Коэффициент усиления усилителя: КСОГЛ = DUАЦП/DUВХ = 1,25.
Напряжение смещения: UСМ = DUАЦП/2 = +5 В.
Опорное напряжение: UОП1 = - 10 В.
Сброс и запуск АЦП осуществляется по входу /RD (при постоянном значении /CS = 0) импульсом низкого уровня с выхода TOUT таймера, настроенного на формирование импульсов с частотой дискретизации FД=4.3 кГц.
Тактирование регистра последовательных приближений АЦП осуществляется тактовыми импульсами CLK МП-системы, поступающими через логическую схему И на тактовый вход СLK АЦП. Высокий уровень сигнала /BUSY, устанавливающийся при окончании преобразования, прекращает поступление импульсов CLK на тактовый вход АЦП.
Тактовая частота преобразования АЦП не должна превышать 1,5 МГц, поэтому примем FCLK АЦП = FCLK МП = 1,5 МГц.
Время преобразования текущего отсчета входного напряжения в код составляет 8 периодов тактовой частоты: tПР = 8TCLK АЦП = 5,3 мкс.
Схема выборки и хранения (СВХ) необходима, если за время tПР = 5,3 мкс самый быстроизменяющийся сигнал (синусоида с частотой
fВ = 0,5FД и с максимальной амплитудой) изменяется на относительную величину, превышающую половину шага квантования h:
0,5h = 0,5/28 = 0,00195. Максимальное изменение синусоиды на интервале tПР равно Dx = sin 2pfВtПР =0,00249. Dx > 0,5h, поэтому СВХ для хранения текущего отсчета сигнала на время преобразования АЦП требуется.
Частота дискретизации FД = 4,3 кГц формируется аппаратным таймером РУ55, в котором частота переполнения FП в режиме 3 равна FД При использовании в качестве входных импульсов таймера тактовых импульсов CLK МП-системы (FCLK МП = 1,5 МГц) исходное состояние таймера равно NТАЙМЕРА = FCLK МП/FД = 449(10) = 00 0001 1100 0001 (2). При дополнении 14-разрядного двоичного кода NТАЙМЕРА двумя битами 11, задающими режим 3, получаем байты NСТ = 1100 0001(2) = C1(16), NМЛ = 1100 0001(2) = C1(16), которые загружаются в таймер при инициализации фильтра.
Согласование кода АЦП и МП необходимо, так как числовые значения на выходе АЦП не отображают значения знакопеременного входного сигнала вследствие подачи на вход AI2 напряжения смещения UСМ. Согласование можно выполнить смещением диапазона изменения чисел на выходе АЦП в отрицательную область путем вычитания из каждого значения выходного кода константы 1000 0000(2) - половины от максимального значения выходного кода АЦП (прибавление дает тот же результат).
Форма представления чисел (числовых значений отсчетов входного сигнала) тАУ правильная дробь с фиксированной запятой: старший разряд тАУ знаковый, запятая, остальные двоичные разряды тАУ числовые. Таким образом, числовые значения входного сигнала изменяются в диапазоне от тАУ 1 до + 1.
Ввод данных в МП осуществлять по сигналу готовности АЦП, используя для этого прерывание МП оповещающим сигналом /BUSY. Выберем аппаратное прерывание динамического типа - RST 7.5, которое разрешается при установке маски прерывания командой SIM. Для ввода данных определим порт РА (РУ55) в режиме простого ввода без квитирования.
Необходимость хранения данных вытекает из вида заданного разностного уравнения.
В данной программе хранение данных в текущем цикле обработке входного сигнала (в текущем интервале дискретизации) не требуется.
Переполнение разрядной сетки имеет место, если при вычислении разностного уравнения получен числовой результат, выходящий за пределы - 1, + 1 при принятом 8-разрядном формате представления данных. Для исключения переполнения разрядной сетки введем масштабирование (ослабление) входных отсчетов путем их умножения на коэффициент масштабирования kМ < 1, при котором вычисление разностного уравнения никогда не дает недопустимого результата.
Коэффициент kМ получим, предположив, что отсчеты в разностном уравнении принимают максимальные значения (- 1, + 1) и такие знаки, при которых слагаемые разностного уравнения складываются по модулю, то есть складываются по модулю коэффициенты.
Подставив xn в уравнение для вычисления yn и просуммировав по модулю коэффициенты, получим yn мах = 1+1,1+0.999=3,099, что является недопустимым результатом. Отсюда заданный коэффициент масштабирования
kМ = 1/ yn мах = 0,3226847.
Реальные значения коэффициентов разностного уравнения и коэффициента kМ отличаются от заданных вследствие ограничения длины разрядной сетки:
b20 = 1(10) В» 1(2) = 1 (10);
b22 = 1,1(10) В» 1,00011001(2) = 1, 09765625 (10);
a21 = 0,999(10) В» 0,11111111(2) = 0.99609375 (10);
kМ = 0,3226847 (10) В» 0,01010010(2) = 0.32031250 (10).
По этой причине форма и параметры реальных частотных характеристик фильтра (АЧХ, ФЧХ) отличаются от расчетных. Могут также нарушаться условия устойчивости фильтра.
Алгоритм умножения на коэффициент (на константу без знака) целесообразно реализовать программным способом на основе алгоритма умножения вручную: арифметические сдвиги множимого вправо, соответствующие позициям единиц множителя, и накопление суммы частичных произведений. Разряды множимого, выходящие в результате сдвига за границу разрядной сетки, теряются.
Исходное состояние аппаратной части и программы фильтра устанавливается при включении питания по сигналу аппаратного узла сброса (схемы сброса). При этом:
В· программный счетчик (ВМ85) принимает нулевое значение;
В· сбрасывается флаг разрешения прерываний (ВМ85);
В· все линии портов РА и РВ (РФ55) настраиваются на ввод;
В· порты РА, РВ, РС (РУ55) настраиваются на ввод в режиме простого обмена данными;
В· таймер (РУ55) останавливается;
В· содержимое ячеек ОЗУ и буферных регистров портов (РУ55) сохраняется.
Из этого следует, что переходу фильтра в рабочий режим должна предшествовать его настройка (инициализация) на обеспечение принятого принципа функционирования, выбранных режимов работы узлов, заданных рабочих характеристик.
3. Разработка общего алгоритма функционирования фильтра
Общий алгоритм функционирования фильтра строится на основе выводов и определений, сделанных при анализе задачи, и включает в себя все функции устройства, реализуемые аппаратно и реализуемые программно. Он содержит также все сигналы и сообщения, необходимые для взаимосвязи аппаратно-реализуемых и программно-реализуемых операций (сигналы и сообщения, которые обеспечивают взаимодействие аппаратной части фильтра и программы).
Общий алгоритм функционирования фильтра приведен на рис. 2.
Работа фильтра начинается с подачи питания на схему сброса. Импульс, сформированный схемой сброса (аппаратный узел), обнуляет счетчик команд МП и инициирует формирование импульса сброса RESET для установки МП-системы в исходное состояние.
Таким образом запускается программа инициализации МП-системы, которая должна начинаться с нулевого адреса. При инициализации: разрешаются прерывания МП типа RST 7.5; в указатель стека SP записывается начальный адрес, с которого начинается стек; порт РА (РУ55) настраивается на ввод, а порт РА (РФ55) тАУ на вывод; таймер (аппаратный узел) настраивается на период переполнения, равный ТД в режиме 3; таймер запускается для формирования непрерывной последовательности импульсов с частотой дискретизации FД, которые используются далее для взятия отсчетов входного сигнала и запуска АЦП (аппаратного узла). Программа инициализации завершается операцией останова МП.
Из состояния останова МП выводится сигналом /BUSY (код АЦП готов), поступающим на вход RST 7.5 МП.
Последующие операции (ввод, вывод, преобразование кодов, оперативные обращения к памяти, арифметические преобразования) в каждом цикле работы фильтра выполняются под управлением рабочей программы фильтра.
Каждый рабочий цикл МП есть реакция на прерывание (выполнение подпрограммы обслуживания прерывания), поэтому после обслуживания прерывания по команде возврата из подпрограммы в каждом рабочем цикле МП возвращается в состояние останова (в состояние ожидания очередного прерывания).
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 тАУ хранение отсчета x n тАУ 2;
5002h тАУ хранение отсчета y n тАУ 1;
5003h тАУ хранение произведений p 1n;
5004h тАУ хранение произведений p 2n;
50FFh тАУ начальный адрес стека.
;Программа: "Фильтр высоких частот"
;Автор: Халява Валентина Сергеевна
;Разностное уравнение: yn = xn +1.1x n тАУ 2 + 0,999 y n тАУ 2;
;Инициализация по сигналу "Сброс"
.ORG 0ВаВаВаВаВаВа ;начальный адрес программного
;модуля инициализации
DIВаВаВаВа ;запрет прерываний
LXIВаВа SP, 50FFhВа ;организация стека
MVIВа A, 0FFhВаВаВаВаВа ;настройка порта РА (РФ55) на вывод
STA02hВаВаВаВаВаВаВаВаВаВаВаВаВаВа ;
MVIВа A, 05DhВаВаВаВа ;настройка таймера на частоту пере-
STAВа F004hВаВаВаВаВаВаВаВа ;полнения Т = ТД в режиме 3
MVIВа A, 0C1hВаВаВаВа ;
STAВа F005hВаВаВаВаВаВаВаВа ;
MVIВа A, 0C0hВаВаВаВа ;настройка порта РА (РУ55) на ввод
STA00hВаВаВаВаВаВаВаВаВаВаВаВаВаВа ;и пуск таймера
MVIВа A, 1AhВаВаВаВаВаВа ;настройка режима прерываний
SIMВаВа ;
EIВаВаВаВаВа ;разрешение прерываний
M1:ВаВа HLTВа ;останов, ожидание прерывания
JMPВа M1ВаВаВа ;переход на команду останова процессора по
; окончании подпрограммы обслуживания прерывания
.ORG 3ChВа ;начальный адрес программной
;реакции на прерывание типа RST 7.5
PUSH PSWВаВаВаВаВаВаВаВа ;
LDA 5000hВаВаВаВаВаВаВаВа ;загрузка в аккумулятор значения xn
STA 0800h ;
POP PSWВаВа ;восстановление аккумулятора
RETВа ;возврат из подпрограммы обслуживания к основной
;программе
LDA01hВаВаВаВа ;ввод текущего кода АЦП в аккумулятор
ADIh ;получение дополнительного кода для текущего отсчета
;программный модуль масштабирования:
;вычисления произведения
; xn:= xn = 20xn;
;входной отсчет хранится в аккумуляторе, масштабированный
; отсчет записать в ячейку ОЗУ с адресом АХ
MOV H, AВаВаВаВаВаВаВаВаВаВа ; xn Во H
ADD HВаВаВаВаВаВа ;арифметические сдвиги входного
;отсчета и накопление суммы частичных
;произведений в аккумуляторе: 20 xn Во А
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Ва ;
MOV A, 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
MOV A, H Ва;и накопление суммы частичных
ARHLВаВаВаВаВаВаВа ; произведений в аккумуляторе:
MOV A, 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 в памяти
;программный модуль вычисления промежу-
;точного и выходного отсчета:
; y n = x nтАУ x n - 2 тАУ p 2nтАУ p 3n
;слагаемые хранятся в ячейках ОЗУ, результат
;вычисления записать в ячейки ОЗУ
LDA00hВаВаВаВа ; xn Во A
LXIВаВа H, 5001hВаВаВа ;загрузка адреса xn - 1
SUBВа MВаВаВаВаВа ; xn - xn - 2Во A
INXВаВа HВаВаВаВаВаВа ;получение адреса vn тАУ 1
INXВаВа HВаВаВаВаВаВа ;
SUBВа MВаВаВаВаВа ; xn - xn тАУ 2 - vn тАУ 1Во A
LXIВаВа H, 5003hВаВаВа ;загрузка адреса p 1n
SUBВа MВаВаВаВаВа ; xn - xn тАУ2 - vn тАУ1 - p 1n Во A
STA02hВаВаВаВа ;запоминание yn-2 в памяти
LXIВаВа H, 5001hВаВаВа ;загрузка адреса xn тАУ2
SUBВа MВаВаВаВаВа ;xn - xn - 2 Во A
LXIВаВа H, 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), которая при двухкаскадной структуре и для приведенного выше разностного уравнения имеет вид:
При z = e jwT = e j2pfT, где Т = ТД, сигнал на входе фильтра тАУ синусоида с частотой f и с единичной амплитудой, а функция H(e j2pfT) равна частотной характеристике фильтра, из которой можно получить АЧХ и ФЧХ.
Значения коэффициентов разностного уравнения определяют форму и параметры частотных характеристик, поэтому для выявления влияния их приближенного представления следует рассчитать АЧХ при заданных (точных) и реальных (приближенных) значениях коэффициентов:
AT(f) = ôHТ(e j2pfT)ô и AР(f) = ôHР(e j2pfT)ô.
Заключение
В данной курсовой работе была построена схема цифрового устройства и разработана программа, обеспечивающая работу данного устройства как цифрового фильтра верхних частот. Устройство имеет высокое быстродействие и в полной мере удовлетворяет требованиям технического задания. Цифровые фильтры имеют свои преимущества и недостатки перед аналоговыми.
Аналоговые фильтры физически реализуемы, если в их передаточных функциях степень полинома числителя не выше степени полинома знаменателя. Цифровые фильтры не предъявляют таких ограничений, и, таким образом, они могут иметь характеристики, добиться которых в аналоговых фильтрах невозможно.
К недостаткам цифрового фильтра можно отнести неточность представления коэффициентов вследствие ограниченной разрядности процессора.
Список использованных источников
1. Рафикузаман М. Микропрцессоры и машинное проектирование микропроцессорных систем: В 2-х кн. Пер. С англ.-М.: Мир, 1988.
2. Микропроцессорный комплект К1810: Структура, программирование, применение: Справочная книга/ Ю.М. Казаринов, В.Н. Номоконов, Г.С. Подклетнов, Ф.В. Филиппов; Под ред. Ю.М. Казаринова.- М.: Высш. шк., 1900.
3. Проектирование импульсных и цифровых устройств радиотехнических систем: Учеб. Пособие для радиотехнич. спец. вузов/Гришин Ю.П., Катаков В.М. и др.; Под ред. Ю.М. Казаринова. тАУ М.: Высш. шк., 1985.
4. Калабеков Б.А. Микропроцессоры и их применение в системах передачи и обработки сигналов: Учеб. пособие для вузов. тАУМ.: Радио и связь, 1988.
5. Микропроцессоры: системы программирования и отладки / В.А. Мясников, М.Б. Игнатьев, А.А. Кочкин, Ю.Е. Шейнин; Под ред. В.А. Мясникова, М.Б. Игнатьева. тАУ М.: Энергоатомиздат, 1985.
6. Балашов Е.П. и др. Микро- и мини-ЭВМ / Е.П. Балашов, В.Л. Григорьев, Г.А. Петров: Учебное пособие для вузов. тАУ Л.: Энергоатомиздат. Ленингр. отд-ние, 1984.
Вместе с этим смотрят:
IP-телефония. Особенности цифровой офисной связи