Немного про устройство современного радио на примере HackRF One
Приветствую, Habr!
Некоторое время назад в поле моего зрения очень часто попадало множество статей, видеороликов о теме SDR трансиверов. Тема представляет интерес и сегодня. Большой популярностью среди радиолюбителей и других, разного рода, «технарей» пользуются устройства HackRF One (и по сей день, несмотря на то, что данный трансивер появился на рынке довольно давно, и в настоящее время уже существует масса других вариантов SDR похожего плана, в том числе и более производительных). Практически во всех статьях этой тематики рассматриваются программные инструменты (как правило — работа с GNU Radio, описываются алгоритмы ЦОС и т. п.), приводятся практические примеры по захвату сигналов радиостанций, демонстрируется GPS-спуфинг, приём сигналов с метеоспутников и т. п. Hack-RF One используется как некая универсальная «коробочка», позволяющая делать множество интересных вещей. Достаточно иметь небольшой опыт в программировании и общее понимание о том, что такое цифровой сигнал – в принципе порог вхождения для самых простых экспериментов с SDR преодолен. На самом деле это, конечно, здорово.
Но среди множества статей пока не встречал ни одной, где бы внимательно рассматривалось «железо» этого приемопередатчика, где более или менее подробно анализировалась его схема (если Вы встречали, дайте, пожалуйста, ссылочку в комментариях).
Более того, настораживает некая пренебрежительность к этому вопросу со стороны «пользователей» этого и других подобных модулей-трансиверов. Во многих популярных статьях проскальзывает, что приемник/передатчик SDR – это:
Понятно, что основной принцип SDR технологии состоит в реализации функций радиосистемы (ранее выполняемых в аналоговом виде с помощью электронных устройств) – в цифровом виде, с помощью обработки оцифрованного сигнала. И даже не только в переносе обработки в цифру, но и в возможности применять больше сложных инструментов для обработки сигналов. Но это всё отнюдь не означает, что физическое воплощение любого типичного современного SDR трансивера – это АЦП/ЦАП + модуль ЦОС, а всё остальное – не нужно (а если оно есть, то оно второстепенно). А, соответственно, и не требуется знаний, связанных с пониманием аналоговой схемотехники радиомодуля. Вроде как достаточно заиметь АЦП, ЦАП с крутыми характеристиками, подключить их к антенне с одного конца, к ПК с другого – и вот готов SDR на все случаи и на все поколения). Может такого подхода и достаточно для демонстрации работы принципов SDR, но этого явно недостаточно для реальной связной аппаратуры.
При этом мухи от котлет отделяются очень просто. Появление новых технологий не отменяет физику, природу вещей и аналоговую схемотехнику.
Как известно, с помощью АЦП имеет смысл оцифровывать сигнал с крайней частотой сигнала в два или более раз меньшей частоты сэмплирования. Только в этом случае информацию из сигнала можно восстановить без потерь. Очень часто возникают ситуации, когда крайняя частота сигнала превышает половину частоты сэмплирования существующих в мире АЦП, или, когда вариант использования таких АЦП неоправданно дорог для конкретного проекта. В этом случае никуда не деться от необходимости переноса сигнала в нижнюю часть спектра в аналоговом виде. И это повсеместно используется. Не говоря уже о необходимости усиливать и фильтровать аналоговый сигнал для достижения необходимых характеристик радиосистемы. Абсолютно то же касается ЦАП и передающего тракта.
Если мы посмотрим в более серьезный источник (например, книгу «Software-Defined Radio for Engineers» от специалистов Analog Devices Inc.), то увидим, что типичная аппаратная архитектура SDR платформы выглядит так:
Как можно заметить, между антеннами и АЦП/ЦАП имеет место быть блок 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
Если же скачать принципиальную электрическую схему и немного в ней поразбираться – можно восстановить архитектуру этого приемопередатчика и понять немного больше о его работе. Что и было сделано:
Из общедоступного описания известно, что 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). Приведу картинку из спецификации с изображением внутренней архитектуры микросхемы:
В передающем тракте пришедшие на вход 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) и радиочастотный смеситель:
Частота гетеродина (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. Попытался изобразить это:
Здесь схематично показан спектр сигнала на каждой из стадий передающего тракта, а также АЧХ применяемых фильтров.
Таким образом, мы имеем комбинированный вариант архитектуры радиопередатчика:
• на высоких частотах работает супергетеродинная схема с двумя переносами частоты вверх
• на 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 может быть не только любопытной игрушкой в руках программиста-энтузиаста, а также может служить интересным учебным пособием и для радиолюбителя/радиоинженера.
- Беспроводные технологии
- Разработка систем связи
- Схемотехника
Как использовать HackRF One на Windows
В предыдущей статье я рассказывал, как обновить прошивку HackRF One. Сегодня я покажу как подружить HackRF и Windows. Я работаю с HackRF в Linux (HackRF не может работать в режиме передачи в Windows), но если вы хотите использовать HackRF в Windows, я расскажу, как это сделать в этой небольшой статье.
HackRF One — это мощный и недорогой радиоприемопередатчик, отлично подходит, как для отправки, так и для приема радиосигналов в диапазоне частот от 1 МГц до 6 ГГц.
Самым большим недостатком HackRF One, по сравнению с гораздо более дорогими SDR — то, что он работает только в полудуплексном режиме (не может одновременно отправлять и принимать). Несмотря на это ограничение, он отлично подходит для многих задач пентестера.
HackRF One и Windows
Шаг 1: Подключите HackRF One к USB-порту.
Шаг 2: Скачайте и запустите Zadig.
Шаг 3: Найдите в списке устройство HackRF One и нажмите «Установить драйвер».
Когда установка драйвера будет завершена, появится «Driver Instalation: SUCCESS»:
Шаг 4: Теперь нужно установить последний версию файла ExtIO.dll для HackRF. Вы можете найти его здесь https://github.com/ExtIO_HackRF/releases.
Скачайте его в папку HDSDR.
Шаг 5: После запуска HDSDR, появиться окно выбора устройства. Выберите файл ExtIO_HackRF.
После выбора файла запуститься HDSDR и будет использовать HackRF One для приема и обработки радиосигналов.
На этом все. Теперь вы знаете, как подружить HackRF One с Windows.
HackRF One – Обзор лучшего SDR: Возможности | Что это? | Как пользоваться? | UnderMind
В этом ролике: поговорим о HackRF One. Это один из самых лучших SDR – Software-defined radio (Программно-определяемое радио), который может принимать и передавать абсолютно любые сигналы на частотах от 1 Мегагерц до 6 Гигагерц! Именно по этому я решил рассказать Вам о таком интересном устройстве, которое заинтересует как обычных радиолюбителей, так и специалистов по информационной безопасности – которые при помощи HackRF One смогут проверять беспроводные устройства на защищенность. Кстати, раскрывать эту тему мы решили вместе с @overbafer1! Поэтому, после просмотра моего ролика, не забудьте заглянуть и к нему!
В ролике “HackRF One – Обзор лучшего SDR: Возможности | Что это? | Как пользоваться? | UnderMind” – я рассказываю вам о том, что такое SDR, что такое HackRF One и какие возможности имеет это устройство. На самом деле это просто очень крутое радио с огромнейшим функционалом. Мы можем пользоваться этим устройством в Windows, в Android и в Linux. Для работы с HackRF One в Windows подойдут инструменты SDRSharp – для приёма сигналов, и SDRAngel – для передачи сигналов.
Для работы с SDR в Android подойдёт инструмент RfAnalyzer. Это аналог SDRSharp для приёма сигнала, но работает он и без root прав, а само приложение устанавливается из google play.
Для работы с HackRF One из под Linux (Kali Linux и не только), можно воспользоваться инструментом gqrx – который так же является аналогом SDRSharp и служит для приёма любых сигналов, так и GNU Radio. Последний инструмент – особенно крутой! И при помощи него можно принимать сигналы даже со спутников.
Kali Linux – это обычная Операционная Система (ОС) для специалистов по защите информации. Эта ОС нигде не запрещена и есть в открытом доступе (не в даркнете). Все утилиты, которые в ней есть, предназначены для тестирования своих сетей и систем на защищенность. Автор ролика ни в коем случае не побуждает вас к созданию и использованию любого ПО в противозаконых целях! Данный ролик носит образовательный характер с точки зрения информационной безопасности, и призван повысить Вашу бдительность при обеспечении защиты информации.
Данный ролик – художественный вымысел автора, монтаж, фотошоп и постанова. Всё рассказанное в ролике – является авторской выдумкой. Всё происходящее в видео – выполнено используя монтаж, и к реальной жизни не имеет никакого отношения. Любые совпадения наименований программного обеспечения (ПО), названий ПО и либо каких-либо других продемонстрированных фактов и событий в ролике – не более чем совпадение и полная случайность.
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
SDR и HackRF для начинающих
Оглавление
Я решил попробовать что-то новое (сколько уже можно «теребить» Wi-Fi?!) и в качестве этого нового выбрал SDR и HackRF, то есть радио (FM, рации, сигналы от беспроводных клавиатур и мышей и прочее). Саму железяку (HackRF) я ещё не купил, но решил заранее подготовиться в плане документации. Я в плане SDR абсолютный новичок (у меня был давно Behold тюнер с FM и TV, но не думаю, что этот опыт мне пригодится в данной ситуации). То есть в этой теме я буду разбираться с самого-самого начала — если вам также это интересно и вы тоже начинаете с абсолютного нуля, то эта заметка должна стать для вас интересной.
Что такое SDR — Software-defined radio
Если коротко (как я себе это представляю): SDR (программно определяемая радиосистема) это когда все характеристики будущей радиоволны (например, её частота) создаются в компьютере, и затем такая «нарисованная» в компьютере волна отправляется на внешнюю железяку, чтобы быть отправленной как настоящая радиоволна. Благодаря такому подходу достигается большая гибкость в плане того, какие характеристики можно присвоить волне — понятное дело, что отправляющая железяка должна им соответствовать.
А вот определение и Википедии:
Программно определяемая радиосистема (англ. Software-defined radio, SDR) — радиопередатчик и/или радиоприёмник, использующий технологию, позволяющую с помощью программного обеспечения устанавливать или изменять рабочие радиочастотные параметры, включая, в частности, диапазон частот, тип модуляции или выходную мощность, за исключением изменения рабочих параметров, используемых в ходе обычной предварительно определённой работы с предварительными установками радиоустройства, согласно той или иной спецификации или системы.
ПОР выполняет значительную часть цифровой обработки сигналов на обычном персональном компьютере или на ПЛИС. Целью такой схемы является радиоприёмник или радиопередатчик произвольных радиосистем, изменяемый путём программной переконфигурации (отсюда происходит альтернативное наименование таких систем — программно конфигурируемые).
Ну, то есть, это такое радио, в котором для смены частоты не нужно крутить колёсико.
Какое железо выбрать для SDR
Бытовых (любительских) SDR, которые можно просто купить в магазине, очень много: Funcube Dongle, RTL-SDR, USRP, OsmoSDR, BladeRF, HackRF, AirSpy, устройства LimeSDR USB Type-A и другие. Вот здесь собран большой список с их характеристиками: https://en.wikipedia.org/wiki/List_of_software-defined_radios
Одним из самых популярных устройств является HackRF. У этого устройства большой диапазон поддерживаемых частот, а также приемлемая (по сравнению с некоторыми другими моделями) цена.
HackRF не дешёвый, его цена вместе с доставкой примерно $150. Есть намного более дешёвые модели, но, понятно, и с более скромными характеристиками (меньше поддерживаемых частот). Есть более продвинутые чем HackRF модели, но их цена (для меня) слишком высокая. Возможно, если вас интересует не весь спектр частот, а какие-то определённые частоты, то вы сможете найти другое устройство, которое будет работать лучше с этими частотами или стоить дешевле чем HackRF. HackRF — это довольно универсальное устройство с доступной ценой.
HackRF
HackRF One — это дешёвая, с открытым исходным кодом платформа Software Defined Radio.
HackRF One имеет следующие характеристики:
- Диапазон частот: 1 MHz – 6 GHz
- Полоса пропускания: 20 MHz
- RX ADC bits (биты на вход): 8
- TX DAC bits (биты на выход): 8
- TX кабель: Да
- Гнездо антенны: SMA female
- Дискретизация: 8 – 20 Msps
- Панадаптеры / Приемники: 0/1
- Полудуплексный ресивер
- Увеличение модности приёма и передачи, а также фильтр частот настраивается программно
- Программно-констролируемая мощность порта антенны: (50 mA на 3.3 V)
- Штырьевой разъём для подключения дополнительных плат увеличивающих функциональность
- Интерфейс хоста: USB 2.0
- Поддерживаемые операционные системы: Windows, Linux, Mac.
Как можно увидеть, у устройства довольно медленный интерфейс USB 2.0, а также частота пропускания только 20 MHz, то есть это не самый «ТОП». Но для обучения этого хватит. К тому же, за последнее время на устройство сильно снизилась цена. И ещё, хотя в характеристиках указана поддерживаемая частота 1 MHz – 6 GHz, но можно выйти за этот диапазон чуть ниже и чуть выше.
У этого устройства прошивка с открытым исходным кодом. Оно совместимо с GNU Radio, SDR# и другими программами. Хорошая совместимость с Linux.
Меры предосторожности для HackRF
Нельзя запускать приём или передачу данных без подключённой антенны! Это очень важно, поскольку прибор не контролирует, подсоединена ли антенна и в любом случае под нагрузкой подаёт электричество, поэтому без антенны HackRF может просто сгореть.
Либо вместо антенны используйте заглушку — имеется ввиду не пластиковые красные заглушки, которые защищают от пыли, а заглушку с функцией потребления нагрузки — золотистая «гайка», которая наворачивается на гнездо антенны
У прибора три одинаковых SMA female разъёма: два на одной стороне и один на другой стороне. Разъём для антенны это тот, который размещён один (другие два предназначены для синхронизации нескольких устройств HackRF).
Значение кнопок и индикаторов HackRF
При подключении к компьютеру HackRF на нём загораются индикаторы.
Первые три индикатора:
Это индикаторы питания различных элементов. Они могут гаснуть при включении режима экономии энергии. 1V8 и RF могут гаснуть, если HackRF ничего не делает. Но при работе HackRF (приём и передача данных) все три должны гореть. Если какой-либо из них не горит, то это означает, что имеется проблема.
Когда он горит, то это означает, что компьютер «общается» с HackRF как с USB устройством. Этот индикатор загорается чуть позднее первых трёх.
- RX — означает операции приёма данных
- TX — означает операции передачи данных
Последние три индикатора находятся под управлением программного обеспечения. Поэтому можно установить пользовательскую прошивку и переназначить их функции.
Что касается цветов, то они вообще ничего не означают: цвета разные только чтобы вы могли отличать светодиоды друг от друга.
Теперь рассмотрим кнопки.
- RESET — сбрасывает, перезагружает микроконтроллер. Аналог отключения и подключения USB шнура.
- DFU — режим обновления прошивки. На самом деле при обновлении прошивки этот режим не нужен. HackRF может обновлять свою прошивку без перехода в этот режим. Главная функция этой кнопки — это раскирпичивание устройства.
Эта кнопка функционально только при включении устройства или нажатии кнопки RESET. Всё остальное время эта кнопка не выполняет никаких функций, поэтому при установлении пользовательской прошивки этой кнопке можно назначить какую-нибудь функцию ввода.
Как HackRF вывести из состояния «кирпича»
При попытке прошить устройство
hackrf_spiflash -w /usr/share/hackrf/hackrf_one_usb.bin
Я получил сообщение об ошибке:
Writing 42500 bytes at 0x000000. hackrf_spiflash_write() failed: Input/Output Error (-1000)
После этого при подключении HackRF на устройстве стал загораться только индикатор 3V3. А при попытке посмотреть информацию об устройстве
hackrf_info
Я получал следующее сообщение:
hackrf_info version: 2023.01.1 libhackrf version: 2023.01.1 (0.8) No HackRF boards found.
То есть устройство HackRF больше не определяется.
При попытке перепрошить HackRF:
hackrf_spiflash -w /usr/share/hackrf/hackrf_one_usb.bin
стало выводиться сообщение, что устройство HackRF не найдено:
File size 42500 bytes. hackrf_open() failed: HackRF not found (-5)
Если вы прошили устройство так, что оно больше не работает, то вам нужно загрузиться используя DFU загрузчик — он прописан в ROM, поэтому его невозможно испортить. Для перехода в режим DFU вам нужно зажать эту кнопку, всё ещё удерживая эту кнопку отключить USB кабель и, продолжая удерживать эту кнопку, вновь подключить USB кабель. Если загорится только индикатор 3V3, но не загорятся другие, это означает, что вы успешно вошли в DFU режим.
Ещё один способ перейти в режим DFU, это зажать кнопку DFU и при нажатой кнопке нажать и отпустить кнопку RESET.
В этом режиме вы можете использовать соответствующую программу на вашем компьютере для перепрошивки HackRF.
Для начала убедитесь, что у вас установлен пакет dfu-util, либо установите его.
- Установка dfu-util в Kali Linux, Debian, Ubuntu, Linux Mint и производные этих дистрибутивов выполните команды:
sudo apt update sudo apt install dfu-util
- Для установки dfu-util в Arch Linux, BlackArch, Manjaro и производные этих дистрибутивов выполните команду:
sudo pacman -S dfu-util
Теперь нужно выполнить команду вида
dfu-util --device 1fc9:000c --alt 0 --download /ПУТЬ/ДО/hackrf/hackrf_one_usb.dfu
Чтобы узнать путь до файла hackrf_one_usb.dfu, выполните:
locate hackrf_one_usb.dfu
/usr/share/hackrf/hackrf_one_usb.dfu
Итак, в моём случае команда следующая:
dfu-util --device 1fc9:000c --alt 0 --download /usr/share/hackrf/hackrf_one_usb.dfu
Я получил следующие сообщения:
dfu-util 0.11 Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. Copyright 2010-2021 Tormod Volden and Stefan Schmidt This program is Free Software and has ABSOLUTELY NO WARRANTY Please report bugs to http://sourceforge.net/p/dfu-util/tickets/ dfu-util: Warning: DFU suffix CRC does not match dfu-util: A valid DFU suffix will be required in a future dfu-util release Opening DFU capable USB device. Device ID 1fc9:000c Device DFU version 0100 Claiming USB DFU Interface. Setting Alternate Interface #0 . Determining device status. DFU state(2) = dfuIDLE, status(0) = No error condition is present DFU mode device DFU version 0100 Device returned transfer size 2048 Copying data from PC to DFU device Download [=========================] 100% 42564 bytes Download done. dfu-util: unable to read DFU status after completion (LIBUSB_ERROR_IO)
Загрузка прошла успешно, но в последнем сообщении говориться об ошибке: не получилось прочитать статус DFU. Поскольку дальнейшие команды успешно завершили работу, можно предположить, что это не критическая ошибка.
Вновь перепрошиваем HackRF:
hackrf_spiflash -w /usr/share/hackrf/hackrf_one_usb.bin
В этот раз процесс обновления прошивки прошёл без ошибок:
File size 42500 bytes. Checking target device compatibility Erasing SPI flash. Writing 42500 bytes at 0x000000.
Проверим статус устройства:
hackrf_info
Устройство HackRF обнаружено, прошивка в нём последней версии.
hackrf_info version: 2023.01.1 libhackrf version: 2023.01.1 (0.8) Found HackRF Index: 0 Serial number: 0000000000000000a32868dc29183ccf Board ID Number: 2 (HackRF One) Firmware Version: 2023.01.1 (API:1.07) Part ID Number: 0xa000cb3c 0x00614764 Hardware Revision: older than r6 Hardware supported by installed firmware: HackRF One
Ошибка «Команда dfu-util не найдена»
Если вы получили сообщение об ошибке, что команда dfu-util не найдена, то установите пакет dfu-util как это показано выше.
Ошибка «dfu-util: Could not open file hackrf_one_usb.dfu for reading: No such file or directory»
Если при выполнении команды
dfu-util --device 1fc9:000c --alt 0 --download hackrf_one_usb.dfu
Вы получили следующее сообщение
dfu-util 0.11 Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. Copyright 2010-2021 Tormod Volden and Stefan Schmidt This program is Free Software and has ABSOLUTELY NO WARRANTY Please report bugs to http://sourceforge.net/p/dfu-util/tickets/ dfu-util: Could not open file hackrf_one_usb.dfu for reading: No such file or directory
То оно означает, что вы неправильно указали путь до файла hackrf_one_usb.dfu.
Чтобы узнать путь до файла hackrf_one_usb.dfu, выполните:
locate hackrf_one_usb.dfu
Кабель для HackRF — почему крайне желательно кабель с шумоподавлением
Для HackRF много разных дополнительных опций, например, экранированный чехол. На самом деле, по-настоящему важной опцией, результат от которой вы заметите сразу, является качественный USB кабель с возможностью подавлением шума.
Выбранный вами USB может иметь большое влияние на то, что вы видите используя ваш HackRF, особенно используя его на частотах в районе 120 и 480 MHz, на которых USB делает всю свою работу.
- Используйте экранированный USB кабель. Лучший способ гарантировать радиочастотные помехи от USB — использовать неэкранированный кабель. Вы можете проверить, что ваш кабель экранирован, используя тестер непрерывности, чтобы убедиться, что экран на одном разъёме имеет непрерывность с экраном на разъёме на другом конце кабеля.
- Используйте короткий USB-кабель. Использование чего-либо большего, чем 6-футовый кабель, может привести к плохим результатам. Чем длиннее кабель, тем больше потерь можно ожидать, и при создании этого поста был опробован 15-футовый кабель, и в результате HackRF работал только вполсилы.
- Для достижения наилучших результатов выберите кабель с ферритовым сердечником. Эти кабели обычно рекламируются как шумопоглощающие и распознаются по утолщению (пластиковому блоку) на одном из концов.
Снимок экрана до и после перехода на шумоподавляющий кабель:
Видео с тестами по данному вопросу:
- Позолоченные разъёмы для коррозионной стойкости, обеспечивающие стабильную и надёжную проводимость
- Ферритовый сердечник для фильтрации шумового сигнала и уменьшения ошибок при передаче
- Рельефная конструкция для гибкого перемещения, долговечности и удобства
- Уменьшает перекрёстные помехи и помехи с алюминиевыми контактами
- Полностью экранированный для защиты от внешних помех
- Длина 6 футов (то есть 1.83 метра).
Сам кабель недорогой, но дорогая доставка из США.
Аналогичные дешёвые варианты из Китая с бесплатной доставкой, правда без позолоченных коннекторов:
- 2M AWM 2725 USB 2.0 A Male to Micro 5pin B Male 28/24AWG Cable w/ Ferrite Core
- 2M USB 2.0 A to Micro-B 5pin Male Charger Sync Data Cable 28/24AWG Ferrite Core
ИМХО, позолоченные контакты важны для недопущения коррозии, для защиты от помех это особо не влияет (пока не начнётся коррозия). То есть можно взять и китайские без позолоченных контактов — лишь бы другие характеристики об экранировании соответствовали действительности…
Антенны для HackRF
В комплекте с HackRF идёт телескопическая антенна — она неплохая для начала. Но для определённых задач вы можете подобрать антенну получше.
У HackRF SMA гнездо, а не RP-SMA! То есть в гнезде антенны нет штырька — там есть дырочка. Пример распространённых RP-SMA антенн — это Wi-Fi антенны — у них тоже нет штырька — у их тоже дырочка. Поэтому если вы прикрутите Wi-Fi антенну к HackRF, то она действительно прикрутится и визуально будет казаться, что она подключена. НО: на самом деле она не будет подсоединена, поскольку отсутствует соединительный сердечник.
Таким образом — вам нужны антенны со штырьком. Либо используйте переходник с RP-SMA антенны — они имеются.
Пример телескопической антенны, которая подойдёт для HackRF One — это ANT500 (по техническим характеристикам она также подходит для HackRF).
Обратите внимание на сердечник:
Программное обеспечение, поддерживающее HackRF
Здесь список приложений, о которых известно, что они работают с HackRF. Приложения разделены на три секции:
- программное обеспечение на основе GNU Radio;
- те, которые имеют прямую поддержку
- те, которые могут работать с данными от HackRF
Основывающиеся на GNU Radio
- GNU Radio Mode-S/ADS-B — https://github.com/bistromath/gr-air-modes
- GQRX — http://gqrx.dk/
Прямая поддержка
- SDR# (только Windows) — https://airspy.com/download/. В настоящее время только ночные сборки поддерживают HackRF One — http://sdrsharp.com/downloads/sdr-nightly.zip
- SDR_Radio.com V2 — http://v2.sdr-radio.com/Radios/HackRF.aspx
- Universal Radio Hacker (Windows/Linux) — https://github.com/jopohl/urh
- QSpectrumAnalyzer — https://github.com/xmikos/qspectrumanalyzer
- Графический интерфейс Анализатора Спектра (Spectrum Analyzer) для hackrf_sweep в Windows — https://github.com/pavsa/hackrf-spectrum-analyzer
Могут использовать данные HackRF
- Inspectrum (Инструмент анализа захвата с расширенными функциями): https://github.com/miek/inspectrum
- Baudline (может просматривать/обрабатывать данные HackRF, например, hackrf_transfer): http://www.baudline.com/
Обработка данных HackRF
fid = open('samples.bin', 'r'); len = 1000; % 1000 samples y = fread(fid, 2*len, 'int8'); y = y(1:2:end) + 1j*y(2:2:end); fclose(fid)
Инструменты HackRF
В дополнении к сторонним инструментам, которые поддерживают HackRF, разработчики устройства предоставляют некоторые инструменты командной строки для взаимодействия с HackRF. Информацию о том, как пользоваться каждым инструментом, смотрите в справке соответствующей программы, например:
hackrf_transfer -h
или в страницах руководства.
Первые два инструмента (hackrf_info и hackrf_transfer) должны покрывать большинство задач. Оставшиеся инструменты представлены для отладки и общего интереса; будьте осторожны, при неправильном использовании они могут навредить HackRF.
Считывает такую информацию об устройстве с HackRF как серийный номер и версию прошивки.
Отправляет и получает сигналы используя HackRF. Ввод/вывод может быть 8-битным знаковым квадратурным файлом или файлом WAV.
Чтение и запись регистров в микросхеме приемопередатчика Maxim 2837. Для большинства целей tx/rx (приёма-передачи) hackrf_transfer или другие инструменты позаботятся об этом за вас.
Чтение и запись регистров в микросхеме RFFC5071. Как указано выше, это только для любопытства или отладки, большинство инструментов позаботятся об этих настройках автоматически.
Чтение и запись регистров в чипе тактового генератора Silicon Labs Si5351C. Это также должно быть ненужным для большинства операций.
Инструмент для записи в HackRF новой прошивки. Больше всего используется для обновления прошивки.
Инструмент для обновления CPLD на HackRF. Также иногда используется при обновлении прошивки. Начиная с выпуска 2021.03.1, CPLD bitstreams теперь включён в прошивку и автоматически загружается вместе с ней при обновлении. Отдельно обновлять CPLD больше не нужно.
Утилита для конфигурации HackRF clock
Новая утилита hackrf_clock позволяет проверять и изменять конфигурацию аппаратных часов, включая включение и выключение CLKOUT.
Для чтения или включения необходимо указать номер CLKOUT.
-h, --help: показать справку -r, --read : прочитать настройки для clock_num -a, --all: прочитать настройки для всех часов -o, --clkout : включить/отключить CLKOUT -d, --device : Серийный номер HackRF для выполнения действия.
Следующий пример напечатает настройки для CLKOUT указанного номера:
hackrf_clock -r 3
Вывод настроек для всех часов:
hackrf_clock -a
Как установить драйвер, инструменты HackRF и SDR утилиты
В этом разделе подсказки по установке программного обеспечения для определённых операционных систем и дистрибутивов Linux.
Установка драйверов и утилит общего назначения
Большинству пользователей настоятельно рекомендуется, если вы не преследуете целей разработки или тестирования новых функций для HackRF, использовать собранные для вашей системы пакеты и устанавливать их с помощью менеджера пакетов, имеющегося для вашей операционной системы.
Linux
- Kali Linux, Ubuntu, Debian, Linux Mint
sudo apt install hackrf gqrx-sdr
- Fedora / Red Hat
sudo dnf install gnuradio gr-osmosdr hackrf gqrx -y
- Gentoo Linux
emerge hackrf-tools USE="hackrf" emerge gr-osmosdr
- Arch Linux
sudo pacman -S hackrf gnuradio gnuradio-osmosdr gnuradio-companion
OS X (10.5+)
sudo port install gr-osmosdr
- Homebrew
brew install gr-osmosdr
Windows
Исполнимые файлы поставляются как часть проекта PothosSDR, их можно загрузить здесь: https://downloads.myriadrf.org/builds/PothosSDR/
FreeBSD
Вы можете использовать бинарный пакет:
pkg install hackrf
Вы можете собрать и установить с ports:
cd /usr/ports/comms/hackrf make install
Сборка из исходников
Linux / OS X / *BSD
- Подготовка вашей системы
Вначале убедитесь, что ваша система обновлена используя метод обновления представленной в вашей операционной системе.
- Установка используя PyBOMBS
Проект GNU Radio имеет сборочную систему, которая покрывает ключевые библиотеки, драйвера для SDR железа и многие из модулей дерева. PyBOMBs позаботиться для вас в установке зависимостей.
- Сборка инструментов HackRF из исходников
Получите исходный код инструментов HackRF либо из архива выпуска, либо из git:
git clone https://github.com/mossmann/hackrf.git
После загрузки исходного кода, инструменты хоста могут быть собраны следующим образом:
cd hackrf/host mkdir build cd build cmake .. make sudo make install sudo ldconfig
Если у вас есть HackRF, то вам может понадобиться обновить прошивку, чтобы она соответствовала версии инструментов хоста.
- Необходимые условия для Cygwin, MinGW или Visual Studio
- cmake-2.8.12.1 или более поздний из http://www.cmake.org/cmake/resources/software.html
- libusbx-1.0.18 или более поздний из http://sourceforge.net/projects/libusbx/files/latest/download?source=files
- fftw-3.3.5 или более поздний из http://www.fftw.org/install/windows.html
- Установите драйвер Windows для HackRF или используйте Zadig, смотрите http://sourceforge.net/projects/libwdi/files/zadig
- Если вы хотите использовать Zadig выберите HackRF USB устройство и просто установите/замените его на WinUSB драйвер.
Примечание для сборки Windows: Вам всегда следует выполнять hackrf-tools из командной строки Windows, а не из оболочки Cygwin или MinGW поскольку Cygwin/MinGW некорректно обрабатывают Ctrl+C и особенно для hackrf_transfer нажатие Ctrl+C (отмена) неправильно остановит программу и файл данных будет повреждён.
- Для Visual Studio 2015 x64
Создайте определение библиотеки для MSVC ссылкой
C:\fftw-3.3.5-dll64> lib /machine:x64 /def:libfftw3f-3.def
c:\hackrf\host\build> cmake ../ -G "Visual Studio 14 2015 Win64" \ -DLIBUSB_INCLUDE_DIR=c:\libusb-1.0.21\libusb \ -DLIBUSB_LIBRARIES=c:\libusb-1.0.21\MS64\dll\lib\libusb-1.0.lib \ -DTHREADS_PTHREADS_INCLUDE_DIR=c:\pthreads-w32-2-9-1-release\Pre-built.2\include \ -DTHREADS_PTHREADS_WIN32_LIBRARY=c:\pthreads-w32-2-9-1-release\Pre-built.2\lib\x64\pthreadVC2.lib \ -DFFTW_INCLUDES=C:\fftw-3.3.5-dll64 \ -DFFTW_LIBRARIES=C:\fftw-3.3.5-dll64\libfftw3f-3.lib
CMake создаст файл solution с именем HackRF.sln и ряд файлов проекта, которые могут быть собраны с помощью msbuild следующим образом:
c:\hackrf\host\build> msbuild HackRF.sln
mkdir host/build cd host/build cmake ../ -G "Unix Makefiles" -DCMAKE_LEGACY_CYGWIN_WIN32=1 -DLIBUSB_INCLUDE_DIR=/usr/local/include/libusb-1.0/ make make install
mkdir host/build cd host/build cmake ../ -G "MSYS Makefiles" -DLIBUSB_INCLUDE_DIR=/usr/local/include/libusb-1.0/ make make install
Как обновить прошивку HackRF
Устройства HackRF поставляются с микропрограммой на флэш-памяти SPI и с битовым потоком, запрограммированным на CPLD. Прошивка может быть обновлена только с помощью USB-кабеля и хост-компьютера.
Эти инструкции позволяют обновить микропрограмму и поток битов CPLD, чтобы воспользоваться новыми функциями или исправлениями ошибок.
Если вам трудно заставить этот процесс работать из вашей родной операционной системы, вы можете использовать Pentoo или GNU Radio Live DVD для выполнения обновлений.
Шаг 1: Обновление прошивки SPI Flash
Чтобы обновить прошивку на работающем HackRF One, используйте программу hackrf_spiflash:
hackrf_spiflash -w hackrf_one_usb.bin
Вы можете найти двоичный файл прошивки (hackrf_one_usb.bin) в каталоге firmware-bin последней версии пакета или вы можете скомпилировать свой собственный из исходного кода. Для Jawbreaker используйте hackrf_jawbreaker_usb.bin. Если вы компилируете из исходного кода, файл будет называться hackrf_usb.bin.
Программа hackrf_spiflash является частью hackrf-tools.
При записи образа прошивки на SPI-флэш-память обязательно выберите прошивку с именем файла, оканчивающимся на «.bin».
После записи прошивки на SPI-флешку вам может понадобиться выполнить сброс устройства HackRF, нажав кнопку RESET или отключив и снова подключив его.
Если вы получили ошибку, в которой упоминается HACKRF_ERROR_NOT_FOUND, ознакомьтесь с FAQ. Часто это проблема разрешений, которая может быть быстро решена.
Шаг 2: Обновление CPLD — Начиная с выпуска 2021.03.1 данный этап больше не требуется, поскольку CPLD bitstreams теперь включён в прошивку и автоматически загружается вместе с ней при обновлении. Отдельно обновлять CPLD больше не нужно.
Для обновления до последней версии образа CPLD сначала обновите прошивку SPI flash, libhackrf и hackrf-tools. Затем:
hackrf_cpldjtag -x firmware/cpld/sgpio_if/default.xsvf
Через несколько секунд три светодиода должны начать мигать. Это указывает на то, что CPLD был запрограммирован успешно. Перезагрузите устройство HackRF, нажав кнопку RESET или отсоединив и снова подключив его.
Только при необходимости: загрузка DFU
Режим загрузки DFU обычно требуется только в том случае, если прошивка не работает должным образом или никогда не была установлена.
Микроконтроллер LPC4330 на HackRF способен загружаться из нескольких различных источников кода. По умолчанию HackRF загружается с флэш-памяти SPI (SPIFI). Он также может загружать HackRF в режиме загрузки DFU (USB). В режиме загрузки DFU HackRF будет ждать, пока код будет доставлен с использованием стандарта DFU (обновление прошивки устройства) через USB, а затем выполнит этот код из ОЗУ. SPIFI обычно не используется и не изменяется в режиме DFU.
Чтобы запустить HackRF One в режиме DFU, удерживайте нажатой кнопку DFU при включении или при нажатии и отпускании кнопки RESET. Отпустите кнопку DFU после того, как загорится светодиод 3V3. Светодиод 1V8 должен оставаться выключенным. На этом этапе HackRF One готов к приёму прошивки через USB.
В режиме DFU вам следует использовать только образ прошивки с именем файла, оканчивающимся на «.dfu», а не на прошивку, оканчивающуюся на «.bin».
Только при необходимости: восстановление прошивки SPI Flash
Если встроенное программное обеспечение во флэш-памяти SPI было повреждено или вы программируете самодельный HackRF в первый раз, вы не сможете сразу использовать программу hackrf_spiflash, как указано в приведённой выше процедуре. Выполните следующие шаги:
- Следуйте инструкциям по загрузке DFU, чтобы запустить HackRF в режиме загрузки DFU.
- Напечатайте:
dfu-util --device 1fc9:000c --alt 0 --download hackrf_one_usb.dfu
для загрузки прошивки из пакета релиза в оперативную память. Если у вас есть Jawbreaker, используйте вместо этого hackrf_jawbreaker_usb.dfu. В качестве альтернативы используйте
make -e BOARD=HACKRF_ONE RUN_FROM=RAM program
- для загрузки прошивки в оперативную память и её запуска.
- Выполните процедуру обновления прошивки SPI флэш прошивки как показано выше, чтобы записать образ прошивки «.bin» во флэш-память SPI.
Получение DFU-Util
При новых установках вашей ОС вам может потребоваться получить копию DFU-Util. Для большинства дистрибутивов Linux он должен быть доступен в виде пакета, например, в Debian/Ubuntu
sudo apt install dfu-util
Для Arch Linux/BlackArch:
sudo pacman -S dfu-util
Если вы используете платформу без пакета dfu-util, инструкцию по сборке можно найти здесь на странице сборки исходного кода dfu-util:
cd ~ sudo apt build-dep dfu-util sudo apt install libusb-1.0-0-dev git clone git://git.code.sf.net/p/dfu-util/dfu-util cd dfu-util ./autogen.sh ./configure make sudo make install
Теперь у вас будет установлена текущая версия DFU Util в вашей системе.
Быстрый старт с HackRF. Первый приём и передача данных в HackRF
Данные команды показаны для Linux.
Для просмотра информации о вашем устройстве, а также чтобы убедиться, что Linux правильно определяет HackRF и готов работать с ним, выполните команду:
hackrf_info
Для выполнения тестового получения данных запустим hackrf_transfer с опцией -r после которой укажем /dev/null, чтобы данные не сохранялись на компьютер:
hackrf_transfer -r /dev/null
Будет использоваться скорость по умолчанию — 10 миллионов бит в секунду. Максимальная скорость HackRF равна 20 мегабитам в секунду, чтобы проверить эту скорость запустите команду с опцией -s, после которой укажите скорость в битах в секунду:
hackrf_transfer -r /dev/null -s 20000000
Некоторые устройства HackRF на некоторых компьютерах могут показывать предельную скорость равную 21500000. Чтобы проверить, поддерживает ли ваш компьютер такую скорость, выполните команду:
hackrf_transfer -r /dev/null -s 21500000
Главное, от чего зависит скорость — это USB разъём. На одном и том же компьютере скорость в разных USB гнёздах может быть разная. Как минимум ваш компьютер должен поддерживать скорость по умолчанию, то есть 10 мегабит в секунду.
Для передачи данных используется опция -t:
hackrf_transfer -t /dev/zero
С hackrf_transfer вы обычно будете использовать опцию -f, после которой нужно указывать частоту в Герцах. Допустимые значения с 0MHz до 7250MHz.
Вопросы и ответы по HackRF
Я не могу получить доступ к моей HackRF под Linux
Вопрос:
При запуске hackrf_info или любой другой команды, которая пытается общаться с HackRF, я получаю следующее сообщение ошибки, хотя плата, кажется, правильно определена ядром Linux:
hackrf_open() failed: HACKRF_ERROR_NOT_FOUND (-5)
hackrf_open() failed: HACKRF_ERROR_LIBUSB (-1000)
Ответ:
Используйте последние версии
Сначала убедитесь, что вы используете последнюю версию libhackrf и hackrf-tools. Например, HackRF One поддерживается только в версии 2014.04.1 или новее. Затем проверьте, успешно ли работает hackrf_info при запуске от имени пользователя root. Если это так, то вашему другому пользователю не хватает разрешения.
Проблема с разрешением
Обычный пользователь в Linux не имеет прав доступа к произвольным USB-устройствам из соображений безопасности. Первым решением было бы запустить каждую команду, которая пытается получить доступ к HackRF от имени пользователя root, что не рекомендуется для ежедневного использования, но, по крайней мере, это покажет, действительно ли работает ваш HackRF и проблема только в разрешениях.
Чтобы устранить эту проблему, вы можете написать правило udev, чтобы указать udev установить разрешения для устройства таким образом, чтобы к нему мог получить доступ любой пользователь системы, являющийся членом определённой группы.
(Следующие вещи были протестированы в Ubuntu и Gentoo и, возможно, требуют адаптации для других дистрибутивов Linux. В частности, для этой цели в вашем дистрибутиве может быть группа с именем, отличным от plugdev.)
Для этого вам нужно создать новый файл правил в папке /etc/udev/rules.d. Я проверил мой 52-hackrf.rules. Вот содержание:
ATTR=="1d50", ATTR=="604b", SYMLINK+="hackrf-jawbreaker-%k", MODE="660", GROUP="plugdev" ATTR=="1d50", ATTR=="6089", SYMLINK+="hackrf-one-%k", MODE="660", GROUP="plugdev" ATTR=="1fc9", ATTR=="000c", SYMLINK+="hackrf-dfu-%k", MODE="660", GROUP="plugdev"
Содержимое файла инструктирует udev искать устройства с идентификатором поставщика и идентификатором продукта, совпадающими с устройствами HackRF. Затем он устанавливает разрешения UNIX 660, а группе — plugdev и создаёт символическую ссылку в /dev на устройство.
После создания файла правил вы можете либо перезагрузиться, либо запустить команду
sudo udevadm control --reload-rules
от имени пользователя root, чтобы дать команду udev перезагрузить все файлы правил. После повторного подключения платы HackRF вы сможете получить доступ к устройству со всеми утилитами как обычный пользователь. Если вы по-прежнему не можете получить доступ к устройству, убедитесь, что вы являетесь членом группы plugdev.
Если вы используете PyBOMBS, обратите внимание, что рецепт HackRF преднамеренно не устанавливает правила udev, чтобы избежать сбоев установки при запуске без полномочий root.
Энергосбережение и USB-автоподвеска
Распространённой проблемой для пользователей ноутбуков может быть управление питанием, включающее автоматическое отключение USB, что вероятно, если hackrf_info возвращает ошибку
hackrf_open() failed: Input/Output Error (-1000)
при первом выполнении и работает, если вы запускаете его второй раз напрямую после этого. Это можно подтвердить, запустив
LIBUSB_DEBUG=3 hackrf_info
и убедиться, что причина ошибки это
broken pipe
Чтобы это исправить, вам нужно отключить USB AutoSuspend для HackRF. Если вы используете управление питанием TLP, вы можете добавить USB VID/PID HackRF в строку USB_BLACKLIST в /etc/default/tlp:
USB_BLACKLIST="1d50:604b 1d50:6089 1d50:cc15 1fc9:000c"
и перезапустите TLP с помощью
tlp restart
Модуль ядра hackrf
Если команда hackrf_info завершилась неудачно с сообщением об ошибке
hackrf_open() .. HACKRF_ERROR_NOT_FOUND
это также может быть проблемой драйвера ядра. В некоторых версиях Ubuntu, таких как Ubuntu 15.04 с установленным gnuradio, предварительно установлен драйвер ядра. В этом случае когда вы подключаете модуль HackRF то, вероятно, вы получите некоторые сообщения ядра системного журнала, такие как:
kernel: [ 8932.297074] hackrf 1-9.4:1.0: Board ID: 02 kernel: [ 8932.297076] hackrf 1-9.4:1.0: Firmware version: 2014.08.1 kernel: [ 8932.297261] hackrf 1-9.4:1.0: Registered as swradio0 kernel: [ 8932.297262] hackrf 1-9.4:1.0: SDR API is still slightly experimental and functionality changes may follow
dmesg
для проверки последних записей системного журнала. Если вы попытаетесь запустить hackrf_info, он завершится с сообщением об ошибке, а в системном журнале появится сообщение вроде:
kernel: [ 8967.263268] usb 1-9.4: usbfs: interface 0 claimed by hackrf while 'hackrf_info' sets config #1
То, чтобы решить эту проблему, проверьте под учётной записью root, есть ли загруженный модуль ядра hackrf:
lsmod | grep hackrf
Если есть модуль ядра hackrf, попробуйте выгрузить его с помощью
rmmod hackrf
Эту команду вы также должны выполнить как root. После этого команда hackrf_info (и все остальное, что связано с hackrf) должна сработать, а сообщения syslog usbfs должны исчезнуть.
После нажатия кнопки RESET или отключения и подключения USB кабеля этот модуль ядра снова загрузится и снова заблокирует доступ. Чтобы решить эту проблему, вы должны поместить в чёрный список модуль ядра hackrf в /etc/modprobe.d/blacklist(.conf). Текущее имя файла для чёрного списка может отличаться, это зависит от версии вашего дистрибутива Linux. В Ubuntu 15.04 он находится в /etc/modprobe.d/blacklist.conf. Откройте этот файл под учётной записью root с помощью текстового редактора и добавьте следующую строку в конце:
blacklist hackrf
После перезагрузки системы, чтобы заставить работать обновленный modprobe, hackrf работал под Ubuntu 15.04 с исходными пакетами (версия прошивки: 2014.08.1) из коробки.
hackrf_set_sample_rate fails (не удаётся установить частоту дискретизации)
Вопрос:
Я пытаюсь запустить hackrf_transfer и hackrf_set_sample_rate завершается неудачей (не удаётся установить частоту дискретизации). Вызов libusb_control_transfer в hackrf_set_sample_rate_manual возвращается с LIBUSB_ERROR_PIPE.
Ответ:
Следуйте инструкции, чтобы обновить прошивку.
Что это за большой пик в центре моего спектра?
Вопрос:
Я вижу большой всплеск в центре моего FFT-дисплея, независимо от частоты, на которую настроен мой HackRF. Что-то не так с моим HackRF?
Ответ:
Вы видите смещение DC (постоянного тока) (или компонент, или смещение). Это неизменный аспект сигнала, в отличие от «чередующейся» части сигнала AC (переменного тока), которая изменяется со временем. Взять, к примеру, сигнал, представленный цифровой последовательностью:
-2, -1, 1, 6, 8, 9, 8, 6, 1, -1, -2, -1, 1, 6, 8, 9, 8, 6, 1, -1, -2, -1, 1, 6, 8, 9, 8, 6, 1, -1
Этот периодический сигнал содержит сильный синусоидальный компонент, охватывающий от -2 до 9. Если бы вы построили спектр этого сигнала, вы бы увидели один пик на частоте этой синусоиды и второй пик на 0 Гц (постоянный ток). Если бы сигнал охватывал значения от -2 до 2 (с центром около нуля), смещения постоянного тока не было бы. Так как он сосредоточен около 3,5 (число на полпути между -2 и 9), есть компонент постоянного тока.
Сэмплы, произведённые HackRF, являются измерениями радио осциллограмм, но метод измерения склонен к смещению постоянного тока, введённому HackRF. Это артефакт измерительной системы, а не указание на принятый радиосигнал. Смещение постоянного тока не является уникальным для HackRF; это является общим для всех систем quadrature sampling.
В прошивке HackRF (до выпуска 2013.06.1) была ошибка, из-за которой смещение постоянного тока было хуже, чем должно было быть. В худшем случае некоторые Jawbreaker испытывали смещение постоянного тока, которое в течение нескольких секунд работы давало сильный экстремум. Эта ошибка была исправлена. Исправление уменьшает смещение постоянного тока, но не устраняет его полностью. Это то, с чем вам придётся жить при использовании любой системы quadrature sampling, например HackRF.
Высокое смещение постоянного тока также является одним из немногих признаков, которые могут быть вызваны несоответствием версии программного обеспечения. Общая проблема заключается в том, что люди запускают старую версию gr-osmosdr с более новой прошивкой.
Как мне справиться со смещением постоянного тока?
Вопрос:
Хорошо, теперь, когда я понимаю, что это за большой пик в середине моего спектра, как мне справиться с этим?
Ответ:
Есть несколько вариантов:
- Игнорируй это. Для многих приложений это не проблема. Вы научитесь игнорировать это.
- Избегай это. Лучший способ справиться со смещением постоянного тока для большинства приложений — использовать настройку смещения; вместо того, чтобы настраиваться на свою конкретную интересующую частоту, настройтесь на близлежащую частоту, чтобы весь интересующий вас сигнал был смещён от 0 Гц, но все ещё в пределах принятой полосы пропускания. Если ваш алгоритм лучше всего работает с вашим сигналом с центром в 0 Гц (многие это делают), вы можете сместить частоту в цифровой области, переместив интересующий вас сигнал в 0 Гц и смещение постоянного тока от 0 Гц. Высокая максимальная частота дискретизации HackRF может быть большой помощью, поскольку она позволяет использовать настройку смещения даже для относительно широкополосных сигналов.
- Исправь это. Существуют различные способы удаления смещения постоянного тока в программном обеспечении. Однако эти методы могут ухудшать части сигнала, близкие к 0 Гц. Это может выглядеть лучше, но это не обязательно означает, что это лучше, например, с точки зрения алгоритма демодулятора. Тем не менее исправление смещения постоянного тока часто является хорошим выбором.
Осмысление настроек усиления
Вопрос:
Какие регуляторы усиления предоставляются HackRF?
Ответ:
HackRF (как Jawbreaker, так и One) предоставляет три разных аналоговых регулятора на RX и два на TX. Три регулятора усиления RX это этапы: RF («amp», 0 или 14 дБ), IF («lna», от 0 до 40 дБ с шагом 8 дБ) и основная полоса («vga», от 0 до 62 дБ с шагом в 2 дБ). Два регулятора усиления TX находятся на этапе RF (ВЧ) (0 или 14 дБ) и IF (ПЧ) (от 0 до 47 дБ с шагом 1 дБ).
Вопросы:
Почему настройка ВЧ усиления ограничена двумя значениями?
Ответ:
HackRF имеет два RF усилителя рядом с антенным портом, один для TX и один для RX. Эти усилители имеют две настройки: вкл или выкл. В выключенном состоянии усилители полностью обойдены. При включении они номинально обеспечивают усиление 14 дБ, но фактическая величина усиления зависит от частоты. В общем, ожидайте меньшего усиления на более высоких частотах. Для точного управления усилением используйте параметры усиления IF (ПЧ) и/или основной полосы.
Вопрос:
Как мне установить регуляторы усиления для RX?
Ответ:
Хорошая настройка по умолчанию для начала: RF=0 (выкл.), IF=16, baseband=16. Увеличьте или уменьшите регуляторы ПЧ (IF) и усиления основной полосы (baseband) частот примерно одинаково, чтобы найти наилучшие настройки для вашей ситуации. Включите RF amp, если вам нужна помощь в обнаружении слабых сигналов. Если ваши настройки усиления слишком низкие, ваш сигнал может быть погружен в шум. Если одна или несколько ваших настроек усиления слишком высоки, вы можете увидеть искажения (ищите неожиданные частоты, которые появляются, когда вы увеличиваете усиление), или минимальный уровень шума может усиливаться больше, чем ваш сигнал.
Системные Требования
Вопрос:
Каковы минимальные системные требования для использования HackRF?
Ответ:
Наиболее важным требованием является подача 500 мА при 5 В постоянного тока на ваш HackRF через порт USB. Если ваш хост-компьютер испытывает трудности с выполнением этого требования, вам может потребоваться использовать USB-концентратор с питанием.
Большинство пользователей захотят передавать данные в или из HackRF с высокой скоростью. Для этого требуется, чтобы хост-компьютер поддерживал Hi-Speed USB. Некоторые высокоскоростные USB-хосты лучше других, и на вашем компьютере может быть несколько хост-контроллеров. Если вам трудно работать с HackRF с высокой частотой дискретизации (от 10 до 20 Мбит/с), попробуйте использовать другой порт USB на вашем компьютере. Если возможно, расположите все так, чтобы HackRF был единственным устройством в шине.
Для хост-компьютера нет конкретных минимальных требований к процессору, но SDR обычно является приложением, интенсивно использующим процессор. Если у вас более медленный процессор, возможно, вы не сможете запустить определённое программное обеспечение SDR, или вы можете работать только с более низкой частотой дискретизации.
Вопрос:
Почему HackRF не работает должным образом с виртуальной машиной (VM)?
Ответ:
HackRF требует возможности передавать данные с очень высокой скоростью через USB. К сожалению, программное обеспечение VM обычно имеет проблемы с непрерывной высокоскоростной передачей данных по USB.
Есть некоторые известные ошибки с реализацией USB прошивки HackRF. Возможно, что исправление этих ошибок улучшит способность работать с HackRF с виртуальной машиной, но весьма вероятно, что работа с более высокой частотой дискретизации все ещё будет ограничена.
Светодиоды
Вопрос:
Какие светодиоды должны светиться?
Ответ:
Когда HackRF One подключён к USB-хосту, должны загореться четыре светодиода: 3V3, 1V8, RF и USB. Светодиоды 3V3, 1V8 и RF указывают на то, что внутренние источники питания работают правильно. Индикатор USB указывает, что HackRF One связывается с хостом через USB.
Светодиоды RX и TX указывают, что в данный момент выполняется операция приёма или передачи.
Вопрос:
Почему светодиоды разные цвета?
Ответ:
Каждый светодиод имеет один цвет. На HackRF One нет разноцветных светодиодов. Смежные светодиоды имеют разные цвета, чтобы их было легче отличить друг от друга. Цвета ничего не значат.
Полудуплекс, полный дуплекс
Вопрос:
Является ли HackRF One полудуплексным или дуплексным устройством?
Ответ:
HackRF One — полудуплексный трансивер. Это означает, что он может передавать или получать, но не способен выполнять обе операции одновременно.
Вопрос:
Почему HackRF One не дуплексное устройство?
Ответ:
HackRF One разработан для поддержки самого широкого диапазона приложений SDR в одном недорогом портативном устройстве. Многие приложения не требуют полнодуплексной работы. Полнодуплексная поддержка сделала бы HackRF больше и дороже, а для этого потребовался бы внешний источник питания. Поскольку потребности в дуплексном режиме можно удовлетворить, просто воспользовавшись вторым HackRF One, имеет смысл сохранить устройство небольшим, портативным и недорогим для всех, кто не требует работы в дуплексном режиме.
Вопрос:
Как изменить дизайн HackRF One, чтобы сделать его дуплексным?
Ответ:
Аппаратная конструкция HackRF One фактически дуплексная (с более низкой частотой дискретизации) от USB-соединения через ADC/DAC (АЦП/ЦАП). Раздел RF является единственной частью конструкции, которая не может поддерживать работу в дуплексном режиме. Самый простой способ сделать HackRF One full-duplex — создать дополнительную плату, которая дублирует радиочастотную секцию, а также обеспечивает внешний источник питания для требуемой дополнительной мощности. Это также потребует усилий программного обеспечения; прошивка, CPLD, libhackrf и другое программное обеспечение хоста должны работать для поддержки полнодуплексной работы.
Если вы попытаетесь перепроектировать секцию RF на HackRF One для поддержки полнодуплексного режима, основное внимание будет уделено MAX2837 (приемопередатчик промежуточной частоты). Эта часть является полудуплексной, поэтому вам потребуется либо две из них, либо вам придётся перепроектировать секцию RF, чтобы использовать что-то отличное от MAX2837, что может привести к радикально другому дизайну. Если вы использовали два MAX2837, вы можете использовать один RFFC5071 вместо двух RFFC5072.
Какова чувствительность приёма HackRF?
Вопрос:
Каков минимальный уровень мощности сигнала, который может быть обнаружен HackRF?
Ответ:
Это не вопрос, на который можно ответить для универсальной такой платформы SDR как HackRF. Конкретно можно ответить только для конкретного приложения. Например, вопрос, на который можно ответить: каков минимальный уровень мощности в дБм модуляции M на частоте F, который может быть обнаружен HackRF One с программным обеспечением S в конфигурации C с частотой ошибок по битам не более E%? Изменение любой из этих переменных (M, F, S, C или E) изменит ответ на вопрос. Даже, казалось бы, незначительное обновление программного обеспечения может привести к существенно другому ответу. Чтобы узнать точный ответ для конкретного приложения, вам придётся измерить его самостоятельно.
Конкретные спецификации HackRF включают диапазон рабочих частот, максимальную частоту дискретизации и динамический диапазон в битах. Эти спецификации могут быть использованы для приблизительного определения пригодности HackRF для данного применения. Тестирование необходимо для точного измерения производительности в приложении. Как правило, производительность можно значительно улучшить, выбрав подходящую антенну, внешний усилитель и/или внешний фильтр для приложения.
Решение проблем
Вопрос:
Почему известный сигнал имеет неправильную частоту, а регулировка центральной частоты смещает неправильную частоту ещё больше или меньше?
Ответ:
Вы, вероятно, используете на устройстве прошивку, которая не соответствует прошивке битового потока CPLD. Если используется последний код git, сначала обновите микропрограмму HackRF, затем установите последнее ПО для хоста, далее установите поток битов CPLD, а затем выключите и снова выполните питание на HackRF.
Справка по hackrf_transfer
-h # справка [-d серийный_номер] # Серийный номер желаемого HackRF (если подключено несколько устройств). -r # Получать данные в этот файл (используйте '-' для stdout (стандартного вывода)). -t # Пересылать данные из этого файла (используйте '-' для stdin (стандартного ввода)). -w # Получать данные в файл с WAV заголовком и автоматическим именем. # Это для совместимости с SDR# и может не работать с другим программным обеспечением. [-f freq_hz] # Частота Hz [от 0MHz до 7250MHz]. [-i if_freq_hz] # Промежуточная частота (IF) в Hz [с 2150MHz до 2750MHz]. [-o lo_freq_hz] # Частота внешнего интерфейса Локального Осцилятора (LO) в Hz [84MHz to 5400MHz]. [-m image_reject] # Выбор фильтра отклонения изображения, 0=обход, 1=НЧ, 2=ВЧ. [-a amp_enable] # RF усилитель RX/TX 1=Включён, 0=Выключен. [-p antenna_enable] # Питание на порт антенны, 1=Включён, 0=Выключен. [-l gain_db] # Усиление RX LNA (IF), 0-40dB, шаг в 8dB [-g gain_db] # Усиление RX VGA (baseband), 0-62dB, шаг в 2dB [-x gain_db] # Усиление TX VGA (IF), 0-47dB, шаг 1dB [-s sample_rate_hz] # Частота дискретизации в Гц (4/8/10/12.5/16/20MHz, по умолчанию 10MHz). [-n num_samples] # Количество сэмплов для передачи (по умолчанию не ограничено). [-S buf_size] # Включить потоковую передачу с размером буфера buf_size [-c amplitude] # Режим источника сигнала CW, амплитуда 0-127 (значение постоянного тока для ЦАП). [-R] # Режим повторения TX (по умолчанию выключен) [-b baseband_filter_bw_hz] # Установите полосу пропускания фильтра основной полосы в Гц. Возможные значения: 1.75/2.5/3.5/5/5.5/6/7/8/9/10/12/14/15/20/24/28MHz, по умолчаниюСправка по hackrf_spiflash и hackrf_cpldjtag
-h, --help: справка -a, --address : адрес начала (по умолчанию: 0) -l, --length : количество байтов для чтения (по умолчанию: 1048576) -r, --read : Прочитать данные в файл. -w, --write : Записать данные из файла. -i, --no-check: Пропустить проверку совместимости прошивки с целевым устройством. -d, --device : Серийный номер устройства если несколько устройств -s, --status: Прочитать состояния регистров флэш-памяти SPI перед другими операциями. -c, --clear: Очистить состояния регистров флэш-памяти SPI перед другими операциями. -R, --reset: Сбросить HackRF после операций. -v, --verbose: Вербальный вывод.-h, --help: Справка -x, --xsvf : XSVF файл для записи в CPLD. -d, --device : Серийный номер устройства если несколько устройствЧастота, децибелы и прочие физические термины в SDR
[В ПРОЦЕССЕ НАПОЛНЕНИЯ]
Материалы и видео по SDR и HackRF
Официальная Вики HackRF (на английском): https://github.com/mossmann/hackrf/wiki
Интересные видео по SDR и HackRF: https://greatscottgadgets.com/sdr/
Эти же видео в переводе от Дмитрия (DesignerMix):
SDR с HackRF. Урок 1 - Добро пожаловать. Майкл Осман
SDR с HackRF. Урок 2 - Цифровая Обработка Сигналов. Майкл Осман
SDR с HackRF. Урок 3 - Что такое децибел? Майкл Осман
SDR с HackRF. Урок 4 - Тайны! Майкл Осман
SDR с HackRF. Урок 5 - HackRF One. Майкл Осман
Авторские материалы Дмитрия (DesignerMix):
HackRF One первое знакомство с устройством. Обзор и разборка SDR радио
HackRF One + SDRSharp настройка и описание программы
Декодируем цифровую радиосвязь с помощью DSD+ и SDRSharp
Защита SDR трансивера HackRF One от помех
Декодируем GSM с использованием SDR и GR-GSM
Прослушка радиотелефонов DECT не шифрующих трафик
Перехват изображения с монитора по радиоканалу с помощью TempestSDR (ПЭМИН)
Другие переводы Дмитрия (DesignerMix):
SDR на DefCon - Все ваши радиочастоты принадлежат мне. Часть 1
SDR на DefCon - Все ваши радиочастоты принадлежат мне. Часть 2
SDR на DefCon - Все ваши радиочастоты принадлежат мне. Часть 3
Связанные статьи:
- Первое знакомство с HackRF и gqrx (100%)
- Как перевести беспроводную карту в режим монитора (контроля) в Kali Linux (50%)
- Как узнать, поддерживает ли беспроводная карта инжект (инъекцию) в Kali Linux (50%)
- Лучшая Wi-Fi карта для Kali Linux и BlackArch (50%)
- Решение проблем с ошибками rt2x00usb_vendor_request: Error - vendor request * failed for offset * with error -110 и RTNETLINK answers: Operation not possible due to RF-kill (50%)
- Практика атак на Wi-Fi (RANDOM - 12.9%)
факультете информационной безопасности от GeekBrains? Комплексная годовая программа практического обучения с охватом всех основных тем, а также с дополнительными курсами в подарок. По итогам обучения выдаётся свидетельство установленного образца и сертификат. По этой ссылке специальная скидка на любые факультеты и курсы!
Рекомендуется Вам:
9 комментариев to SDR и HackRF для начинающих
Статья очень интересная. Ждусь продолжения, интрегует. Я слышал о таких штуках в наборах безопасников но я очень смутно представляю назначение сего девайса.
афтар пеши исчо сам подумываю о приобретении, но материала курить ОЧЕНЬ много особенно если предполагается работать на передачу…ждемс продолжения…
Хорошая статья, интересно было узнать ещё больше про PortaPack, отличие от версий на Алике.
какую антенну можно подключить для начала ? если просто штыревую ( телескопическую ), через кабель ?
Спасибо.
Было бы классно увидеть статью HackRF как базовая GSM станция
В подобных статьях, как правило, нет самого главного - ни типа разъема USB на корпусе приемника, ни хотя фото торца корпуса, где он установлен. А про чувствительность вообще насмешка: вместо того, чтобы указать единственый параметр, налили ведро воды безо всякой конкретики.
Alexey :
Для подключения нужен кабель Micro Male USB, если вы нажмёте Ctrl+f и выполните поиск по слову «Micro», то вы увидите, сколько раз употребляется это слово и даже даются ссылки на конкретные кабели. Фото торца: «Подобная статья» - это просто материал, который я собрал до того, как этот приёмник у меня появился. «Матчасть», так сказать. На самом деле, это довольно полезно — я сам открывал эту статью, когда приёмник пришёл ко мне, чтобы найти команды по установке необходимого ПО, обновить прошивку, проверить работоспособность, заранее узнать меры предосторожности (не подключив антенну можно спалить прибор). По поводу чувствительности — это перевод ответа от авторов. Авторы вполне открыты для обратной связи, откройте на GitHub’е тикет с информацией, как правильно считать чувствительность и что им нужно сделать. Они вам ответят, и после этого вы напишите другую, хорошую статью с точными цифрами.
Коллеги, доброго вечера.
Столкнулся с такой проблемой:
после установки последней прошивки перестал работать portapack h1, причем аналогичная ситуация на 2х девайсах. Без портапака отлично работают, а с ними портапак выдает черный экран. На портапаке стояла последняя прошивка от myhem 1.4 Не знаете как решить?
Alexey :