Иштван Чомортани (István Csomortáni), Драгос Богдан (Dragos Bogdan), Кристиан Ориан (Cristian Orian), Андрей Козма (Andrei Cozma)
Перевод: Владимир Рентюк
Платформа для макетирования лидаров с открытым исходным кодом
Статья опубликована в журнале "Компоненты и Технологии" № 4 2020 г.
В оригинале этой статьи [1] обсуждается новая платформа широкого применения от компании Analog Devices Inc. для создания прототипов лидаров (LIDAR, Light Identification Detection and Ranging) . Эта платформа позволяет сократить время разработки, обеспечив полное аппаратное и программное решение для прототипов систем. В статье рассматриваются отдельные блоки модульной конструкции оборудования, в том числе цепи приема и передачи света, FPGA и оптика для определения дальности. Описываются компоненты стека ПО с открытым исходным кодом и платформенный API-интерфейс.

Введение
Поскольку автономные транспортные средства и роботы все чаще стали использоваться в повседневной жизни, возрастает потребность в новых решениях, позволяющих этим машинам перемещаться автономно. Одна из самых перспективных технологий в этом направлении — лидары (системы световой идентификации, обнаружения и определения дальности). Эта
технология открывает огромные возможности и получает все более широкое распространение. Многие стартапы и известные компании, разрабатывающие сенсорные технологии для создания более точных, менее энергоемких и экономичных лидаров с меньшим форм-фактором, вынуждены решать одинаковые проблемы, касающиеся проектирования системного оборудования и реализации программной инфраструктуры для взаимодействия всех компонентов системы. Это именно те направления, в которых исходные проекты оборудования наряду с программными стеками с открытым исходным кодом от компании ADI приносят разработчикам ощутимую пользу. Подход, предлагаемый этой компанией, позволяет легко интегрировать в проектируемые изделия интегральные микросхемы из портфеля ADI, а также программные модули и IP-решения на языке HDL, благодаря чему сокращается время вывода конечных
изделий на рынок.

Системная архитектура
Выгодно отличить свою продукцию от аналогов конкурентов разработчики лидаров могут только за счет приемной и передающей оптики, количества и ориентации лазеров, схемы формирования их импульсов, управления лучом и числа приемников отраженного от объекта света. Однако име-
ется много общих требований к цепи приема сигнала и сигнала возбуждения лазера. Для выполнения этих требований компания ADI разработала AD-FMCLIDAR1‑EBZ — модульную платформу прототипирования лидаров [2], упрощающую конфигурацию и позволяющую заменять части конструкции собственным оборудованием, разработанным в соответствии с нуждами кон-
кретных приложений; при этом платформа используется как цельная система (рис. 1, 2).

Рис.1. Платформа для проектирования лидаров
Рис. 2. Конструктивное исполнение платформы для проектирования лидара
Как видно на рис. 1 и 2 , система разделена на три платы со следующими стандартизованными цифровыми и аналоговыми интерфейсами:
• В состав платы сбора данных (DAQ) входит высокоскоростной интерфейс АЦП JESD204B, тактовый генератор и система электропитания. Эта плата имеет стандартный разъем FMC, подключаемый к выбранной пользователем макетной плате с FPGA. Плата DAQ служит базовой платой в системе — к ней подключены две другие платы через разъемы для передачи цифровых сигналов управления и сигналов обратной связи. Передача аналоговых сигналов осуществляется через коаксиальные кабели.
• Плата с входным аналоговым интерфейсом (AFE), в состав которой входит фотоприемник на лавинном фотодиоде (APD) и сигнальная цепь, формирующая выходной сигнал APD для его подачи в АЦП на плате DAQ.
• Плата с лазером и драйвером.
Программный стек для проектирования оборудования построен на основе иерархического подхода. Он имеет несколько уровней: драйверы и интерфейсы, специфичные для операционной системы (ОС), системный API-интерфейс и прикладной уровень. Это позволяет верхним уровням стека оставаться неизменными независимо от того, запущено ли программное обеспечение на встроенном целевом оборудовании или персональном компьютере (ПК), взаимодействующем
с системой через сеть или USB-соединение. Такой подход очень удобен на разных этапах разработки изделия (рис. 3).
Рис. 3. Цикл разработки изделия
Преимущество такого подхода заключаются в том, что прикладное программное обеспечение, которое было разработано на этапах создания прототипа, когда система для простоты разработки
подключена к ПК, можно легко развернуть во встроенной конечной системе, не затрагивая интерфейсы низкого уровня.

Разработка аппаратного обеспечения

