Немного про устройство современного радио на примере HackRF One

Приветствую, Habr!
Некоторое время назад в поле моего зрения очень часто попадало множество статей, видеороликов о теме SDR трансиверов. Тема представляет интерес и сегодня. Большой популярностью среди радиолюбителей и других, разного рода, «технарей» пользуются устройства HackRF One (и по сей день, несмотря на то, что данный трансивер появился на рынке довольно давно, и в настоящее время уже существует масса других вариантов SDR похожего плана, в том числе и более производительных). Практически во всех статьях этой тематики рассматриваются программные инструменты (как правило — работа с GNU Radio, описываются алгоритмы ЦОС и т. п.), приводятся практические примеры по захвату сигналов радиостанций, демонстрируется GPS-спуфинг, приём сигналов с метеоспутников и т. п. Hack-RF One используется как некая универсальная «коробочка», позволяющая делать множество интересных вещей. Достаточно иметь небольшой опыт в программировании и общее понимание о том, что такое цифровой сигнал — в принципе порог вхождения для самых простых экспериментов с SDR преодолен. На самом деле это, конечно, здорово.
Но среди множества статей пока не встречал ни одной, где бы внимательно рассматривалось «железо» этого приемопередатчика, где более или менее подробно анализировалась его схема (если Вы встречали, дайте, пожалуйста, ссылочку в комментариях).
Более того, настораживает некая пренебрежительность к этому вопросу со стороны «пользователей» этого и других подобных модулей-трансиверов. Во многих популярных статьях проскальзывает, что приемник/передатчик SDR — это:
xf7ocz_ftvfwspt4kzcequdv9pg.jpeg
Понятно, что основной принцип SDR технологии состоит в реализации функций радиосистемы (ранее выполняемых в аналоговом виде с помощью электронных устройств) — в цифровом виде, с помощью обработки оцифрованного сигнала. И даже не только в переносе обработки в цифру, но и в возможности применять больше сложных инструментов для обработки сигналов. Но это всё отнюдь не означает, что физическое воплощение любого типичного современного SDR трансивера — это АЦП/ЦАП + модуль ЦОС, а всё остальное — не нужно (а если оно есть, то оно второстепенно). А, соответственно, и не требуется знаний, связанных с пониманием аналоговой схемотехники радиомодуля. Вроде как достаточно заиметь АЦП, ЦАП с крутыми характеристиками, подключить их к антенне с одного конца, к ПК с другого — и вот готов SDR на все случаи и на все поколения). Может такого подхода и достаточно для демонстрации работы принципов SDR, но этого явно недостаточно для реальной связной аппаратуры.
При этом мухи от котлет отделяются очень просто. Появление новых технологий не отменяет физику, природу вещей и аналоговую схемотехнику.
Как известно, с помощью АЦП имеет смысл оцифровывать сигнал с крайней частотой сигнала в два или более раз меньшей частоты сэмплирования. Только в этом случае информацию из сигнала можно восстановить без потерь. Очень часто возникают ситуации, когда крайняя частота сигнала превышает половину частоты сэмплирования существующих в мире АЦП, или, когда вариант использования таких АЦП неоправданно дорог для конкретного проекта. В этом случае никуда не деться от необходимости переноса сигнала в нижнюю часть спектра в аналоговом виде. И это повсеместно используется. Не говоря уже о необходимости усиливать и фильтровать аналоговый сигнал для достижения необходимых характеристик радиосистемы. Абсолютно то же касается ЦАП и передающего тракта.
Если мы посмотрим в более серьезный источник (например, книгу «Software-Defined Radio for Engineers» от специалистов Analog Devices Inc.), то увидим, что типичная аппаратная архитектура SDR платформы выглядит так:
ajv6lxnegxhg0fkktfqn1ebjxly.png
Как можно заметить, между антеннами и АЦП/ЦАП имеет место быть блок RF Front End, который и включает в себя выполнение приведенных выше функций. В большей степени об этой части трансивера HackRF One я и хочу рассказать в этой статье.
Но позже. Пока ещё немного посетую.
Предположу, что упрощенное восприятие, вероятно, связано с тем, к какой предметной области «привык» человек, — этакая профессиональная деформация. Допустим, разработчик, который мало имел дела напрямую с радиоэлектроникой, узнал, что есть такое чудо — SDR, его можно программировать, обрабатывать/синтезировать сигналы программными средствами, промышлять радиохакингом и т.п., т.е. с помощью программного кода можно формировать реальные физические радиосигналы, обрабатывать принятые (хоть от сигнализации автомобиля злобного соседа, хоть из космоса). Действительно, ведь круто! И человеку тема интересна, он всецело в неё погружается и… и он чаще всего не начинает изучать теорию радиосвязи, радиотехнику, он делает в этой теме то, что уже умеет и что ему нравится больше — осваивает инструменты программного проектирования, начинает вспоминать/изучать ЦОС, — в итоге считает эти области самым главным и важным в трансивере, всё остальное уходит на далекий задний план и вроде бы оно не так важно и в принципе не так нужно. Конечно, утрирую, но подобных мнений (абсолютно искренних) встречал немало, на хабре в том числе. Однако, такой подход работает, как правило, только в пределах любительского использования подобных устройств. В реальности, если самостоятельно необходимо спроектировать систему связи, IoT устройство, какую-нибудь РЛС и т.п., помимо алгоритмов работы в цифровом виде не менее важную роль играют радиочастотные характеристики трансивера, которые при разработке обязательно рассчитываются, моделируются, оптимизируются. Эти характеристики во многом определяют допустимый диапазон применимости конкретного радиомодуля.
Такие универсальные «коробочки» как HackRF One также имеют свои характеристики, которые осознанно закладывал в электрической схеме разработчик, которые точно также ограничивают производительность системы связи, и эти ограничения точно уже не получится исправить никакими программными средствами.
Поскольку у меня профессиональная деформация — наоборот — в сторону аппаратной разработки, краткий обзор HackRF One будет представлен именно с этого бока. Рассмотрим аппаратную архитектуру HackRF One, что позволит оценить технические возможности и ограничения этого радиомодуля. Надеюсь, это будет полезно для тех, кто использует Hack-RF, но при этом мало знаком с радио-инженерией, и для тех, кто считает, что для работы с SDR приемопередатчиками — не требуются в принципе знания и понимания радиочастотных характеристик этого устройства, да и аналоговой схемотехники в целом.
Единственный найденный интересный источник, где рассмотрены некоторые аппаратные характеристики HackRF One — это видео выступления непосредственно самого автора проекта HackRF — Майкла Оссманна на конференции REcon 2014. Ссылка:
www.youtube.com/watch? v=4Lgdtr7ylNY&start_radio=1&list=RDQMQpFkO5DyFBk
Там он рассматривает возможности расширения возможностей HackRF One как раз путем аппаратных модификаций, приводит интересные факты. Рекомендую к просмотру интересующимся и сочувствующим.

