Скачать .docx |
Курсовая работа: Разработка цифрового фильтра
Министерство образования и науки РФ
РГРТА
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовому проекту по дисциплине:
«ЦИФРОВЫЕ УСТРОЙСТВА И МИКРОПРОЦЕССОРЫ»
Студент Агарков Д.Н.
Группа 215 Специальность 2015
2005
Содержание
Ведение
1. Формализация задачи
2. Разработка общего алгоритма функционирования устройства
3. Обоснование аппаратной части устройства
5. Разработка и отладка рабочей программы на языке команд микропроцессора
6. Составление и описание электрической принципиальной схемы устройства
7. Расчет быстродействия устройства
8. Расчет АЧХ устройства для заданных и реальных значений коэффициентов. Оценка устойчивости устройства
Заключение
Список использованных источников
Введение
В наши дни, развитие цифровых устройств происходит гигантскими шагами. Очевидно и преимущество применения цифровой обработки сигнала наряду с аналоговым: улучшается помехозащищенность канала связи, бесконечные возможности кодирования информации. Применение микропроцессоров в радиотехнических системах существенно улучшает их массогабаритные, технические и экономические показатели, открывает широкие возможности реализации сложных алгоритмов цифровой обработки сигналов.
Микропроцессоры находят применение при решении широкого круга радиотехнических задач, таких как построение радиотехнических измерителей координат, сглаживающих и экстраполирующих фильтров, устройств вторичной обработки сигналов, специализированных вычислительных устройств бортовых навигационных комплексов, устройств кодирования и декодирования сигналов, весовой обработки пачечных сигналов в радиолокации и в других устройствах. В данном курсовом проекте микропроцессор используется для построения цифрового фильтра.
Цифровой фильтр обладает рядом существенных преимуществ. Сюда относятся, например, высокая стабильность параметров, возможность получать самые разнообразные формы АЧХ и ФЧХ. Цифровые фильтры не требуют настройки и легко реализуются на ЭВМ программными методами.
В данном курсовом проекте фильтр должен быть выполнен на основе набора К1821 при использовании ЦАП К572ПА1. Набор К1821 состоит из микросхем: К1821ВМ85 - микропроцессор, КР1821РФ55 – ПЗУ (емкость – 2 Кб; два 8-разрядных порта ввода-вывода), КР1821РУ55 – ОЗУ (емкость –256 байт; два 8-разрядных и один 6-разрядный порты ввода-вывода, встроенный счетчик-таймер).
Входной сигнал цифровой, выходной аналоговый, преобразование из цифрового сигнала в аналоговый сигнал осуществляется при помощи ЦАП на микросхеме К572ПА1.
После прихода сигнала с периферийного устройства (ПУ) на порт ввода в дополнительном цифровом коде на ПУ выдаётся сигнал квитирования. Частота дискретизации FД = 5.5 кГц, разрядность входного сигнала 8. Обработка должна происходить в реальном масштабе времени.
Проектируемое устройство и его базовая конфигурация должны содержать минимальные аппаратные и программные средства, достаточные для выполнения поставленной выше задачи обработки.
1. Формализация задачи
Минимальная конфигурация МП-системы на основе набора К1821 (К1821ВМ85, КР1821РФ55,КР1821РУ55 ), совместно с ЦАП К572ПА1 и вспомогательными элементами определяет функциональную схему полосового фильтра, которая представлена на рис.1.
МП - система ЦАП
(ВМ 85, РФ 55, РУ 55) 572ПА1
Rос
Uвх
Uвых
Uоп
Рис.1. Функциональная схема проектируемого фильтра
Входное напряжение в виде кода поступает в порт PA БИС РУ55. Частота дискретизации =5.5 кГц формируется аппаратным таймером РУ55, в котором частота переполнения в режиме 3, равна . При использовании в качестве входных импульсов таймера тактовых импульсов CLKМП - системы (=3 МГц) исходное состояние таймера равно:
NТАЙМЕРА = FCLK МП /FД = 545(10) = 00 0010 0010 0001 (2)
При дополнении 14-разрядного двоичного кода NТАЙМЕРА двумя битами 1 1, задающими третий режим работы таймера, получаем байты :
Nст =11000010(2) =С2h
Nмл =00100001(2) =21h
Байты и загружаются при инициализации системы (фильтра).
Необходимость хранения данных вытекает из вида разностного уравнения. Уравнение использует входную выборку отсчетов (xn , xn -1, xn -2 ) и выходную выборку (yn , yn -2 ). Все выборки должны быть доступны для вычислений, а следовательно, должны храниться в памяти МП - системы. Требуется также вычислить три текущих произведения (p1 n =0.091xn -1 ; p2 n =0.13xn -2 ;
p3 n =0.98yn -2 )и сохранить их в памяти. Следовательно, 8 ячеек ОЗУ (РУ55) при составлении программы необходимо определить для хранения данных в текущем цикле обработки входного сигнала. После вычисления выходного и записи в ОЗУ, перед приемом нового входного отсчета, необходимо сдвинуть отсчеты всех выборок в памяти, (n-1) - й отсчет на место (n-2)-ого, а n -й на место (n-1)-ого. В результате вычисления разностного уравнения, можно получить результат, выходящий за пределы (-1,+1). Для исключения переполнения разрядной сетки, введем масштабирование входных отсчетов, путем умножения на коэффициент масштабирования < 1, при котором вычисление разностного уравнения никогда не дает недопустимого результата.Коэффициент получим, предположив, что отсчеты в разностном уравнении принимают максимальные значения (- 1, + 1) и такие знаки, при которых слагаемые разностного уравнения складываются по модулю, то есть складываются по модулю коэффициенты.
yn max =1+0.091+0.13+0.98=2.201
KM =1àyn max =0.454
Реальные значения коэффициентов разностного уравнения и коэффициента отличаются от заданных, вследствие ограничения длины разрядной сетки, по этой причине форма и параметры реальных частотных характеристик фильтра (АЧХ, ФЧХ) отличаются от расчетных. Могут также нарушаться условия устойчивости фильтра.
a=0.091(10) ≈ 0.0001011(2) =0.086(10)
b=0.130(10) ≈ 0.0010000(2) =0.125(10)
c=0.980(10) ≈ 0.1111100(2) =0.977(10)
KM =0.454(10) ≈ 0.0111010(2) =0.453(10)
Алгоритм умножения на коэффициент (на константу без знака) целесообразно реализовать программным способом на основе алгоритма умножения вручную: арифметические сдвиги множимого вправо, соответствующие позициям единиц множителя, и накопление суммы частичных произведений. Разряды множимого, выходящие в результате сдвига за границу разрядной сетки, теряются.
Согласование кода МП и кода ЦАП необходимо, так как по заданию входной код – дополнительный, Вычисленный отсчет , перед выводом на ЦАП суммируется с константой 10000000(2) . Вывод данных на ЦАП целесообразно осуществлять через порт PA (РФ55), этот порт имеет выходной буферный регистр, в котором отсчет хранится в течение всего интервала дискретизации.
Опорное напряжение для ЦАП UОП в схеме четырехквадрантного умножения определяет диапазон изменения напряжения на выходе фильтра UВЫХ . Задание на КП требует обеспечить изменение выходного напряжения в диапазоне – 1… + 1 В. Поэтому примем UОП = - 1 В.
Исходное состояние аппаратной части и программы фильтра устанавливается при включении питания по сигналу аппаратного узла сброса.
При этом:
- программный счетчик (ВМ85) принимает нулевое значение;
- сбрасывается флаг разрешения прерываний (ВМ85);
- все линии портов PAи PB (РФ55) настраиваются на ввод;
- порты PA, PB, PC (РУ55) настраиваются на ввод данных в режиме простого обмена данными;
- таймер (РУ55) останавливается;
- содержимое ячеек ОЗУ и буферных регистров портов (РУ55) сохраняется.
3.Разработка общего алгоритма функционирования фильтра
Общий алгоритм функционирования фильтра строится на основе выводов и определений, сделанных при анализе задачи, и включает в себя все функции устройства, реализуемые аппаратно и реализуемые программно. Он содержит также все сигналы и сообщения, необходимые для взаимосвязи аппаратно-реализуемых и программно-реализуемых операций.
При подаче питания, схема сброса формирует импульсы сброса, который обнуляет счетчик команд МП и инициирует формирование импульса сброса RESETдля установки МП - системы в исходное состояние. Запускается программа инициализации МП – системы, которая должна начинаться с нулевого адреса. При инициализации:
- в указатель стека SPзаписывается начальный адрес, с которого начинается стек;
- порт PA (РФ55) настраивается на ввод данных ; в регистр направления передачи записывается управляющее слово;
- таймер настраивается на период переполнения, равным в режиме 3;
- порт PA (РУ55) настраивается на ввод ;
- пуск таймера;
- настройка режима прерывания.
Программа инициализации завершается остановом МП. Из состояния останова МП выводится сигналом INTRA, поступающим на вход RST 5.5 МП. Последующие операции выполняются под управлением рабочей программы фильтра. Выполнение рабочей программы - это реакция на прерывание, поэтому после обслуживания прерываний по команде возврата из подпрограммы МП возвращается в состояние останова.
4. Обоснование аппаратной части устройства
Основой аппаратной части устройства является набор К1821, в состав которого входят три микросхемы:
- К1821ВМ85 – микропроцессор;
- КР1821РФ55 – ПЗУ с двумя портами ввода/вывода, работающими в режиме простого обмена;
- КР1821РУ55 – ОЗУ, таймер и два направленных порта ввода/вывода. Выходной сигнал должен иметь аналоговый вид, для преобразования цифрового кода в аналоговый сигнал, используется ЦАП типа К572ПА1.
Микросхема ЦАП К572ПА1 преобразует 10 – разрядный входной параллельный двоичный код в ток на аналоговом выходе, пропорциональный значениям кода и опорного напряжения.
Для преобразования кода в ток используют внешний источник опорного напряжения и матрица резисторов R – 2R.
К выводу ЦАП подключается операционный усилитель (К140УД8).
5. Разработка и отладка программы на языке команд микропроцессора
Рабочая программа разрабатывается на основе алгоритма функционирования устройства. Порт PВ РУ 55 настраивается на вывод при помощи управляющего слова имеющего вид: , которое необходимо записать в регистр направления передачи порта.
Для настройки таймера на период переполнения в третьем режиме работы необходимо в младший байт таймера записать 21h, а в старший байт таймера записать C2h.
Порт PAРУ 55 настраивается на ввод данных в режиме обмена, а также запускается таймер. Для этого управляющее слово записывается в регистр управляющего слова.
Формат управляющего слова:
|
PA и PB– задают направление передачи данных через порты PAи PB соответственно.
“0” - ввод, “1” – вывод ; следовательно записываем “0” в D1 и D1.Биты PC2 и PC1 - варианты использования порта С, т.к. порт С нами не используется, то записываем в D4 и D3 - “0”. Биты IEAи IEB разрешают (IE=1) или запрещают выработку сигналов прерывания INTRпортов А и В, данный тип прерывания нам нет нужен, поэтому записываем в D5 и D4 - “0”. TM2, TM1 - биты которые содержат команды управления таймером, для запуска таймера в эти биты записываем единицы.
Управляющее слово будет иметь вид:
11000000(2) =С0h
При настройке режимов прерываний необходимо разрешить прерывание МП типа RST5.5. Используется команда SIMустанавливающая маску прерываний.
Формат маски:
|
M 7.5, M 6.5, M 5.5 - маски запрещающие соответствующие прерывания.
R 7.5 - бит сбрасывающий триггер, где фиксируется запрос внешнего прерывания по входу RST5.5.
MSEN - разрешение установки маски прерываний.
SDEN -разрешение вывода данных находящихся в разряде A7.
SOD - данные предназначенные для вывода через линию SOD.
Маска прерываний будет иметь вид:
00011110(2) =1Dh
Распределение памяти ПЗУ:
0000h…001Dh– программа инициализации;
002Ch…0096h– программа реакции на прерывание типа RST 5.5;
Распределение памяти ОЗУ:
5000h, 5001h,5002h– хранение отсчетов ,,;
5003h, 5004h,5005h – хранение отсчётов ,,;
5006h, 5007h,5008h– хранение произведений ,,;
50FFh - начальный адрес стека.
Текст программы:
* Курсовой проект *
* на тему : Цифровой полосовой фильтр *
* выполнил: ст.гр.215 *
* Агарков Дмитрий Николаевич *
* Дата :18.04.05 г. *
* Задание на курсовой проект: *
* линейное разностное уравнение : Y(n)=X(n)-0,091X(n-1)-0.13Х(n-2)- *
*-0,98Y(n-2) *
* частота дискретизации : Fд=5.5кГц *
* входной код - дополнительный *
* выходной сигнал - аналоговый, диапазон измерения (-1..+1) *
* ЦАП-К572ПА1 *
* микропроцессор-КР1821ВМ85 *
PARF.EQU0800h;порт РА(РФ55)
RGARF.EQU0802h;регистр направления передачи
; порта РА(РФ55)
PARU.EQU7001h; порт РА(РУ55)
RGRU.EQU7000h;регистр управляющего слова (РУ55)
TL.EQU7004h;младший байт таймера
TH.EQU7005h;старший байт таймера
STL.EQU21h;младшее слово для загрузки в таймер
STH.EQUC2h;старшее слово для загрузки в таймер
SRF.EQUFFh;управляющее слово для настройки порта
;РА(РФ55)
SRU.EQUC0h;управляющее слово для настройки
;портов и пуска таймера (РУ55)
SPR.EQU1Dh;управляющее слово для настройки
;прерываний
AX.EQU5000h;адрес отсчета
AX1.EQU5001h;адрес отсчета
AX2.EQU5002h;адрес отсчета
AY.EQU5003h;адрес отсчета
AY1.EQU5004h;адрес отсчета
AY2.EQU5005h;адрес отсчета
AP1.EQU5006h;адрес произведения
AP2.EQU5007h;адрес произведения
AP3.EQU5008h;адрес произведения
;Инициализация по сигналу «Сброс»
.ORG0000 ;начальный адрес программного
;модуля инициализации
DI;запрет прерываний
LXISP,50FFh;организация стека
MVIA,SRF;настройка порта РА(Рф55) на вывод
STARGARF;
MVIA,STL;настройка таймера на частоту
STATL;переполнения Т=Тд в режиме 3
MVI A,STH ;
STA TH ;
MVIA,SRU;настройка порта РА(РУ55) на ввод
STARGRU;и пуск таймера
MVIA,SPR;настройка режима прерываний
SIM;
EI;разрешение прерываний
M1: HLT;останов, ожидание прерывания
JMPM1 ;переход на команду останова
;процессора по окончании подпрог-
;раммы обслуживания прерывания
.ORG2Сh;начальный адрес программной
;реакции на прерывание типа RST 5.5
LDAPARU;ввод текущего кода АЦП в аккумулятор
;программный модуль масштабирования
;вычисления произведения
;xn :=0.0111010*xn =(2-2 +2-3 +2-4 +2-6 )*xn
;входной отсчет хранится в аккумуляторе
;масштабированный отсчет записать в ячейку
;ОЗУ с адресом AX
MOVH,A;Xn -A
ARHL;арифметические сдвиги в право
ARHL;отсчета и накопление суммы
MOVA,H;частичных произведений
ARHL;в аккумуляторе
ADDH;
ARHL ;
ADD H ;
ARHL ;
ARHL ;
ADDH;
STAAX;запоминание отсчёта в памяти
;программный модуль вычисления
;произведения
;p1 n :=0.091*xn -1 ≈0.0001011*xn -1 =(2-4 +2-6 +2-7 )*xn -1
;xn -1 хранится в ячейке ОЗУ с адресом AX1
; записать в ячейку ОЗУ с адресом AP1
LDA AX1 ;Xn-1 - A
MOV H,A ;A - H
ARHL;арифметические сдвиги в право
ARHL;отсчета и накопление суммы
ARHL;частичных произведений
ARHL;в аккумуляторе
MOV A,H ;
ARHL ;
ARHL ;
ADD H ;
ARHL ;
ADD H ;
STAAP1 ;запоминание в памяти
;программный модуль вычисления произведения
;p2 n :=0.13*xn -2 ≈0.0010000*xn -2 =(2-3 )*xn -2
;xn -2 хранится в ячейке ОЗУ с адресом Y2
; записать в ячейку ОЗУ с адресом P3
LDA AX2 ;Xn-2 - A
MOV H,A ;A - H
ARHL;арифметические сдвиги в право
ARHL;отсчета и накопление суммы
ARHL;частичных произведений
MOVA,H;в аккумуляторе
STAAP2 ;запоминание в памяти
;программный модуль вычисления произведения
;p3 n :=0.98*yn -2 ≈0.1111101*yn -2 =(2-1 +2-2 +2-3 +2-4 +
; +2-5 +2-7 )*yn -2
;yn -2 хранится в ячейке ОЗУ с адресом AY2
; записать в ячейку ОЗУ с адресом AP3
LDA AY2 ;Yn-2 - A
MOV H,A ;A - H
ARHL;арифметические сдвиги в право
MOVA,H;отсчета и накопление суммы
ARHL;частичных произведений
ADDH;частичных произведений
ARHL;в аккумуляторе
ADDH;
ARHL ;
ADD H ;
ARHL ;
ADD H ;
ARHL;
ARHL;
ADDH
STAAP2 ;запоминание в памяти
;программный модуль вычисления выходного
;отсчета
;Yn =Xn -P1 n -P2 n -P3 n
;слагаемые хранятся в ячейке ОЗУ, результат
;вычисления записать в ячейки ОЗУ
LDAAX;Xn -A
LXIH,AP1 ;загрузка адреса произведения в регистровую
;пару HL
SUB М;(A)-([HL])- A
LXIH,AP2 ;загрузка адреса произведения в регистровую
;пару HL
SUB М;(A)-([HL])- A
LXIH,AP3 ;загрузка адреса произведения в регистровую
;пару HL
SUB М;(A)-([HL])- A
STAAY;запоминание в памяти
ADI80h;получение смещенного входного
;кода ЦАП
STAPА RF;вывод кода на ЦАП через
;порт РА(РФ55)
;программный модуль сдвига отсчетов
;в памяти
LHLDAX;
SHLDAX1 ;
LHLDAY;
SHLDAY1 ;
RET;возврат из подпрограммы
;обслуживания прерывания
Листинг программного модуля вычисления выходного отсчета.
Fri Apr 23 2004 15:52 Page 1
2500 A.D. 8085 Macro Assembler - Version 4.02a
------------------------------------------------
Input Filename : SH.asm
Output Filename : SH.obj
1 0800 PARF.EQU 0800H
2 5005 AP1.EQU 5005H
3 5006 AP2.EQU 5006H
4 5007 AP3.EQU 5007H
5 5000 AX.EQU 5000H
6 5003 AY.EQU 5003H
7 0000 .ORG 0000
8 0000 3A 00 50 LDA AX
9 0003 21 05 50 LXI H,AP1
10 0006 96 SUB M
11 0007 21 06 50 LXI H,AP2
12 000A 96 SUB M
13 000B 21 07 50 LXI H,AP3
14 000E 96 SUB M
15 000F 32 03 50 STA AY
16 0012 C6 80 ADI 80H
17 0014 32 00 08 STA PARF
18 0017 .END
Fri Apr 23 2004 15:52 Page 2
Defined Symbol Name Value References
2 AP1 = 5005 9
3 AP2 = 5006 11
4 AP3 = 5007 13
5 AX = 5000 8
6 AY = 5003 15
Pre CODE 0000 7
Pre DATA 0000
1 PARF = 0800 17
Lines Assembled : 18 Assembly Errors : 0
7. Расчёт быстродействия устройства
Быстродействие фильтра в рабочем режиме оценим как время, необходимое для обработки каждого прерывания процессора. Рабочая программа фильтра линейная (не содержит разветвлений), поэтому общее число машинных тактов, требуемых для выполнения программы, получим как сумму машинных тактов всех последовательно выполняемых команд, составляющих рабочий цикл процессора.
Сумма машинных тактов для рабочего цикла приведенной выше программы равна 524.
Длительность одного машинного такта равна
TCLK МП =1/FCLK МП =1/(3*106 )=0.333 мкс.
Общее время выполнения всей программы
TВЫП. =524*0,333 *10-6 =0.175 мс
Длительность периода дискретизации
TД =1/FД =1/(5.5*103 )=0,182 мс
Из этого следует вывод, что процессор успвает выполнить подпрограмму обслуживания прерывания за интервал дискретизации TД . То есть рассчитываемое устройство должно работать корректно, при обеспечении соответствующей работы внешнего устройства.
8. Расчет АЧХ устройства для заданных и реальных значений коэффициентов. Оценка устойчивости устройства
Исходя из разностного уравнения фильтра, можно записать выражения для передаточной функции устройства.
Yn =Xn -0.091*Xn -1 -0.13*Xn -2 -0.98*Yn -2 –
разностное уравнение, отсюда выражение для передаточной функции будет иметь вид:
,
где. Подставляя значение и заменяя получим выражение для комплексного коэффициента передачи фильтра:
,
модуль от этого выражения даст АЧХ:
- АЧХ ;
в этом выражение - период дискретизации.
Полученная формула для АЧХ справедлива для заданных значений коэффициентов, в реальной ситуации, из-за погрешности в представлении коэффициентов в форме двоичного кода, в виду конечности размерности разрядной сетки МП, значения коэффициентов в выражениях для АЧХ будут другими :
a=0.091(10) ≈ 0.0001011(2) =0.086(10)
b=0.130(10) ≈ 0.0010000(2) =0.125(10)
c=0.980(10) ≈ 0.1111100(2) =0.977(10)
подставив эти значения коэффициентов в разностное уравнение, можно получить выражения для реальной АЧХ фильтра :
Графики АЧХ для заданных и реальных коэффициентов изображены на рис.1 соответственно (пунктиром показаны реальные зависимости). По графикам на рис.2 видно, что реальные и заданные характеристики практически не отличаются.
Рис.1
Рис.2
Для того чтобы оценить устойчивость фильтра, нужно найти полюс передаточной функции
Полюс передаточной функции фильтра расположен внутри единичной окружности на комплексной z плоскости, следовательно фильтр устойчив.
Заключение
В данном курсовом проекте спроектирован цифровой полосовой фильтр на основе МП-системы. Разработана программа на языке команд микропроцессора, которая обеспечивает выполнение МП-системой заданного алгоритма фильтрации. МП-система построена, согласно заданию на курсовой проект, на основе набора К1821 с минимальной конфигурацией. Аппаратная часть фильтра также включает в себя ЦАП и аналоговое устройство – преобразователь ток/напряжение.
Список использованных источников:
1. Рафикузаман М. Микропроцессоры и машинное проектирование микропроцессорных систем: В 2-х кн. Пер. С англ.-М.: Мир, 1988.
2. Токхайм Р. Микропроцессоры: Курс и упражнения / Пер. с англ., под ред. В.Н. Герасевича. М.: Энергоатомиздат, 1998.
3. Щелкунов Н.Н., Дианов А.П. Микропроцессорные средства и системы.- М.: Радио и связь, 1989.
4. Федорков Б.Г., Телец В.А. Микросхемы ЦАП и АЦП: функционирование, параметры, применение.- М.: Энергоатомиздат, 1990.
5. Перельман Б.Л. Шевалов В.В. Отечественные микросхемы и их зарубежные аналоги: справочник. М: НТЦ: Микротех 1998.
6. Микропроцессорный комплект К1810: Структура, программирование, применение: Справочная книга. Под ред. Ю.М. Казаринова.- М.: Высш. шк., 1990.
7. Шило В.Л. Популярные цифровые микросхемы: Справочник.–М.: Радио и связь, 1989.
8. Методические указания к курсовому проекту по дисциплине “Цифровые устройства и микропроцессоры” / Рязан. гос. радиотехн. акад.; Сост. Н.И. Сальников. Рязань, 2002.