Цифровий згладжує фільтр

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Пояснювальна записка

до курсової роботи з дисципліни

«Цифрові пристрої та мікропроцесори»

Студент Ксендзов А. В.

Група 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), узагальнена структура, що описує роботу фільтра, виглядає наступним чином:

x n




y n


де x n - вхідні відліки, y n - вихідні відліки,

z -1 - затримка на Т Д, b m і С - коефіцієнти.

Як видно, фільтр повинен тримати в пам'яті п'ять відліків одночасно і оперувати з ними, виробляючи арифметичні операції. З виконанням поставленої задачі може впоратися мікропроцесорна система, що діє за заданою програмою. Вона складає основу цифрового фільтру і включає в себе мікропроцесор, оперативну пам'ять для зберігання відліків і постійну пам'ять для зберігання коду програми, що реалізує алгоритм фільтрації. Згідно з завданням, мікропроцесорна система будується на основі комплекту К1821, що включає мікропроцесор ВМ85, мікросхему РФ55 (ПЗУ і порти введення-виведення) і мікросхему РУ55 (ОЗУ, таймер-лічильник і порти введення-виведення).

Вихідний сигнал, який фільтр повинен обробляти, має аналогову форму, тому його необхідно оцифрувати. Для цієї мети використовується аналогово-цифровий перетворювач (АЦП) послідовного наближення 1108ПВ1. Даний АЦП працює з уніполярних сигналом від 0 до 3 вольт, тому необхідно забезпечити масштабування і зрушення на +1.5 У аналогового сигналу, який за завданням змінюється в межах від -2 до +2 В. Це здійснюється за допомогою високостабільного резистивного дільника і розв'язують повторювача, виконаного на операційному підсилювачі.

АЦП 110ПВ1 - десятирозрядний, дані видаються в прямому паралельному коді. Обчислення починається з негативним перепадом тактового імпульсу (ТІ) за умови низького рівня на вході запуску ST. протягом першого тактового імпульсу відбувається скидання регістрів та встановлювання опорних напруг на вході внутрішнього селектора АЦП. Далі протягом 10 ТІ здійснюється послідовне наближення, і в останньому 12-му ТІ формується низькорівневий сигнал RAD, службовець для оповіщення зовнішнього пристрою про готовність даних (присутності їх у вихідному буфері). АЦП може працювати і в 8-розрядному режимі, якщо його вхід SE10 / 8 підключений до шини негативного джерела живлення, при цьому наближення відбувається за 8 ТИ і таким чином, на перетворення витрачається 10 тактів. Слід зауважити, що у даного АЦП може бути зовнішнє або внутрішнє тактирование, в останньому випадку частота проходження тактових імпульсів визначається величиною конденсатора C CLK, при С СLK = 10 пФ f max = 27 МГц, t min = 37 нс, час перетворення t пр = 10 t min = 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 (2 p * 2500 t); S '(t) = 3 * 2 p * 2500 cos (2 p * 2500 t);

Максимальна швидкість зміни дорівнює 3 * 2 p * 2500 »47124 В / с.

D u = 47124 * 3.7 * 10 -7 = 17.4 мВ> 5.86 = 0.5h.

Щоб підтримувати сигнал на вході АЦП постійним на час перетворення, потрібно пристрій вибірки та зберігання (ПВЗ), яка фіксує рівень з моменту приходу на керуючий вхід тактового стробі та утримує цей рівень протягом всієї його тривалості. У найпростішому випадку ПВЗ є аналоговий ключ і ємність зберігання:

В даний час проводяться готові ПВЗ у вигляді мікросхем, наприклад, серія К1100. Мікросхема К1100СК2 представляє собою ПВЗ аналогового сигналу, що змінюється в межах ± 5 В. При підключається ємності зберігання 1 нФ час вибірки не перевищує: t вибірки <10 мкс. Швидкість зміни вихідної напруги при зберіганні не більше 5 мВ / мс, тобто при використанні ПВЗ D u max = 1.85 мВ <5.86 мВ.

Інша проблема полягає в тому, що вхідний сигнал є біполярним і змінюється в межах ± 2 В, а заданий АЦП вимагає уніполярний сигнал на вході в межах 0 ... 3 В. Тобто необхідно перед подачею вхідного сигналу на АЦП промасштабіровать його на ¾ і підняти постійну складову на 1.5 В. З цим завданням впорається аналоговий суматор на операційному підсилювачі:

Коефіцієнт передачі такого суматора визначається виразом:

Можливий варіант короткого замикання ланцюга ОС,

R 3 = 0, R OC = ¥. Тоді, якщо покласти, що U 1 = U BX, a U 2 = U піт, то очевидно, що коефіцієнт масштабування U 1, який дорівнює ¾, можна забезпечити, взявши R 1 = 1 кОм, R 2 = 3 ком. Тоді коефіцієнт при U 2 становить ¼. Враховуючи, що потрібне U СМ = 1.5 В, отримуємо U піт = 6 В = ½ Е піт = +12 В. Тобто, потрібне U піт можна отримати з шини живлення за допомогою симетричного резистивного дільника, при цьому треба виключити вплив дільника на суматор, поставивши між ними повторювач напруги на операційному підсилювачі.

Як вже зазначалося, при проникненні на вхід АЦП складових з частотами, що не відповідають умові теореми Котельникова, f 1 + m F Д, m = 1, 2, 3; ..., може виникати стробоскопічний ефект, що виражається в перенесенні цих складових в частотну область, відповідає даній теоремі, f 1 <F Д.

Тому частота вхідного сигналу повинна відповідати теоремі Котельникова. Оскільки в технічному завданні не обумовлюються частотні властивості вхідного сигналу, то на вході необхідно поставити аналоговий фільтр з частотою зрізу, рівною ½ F Д = 2500 Гц, який придушував би високочастотні складові і в якійсь мірі усував би подібні прояви. У найпростішому випадку це ФНЧ 1-го порядку - RC-ланцюжок і операційний підсилювач.

R <<R BX oy, R = 1 кОм; С = 1 / (p RF Д) = 63.66 нФ.

Таким чином, аналогова вхідна частина проектованого пристрою являє собою ФНЧ, грубо обмежує спектр сигналу, схему зсуву та масштабування, пристрій вибірки та зберігання і, нарешті, АЦП.

Синхронізацію вибірки з частотою F Д доцільно здійснити апаратним способом, за допомогою таймера-лічильника, вбудованого в мікросхемі РУ-55, налаштувавши його період рахунки на Т Д. Таймер може працювати в двох режимах періодичних: імпульс низького рівня триває половину періоду рахунку (режим 1) або ж один такт загальної синхронізації Т Т мікропроцесорної системи незалежно від періоду рахунку (режим 3). Якщо тактова частота складає f T = 5 МГц, то Т Т = 0.2 мкс. На вибірку ПВЗ необхідно 10 мкс, тобто, в цьому плані вигідніше режим 1. Однак, для запуску АЦП з суворою періодичністю Т Д необхідно, щоб імпульс ST тривав не більше t пр = 0.37 мкс, тобто, для роботи АЦП як не можна краще підходить режим 3 (рівний меандр). Крім того, короткого імпульсу може не вистачити на скидання ПВЗ.

З положення можна вийти, налаштувавши таймер на режим 1. На ПВЗ меандр подавати через схему затримки, що складається з інтегруючого ланцюга і інвертора, на АЦП - через схему формування короткого негативного імпульсу, що складається з диференціює ланцюга та інвертора. У результаті імпульс ST запустить АЦП, коли рівень сигналу на виході ПВЗ вже стабілізувався і підтримується постійним.

При цьому повинні виконуватися наступні тимчасові співвідношення:

t 1> t пр = 0.37 мкс;

½ T Д - t 1> t вибірки Þ t 1 <90 мс;

t 2> t min = 37 нс;

t 2 <t пр = 0.37 мкс.

Виберемо t 1 = 10 мкс. Враховуючи, що поріг спрацьовування інвертора становить 2.5 В, можна розрахувати постійну часу RC-ланцюга:

2.5 = 5 (1 - е - (t1 / t 1)); t 1 = - t 1 / ln 0.5 = 14 мкс.

При R = 1 кОм С = t / R »14 нФ.

Аналогічно, покладемо t 2 = 0.1 мкс. Постійна часу диференціюючого RC-ланцюга знаходиться з виразу:

2.5 = 5 е - (t2 / t 2); t 2 = - t 2 ln 0.5 = 0.144 мкс.

При R = 1 кОм С = t / R »144 пФ.

  1. Визначення загального алгоритму функціонування пристрою

Роботу цифрового фільтра визначає програма, що складається з інструкцій, призначених для мікропроцесора, і зберігається в ПЗУ незалежно від наявності напруги живлення. Оскільки ПЗУ - єдиний пристрій, здатне зберігати інформацію при відсутності живлення, то в ньому повинні бути також закладені дані про конфігурацію та синхронізації пристрою. При включенні живлення фільтр в першу чергу повинен бути налаштований на правильну, тобто відповідну необхідної роботу. Це здійснюється за допомогою програми ініціалізації. При включенні харчування мікропроцесор обнуляє лічильник команд, і виконання інструкцій тоді відбувається з нульового адреси ПЗУ, що знаходиться в області векторів переривань. Туди треба як інструкції помістити посилання на адресу ПЗУ, з якого починається програма ініціалізації. Коли управління буде передано їй, вона повинна налаштувати порти на введення і виведення даних, таймер-лічильник на частоту синхронізації вибірки, а також обнулити робочі осередки ОЗУ, виключивши тим самим швидкозмінні перехідні процеси. Програма ініціалізації не повинна перериватися, тому на час її виконання переривання слід заборонити.

Щоб настроїти таймер на частоту дискретизації і режим роботи 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)

Попарно розряди цього слова, починаючи з молодшого, означають наступне:

Порт А працює на введення, порт В - на висновок;

порт З працює як порт службових сигналів;

дозволити переривання по портах А і В;

запуск таймера.

Лінії порту С передають наступні сигнали:

PC 0 - INTRA - запит переривання по порту А;

PC 1 - BFA - стан буфера порту А;

PC2 - STBA - строб запису в порт А;

PC3 - INTRB - запит переривання по порту В;

PC4 - BFB - стан буфера порту В;

PC5 - STBB - сигнал квитирования з периферії.

4-й і 5-й біти керуючого слова дозволяють висновок сигналів INTRA і INTRB.

Управляє слово необхідно для ініціалізації записати за адресою 7000 (16).

Кінцевий крок ініціалізації - встановлюється маска переривань і з них знімається заборона. У випадку, якщо використовується апаратне переривання RST 7.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, що представляє собою імпульс низького рівня тривалістю трохи більше такту АЦП t min, тобто коли оцифрований відлік завантажується в буфер порту А. Сигнал BFA обнуляється, коли відбувається програмне звернення до порту А з метою вважати дані у внутрішній регістр мікропроцесора (акумулятор).