HackRF One


HackRF One — является открытым проектом, исходники его доступны.
Аппаратные характеристики практически во всех источниках приведены довольно скудным перечнем:
• 1 MHz to 6 GHz operating frequency
• half-duplex transceiver
• up to 20 million samples per second
• 8-bit quadrature samples (8-bit I and 8-bit Q)
• compatible with GNU Radio, SDR#, and more
• software-configurable RX and TX gain and baseband filter
• software-controlled antenna port power (50 mA at 3.3 V)
• SMA female antenna connector
• SMA female clock input and output for synchronization
• convenient buttons for programming
• internal pin headers for expansion
• Hi-Speed USB 2.0
• USB-powered
• open source hardware
Если же скачать принципиальную электрическую схему и немного в ней поразбираться — можно восстановить архитектуру этого приемопередатчика и понять немного больше о его работе. Что и было сделано:
ohzfs7dz4dmpmox9rbj9h-ykqsu.jpeg
Из общедоступного описания известно, что HackRF One является полудуплексным трансивером, т.е. он может работать и на передачу, и на прием, но только в разные моменты времени. Из схемы это также понятно — есть один единственный выход на антенну, сигнал на которую может приходить с выхода передающего тракта или же может сниматься и поступать на вход приемного тракта.
Схема содержит множество управляемых переключателей, с помощью которых и конфигурируется путь принимаемого или передаваемого сигнала в каждый момент времени. К возможным вариантам вернемся позже, а пока рассмотрим ключевые элементы аппаратной архитектуры.

