Автопортал || Авто - статьи

Сельскохозяйственная техника
Чтение RSS

Цифровий функціональний генератор

Функціональний генератор це загальний інструмент для генерації тестових сигналів. Більшість функціональних генераторів можуть генерувати сигнали синусоїдальний, прямокутний і / або трикутної форми, професійна апаратура підтримує сигнали довільної форми і має безліч каналів. Простий по функціональності функціональний генератор може бути зібраний легко, існує безліч проектів домашньої збірки, відомих досить давно. Методи синтезу сигналів певної форми діляться на дві категорії, одна - методи аналогового синтезу і інша - методи цифрового синтезу.

Методи синтезу сигналів певної форми діляться на дві категорії, одна - методи аналогового синтезу і інша - методи цифрового синтезу

Для аналогового синтезу в апаратурі домашньої збірки часто використовується генератор на основі моста Вина або традиційна ІС функціонального генератора ICL8038 . Цей аналоговий метод може бути реалізований в дуже простою схемою, проте, є проблеми в стабільності, точності і відтворюваності.

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

Безперервний сигнал і Дискретний сигнал

Безперервний сигнал і Дискретний сигнал

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

Дискретний сигнал може бути оброблений як еквівалент безперервного сигналу, але є деякі щодо його характеристик. Наприклад, між точками дискретизації немає даних, а зміни форми сигналу відбуваються швидше ніж швидкість дискретизації не можуть бути коректно представлені в дискретному сигналі. Частотними компонентами, які можуть бути представлені коректно стають рівні або менші ніж fs / 2 [Гц], де fs [Гц] - частота дискретизації. Це обмеження називається частотою Найквіста. Таким чином велика частота дискретизації збільшує обробляється частотний діапазон. Однак системні ресурси, такі як швидкість обчислень і розмір сховища даних, обмежені, тому мінімальна частота дискретизації для кожної програми є вибором компромісу між вартістю і продуктивністю.

Якщо уявити дискретний сигнал як «імпульсний сигнал з частотою fs, який модулирован вхідним сигналом», його характеристики, такі як нескінченно повторюється спектр, можуть бути легко знайдені.

Цифровий синтез форми сигналу

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

e = Ep * sin (θ) = Ep * sin (ωt) = Ep * sin (2πft) --- (1)

де Ep пікове значення, ω кутова швидкість [рад / с], f частота [Гц] і t час [з]. Дані для сигналу синусоїдальної форми можуть бути отримані шляхом обчислення значень для кожної точки дискретизації. Для сигналів форми, відмінної від синусоїдальної все відбувається точно так само.

Практична DDS система

Практична DDS система

Що б реалізувати DDS, обчислювати синусоидальную функцію кожного разу не раціонально з точки зору обчислювальної швидкості і розміру апаратних ресурсів. Однак синусоїдальна функція періодична і тому може зберігатися в таблиці і обчислюватися шляхом табличного перетворення кута θ, як показано на рисунку 2. При такому підході апаратна частина стає простий і може працювати дуже швидко. Частота синтезованого сигналу буде:

f = fs * (1 / Ns) --- (2)

де fs частота дискретизації, Ns довжина таблиці. Щоб змінити вихідну частоту слід змінити fs. Однак зміна частоти дискретизації fs збільшує складність аналогової частини (вихідний фільтр, і т.д.), тому це поганий шлях управління вихідний частотою. Вихідна частота також може бути змінена шляхом збільшення потоку звернень до таблиці перетворення (Δs) замість зміни fs.

f = fs * (Δs / Ns) --- (3)

Відповідно до специфікації

Я визначив нижченаведену специфіку функціонального генератора:

  1. Генерація сигналів методом DDS.
  2. Використання для вимірювань в звукових системах.
  3. Повне управління з мікроконтролера і максимальне зменшення аналогової частини.
  4. Здатність генерувати сигнали довільної форми, відмінної від синусоїдальної.

Причинами, такого рішення стали: 1 мета проекту, 2 область планованого використання, 3 то, що аналогова частина не точна.

Як реалізувати DDS

