Uploaded by Сергей Пелёвин

ВР.pdf

advertisement
РЕФЕРАТ
Выпускная квалификационная работа, 58 с., 5 гл., 52 рис., 3 табл., 32 источника, 3 приложения.
LabVIEW, Arduino, DDS, AD9850, FLProg, LINX
В работе рассмотрены возможные варианты разработки устройств генерации
сигналов на базе цифрового синтезатора частоты AD9850 с использованием программно-аппаратной среды LabVIEW-Arduino.
Цель работы – разработка и изготовление макета генератора на платформе
Arduino-LabVIEW.
Установка и настройка необходимых модулей проводились с использованием платформы Arduino UNO и студенческой бесплатной версии LabVIEW 2016.
В результате работы:
а) изучены принципы работы устройств прямого цифрового синтеза;
б) проведён обзор современных публикаций по теме работы;
в) изучена система программирования FLProg;
г) разработан и отлажен макет генератора на платформе Arduino с использованием систем программирования FLprog и LabVIEW;
д) создан электронный учебный курс в системе Moodle по изучению способов создания генераторов в различных системах программирования;
е) получена справка об использовании в учебном процессе электронного
курса «Программирование контроллеров Arduino в IDE, FLProg и LabVIEW»;
ж) результаты работы представлены на конференциях: «NI Academic Days
2017» (Москва), СНИИ-2017 (Томск), «Наука, технологии, искусство: теоретикоэмпирические и прикладные исследования» (Санкт-Петербург).
2
ОГЛАВЛЕНИЕ
Введение ……………………………………………………………………………...
4
1 Среда проектирования виртуальных приборов LabVIEW ……………………...
6
1.1 Краткая справка о среде LabVIEW …………………………………………...
6
1.2 Виртуальные приборы ………………………………………………………...
6
2 Платформа Arduino ………………………………………………………………..
8
2.1 Аппаратная часть платформы Arduino ……………………………………….
8
2.2 Программное обеспечение платформы Arduino …………………………….. 10
2.3 FLProg ...………………………………………………………………………... 10
3 Программирование платформы Arduino в LabVIEW……………………………. 12
3.1 VI Package Manager (VIMP)………………………….. ………………………. 12
3.2 NI VISA ………………………………………………………………………… 12
3.3 LabVIEW Interface for Arduino………………………………………………...
12
3.4 LINX ………………………………………………………………..................... 12
4 Прямой цифровой синтез……………….................................................................. 13
4.1 Цифровой синтезатор AD9850………………………………………………... 19
4.2 Примеры использования цифрового синтезатора AD9850…………………
21
5 Практическая часть ………………………………………………………………..
24
5.1 Тестирование цифрового синтезатора AD9850……………………………… 24
5.2 Построение временных диаграмм с помощью NI ELVISmx Digital 23
Waveform Viewer……………………………………………………………………..
5.3 Разработка и изготовление макета генератора на базе платформы Arduino
35
5.4 Проектирование и создание корпуса генератора…………………………….
39
5.5 Перестраиваемый генератор на платформе Arduino-LabView……………… 42
5.6 Электронный учебный ресурс Arduino-LabView…………………………….
46
Заключение …………………………………………………………………………... 49
Список использованных источников……………………………………………….. 50
ПРИЛОЖЕНИЕ А Устройство и принцип работы энкодера KY-040…….……… 53
ПРИЛОЖЕНИЕ Б Конструкторская документация на корпус генератора………
56
ПРИЛОЖЕНИЕ В Справка о внедрении в учебный процесс……………………
58
3
ВВЕДЕНИЕ
Генератор является важным звеном во многих электронных устройствах,
будь то тестовое, лабораторное оборудование, медицинские [1] или радиоэлектронные системы. Помимо технических характеристик немаловажными для пользователя остаются такие параметры, как удобство применения, компактность и
низкая стоимость генераторов. К сожалению, устройства, предлагаемые большинством производителей, являются дорогостоящими изделиями. В связи с этим остаётся актуальной проблема создания бюджетного макета генератора, способного заменить более дорогостоящие или устаревшие модели [2].
Производится множество интегральных микросхем, позволяющих генерировать сигналы различной формы. Эти микросхемы отличаются по способу синтеза
сигналов [3] и техническим характеристикам. По методу синтеза сигналов они
подразделяются на прямые аналоговые синтезаторы, косвенные синтезаторы на основе фазовой автоподстройки частоты, прямые цифровые синтезаторы и гибридные синтезаторы. В настоящее время наибольшей популярностью пользуются синтезаторы на основе прямого цифрового синтеза благодаря преимуществам [4], связанным с широким разрешением по частоте, высоким качеством сигнала, возможностью цифрового управления, низкой стоимостью, малым размером корпусов и
энергопотреблением.
Для настройки и управления цифровым синтезатором необходим микроконтроллер. Наибольшей популярностью среди разработчиков электронных
устройств различного уровня пользуются контроллеры Arduino.
Arduino – это платформа с открытым исходным кодом, которая может использоваться при проектировании устройств сбора информации об окружающей
среде, а также управления различными исполнительными устройствами [5]. Большинство моделей платформы программируется через USB-порт, который позволяет подключать плату непосредственно к компьютеру. Устройства на базе Arduino,
могут работать самостоятельно, либо совместно с программным обеспечением
компьютера.
В качестве средств управления макетом может быть использовано как периферийное оборудование (дисплеи, кнопки, энкодеры), подключаемое к плате Arduino, так и персональный компьютер. Во втором случае в качестве среды проекти4
рования системы управления целесообразно использовать систему программирования LabVIEW [6] фирмы National Instruments.
LabVIEW – это среда разработки лабораторных виртуальных приборов, в которой используется особый язык графического программирования, существенно
упрощающий проектирование систем любой степени сложности для промышленности, образования и научных лабораторий. Среда проектирования LabVIEW во
многих случаях является стандартным инструментом для систем сбора данных и
управления приборами [7].
Взаимосвязь контроллеров Arduino со средой LabVIEW [8] может осуществляться различными способами: с помощью LabVIEW Interface for Arduino (LIFA),
драйвера последовательного порта NI VISA, LINX [9].
Цель работы – разработка и изготовление макета генератора на платформе
Arduino-LabVIEW.
Были поставлены следующие задачи:
а) изучение принципов работы устройств прямого цифрового синтеза;
б) обзор современных публикаций по теме работы;
в) изучение системы программирования FLProg;
г) разработка и изготовление макета генератора на платформе Arduino с использованием систем программирования FLprog и LabVIEW;
д) описание структурных и функциональных схем используемых модулей и
блоков.
5
1 Среда проектирования виртуальных приборов LabVIEW
1.1 Краткая справка о среде LabVIEW
Система LabVIEW является широко используемой программной средой для
создания систем управления и сбора данных [6].
LabVIEW (Laboratory Virtual Instrument Engineering Workbench - среда разработки лабораторных виртуальных приборов) позволяет создавать приложения, используя графическое представление устройств управления и индикации, а также
блоков сбора, управления и преобразования данных.
LabVIEW функционирует на компьютерах, работающих под управлением
всех распространенных операционных систем: Windows, MacOS, Linux.
1.2 Виртуальные приборы
Программы LabVIEW принято называть виртуальными приборами (ВП), потому что по выполняемым функциям и внешне они похожи на реальные приборы
(рисунок 1). LabVIEW содержит полный набор инструментов для сбора, анализа,
представления, передачи и хранения реально полученных данных [10].
Рисунок 1 – Создание виртуального прибора в LabVIEW
Виртуальный прибор состоит из двух основных частей:
a) лицевая панель
Лицевая панель (front panel) - задает пользовательский интерфейс виртуального прибора (рисунок 2). На ней обычно находятся элементы управления
6
(controls), которые используются для ввода данных, и индикаторы (indicators), используемые для вывода результатов работы программы.
Рисунок 2 – Пример лицевой панели виртуального прибора
б) блок-диаграмма
Блок-диаграмма (block diagram) - содержит представление алгоритма работы
программы на языке графического программирования G. Блок-диаграмма является
исполняемым приложением (рисунок 3). На ней обычно размещаются: виртуальные приборы более низкого уровня, терминалы (объекты лицевой панели) встроенные функции LabVIEW, константы и другие структуры.
Рисунок 3 – Пример блок-диаграммы виртуального прибора
7
2 Платформа Arduino
Arduino - это платформа для разработки устройств на базе микроконтроллера
[11]. Arduino применяется для создания электронных устройств с возможностью
приема сигналов от различных цифровых и аналоговых датчиков, которые могут
быть подключены к нему, и управления различными исполнительными устройствами.
Преимущества Arduino [12]:
а) доступность. Платы Arduino имеют относительно низкую цену по сравнению с другими микроконтроллерными платформами;
б) кроссплатформенность. Arduino поддерживает работу на в операционных
системах Windows, Macintosh OSX и Linux;
в) понятная среда программирования. Простая и гибкая платформа удобна
как для новичков, начинающих знакомство с программным обеспечением, так и
для опытных пользователей, при выполнении сложных проектов;
г) программное и аппаратное расширение. Arduino имеет открытый исходный
код. Это даёт возможность программистам создавать новые модули, улучшения,
расширения. Выпускается огромное количество различных устройств, модулей,
датчиков и индикаторов, подключаемых к этому контроллеру;
д) программирование через USB-кабель;
е) активное сообщество пользователей.
В состав платформы Arduino входят два основных компонента: плата, на базе которой пользователь создаёт собственные проекты, и интегрированная среда
разработки (IDE) - программное обеспечение, которое представляет собой задокументированный и упрощённый язык C, используемый для написания программных
модулей, загружаемых в плату [13].
2.1 Аппаратная часть платформы Aduino
Существует много версий платы Arduino [14]. В данной работе используется
наиболее популярная и распространённая версия - Arduino Uno (рисунок 4).
8
Рисунок 4 – Плата Arduino Uno
Основным элементом платы является микроконтроллер ATmega328, который работает с тактовой частотой 16 МГц. Общее количество флэш-памяти, доступной для хранения загружаемой программы 32 Кбайта. Модель Arduino UNO
предоставляет в общей сложности 20 контактов, 14 из которых являются цифровыми входами/выходами и 6 являются аналоговыми входами.
Другие периферийные устройства, предлагаемые платой, включают последовательный и SPI порты, два внешних прерывания, светодиод, соединенный с
контактом 13, и внешнюю кнопку сброса.
Плата идет с разъемом USB типа, через который осуществляется питание и
связь с компьютером.
Основные характеристики платы представлены в таблице 1.
Таблица 1 – Характеристики платы Arduino Uno
Микроконтроллер
ATmega328
Рабочее напряжение
5В
Входное напряжение (рекомендуемое)
7 – 12 В
Входное напряжение (предельное)
6 – 20 В
Цифровые Входы/Выходы
14 (6 ШИМ)
Аналоговые входы
6
ОЗУ
2 кб
Тактовая частота
16 МГц
9
2.2 Программное обеспечение платформы Arduino
Интегрированная
среда
разработки
(IDE,
Integrated
Development
Environment) является текстовым редактором программного кода, который предоставляет возможности написания программы на языке Processing (рисунок 5), проверки её синтаксической правильности и загрузки в плату. Для загрузки программ
и связи среда разработки подключается к аппаратной части Arduino.
Рисунок 5 – Пример программы в среде IDE
2.3 FLProg
FLProg - это система визуального программирования плат Arduino, использующая графические языки FBD (Function Block Diagram) (рисунок 6) и LAD (Ladder Diagram). Оба языка относятся к стандарту МЭК 61131-3 и используются для
программирования промышленных контроллеров (ПЛК). FLProg предназначена, в
первую очередь, для инженеров-электронщиков и радиолюбителей, малознакомых
с текстовыми языками программирования.
10
Рисунок 6 – Вид окна программы в режиме языка FBD
Проект в FLProg представляет собой набор плат, на каждой из которых собран законченный модуль общей схемы. Каждая плата может иметь наименование
и комментарии. Схема платы собирается из функциональных блоков в соответствии с логикой работы контроллера. Большинство функциональных блоков имеют
возможность настройки, а также развернутое описание, которое доступно в любой
момент и помогает разобраться в его работе и настройках.
FLProg является некоммерческим проектом и развивается силами заинтересованного сообщества разработчиков и пользователей системы. На сайте flprog.ru
можно бесплатно скачать новую версию программы, узнать об обновлениях и возможностях системы FLProg, а также посмотреть обучающее видео и общаться с
другими пользователями программы.
11
3 Программирование платформы Arduino в LabVIEW
3.1 VI Package Manager (VIPM)
VIPM является программой для поиска и установки дополнений LabVIEW.
Он может входить в пакет установки LabVIEW или скачиваться с официального
сайта (https://vipm.jki.net).
VI Package Manager необходим для установки приложений для работы с Arduino в LabVIEW (LIFA, LINX, Arduino Compatible Compiler for LabVIEW).
3.2 NI VISA
VISA - стандартизированный интерфейс ввода-вывода для управления приборами с персонального компьютера. Поддерживает различные интерфейсы измерительных устройств. NI VISA является библиотекой функций, унифицирующей
доступ к измерительным устройствам.
Установка NI VISA необходима для использования всех способов работы с
Arduino в LabVIEW.
3.3 LabVIEW Interface for Arduino
LIFA - приложение, которое позволяет быстро и легко создавать графические интерфейсы пользователя для фактически любого компонента, который является совместимым с микроконтроллером Arduino.
3.4 LINX
Приложение LINX от компании Digilent (LabVIEW Hacker) пришло на смену
LabVIEW Interface for Arduino. Оно поддерживает большее число устройств и содержит больше инструментов. Достоинства LINX:
а) работа с chipKIT, Arduino и другими подключаемыми платформами;
б) использование периферийных устройств доступа, таких как DIO, AIO,
PWM, SP, I2C и UART;
в) поддержка свыше 30 различных датчиков;
г) различные виды связи платформ с компьютером: USB, локальная сеть,
беспроводная.
12
4 Прямой цифровой синтез
Прямой цифровой синтез (Direct Digital Synthesis, или DDS) - один из наиболее распространенных методов синтеза частот, основанный на использовании цифровой обработки данных для получения на выходе сигнала требуемой частоты и
фазы из сигнала фиксированной опорной частоты.
Основные преимущества синтезаторов DDS [15]:
а) цифровое управление параметрами выходного сигнала;
б) высокое разрешение по сетке частот;
в) работа в широком диапазоне частот от 1 Гц до 400 МГц;
г) быстрое переключение частоты без перебоев, связанных с временем установления;
д) низкая стоимость, малое энергопотребление и компактность DDS синтезаторов.
Ограничения прямого цифрового синтеза:
а) максимальная выходная частота не может быть выше половины тактовой;
б) спектральная чистота выходного сигнала DDS сильно зависит от качества
ЦАП;
в) потребляемая DDS генераторами мощность питания прямо пропорциональна тактовой частоте.
Принцип работы синтезатора DDS заключается в следующем (рисунок 7): в
накопителе фазы (НФ) формируется линейно меняющаяся во времени последовательность кодов выходного сигнала [16]. Изменения в накопителе фазы происходят
под влиянием тактовой частоты f0, вырабатываемой опорным генератором (ОГ), и
кода частоты, которая будет генерироваться синтезатором. Значения амплитуды
сигнала, соответствующие текущей фазе получаемого сигнала, выбираются из перекодировочной таблицы (Look Up Table), размещаемой в ПЗУ. Выбор значения sin
производится по адресу ячейки ПЗУ с нужной фазой. Значения из ячеек памяти поступают на цифро-аналоговый преобразователь (ЦАП), где получается «ступенчатый» синусоидальный сигнал. Для сглаживания выходного сигнала на выходе ЦАП
располагается фильтр нижних частот (ФНЧ).
13
Рисунок 7 – Блок-схема и принцип работы прямого цифрового синтезатора частоты
В качестве накопителя фазы используется накапливающий сумматор (рисунок 8). Он представляет собой регистр, перезагружаемый в каждом такте работы
устройства величиной, равной его старому содержимому, плюс некоторая постоянная добавка (код частоты). Содержимое регистра линейно увеличивается во времени, а приращение зависит от величины постоянной добавки. Накапливающий сумматор, используемый для формирования кода фазы, называют аккумулятором фазы. Аккумулятор фазы работает с периодическими переполнениями, что соответствует периодическому изменению функции sin. Частота переполнения аккумулятора равна выходной частоте, и определяется по формуле:
,
где fout - выходная частота, f0 - тактовая частота, K - код частоты, n - разрядность
аккумулятора фазы.
Рисунок 8 – Структура прямого цифрового синтезатора частоты
14
Прямой цифровой синтез можно проиллюстрировать на примере работы генератора сигналов произвольной формы (Arbitrary Waveform Generator) из комплекта виртуальных приборов NI ELVIS II [17].
Для начала работы с прибором, пользователем указывается файл, в котором
содержится набор значений генерируемого сигнала (Waveform Name), и частота
дискретизации (Update Rate), то есть частота, с которой происходит считывание
этих значений из файла (рисунок 9). Полученный сигнал имеет «ступенчатый» вид
и требует сглаживания через ФНЧ.
Рисунок 9 – Генерация гармонического сигнала частотой 10 Гц
Увеличивая или уменьшая частоту дискретизации, можно соответственно
увеличивать или уменьшать частоту выходного сигнала (рисунки 10 и 11).
15
Рисунок 10 – Генерация гармонического сигнала частотой 100 Гц
Рисунок 11 – Генерация гармонического сигнала частотой 500 Гц
По формуле:
,
где ωгр - граничная частота фильтра, C - ёмкость конденсатора, R - сопротивление
резистора, можно подобрать подходящие элементы для ФНЧ (рисунок 12). Амплитудно-частотная характеристика (АЧХ) фильтра приведена на рисунке 13.
16
Рисунок 12 – Подключение ФНЧ к выходу генератора сигналов произвольной формы
Рисунок 13 – Амплитудно-частотная характеристика ФНЧ
Выбираем частоту сигнала генератора так, чтобы она попадала в полосу
пропускания фильтра, например 700 Гц.
На рисунке 14 представлен выходной сигнал генератора сигналов произвольной формы до (сигнал 1) и после (сигнал 2) фильтрации. Результат сглаживания сигнала фильтром заметен даже зрительно.
17
Рисунок 14 – Сигнал до и после фильтрации
Анализатором спектра можно пронаблюдать существенное изменение коэффициента гармонических искажений (КГИ, англ. - Total Harmonic Distorsions -THD)
сигнала после прохождения через фильтр (рисунок 15). Как видно из рисунков без
фильтра этот коэффициент равен 1,07% (спектр 1), а с фильтром - 0,07% (спектр 2).
Рисунок 15 – Спектр сигнала до и после фильтрации
18
4.1 Цифровой синтезатор AD9850
В работе использовался цифровой синтезатор частоты AD9850. Его основные технические характеристики [18] представлены в таблице 2.
Таблица 2 – Основные технические характеристики AD9850 (при напряжении питания 5 В)
Частота тактового генератора
1..125 МГц
Рабочий диапазон частот
0..40 МГц
Виды сигналов
Прямоугольный, sin
Максимальный ток потребления (при fin = 125 МГц)
96 мА
Количество разрядов ЦАП
10
Максимальный выходной ток ЦАП (при Rset= 3,9 кОм)
10,24 мА
Максимальная интегральная нелинейность ЦАП
1 МЗР
Минимальное напряжение высокого уровня на выходе
4,8 В
Максимальное напряжение низкого уровня на выходе
0,4 В
Назначение контактов [19] модуля DDS синтезатора (рисунок 16) приведено
в таблице 3.
Рисунок 16 – Внешний вид синтезатора AD9850
19
Таблица 3 – Назначение контактов синтезатора
VCC
Питание мощностью 3,3 В или 5 В
GND
Заземление
W_CLK
Синхронизация параллельных или последовательных
сигналов частоты (фазы, управления)
FQ_UD
Обновление частоты
DATA (D7)
Последовательная загрузка данных
RESET
Сброс значений
D0-D7
Восьмибитный порт для параллельного ввода данных
Square Wave
Прямоугольные выходные колебания
Sine Wave
Синусоидальный выходной сигнал
Загрузка данных в модуль может производиться с помощью последовательного или параллельного интерфейса.
При использовании последовательной передачи данных [20] в микросхему
(рисунок 17), на вход DATA (D7) подаётся слово длиной 40 бит. Каждый бит сопровождается положительным импульсом с контакта синхронизации W_CLK. После загрузки управляющего слова с подачей положительного импульса на вход
FQ_UD происходит обновление параметров генерации.
Рисунок 17 – Временная диаграмма при последовательной передаче данных
При использовании параллельного интерфейса [21], по линиям D0-D7 в модуль передаются пять управляющих слов по восемь бит (рисунок 18). Каждое слово сопровождается сигналом синхронизации W_CLK. Обновление данных происходит с приходом импульса на вход FQ_UD.
20
Рисунок 18 – Временная диаграмма при параллельной передаче данных
Параллельный интерфейс обеспечивает более быструю передачу данных, но
задействует большее количество управляющих контактов. На практике чаще используется вариант с последовательным интерфейсом, как более удобный при программной и аппаратной реализации.
4.2 Примеры использования цифрового синтезатора AD9850
Проведён поиск статей по теме использования цифрового синтезатора частоты AD9850. На рисунках 19, 20, 21 приведены результаты поиска в научных электронных библиотеках elibrary, IEEE и поисковой системе google соответственно.
Рисунок 19 – Поиск в научной электронной библиотеке elibrary
21
Рисунок 20 – Поиск в научной электронной библиотеке IEEE
Рисунок 21 – Поиск в системе google
Большое количество статьей по данной тематике подтверждает интерес отечественных [22-24] и зарубежных [25-27] авторов к использованию модулей цифрового синтеза в различных областях электроники.
22
Цифровой синтезатор AD9850 и ему подобные модули широко используются при разработке электронных устройств с микроконтроллерным управлением
различного назначения, будь то тестовое, лабораторное оборудование, медицинские или радиоэлектронные системы.
В работе [22] представлено описание малогабаритного автоматического радиопередатчика метеорологической информации, в котором модуль AD9850,
управляемый микроконтроллером PIC16F873, используется для передачи частотнои фазоманипулированного сигнала.
В работе [23] рассмотрен преобразователь интервалов времени в код, исследование которого выполнено с применением двух синхронизированных DDS генераторов AD9851.
В работе [24] описан цифровой синхронный измеритель поверхностного импеданса, в котором цифровой синтезатор частот AD9850 используется для формирования тестового сигнала в генераторном блоке.
В работе [25] изложены результаты исследования беспроводной системы
энергоснабжения в имплантируемом кардиостимуляторе. Сигнал прямоугольной
формы, генерируемый модулем AD9850, используется для настройки рабочей частоты системы.
В работе [26] описана разработка генератора на базе цифрового синтезатора
AD9850 и микроконтроллера AT89S52.
В работе [27] рассмотрена возможность использования модуля AD9850 при
разработке передатчика для радиолокатора.
23
5 Практическая часть
5.1 Тестирование цифрового синтезатора AD9850
Перед началом разработки и изготовления генератора на базе AD9850, были
протестированы возможности цифрового синтезатора с использованием платформы Arduino. В плату был загружен простейший код (рисунок 22) для генерации
сигнала, взятый в сети Internet [28].
Рисунок 22 – Код для генерации сигнала
24
Дадим краткое пояснение работы кода. Сначала программа осуществляет
подключение контактов синхронизации (CLK), обновления частоты (FQ), загрузки
данных (DATA) и сброса (RST) синтезатора к цифровым каналам платы Arduino.
Функция tfr_byte обеспечивает побитовую передачу байта информации до синтезатора по линии DATA. Функция sendFrequency производит расчёт требуемой частоты из опорной. Далее производится конфигурация контактов платы Arduino и выставляется значение генерируемой частоты.
Подключение синтезатора AD9850 к плате Arduino UNO осуществляется по
последовательному интерфейсу (рисунок 23).
Рисунок 23 – Схема подключения AD9850 к Arduino UNO
Макет реального устройства представлен на рисунке 24.
25
Рисунок 24 – Подключение AD9850 к Arduino UNO
Выходной сигнал прямоугольной (рисунок 25) и синусоидальной (рисунок
26) формы с контактов синтезатора наблюдался с помощью осциллографа NI
ELVIS II.
Рисунок 25 – Прямоугольные импульсы частотой 24 кГц
26
Рисунок 26 – Гармонические сигналы частотой 1 МГц
Данный вариант сборки легко осуществим, но имеет очевидные недостатки,
такие как необходимость изменения и перезагрузки программного кода для регулировки частоты и отсутствие визуального контроля за значением частоты выходного сигнала.
Также, для изучения возможностей синтезатора, был использован код, аналогичный вышеупомянутому, написанный в системе FLProg (рисунок 27) и взятый
с форума сайта системы [29].
27
Рисунок 27 – Программирование синтезатора в FLProg
Программа представляет собой пользовательский блок с изменяемыми значениями опорной частоты, частоты выходного сигнала и калибровки. Также в программе даны комментарии от разработчика по подключению и использованию
установки. Контакты подключения синтезатора к плате Arduino выбираются в
настройках пользовательского блока и могут соответствовать ранее рассмотренной
схеме подключения. После компиляции проекта, получаем код в среде IDE, позволяющий генерировать сигнал одной заранее установленной частоты.
На рисунке 28 представлен выходной сигнал синтезатора, наблюдаемый с
помощью осциллографа NI ELVIS II.
28
Рисунок 28 – Сигнал 1 МГц
Для изменения частоты генерируемого сигнала, а также визуального контроля за значением частоты и шагом перестройки к схеме был добавлен LCD
Keypad Shield – плата с двухстрочным экраном и кнопками (рисунок 29).
Рисунок 29 – Подключение LCD Keypad Shield
29
Программный код (рисунок 30), загружаемый в плату Arduino, позволяет использовать четыре кнопки для управления генератором: вверх и вниз - для грубой
настройки, вправо и влево - для точной. Шаг перестройки меняется в зависимости
от текущей частоты.
Рисунок 30 – Фрагмент программного кода в среде IDE
В полном объёме код можно найти в сети Internet [30]. Функционально он
состоит из следующих логических блоков: подключение библиотек и используемых контактов, функция считывания нажатия кнопок, функция побитной отправки
байта, преобразование и отправка значения частоты, отправка сигналов для работы
генератора, вывод текущего значения частоты на экран.
30
Сигнал с выходов синтезатора был снят с помощью осциллографа Keysight
InfiniiVision модели DSOX1102G (рисунки 31, 32).
Рисунок 31 – Генерация гармонических сигналов частотой 10 МГц
Рисунок 32 – Генерация гармонических сигналов частотой 30,8 МГц
Данный способ сборки предоставляет возможности перестройки частоты в
любой удобный момент времени, а также наблюдения за её значением на экране.
31
Однако кнопки не удобны для плавной регулировки частоты, а сам макет установки является громоздким для помещения в единый корпус.
Исходя из этих недостатков, было принято решение использовать в качестве
управляющего элемента энкодер KY-040 (рисунок 33).
Рисунок 33 – Энкодер KY-040
Энкодер вращения KY-040 - это поворотный датчик, который определяет
степень поворота оси и в каком направлении она вращается. Состав и принцип работы модуля KY-040 изложены в приложении А.
Для ознакомления с принципом работы энкодера была построена его временная диаграмма с помощью виртуального прибора NI ELVISmx Digital Waveform
Viewer.
5.2 Построение временных диаграмм с помощью NI ELVISmx Digital
Waveform Viewer
Digital Waveform Viewer используется для визуализации сигналов цифрового
характера, тестирования цифровых схем счетчиков и проектирования логических
анализаторов состояния (дословный перевод). Прибор одновременно захватывает
данные с нескольких цифровых входных линий (рисунок 34). Данные записываются по указанным линиям с настраиваемой продолжительностью времени и одновременно отображаются на графике. Могут быть включены два курсора, которые
можно использовать для анализа времени между событиями на цифровых линиях,
для проверки времени или периодов синхронизации.
32
Рисунок 34 – Лицевая панель Digital Waveform Viewer
Используя Digital Waveform Viewer, можно построить временные диаграммы
программирования цифрового синтезатора AD9850 (рисунок 35). Записывая данные с контактов CLK, FQ и DATA, можно пронаблюдать моменты возникновения
управляющих импульсов на этих контактах (линии Bit0, Bit1 и Bit2 соответственно).
33
Рисунок 35 – Временная диаграмма цикла программирования AD9850
34
5.3 Разработка и изготовление макета генератора на базе платформы Arduino
В состав макета генератора (рисунок 36) входят следующие основные элементы:
a) плата Arduino UNO;
б) цифровой синтезатор частоты AD9850;
в) плата расширения Arduino Prototype Shield с макеткой на 170 точек;
г) энкодер KY-040;
д) жидкокристаллический дисплей (LCD) 1602.
Рисунок 36 – Макет генератора
Данный вариант сборки наиболее удобен для пользователя и при небольших
доработках реализуем в виде единого устройства.
Устройство генерирует сигнал частотой до 40 МГц. Управление частотой
выходного сигнала осуществляется с помощью энкодера. Размер шага перестройки
частоты изменяется нажатием на кнопку энкодера и может соответствовать следующим значениям: 0,1 Гц, 1 Гц, 10 Гц, 100 Гц, 1 кГц, 10 кГц, 100 кГц, 1 МГц. Текущие значения частоты и шага отображаются на дисплее.
Подключение LCD дисплея может осуществляться двумя способами:
a) по параллельному интерфейсу (рисунок 37);
Дисплей подключается по двенадцати линиям. Первые два контакта (VSS и
VDD) отвечают за питание (GND и 5 В соответственно) контроллера дисплея. Тре35
тий служит для управления контрастом экрана и подключается к сигнальной ножке
потенциометра. Следующая ножка выбора регистра соединяется с цифровым контактом 8 платы Arduino. Пятая линия чтения или записи подключается к GND для
установления режима записи. Шестая ножка - строб по спаду соединяется с 9 контактом платы. Пропускаются контакты с седьмого по десятый, отвечающие за
младшие биты восьмибитного интерфейса. Старшие биты интерфейса (линии с
одиннадцатой по четырнадцатую) подключаются к 4-7 цифровым контактам платы
Arduino соответственно. На последние два контакта дисплея подаётся питание подсветки (5 В и GND соответственно).
Линии синхронизации (CLK), обновления частоты (FQ), загрузки данных
(DATA) и сброса (RST) синтезатора подключаются к аналоговым выходам A0-A3
платы, используемым в данном случае как цифровые.
Выходы импульсов CLK и DT, а также кнопка энкодера SW соединяются со
2, 3 и 10 контактами Arduino.
Рисунок 37 – Схема подключения составных элементов устройства
36
Недостатками данного варианта является большое количество соединительных проводов и необходимость подключения регулирующего яркость потенциометра, что делает схему неудобной для помещения в компактный корпус.
б) с помощью последовательной шины I2C (рисунок 39).
Модуль, прикрепляемый к дисплею, позволяет существенно сократить количество используемых соединительных проводов, а также имеет встроенный потенциометр (рисунок 38).
Рисунок 38 – LCD дисплей с I2C модулем
Подключение синтезатора и энкодера остаётся прежним, а к LCD дисплею
подводится всего четыре линии, две из которых (VCC и GND) отвечают за питание.
Контакты SCL (последовательная линия тактирования) и SDA (последовательная
линия данных) подключаются к аналоговым выходам A4-A5 платы, используемым
в данном случае как цифровые.
37
Рисунок 39 – Схема подключения составных элементов устройства с использованием I2C
Данный вариант макета был выбран для сборки генератора.
Программный код для работы генератора написан в системе FLProg (рисунок
40). Код содержит комментарии работе каждого блока, а также описание и схему
подключения составных элементов устройства.
38
Рисунок 40 – Фрагмент кода в системе FLProg
Структурно проект в FLProg состоит из следующих программных плат: описание проекта, определение направления вращения ручки энкодера, привязка выбора шага перестройки к кнопке энкодера, изменение частоты на определённый
шаг по вращению ручки, установка пределов значения частоты от 0 до 40 МГц,
блок синтезатора, блоки подключения дисплея и конвертации значения частоты в
формат, удобный для восприятия.
Использование FLProg позволило существенно сэкономить время написания
программного кода для работы макета.
5.4 Проектирование и создание корпуса генератора
Была спроектирована трёхмерная модель корпуса устройства. Она состоит из
основы (рисунок 41), к которой крепятся все составные элементы генератора, и боковой крышки (рисунок 42).
39
Рисунок 41 – Основна часть корпуса генератора
Рисунок 42 – Крышка корпуса генератора
Конструкторская документация на корпус приведена в приложении В.
40
Устройство было напечатано на 3D принтере (рисунок 43) и в собранном виде имеет два коаксиальных выхода для снятия прямоугольного и синусоидального
сигналов, ручку для регулировки частоты, разъёмы питания через автономный источник питания или USB и дисплей для вывода значения частоты и шага перестройки (рисунок 44).
Рисунок 43 – Процесс печати корпуса генератора
Рисунок 44 – Рабочая модель генератора
41
В качестве средства управления генератором на базе AD9850 можно использовать виртуальные приборы, разработанные в среде LabVIEW. Такой подход позволит расширить возможности в управлении макетом, визуализации и обработке
данных.
5.5 Перестраиваемый генератор на платформе Arduino-LabVIEW
В комплект примеров виртуальных приборов для приложения LINX (рисунок 45) в LabView входит прибор для управления синтезатором AD9850 по каналу
SPI с помощью Arduino (рисунок 46).
Рисунок 45 – Примеры ВП для приложения LINX
42
Рисунок 46 – Лицевая панель AD9850 Example
На лицевой панели ВП даны инструкции по подключению синтезатора к Arduino по SPI (рисунок 47), работе с прибором, а также элементы конфигурации канала SPI и управления генерируемой частотой.
Рисунок 47 – Подключение AD9850 к Arduino по SPI
43
Основные элементы блок-диаграммы прибора (рисунок 48) отвечают за инициализацию последовательного порта, работу по SPI и управление синтезатором.
Рисунок 48 – Блок-диаграмма AD9850 Example
На основе этого примера был разработан перестраиваемый генератор на базе
платформы Arduino-LabView с использованием приложения LINX и цифрового
синтезатора частоты AD9850. На лицевой панели ВП (рисунок 49) даны комментарии к работе прибора, схема подключения синтезатора к плате Arduino, а также
размещены элементы конфигурации и управления генератором.
44
Рисунок 49 – Лицевая панель перестраиваемого генератора
Для подключения прибора используется последовательный интерфейс (SPI):
SPI CLK (цифровой порт 13) соединяется с W_CLK синтезатора, SPI CS (цифровой
порт 10) соединяется с FQ_UD синтезатора, SPI MOSI (цифровой порт 11) соединяется с DATA синтезатора, питание 5 Вольт от платы подаётся на контакт VCC
синтезатора, контакты RESET и GND синтезатора подключаются к “земле”.
Более подробная схема (рисунок 50) подключения AD9850 к Arduino UNO
приведена на блок-диаграмме (рисунок 51).
Рисунок 50 – Схема подключения AD9850 к Arduino по SPI
45
Рисунок 51 – Блок-диаграмма перестраиваемого генератора
Генератор позволяет задавать размер и количество шагов перестройки, а
также время задержки между шагами. Частота генерируемого сигнала может быть
задана до 40 МГц. Прибор может работать на одной частоте без перестройки, для
чего количество шагов необходимо установить равным единице.
Созданный перестраиваемый генератор может быть использован при разработке измерительных блоков и устройств для исследования частотных свойств материалов, радиоэлектронных компонентов и цепей.
5.6 Электронный учебный ресурс Arduino-LabView
На основе материалов данной дипломной работы, а также курсовых работ,
выполненных ранее, автором создан электронный учебный курс (ЭУК) «Програм46
мирование контроллеров Arduino в IDE, FLProg и LabVIEW» в системе дистанционного обучения Moodle (рисунок 52).
Рисунок 52 – Фрагмент страницы ЭУК
Курс включает в себя описания графической среды программирования
LabVIEW, систем программирования IDE и FLprog, аппаратной части платформы
Arduino, способов программирования Arduino в LabVIEW и методические указания
к лабораторным работам:
а) Arduino. Начало работы;
б) Программирование Arduino в LabVIEW;
в) Лабораторная работа "Основы программирования Arduino в LabVIEW";
г) Лабораторная работа "Прямой цифровой синтез";
д) Лабораторная работа "Генератор на основе модуля AD9850";
е) Лабораторная работа " Проектирование и печать корпуса генератора";
ж) Лабораторная работа "Перестраиваемый генератор на основе модуля
AD9850".
47
Целью данного курса является освоение студентами основных способов и
приемов программирования контроллеров Arduino в средах программирования
IDE, FLProg и в системе LabVIEW.
Полученные в процессе изучения курса знания и навыки позволят студентам
успешно использовать возможности программно-аппаратной среды Arduino LabVIEW для создания систем автоматизированного сбора и обработки данных, а
также генераторного оборудования на основе прямого цифрового синтеза, реализуемых в рамках курсовых и дипломных работ.
48
ЗАКЛЮЧЕНИЕ
В результате проделанной работы:
а) изучены принципы работы устройств прямого цифрового синтеза;
б) проведён обзор современных публикаций по теме работы;
в) изучена система программирования FLProg;
г) разработан и отлажен макет генератора на платформе Arduino с использованием систем программирования FLprog и LabVIEW;
д) создан электронный учебный курс в системе Moodle по изучению способов создания генераторов в различных системах программирования.
Результаты работы представлены на:
а) Четырнадцатой Всероссийской конференции студенческих научноисследовательских инкубаторов (Томск, май 2017);
б) Международной научно-практической конференции «NI Academic Days
2017» (Москва, апрель 2017);
в) Открытом конкурсе студенческих проектов «Компьютерные измерительные технологии в научных исследованиях и образовании» (Томск, май 2017);
Представленная на конкурс работа была удостоена диплома III степени в
номинации "Компьютерные измерительные технологии в образовании".
г) XIII Международном междисциплинарном форуме молодых ученых
«Наука, технологии, искусство: теоретико-эмпирические и прикладные исследования» (Санкт-Петербург, декабрь 2017);
д) Конкурсе научных статей по итогам XIII Международного междисциплинарного форума молодых ученых «Наука, технологии, искусство: теоретикоэмпирические и прикладные исследования» (Санкт-Петербург, декабрь 2017).
Представленная на конкурс работа была удостоена диплома I степени в номинации "Лучшая научная статья" по направлению "Техника, технологии и инновации".
Тексты докладов опубликованы [8, 31, 32].
Благодарим Бадьина Александра Владимировича за помощь в проектировании и печати корпуса генератора.
49
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1 Путилин Е.О. Использование DDS-преобразователей при исследовании
процессов сердцебиения и дыхания методом ультразвуковых биений / Е.О. Путилин, Е.М. Прошин // Новые информационные технологии в научных исследованиях: материалы XVIII Всероссийской научно-технической конференции студентов,
молодых ученых и специалистов. 2013. С. 28 – 30.
2 Кравчук А.С. Разработка функционального генератора сигналов на основе прямого цифрового синтеза / А.С. Кравчук, В.И. Манаенков // Радиоэлектронные и компьютерные системы. 2007. № 4 (23). С. 22 – 26.
3 Теплов В.Ю. Методы синтеза частоты // В.Ю. Теплов, А.А. Садыков,
Р.Р. Латыпов, Р.С. Кириллов, О.Н. Шерстюков. – Казань: Казан. ун-т, 2015. 45 с.
4 Мёрфи Е. Всё о синтезаторах DDS / Е. Мёрфи, К. Слэттери // Компоненты и технологии. 2005. № 1. С. 28 – 32.
5 Mckinnon M. ARDUINO Complete Beginners Guide For Arduino - Everything You Need To Know To Get Started / M. Mckinnon – 2016. 56 P.
6
Магда Ю.С. LabVIEW: практический курс для инженеров и разработчи-
ков / Ю.С. Магда. – М.: ДМК Пресс, 2012. 208 с.
7
Трэвис Дж. LabVIEW для всех / Дж. Трэвис, Дж. Кринг. – М.: ДМК
Пресс, 2011. 904 с.
8
Жуков А.А. Программирование микроконтроллеров Arduino в системе
LabVIEW / А.А. Жуков, М.А. Ткачёв // Сборник трудов конференции NI Academic
Days 2017 – Москва, 2017. С. 150 – 153.
9
Schwartz M. Programming Arduino with LabVIEW / M. Schwartz, O. Man-
ickum Packt – Publishing Ltd. 2015. 89 P.
10 Белиовская Л.Г. Узнайте, как программировать на LabVIEW / Л.Г. Белиовская. – М.: ДМК Пресс, 2014. 140 с.
11 Карвинен Т. Делаем сенсоры: проекты сенсорных устройств на базе Arduino и Raspberry Pi / Т. Карвинен, К. Карвинен, В. Валтокари. – М.: ООО “И.Д.
Вильямс”, 2015. 432 с.
12 Маршалов О.В. Опыт применения Arduino в учебном процессе по
направлению подготовки 09.03.04. “Программная инженерия” / О.В. Маршалов,
50
В.К. Зиязов, Ю.О. Хисматуллин // Universum: Технические науки: электроннонаучный журнал. 2015. № 7 (19). 5 с.
13 Банци М. Arduino для начинающих волшебников / М. Банци. – М.: Рид
Групп, 2012. 128 с.
14 Блум Д. Изучаем Arduino: инструменты и методы технического волшебства / Д. Блум. – Спб: БХВ-Петербург, 2015. 336 с.
15 Данилин А. А. Измерения в радиоэлектронике: Учебное пособие / А. А.
Данилин, Н. С. Лавренко. – Спб: Издательство «Лань», 2017. 408 с.
16 Ридико Л.И. DDS: Прямой цифровой синтез частоты / Л.И. Ридико //
Компоненты и технологии. 2001. № 7. С. 50 – 54.
17 Комплект
лабораторий
виртуальных
NI
ELVIS
II:
измерительных
приборов
Руководство
для
пользователя.
ftp://ftp.ni.com/pub/branches/russia/ni_elvis/ni_elvis_2_user_guide.pdf
учебных
URL:
(Дата
обращения: 02.02.2018)
18 AD9850 CMOS, 125 MHz Complete DDS Synthesizer Data Sheet (REV. H).
URL:
http://www.analog.com/media/en/technical-documentation/data-
sheets/AD9850.pdf (Дата обращения 16.12.2017)
19 EIM377
AD9850
Signal
Generator
Module.
URL:
https://reipooom.files.wordpress.com/2013/08/eim377_ad9850_signal_generator_module
_v01.pdf (Дата обращения 16.12.2017)
20 Кулешов С. В. Генератор на PIC16F84A и AD9850 / С.В. Кулешов // Радио. 2004. № 3. С. 26 – 29.
21 Кузнецова М.А. Трехфазный DDS генератор под управлением LabView
для исследования режимов трехфазных электрических цепей: Пояснительная записка к выпускной квалификационной работе бакалавра. URL: portfolioomgups.ru/file/?id=45 (Дата обращения 19.12.2017)
22 Веснин В.Л. Малогабаритный автоматический радиопередатчик метеорологической информации / В. Л. Веснин // Радиоэлектронная техника: межвузовский сборник научных трудов – Ульяновск, 2012. С. 211 – 213.
23 Князьков А. В. Преобразователь интервалов времени в код / А. В.
Князьков, Е. В. Сапунов, А. В. Светлов // Измерение. Мониторинг. Управление.
Контроль. 2017. № 1 (19). С. 14 – 19.
51
24 Глухов А.Ю. Цифровой синхронный измеритель поверхностного импеданса / А.Ю. Глухов, И.В. Негинский // Инженерный вестник Дона. 2012. № 2. С.
120 – 125.
25 Peng K. Study on the wireless energy supply system in the implantable
cardiac pacemaker / K. Peng, X. Liu, P. Huang // Sixth International Conference on
Intelligent Systems Design and Engineering Applications. 2015. P. 778 – 781.
26 Shi G. Design and implementation of signal generator based on AD9850 / G.
Shi, H. Dong // International Conference on Electronic & Mechanical Engineering and
Information Technology. 2011. P. 3853 – 3855.
27 Munir E. Development of SAR Transmitter for Nanosatellite-based Remote
Sensing Application / E. Munir, A. Munir // The 5th International Conference on
Electrical Engineering and Informatics. 2015. P. 318 – 321.
28 AD9850|NR8O. URL: http://nr8o.dhlpilotcentral.com/?cat=16 (Дата обращения 16.12.2017)
29 Форум сайта системы FLProg. URL: http://flprog.ru/forum/54-18152#22517 (Дата обращения 16.12.2017)
30 Генератор сигналов на базе Arduino Uno R3. http://www.minitech.com.ua/index.php?route=product/product&product_id=123
(Дата
обращения
16.12.2017)
31 Ткачёв М. А. Перестраиваемый генератор на платформе ArduinoLabVIEW / М. А. Ткачёв // Наука, технологии, искусство: теоретико-эмпирические
и прикладные исследования: Сборник научных трудов по материалам XIII Международного междисциплинарного форума молодых ученых. 2017. С. 152 – 159.
32 Ткачёв М. А. Информационное и аппаратное обеспечение лабораторной
работы «Программирование микроконтроллеров Arduino в системе LabVIEW» / М.
А. Ткачёв // Труды четырнадцатой Всероссийской конференции студенческих
научно-исследовательских инкубаторов. 2017. С. 93 – 96.
52
ПРИЛОЖЕНИЕ А
Устройство и принцип работы энкодера KY-040
На плате (рисунок А.1) смонтирован валкодер PEC11-4220F-S0024. С нижней стороны платы резисторы 10 кОм. Соединитель содержит 5 штыревых контактов: CLK импульсы отсчета валкодера, соединён с резистором, DT импульсы
направления валкодера, соединён с резистором, SW контакт кнопки, контакты
разомкнуты в ожидании нажатия, + питание направляется на резисторы, GND общий для кнопки и валкодера.
Рисунок А.1 – Состав модуля KY-040
Резисторы подают на выходы валкодера напряжение питания. Если питание
подано и контакты валкодера разомкнуты, то на выходе будет уровень напряжения
питания, при замыкании – 0 вольт. При подключенном питании при вращении
штока с выхода модуля KY-040 будут поступать импульсы благодаря установленным резисторам. Резисторы R2 и R3 выполняют “подтяжку” к питанию выходов
механического валкодера.
Внутри валкодера PEC11-4220F-S0024 есть две контактные группы. При
вращении после соединения контактов A и C происходит соединение B и C. На
электрической схеме (рисунок А.2) показано соединение выводов валкодера А, В,
С с соединителем модуля KY-040.
53
Рисунок А.2 – Схема KY-040
При вращении с выходов модуля CLK и DT поступают прямоугольные импульсы, сдвинутые друг относительно друга на фазовый угол 90 °. При вращении в
одну сторону задний фронт импульса на выходе CLK соответствует паузе между
импульсами на выходе DT (рисунок А.3). При вращении в противоположную сторону задний фронт импульса на выходе CLK совпадает по времени с “крышкой”
импульса на выходе DT (рисунок А.4).
Рисунок А.3 – Временная диаграмма сигналов на контактах энкодера при вращении ручки
против часовой стрелки
54
Рисунок А.4 – Временная диаграмма сигналов на контактах энкодера при вращении ручки
по часовой стрелке
Анализируя эти сигналы, соединенная с модулем KY-040 электроника подсчитывает количество импульсов, учитывая направление вращения (рисунок А.5).
По существу определяют, какой контакт валкодера изменил состояние первым, и
определяют направление вращения. Контакты кнопки под штоком соединяют контакт SW с общим проводом.
Рисунок А.5 – Определение направления вращения
55
ПРИЛОЖЕНИЕ Б
Конструкторская документация на корпус генератора
56
57
ПРИЛОЖЕНИЕ В
Справка о внедрении в учебный процесс
58
Download