Цифровая часть, АЦП, ЦАП


На цифровой части подробно останавливаться не буду.
Через USB кабель модуль подключается к ПК. Через этот интерфейс HackRF One получает питание от хоста, через него же происходит передача всех данных в цифровом виде. На стороне HackRF One имеем микроконтроллер LPC4320FBD144 с ARM Cortex-M4 ядром, стоит CPLD XC2C64A-7VQG100C, соединенная с микросхемой MAX5864, которая представляет из себя два АЦП и два ЦАП (два — т.к. один для I, второй для Q компоненты сигнала) в едином корпусе. Разрядность АЦП = 8 бит, разрядность ЦАП = 10 бит. В целом характеристики у этих АЦП и ЦАП достаточно скромные. Максимальная частота их тактирования составляет 22 МГц (что и является ограничивающим фактором в максимально достижимой частотной полосе сигнала, теорему Котельникова не перехитрить).
Кстати, Майкл Оссманн в своём выступлении как раз затрагивал этот вопрос увеличения широкополосности трансивера. Он отметил, что, если даже заменить микросхему АЦП-ЦАП на другую, более высокоскоростную, гнать данные напрямую подключившись к CPLD, минуя микроконтроллер, то следующим узким горлышком будет являться максимальная допустимая ширина перестраиваемого фильтра (30 МГц), расположенного в микросхеме трансивера MAX2837. К рассмотрению этой микросхемы мы далее и переходим.

Микросхема трансивера MAX2837


MAX2837 — это интегрированный полудуплексный РЧ трансивер, выполненный по архитектуре прямого преобразования с нулевой промежуточной частотой (ПЧ или IF — Intermediate Frequency). Приведу картинку из спецификации с изображением внутренней архитектуры микросхемы:
rdpvamv6tqmybxsarxn09m9bifg.png
В передающем тракте пришедшие на вход I и Q компоненты baseband сигнала проходят через перестраиваемые фильтры (обозначены красной 1) и поступают на вход повышающих смесителей (2). В итоге сигнал переносится на частоту из диапазона 2.3…2.7 ГГц и далее проходит через усилитель с перестраиваемым коэффициентом усиления (3).
В итоге мы имеем:
• Диапазон перестройки частоты среза baseband фильтров: 1.75…28 МГц
• диапазон перестройки передаваемого сигнала = 45 дБ
• ~0 дБм максимальной выходной мощности
Сигнал, поступивший на вход приемного тракта, проходит через малошумящий усилитель (1), понижающий квадратурный смеситель (2), фильтры с перестраиваемой частотой среза (3) и baseband усилители с перестраиваемым усилением (4).
Некоторые важные характеристики приемного тракта MAX2837:
• Диапазон перестройки частоты среза baseband фильтров: 1.75…28 МГц
• Коэффициент шума: 2.3 дБ
• Диапазон перестройки КУ: 94 дБ
MAX2837 содержит на борту синтезатор частоты, обеспечивающий сигнал гетеродина для смесителей.
Вот такой интересный радиочип, по сути готовый RF front-end, но с существенным ограничением — он имеет достаточно узкий частотный диапазон (2.3…2.7 ГГц). Расширить рабочий частотный диапазон радио можно добавив ещё стадию переноса частоты. А для этого необходим радиочастотный смеситель и гетеродин. И в схеме HackRF One есть микросхема, объединяющая в себе эти два устройства. Рассмотрим её немного подробнее.

