Пояснительная записка
к курсовой работе по дисциплине
«Цифровые устройства имикропроцессоры»
Студент Ксендзов А. В.
Группа 712 специальности 2007
2001
Введение
С внедрениемв промышленность цифровых технологий появилась возможность строить устройства обработкиоцифрованных сигналов вычислительным методом. Такой способ обладает рядом важныхпреимуществ, таких как повышенная точность обработки, меньшая зависимость параметровот внешних условий, а также возможность реализации таких обрабатывающих устройств,которые невозможно или трудно было реализовать в аналоговом виде. К таким устройствамотносятся и цифровые фильтры, для которых стало возможным построение разнообразныхчастотных характеристик путем их аналитической задачи. При этом реализуемы и фильтрытрадиционных типов: нижних частот, верхних частот, полосовые и режекторные.
Сглаживающий фильтр относитсяк особому типу фильтров и призван убирать из сигнала импульсные проявления (пикии щелчки), сглаживая их. Импульс имеет широкий (в идеале бесконечный) частотныйспектр, однако острота его формы определяется именно высокочастотными составляющими.
По заданию требуется спроектироватьцифровой сглаживающий фильтр, используя набор К1821, включающий микропроцессор ВМ85,ПЗУ и порты ввода-вывода на микросхеме РФ55, ОЗУ, таймер счетчик и порты на микросхемеРУ55. Входной сигнал аналоговый, оцифровывается с помощью 10-разрядного АЦП 1108ПВ1,после чего имеет вид отсчетов, следующих через интервал дискретизации. После обработкисигнал в дополнительном цифровом коде должен передаваться в порт ввода-вывода поалгоритму с квитированием. Частота дискретизации FД = 5 кГц, разрядностьвыходного сигнала 8. Обработка должна происходить в реальном масштабе времени. Припроектировании следует придерживаться двух критериев: минимальная аппаратная конфигурацияустройства и минимальное время операций обработки сигнала (вычисления). При определенныхусловиях эти критерии противоречат друг другу.
Фильтр есть линейное устройство,производящее операции над частотным спектром исходного сигнала. Для понимания процессаобработки сигнала в цифровом фильтре полезно знать его основные характеристики.Передаточная функция фильтра, определяющая отношение выходного сигнала к входномупри конкретном значении комплексной частоты, по заданию имеет вид:
H(z) = 0.4 (0.1 + 0.65z –1+ z –2 + 0.65z –3 + 0.1z -4 ) (1),
здесь z = e p Tд- характеризует задержку отсчета на время, равное интервалу дискретизацииТД = 1/FД = 0.2 мс. Для данного случая это означает, что амплитудаочередного выходного отсчета равна сумме амплитуд пяти последних входных отсчетов,помноженных на соответствующие коэффициенты. Когда на вход поступает очередной отсчет,по этому правилу сразу вычисляется очередной выходной. По сути это и есть алгоритмработы цифрового фильтра, который требуется спроектировать.
По этому алгоритму, при подачена вход единственного единичного отсчета фильтр ответит пятью отсчетами, следующимичерез ТД и имеющими амплитуды, равные соответствующим коэффициентам передаточнойфункции:
Видно, что высокий острыйимпульс сглаживается и растягивается во времени.
Если на вход подается последовательностьиз пяти и более единичных отсчетов, то на выходе будет наблюдаться последовательностьнарастающих по амплитуде импульсов, причем каждый последующий больше предыдущегона соответствующий коэффициент, а начиная с пятого все отсчеты имеют единичную амплитуду:
/>
Строго говоря, выражение (1)является аналитическим описанием дискретного режекторного гребенчатого фильтра нерекурсивноготипа ( с конечной импульсной характеристикой ).
Гребенчатость фильтра связанасо стробоскопическим эффектом при оцифровке сигнала, когда бесконечное множествоаналоговых колебаний различных частот имеют одинаковую дискретную реализацию в отсчетахи, следовательно, обрабатываются фильтром одинаково. Но только одно из таких колебанийимеет частоту, меньшую частоты дискретизации, а значит, остальные колебания не отвечаюттребованию теоремы Котельникова, согласно которой верхняя частота сигнала должнабыть как минимум в два раза меньше частоты дискретизации, иначе может произойтипотеря информации, закодированной в дискретном сигнале. По заданию, FД= 5 кГц, следовательно, верхняя частота сигнала, а значит, и фильтра составляет
/>
FВ = 2.5 кГц.
1.Анализ и формализация задачи
Согласно техническому заданиюи выражению (1), обобщенная структура, описывающая работу фильтра, выглядит следующимобразом:
Z-1
Z-1
Z-1
Z-1 xn/> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> />
b0
b1
b2
b3
b4 /> /> /> /> /> /> /> /> /> /> /> />
C
S yn/> /> /> /> /> /> />
где xn –входные отсчеты, yn – выходные отсчеты,
z –1 –задержка на ТД, bm и С – коэффициенты.
Как видно,фильтр должен держать в памяти пять отсчетов одновременно и оперировать с ними,производя арифметические операции. С выполнением поставленной задачи может справитьсямикропроцессорная система, действующая по заданной программе. Она составляет основуцифрового фильтра и включает в себя микропроцессор, оперативную память для храненияотсчетов и постоянную память для хранения кода программы, реализующей алгоритм фильтрации.Согласно заданию, микропроцессорная система строится на основе комплекта К1821,включающего микропроцессор ВМ85, микросхему РФ55 ( ПЗУ и порты ввода-вывода ) имикросхему РУ55 (ОЗУ, таймер-счетчик и порты ввода-вывода ).
Исходныйсигнал, который фильтр должен обрабатывать, имеет аналоговую форму, поэтому егонеобходимо оцифровать. Для этой цели используется аналогово-цифровой преобразователь(АЦП) последовательного приближения 1108ПВ1. Данный АЦП работает с униполярным сигналомот 0 до 3 вольт, поэтому необходимо обеспечить масштабирование и сдвиг на +1.5В аналогового сигнала, который по заданию изменяется в пределах от -2 до +2 В. Этоосуществляется с помощью высокостабильного резистивного делителя и развязывающегоповторителя, выполненного на операционном усилителе.
/>/>АЦП110ПВ1 – десятиразрядный, данные выдаются в прямом параллельном коде. Вычислениеначинается с отрицательным перепадом тактового импульса (ТИ) при условии низкогоуровня на входе запуска ST. в течении первого тактового импульса происходит сбросрегистров и установка опорных напряжений на входе внутреннего селектора АЦП. Далеев течении 10 ТИ осуществляется последовательное приближение, и в последнем 12-мТИ формируется низкоуровневый сигнал RAD, служащий для оповещения внешнего устройствао готовности данных ( присутствии их в выходном буфере). АЦП может работать и в8-разрядном режиме, если его вход SE10/8 подключен к шине отрицательного источникапитания, при этом приближение происходит за 8 ТИ и таким образом, на преобразованиезатрачивается 10 тактов. Следует заметить, что у данного АЦП может быть внешнееили внутреннее тактирование, в последнем случае частота следования тактовых импульсовопределяется величиной конденсатора CCLK, при ССLK = 10пФ fmax = 27 МГц, tmin= 37 нс, время преобразования tпр= 10tmin= 0.37 мкс, отсюда следует, что максимально возможное время обработки микропроцессоромданных tобр= TД – tпр = 200-0.37=199.63 мкс, тоесть, время выборки занимает ничтожную часть общего времени ТД, отведенногона получение очередного входного отсчета и вычисление выходного.
Однако замалое время tпр сигнал на входе АЦП может меняться, и в результате приближенийвыходная информация не будет соответствовать действительности. Необходимо, чтобыво время аналогово-цифрового преобразования уровень входного сигнала был постоянен,или хотя бы не изменялся более чем на 0.5h, где h – шаг квантования
Максимальноеизменение будет происходить на верхней частоте, равной согласно теореме Котельникова
fв= 0.5 FД = 2.5 кГц. Скорость этого изменения можно рассчитать,взяв производную от испытательного колебания с частотой fв и размахомUвхmax = 3 B.
S(t) = 3 sin (2p * 2500 t ); S’(t) = 3*2p *2500 cos (2p *2500 t );
Максимальнаяскорость изменения равна 3*2p*2500 » 47124 В/с.
Du = 47124 * 3.7*10-7 = 17.4 мВ> 5.86 = 0.5h.
Чтобы поддерживатьсигнал на входе АЦП постоянным на время преобразования, требуется устройство выборкии хранения (УВХ), которое фиксирует уровень с момента прихода на управляющий входтактирующего строба и удерживает этот уровень в течении всей его длительности. Впростейшем случае УВХ представляет собой аналоговый ключ и емкость хранения:
В настоящеевремя производятся готовые УВХ в виде микросхем, например, серия К1100. МикросхемаК1100СК2 представляет собой УВХ аналогового сигнала, изменяющегося в пределах ±5 В. При подключаемой емкости хранения 1 нФ времявыборки не превышает: tвыборки
Другая проблемасостоит в том, что входной сигнал является биполярным и изменяется в пределах ±2 В, а заданный АЦП требует униполярный сигнална входе в пределах 0…3 В. То есть необходимо перед подачей входного сигнала наАЦП промасштабировать его на ¾ и поднять постоянную составляющую на 1.5 В.С этой задачей справится аналоговый сумматор на операционном усилителе:
Коэффициентпередачи такого сумматора определяется выражением:
/>
Возможенвариант короткого замыкания цепи ОС,
R3= 0, ROC = ¥. Тогда, еслиположить, что U1 = UBX, a U2 = Uпит, то очевидно, что коэффициент масштабирования U1, равный ¾, можно обеспечить, взяв R1 = 1 кОм, R2 = 3 кОм. Тогда коэффициентпри U2 составляет ¼. Учитывая, что требуемое UСМ= 1.5 В, получаем Uпит = 6 В = ½ Епит = +12 В. То есть,требуемое Uпит можно получить с шины питания с помощью симметричногорезистивного делителя, при этом надо исключить влияние делителя на сумматор, поставивмежду ними повторитель напряжения на операционном усилителе.
Как ужеотмечалось, при проникновении на вход АЦП составляющих с частотами, не отвечающимиусловию теоремы Котельникова, f1 + m FД, m = 1; 2; 3; …, может возникать стробоскопический эффект, выражающийся в перенесении этих составляющихв частотную область, отвечающую данной теореме, f 1
Поэтомучастота входного сигнала должна отвечать теореме Котельникова. Поскольку в техническомзадании не оговариваются частотные свойства входного сигнала, то на входе необходимопоставить аналоговый фильтр с частотой среза, равной ½ FД =2500 Гц, который подавлял бы высокочастотные составляющие и в какой-то мере устранялбы подобные проявления. В простейшем случае это ФНЧ 1-го порядка – RC-цепь и операционныйусилитель.
R
Таким образом,аналоговая входная часть проектируемого устройства представляет собой ФНЧ, грубоограничивающий спектр сигнала, схему сдвига и масштабирования, устройство выборкии хранения и, наконец, АЦП.
/>Синхронизацию выборки с частотойFД целесообразно осуществить аппаратным способом, с помощью таймера-счетчика,встроенного в микросхеме РУ-55, настроив его период счета на ТД. Таймерможет работать в двух периодических режимах: импульс низкого уровня длится половинупериода счета (режим 1) или же один такт общей синхронизации ТТмикропроцессорной системы независимо от периода счета (режим 3). Если тактовая частотасоставляет fT = 5 МГц, то ТТ = 0.2 мкс. На выборку УВХ необходимо10 мкс, то есть, в этом плане выгодней режим 1. Однако, для запуска АЦП со строгойпериодичностью ТД необходимо, чтобы импульс ST длился не более tпр=0.37мкс, то есть, для работы АЦП как нельзя лучше подходит режим 3 ( ровный меандр). Кроме того, короткого импульса может не хватить на сброс УВХ.
/>Из положения можно выйти, настроивтаймер на режим 1. На УВХ меандр подавать через схему задержки, состоящую из интегрирующейцепи и инвертора, на АЦП – через схему формирования короткого отрицательного импульса,состоящую из дифференцирующей цепи и инвертора. В результате импульс ST запуститАЦП, когда уровень сигнала на выходе УВХ уже стабилизировался и поддерживается постоянным.
При этомдолжны выполняться следующие временные соотношения:
/> t1> tпр = 0.37 мкс;
½TД – t1 > tвыборки Þ t1
/> t2> tmin = 37 нс;
t2
Выберемt1 = 10 мкс. Учитывая, что порог срабатывания инвертора составляет 2.5В, можно рассчитать постоянную времени RC-цепи:
2.5 = 5(1 — е– ( t1 / t1 ) );t1 = — t1 / ln0.5 = 14 мкс.
При R =1 кОм С = t / R » 14 нФ.
Аналогично,положим t2 = 0.1 мкс. Постоянная времени дифференцирующей RC-цепи находитсяиз выражения:
2.5= 5 е– ( t2 / t2 ); t2 = — t2 ln0.5 = 0.144 мкс.
При R =1 кОм С = t / R » 144 пФ.
2.Определение общего алгоритма функционирования устройства
Работу цифровогофильтра определяет программа, состоящая из инструкций, предназначенных для микропроцессора,и хранящаяся в ПЗУ независимо от наличия питающего напряжения. Поскольку ПЗУ –единственное устройство, способное хранить информацию при отсутствии питания, тов нем должны быть также заложены данные о конфигурации и синхронизации устройства.При включении питания фильтр в первую очередь должен быть сконфигурирован на правильную,то есть соответствующую требуемой работу. Это осуществляется с помощью программыинициализации. При включении питания микропроцессор обнуляет счетчик команд, и выполнениеинструкций тогда происходит с нулевого адреса ПЗУ, находящегося в области векторовпрерываний. Туда следует в качестве инструкции поместить ссылку на адрес ПЗУ, скоторого начинается программа инициализации. Когда управление будет передано ей,она должна настроить порты на ввод и вывод данных, таймер-счетчик на частоту синхронизациивыборки, а также обнулить рабочие ячейки ОЗУ, исключив тем самым быстроменяющиесяпереходные процессы. Программа инициализации не должна прерываться, поэтому на времяее выполнения прерывания следует запретить.
Чтобы настроитьтаймер на частоту дискретизации и режим работы 1, необходимо 16-разрядное управляющееслово:
0100001111001000(2)= 83С4(16)
Дав старшихбита 01 определяют режим 1, а остальное представляет собой 14-разрядное число N = ТД / ТТ = 1000(10) .
Старшийбайт этого слова записывается по адресу 7004(16), а младший – по адресу7005(16).
Для вводаи вывода данных могут использоваться соответственно порты А и В микросхемы РУ55,а 6-разрядный порт С можно использовать как линии готовности и квитирования портовА и В. Для установки используется управляющее слово, имеющее вид:
1 1 1 1 1 1 1 0(2)
Попарноразряды этого слова, начиная с младшего, означают следующее:
Порт А работаетна ввод, порт В – на вывод;
порт С работаеткак порт служебных сигналов;
разрешитьпрерывания по портам А и В;
запуск таймера.
Линии портаС передают следующие сигналы:
PC0– INTRA – запрос прерывания по порту А;
PC1– BFA – состояние буфера порта А;
/>PC2 – STBA – строб записив порт А;
PC3 –INTRB – запрос прерывания по порту В;
PC4 –BFB – состояние буфера порта В;
/>PC5 – STBB – сигнал квитированияс периферии.
4-й и 5-йбиты управляющего слова разрешают вывод сигналов INTRA и INTRB.
Управляющееслово необходимо для инициализации записать по адресу 7000(16).
Конечныйшаг инициализации — устанавливается маска прерываний и с них снимается запрет. Вслучае, если используется аппаратное прерывание RST7.5,маска имеет вид:
0 0 0 0 1 0 1 1(2)
0-й и 1-йразряды содержат единицы, маскирующие прерывания 5.5 и 6.5, нуль во 2-м оставляетдоступным прерывание 7.5; единица в 3-м разряде разрешает прерывания.
Для установкиэтой маски используется специальная команда SIM микропроцессора ВМ85.
/>Программа инициализации заканчиваетсястандартно – командой HLT – останов. После этого процессорбудет запускаться только аппаратным прерыванием RST 7.5 – при положительном перепаденапряжения на соответствующем входе. Сигналом запуска для микропроцессора долженслужить сигнал наличия данных в буфере порта А BFA. Данныйсигнал переходит на высокий уровень по положительному (заднему) фронту сигнала готовностиданных АЦП RAD, представляющего собой импульс низкого уровнядлительностью чуть больше такта АЦП tmin,то есть когда оцифрованный отсчет загружается в буфер порта А. Сигнал BFA обнуляется, когда происходит программноеобращение к порту А с целью считать данные во внутренний регистр микропроцессора(аккумулятор).
При перепадена высокий уровень, если прерывание не замаскировано и разрешено, произойдет сохранениесчетчика команд в стеке, и микропроцессор начнет работу с ячейки 003С(16).В эту ячейку следует записать инструкцию перехода на начальный адрес основной программы,которая будет считывать входной отсчет из порта А, обрабатывать его согласно алгоритмуфильтрации и выводить в порт В. Основная программа должна отработать до приходав порт А очередных данных, а до этого не прерываться. Первое обеспечивается эффективностьюалгоритма и быстродействием программы. Второе – хранением высокого уровня на входеRST 7.5 триггером, поэтому ложная импульсная помеха, попавшаяна этот вход во время выполнения программы, не прервет и не перезапустит ее. Ночтобы обеспечить возможность нового запуска программы при приходе очередных данных,необходимо сбросить триггер, что осуществляется переустановкой маски, описаннойвыше. Кроме того, необходимо записать исходное число 50FF в указатель стека, так как при каждом прерывании в стек записываетсясчетчик команд, а указатель стека дважды декрементируется, что в конечном итогеприведет к достижению им рабочей области и засорению ее неверной информацией. Завершается основная программа командойHLT, и процессор ожидает поступления на входRST 7.5 очередного положительного перепада.
3. Разработкаконкретных алгоритмов работы устройства
Как уже оговаривалось,при рестарте микропроцессор начинает исполнять инструкции, находящиеся в областивекторов прерываний ПЗУ в зависимости от типа рестарта. При включении питания исполняетсякоманда, записанная в ячейке с адресом 0000(16), а при аппаратном прерыванииRST 7.5. — начальный адрес 003С(16). В эти ячейки следует поместить командыбезусловного перехода на определенный адрес JMP. В первомслучае ссылка осуществляется на программу инициализации, во втором – на основнуюпрограмму обработки оцифрованного сигнала. Обе программы ориентировочно небольшиепо сравнению с размером ПЗУ ( 2кбайт ), поэтому их можно рассредоточить в адресномпространстве. Например, программу инициализации поместить с адреса 0200(16),а основную программу – начиная с адреса 0500(16). Тогда ориентировочнаякарта памяти выглядит следующим образом:0000 JMP 0200 0001 … 003C JMP 0500 003D … 0200 Инициализация 0201 … … 0500 Осн. программа 0501 … … 5000 ОЗУ 5001 … 7001 Порт А 7002 Порт В 7003 …
ПЗУ, ОЗУи порты ввода-вывода имеют одно адрестое пространство, поэтому обращение к ним можнопроизводить с помощью одних и тех же инструкций: LDA(загрузка ) и STA (запоминание). При этом данные соответственнозагружаются в аккумулятор и копируется из него.
Алгоритмпрограммы инициализации имеет следующий вид:
Основнаяпрограмма должна начинаться с загрузки в аккумулятор входного отсчета из порта А.Входные данные, получаемые от АЦП, представлены в беззначном коде (минимальное число00000000(2), максимальное 11111111(2)). Чтобы перейти к рабочемукоду процессора – дополнительному, достаточно прибавить к входному число 80(16)= 10000000(2), это эквивалентно отсечению постоянной составляющей. Далеепредстоит умножение числа на коэффициенты и суммирование согласно выражению(1). Для этих целей необходимо хранить предыдущие отсчеты в памяти ОЗУ. Возможенследующий вариант организации оперативной (рабочей) памяти:
Отсчет*0.4 *коэффиц.
Адрес(16)
/>Xi-4 0.1 5000
/>Xi-3 1 5001 0.65 5002 0.1 5003
/>/>/>/>
S Xi-2 1 5004 0.65 5005 0.1 5006
Xi-1 1 5007 0.65 5008 0.1 5009
Xi 1 500А 0.65 500В 0.1 500С
ОЗУ начинаетсяс адреса 5000(16), тут и можно разместить рабочую область. Преобразованныйотсчет умножается на 0.4, помещается в ячейку с адресом 500А, далее умножается на0.65 и помещается в ячейку 500В. Эти два умножения выполняются стандартно –сдвигом множителя и сложением.
Коэффициент0.4 можно представить в 8-разрядной сетке приближенно: 0.0110011 =0.25+0.125+0.015625+0.0078125 = 0.3984325. Алгоритм умножения на 0.4:
Аналогичнопроизводится умножение на коэффициент 0.65, который в двоичном виде можно представитькак 0.1010011 = 0.5+0.125+0.015625+0.0078125=0.6484375.
Как видно,алгоритмы схожи. Деление на два может быть реализовано с помощью арифметическогосдвига аккумулятора путем сочетания инструкций RLC, RAR, RAR. Такая последовательность командисключает потерю знака из 7-го разряда, а значит, может применяться для положительныхи отрицательных чисел. Округление представляет собой сложение с элементом, оказавшимсяпосле деления вне разрядной сетки. При арифметическом сдвиге этот элемент переходитво флаг переноса С, следовательно, для округления может быть использована командасложения с переносом ADC E, где Е – заранее обнуленный регистр, либо ADC B, когда непосредственно за округлениемв алгоритме следует сложение с регистром В. Чтобы не потерять множитель-отсчет,перед сложением с регистром В его необходимо сохранить, например, в регистр С, послесложения восстановить в аккумулятор и продолжать операции арифметического сдвига.
Умножениена 0.1 можно выполнить более просто, если учесть, что С(b0+b1+b2+b3+b4)=С(2b0+2b1+b2)=1 – это легко проверить. Домножив обе части равенствана величину преобразованного в дополнительный код отсчета, получим:
Xi = 2Cb0Xi + 2Cb1Xi+Cb2Xi = 2*0.4*0.1Xi + 2*0.4*0.65Xi+0.4Xi
Значение0.4*0.1*Xi является искомыми должно быть записано в ячейку 500С:
Алгоритмумножения на 0.1 должен реализовать данное выражение, причем исходные данные в числителеизвестны, если преобразованный отсчет Xi перед умножением на 0.4 сохранитьв регистре, например, D. Значение 0.4*0.65*Xi на данном этапе находится в аккумуляторе. Умножение его на 2можно выполнить последовательностью инструкций RAL, RAL, RRC, ANI 11111110(2), позволяющей сохранить знак числа и исключитьнечетность из-за перехода единицы в нулевой разряд аккумулятора из флага переноса.
Теперь рабочаяобласть ОЗУ подготовлена к суммированию в соответствии с выражением (1), как показанона рис… Суммируется содержимое ячеек с адресами 500С, 5008, 5004, 5002, 5000.Для этого можно использовать инструкцию ADD M, а в качестве указателя на адреса– регистр HL. После суммирования данные готовы к выводу в порт.
Далее содержимоеячеек 5003 – 500С подлежит переносу на три ячейки вверх – таким образом текущийотсчет становится предыдущим, предыдущий – препредыдущим и т. д. Сдвиг удобно осуществлятьпарами, используя для этого инструкции LHLD и SHLD.
Последнейоперацией основной программы является сброс входного триггера входа микропроцессораRST 7.5., после чего вход будет воспринимать сигнал прерывания как команду рестартамикропроцессора. Для сброса триггера просто переустанавливается маска прерываний,описанная выше.
Алгоритмработы основной программы ( алгоритм фильтрации ) выглядит следующим образом:
4. Разработкаи отладка программного обеспечения
Программа,реализующая приведенные выше алгоритмы, разработана для микропроцессора КР1821ВМ85.При создании программы использовался в качестве компилятора кросс-ассемблер ASM80, позволяющий с помощью директив и меток, располагаемых втексте программы, уйти от прямых физических адресов. Для пошагового анализа работыпрограммы, выявления и исправления ошибок в реализации алгоритмов использовалсяотладчик DEB80. Исходный текст программы, а также ее листингс указанием физических адресов, приведены ниже. Основная часть программы, реализующаяалгоритм фильтрации, занимает ячейки ПЗУ с адреса 0500(16) по 0598(16)включительно, то есть 152 байта памяти. На исполнение основной части программы смомента рестарта RST 7.5. уходит 727 машинных тактов примаксимально допустимом числе их N=1000, то есть программа,работая, укладывается в интервал дискретизации с запасом по времени » 25 %, что означает выполнение одного из требованийк устройству – обработка сигнала в реальном масштабе времени.
Ввиду отсутствияв обобщенной структуре фильтра обратных связей и конечности цифровой импульснойхарактеристики фильтр абсолютно устойчив, то есть любое входное возмущение не приведетк генерации.
Исходя изтого, что переходная характеристика не имеет выброса и стремится к единице, можноутверждать, что при условии корректной реализации алгоритма не будет происходитьпереполнения разрядной сетки, то есть переходной процесс не превышает постоянныйвходной уровень, а установившийся режим в точности повторяет его. Это относитсяи к максимально допустимым цифровым значениям входных отсчетов. Переполнение можетиметь место при некоторых упущениях в реализованной программе, например, когда результатывсех умножений ( на 0.4, 0.65, 0.1 ) округлятся в большую сторону. Однако особыйспособ реализации умножения на 0.1 ( вычитанием из единицы ) исключает такую возможность.
С целью проверкина переполнение был осуществлен ручной и автоматический расчет работы программы.В качестве исходных принимались два критических случая – минимального и максимальногопостоянных уровней на входе.
В первомслучае от АЦП приходил максимальный отсчет FFh, которыйпосле перехода к дополнительному коду принимал значение 7Fh.Далее это значение умножалось согласно алгоритму на 0.4, и результат 33h записывался в ячейку 500А. Он же умножалсязатем на 0.65 ( результат 23h – в ячейку 500В ) и на 0.1( результат 03h – в ячейку 500С ). Перед суммированием этирезультаты были занесены в ячейки 5000 – 5009 согласно рис… В итоге суммированиедало результат, равный входному: 03h + 23h + 33h + 23h+ 03h = 7Fh – он и был отправленв порт В.
Во второмслучае входной отсчет имел значение 00h, после преобразования80h, после умножения — CDh, E0h и FАh в ячейках500А, 500В и 500С соответственно. Эти же значения помещаются в другие рабочие ячейки,соответствующие алгоритму суммирования. Результат суммирования: FAh + E0h + CDh+ E0h + FAh = 81h – был отправлен в порт.
И в том,и в другом случае переполнения не произошло.
5. Погрешностьрасчета, связанная с конечным представлением коэффициентов
Ранее ужеотмечалось, что заданные коэффициенты представлены округленно: 0.4 как 0.3984325,0.65 как 0.6484375. Нетрудно показать, что умножение на 0.1 фактически являетсяумножением на 0.1015625. Поэтому реальная амплитудно-частотная характеристика фильтрабудет отличаться от заданной с помощью передаточной функции. Однако отличия истинныхкоэффициентов от заданных столь мало, что реальная АЧХ практически не отличаетсяот заданной, показанной на рис. .
Другим существеннымфактором искажений является конечное представление самих отсчетов. Так, после умноженияна 0.4, а затем на 0.1, существенными остаются только разряды с 5-го по 7-й, причем7-й – знаковый. Остальные 5 разрядов по сути отбрасываются, то есть возможна ситуация,когда при изменении значения отсчета в пределах 1Fh результат умножения на коэффициент 0.1 остается неизменным. Этотакже влияет на погрешность при расчете.
6. Описаниепринципиальной схемы устройства
Принципиальнаясхема цифрового фильтра поясняет электрические соединения между отдельными элементами,которыми являются:
1) цифровые микросхемы комплекта КР1821, обеспечивающие минимальную конфигурациюмикропроцессорной системы;
2) микросхема аналогово-цифрового преобразователя;
3) микросхема устройства выборки и хранения;
4) схема формирования управляющих стробов, состоящая из двух RC-цепей и элементов И-НЕ, использующихся в качестве инверторов;
5) операционные усилители, служащие в качестве развязывающих элементов и основасхемы смещения и масштабирования;
6) четыре разъема:
а) для входногосигнала ( может использоваться стандартный разъем типа JACK);
б) для выводапараллельного кода отсчета;
в) разъемпитающих напряжений и заземления;
г) разъемсинхронизации с внешним устройством.
7) вспомогательные элементы.
Заключение
В даннойкурсовой работе был спроектирован цифровой сглаживающий фильтр на основе комплектамикросхем КР1821ВМ85. По результатам разработки фильтра можно выработать следующиерекомендации по диагностике неисправностей в процессе эксплуатации.
1) Если данные не выводятся в выходной порт, необходимо проверить наличие сигналасинхронизации выборки на выходе TOUT (вывод 6 микросхемы DD3 ), а также его форму и период.
2) Если данные есть, но они явно искажены, возможная причина неисправности заключаетсяв рассогласовании работы цепи формирования управляющих стробов, и необходимо проверитьналичие и форму сигналов на входах 22 DD5 и 13 DA3, их соответствие диаграммам.
Возможнотакже, что причиной рассинхронизации является перегрузка выхода СИНХР фильтра: рекомендуетсяподключать этот выход не более чем к одному внешнему устройству.
Кроме того,следует проверить наличие аналогового сигнала на выходах операционных усилителейи УВХ, соответствие его требованиям ко входному сигналу АЦП.
В остальныхслучаях причиной неисправности может являться отказ вспомогательных элементов илимикросхем.
Список литературы
1. Рафикузаман М. Микропроцессоры и машинное проектированиемикропроцессорных систем: В 2-х кн. Кн.1. Пер. с англ.-М.: Мир, 1988.
2. Р. Токхайм. Микропроцессоры. Курс и упражнения. Пер. с англ.В.Н Грасевиче и Л.А. Ильяшенко. М.: Энергоатомиздат, 1988
3. Щелкунов Н.Н., Дианов А.П. Микропроцессорные средства исистемы.- М.: Радио и связь,1989.
4. Федорков Б.Г., Телец В.А. Микросхемы ЦАП и АЦП:функционирование, параметры, применение.- М.: Энергоатомиздат, 1990.
5. Микропроцессорный комплект К1810: Структура,программирование, применение: Справочная книга. Под ред. Ю.М.Казаринова.- М.:Высш. шк., 1990.
6. Программирование для микропроцессора К580: Методическиеуказания к лабораторным работам / РГРТА.; Сост.: В.Н.Локтюхин, Ю.А.Сосулин.Рязань, 1996.
7. Перельман Б.П. Отечественные микросхемы и их зарубежныеаналоги: справочник. М: 1998