ARM – RISC-архитектура процессоров, используемых в системах на кристалле.
ПЛИС – программируемая логическая интегральная схема.
ДТП – дорожно-транспортное проишествие.
FPGA – Field Programmable Gate Array, – конфигурироемое полупроводниковое устройство, разновидность ПЛИС.
SoC – System on Chip, система на кристалле.
HPS – Hard Processor System, часть SoC, отведенная под ARM-процессор.
UDP – User Datagram Protocol, протокол Интернета.
RTL – Register Transfer Level, уровень разработки цифровых интегральных схем, на котором схема рассматривается с точки зрения логических операций, применяемых к данным при их передаче между регистрами.
DSP – Digital Signal Processor, процессор цифровой обработки сигналов.
LVDS – Low-Voltage Differential Signaling, низковольтная дифференциальная передача сигналов.
PLL – Phase-Locked Loop, система фазовой автоподстройки частоты, позволяющая, помимо прочего, преобразовывать входной опорный тактовый сигнал путем умножения, деления и фазового сдвига.
PC – Personal Computer, персональный компьютер.
TCP – Transmission Control Protocol, протокол Интернета.
ЭМП – электромагнитное поле.
Testbench – программа, предназначенная для тестирования модулей, написанных на языке проектирования аппаратуры.
ЯПА – язык проектирования аппаратуры.
Дороги по сей день остаются местом повышенной опасности. В 2019 году на территории Российской Федерации произошло более 160 тысяч ДТП, в результате которых погибло почти 17 тысяч человек [1], на общемировом уровне дорожно-транспортные происшествия входят в верхнюю десятку причин смерти [2]. По данным агентства NHTSA, причиной около 94% ДТП является человеческий фактор [3].
Для уменьшения травматизма в результате ДТП с середины XX века применяются средства пассивной безопасности, такие как ремни безопасности и подушки безопасности. В настоящее время автопроизводители разрабатывают и внедряют средства активной безопасности, то есть средства, вмешивающиеся в управление автомобилем с целью предотвращения ДТП. Важнейшими компонентами в системах активной безопасности авто являются средства обнаружения препятствий, такие как радары, лидары и видеокамеры.
Принцип действия радара заключается в считывании отражений радиоволн для обнаружения объектов; по сравнению с лидарами и видеокамерами, радары более надежны, их работа не зависит от погодных условий, а также не предоставляют высоких требований к средствам обработки данных [4]. Радары уже применяются в системах адаптивного круиз-контроля, а также в системах сбора данных для автономных автомобилей. Подобные системы, помимо устройств обнаружения, состоят из множества блоков и компонентов первичной обработки данных, которые нуждаются в проверке и тестировании. Для решения этих задач разрабатывается эмулятор среды тестирования блоков первичной обработки сигналов. Данная работа посвящена разработке модулей сопряжения эмулятора с интерфейсами внешних устройств.
Целью данной работы является разработка модулей сопряжения с интерфейсами Ethernet и Link для обеспечения эмулятора среды тестирования связью с внешними устройствами, такими как PC или DSP.
Объектом данной работы является комплексная система приема и обработки сигналов с радара. Предметом разработки являются модули сопряжения эмулятора.
Задачи:
1. Анализ вариантов реализации и протоколов приема-передачи данных интерфейсов Ethernet и Link.
2. Разработка модулей сопряжения.
3. Моделирование, тестирование модулей.
4. При наличии возможности экспериментальная проверка на ПЛИС.
Обзор системы сопряжения эмулятора, описание интерфейсов, а также анализ способов реализации модулей сопряжения приведены в первой главе. Во второй главе приведено описание разработки модуля сопряжения с интерфейсом Ethernet. В третьей главе приведено описание разработки модуля сопряжения с интерфейсом Link. В четвертой главе приводится технико-экономическое обоснование выпускной работы. Заключение включает основные выводы по работе.
Данная глава посвящена обзору структуры сопряжения эмулятора системы радара, частью которой являются модули сопряжения, анализу принципов действия и протоколов интерфейсов сопряжения, а также выбору способа разработки модулей.
Общая схема комплексной системы радара приведена на рисунке 1.1.
Главными компонентами системы являются:
1. Радарная решетка (RTX).
2. Тракт первичной обработки.
3. Модули сопряжения.
4. Два цифровых сигнальных процессора (DSP).
5. Оперативная память (RAM).
Эмулятор радара представляет собой программно-аппаратную систему, состоящую из приложения, реализованного на PC, и аппаратной системы на базе FPGA, реализующей первичную обработку. Главной задачей эмулятора радара является тестирование модулей тракта первичной обработки, как индивидуальное, так и в составе цепочки. Приложение на PC представляет собой генератор тестовых воздействий для тракта первичной обработки и разрабатывается с применением языков высокого уровня.
Чтобы передавать данные от приложения на PC в тракт первичной обработки на FPGA и отправлять результаты обработки обратно приложению, нужно наладить канал связи через Ethernet, для чего и разрабатывается соответствующий модуль сопряжения. После прохождения тракта первичной обработки данные должны передаваться на DSP, также на стороне FPGA связь с DSP, производящим вторичную обработку, должен иметь диспетчер внешних интерфейсов.
Рисунок 1.1 – Общая схема системы обработки сигналов с радара
П
родолжение
рисунка 1.1
Для того, чтобы обеспечить связь FPGA с DSP, разрабатывается модуль сопряжения с интерфейсом Link.
Канал связи через порт Ethernet можно реализовать несколькими способами с применением различных протоколов.
Один из вариантов реализации связи через Ethernet – использовать базовый функционал, предоставляемый спецификацией Ethernet, а именно передавать данные на канальном уровне модели OSI с использованием Ethernet-фреймов.
Формат Ethernet-фрейма [5] представлен в таблице 1.1.
Таблица 1.1 – Ethernet-фрейм
Преам-була |
НРК |
Адрес получателя |
Адрес отправителя |
Тип/длина |
Данные |
КПК |
Составляющие Ethernet-фрейма:
1. Преамбула (7 байт) – информирует принимающую сторону о начале нового фрейма.
2. НРК (начало разделителя кадра) (1 байт) – сигнализирует о начале нового кадра.
3. Адрес получателя (6 байт) – адрес устройства назначения.
4. Адрес отправителя (6 байт) – адрес устройства отправления.
5. Тип/длина (2 байта) – определяет длину кадра (если значение меньше или равно десятичному числу 1500) или тип протокола инкапсуляции данных (если значение превышает десятичное число 1536).
6. Данные (46-1500 байт) – содержит данные для передачи.
7. КПК (контрольная последовательность кадра) (4 байта) – конец фрейма, используется для обнаружения ошибок в кадре.
Отдельного рассмотрения требует адресация устройств в Ethernet [6]. Каждое устройство обладает уникальным 48-битным идентификатором, называемым Media Access Control Address (MAC-адрес). MAC-адреса присваиваются устройствам заводом-производителем. Формат МАС-адреса представлен в таблице 1.2.
Таблица 1.2 – Формат MAC-адреса
Октет |
0 |
1 |
2 |
3 |
4 |
5 |
Двоичный вид |
00110101 |
01111011 |
00010010 |
00000000 |
00000000 |
00000001 |
Шестнад-цатерич-ный вид |
AC |
DE |
48 |
00 |
00 |
80 |
Двоичный вид в таблице 1.2 отражает порядок передачи МАС-адреса по сети, каждый октет передается, начиная с младшего разряда.
Подобный протокол передачи поддается реализации на FPGA (например, с использованием FPGA-ядер для Ethernet компании Intel [7]), однако данный способ отличается повышенной трудоемкостью и длительностью разработки не только на стороне FPGA, но и на стороне PC, поскольку не используются протоколы Интернета, следовательно, повышается сложность установления канала связи между FPGA и PC. Еще одним недостатком данной реализации является необходимость перепрошивки FPGA каждый раз, когда нужно изменить адрес устройства, с которого принимаются данные, чего не требуется при использовании протоколов транспортного уровня.
Другой путь реализации канала связи через Ethernet-порт – использовать протоколы Интернета на транспортном уровне, такие как TCP [8] и UDP [9], позволяющие использование 32-битных IPv4-адресов для идентификации отправителя и получателя. Протокол TCP обеспечивает надежность доставки, в отличие от UDP, однако, TCP существенно сложнее, и для задачи передачи небольшого количества данных целесообразнее использовать более простой UDP.
Использование протоколов транспортного уровня упрощает задачу налаживания канала связи со стороны PC, реализовать такой канал на стороне FPGA радара можно путем построения системы на кристалле. Системы на кристалле, как правило, реализуются двумя способами:
– целиком в FPGA с использованием процессора Nios II [10];
– HPS-SoC: система на кристалле с отдельным ARM-процессором [11];
Nios II – софт-процессор компании Intel, поддающийся широкой конфигурации. Сконфигурированный процессор затем генерируется в виде файлов на языке проектирования аппаратуры и имплементируется в FPGA [12]. Nios II поддерживает запуск встроенной операционной системы Linux, на которой можно запускать написанные на C программы и которая поддерживает протоколы Интернета, то есть взаимодействие с Ethernet можно описать без использования языков проектирования аппаратуры. Однако, Nios II – софт-процессор, поэтому на его имплементацию тратятся существенные ресурсы FPGA, которых впоследствии может не хватить на реализацию прочих модулей, нуждающихся в тестировании.
Система с отдельным ARM-процессором также поддерживает запуск системы Linux и протоколы Интернета, однако, в отличие от системы на Nios II, не занимает ресурсы FPGA. Однако для реализации подобной системы нужно обладать доступом к соответствующей отладочной плате, в то время как Nios II поддерживается на целом ряде FPGA-устройств.
Таким образом, для решения задачи установления канала связи через Ethernet существует три способа:
1. Разработка модуля сопряжения на канальном уровне с использованием базового протокола Ethernet: способ время- и трудозатратен, причем как с точки зрения разработки на FPGA, так и на PC.
2. Разработка модуля сопряжения на транспортном уровне с использованием UDP с помощью системы на кристалле: гораздо менее трудоемка с обеих сторон сопряжения, может быть реализована с помощью:
– Nios II: софт-процессор, занимает ресурсы FPGA, поддерживается широким набором FPGA-устройств;
– HPS-SoC: ARM-процессор, не занимает ресурсы FPGA, требуется соответствующая отладочная плата;
Для решения поставленной задачи решено, что наиболее целесообразным решением является разработка модуля сопряжения на канальном уровне с использованием протокола UDP, реализованная с помощью системы на кристалле типа HPS-SoC, поскольку доступна плата данной конфигурации, что дает возможность освободить ресурсы FPGA от задачи создания канала связи через Ethernet. В этом случае на стороне FPGA потребуется написание модулей для работы с общей с HPS памятью.
Передача данных через интерфейс Link осуществляется по стандарту LVDS, регламентирующему технологию низковольтной дифференциальной передачи сигналов. В рамках этого подраздела рассмотрены особенности дифференциальной передачи и стандарта LVDS, а также протокола передачи данных через сам интерфейс Link.