Микросхема синтезатора частоты и смесителя RFFC5072


RFFC5072 включает в себя генератор, управляемый напряжением (ГУН или VCO — Voltage Control Oscillator), схему фазовой автоподстройки частоты (ФАПЧ или PLL — Phased Locked Loop) и радиочастотный смеситель:
oahobwnjx6_ahrioklpnqcglr80.png
Частота гетеродина (LO — Local Oscillator) может быть установлена из диапазона 85…4200 МГц, шаг перестройки 1.5 Гц. Далее рассмотрим принцип работы с учётом RFFC5072 в схеме.

Тракт передатчика


Разглядывая приведенную выше блок-схему HackRF One можно заметить, что есть несколько возможных вариантов организации пути для передаваемого сигнала до антенны. Возможен вариант подачи сигнала с выхода MAX2837 напрямую к выходному усилителю (или антенне). Или же сигнал может быть направлен сначала в микросхему RFFC5072, на вход смесителя. Разберемся с этим.
Результатом смешивания частоты гетеродина и сигнала на промежуточной частоте, как известно, являются две копии сигнала, расположенные слева и справа относительно частоты гетеродина (на расстоянии равном как раз ПЧ). Если для Вас это не очевидно, -можете легко убедиться, применив знания из тригонометрии — произведя перемножение двух гармонических функций, которые соответствуют сигналу гетеродина и сигналу на ПЧ.
Но нам не нужны две копии одного и того же сигнала. Радиоэфир не резиновый, как говорится, чтобы так безалаберно его заполнять. Обычно выбирается одна из копий, а от второй (которую именуют зеркальным каналом) избавляются путем фильтрации или построением специальной архитектуры преобразователя частоты — без зеркального канала.
Смеситель, примененный в HackRF One, не из таких, ни один из каналов он не подавляет. При этом разработчик HackRF One предусмотрел использование фильтров в тракте передатчика — фильтра верхних частот (ФВЧ или HPF — High-Pass Filter) или фильтра нижних частот (ФНЧ или LPF — Low-Pass Filter). В зависимости от конфигурации соответствующих переключателей сигнал с выхода смесителя идет через один из этих фильтров. Для чего так сделано? Очевидно, как раз для того, чтобы была возможность подавлять либо копию сигнала, расположенную ниже по частоте (LSB — Low Side Band), либо ту, что выше (USB — Upper Side Band).
А необходимость иметь такую опцию обусловлена тем, что разработчик хотел обеспечить максимально возможный частотный диапазон радиомодуля. Когда для передачи нужно использовать частоту сигнала из диапазона 2.3…2.7 ГГц — достаточно выходной сигнал микросхемы MAX2837 напрямую подключить к антенному выходу (либо ещё усилив сигнал выходным усилителем мощности), минуя смеситель и фильтры. Когда нужно иметь на выходе частоту ниже 2.3 ГГц — тут MAX2837 напрямую уже никак не справится, поэтому сигнал с него направляется на смеситель. Как мы помним — на выходе смесителя есть две копии полезного сигнала — подключаем выход смесителя к фильтру нижних частот, подавляем USB. Ну и наоборот, когда необходима частота выше 2.7 ГГц — происходит то же самое, только теперь используется фильтр верхних частот и отфильтровывается LSB. Попытался изобразить это:
9aw0_zjyb8inmvpnewyxjiis7si.jpeg
Здесь схематично показан спектр сигнала на каждой из стадий передающего тракта, а также АЧХ применяемых фильтров.
Таким образом, мы имеем комбинированный вариант архитектуры радиопередатчика:
• на высоких частотах работает супергетеродинная схема с двумя переносами частоты вверх
• на 2.3–2.7 ГГц система может работать в формате передатчика с прямым преобразованием (гомодинная схема)
• на более низких частотах сигнал с промежуточной частоты переносится уже вниз.

Тракт приемника