Є два методи складання DDS систем, один полягає в реалізації чисто апаратної логіки, інший в програмній обробці за допомогою цифрового сигнального процесора (DSP) або мікроконтролера. В апаратному методі використовується Мікросхема DDS або ПЛІС. Мікросхеми DDS розроблені для цифрового зв'язку і не можуть генерувати сигналів довільної форми, не мають цифрового атенюатора і їх вертикальне дозвіл не достатня для застосування в аудіо системах, тому вони не можуть використовуватися в цьому проекті. Реалізація DDS за допомогою ПЛІС вирішує цю проблему. Однак мікроконтролер повинен використовуватися хоча б для управління системою, тому я розмірковував, чи може звичайний мікроконтролер реалізувати DDS чи ні?

Для аудіо вимірювань потрібно вертикальне дозвіл в 16 біт і частота вибірок хоча б 100 кГц. Виходячи з цього я вирахував, що DDS може бути реалізований на AVR з завантаженням в 80 відсотків. Це область цифрових сигнальних процесорів або 32 бітових процесорів, але це так само може бути реалізовано на AVR, дорогий процесор не буде потрібно в цьому проекті.

вихід

Я використовував стерео ЦАП, який відкопав в ящику з запчастинами. Це дозволяє генерувати два сигналу індивідуальної форми. Можливі експерименти з фазою, складними сигналами і вимірюванням інтермодуляционних спотворень.

Користувальницький інтерфейс

Для відображення використовується LCD модуль на 4 рядки по 20 стовпців. Оскільки функціональний генератор має два вихідних каналу, є багато параметрів для відображення, тому потрібно хоча б 4 рядки. Для прийому команд від користувача використовуються 4 кнопки зі стрілками і кутовий кодер. Форма сигналу завантажується з карти пам'яті.

Форма сигналу завантажується з карти пам'яті

На малюнку 4 показана схема функціональних блоків функціонального генератора. Далі наведено опис кожного блоку.

Принципова схема (контролер) | Принципова схема (аналогова частина)

мікроконтролер

У пристрої використовується мікроконтролер ATmega64 . Він має інтерфейс зовнішньої пам'яті, який корисний для застосувань, в яких потрібна певна кількість пам'яті. Дані про форму сигналу завантажуються з карти пам'яті і зберігаються в таблиці, розташованій у зовнішній пам'яті розміром 256 Кбіт. Таблиця являє собою слова по 16 біт, відповідні вибірками, для кожного каналу є 8192 таких слова і ці дані заповнюють всю пам'ять. Системну тактову частоту забезпечує ЦАП. Ця частота перевищує максимально допустиму тактову частоту контролера, проте все працює без проблем.

ПЛІС

На рисунку 5 показана функціональна схема ПЛІС. Я використовував ПЛІС ispLSI1016E фірми Lattice , Що знайшов в коробці з запчастинами. Вона може бути замінена будь-який інший ПЛІС, що має 64 макроячейки. Вона використовується в основному як паралельно-послідовний перетворювач, щоб посилати дані в ЦАП. Сполучна логіка, необхідна для підключення зовнішньої пам'яті до AVR контролера, так само включена в ПЛІС. Сигнал LRCK, що йде до ЦАП, використовується для переривань дискретизації, щоб синхронізувати процес синтезу сигналу і ЦАП.

ЦАП

тут використовується NEC μPD63210. Це 16 бітний стерео аудіо ЦАП на основі ланцюжка резисторів, з вбудованим цифровим фільтром надлишкової дискретизації. Цифровий фільтр зменшує шуми, викликані ступінчастістю, так що вихідний фільтр може бути спрощений і форма сигналу буде без спотворень навіть близько частоти Найквіста. μPD63210 може працювати на частоті вхідних вибірок 96 кГц, таким чином може бути охоплений діапазон в 40 кГц, що в два рази більше найвищої частоти аудіо сигналу. Звичайно підійде будь-який інший ЦАП, що підтримує частоту дискретизації 96 кГц. У цьому проекті тактова частота ЦАП змінена, щоб забезпечити частоту проходу по всій таблиці 12.5 Гц (12.5 × 8192 = 102400) і тому ЦАП працює з частотою перетворень 102.4 кГц. Лінія харчування ЦАП не повинна містити перешкод так як вони можуть призвести до помилок у вихідному сигналі, тому напруга живлення створюється за допомогою послідовності регуляторів і розділене на напруги живлення для аналогової (AVDD) і цифровий (DVDD) частин, кожна з яких проходить через окремий LC фільтр.

