УДК 62.01:004.9LabVIEW FPGA
ББК 30.2с51
Б24
Баран Е. Д.
Б24 LabVIEW FPGA. Реконфигурируемые измерительные и управляющие
системы. – М.: ДМК Пресс. – 448 с.
ISBN 9785970604557
В книге представлено описание нового модуля графической среды про
ектирования LabVIEW. С помощью этого модуля, расширяющего концеп
цию виртуальных инструментов в область разработки аппаратных средств,
можно создавать собственные каналы вводавывода и устройства обработ
ки данных, функциональность и характеристики которых определяются не
на заводе изготовителе, а инженеромразработчиком прикладных систем
автоматизации экспериментальных исследований, испытаний и управле
ния. Рассмотрены архитектурные особенности реконфигурируемых сис
тем, изложен порядок и основные приемы их проектирования, приведены
описания и характеристики технических компонентов, а также некоторые
примеры практической реализации технологии реконфигурированного
вводавывода.
Издание предназначено для специалистов в области разработки инфор
мационноизмерительных и управляющих систем, может использоваться
в процессе обучения студентов соответствующих специальностей.
ББК 30.2с51
УДК 62.01:004.9LabVIEW FPGA
Все права защищены. Любая часть этой книги не может быть воспроизведена в какой
бы то ни было форме и какими бы то ни было средствами без письменного разрешения вла
дельцев авторских прав.
Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность
технических ошибок все равно существует, издательство не может гарантировать абсолютную
точность и правильность приводимых сведений. В связи с этим издательство не несет ответ
ственности за возможные ошибки, связанные с использованием книги.
ISBN 9785970604557
© Баран Е. Д.
© Оформление, ДМК Пресс
Стр.3
СОДЕРЖАНИЕ
Введение ....................................................................................................11
1
Программируемые логические интегральные схемы ........................ 15
1.1. Простые программируемые логические устройства – SPLD .....16
1.2. Технологии программирования ПЛИС ........................................21
1.3. Сложные программируемые логические устройства – CPLD .... 25
1.4. Оперативно программируемые логические матрицы – FPGA ....30
1.5. Сравнение архитектур ПЛИС ....................................................... 37
1.6. Средства проектирования цифровых устройств на ПЛИС ........ 39
1.7. Применение ПЛИС ........................................................................47
2
Многофункциональные устройства вводавывода ............................. 56
2.1. 2.1. Основные узлы модулей вводавывода. Модули
стандартной архитектуры ..................................................................... 57
2.1.1. Блок аналогового ввода ............................................................. 59
2.1.2. Блок аналогового вывода...........................................................62
2.1.3. Блок цифрового вводавывода .................................................. 63
Стр.4
4
Содержание
2.1.4. Блок таймерного вводавывода ................................................ 66
2.1.5. Функционирование модуля вводавывода ................................ 66
2.2. Реконфигурируемые модули вводавывода................................ 69
3
Виртуальные измерительные приборы и программное
обеспечение National Instruments .........................................................76
3.1. Об истории появления LabVIEW ...................................................77
3.2. Основные свойства LabVIEW ........................................................ 78
3.3. Как развивались технологии виртуальных инструментов…........ 82
3.4. Measurement and Automation eXplorer (MAX) ............................. 84
3.4.1. Конфигурирование технических средств в MAX........................ 86
3.4.2. Тестирование технических средств в MAX ................................ 88
3.4.3. Создание задачи ....................................................................... 90
3.4.4. Создание симуляторов устройств вводавывода .......................97
3.4.5. Конфигурирование программного обеспечения ................... 100
3.4.6. Конфигурирование сетевого окружения ................................ 103
4
Организация среды проектирования LabVIEW ................................ 106
4.1. Запуск LabVIEW. Начало работы ................................................ 108
4.2. Создание проекта ........................................................................115
4.3. Редакторы для проектирования программ LabVIEW ................ 117
4.4. Инструменты редакторов программ ........................................ 119
4.4.1. Инструментальные линейки кнопок ........................................ 119
4.4.2. Палитра инструментов Tools Palette ........................................ 122
4.4.3. Объекты программ LabVIEW. Пример программы ..................123
4.4.4. Оценка сложности программ LabVIEW ................................... 130
Стр.5
Содержание
5
4.4.5. Палитра объектов лицевой панели Controls Palette .................. 133
4.4.6. Палитра объектов блокдиаграммы Functions Palette .............. 141
4.4.6.1. Субпалитра Programming ..................................................... 144
4.4.6.2. Базовые конструкции языка G. Субпалитра Structures .......... 146
4.4.6.3. Работа с однородными совокупностями данных.
Массивы. Субпалитра Array .............................................................. 149
4.4.6.4. Работа с неоднородными совокупностями данных.
Кластеры. Субпалитра Cluster, Class & Variant .................................... 150
4.4.6.5. Простейшие математические операции. Субпалитра
Numeric .............................................................................................152
4.4.6.6. Логические операции. Субпалитра Boolean .........................154
4.4.6.7. Операции сравнения. Субпалитра Comparison ....................154
4.4.6.8. Операции со строками. Субпалитра String .......................... 156
4.4.6.9. Функции системного таймера. Субпалитра Timing ................157
4.4.6.10. Сохранение и воспроизведение данных.
Субпалитра File I/O ............................................................................ 158
4.4.6.11. Организация взаимодействия с техническими
средствами. Субпалитра Measure I/O ............................................... 160
4.4.6.12. Субпалитра DAQmx – Data Acquisition............................... 161
5
Техника программирования в графической среде LabVIEW ......... 164
5.1. Разработка лицевой панели и настройка объектов
лицевой панели................................................................................... 164
5.1.1. Настройка свойств объекта из контекстного меню ................ 168
5.1.2. Задание свойств объекта в окне Properties............................. 170
5.1.3. Массивы и кластеры на лицевой панели.................................. 172
5.2. Разработка блокдиаграммы .......................................................175
5.2.1. Соединение узлов блокдиаграммы. Первая программа ........ 176
Стр.6
6
Содержание
5.2.2. Техника проектирования программ. VI генератора
сигналов ........................................................................................... 179
5.2.3. Разработка пиктограммы VI .................................................... 180
5.2.4. Вызов подпрограмм subVI. Цикл While. Ошибки
проектирования ................................................................................184
5.3. Техника отладки программ в LabVIEW ........................................ 188
5.3.1. Устранение ошибок до компиляции,
или Почему в LabVIEW мало грубых ошибок ..................................... 188
5.3.2. Отладка с помощью пробников и контрольных точек..............189
5.3.3. Средства пошаговой отладки программ. Анимация
выполнения программы ....................................................................193
5.3.4. Кластер ошибок. Интерпретация ошибок выполнения
программы ....................................................................................... 194
5.3.5. Помощь в среде проектирования LabVIEW ............................ 196
5.4. Разработка блокдиаграммы – продолжение ............................198
5.4.1. Цикл While. Туннели и регистры сдвига, массивы ................... 199
5.4.2. Структура выбора – Case ....................................................... 201
5.4.3. Работа со свойствами объектов ............................................. 202
5.4.4. Цикл For и другие структуры ................................................... 204
5.4.5. Объявление и использование переменных ............................ 206
5.4.6. Программирование операций вводавывода ......................... 208
5.5. Типы данных и терминалы блокдиаграммы ...............................215
6
Реконфигурируемые системы и среда
проектирования LabVIEW FPGA .......................................................... 217
6.1. Типовые архитектуры систем реконфигурируемого
вводавывода .......................................................................................218
6.1.1. Системы на основе модуля Rсерии ........................................218
6.1.2. Системы на основе контроллера реального времени ............ 221
Стр.7
Содержание
7
6.2. Состав и особенности среды проектирования
реконфигурируемых систем ..............................................................224
6.2.1. Особенности среды LabVIEW FPGA ........................................225
6.2.2. Как получается код, загружаемый в FPGA? .............................. 226
6.3. Палитры LabVIEW FPGA .............................................................. 227
6.3.1. Субпалитра арифметических операций ................................. 230
6.3.2. Субпалитра функций математической обработки
данных...............................................................................................232
6.3.2.1. Субпалитра функций управления .......................................... 233
6.3.2.2. Субпалитры Utilities и Generation ..........................................237
6.3.2.3. Другие экспрессфункции субпалитры Math & Analysis .........239
6.3.3. Субпалитра вводавывода FPGA I/O .........................................243
6.3.4. Субпалитра узлов для работы с памятью FPGA .........................245
6.3.5. Субпалитра функций тактирования FPGA ................................ 247
6.3.6. Субпалитра функций синхронизации задач в FPGA..................248
6.3.6. Субпалитра Advanced ............................................................ 250
6.4. Методы и средства отладки FPGAприложений ....................... 250
7
Разработка реконфигурируемых систем в LabVIEW .......................254
7.1. Этапы разработки реконфигурируемых систем .......................254
7.1.1. Создание проекта системы на основе модуля Rсерии ........... 255
7.1.2. Программирование целевой платформы. Разработка
программы FPGA VI...........................................................................259
7.1.2.1. Аналоговый вводвывод ........................................................259
7.1.2.2. Реализация счетчиков/таймеров .......................................... 264
7.1.3. Тактирование и синхронизация в FPGA................................... 266
7.1.3.1. Тактирование с использованием структуры Single Cycle
Timed Loop....................................................................................... 267
Стр.8
8
Содержание
7.1.3.2. Синхронизация и обмен данными между параллельными
структурами ..................................................................................... 270
7.1.4. Параллелизм выполнения операций в FPGA ........................... 277
7.1.5. Разделяемые ресурсы .............................................................281
7.2. Оптимизация FPGA VI...................................................................284
7.2.1. Оптимизация ресурсов FPGA ..................................................284
7.2.2. Оптимизация быстродействия FPGA ........................................286
7.2.3. Оценка результатов оптимизации ........................................... 292
7.3. Компиляция FPGA VI .....................................................................293
8
Управление FPGA VI. Разработка Host VI ...........................................298
8.1. Программный обмен данными через элементы лицевой
панели. Субпалитра FPGA Interface ................................................... 301
8.2. Функция Invoke Method ................................................................311
8.3. Функция Up Cast............................................................................314
8.4. Синхронизация обмена данными между Host VI и FPGA VI ..... 316
8.4.1. Синхронизация Host VI и FPGA VI методом поллинга ...............317
8.4.2. Синхронизация Host VI и FPGA VI с использованием
прерывания .......................................................................................319
8.4.3. Обмен данными с использованием канала прямого
доступа к памяти................................................................................321
9
Расширение возможностей систем, выполненных
на модулях Rсерии ................................................................................329
9.1. Краткая характеристика модулей вводавывода Ссерии ........ 331
9.2. Конфигурирование систем с шасси расширения
и модулями Ссерии ............................................................................ 337
9.3. Программирование модулей Ссерии. FPGA VI и Host VI .......342
Стр.9
Содержание
10
Автономные и распределенные системы
с реконфигурируемыми каналами вводавывода ............................. 352
10.1. Оборудование систем Compact RIO ....................................... 354
10.2. Проектирование систем на платформе cRIO .......................... 359
10.2.1. Конфигурирование среды проектирования .......................... 359
10.2.2. Разработка системы реального времени ..............................364
10.2.2.1. Краткая характеристика объекта и структура
проектируемой системы ...................................................................365
10.2.2.2. Создание и конфигурирование проекта ............................ 366
10.2.2.3. Разработка FPGA VI .............................................................368
10.2.2.4. Проектирование программы для контроллера
реального времени ...........................................................................372
10.2.2.5. Разработка Host VI .............................................................. 375
11
Примеры применения технологий
реконфигурируемого вводавывода ..................................................379
11.1. Контроллеры стандартных
и пользовательских интерфейсов ......................................................380
11.1.1. Разработка интерфейса SPI в FPGA ........................................ 382
11.1.2. Разработка интерфейса I2C в FPGA .......................................386
11.1.3. О реализации протоколов и некоторых особенностях
проектирования интерфейсов в FPGA............................................... 389
11.2. Цифровые фильтры в FPGA .......................................................392
11.3. Применение FPGA в системах радиосвязи............................. 404
11.3.1. Цифровые генераторы радиосигналов ................................ 405
11.3.2. Цифровые анализаторы радиосигналов ............................... 408
11.3.3. Усилители и коммутаторы радиосигналов. Программные
средства .......................................................................................... 409
9
Стр.10
10
Содержание
11.4. Применение технологии cRIO при разработке
прототипов систем измерения и управления ...................................418
11.4.1. Модель процесса проектирования приложений
и ее реализация ................................................................................418
11.4.2. Программнотехническое моделирование датчиков ............428
11.4.2.1. Датчик линейных перемещений..........................................428
11.4.2.2. Датчик температуры – термопары......................................431
Заключение ............................................................................................ 440
Литература ..............................................................................................442
Стр.11