Четыре быстрых шага на пути к производству.
Модельно-ориентированное проектирование программно определяемых радиосистем.
Часть 1. Платформа Analog Devices/Xilinx для быстрого прототипирования систем SDR
Введение
В этой серии из четырех статей мы исследуем достижения в области платформ и инструментов проектирования, которые позволяют разработчикам ускорить процесс создания моделей и прототипов систем радиосвязи, а также переход от моделирования и прототипирования к производству конечной версии продукта. В качестве реального примера мы создадим прототип программно-определяемой радиосистемы (software-define radio, SDR), принимающей и декодирующей сигналы системы радиовещательного автоматического зависимого наблюдения (ADS-B) для извлечения информации о положении, высоте и скорости коммерческих летательных аппаратов. Для этого нам потребуются MATLAB и Simulink, а также навыки интеграции программного обеспечения (ПО)/программируемой логики во встраиваемых системах. В качестве аппаратной платформы будем использовать платформу прототипирования систем SDR на базе компонентов компаний Analog Devices и Xilinx. При помощи программных продуктов MATLAB и Simulink будут решены следующие задачи:
- Проектирование алгоритмов обработки сигналов, используемых для декодирования сообщений ADS-B.
- Моделирование радиотрансивера сигналов ADS-B.
- Генерация кода на языках C и HDL.
- Верификация кода на языках HDL в целевой платформе с трансивером и FPGA, с помощью записи данных и режима реального времени.
Конечным результатом проектирования будет работающий, готовый к производству проект аппаратной части системы SDR, характеристики и функциональность которого мы испытаем в местном аэропорту.
В первой части серии статей мы обсудим платформу прототипирования систем SDR на базе компонентов Analog Devices и Xilinx, ее возможности и преимущества, а также дадим краткое описание инструментов, используемых в процессе проектирования. Во второй части будет представлен обзор сигналов автоматического зависимого наблюдения-вещания (automatic dependent surveillance broadcast, ADS-B) и показано, как декодировать содержащуюся в них информацию при моделировании в MATLAB и Simulink. В третьей части будет обсуждаться комбинированное программно-аппаратное моделирование (hardware in the loop, HIL), когда сбор сигналов производится с помощью реального трансивера, а обработка сигналов, осуществляемая в целях верификации алгоритма, по-прежнему выполняется в программе Simulink на хост-процессоре. В четвертой части мы возьмем алгоритм, разработанный в части 2 и проверенный в части 3, сгенерируем из него код при помощи продуктов HDL Coder и Embedded Coder компании MathWorks, реализуем его в реальной аппаратной платформе и представим результаты испытаний платформы на реальных сигналах ADS-B в аэропорту.
Экспоненциальный рост числа способов и средств передачи информации делает критически важными упрощение и оптимизацию экономической эффективности процесса модификации радиоаппаратуры. Это требование предопределило широкое внедрение в последние годы программно определяемых радиосистем, которые предоставляют необходимые для развития технологий беспроводной связи свободу конфигурирования, экономическую эффективность и вычислительную мощность. Смысл концепции систем SDR состоит в переносе как можно большей части функций модуляции/демодуляции и алгоритмов обработки данных в программное обеспечение и перепрограммируемую логику таким образом, чтобы для изменения конфигурации системы связи достаточно было просто обновить программное обеспечение и прошивку схемы программируемой логики без внесения каких-либо изменений в аппаратную платформу.
С появлением систем на кристалле (system on chip, SoC), таких как, например, компоненты семейства Zynq компании Xilinx, сочетающих универсальность центрального процессора и вычислительные мощности программируемой логики, разработчики получили возможность консолидировать все функции обработки данных системы SDR наряду с другими дополнительными функциями в одном устройстве. Задачи, требующие большого объема вычислений, например алгоритмы модуляции/демодуляции, реализуются в программируемой логике, а выполнение таких задач, как декодирование и интерпретация данных, мониторинг и диагностика системы и поддержка графического интерфейса пользователя, перекладываются на процессорное ядро.
В то же время прототипирование систем радиосвязи является предметом обсуждения на протяжении десятилетий, однако лишь в последние годы, благодаря развитию инструментов моделирования, таких как продукты MATLAB и Simulink от MathWorks, эти обсуждения трансформировались в полноценный маршрут проектирования для FPGA — от создания модели до реализации системы. Возможность прототипирования систем радиосвязи трансформирует саму организацию работы инженеров и ученых, позволяя перенести часть задач из лаборатории или места проведения натурных испытаний прямо за рабочий стол пользователя. Благодаря моделированию всей системы целиком инженер может наблюдать ее поведение и настраивать ее параметры до реальной реализации и проведения натурных экспериментов. Это дает ряд преимуществ, включая ускорение системной интеграции и уменьшение зависимости от доступности измерительного оборудования. Кроме того, по завершении создания модели системы SDR в Simulink из нее можно автоматически сгенерировать код на языках C и HDL для SoC Zynq, тем самым экономя время и избегая ошибок, возникающих при написании кода вручную. Дополнительное сокращение рисков достигается, если привязать модель к платформе быстрого прототипирования, которая позволяет исследовать поведение и характеристики системы SDR в реальных условиях.
Микросхемы SoC семейства Zynq в системах SDR
Для одновременной поддержки пользовательского интерфейса, протоколов связи и функций обработки данных при переменных требованиях к производительности вычислений и обработке в реальном времени необходимы продвинутые системы SDR. Аппаратные платформы, выбираемые для реализации подобной системы, должны предусматривать масштабирование для оптимизации и дальнейшего расширения возможностей системы. Полностью программируемые микросхемы SoCs Zynq‑7000 компании Xilinx (рис. 1), сочетающие высокопроизводительную процессорную систему и программируемую логику, удовлетворяют всем указанным требованиям. Комбинация процессорной системы и программируемой логики обеспечивает превосходные возможности параллельных вычислений, производительность, необходимую для обработки в реальном времени, и широкий выбор вариантов интерфейса передачи данных.
Процессорная часть SoC Zynq состоит из двухъядерного процессора ARM Cortex-A9, сопроцессора NEON и аппаратных средств поддержки вычислений с плавающей точкой для ускорения исполнения программ. Чтобы в полной мере воспользоваться преимуществами системы на двухъядерном процессоре ARM, может быть запущена операционная система (ОС) Linux для встраиваемых систем или ОС реального времени (ОСРВ). Процессорная система является самодостаточной, и для работы с ней не требуется конфигурирование программируемой логики. Эта особенность крайне важна для разработчиков ПО, которым желательно начать создание кода параллельно с разработчиками аппаратной части, отвечающими за проектирование топологии FPGA.
На стороне программируемой логики компонент содержит до 444 000 логических ячеек и до 2200 элементов DSP, которые дают огромную производительность, позволяющую компонентам семейства Zynq решать самые различные задачи обработки сигналов с большим объемом вычислений. Программируемая логика связана с процессорной системой при помощи пяти быстродействующих шин AMBA‑4 AXI с широкой пропускной способностью, эквивалентной более чем трем тысячам непосредственных соединений.
Конфигурируемый широкополосный радиотрансивер для систем SDR AD9361
За последние годы компания Analog Devices выпустила ряд революционных продуктов для SDR, позволяющих адаптироваться к постоянному развитию архитектур систем SDR и ужесточению требований к ним. Одними из наиболее важных продуктов данной линейки являются интегрированные схемы (ИС) конфигурируемых радиотрансиверов AD9361/AD9364. AD9361 (2×2) и AD9364 (1×1) — это высокопроизводительные, обладающие высокой степенью интеграции ИС радиотрансиверов, предназначенные для использования в архитектурах SDR для различных областей применения, включая инфраструктуру сетей радиосвязи, военную радиоэлектронику, контрольно-измерительную технику для испытания радиоэлектронной аппаратуры и универсальные программно определяемые радиоплатформы. Компоненты включают входной радиочастотный (РЧ) интерфейс и конфигурируемый аналого-цифровой тракт полосы модулирующих частот (baseband) с интегрированными синтезаторами, а также конфигурируемый интерфейс с процессором или FPGA, упрощающий проектирование системы. Трансиверы работают в спектре частот от 70 МГц до 6 ГГц, перекрывающем большинство лицензируемых и нелицензируемых диапазонов, и поддерживают обработку сигналов в каналах с полосой менее чем от 200 кГц до 56 МГц благодаря возможности программного изменения частоты дискретизации, коэффициента децимации и конфигурации цифровых фильтров. Блок-схема AD9361 изображена на рис. 2.
Для того чтобы помочь разработчикам сократить время и ресурсы, затрачиваемые на создание законченного продукта, компания Analog Devices сделала еще один шаг вперед, предложив решения для систем SDR в виде полнофункциональной экосистемы быстрого проектирования и создания прототипов радиосистем на базе FPGA. Платы разработки и прототипирования AD-FMCOMMSx-EBZ — это семейство широкополосных аналоговых модулей в формате FMC, которые содержат ИС конфигурируемого радиотрансивера AD9361 или AD9364 либо сигнальный тракт из дискретных компонентов и обеспечивают непосредственное подключение к платформам разработки для FPGA компании Xilinx. Любое изменение конфигурации этих плат осуществляется исключительно программным способом без внесения модификаций в аппаратную часть. Платы сопровождаются драйверами для Linux и платформ без ОС, принципиальными электрическими схемами, схемами топологии печатных плат, а также вспомогательными справочными материалами, которые доступны для загрузки на соответствующих сайтах wiki компании Analog Devices. Основные особенности различных платформ FMCOMMSx перечислены в таблице.
Платформа |
Особенности |
AD-FMCOMMS5-EBZ |
Благодаря интеграции двух ИС конфигурируемого трансивера 2×2 AD9361 эта плата быстрого прототипирования систем SDR обеспечивает полную поддержку синхронизации четырех приемных и четырех передающих каналов, |
AD-FMCOMMS4-EBZ |
Эта версия платы быстрого прототипирования систем SDR с одной ИС конфигурируемого радиотрансивера 1×1 AD9364 может быть программно сконфигурирована для обеспечения оптимальных характеристик в диапазоне частот от 2400–2500 МГц или работы в полном диапазоне перестройки частоты AD9364 от 70 МГц до 6 ГГц. Адрес страницы сайта wiki с информационными ресурсами: www.wiki.analog.com/resources/eval/user-guides/ad-fmcomms4-ebz/ссылка утрачена/ |
AD-FMCOMMS3-EBZ |
Эта версия платы быстрого прототипирования систем SDR с одной ИС конфигурируемого радиотрансивера 2×2 AD9361 поддерживает полный диапазон перестройки частоты от 70 МГц до 6 ГГц. Она идеально подходит для разработчиков программно определяемых систем радиосвязи, которым необходима унифицированная платформа проектирования с возможностью изменения рабочей частоты в широком диапазоне. Адрес страницы сайта wiki с информационными ресурсами: www.wiki.analog.com/resources/eval/user-guides/ad-fmcomms3-ebz/ссылка утрачена/ |
AD-FMCOMMS2-EBZ |
Эта плата быстрого прототипирования систем SDR с одной ИС конфигурируемого радиотрансивера 2×2 AD9361 оптимизирована для обеспечения наилучших характеристик радиотракта в области частот от 2400 до 2500 МГц. |
Платформа быстрого прототипирования систем SDR на базе микросхем SoC Zynq
Пример типового проекта
Вместе с платформами FMCOMMSx компания Analog Devices предлагает каркас полнофункционального проекта для среды разработки Vivado с драйверами для Linux или решения без ОС, который может быть использован как в целях создания прототипа, так и в составе готовой к производству системы. Инфраструктура, предоставляемая Analog Devices для поддержки плат FMCOMMSx в проектах на базе SoC Zynq, показана на рис. 3.
Эта обобщенная блок-схема иллюстрирует основные составные блоки типового проекта Analog Devices для SoC Zynq. Для отображения графического интерфейса Linux на мониторе используется порт вывода HDMI, а клавиатуру и мышь можно подключить к порту USB 2.0. Процессорная система ARM Cortex-A9 работает под управлением ОС Ubuntu Linux. Она содержит драйверы промышленных устройств ввода/вывода (industrial IO, IIO) Linux, необходимые для интерфейса с аппаратными модулями FMCOMMS компании Analog Devices, приложение IIO Oscilloscope (осциллограф) в пользовательском пространстве для мониторинга и управления, сервер libiio, позволяющий осуществлять сбор данных в реальном времени и управление системой по TCP совместно с клиентскими приложениями на удаленном компьютере, а также опциональные пользовательские приложения, в том числе код на языке C, генерируемый продуктом Embedded Coder для Simulink-модели контроллера.
Инфраструктура программного обеспечения
В основе всех драйверов Linux от Analog Devices лежит подсистема IIO, которая сейчас имеется в составе всех стандартных сборок ядра Linux. IIO Scope — это разработанное Analog Devices приложение Linux с открытым исходным кодом, исполняемое на двухъядерном процессоре ARM Cortex-A, интегрированном в SoC Zynq. Оно позволяет отображать в реальном времени данные, получаемые с любой платы Analog Devices в формате FMC, которая подключается к платформе на базе SoC Zynq. Данные могут отображаться в виде графиков во временной или частотной области, а также в виде графика фазового созвездия. Программа поддерживает сохранение данных в файл для последующего анализа в различных популярных форматах, включая формат с данными, разделяемыми запятыми, или формат файлов данных MATLAB (.mat). Графический интерфейс IIO Scope также позволяет отображать и вносить изменения в текущую конфигурацию плат FMC Analog Devices. Сервер libiio дает возможность собирать данные и управлять системой по протоколу TCP, используя клиентские программы на удаленном компьютере. Сервер работает на встраиваемой целевой платформе под управлением Linux и осуществляет обмен данными между целевой платформой и удаленным клиентом в реальном времени через протокол TCP. Данная библиотека скрывает низкоуровневые детали работы аппаратуры и обеспечивает простой, но полнофункциональный программный интерфейс, который может быть применен в сложных проектах. Ее модульная архитектура, хорошо проработанный прикладной программный интерфейс (API) и встроенные возможности сетевой передачи данных помогают пользователям создавать приложения, не только исполняемые на системе, к которой подключены устройства IIO, но и действующие удаленно по сети. Первоначально библиотека создавалась для Linux, но теперь работает и из ОС Windows, используя удаленный доступ к библиотеке. Она написана на языке С, распространяется по лицензии LGPL и имеет интерфейсы для C#, Python и MATLAB. Для интеграции в приложения MATLAB и Simulink доступен системный объект клиента IIO (MathWorks IIO). Он предназначен для обмена данными по сети Ethernet с аппаратной системой Analog Devices, которая подключена к платформе FPGA/SoC, действующей под управлением дистрибутива Linux от Analog Devices. Системный объект IIO позволяет выполнять в MATLAB или модели Simulink следующие функции:
- потоковая передача данных в целевую систему и из целевой системы;
- управление настройками целевой системы;
- мониторинг различных параметров целевой системы.
Системный объект IIO (IIO System Object) доступен как в MATLAB, так и в Simulink. В первом случае он вызывается пользователем непосредственно из скрипта MATLAB, а во втором случае включается в состав модели Simulink в виде блока MATLAB System Block. Программное обеспечение для ОС Linux и инфраструктура кода HDL, предоставляемые Analog Devices для платформ FMCOMMS, совместно с инструментами от MathWorks и Xilinx образуют среду с отличными возможностями прототипирования систем SDR. Кроме того, отдельные компоненты могут быть интегрированы в окончательную версию системы, что помогает сократить время и стоимость полного цикла проектирования — от создания концепции до выпуска готового продукта.
Для того чтобы помочь разработчикам быстро освоить проектирование с использованием IIO System Object, Analog Devices предлагает несколько примеров для MATLAB и Simulink на основе этого интерфейса, включая приемник сигнала радиомаяка, приемник и передатчик сигналов квадратурной фазовой манипуляции (QPSK), а также приемник и передатчик LTE. В этих примерах платформы FMCOMMSx конфигурируются из IIO System Object и используются в качестве аналогового входного интерфейса, который осуществляет передачу и прием аналоговых сигналов по воздуху. Потоковая передача сигналов в целевую систему/из целевой системы происходит через IIO System Object. Вся остальная обработка сигналов выполняется в MATLAB или Simulink. На рис. 4 представлен снимок экрана с примером модели приемника сигнала радиомаяка, иллюстрирующим подключение IIO System Object к другим блокам Simulink.
Поддержка SoC Zynq в продуктах MathWorks
Поддержка систем SDR на базе SoC Zynq в продуктах MathWorks имеет четыре аспекта.
Модель AD9361 для Simulink
Поскольку AD9361 — полностью интегрированная микросхема радиотрансивера, доступ к ее внутренним сигналам и мониторинг ее внутренних блоков невозможен. Поэтому компаниями MathWorks и Analog Devices была совместно разработана модель SimRF AD9361. Она позволяет пользователю промоделировать поведение микросхемы, чтобы увидеть происходящее внутри и то, как микросхема ведет себя в различных тестовых условиях, которые трудно воспроизвести в реальной жизни. SimRF — инструмент моделирования и библиотека компонентов для проектирования радиосистем с использованием эквивалентных блоков, работающих с комплексным сигналом полосы модулирующих частот, включая модели усилителей, смесителей и обобщенные модели с загружаемыми S‑параметрами. Данный инструмент отлично подходит для моделирования радиотрансивера AD9361. Модель системного уровня AD9361, изображенная на рис. 5, в точности повторяет функциональность AD9361 и доступна для загрузки в составе пакета поддержки аппаратной платформы для MathWorks.
Адекватность моделей SimRF гарантируется соответствием результатов лабораторных измерений спектральной плотности мощности. Для этого вначале измеряются экспериментальные зависимости шума и нелинейностей трансивера на разных частотах, затем на их основании строятся модели с аналогичными характеристиками.
Модели SimRF трансивера AD9361 позволяют пользователям:
- предсказывать влияние отличия характеристик ВЧ-схем от идеальных на тестовые сигналы;
- использовать тональные сигналы или сигналы LTE в качестве входных воздействий;
- генерировать или импортировать тестовые векторы и оценивать влияние нелинейности, шума, дисбаланса коэффициента усиления и фазы, «размывания» спектральных составляющих, а также других эффектов, вносимых радиопередатчиком и радиоприемником;
- добавлять мешающие сигналы и наблюдать их влияние на характеристики во временной или частотной области.
Функции Communications и DSP System Toolbox
Продукты MathWorks, включая Communi-cations System Toolbox, Signal Processing Toolbox, DSP System Toolbox и SimRF, содержат набор функций, реализующих стандартные алгоритмы для систематического анализа, проектирования и оптимизации систем SDR. Совокупность этих инструментов образует средство создания высокоточных моделей систем SDR, которые могут быть использованы для верификации поведения и характеристик систем связи перед переходом к реальной физической реализации.
Маршрут проектирования для SoC Zynq в Simulink
Продукты MATLAB и Simulink компании MathWorks образуют среду моделирования и модельно-ориентированного проектирования, которая отлично подходит для моделирования алгоритмов, применяемых в системах SDR. Эти алгоритмы могут включать, например, алгоритмы регулировки коэффициента усиления, смещения частоты, смещения во времени и другие параметры, применяемые для оптимизации совместной работы передатчика и приемника. Оценка алгоритмов при помощи моделирования — эффективный способ определения практической пригодности проектов систем SDR, который также позволяет сократить время и стоимость разработки за счет уменьшения потребности в натурных испытаниях. На рис. 6 показан эффективный маршрут проектирования алгоритма работы системы связи, который включает следующие шаги:
- построение точных моделей систем SDR при помощи библиотек, входящих в состав среды модельно-ориентированного проектирования;
- моделирование поведения системы для проверки соответствия ее характеристик ожидаемым параметрам;
- генерация кода на языках C и HDL для тестирования алгоритмов в режиме реального времени и практической реализации;
- тестирование алгоритмов при помощи аппаратных прототипов.
Если характеристики, полученные в результате моделирования и тестирования на аппаратном прототипе, удовлетворяют заданным требованиям, можно перейти к практической реализации системы и выпуску окончательной версии продукта.
Интеграция модели Simulink в комплект проектирования систем SDR на базе SoC Zynq
По завершении верификации алгоритма работы системы SDR в среде моделирования пользователь может сгенерировать код на языке С либо на языках VHDL или Verilog при помощи продуктов Embedded Coder и HDL Coder компании MathWorks, который будет перенесен в аппаратный прототип для тестирования и, наконец, в окончательную версию системы. На данном этапе уже должны быть сформированы требования к программной и аппаратной реализации, в том числе требования к разрядности чисел с фиксированной точкой и к временным соотношениям в системе. Автоматическая генерация кода помогает сократить время, необходимое для перехода от концепции к реализации реальной системы, и избежать ошибок, возникающих при написании кода вручную, гарантируя полное соответствие между системой и ее моделью. Шаги, предусматривающие процесс создания модели Simulink и ее превращения в реальную систему SDR на базе SoC Zynq компании Xilinx, показаны на рис. 7.
Первый шаг — создание модели системы SDR и моделирование ее поведения в Simulink. На этом этапе алгоритм работы системы связи делится на составные части, которые будут реализованы в программном обеспечении, и составные части, которые будут реализованы в программируемой логике. По завершении этапа разбиения на составные части и моделирования модель системы SDR преобразуется в код на языках C и HDL с помощью Embedded Coder и HDL Coder соответственно. Для верификации алгоритма и дальнейшей оптимизации модели системы SDR перед переходом к этапу производства используется аппаратный прототип на базе SoC Zynq. На этапе производства автоматически сгенерированный код на языках C и HDL интегрируется в сложную аппаратную платформу. Данный маршрут проектирования гарантирует, что по достижении этапа производства алгоритм работы системы связи будет полностью проверен и протестирован, повышая, таким образом, уверенность в ее корректном функционировании. Пакеты поддержки аппаратных платформ на базе SoC Zynq для Embedded Coder и HDL Coder упрощают программирование платформы, обеспечивая основу для интеграции функций проектирования ПО/аппаратных средств, моделирования и верификации, сокращая количество итераций при разработке и помогая выявлять и исправлять ошибки в проекте и спецификациях на ранней стадии.
Заключение
В статье рассмотрены тенденции в проектировании современных систем SDR, требования, предъявляемые к ним, а также инструменты и средства, предлагаемые компаниями MathWorks, Xilinx и Analog Devices, которые помогают удовлетворить эти требования и делают возможным создание решений с лучшими характеристиками. Сочетание инструментов модельно-ориентированного проектирования и автоматической генерации кода от MathWorks с высокопроизводительными SoC Zynq Xilinx и интегрированными радиотрансиверами Analog Devices делает проектирование, верификацию, тестирование и практическую реализацию систем SDR эффективными, как никогда прежде, позволяя повысить технические характеристики и сократить цикл от задумки концепции до выпуска готового продукта. Комбинация платформ FMCOMMS Analog Devices и аппаратных средств на базе SoC Zynq‑7000, выпускаемых компанией Avnet, обеспечивает широкие возможности прототипирования алгоритмов для систем SDR, разрабатываемых в MATLAB и Simulink. Платформы FMCOMMS сопровождаются набором примеров типовых проектов с открытым программным кодом, которые могут быть использованы для ознакомительных целей и ускорения работы над созданием любой новой системы SDR.
В следующей статье серии мы продолжим знакомство с процессом проектирования систем SDR и рассмотрим характеристики сигналов ADS-B, а также покажем, как декодировать содержащуюся в них информацию при моделировании в MATLAB/Simulink.
- Hill T. Motor Drives Migrate to Zynq SoC with Help from MATLAB. Xcell Journal. Issue 87, Second Quarter, 2014.