У аналогової частини не використовується напруга зсуву, використовуються два встановлених коефіцієнта атенюатора (1/1 і 1/16) та є буферний каскад на виході. Причина, по якій вихідний рівень контролюється цифрової частиною, але з використанням аналогового атенюатора в тому, що таким чином виключається низька вертикальне дозвіл при малому діапазоні вихідної напруги.

Процес цифрового синтезу сигналу (DDS)

На малюнку 6 показана діаграма потоків даних в процесі DDS. Цей процес приводиться в дію в перериванні дискретизації, сигналом LRCK як показано нижче:

V 1 = WaveTable1 [(θ 1 + = ω 1)% 8192] * Gain1;
V 2 = WaveTable2 [(θ 2 + = ω 2)% 8192] * Gain2;

Результати (V1 і V2) надсилаються в ЦАП через паралельно-послідовний перетворювач. Регістри DDS ω і θ мають розрядність 13.7 з фіксованою точкою. Для частоти дискретизації 102.4 кГц і між сусідніми двома вибірками залишається 192 такту тактової частоти. Підпрограма, що здійснює DDS може і не впоратися зі своїм завданням за цей час.

У процесі експериментування я досяг результату в 157 тактів процесора між вибірками. Завантаження процесора при цьому була 82% і потужність процесора, приблизно в 3 МГц залишалася для основного процесу, при працюючому DDS. На малюнку 7 показана тимчасова діаграма процесу DDS і вихідних даних. У коді програми статичні реєстрові змінні визначені для того, щоб виключити тимчасові затримки в процесі запису читання даних при вході і виході з підпрограми обробки переривання. Час відповіді на переривання для процесу DDS має бути мінімізовано, щоб зберегти безперервність форми сигналу, таким чином, інші підпрограми обробки переривань повинні дозволяти вкладене переривання, що досягається шляхом призначення переривання DDS найвищого пріоритету. Однак ці міркування не застосовуються до модуля доступу до файлів, тому як DDS завжди відключається при доступі до файлів (завантаженні форми сигналу).

Управління формами сигналу

Дані про форму сигналу зберігаються на карті пам'яті як звичайний csv файл. Дані представлені в форматі двох стовпців (ch1, ch2) для кожного рядка, 8192 рядки, діапазон цілочисельних значень від -32767 до 32767, пікові значення відповідають 32767 або -32767. Ці файли управляються за допомогою індексного файлу, що задає формі сигналу ім'я при відображенні на дисплеї і встановлює порядок їх слідування в меню.

Фали форм сигналу використовують csv формат, проте зміна (перезавантаження) форми сигналу займає близько 2х секунд через процес обробки тексту. Для вирішення цієї проблеми завантажуються форми сигналів і їх характеристики (такі як пік - фактор і рівень від мінімуму до максимуму) кешуються в бінарний файл (.bin) і в наступний раз завантажується саме цей файл.

Користувальницький інтерфейс

На фотографії вгорі сторінки зображена передня панель. Параметри синтезованого сигналу, такі як назва форми, вихідна напруга, частота каналу 1, частота каналу 2 і його фаза, відображаються на LCD дисплеї. Ці параметри можуть бути змінені за допомогою кнопок і кутового кодера. Щоб змінити форму сигналу, виберіть її за допомогою кутового кодера і встановіть за допомогою лівої кнопки зі стрілкою.

На цьому фото зображений режим контролю фаз. В цьому режимі частота каналу 2 відстежує зміни частоти каналу 1 і фазова затримка може бути задана з дозволом в 1 градус. Коли змінюється частота каналу 2, пристрій переходить в двох тональний режим. В цьому режимі замість фази з'являється напис "***" і частота для кожного каналу може бути задана індивідуально. Якщо ви зміните фазову затримку, пристрій перейде в режим контролю фази і частота каналу 2 встановиться рівній частоті каналу 1.

Вихідна напруга відображається в вольтах ЕРС так як більшість аудіо систем мають високий вхідний імпеданс. Щоб змінити цю установку, перемістіть курсор на виведене напруга і виберіть потрібний варіант за допомогою кутового кодера. Форма відображення вихідної напруги в dBm відповідає навантаженню в 600 Ом, так 0 дБм буде відповідати 775 мВ с.к.з. При підключенні навантаження в 600 Ом, вихідна напруга падає на 0.7 дБ, так як вихідний опір Zo становить 50 Ом. Максимальна вихідна напруга 5 с.к.з., проте допустима напруга обмежена пік - фактором вибраного тону.