Лидар вычисляет расстояние до цели, измеряя время прохождения светового импульса до цели и обратно. Время измеряется кратно периодам выборки АЦП, поскольку она определяет разрешение, с которым система производит выборку принятого светового импульса. Уравнение (1) позволяет вычислитьрасстояние по частоте дискретизации АЦП:
Для частоты дискретизации четырехканального АЦП AD9094 с интерфейсом JESD204B, равной 1 ГГц, результаты каждой выборки соответствуют расстоянию 15 см. По этой причине очень важно, чтобы в системе не было неопределенности выборки, поскольку неопределенность даже в нескольких выборках может привести к большим ошибкам при измерении расстояния.
Традиционно в лидарах применяется параллельное включение АЦП, у которых нулевая погрешность выборки. Поскольку количество приемных каналов продолжает расти, а требования к мощности и размеру печатной платы ужесточаются, АЦП этого типа плохо масштабируются. В качестве альтернативы можно использовать АЦП с высокоскоростными последовательными выходами, например с интерфейсом JESD204B, что исключает недостатки параллельных АЦП. Однако в результате усложняется интерфейс данных и возможность устранить неопределенность выборки.
Плата DAQ рассматриваемой архитектуры лидара решает эти проблемы, позволяя реализовать питание, подачу тактовой частоты и интерфейс JESD204B системы сбора данных в режиме Subclass 1. При этом задержка является детерминированной, что сводит к нулю погрешность выборки. Разработчики получают возможность воспользоваться всеми преимуществами интерфейса JESD204B и обеспечить наименьшее энергопотребление схемы тактирования. Для работы в режиме Device Subclass 1 (устройство подкласса 1) по стандарту JESD204B в системе требуются следующие тактовые частоты:
• Частота дискретизации АЦП: управляет процессом дискретизации сигнала АЦП.
• АЦП и FPGA SYSREF: синхронные источники сигналов с высоким разрешением синхронизации по времени нарастания и частоте для обеспечения детерминированной задержки, отвечающие за сброс делителей тактовой частоты.
• Глобальный тактовый сигнал FPGA (или так называемая тактовая частота ядра): управляет выходом физического уровня (PHY) интерфейса JESD204B и логики FPGA.
• Опорная тактовая частота FPGA: генерируются внутренние тактовые сигналы физического уровня для приемопередатчиков JESD204B. Она равна частоте тактового сигнала устройства или является ее целым кратным.
Все тактовые сигналы генерируются одним тактовым генератором AD9528 [3] JESD204B, что обеспечивает их синхронизацию друг с другом. На рис. 4 показана схема тактирования и интерфейс данных с FPGA.
Рис. 4. Формирование и передача тактовых сигналов для платы DAQ
Плата AFE принимает оптический отраженный сигнал, преобразует его в электрический сигнал и передает АЦП на плате DAQ. Эта плата, вероятно, является наиболее чувствительной частью всей конструкции, поскольку совмещает в себе схемы формирования сигнала, работающие с сигналами тока величиной в микроамперы, генерируемыми 16‑канальной матрицей APD; при этом оптический сигнал преобразуется в электрический. Для питания матрицы APD требуются источники питания высокого напряжения в диапазоне –120…–300 В. 16 токовых выходных сигна-
лов поступают в четыре малошумящих четырехканальных трансимпедансных усилителя (управляемый током усилитель напряжения, УТУН) LTC6561 [4] с внутренним мультиплексором 4:1. Этот усилитель необходим для выбора выходного канала, который подается на один из четырех входов АЦП. Входная секция трансимпедансного усилителя требует большого внимания для обеспечения заданного уровня целостности сигнала и изоляции канала. Это необходимо для того, чтобы к сигналу с очень малым током, генерируемым APD, не добавлялся шум. В результате отношение сигнал/шум и скорость обнаружения объекта системой повышаются.
Плата AFE обеспечивает высокое качество сигналов за счет очень малой длины проводников между APD и трансимпедансным усилителем, добавления переходных отверстий между входами трансимпедансного усилителя для максимальной межканальной изоляции и расположения сигнальных цепей таким образом, чтобы они не соседствовали с сильноточными цепями и шинами питания. Еще одной важной особенностью платы является возможность измерять температуру фотоприемника для компенсации изменений его выходного сигнала при повышении температуры APD в нормальном режиме эксплуатации. Кроме того, чтобы увеличить входной диапазон напряжения АЦП с целью достижения максимального соотношения сигнал/шум предусмотрено несколько регуляторов для управления смещениями сигнальной цепи и смещения APD, что позволяет устанавливать необходимую чувствительность APD. Структурная схема цепочки сигналов платы AFE показана на рис. 5.
Рис. 5. Цепочка передачи сигналов платы AFE
Плата лазера (рис. 6) генерирует оптические импульсы с длиной волны 905 нм. Она использует четыре лазера, которые для повышения мощности луча приводятся в действие одновременно, что, соответственно, приводит к увеличению диапазона измерения расстояния. Для управления лазерами используется сигнал с широтно-импульсной модуляцией (ШИМ) с программируемой шириной импульса и частотой, генерируемой несущей платой с FPGA. Сигнал генерируется FPGA для передачи методом LVDS, что делает ее менее восприимчивой к шуму. При этом сигнал проходит от FPGA к плате лазера через плату DAQ и ленточный кабель, соединяющий DAQ и лазерные платы. Сигнал драйвера лазера может вернуться в один из каналов АЦП для отсчета
времени прохождения. Для питания лазеров используется внешний источник питания. Конструкция платы соответствует международным стандартам МЭК 60825-1:2014 и МЭК 60825-1:2007 для лазерных устройств класса 1.
Рис. 6. Цепочка передачи сигналов платы лазера
Как плата с AFE, так и плата лазера для работы на большом расстоянии требуют соответствующей оптики. Было установлено, что система работает на расстоянии 60 м с использованием для лазерных диодов коллимирующих линз с быстрой осью (Fast Axis Collimation Lens) [5], которые сужают вертикальный угол до 1°, сохраняя горизонтальное поле обзора неизменным, и асферической линзы для приемной стороны.

