Виртуальные приборы
и проектирование DSP-систем
Кристи ХЮММЕЛЬ (Kristi HUMMEL) Сэм ШИРМАН (Sam SHEARMAN)
Что могут виртуальные приборы дать инженеру-проектировщику? Готовые приборы, такие как осциллографы, нашли широкое применение на различных этапах тестовых и измерительных приложений, в проектировании, создании прототипов и внедрении электронных систем. Виртуальные приборы благодаря средствам быстрой разработки, мощной интерактивной функциональности и легкой интеграции с реальными сигналами позволяют поднять возможности проектирования на качественно новый уровень.
Рассмотрим, например, цифровую обработку сигналов (Digital signal processing — DSP) и использование различных приборов для решения ее задач. Цифровой сигнальный процессор (также известный под аббревиатурой DSP — Digital signal processor) — это микропроцессор, предназначенный для выполнения математических операций над потоками оцифрованных сигналов в реальном времени. Для обработки аналоговых сигналов необходимо сначала оцифровать их, используя для этого АЦП с входными антиалиазинговыми фильтрами, а затем направить поток цифровых данных на сигнальный процессор. После выполнения необходимых математических операций сигнал можно преобразовать обратно в аналоговый с помощью ЦАП и соответствующего сглаживающего фильтра. В обычных готовых приборах, например, осциллографах, используются специализированные встроенные разработчиком DSP-системы ограниченной функциональности. Однако в качестве осциллографа можно использовать и обыкновенный компьютер с установленной в него платой сбора данных. В этом случае плата оцифровывает аналоговые сигналы, а функция обработки цифровых данных переносится на центральный процессор. В основе этого модульного подхода, отражающего концепцию виртуальных приборов (virtual instrumentation), лежит мощное программное обеспечение, которое любой инженер может разработать для использования на обыкновенном ПК, чтобы реализовать готовый прибор необходимой ему функциональности.
Мощные средства разработки виртуальных приборов позволили людям с различными уровнями профессиональных навыков и знаний быстро спроектировать и внедрить законченные тестовые и измерительные системы. До недавнего времени на этапах проектирования и внедрения инженерам необходимы были специфические инструменты и богатый профессиональный опыт. В этой
статье мы покажем, как виртуальные приборы, применяемые в инженерном проектировании, позволяют устранить большинство препятствий как в ходе процесса проектирования, так и при внедрении готовой системы. Проиллюстрируем и расширим наши выводы на примере проектирования и внедрения DSP-систем как одного из видов инженерного проектирования.
Что такое виртуальные приборы?
Сначала рассмотрим концепцию виртуальных приборов, причиной появления которой послужила ограниченная функциональность стандартных измерительных приборов. Исторически сложилось так, что измерительные и тестовые системы обычно состояли из отдельных законченных приборов, таких как осциллографы и генераторы сигналов, которые обладали ограниченной функциональностью и применялись лишь для определенного набора задач измерения. Среди этих ограничений можно выделить три основных: 1) невозможность сбора данных с необходимой точностью и скоростью; 2) ограниченный набор встроенных в прибор функций сбора и обработки данных; 3) недостаточная визуализация процесса измерений, связанная с ограниченными возможностями экрана прибора. Если хоть одно из этих ограничений не вписывалось в техническое задание проекта, то требовалось использование дополнительного прибора, и поэтому полная стоимость системы значительным образом возрастала.
С 1976 года компания National Instruments развивает новую концепцию измерений. Ее суть заключается в разделении стандартного измерительного оборудования на две функциональные части: аппаратную, необходимую для оцифровки сигналов, и программную — для обработки данных и представления результатов. Дав пользователю возможность самому создавать законченный прибор для его
специфического приложения на базе программного обеспечения с определяемой им функциональностью, удалось снять приведенные ранее ограничения. И таким образом родилась концепция виртуальных приборов. После того как программное обеспечение стало составляющей частью измерительного прибора, открылись новые возможности для решения задач тестирования, управления и проектирования.
Преимущества виртуальных приборов перед стандартными аналогичны преимуществам цифровой обработки сигналов перед аналоговой. Например, аналоговые фильтры, изготавливаемые обычно из традиционных электронных компонентов, таких как операционные усилители, конденсаторы и резисторы, обладают ограниченной функциональностью по сравнению с цифровыми фильтрами, применяемыми при обработке данных с плавающей и фиксированной точкой на сигнальных процессорах. Несмотря на то, что аналоговые фильтры дешевле и проще в изготовлении, их сложно калибровать и поддерживать. Изменения в структуре этих фильтров очень часто приводят к сложностям в их использовании на уже имеющемся оборудовании. Например, если понадобится фильтр более высокого порядка, остальную аппаратную часть, скорее всего, тоже придется переделывать. У цифровых же фильтров эта проблема отсутствует благодаря тому, что их функциональность полностью определяется программным обеспечением. Это дает возможность создать единую платформу для широкого круга приложений, реализованную на одной и той же аппаратной части.
Использование простой и удобной среды графического программирования ЬаЬУ1ЕШ открыло возможности разработки программного обеспечения и целых измерительных систем более широкому кругу пользователей.
LabVIEW отличается от стандартных текстовых языков программирования, требую-
Рис. 1. Экспресс-ВП для создания шаблона классических цифровых фильтров, таких как фильтр Чебышева, фильтр Баттерворта и др.
щих строгого соблюдения синтаксиса. В подходе к разработке ПО, основанном на использовании текстовых языков программирования, большая часть времени тратится именно на процесс программирования или внедрения, нежели на создание общей концепции проекта и его структуры. Обычно процесс разработки начинается с создания алгоритма в различных средах математического моделирования, требующих отличного знания синтаксиса и текстовых команд. После того как алгоритм готов, наступает очередь для реализации конкретной встраиваемой системы (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-го порядка. На самом деле методы проектирования фильтров, перечисленные в таблице, представляют собой готовые шаблоны. Например, при выборе шаблона фильтра Ремеза получается КИХ-фильтр, минимизирующий отклонение частотной характеристики фильтра от заданной. Настройки этих шаблонов определяют профиль
Таблица. Перечень шаблонов цифровых фильтров, входящих в библиотеку Digital Filter Design Toolkit
БИХ КИХ Специальный
Фильтр Баттерворта Окно Кайзера Фильтр с БИХ провал-пик (IIR Notch Peak)
Фильтр Чебышева Окно Дольфа-Чебышева Фильтр с БИХ комбинированный (IIR Comb)
Инверсный фильтр Чебышева Оконный фильтр Фильтр Maxflat
Эллиптический фильтр Фильтр Ремеза Узкополосный фильтр
Фильтр наименьшей нормы порядка Р. Фильтр наименьшей нормы порядка Р. Фильтр с произвольной групповой задержкой
Фильтр Бесселя Фильтр с компенсацией групповой задержки
фильтра. Также при использовании шаблона фильтра Ремеза можно генерировать фильтры с линейной фазой типа 1-4, с произвольной формой конечно-импульсной характеристики, аппроксимацией оптимальной амплитуды (по максимальной или минимальной фазе), можно также указать полосу работы одной точкой (по провалу или пику) и в явном виде указать коэффициент усиления. При использовании шаблона фильтра наименьшей нормы Р-го порядка можно сделать фильтры как с конечной, так и бесконечной импульсной характеристикой, с различными ограничениями по амплитуде и фазе. В библиотеке 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 приведены результаты эмуляции. Видно, что результаты для фильтра, оперирующего с числами с фиксированной точкой, отличаются от результатов для фильтра, использу-
Рис. 2. Пример проектирования фильтра. В данном ВП реализованы возможности выбора шаблона фильтра, изменения длины слова, эмулирования отклика на белый шум фильтров для чисел с фиксированной и плавающей точкой, а также анализа результатов эмуляции
Рис. 3. Пример лицевой панели для тестирования фильтров. На панели приведены амплитудные, фазовые характеристики, графики полюсов и нулей, а также результаты эмуляции и анализа первого теста
Рис. 4. На основе отчета анализа фильтра (Filter Analysis Report) оказалось, что необходимо увеличить длину слова для операций умножения, сложения и задержки. Результаты эмуляции для фильтров, работающих с числами с плавающей и фиксированной точкой, совпадают
ющего арифметику с плавающей точкой, хотя их амплитудные, фазовые характеристики, графики нулей и полюсов практически совпадают. Как видно из отчета по анализу фильтра (Filter Analysis Report), ошибки возникают из-за переполнения (overflow) и потери значащих разрядов (underflow) во время операций умножения, сложения и задержки. Благодаря этой информации можно в режиме реального времени внести коррективы в параметры фильтра для чисел с фиксированной точкой, например, увеличить длину слова целого числа, попробовать другие шабло-
ны или изменить параметры используемой модели фильтра. В этом примере достаточно увеличить длину слова целого числа при умножении, суммировании и задержке. Как видно на рис. 4, результат не отличается от результата для фильтра, работающего с числами с плавающей точкой.
Отладка проекта и внедрение
Виртуальные приборы предоставляют еще больше возможностей инженерам-проекти-ровщикам благодаря тесной интеграции
с оборудованием, что просто необходимо для тестовых и измерительных задач. В приведенном выше примере можно оцифровывать с помощью PCI-платы сбора данных реальные сигналы и использовать их для проверки корректной работы созданного цифрового фильтра. Поскольку LabVIEW изначально создавалась для использования в тестовых и измерительных приложениях, то естественно, что она обладает широкими возможностями интеграции с самым разным оборудованием сбора данных. Это имеет огромное значение для всего инженерного проектирования.
Для многих контрольно-измерительных задач необходимо иметь возможность переносить созданное программное обеспечение с одной аппаратной платформы на другую, включая real-time и встраиваемые системы. В этом контексте опять становятся очевидны преимущества LabVIEW. Созданные в ней ВП могут работать в ОС общего назначения, таких как Windows, Mac OS и Linux, а также на ПЛИС, DSP-системах и любых 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 встроенными ВП для различных математических вычислений и обработки сигналов в приложениях для встраиваемых систем.
Технология виртуальных приборов — это зарекомендовавший себя метод для проектирования и создания контрольно-измерительных систем. Этот уникальный подход сулит огромные возможности для инженеров-про-ектировщиков, которым теперь требуется одна инструментальная среда для проектирования, тестирования и внедрения готовых решений. ■