При перепаді на високий рівень, якщо переривання не замасковано і дозволено, відбудеться збереження лічильника команд в стеку, і мікропроцесор почне роботу з клітинки 003С (16). У цю клітинку слід записати інструкцію переходу на початковий адресу основної програми, яка буде зчитувати вхідний відлік з порту А, обробляти його згідно з алгоритмом фільтрації і виводити в порт В. Основна програма повинна відпрацювати до приходу в порт А чергових даних, а до цього не перериватися . Перше забезпечується ефективністю алгоритму і швидкодією програми. Друге - зберіганням високого рівня на вході RST 7.5 тригером, тому помилкова імпульсна перешкода, яка потрапила на цей вхід під час виконання програми, не перерве і не перезапустить її. Але щоб забезпечити можливість нового запуску програми при приході чергових даних, необхідно скинути тригер, що здійснюється перевстановлення маски, описаної вище. Крім того, необхідно записати вихідне число 50 FF в покажчик стека, тому що при кожному перериванні в стек записується лічильник команд, а покажчик стека двічі декрементируется, що в кінцевому підсумку приведе до досягнення ним робочої області і засмічення її невірною інформацією. Завершується основна програма командою 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 (запам'ятовування). При цьому дані, відповідно, завантажуються в акумулятор і копіюється з нього.

Алгоритм програми ініціалізації має наступний вигляд:

Основна програма повинна починатися із завантаження в акумулятор вхідного відліку з порту А. Вхідні дані, одержувані від АЦП, представлені в беззначном коді (мінімальне число 00 мільйонів (2), максимальне 11111111 (2)). Щоб перейти до робочого коду процесора - додаткового, достатньо додати до вхідного число 80 (16) = 10000000 (2), це еквівалентно відсіканню постійної складової. Далі має бути множення числа на коефіцієнти і підсумовування відповідно до виразу (1). Для цих цілей необхідно зберігати попередні відліки в пам'яті ОЗУ. Можливий такий варіант організації оперативної (робочої) пам'яті:

Відлік * 0.4

* Коеффіц.

Адреса (16)

X i-4

0.1

5000

X i-3

1

5001


0.65

5002


0.1

5003

X i-2

1

5004


0.65

5005


0.1

5006

X i-1

1

5007


0.65

5008


0.1

5009

X i

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 можна виконати більш просто, якщо врахувати, що С (b 0 + b 1 + b 2 + b 3 + b 4) = С (2 b 0 +2 b 1 + b 2) = 1 - це легко перевірити. Домножити обидві частини рівності на величину перетвореного в додатковий код відліку, отримаємо:

X i = 2Cb 0 X i + 2Cb 1 X i + Cb 2 X i = 2 * 0.4 * 0.1X i + 2 * 0.4 * 0.65X i +0.4 X i

Значення 0.4 * 0.1 * X i є шуканим і повинно бути записано в клітинку 500С:

Алгоритм множення на 0.1 повинен реалізувати даний вираз, причому вихідні дані у чисельнику відомі, якщо перетворений відлік X i перед множенням на 0.4 зберегти в регістрі, наприклад, D. Значення 0.4 * 0.65 * X i на даному етапі знаходиться в акумуляторі. Множення його на 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. При створенні програми використовувався в якості компілятора крос-асемблер ASM 80, що дозволяє за допомогою директив і ярликів, розташованих у тексті програми, піти від прямих фізичних адрес. Для покрокового аналізу роботи програми, виявлення та виправлення помилок в реалізації алгоритмів використовувався відладчик DEB 80. Вихідний текст програми, а також її лістинг з зазначенням фізичних адрес, наведені нижче. Основна частина програми, що реалізує алгоритм фільтрації, займає осередку ПЗУ з адреси 0500 (16) за 0598 (16) включно, тобто 152 байти пам'яті. На виконання основної частини програми з моменту рестарту RST 7.5. йде 727 машинних тактів при максимально допустимому числі їх N = 1000, тобто програма, працюючи, укладається в інтервал дискретизації з запасом по часу »25%, що означає виконання однієї з вимог до пристрою - обробка сигналу в реальному масштабі часу.

Зважаючи на відсутність в узагальненій структурі фільтра зворотних зв'язків і кінцівки цифровий імпульсної характеристики фільтр абсолютно стійкий, тобто будь-яке вхідний обурення не призведе до генерації.

Виходячи з того, що перехідна характеристика не має викиду і прагне до одиниці, можна стверджувати, що за умови коректної реалізації алгоритму не буде відбуватися переповнення розрядної сітки, тобто перехідний процес не перевищує постійний вхідний рівень, а сталий режим в точності повторює його. Це відноситься і до максимально припустимих цифровим значенням вхідних відліків. Переповнення може мати місце при деяких недогляди в реалізованій програмі, наприклад, коли результати всіх множень (на 0.4, 0.65, 0.1) округляться в більшу сторону. Однак особливий спосіб реалізації множення на 0.1 (вирахуванням з одиниці) виключає таку можливість.

З метою перевірки на переповнення був здійснений ручний і автоматичний розрахунок роботи програми. У якості вихідних приймалися два критичних випадку - мінімального і максимального постійних рівнів на вході.

У першому випадку від АЦП приходив максимальний відлік FFh, який після переходу до додаткового коду брав значення 7 Fh. Далі це значення множилося згідно з алгоритмом на 0.4, і результат 33 h записувався в клітинку 500А. Він же розмножувався, потім на 0.65 (результат 23 h - у клітинку 500В) і на 0.1 (результат 03 h - у клітинку 500С). Перед підсумовуванням ці результати були занесені в осередки 5000 - 5009 згідно з рис. . У результаті підсумовування дало результат, рівний вхідному: 03 h + 23 h + 33 h + 23 h + 2003 h = 7 Fh - він і був відправлений у порт В.

У другому випадку вхідний відлік мав значення 00 h, після перетворення 80 h, після множення - CDh, E 0 h і 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 розрядів по суті відкидаються, тобто можлива ситуація, коли при зміні значення відліку в межах 1 Fh результат множення на коефіцієнт 0.1 залишається незмінним. Це також впливає на похибку при розрахунку.

6. Опис принципової схеми пристрою

Принципова схема цифрового фільтра пояснює електричні з'єднання між окремими елементами, якими є:

  1. цифрові мікросхеми комплекту КР1821, що забезпечують мінімальну конфігурацію мікропроцесорної системи;

  2. мікросхема аналогово-цифрового перетворювача;

  3. мікросхема пристрої вибірки та зберігання;

  4. схема формування керуючих стробов, що складається з двох RC-ланцюгів і елементів І-НЕ, що використовуються як інверторів;

  5. операційні підсилювачі, службовці як розв'язують елементів і основа схеми зсуву і масштабування;

  6. чотири роз'єми:

а) для вхідного сигналу (може використовуватися стандартний роз'єм типу JACK);

б) для виведення паралельного коду відліку;

