Цифровой фильтр нижних частот
Функционирование рекурсивного цифрового фильтра нижних частот. Определение его быстродействия, импульсной и переходной характеристик. Составление и описание структурной и принципиальной схемы устройства. Разработка и отладка программы на языке ассемблера.
Рубрика | Коммуникации, связь, цифровые приборы и радиоэлектроника |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 05.03.2011 |
Размер файла | 323,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
РЯЗАНСКИЙ ГОСУДАРСТВЕННЫЙ РАДИОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
КАФЕДРА РАДИОТЕХНИЧЕСКИХ СИСТЕМ
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовому проекту по дисциплине:
«ЦИФРОВЫЕ УСТРОЙСТВА и МИКРОПРОЦЕССОРЫ»
на тему: Цифровой фильтр нижних частот
Рязань 2007 г
Содержание
Введение
Анализ, формализация и декомпозиция задачи
Разработка и описание общего алгоритма
Функционирования устройства
Разработка и обоснование структурной схемы устройства
Составление и описание принципиальной схемы устройства
Разработка и отладка программы на языке ассемблера
Определение быстродействия, импульсной и переходной характеристик устройства
Заключение
Список использованных источников
Приложение
Введение
Цифровая обработка сигналов, т.е. обработка сигналов с помощью средств электронной вычислительной техники, стала известна около 35 лет назад. Электронные вычислительные машины тогда были дороги и несовершенны и поэтому их применяли лишь в сложных радиокомплексах, например, при расчете координат и траекторий объектов в радионавигационных системах слежения за космическими объектами, при расчете координат цели в радиолокационных станциях.
В последующие годы благодаря широкому применению транзисторов а затем и развитию микроэлектроники ЭВМ стали совершеннее, дешевле, а главное, компактнее. Появилась возможность использования вычислительной техники в сравнительно простой аппаратуре, например, в специальных радиоприемниках, системах фазовой подстройки частоты, системах телеметрии и т.д. С помощью цифровых устройств можно реализовать очень сложные алгоритмы обработки сигналов, которые трудно, а часто даже невозможно реализовать, используя обычную аналоговую технику. С помощью цифровых методов можно реализовать любой алгоритм обработки сигнала, который может быть описан совокупностью арифметических и логических операций. Точность обработки сигнала цифровыми фильтрами определяется точностью выполняемых расчетов. Она может быть несоизмерима выше точности обработки сигнала в аналоговых фильтрах. Одним из источников погрешности аналоговых фильтров является нестабильность их параметров, вызываемая колебаниями температуры, старением, дрейфом нуля, изменением питающих напряжений и т.д. В цифровых фильтрах эти неприятные эффекты отсутствуют. При разработке цифровых фильтров не возникает задача согласования нагрузок. Недостатком цифровых фильтров является их большая сложность по сравнению с аналоговыми, более высокая стоимость и не очень высокое быстродействие. В последние годы в связи с появлением микропроцессоров цифровая обработка сигналов получила еще более широкое распространение. Для цифровых фильтров стало возможным построение разнообразных частотных характеристик, путем их аналитической задачи. При этом реализуемы и фильтры традиционных типов: нижних частот, верхних частот, полосовые и режекторные.
Анализ, формализация и декомпозиция задачи
В данном курсовом проекте необходимо реализовать рекурсивный цифровой фильтр нижних частот. Основой его служит микроконтроллер КР1830ВЕ51.
Микросхема имеет встроенную память программ (ПЗУ), на корпусе имеется 40 выводов. Имеет 4 двунаправленных восьмиразрядных порта с именами Р0, Р1,Р2,Р3. В качестве порта ввода данных будем использовать порт Р3. Результаты будут выводиться на порт Р1. Порты Р0 и Р2 остаются свободными. К нулевому биту порта Р2 подключим линию запуска АЦП. К первому биту порта Р2 подключим линию ответа АЦП о готовности данных. МК содержит 4 банка данных: 0,1,2,3. Для основной программы возьмем 3 банк. Что бы установить номер нужного нам банка запишем в ячейку памяти D0 (PSW: регистр состояния процессора) число 18h (в шестнадцатиричной форме). Для рабочей программы возьмем 1 банк данных, что бы установить этот банк необходимо в ячейку D0 записать число 08h. В МК встроено 2 восьми разрядных таймера\счетчика. Нам требуется режим таймера. Он может работать в нескольких режимах. Нам наиболее всего подошел бы режим 2 с перезагрузкой, но возникает проблема. Заданная нам частота дискретизации 2000 Гц, следовательно, каждые 500 мкс от таймера должно поступать прерывание и начинать свою работу подпрограмма обработки отсчета. Если перевести число -500 в дополнительный код получим 16-ти разрядное число. Использовать 2 режим мы не можем, так как в этом режиме 8-ми разрядная сетка. Тогда берем 1 режим с 16-ти разрядной сеткой и перед каждым вычислением будем перезагружать таймер.
АЦП заданный в проекте AD7892. Он представляет собой 12-ти разрядный АЦП, работающий от одного источника питания +5 В и реализующий алгоритм последовательных приближений с временем преобразования 1,3 мкс. На кристалле расположены также устройство выборки-хранения (УВХ), источник опорного напряжения +2,5 В (ИОН) и многофункциональный цифровой интерфейс. Для запуска АЦП необходимо подать на логический вход CONVST 1. Переход из 0 в 1переводит УВХ в режим хранения и запускает преобразование. После окончания преобразования на логическом входе EOS 1 переходит в 0, код готов для чтения. Выходной код устройства дополнительный.
Мы должны синтезировать фильтр по его разностному уравнению, так как фильтр рекурсивный то уравнение содержит 2-ве составляющие. Вторая составляющая вычитается из первой, следовательно нам необходимо реализовать 2-ва цикла вычислений. Это крайне не удобно, поэтому внесем знак минус в коэффициенты 2-ой части уравнения.
Сдвинем все коэффициенты на 6 разрядов влево, предварительно представив их в двоичном коде, в результате получим целочисленные значения.
Построим АЧХ фильтра при различных способах округления коэффициентов.
цифровой фильтр частота
Покажем более подробно верхнюю часть графиков.
Цвета выводимых графиков:
H1 - синий без округления;
H2 - зеленый fix отброшена дробная часть;
H3 - красный round округление до ближайшего целого;
H4 - голубой floorокругление до ближайшего меньшего целого;
H5 - сиреневый ceilокругление до ближайшего большего целого;
Нам более всего по форме характеристики подходит синий график.
Результаты преобразования коэффициентов выглядят следующим образом:
Сумма модулей исходных коэффициентов числителя B1:
0.58877671942898
Сумма модулей исходных коэффициентов знаменателя A1:
3.12474683199688
Массив коэффициентов числителя B:
0.07812500000000 0.21875000000000 0.21875000000000 0.07812500000000
Массив коэффициентов знаменателя A:
1.00000000000000 -0.96875000000000 0.85937500000000 -0.29687500000000
Массив коэффициентов числителя B:
5 14 14 5
Массив коэффициентов знаменателя A:
64 -62 55 -19
Сумма модулей коэффициентов числителя B:
0.59375000000000
Сумма модулей коэффициентов знаменателя A:
3.12500000000000
Внесем знак минус в целочисленные коэффициенты знаменателя A. Получим:
-64 62 -55 19
Переведем значения в шестнадцатиричный прямой код:
Разработка и описание общего алгоритма функционирования устройства
Общий алгоритм функционирования фильтра строится на основе выводов и определений, сделанных при анализе задачи, и включает в себя все функции устройства, реализуемые аппаратно и реализуемые программно. Он содержит также все сигналы и сообщения, необходимые для взаимосвязи аппаратно-реализуемых и программно-реализуемых операций (сигналы и сообщения, которые обеспечивают взаимодействие аппаратной части фильтра и программы).
Общий алгоритм функционирования фильтра приведен на рис.2.
Работа фильтра начинается с подачи питания на схему сброса. Импульс, сформированный схемой сброса (аппаратный узел), обнуляет счетчик команд МП и инициирует формирование импульса сброса RESET для установки МП-системы в исходное состояние.
Таким образом запускается программа инициализации МП-системы, которая должна начинаться с нулевого адреса. При инициализации: разрешаются прерывания от таймера 0; в указатель стека SP записывается начальный адрес, с которого начинается стек; таймер настраивается на период переполнения, равный ТД в режиме 1; таймер запускается для формирования непрерывной последовательности импульсов с частотой дискретизации FД, которые используются далее для взятия отсчетов входного сигнала и запуска АЦП (аппаратного узла).
Программа инициализации завершается основной программой МК, которая совершает замкнутый цикл до возникновения прерывания таймера. Последующие операции (ввод, вывод, преобразование кодов, оперативные обращения к памяти, арифметические преобразования) в каждом цикле работы фильтра выполняются под управлением рабочей программы фильтра.
Рис.2
Разработка и обоснование структурной схемы устройства
Для реализации фильтра из аппаратных средств мы имеем: МК вида КР1830ВЕ51 и АЦП вида AD7892. Данный вид АЦП имеет несколько модификаций различающихся по диапазонам изменения напряжения на входе, по заданию на входе мы имеем аналоговый сигнал (-5..+5)В, следовательно, мы можем воспользоваться модификацией AD7892AN-1 входной диапазон, которой (-5…+5) В и непосредственно, без дополнительных согласований, подать сигнал на АЦП. Логический вход CONVST подключим к нулевому биту порта Р0 МК. Логический вход EOC подключим к нулевому биту порта Р2. Ввод отсчетов с АЦП будем осуществлять на порт Р3, вывод расчетных данных через порт Р1.
Схема представлена в файле Схема.spb.
Составление и описание принципиальной схемы устройства
Опираясь на выводы сделанные в пункте анализ, формализация и декомпозиция задачи, а так же при составлении структурной схемы устройства можем составить принципиальную схему.
Для обеспечения работы микропроцессора подключим его к кварцевому резонатору с частотой 12 МГц. Сигнал сброса МК сформируем с помощью RC- цепочки. В качестве источника питания схемы возьмем источник постоянного напряжения номиналом 5В.
Разработка и отладка программы на языке ассемблер
После поступления импульса сброса МК находится в так называемом исходном состоянии, что бы привести МК в рабочее состояние необходимо провести инициализацию. В блоке инициализации нам нужно :
1. Задать режим таймера
2. Разрешить прерывания вообще и от таймера в частности
3. Записать в память значения коэффициентов
4. Очистить ячейки памяти для отсчетов
5. Установить PSW основной и рабочей программ
6. Установить начало стека
7. Запустить таймер
8. Перейти в основную программу
Когда от таймера придет прерывание свою работу начнет рабочая программа вычисления отсчета по разностному уравнению фильтра. Что бы вычислить отсчет нам необходимо:
1. Сохранить PSW основной программы и установить рабочей
2. Запустить АЦП
3. Перезагрузить таймер
4. Принять от АЦП сигнал о готовности отсчета
5. Считать значение отсчета из порта ввода
6. Произвести необходимые вычисления
7. Сдвинуть результат на 2 разряда влево, что бы компенсировать преобразование коэффициентов в целочисленные
8. Переслать результат в порт вывода
9. Сдвинуть отсчеты в памяти
10. Сохранить PSW рабочей программы и установить основной
11. Выйти из программы обслуживания прерываний
При вычислениях отсчета нам нужно сделать:
1. Очистить 2-х байтовый сумматор
2. Установить начальный адрес операндов
3. Установить счетчик циклов
4. Произвести умножение и сложение
5. Увеличить адрес операндов на 1
6. Уменьшить счетчик циклов на1
7. Если счетчик не равен 0, перейти к блоку умножения и сложения
8. Если счетчик равен 0, выйти из макроса
Для того чтобы произвести операции умножения и сложения необходимо:
1. Переслать множители в регистры А и В
2. Определить знак произведения
3. Преобразовать в беззнаковые числа
4. Умножить содержимое регистров А и В
5. Преобразовать произведение в дополнительный код
6. Сложить с содержимым 2-х байтового сумматора
На основании сделанных выводов можем составить блок-схему программы.
Основной Алгоритм рабочей
Алгоритм программы
Вычисление Умножение и сложение отсчета.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Текст программы
*Цифровой фильтр*
*Курсовой проект по дисциплине "Цифровые устройства и микропроцессоры"*
*Код Ic1n3_24*
*Выполнил студентка группы 410 Цветкова Юлия Борисовна*
SPACES ON; Разрешить пробелы между операндами
FILLCHAR 00h;Заполнить промежутки между секциями символами 00
************ ОПРЕДЕЛЕНИЕ КОНСТАНТ ************
Time0:EQUFE70h;установка 400 мкс (FE70h = -400 в дополнительном коде)
Time0L:EQU70h;Младший байт числа FE70 в ДК
Time0H:EQUFEh;Старший байт числа FE70 в ДК
DataA2:EQU3Eh;Значения коэффициентов
DataA3:EQUB7h
DataA4:EQU13h
DataB1:EQU05h
DataB2:EQU0Eh
DataB3:EQU0Eh
DataB4:EQU05h
Order:EQU07h;Число циклов суммирования (общее число слагаемых)
Shift:EQU02h;Число циклов сдвига
************ НЕПЕРЕМЕЩАЕМЫЕ РЕГИСТРЫ ************
SP:REG81h;Присвоить имя SP указателю стека (ячейка 81h)
IE:REG A8h;Присвоить имя IE регистру разрешения прерываний (ячейка A8h)
TCON:REG88h;Присвоить имя TCON регистру управления таймерами/счетчиками
TMOD:REG89h;Присвоить имя TMOD регистру режима таймеров/счетчиков
PSW:REGD0h;Присвить имя PSW регистру состояния МК
************ НЕПЕРЕМЕЩАЕМЫЕ БИТЫ ************
SignA:REGE0h.7;Присвоить имя SignA (знак регистра А) старшему биту аккумулятора
SignB:REGF0h.7;Присвоить имя SignB (знак регистра B) старшему биту регистра В
EA:REGIE.7;Присвоить имя EA биту 7 регистра IE
ITO:REGTCON.0;Присвоить имя IT0 биту 0 регистра TCON
IEO:REGTCON.1;Присвоить имя IE0 биту 1 регистра TCON
TR0:REGTCON.4;Присвоить имя TR0 биту 3 регистра TCON
START:REGP0.0;Присвоить имя START биту 0 порта P0
FIN:REGP2.0;Присвоить имя FIN биту 0 порта P2
P0.1:REGP0.1;Присвоить имя P0.1 биту 1 порта P0
************ ПЕРЕМЕЩАЕМЫЕ РЕГИСТРЫ ************
RSECT;Секция байт, располагается в DSEG
b1:DS1;Коэффициенты числителя
b2:DS1;
b3:DS1;
b4:DS1;
a2:DS1;Коэффициенты знаменателя
a3:DS1;
a4:DS1;
DS09h;Зазор
Xn1:DS1;
Xn2:DS1;
Xn3:DS1;
Xn4:DS1;
Yn2:DS1;
Yn3:DS1;
Yn4:DS1;
DS07h;Зазор
Yn1:DS1;
VarA:DS1;
VarB:DS1;
SumH:DS1;
SumL:DS1;
MPSW:DS1;
RPSW:DS1;
AddrSP:DS1;Начало стека
************ ПЕРЕМЕЩАЕМЫЕ БИТЫ ************
BSECT;
SignM:DS1;
VarBit:DS1;
************************* МАКРОСЫ *************************
;--------------------------------------------
;Определение знака произведения
;Определяет знак произведения двух множителей, представленных в прямом
;коде и расположенных в регистрах А и В
;Автор: библиотека
;--------------------------------------------
SignMUL:MACRO
MOVC, SignA
ANLC, /SignB
MOVSignM, C
MOVC, SignB
ANLC, /SignA
ORLC, SignM
MOVSignM, C
ENDM
;--------------------------------------------
;Преобразование произведения в дополнительный код
;[B,A](БезЗн)=>
;Автор: библиотека
;--------------------------------------------
PK_DK_MUL: MACRO
JNBSignM, M1#
CPLA
ADDA, #01h
MOVVarA, A
MOVA, B
CPLA
ADDCA, #00h
MOVB, A
MOVA, VarA
M1#:ENDM
;--------------------------------------------
;Накапливающий сумматор двухбайтовых чисел [B,A]+[SumH,SumL]=>[SumH,SumL]
;Автор: библиотека
;--------------------------------------------
Sum2Byte:MACRO
ADDA, SumL
MOVSumL, A
MOVA, B
ADDCA, SumH
MOVSumH, A
ENDM
;--------------------------------------------
;Умножение C накоплением двух чисел, адреса которых находятся в регистрах R0 и R1
;текущего регистрового банка
;Автор: библиотека
;--------------------------------------------
MAC:MACRO
MOVA, @R0
MOVB, @R1
SignMUL
ANLA,#7Fh
ANLB,#7Fh
MULAB
PK_DK_MUL
Sum2Byte
ENDM
;--------------------------------------------
;Очистка 2-байтового накопительного сумматора
;Автор: библиотека
;--------------------------------------------
ClearSum2Byte:MACRO
MOVSumH, #00h
MOVSumL, #00h
ENDM
;--------------------------------------------
;Вычисление отсчета
; Автор: библиотека
;--------------------------------------------
ComputeSample:MACRO
ClearSum2Byte
MOVR0, #b1
MOVR1, #Xn1
MOVR4, #Order
M3#MAC
INCR0
INCR1
DJNZR4, M3#
ENDM
;--------------------------------------------
;Подготовка цикла
; Автор: библиотека
;--------------------------------------------
PrepareCycl:MACRO
MOVXn4, Xn3
MOVXn3, Xn2
MOVXn2, Xn1
MOVXn1, P3
MOVYn4, Yn3
MOVYn3, Yn2
MOVYn2, Yn1
MOVYn1, SumH
ENDM
;--------------------------------------------
;Инициализация прерываний
;EA=1 - разрешить все прерывания
;ET0=1 - разрешить прерываний TC0
; Автор: Цветкова Ю.Б.
;--------------------------------------------
InitInt:MACRO
SETBEA
SETBET0
ENDM
;--------------------------------------------
;Инициализация таймера
;установка режима
; Автор: Цветкова Ю.Б.
;--------------------------------------------
InitTimer:MACRO
CLRTR0
ANLTMOD,#01h
MOVTL0, #Time0L
MOVTH0, #Time0H
SETBTR0
ENDM
;--------------------------------------------
;Инициализация стека; установка вершины стека
;Автор:библиотека
;--------------------------------------------
InitSteck:MACRO
MOVSP, #AddrSP
DECSP
ENDM
;--------------------------------------------
;Инициализация коэффициентов
;Автор: Цветкова Ю.Б.
;--------------------------------------------
InitCoeff:MACRO
MOVb1, #DataB1
MOV b2, #DataB2
MOVb3, #DataB3
MOVb4, #DataB4
MOVa2, #DataA2
MOVa3, #DataA3
MOVa4, #DataA4
ENDM
;--------------------------------------------
;Инициализация отсчетов
;Автор: библиотека
;--------------------------------------------
ClearXn:MACRO
MOVXn1, #00h
MOV Xn2, #00h
MOVXn3, #00h
MOVXn4, #00h
ENDM
;--------------------------------------------
;Инициализация псв
;Автор: Цветкова Ю.Б.
;--------------------------------------------
InitPSW:MACRO
MOVRPSW,#08h
MOVPSW,#18h
ENDM
;--------------------------------------------
;Основная программа
;Автор: библиотека
;--------------------------------------------
MainProgramm:MACRO
M2#:CPLP0.1
SJMPM2#
ENDM
;--------------------------------------------
;Перезагрузка таймера
;Автор: библиотека
;--------------------------------------------
ReloadTimer:MACRO
CLRTR0
MOVTL0, #Time0L
MOVTH0, #Time0H
SETBTR0
ENDM
;--------------------------------------------
;Преобразование данных из дополнительного в прямой код
; InByte(ДК)=> OutByte(ПК)
;Автор: библиотека
;--------------------------------------------
DK_PK:MACROInByte, OutByte
MOVA, InByte
JNBSignA, M4#
XRLA, #7Fh
INCA
M4#:MOVOutByte, A
ENDM
;--------------------------------------------
;Преобразование байта данных из прямого в дополнительный код
; InByte(ПК)=> OutByte (ДК)
;Автор: библиотека
;--------------------------------------------
PK_DK:MACROInByte, OutByte
MOVA, InByte
JNBSignA, M5#
XRLA, #7Fh
INCA
M5#:MOVOutByte, A
ENDM
;--------------------------------------------
;Ввод данных из P3 в Xn1
;Автор: библиотека
;--------------------------------------------
InputData:MACRO
DK_PK P3, Xn1
ENDM
;--------------------------------------------
;Вывод данных
;Автор: библиотека
;--------------------------------------------
OutputData:MACRO
DK_PKSumH, Yn1
MOVP1, Yn1
ENDM
;--------------------------------------------
;Запуск АЦП
;Автор: Цветкова Ю.Б.
;--------------------------------------------
StartAZP:MACRO
CLRSTART
SETBSTART
ENDM
;--------------------------------------------
;Сигнал готовности АЦП
;Автор: Цветкова Ю.Б.
;--------------------------------------------
GOTOV:MACRO
M9#JBFIN,M9#
ENDM
;--------------------------------------------
;Переход из главной программы
;Автор: Цветкова Ю.Б.
;--------------------------------------------
MPSW_RPSW:MACRO
MOVMPSW,PSW
MOVPSW,RPSW
ENDM
;--------------------------------------------
;Переход из прерывающей программа
;Автор: Цветкова Ю.Б.
;--------------------------------------------
RPSW_MPSW:MACRO
MOVRPSW,PSW
MOVPSW,MPSW
ENDM
;-------------------------------------------
; Сдвиг результата вычислений на 2 разрядов
;влево
;Автор: Цветкова Ю.Б.
;-------------------------------------------
LShift:MACRO
MOVR7,#Shift
M1#:CLRC
MOVA,SumL
RLCA
MOVSumL,A
MOVA,SumH
RLCA
MOVSumH,A
DJNZR7,M1#
ENDM
************************ ПРОГРАММА ************************
CODE;Секция кода, располагается в СSEG
;Таблица векторов прерываний
;Прерывание RESET - стартовый адрес при сбросе микроконтроллера
ORG0h
LJMPInit; инициализация программы
;Прерывание TIMER0 - Прерывание таймера/счетчика 0
ORG000Bh
LJMPRun
*************************************************************
;Программа инициализации
InitSect:SECTION; Секция инициализации
Init:InitSteck
InitInt
InitTimer
InitCoeff
ClearXn
InitPSW
ReloadTimer
MainProgramm
*************************************************************
RunSect:SECTION;Секция исполнения
Run:MPSW_RPSW
StartAZP
ReloadTimer
GOTOV
InputData
ComputeSample
LShift
OutputData
PrepareCycl
RPSW_MPSW
RETI
Оценка быстродействия, определение импульсной и переходной характеристик
Для определения быстродействия устройства, которое эквивалентно времени выполнения рабочей программы, установим точку останова в начале программы прерывания и запустим ее на выполнение при положительном и отрицательном отсчетах, предварительно сбросив число машинных циклов.
При подачи положительного отсчета количество циклов равно 306. При отрицательном 316. Различие в значениях объясняется тем, что при отчетах разных знаков программа идет по различным путям.
Время выполнения рабочей программы определим как произведение числа машинных циклов на длительность цикла, в нашем случае 1мкс.
Получаем:
При положительном - 306 мкс
При отрицательном - 316мкс
Так как запуск АЦП мы производим в самой программе прерывания, то время преобразования отсчета внутри АЦП можем не учитывать. В пункте анализ, формализация и декомпозиция задачи мы определили период дискретизации. Он равен 500 мкс. Время вычисления отсчета укладывается в этот промежуток, следовательно, программа составлена в этом плане правильно.
Импульсная характеристика построенная с помощью программы MatLab выглядит следующим образом:
Значения отсчетов импульсной характеристики определенные с помощью программы фильтра выглядят следующим образом:
g(t) MatLab |
Отсчеты, h |
Отсчеты, d |
|
0.078 |
09EC |
0.078 |
|
0.3100 |
2480 |
0.2874 |
|
0.4676 |
36EC |
0.43245 |
|
0.2866 |
21F8 |
0.26747 |
|
-0.0369 |
8440 |
-0.03346 |
|
-0.15062 |
91CC |
-0.14013 |
|
-0.03353 |
84C4 |
-0.03752 |
|
0.08656 |
098C |
0.07517 |
|
0.07031 |
071C |
0.05597 |
|
-0.0157 |
83DC |
-0.030388 |
Они практически совпадают с результатами программы MatLab.
Переходная характеристика построенная с помощью программы MatLab выглядит следующим образом:
Значения отсчетов переходной характеристики определенные с помощью программы фильтра выглядят следующим образом:
h(t) MatLab |
Отсчеты, h |
Отсчеты, d |
|
0.0781 |
04EC |
0.07812 |
|
0.3881 |
1694 |
0.35838 |
|
0.8557 |
325C |
0.79935 |
|
1.1424 |
4420 |
1.08134 |
|
1.1054 |
42D8 |
1.06101 |
|
0.9548 |
39C0 |
0.91666 |
|
0.9212 |
3818 |
0.89037 |
|
1.0078 |
3E44 |
0.98834 |
|
1.0781 |
4244 |
1.05183 |
|
1.0624 |
40B0 |
1.02678 |
Они практически совпадают с результатами программы MatLab.
По совпадениям импульсной и переходной характеристики можно сказать что фильтр запрограммирован верно.
Оценим устойчивость фильтра:
По карте нулей и полюсов полученной также в программе MatLab можно сказать, что фильтр является устойчивым, так как все полюса лежат в пределах единичной окружности.
Заключение
В данной курсовой работе была построена схема цифрового устройства и разработана программа, обеспечивающая работу данного устройства как цифрового фильтра нижних частот
Список используемых источников
1. Рафикузаман М. Микропроцессоры и машинное проектирование микропроцессорных систем: В 2-х кн. Пер. С англ. - М.: Мир, 1988.
2. Щелкунов Н.Н., Дианов А.П. Микропроцессорные средства и системы.- М.: Радио и связь,1989.
3. Федорков Б.Г., Телец В.А. Микросхемы ЦАП и АЦП: функционирование, параметры, применение.- М.: Энергоатомиздат, 1990.
4. Цифровые устройства: методические указания к курсовому проекту по дисциплине «Цифровые устройства и микропроцессоры» / РГРТА; составил Н. И. Сальников, Рязань 20002.
5. Перельман Б.П. Отечественные микросхемы и их зарубежные аналоги: справочник. М: 1998
6. Микропроцессорные комплекты интегральных схем: состав и структура. Справочник / Под ред. А.А. Васенкова, В.А. Шахнова. - М.: Радио и связь, 1982.
7. Микропроцессорный комплект К1810: Структура, программирование, применение: Справочная книга/ Ю.М. Казаринов, В.Н. Номоконов, Г.С. Подклетнов, Ф.В. Филиппов; Под ред. Ю.М. Казаринова.- М.: Высш. шк., 1990.
8. Балашов Е.П. и др. Микро- и мини-ЭВМ / Е.П. Балашов, В.Л. Григорьев, Г.А. Петров: Учебное пособие для вузов. - Л.: Энергоатомиздат. Ленингр. отд-ние, 1984
Размещено на Allbest.ru
Приложение
AD7892: АЦП с устройством выборки-хранения, генератором тактовых импульсов и многофункциональным интерфейсом
Микросхема типа AD7892 представляет собой 12-разрядный АЦП, работающий от одного источника питания +5 В и реализующий алгоритм последовательных приближений с временем преобразования 1,3 мкс. На кристалле расположены также устройство выборки-хранения (УВХ), источник опорного напряжения +2,5 В (ИОН) и многофункциональный цифровой интерфейс.
УВХ имеет время хранения, позволяющее правильно формировать цифровые коды с точностью 12 разрядов для входной синусоиды с максимальной амплитудой и частотой до 300 кГц.
Чтение цифрового кода (результата преобразования отсчета входного напряжения) из AD7892 можно осуществить двумя способами: использовать 12-разрядный параллельный интерфейс (чтение параллельного кода) или трехпроводный последовательный интерфейс (чтение последовательного кода).
Назначение выводов и настройки AD7892.
вывода |
№ |
Описание |
|
V IN1 |
4 |
Аналоговый вход 1. Подается напряжение, подлежащее преобразованию в код. |
|
V IN2 |
3 |
Аналоговый вход 2. Предназначен для задания входного диапазона АЦП (диапазона изменения напряжения по входу V IN1). |
|
REF OUT/ REF IN |
5 |
Опорное напряжение (аналоговый выход) / Опорное напряжение (аналоговый вход). |
|
24 |
Пуск преобразования (логический вход). Переключение входа из 0 в 1 переводит УВХ в режим хранения и запускает преобразование. |
||
23 |
Конец преобразования (логический выход). Концу преобразования соответствует переход EOC в 0. Длительность импульса нулевого уровня равна 100 нс. |
||
MODE |
7 |
Управление режимом работы интерфейса (логический вход). MODE = 0 - режим последовательного интерфейса. MODE = 1 - режим параллельного интерфейса. |
|
DB11/ LOW |
8 |
Бит данных 11 (СЗР) в режиме параллельного интерфейса (выход) / Тестовый вывод. В режиме последовательного интерфейса на него должен быть подан 0. |
|
DB10 / LOW |
9 |
Бит данных 10 в режиме параллельного интерфейса (выход) / Тестовый вывод. В режиме последовательного интерфейса на него должен быть подан 0. |
|
DB9 … DB6 |
10-13 |
Биты данных 9-6 в режиме параллельного интерфейса (выходы). В режиме последовательного интерфейса - должны оставаться свободными. |
|
DB5 / SDATA |
15 |
Бит данных 5 в режиме параллельного интерфейса (выход) / Последовательные данные в режиме последовательного интерфейса (выход). Последовательные данные выводятся по спаду 16 импульсов на входе DB4 / SCLK, поступающих после подачи 0 на вход DB3 / . |
|
DB4 / SCLK |
16 |
Бит данных 4 в режиме параллельного интерфейса (выход) / Тактовые импульсы в режиме последовательного интерфейса (вход) для “выталкивания” последовательного кода на вывод DB5 / SDATA. |
|
DB3 / |
17 |
Бит данных 3 в режиме параллельного интерфейса (выход) / Импульс нулевого уровня (с внешнего устройства) для задания интервала времени вывода последовательного кода на линию DB5 / SDATA в режиме последовательного интерфейса (вход). |
|
DB2, DB1 |
18-19 |
Биты данных 2, 1 в режиме параллельного интерфейса (выходы). В режиме последовательного интерфейса - должны оставаться свободными. |
|
DB0 |
20 |
Бит данных 0 (МЗР) в режиме параллельного интерфейса (выход). В режиме последовательного интерфейса должен оставаться свободным. |
|
22 |
Выбор кристалла (логический вход). Сигнал нулевого уровня для включения БИС во взаимодействие с внешним устройством. |
||
21 |
Строб чтения в режиме параллельного интерфейса (логический вход). Сигнал нулевого уровня. |
||
V DD |
1 |
Напряжение питания +5 В ±5 % |
|
AGND |
6 |
Аналоговая “земля“ для аналоговой части БИС: УВХ, компаратора, ЦАП. |
|
DGND |
14 |
Цифровая “земля“ для цифровой части БИС. |
|
2 |
Управление режимом энергопотребления (логический вход). = 1 - нормальный рабочий режим. = 0 - дежурный режим с пониженным энергопотреблением (потребляемая мощность - 5 мВт). |
Зависимость выходного кода от входного напряжения..
AD7892хх-1. Диапазон V IN1 = ±5 В. Вход V IN2 должен быть соединен с входом V IN1, (V IN1 = V IN2), опорное напряжение REF IN = +2,5 В, полный перепад входного напряжения V FS = 10 В, шаг квантования входного сигнала по напряжению 1МЗР = V FS / 2 12 = 10 В / 4096 = 2,44 мВ.
Выходной код - дополнительный. Числовые значения кода соответствуют значениям знакопеременного входного напряжения.
МК КР1830ВЕ51
Микросхема КР1830ВЕ51имеет встроенную памяти программ (ПЗУ). Микроконтроллер выполнен по комплементарной МОП технологии (КМОП) и выпускается в корпусе, имеющем 40 внешних выводов.
Назначение выводов и сигналы МК КР1830ВЕ31
Обозначение вывода |
№ |
Описание |
|
P0.0 … P0.7 |
32…39 |
8-разрядный двунаправленный порт P0. При работе с внешней памятью используется как мультиплексированная шина адрес/данные. |
|
P1.0 … P1.7 |
1…8 |
8-разрядный двунаправленный порт P1. |
|
P2.0 … P2.7 |
21…28 |
8-разрядный двунаправленный порт P2. При работе с внешней памятью используется для вывода старшего байта адреса A8 … A15. |
|
P3.0 … P3.7 |
10…17 |
8-разрядный двунаправленный порт P3 с дополнительными функциями выводов. |
|
RxD / P3.0 |
10 |
Вход приемника последовательных данных. |
|
TxD / P3.1 |
11 |
Выход передатчика последовательных данных. |
|
/ P3.2 |
12 |
Вход 0 для сигнала внешнего прерывания. |
|
/ P3.3 |
13 |
Вход 1 для сигнала внешнего прерывания. |
|
T0 / P3.4 |
14 |
Вход таймера/счетчика 0. |
|
T1 / P3.5 |
15 |
Вход таймера/счетчика 1. |
|
/ P3.6 |
16 |
Выход для управляющего строба при выполнении цикла записи во внешнюю память данных или цикла записи информации из порта во внешнее устройство. |
|
/ P3.7 |
17 |
Выход для управляющего строба при выполнении цикла чтения из внешней памяти данных или цикла чтения информации в порт из внешнего устройства. |
|
29 |
Выход для управляющего строба при выполнении цикла чтения из внешней памяти программ. |
||
ALE |
30 |
Выход для управляющего импульса, разрешающего фиксацию адреса, выставленного на мультиплексированной шине адрес/данные, во внешних устройствах хранения адреса. |
|
31 |
Вход для сигнала запрета доступа к внутренней памяти программ. |
||
XTAL1 |
19 |
Вход внутреннего задающего генератора для подключения одного из выводов внешнего кварцевого резонатора или для подачи внешних сигналов синхронизации. |
|
XTAL2 |
18 |
Выход внутреннего задающего генератора для подключения одного из выводов внешнего кварцевого резонатора. |
|
RST |
9 |
Вход общего сброса. |
|
VCC |
40 |
Вывод для подключения источника питания (+5 В). |
|
VSS |
20 |
Общий вывод (“земля”). |
Подобные документы
Разработка общего алгоритма функционирования цифрового фильтра нижних частот. Разработка и отладка программы на языке команд микропроцессора, составление и описание электрической принципиальной схемы устройства. Быстродействие и устойчивость фильтра.
курсовая работа [860,6 K], добавлен 28.11.2010Аналитическое выражение передаточной функции аналогового фильтра. Построение структурной схемы реализации цифрового фильтра прямым и каноническим способами. Определение реализационных характеристик фильтра. Проверка коэффициентов передаточной функции.
курсовая работа [604,4 K], добавлен 24.10.2012Испытание синтезированного нерекурсивного и рекурсивного цифрового фильтра стандартными и гармоническими сигналами. Расчет реакции фильтра на четырехточечный входной сигнал. Получение системной функции и частотных характеристик цифрового фильтра.
курсовая работа [3,0 M], добавлен 19.05.2015Разработка электрической принципиальной схемы цифрового фильтра и отладка рабочей программы на языке ассемблера, которая будет обеспечивать взаимодействие и работоспособность БИС входящих в состав фильтра, для реализации заданных свойств фильтра.
курсовая работа [683,2 K], добавлен 21.03.2011Способы решения задач синтеза. Этапы расчета элементов фильтра нижних частот. Определение схемы заданного типа фильтра с минимальным числом индуктивных элементов. Особенности расчета фильтр нижних частот Чебышева 5-го порядка с частотой среза 118 кГц.
контрольная работа [525,0 K], добавлен 29.06.2014Расчет цифрового фильтра нижних частот с конечной импульсной характеристикой. Синтез фильтра методом окна (параболического типа). Свойства фильтра: устойчивость, обеспечение совершенно линейной фазочастотной характеристики. Нахождение спектра сигнала.
курсовая работа [28,6 K], добавлен 07.07.2009Разработка математической модели цифрового фильтра нижних частот. Структурная и электрическая принципиальная схемы системы с обоснованием выбора элементов. Время выполнения программы работы цифрового фильтра. Оценка инструментальной погрешности системы.
курсовая работа [3,3 M], добавлен 13.06.2016Разработка алгоритма функционирования устройства. Разработка и отладка рабочей программы на языке команд микропроцессора. Составление и описание электрической принципиальной схемы. Расчет АЧХ устройства для заданных и реальных значений коэффициентов.
курсовая работа [313,9 K], добавлен 28.11.2010Общая характеристика и принцип действия фильтров нижних частот. Схема простейшего низкочастотного фильтра. Схематическое изображение пассивного RC-фильтра нижних частот и его амплитудно-частотная характеристика. Области применения данных фильтров.
презентация [3,2 M], добавлен 16.12.2013Построение схемы цифрового устройства и разработка программы, обеспечивающей работу устройства как цифрового сглаживающего фильтра. Отладка программы. Оценка быстродействия устройства. Преимущества и недостатки цифровых фильтров перед аналоговыми.
курсовая работа [526,8 K], добавлен 03.12.2010