Виготовлення друкованої плати

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

регулювання

Після того, як контролер і ПЛІС запрограмовані, перевірте кожну функцію на працездатність і перевірте, чи з'являється сигнал заданої форми на виході. Потім потрібно вольтметр змінного струму.

По-перше зупиніть генерацію і за допомогою підлаштування резисторів VR1 і VR2, які задають напруга зсуву, задайте напруга на вході комутатора 0 вольт (на постійному струмі). Потім, запустіть генерацію синусоїдального сигналу напругою 5 VRMS підлаштування резисторами VR3 і VR5 добийтеся значення вихідної напруги (змінного) 5 вольт, після чого підлаштування резисторами VR4 і VR6 налаштуйте вихідну напругу в 0.34 В, після перемикання атенюатора (з високого рівня на низький). Нарешті, Настроювальна конденсатором VC1 налаштуйте тактову частоту 19,660,800 Гц. Хоча цей конденсатор можна взагалі виключити, так як для аудіо вимірювань точності цілком вистачає.

форми сигналів

Тут представлені форми сигналу в режіме_контроля_фази і в двухтоновом_режіме . Також може бути згенерує сложний_сігнал так як для кожного каналу є своя незалежна таблиця перетворення. Частота може бути змінена миттєво при збереженні постоянной_фази . Форма сигналу може бути змінена за 50 мілісекунд через бінарного кешування. Коли вихідний сигнал прямокутної форми , В вихідному сигналі з'являються коливання близько крайок, характерні для цифрового фільтра. Коли частота встановлена ​​в 40_кГц_сінусоіди , Що близько до частоти Найквіста, в точках дискретизації (що виникають по фронту сигналу LRCK) сигнал стає дуже грубим.

Але форма залишається гладко синусоидальной через цифрового фільтра 8-го порядку (фільтр надлишкової дискретизації).

Аудіо параметри

Я меріл_аудіо_характерістікі . Загальний коефіцієнт нелінійних спотворень (THD + N) варіруются циклічно між 0.01% і 0.03% через помилки округлення. Відношення сигнал / шум (SNR) було 85 дБ на 1 кГц, 1 В с.к.з. Зауважте, ці вимірювання були зроблені до вихідного фільтра. Продуктивність виглядає цілком достатньою якщо взяти аналогічні показники голого ЦАП (без цифрового фільтра) для порівняння.

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

зауваження

необхідні посилання

Характеристики функціонального генератора з DDS

Основні мікросхеми

Контролер: ATmega64 (ATMEL)
ПЛІС: ispLSI1016E (Lattice)
ЦАП: μPD63210 (NEC)

параметри DDS

Кількість каналів: 2
частота дискретизації: 102.4 кбіт / с
вертикальне дозвіл: 16 біт
довжина таблиці перетворення: 8192 чисел на канал

аналоговий вихід

Zo = 50 Ом, 2 канали

Частотний діапазон
(Ch1 / Ch2 незалежні)

0.01 Гц - 45,000.00 Гц (з кроком 0.01 Гц)

Діапазон вихідних напруг
(Ch1 / Ch2 одночасно)

0.001 - 20.000 В с.к.з. (Крок 0.001 В с.к.з.)
0.001 - 20.000 В пік-пік (крок 0.001 В пік-пік)
-60.00 - +20.00 дБВ (крок 0.01 дБВ)
-60.00 - +20.00 дБм (крок 0.01 дБм)
(Все відображається в ЕРС і пікове значення <= ± 7.5 В)

Фаза каналу 2 (Ch2)

-180 ° ... + 179 °
(Щодо Ch1, крок 1 °)

Користувальницький інтерфейс

LCD модуль символьного типу (20 стовпців, 4 рядки),
4 кнопки і кутовий кодер, а також звук натискання при роботі з кнопками і кутовим кодером.

Зберігання даних про форму сигналу

MMC або SDC

харчування

Мережа 220 В

Однак мікроконтролер повинен використовуватися хоча б для управління системою, тому я розмірковував, чи може звичайний мікроконтролер реалізувати DDS чи ні?