Приемный тракт устроен аналогичным образом, только теперь уже схема работает так, чтобы любой входной сигнал был перенесен в частотную область 2.3…2.7 ГГц, где его обработает приемный тракт MAX2837 — преобразует в I, Q компоненты на низкой частоте для передачи в АЦП.
Хотелось бы также отметить, что в качестве малошумящего усилителя на входе используется абсолютно такая же модель усилителя, что применен на выходе передатчика — MGA-81563. Решение, конечно, спорное. Но с другой стороны, если у автора проекта не было цели оптимизировать радиомодуль под конкретную узкую задачу с мощностными требованиями к передатчику и шумовыми требованиями к приемнику (очевидно, такого и не было), а была цель хоть как-то увеличить выходную мощность и реализовать не совсем ущербный коэффициент шума приемной части, другими словами, было достаточно сделать нечто «средненькое» в этом плане и, наверно, такой вариант вполне имеет право на существование. Тем более при этом удалось сэкономить в себестоимости прибора, отказавшись от раздувания номенклатуры компонентов.

Итак, теперь мы более-менее выяснили состав аппаратной архитектуры и назначение имеющихся в ней элементов. Ничего теперь не мешает более внимательно ознакомиться со спецификацией каждого ключевого элемента схемы и получить полный перечень количественных радиочастотных характеристик всего HackRF One. В первую очередь важно узнать линейные свойства передатчика, коэффициент шума приемника, итоговый фазовый шум синтезаторов частот и пр. Эти характеристики, в свою очередь, позволят просчитывать возможность применимости модуля для той или иной задачи. Данную статью решил ограничить только функциональным описанием схемы и не приводить никаких количественных расчётов и выводов. Если тема сообществу интересна, постараюсь написать продолжение.

Что же в итоге


Как и в любом другом деле везде и всегда должен быть здравый смысл. Каков смысл в архитектуре с АЦП + антенна? Простота? Да, но это лишь простота понимания работы для «обывателя», во множестве случаев окажется, что это неоптимально и неразумно. Как видим, разработчик одного из самых популярных SDR трансиверов — HackRF One это понимал, иначе бы тупо подключил мощный АЦП/ЦАП к антенне и предлагал использовать мощнейшие вычислительные мощности для синтеза/обработки широкополосного сигнала. Стоило бы это… очень много (мягко говоря). Вместо этого он сделал достаточно красивое инженерное решение, в котором смог применить бюджетные компоненты, построить архитектуру с довольно неплохими ТТХ прибора. Низкая итоговая стоимость (для такого функционала), широкий частотный диапазон работы — именно это и позволило сделать проект популярным и доступным для людей, а никак не придуманная кем-то «простота» архитектуры радио части. Стоит всего лишь осмысленно попробовать построить трансивер с теми же характеристиками, что имеет хотя бы этот HackRF One по принципу АЦП/ЦАП + ПК = SDR, попробовать подобрать АЦП, ЦАП, которые позволят напрямую синтезировать и оцифровывать сигналы на 6 ГГц и понять насколько это реально и чего это будет стоить. Что уж говорить о более высокочастотных системах (работающих на десятках ГГц), набирающих сейчас всё большую популярность. Для них путь оцифровки «напрямую» — совсем неразумная утопия. По крайней мере — на текущем этапе развития техники.
Понятно, что описанная архитектура HackRF One и управление каждым элементом схемы скрыто от программиста где-то в схемах и управляющем ПО (любезно кем-то когда-то написанным). Естественно, нет смысла всем и каждому глубоко вникать в радиотехнику. Не обязан человек, занимающийся ЦОС детально разбираться в особенностях РЧ тракта. Однако, в любом случае следует внимательнее и аккуратнее относится к неизвестным областям знаний, не пренебрегать ими и не игнорировать в тех случаях, когда без них точно не обойтись. Помимо прочего, хочется отметить, что проект HackRF One может быть не только любопытной игрушкой в руках программиста-энтузиаста, а также может служить интересным учебным пособием и для радиолюбителя/радиоинженера.

© Habrahabr.ru