Исходные проекты на языке HDL

В решении HDL (язык описания аппаратных средств), представляющем собой основной интерфейс для оборудования, реализован тракт передачи данных из канала JESD в память системы, блоки управления лазерами, синхронизации приемника и передатчика для точного измерения времени прохождения сигнала, а также интерфейсы связи для всех компонентов оборудования.
Рис. 7. Структурная схема исходного проекта на языке HDL
На рис. 7 показана упрощенная структурная схема решения на языке HDL. Общая архитектура исходных HDL-проектов от компании ADI делает среду масштабируемой и более доступной для переноса на другой FPGA-носитель. Для получения данных от АЦП AD9094 и управления всеми устройствами на платформе прототипирования в исходном проекте используется платформа разработки Analog Devices JESD204B [6] вместе с несколькими интерфейсами SPI и GPIO.
Канал JESD204 поддерживает четыре 8‑бит преобразователя данных (M) с помощью четырех дорожек (L) со скоростью шины 10 Гбит/с. Частота тактового сигнала, которая совпадает с опорной тактовой частотой высокоскоростных трансиверов, равна 250 МГц. Этот сигнал поступает с платы DAQ. Канал работает в режиме Subclass 1, что обеспечивает детерминированную задержку между высокоскоростным преобразователем и FPGA.
Одна из самых больших проблем лидарной системы заключается в том, как синхронизовать разные функции с передаваемым импульсом и как обрабатывать только необходимое количество данных с высокоскоростного АЦП. Чтобы решить эту задачу, в HDL-проекте используется IP-решение, которое отвечает за генерацию лазерного импульса, управление внутренними мультиплексорами трансимпедансного усилителя, обеспечивает прием и разделение ответных
сигналов для DMA. Поскольку все эти функции управления синхронизуются с передаваемым импульсом, системе не требуется сохранять весь поток необработанных оцифрованных высокоскоростных данных. Таким образом, общая скорость передачи данных системы значительно снижается.

Программное обеспечение

Главные особенности программного стека для платформы прототипирования состоят в том, что он является бесплатным и имеет открытый исходный код. Таким образом, пользователь имеет возможность беспрепятственно запускать, копировать, распространять, изучать, изменять и улучшать программное обеспечение [7], начиная с ядра Linux и заканчивая инструментами пользовательского пространства.

Рис. 8. Программный стек
Реализованные в ядре программные драйверы инициализируют аппаратные компоненты и предоставляют все их функции. Большинство этих драйверов является частью подсистемы Industrial I/O (IIO) Linux [8]. Поскольку все драйверы не зависят от платформы, их не требуется менять при переходе, например, с FPGA Xilinx на Intel.
Чтобы упростить разработку программного обеспечения интерфейсов для устройств IIO, компания ADI разработала библиотеку libiio [9]. Она абстрагирует низкоуровневые элементы аппаратного обеспечения и предоставляет простой, но полный интерфейс программирования, который можно использовать для самых сложных проектов. Библиотеки libiio (например, локальные, сетевые, USB, последовательные) делают возможным локальное и удаленное использование устройств IIO из приложений, работающих в разных операционных системах (например, Linux, Windows, macOS).
Осциллограф IIO, разработанный компанией ADI (рис. 9), является примером приложения, которое использует libiio для взаимодействия с устройствами IIO и может применяться на этапе анализа системы. Этот инструмент собирает и отображает данные в разных режимах (например, во временной и частотной областях, в созвездии, с взаимной корреляцией), а также передает данные, позволяет просматривать и изменять настройки обнаруженных устройств.
Рис. 9. Окно осциллографа IIO, отображающее данные лидара
Хотя libiio предоставляет программный интерфейс низкого уровня, в большинстве случаев пользователям требуется такой API-интерфейс, который абстрагирует вызовы драйверов низкого уровня и предоставляет набор функций для доступа и настройки системных параметров, а также потоковых данных из системы. По этой причине платформа прототипирования лидара поставляется со специальным API-интерфейсом с привязками для широко распространенных платформ и языков программирования, например C/C++, MATLAB или Python [10]. Этот интерфейс позволяет взаимодействовать с системой с помощью предпочитаемого языка программирования и целиком заняться разработкой алгоритмов и приложений, что является несомненным преимуществом [11].