в) роз'єм живлячих напруг і заземлення;

г) роз'єм синхронізації із зовнішнім пристроєм.

  1. допоміжні елементи.

Висновок

У цій роботі був спроектований цифровий згладжує фільтр на основі комплекту мікросхем КР1821ВМ85. За результатами розробки фільтра можна виробити такі рекомендації з діагностики несправностей у процесі експлуатації.

  1. Якщо дані не виводяться у вихідний порт, необхідно перевірити наявність сигналу синхронізації вибірки на виході TOUT (вивід 6 мікросхеми DD 3), а також його форму і період.

  2. Якщо дані є, але вони явно спотворені, можлива причина несправності полягає в неузгодженості роботи ланцюга формування керуючих стробов, і необхідно перевірити наявність і форму сигналів на входах 22 DD 5 і 13 DA 3, їх відповідність діаграм.

Можливо також, що причиною рассинхронізациі є перевантаження виходу Синхрон фільтра: рекомендується підключати цей вихід не більше ніж до одного зовнішнього пристрою.

Крім того, слід перевірити наявність аналогового сигналу на виходах операційних підсилювачів і ПВЗ, відповідність його вимогам до вхідного сигналу АЦП.

В інших випадках причиною несправності може бути відмова допоміжних елементів або мікросхем.

Список літератури

1. Рафікузаман М. Мікропроцесори і машинне проектування мікропроцесорних систем: У 2-х кн. Кн.1. Пер. з англ.-М.: Світ, 1988.

2. Р. Токхайм. Мікропроцесори. Курс і вправи. Пер. з англ. В.Н Грасевіче і Л.А. Ільяшенко. М.: Вища школа, 1988

3. Щелкунов М.М., Діанов А.П. Мікропроцесорні засоби та системи .- М.: Радіо і зв'язок, 1989.

4. Федорков Б.Г., Телець В.А. Мікросхеми ЦАП і АЦП: функціонування, параметри, застосування .- М.: Вища школа, 1990.

5. Мікропроцесорний комплект К1810: Структура, програмування, застосування: Довідкова книга. Під ред. Ю. М. Казарінова .- М.: Вищ. шк., 1990.

6. Програмування для мікропроцесора К580: Методичні вказівки до лабораторних робіт / РГРТА.; Сост.: В. Н. Локтюхін, Ю. А. Сосулін. Рязань, 1996.

7. Перельман Б.П. Вітчизняні мікросхеми та їхні зарубіжні аналоги: довідник. М: 1998

Додати в блог або на сайт

Цей текст може містити помилки.

Комунікації, зв'язок, цифрові прилади і радіоелектроніка | Курсова
91.3кб. | скачати


Схожі роботи:
Цифровий смуговий фільтр
Фільтр низької частоти
Смуговий активний фільтр
Фільтр ковзаючого середнього
Регульований смуговий фільтр
Пакетний фільтр Ефективний захист компютерних мереж
Цифровий тахометр
Цифровий підпис
Частотно-виборчі фільтри Фільтр нижніх частот Чебишева
© Усі права захищені
написати до нас