Віртуальні прилади та проектування DSP-систем
- Що таке віртуальні прилади?
- Інтерактивне настроювання параметрів
- Налагодження проекту і впровадження
- Інші статті на цю тему:
2008
Що можуть віртуальні прилади дати інженеру-проектувальнику? Готові прилади, такі як осцилографи, знайшли широке застосування на різних етапах тестових і вимірювальних додатків, в проектуванні, створенні прототипів і впровадження електронних систем. Віртуальні прилади завдяки засобам швидкої розробки, потужної інтерактивної функціональності і легкої інтеграції з реальними сигналами дозволяють підняти можливості проектування на якісно новий рівень.
Розглянемо, наприклад, цифрову обробку сигналів (Digital signal processing - DSP) і використання різних приладів для вирішення її завдань. Цифровий сигнальний процесор (також відомий під абревіатурою DSP - Digital signal processor) - це мікропроцесор, призначений для виконання математичних операцій над потоками оцифрованих сигналів в реальному часі. Для обробки аналогових сигналів необхідно спочатку оцифрувати їх, використовуючи для цього АЦП з вхідними антіаліазінговимі фільтрами, а потім направити потік цифрових даних на сигнальний процесор. Після виконання необхідних математичних операцій сигнал можна перетворити назад в аналоговий за допомогою ЦАП і відповідного фільтра, що згладжує. У звичайних готових приладах, наприклад, осцилографах, використовуються спеціалізовані вбудовані розробником DSP-системи обмеженої функціональності. Однак в якості осцилографа можна використовувати і звичайний комп'ютер зі встановленою в нього платою збору даних. У цьому випадку плата оцифровує аналогові сигнали, а функція обробки цифрових даних переноситься на центральний процесор. В основі цього модульного підходу, що відображає концепцію віртуальних приладів (virtual instrumentation), лежить потужне програмне забезпечення, яке будь-який інженер може розробити для використання на звичайному ПК, щоб реалізувати готовий прилад необхідної йому функціональності.
Що таке віртуальні прилади?
Спочатку розглянемо концепцію віртуальних приладів, причиною появи якої послужила обмежена функціональність стандартних вимірювальних приладів. Історично склалося так, що вимірювальні і тестові системи зазвичай складалися з окремих закінчених приладів, таких як осцилографи і генератори сигналів, які володіли обмеженою функціональністю і застосовувалися лише для певного набору завдань вимірювання. Серед цих обмежень можна виділити три основних: 1) неможливість збору даних з необхідною точністю і швидкістю; 2) обмежений набір вбудованих в прилад функцій збору і обробки даних; 3) недостатня візуалізація процесу вимірювань, пов'язана з обмеженими можливостями екрану приладу. Якщо хоч одна з цих обмежень не вписувалося в технічне завдання проекту, то потрібно використання додаткового приладу, і тому повна вартість системи значним чином зростала.
З 1976 року компанія National Instruments розвиває нову концепцію вимірювань. Її суть полягає в поділі стандартного вимірювального обладнання на дві функціональні частини: апаратну, необхідну для оцифровки сигналів, і программнуюдля обробки даних і представлення результатів. Давши користувачеві можливість самому створювати закінчений прилад для його специфічного додатки на базі програмного забезпечення c визначається їм функціональністю, вдалося зняти наведені раніше обмеження. І таким чином народилася концепція віртуальних приладів. Після того як програмне забезпечення стало складовою частиною вимірювального приладу, відкрилися нові можливості для вирішення завдань тестування, управління і проектування.
Переваги віртуальних приладів перед стандартними аналогічні перевагам цифрової обробки сигналів перед аналогової. Наприклад, аналогові фільтри, що виготовляються зазвичай з традиційних електронних компонентів, таких як операційні підсилювачі, конденсатори і резистори, мають обмеженою функціональністю в порівнянні з цифровими фільтрами, застосовуваними при обробці даних з плаваючою і фіксованою точкою на сигнальних процесорах. Незважаючи на те, що аналогові фільтри дешевше і простіше у виготовленні, їх складно калібрувати і підтримувати. Зміни в структурі цих фільтрів дуже часто призводять до складнощів в їх використанні на вже наявному обладнанні. Наприклад, якщо знадобиться фільтр вищого порядку, решту апаратну частину, швидше за все, теж доведеться переробляти. У цифрових же фільтрів ця проблема відсутня завдяки тому, що їх функціональність повністю визначається програмним забезпеченням. Це дає можливість створити єдину платформу для широкого кола додатків, реалізовану на одній і тій же апаратній частині.
Використання простою і зручною середовища графічного програмування LabVIEW відкрило можливості розробки програмного забезпечення і цілих вимірювальних систем більш широкому колу користувачів.
LabVIEW відрізняється від стандартних текстових мов програмування, які потребують строгого дотримання синтаксису. У підході до розробки ПЗ, заснованому на використанні текстових мов програмування, велика частина часу витрачається саме на процес програмування або впровадження, ніж на створення загальної концепції проекту та його структури. Зазвичай процес розробки починається зі створення алгоритму в різних середовищах математичного моделювання, які потребують відмінного знання синтаксису і текстових команд. Після того як алгоритм готовий, настає черга для реалізації конкретної вбудованої системи (embedded system), що в свою чергу теж обіцяє деякі труднощі. Проектування вбудованих систем вимагає досконального розуміння принципів real-time-технологій, можливостей вбудованої в систему пам'яті і ще більш детального знання синтаксису, використовуваного для розробки програмного забезпечення на текстовому мовою програмування.
При використанні традиційних текстових інструментів розробки ще однієї «головним болем» стає налагодження. У разі, коли вбудована система виконує не ті операції, що очікувалося, важко визначити, в якому місці сталася помилка, пов'язана з ретрансляцією програмного коду в машинний. Проблеми, пов'язані з обробкою чисел з плаваючою точкою, такі як дискретизація (quantization), переповнення (overflow) і втрата значущих розрядів (underflow), дуже важко відстежити, оскільки вони зазвичай виявляються в перших декількох циклах виконання програми в режимі реального часу. Використовувані зазвичай стандартні засоби налагодження, такі як точки зупину (breakpoints), покрокове виконання (single stepping), а також можливість відстеження значень в регістрах і змінних, в даному випадку не підходять, оскільки вони порушують режим real-time і, отже, не відображають реальної картини походження помилок.
Ось уже понад 20 років інженери, вчені та технічні фахівці в тисячах компаній прискорюють і спрощують процес розробки, застосовуючи LabVIEW - більш потужну і більш просту у використанні систему, ніж будь-які традиційні засоби і середовища програмування. LabVIEW має всю функціональністю текстових мов програмування, але завдяки своїй простоті і зручності вона значним чином збільшує продуктивність роботи інженерів за рахунок зменшення часу, необхідного на розробку готових додатків. При створенні в LabVIEW програми, званої зазвичай віртуальним приладом (ВП, або Virtual Instrument - VI), функції, які відображаються у вигляді іконок, зв'язуються разом провідниками, які визначають напрямок потоку даних в програмі. Отримувані таким чином програми дуже схожі на блок-схеми, які застосовуються зазвичай в проектуванні систем. ВП складається з лицьової панелі (front panel) і блок-діаграми (block diagram), що виконують функції користувальницького інтерфейсу і виконуваного коду відповідно. Іконки ВП можна поміщати на блок-діаграму і тим самим створювати закінчила додаток. Завдяки технології Express VI, вбудованої в LabVIEW, можливо в інтерактивному режимі налаштовувати виконання окремих вузлів і функцій програм, що дозволяє в значній мірі зменшити час розробки.
Інтерактивне настроювання параметрів
Щоб проілюструвати переваги використання віртуальних приладів в інженерному проектуванні, розглянемо приклад розробки цифрових фільтрів з використанням LabVIEW і бібліотеки Digital Filter Design Toolkit. У цьому додатку і в багатьох інших завданнях проявляється одна з основних переваг ВП - це їх інтерактивність, завдяки якій можна відразу побачити результат при зміні будь-яких вхідних параметрів створеної програми.
Розробка цифрового фільтру починається з визначення його характеристик, до яких відносяться: тип фільтра (фільтр низьких частот (lowpass), фільтр високих частот (highpass), смуговий фільтр (bandpass), фільтр, що загороджує (bandstop), фільтр з кінцевою (КИХ) або нескінченної імпульсною характеристикою (БИХ)), частота оцифровки сигналу і необхідний відгук фільтра при розрахунках з плаваючою точкою. На рис. 1 наведено інтерфейс настройки класичних фільтрів, таких як фільтр Баттерворта, Чебишева, інверсний фільтр Чебишева, еліптичний фільтр, вікно Кайзера і Дольфа-Чебишева, а також фільтр з рівномірною хвилястістю. На рис. 1 зображений цифровий фільтр низьких частот з частотою оцифрування сигналу 8 кГц, пропускною здатністю 1 кГц і смугою придушення 2 кГц з загасанням 60 дБ. Після завдання цих параметрів автоматично розраховується амплітудний відгук, будується графік нулів і полюсів (pole-zero plot), а також відображається порядок фільтра. Порядок фільтра необхідний при його проектуванні, так як він визначає кількість кінцевих обчислювальних операцій. У прикладі на рис. 1 використовується інверсний фільтр Чебишева через характеристик його смуги пропускання і досить низького порядку.
Ще однією перевагою середовища розробки віртуальних приладів LabVIEW є властивий їй підхід до програмування, заснований на використанні іконок-функцій, за допомогою яких ви можете створити будь-яку тестову програму. Завдяки такому підходу, для перевірки чергового фільтра досить просто замінити одну іконку на іншу. Наприклад, інверсний фільтр Чебишева можна легко замінити фільтром Ремеза або фільтром найменшою норми P-го порядку. Насправді методи проектування фільтрів, перераховані в таблиці, являють собою готові шаблони. Наприклад, при виборі шаблону фільтра Ремеза виходить КИХ-фільтр, що мінімізує відхилення частотної характеристики фільтра від заданої. Налаштування цих шаблонів визначають профіль фільтра. Також при використанні шаблону фільтра Ремеза можна генерувати фільтри з лінійною фазою типу 1-4, з довільною формою кінцево-імпульсної характеристики, аппроксимацией оптимальної амплітуди (за максимальною або мінімальною фазі), можна також вказати смугу роботи однією точкою (по провалу або піку) і в явному вигляді вказати коефіцієнт посилення. При використанні шаблону фільтра найменшою норми Р-го порядку можна зробити фільтри як з кінцевої, так і нескінченною імпульсною характеристикою, з різними обмеженнями по амплітуді і фазі. У бібліотеці Digital Filter Design Toolkit ці фільтри генеруються або методом Ньютона, або ітераційним зваженим методом найменших квадратів.
Таблиця. Перелік шаблонів цифрових фільтрів, що входять в бібліотеку Digital Filter Design Toolkit
Працюючи в режимі програмування ВП, користувач може підбирати параметри фільтра і одночасно тестувати його. У цьому випадку змінні параметри конкретного шаблону фільтра доступні на лицьовій панелі віртуального приладу у вигляді елементів управління. В рамках одного ВП ви можете реалізувати не тільки повну схему системи або який-небудь моделі, але і створити зручний призначений для користувача інтерфейс на базі різних графіків і інших зручних індикаторів. Завдяки цьому при зміні вхідних параметрів можна відразу побачити відгук системи у вигляді показань на індикаторах. LabVIEW довела свої широкі можливості не тільки як потужної середовища розробки тестових і вимірювальних систем, але і як середовища створення дуже зручних інтерфейсів користувача.
Важливість спостереження в інтерактивному режимі результатів виконання будь-якого програмного шаблону особливо очевидна тим, хто займався проектуванням і створенням фільтрів для обробки цифрових даних з фіксованою точкою. Використання уявлення цифрових даних у вигляді чисел з фіксованою точкою може виявитися більш економічно вигідним, проте при проектуванні фільтрів потрібні значні зусилля, пов'язані зі зниженою арифметичної точністю.
У середовищі LabVIEW з бібліотекою Digital Filter Design Toolkit процес створення фільтра, що оперує з числами з фіксованою точкою, починається з розробки прототипу фільтра для чисел з плаваючою точкою, який потім конвертується в шаблон фільтра для чисел з фіксованою точкою. Це перетворення може сильно вплинути на характеристики фільтра. Коректне використання специфічних параметрів, таких як довжина слова цілого числа для регістрів фіксованого розміру і шаблону фільтра, є критичним для перевірки належного функціонування фільтра. Коректна емуляція і аналіз шаблонів фільтра для чисел з плаваючою точкою дозволяють уникнути неприємної процедури пошуку помилок при роботі з вбудовуваної системою на пізніх стадіях процесу розробки. Засоби моделювання, емуляції і аналізу для чисел з фіксованою точкою, вбудовані в середу створення ВП, дозволяють зробити процес перетворення шаблонів фільтрів для чисел з плаваючою точкою вшаблони фільтрів для роботи з фіксованою точкою більш коректним.
Чому ж операції з числами з фіксованою точкою настільки складні? При квантуванні коефіцієнтів, проміжних операндів і кінцевих результатів в систему вносяться помилки. Крім того, при нестачі місця в тракті даних може виникнути помилка переповнення (overflow). Засоби моделювання, емуляції і аналізу для чисел з фіксованою точкою, наявні в бібліотеці Digital Filter Design Toolkit, дозволяють виявити джерела помилок безпосередньо в процесі створення шаблону цифрових фільтрів. Розглянемо, наприклад, шаблон фільтра низьких частот, що оперує числами з фіксованою точкою, зображений на рис. 1. ВП Fixed-Point Modeling дозволяє вибрати різні види шаблонів фільтрів, описати довжину слова, довжину слова цілого числа, режими округлення та переповнення (overflow) в критичних місцях схеми. До кінцевої реалізації можна вибрати і перевірити один з 23 шаблонів фільтрів, починаючи з КИХ-фільтра прямий реалізації до фільтра з нескінченною імпульсною характеристикою з вкладеними секціями другого порядку (схема 1 або 2, транспонована) і сіткового фільтра з авторегресійну ковзним середнім (ARMA) ( базовий, з одним множником або нормалізовані секції).
На рис. 2 зображено приклад ВП, что Включає в себе вибір шаблоном фільтра, інструменти моделювання для чисел з фіксованою точкою, емуляції и АНАЛІЗУ для віпадків чисел з плаваючих и з фіксованою точкою. Інтерфейс ВП дозволяє в інтерактівному режімі змінюваті Параметри шаблоном фільтра при его емуляції. Спочатку логічно Залишити незміннімі шаблон фільтра и параметри схеми арифметики з фіксованою точкою и перевіріті відгук фільтра у всьому спектрі с помощью вхідного сигналу, что представляет собою білий шум. На рис. 3 наведені результати емуляції. Видно, что результати для фільтра, что оперує з числами з фіксованою точкою, відрізняються від результатів для фільтра, что вікорістовує арифметику з плаваючих точкою, хоча їх амплітудні, фазові характеристики, графіки нулів и полюсів практично збігаються. Як видно зі Звіту з АНАЛІЗУ фільтра (Filter Analysis Report), помилки вінікають через переповнення (overflow) и Втрата значущих розрядів (underflow) во время операцій множення, Додавання и затримки. Завдяк Цій информации можна в режімі реального часу внести корективи в параметри фільтра для чисел з фіксованою точкою, например, збільшити довжина слова цілого числа, спробуваті інші Шаблони або Изменить Параметри своєї моделі фільтра. У цьом прікладі Досить збільшити довжина слова цілого числа при множенні, підсумовуванні и затримки. Як видно на рис. 4, результат не відрізняється від результату для фільтра, що працює з числами з плаваючою точкою.
Налагодження проекту і впровадження
Віртуальні прилади надають ще більше можливостей інженерам-проектувальникам завдяки тісній інтеграції з обладнанням, що просто необхідно для тестових і вимірювальних завдань. У наведеному вище прикладі можна оцифровувати за допомогою PCI-плати збору даних реальні сигнали і використати їх для перевірки коректної роботи створеного цифрового фільтра. Оскільки LabVIEW спочатку створювалася для використання в тестових і вимірювальних додатках, то природно, що вона володіє широкими можливостями інтеграції з самим різним обладнанням збору даних. Це має величезне значення для всього інженерного проектування.
Для багатьох контрольно-вимірювальних завдань необхідно мати можливість переносити створене програмне забезпечення з одного апаратної платформи на іншу, включаючи real-time і вбудовані системи. У цьому контексті знову стають очевидні переваги LabVIEW. Створені в ній ВП можуть працювати в ОС загального призначення, таких як Windows, Mac OS і Linux, а також на ПЛІС, DSP-cистемах і будь-яких 32-розрядних мікропроцесорах. У бібліотеку Digital Filter Design Toolkit входять функції моделювання для чисел з фіксованою точкою і засоби генерації коду для ПЛІС-систем, а також коду стандарту ANSI-C. Розробник DSP-систем може оцінити міць LabVIEW на всіх стадіях створення цифрових фільтрів: від проектування до перевірки його роботи на вбудованої системі.
Засоби бібліотеки Digital Filter Design Toolkit допоможуть як вченим, так і інженерам в їх дослідницької та професійної діяльності. Використовуючи просту форму експорту результатів, можна зберегти коефіцієнти створеного фільтра в файл. Записані в файл дані повністю визначають параметри схеми. Завдяки використанню модуля LabVIEW DSP (рис. 5) можна завантажити параметри фільтру з файлу, а потім використовувати отриманий шаблон в режимі real-time на DSP-системі. Модуль LabVIEW DSP дозволяє графічно програмувати різні апаратні платформи, широко використовувані в освіті, такі як плати з сигнальними процесорами National Instruments SPEEDY-33 і Texas Instruments C6711 і C6713, для швидкої розробки, створення прототипу і впровадження DSP-додатків. У бібліотеку включені: повна підтримка технології експрес ВП (Express VI), що знижує час розробки і забезпечує прямий доступ до каналів аналогового і цифрового введення / виводу плат, а також засоби налагодження безпосередньо з середовища графічного програмування.
При використанні ПЛІС в якості цільової платформи, за допомогою Digital Filter Design Toolkit можна згенерувати код для модуля LabVIEW FPGA на основі шаблону цифрового фільтра для чисел з фіксованою точкою. З використанням Xilinx-компілятора, вбудованого в модуль LabVIEW FPGA, можна безпосередньо налаштувати ПЛІС на обладнанні введення / виведення серії RIO (Reconfigurable input output) компанії National Instruments. Пристрої, що підтримують технологію реконфігурованих введення / виведення (RIO), випускаються в різних форм-факторах, включаючи PCI, PXI і програмовані контролери автоматизації CompactRIO. Модуль LabVIEW FPGA забезпечує прямий доступ до ліній цифрового і аналогового вводу / виводу використовуваних RIO-пристроїв, необхідний в задачах цифрової фільтрації.
Ще одним засобом, широко застосовується при впровадженні шаблонів цифрових фільтрів на різні апаратні платформи, є генерація коду стандарту ANSI-C. Представлений нещодавно набір інструментів LabVIEW Microprocessor SDK (кошти для розробки додатків під різні мікропроцесори) дозволяє виконувати компіляцію, лінковку і завантаження згенерованого в LabVIEW З-коду на будь-яку цільову платформу з 32-розрядних мікропроцесором завдяки використанню операційних систем і засобів програмування вбудованих систем сторонніх виробників. Набір інструментів LabVIEW Microprocessor SDK також дозволяє в інтерактивному режимі налагоджувати програми з лицьової панелі і блок-діаграми ВП, звертатися до доступним на платі каналах введення / виводу і користуватися більш ніж 400 вбудованими ВП для різних математичних обчислень і обробки сигналів в додатках для вбудованих систем.
Технологія віртуальних приладів - це зарекомендував себе метод для проектування і створення контрольно-вимірювальних систем. Цей унікальний підхід обіцяє величезні можливості для інженерів-проектувальників, яким тепер потрібно одна інструментальне середовище для проектування, тестування і впровадження готових рішень.
Завантажити статтю в форматі PDF
Інші статті на цю тему:
повідоміті про помилки
Що таке віртуальні прилади?Що таке віртуальні прилади?
Чому ж операції з числами з фіксованою точкою настільки складні?