Выводы

При проектировании любой системы, когда создается архитектура и принимаются проектные решения, имеется некоторая неопределенность. В результате возникает риск, что система после сборки не станет работать или как минимум функционировать должным образом, что, в свою очередь, приведет к многочисленным повторным циклам проектирования, доработкам и росту затрат. Исходные проекты, созданные на базе уже разработанных систем и учитывающие особенности взаимодействия, снижают риски, повышают общую предсказуемость поведения и надежность изделий по сравнению с использованием нестандартных одноразовых решений, созданных с чистого листа.
Разработчикам систем требуются такие платформы для подтверждения правильности проектных решений, которые позволяют снизить риски и повысить надежность конечных изделий. Начало проекта, основанное на четких и стандартизованных решениях, в значительной мере облегчает процесс планирования за счет использования общего языка для согласования поставленных задач и тесного сотрудничества разработчиков разных узлов одной системы, благодаря чему намного быстрее достигается одна общая цель [12] и минимизируются последствия неизбежных компромиссов.
Платформа прототипирования лидаров, предлагаемая компанией ADI, позволяет удовлетворить эти потребности, обеспечив аппаратные и программные решения с открытым исходным кодом, которые можно использовать на самых начальных этапах закладки архитектуры системы. Аппаратная платформа и программный стек могут применяться на всех стадиях разработки изделия.
Техническая документация исходного проекта обеспечивает построение стандартной локализованной системы проектирования. Модульная конструкция оборудования позволяет использовать разные варианты конфигурации для удовлетворения конкретных требований приложений, а программный стек с открытым исходным кодом на основе стандартных платформ, языков программирования и примеров приложений позволяет целиком сосредоточиться на разработке приложений, не тратя усилия на проектирование низкоуровневых частей стека.
Еще одну технологию несканирующего лидара компании Analog Devices см. в [13–14].

Литература

1. Csomortáni I., Bogdan D., Orian C., Cozma A. Open-Source LIDAR Prototyping
Platform // Analog Dialogue. February 2020. Vol. 54. www.analog.com/en/
analog-dialogue/articles/open-source-lidar-prototyping-platform.html#

2. AD-FMCLIDAR1‑EBZ.
www.wiki.analog.com/resources/eval/user-guides/ad-fmclidar1‑ebz
3. AD9528 Генератор тактовых сигналов JESD204B с 14 выходами LVDS/HSTL.
www.analog.com/ru/products/ad9528.html
4. LTC6561 Four-Channel Multiplexed Transimpedance Amplifier with Output
Multiplexing. www.analog.com/ru/products/ltc6561.html
5. Fast Axis Collimator Lenses. FISBA, 2019. www.fisba.com/expertise/expertisecomponents/
fast-axis-collimator-lenses-facs

6. JESD204 Interface Framework. Analog Devices, Inc., 2019.
www.wiki.analog.com/resources/fpga/peripherals/jesd204
7. What Is Free Software? Free Software Foundation, Inc., 2019.
www.gnu.org/philosophy/free-sw.en.html
8. The Linux Driver Implementer's API Guide. The kernel development community.
www.kernel.org/doc/html/latest/driver-api/iio/intro.html
9. About libiio. Analog Devices, Inc., 2019. www.wiki.analog.com/resources/
tools-software/linux-software/libiio_internals

10. PyADI-IIO: Analog Devices Python Interfaces for Hardware with Industrial I/O
Drivers. GitHub, Inc., 2020. www.github.com/analogdevicesinc/pyadi-iio
11. Hennerich M., Getz R. Free and Open-Source Software —
An Analog Devices Perspective // Analog Dialogue. Mar. 2010. Vol. 44. No. 3.
www.analog.com/media/en/analog-dialogue/volume‑44/number‑1/
articles/free-and-open-source-software.pdf

12. Рентюк В. Устранение конфликта интересов и оптимизация организации
работ при проектировании РЭА // Технологии в электронной промышлен-
ности. 2014. № 7.
13. Рентюк В. Технология распознавания глубины от компании Analog Devices
для современных и перспективных приложений. Часть 1. Основы //
Компоненты и технологии. 2020. № 2.
14. Рентюк В. Технология распознавания глубины от компании Analog Devices
для современных и перспективных приложений. Часть 2. Основы //
Компоненты и технологии. 2020. № 3.