- Хотите сделать что-то своё? (например gps)
- Что и где можно послушать (в москве)
- Что такое sdr
- Gnu radio
- Ipad sdr
- Rtl_sdr
- Sdrsharp
- smartsdr™ — flexradio systems®
- Антенна
- Вот как все это выглядит в работе:
- Выпуск продукта
- Другие применения и границы возможного
- Железо
- Как он работает
- Куда двигаться дальше?
- Малошумящий усилитель
- Пишем по
- Прием длинно- и коротковолновых аналоговых и цифровых радиостанций
- Прием сигналов с автоматических передатчиков самолетов ads-b
- Радиопереговоры в безлицензионных диапазонах
- Радиопереговоры полиции
- Разработка аппаратной части
- Расширение диапазона поддерживаемых частот
- Сравнение с аналогами
Хотите сделать что-то своё? (например gps)
В простейшем случае получить доступ к эфиру можно так:
rtl_sdr -f 1575520000 -g 34 -s 2048000 out.dat
И в файл out.dat — сливается содержимое эфира на частоте 1.575Ггц, с частотой дискретизации 2.048 Мгц с коэфициентом усиления 34 dB. Если получившийся файлик теперь например скормить
, можно увидеть спутники gps (если конечно вы подключили к приемнику активную GPS-антенну).
У меня получилось так (спутники — действительно соответствуют видимым в окно на обычном gps-приемнике):
Что и где можно послушать (в москве)
88-115Mhz — банальное FM радио, режим WFM.
118-135Mhz — общения самолётов и диспетчеров, режим AM.
433Mhz, 446Mhz — кучи портативных радиостанций, у строителей обычно, NFM.
144-145Mhz, 435Mhz — радиолюбители (днём / утром практически никого нет), NFM.
864Mhz — куча каналов такси, NFM.
Также можно найти «радионяни», старые аналоговые радиотелефоны, аналоговые жучки которыми вас прослушивают — но тут с частотой не угадать (все это обычно тоже в NFM).
Что такое sdr
Кому может понадобиться такая радиола? Радиолюбителям, которые здорово эволюционировали! Двадцать лет назад увлеченный человек покупал сложный приёмник и часами сидел в наушниках, вращая частоты в поисках интересных сигналов. В современном мире радиоэфир переполнен информацией, но вся она цифровая.
Слушать в наушниках пакеты Wi-Fi не представляет никакого интереса. Сегодня радиолюбитель находит в эфире интересные цифровые радиостанции, а потом подбирает софт, который разбирает протокол передачи и преобразует информацию. К примеру, можно принимать данные телеметрии гражданской авиации – на основе такого рода информации от множества радиолюбителей по всему миру сайт flightradar публикует данные о воздушных судах.
Вы можете прямо сейчас своими глазами увидеть работу Software Defined Radio. Университет Твенте содержит увлекательный проект онлайн SDR-приёмника, который принимает сразу кусок спектра шириной в 29MHz, после чего радиолюбители могут параллельно прослушивать различные несущие этого диапазона. Каталог подобных радиопроектов собран на сайте
Большую роль в популярности любительского SDR играет небольшая стоимость минимального комплекта оборудования. Обнаружились недорогие TV-тюнеры, реализованные на Software-Defined Radio, и в интернете немедленно появились инструкции о том, как использовать такие тюнеры, чтобы прослушивать с их помощью не только телевизионный сигнал.
Специализированный комплект на китайском рынке стоит всего 35$ правда, он приходит разобранным (в необходимости предварительно спаять и заключается его шарм) и поддерживает диапазон только 100KHz-1.7GHz. Конечно, аппетит приходит во время еды, и очень скоро радиолюбитель начинает смотреть в сторону оборудования, которое может принимать широкие частотные диапазоны на высокой скорости. Давайте рассмотрим, какие серьёзные приборы сейчас наиболее популярны.
Полный список на Википедии
В двух словах: начинать знакомство с SDR можно с дешёвых вариантов типа RTL-SDR. Когда аппетит исследователя превысит небольшие возможности устройства, придётся искать замену подороже. Устройства типа Per Vices Crimson используются очень серьёзными специалистами, чьи компьютеры достаточно производительны для обработки таких потоков информации.
Однако, ещё недавно выбор не был так велик, и если не устраивал hackRF за $300, то следующим вариантом был USRP сразу за $750, и никакого компромисса. В связи с этим, шестнадцатилетний Лукас Лао Бейер решил самостоятельно разработать SDR-плату и недавно опубликовал отчёт о своём проекте. Сказать, что мы были поражены – ничего не сказать, лучше просто промолчать.
«Да что эти американские школьники себе позволяют!» — кричат в комментариях к статье Лукаса. Люди годами совершенствуют своё мастерство, а этот мальчишка сделал всё между уроками! Мы решили, что так это оставлять нельзя, и связались с Лукасом. В этой серии статей мы рассмотрим все аспекты создания подобного устройства, чтобы российские школьники перенимали опыт и делали не менее восхитительные вещи.
Gnu radio
GNU Radio — настоящий зубр SDR. Это программный пакет, предназначенный для обработки данных, полученных от SDR-приемника, в реальном времени. Являющаяся стандартом де-факто для всех более-менее профессиональных забав в области радио, программа построена на модульной основе с учетом парадигмы ООП.
Это настоящий радиоконструктор, в котором роль элементов отведена функциональным блокам: фильтрам, модуляторам/демодуляторам и несметному множеству других примитивов обработки сигналов. Таким образом, имеется возможность составить из них практически любой тракт обработки.
Делается это в прямом смысле слова в несколько кликов мышкой в наглядном графическом редакторе, имя которому gnuradio-companion. Более того, gnuradio-companion написан на Python и позволяет генерировать схемы на Python. Но у такой гибкости есть и обратная сторона — освоить GNU Radio за десять минут невозможно.
Ipad sdr
Информация о продуктах, произведенных не компанией Apple, или о независимых веб-сайтах, неподконтрольных и не тестируемых компанией Apple, не носит рекомендательного характера и не рекламируются компанией. Компания Apple не несет никакой ответственности за выбор, функциональность и использование веб-сайтов или продукции. Apple не делает никаких заявлений относительно стороннего точность сайт или надежность. Риски, связанные с использованием Интернета. Обратитесь к поставщику за дополнительной информацией. Другие названия компаний и продуктов могут быть товарными знаками их соответствующих владельцев.
Дата Публикации: 28 Февраля 2021
Rtl_sdr
Rtl_sdr – драйвер, обеспечивающий «нецелевое» использование данных с TV-тюнеров на базе rtl2832. В Windows вам придется заменить драйвер тюнера по умолчанию на WinUSB с помощью программы Zadig.
Rtlsdr.dll требуют все SDR-программы, и зачастую эта DLL уже идет в поставке софта, использующего RTL2832.
Rtl_sdr также можно использовать и через консольную утилиту, чтобы протестировать тюнер или слить кусок эфира в файл:
rtl_sdr -f 1575520000 -g 34 -s 2048000 out.dat
При дальнейшей обработке нужно помнить, что в файле байты I- и Q-потоков идут поочередно.
Sdrsharp
SDRSharp — одна из популярных и простых в использовании программ под Windows для работы с RTL2832 (и некоторыми другими SDR). При старте нужно выбрать RTL2832, нажав на кнопку Front-end. Вводить частоту руками нужно в поле Center.
Слева вверху — выбор типа демодулирования. FM используется для обычного FM-вещания и аудио в аналоговом телевидении, AM — в радиостанциях на низких частотах и переговоров самолетов, NFM — в рации.

Многие внешние декодеры цифровых передач работают через «аналоговый» интерфейс — то есть ты запускаешь SDRSharp, устанавливаешь программу Virtual Audio Cable (программа платная), настраиваешь SDRSharp, чтобы он декодированный звук выводил в VAC, и в системных настройках Windows указываешь VAC как устройство записи по умолчанию. В результате внешняя программа-декодер будет получать звук от SDRSharp.
Таким образом подключаются декодеры P25 раций (милиция), данных с метеоспутников, пейджеров, навигационных сообщений самолетов (ADS-B) и многого другого (об этом ниже). Такой необычный способ подключения сложился исторически — раньше к компьютеру подключали аналоговые приемники. Со временем декодеры дописывают, чтобы они напрямую работали с RTL-SDR.
smartsdr™ — flexradio systems®
Official FlexRadio Systems® Client
SmartSDR is a full featured radio client that enables your iPad or iPhone to operate your FlexRadio device.
It is fully compatible to SmartSDR v1, v2 (including SmartLink) and v3 (including MultiFlex and SmartControl).
Please note: This App requires a FlexRadio Systems® Series-6000 Software Defined Radio (SDR) Device.
However, the App also contains a FlexRadio Simulator (Demo Mode) so you can try this App even without owning a FlexRadio. PLEASE NOTE: The Demo Mode audio is by far not as good as when connecting the App to a real FlexRadio. That quality is identical to SmartSDR for Windows.
FACTS AND FEATURES:
SmartSDR offers almost all features of SmartSDR for Windows such as:
■ New: now supports FT8 and FT4 (iPad and iPhone Max, Firmware 3 required)
■ Creation, maintenance of Slices, TNFs, Filters
■ Unlimited number of Slices, Panadapters (limited only by radio model)
■ CWX support including Sidetone and live send mode
■ Software Paddle or Straight-Key support
■ Maintain all Radio, Slice and Panadapter settings
■ Support for Memories
■ Profiles integration (TX, Microphone and Global)
■ Audio settings supported including equalizers
■ Support for TX Settings like Power including all Tuning features
■ Transverter support
■ SmartLink™ remote access
■ MultiFlex™ support
■ SmartControl support
■ HomeKit support to control radio, antenna switches etc. remotely
■ Siri shortcut support
For HomeKit, you can use any Power Plug or Switch that are HomeKit compatible.
In addition to SmartSDR for Windows, this App offers these features:
■ Band limits and Band maps and modes will be displayed inside the Pan adapter (In-App Purchase)
■ DX Cluster support which displays spots directly inside the Pan adapter (In-App Purchase)
■ Graphical tuning knob for easy and exact frequency selection.
■ Various additional minor bells and whistles such as easy TNF maintenance,
■ direct Bandwidth selection, Split Mode, instant Memory creation and more.
■ Device logging and device parameter monitoring (e.g. PA Temperature etc.)
■ Logbook integration with ADIF Im- and Export (In-App Purchase)
■ Support for two Bluetooth and USB Controllers (In-App Purchase)
■ Voice Macro recording and playback
There are just a few limitations compared to SmartSDR for Windows which are:
— Only one Panadapter visible at the same time.
— Diversity is not implemented.
WHAT YOU NEED:
— A FlexRadio Systems® FLEX-6000 series radio
— An Apple device such as an iPad, iPhone or iPod Touch which needs to run at least iOS 12
— A newer iPad (Air 2 or newer) or iPhone (7 or better) is recommended
NETWORK REQUIREMENTS:
To run this App at your home, nothing else but a regular WiFi connection is needed that can access your FLEX-6000. You can immediately start using the App.
For Remote operation via SmartLink™ a Version 2 License is required for your Radio.
The App supports Splitscreen Multitasking on the newer iPads so you can run SmartSDR in split mode parallel to your browser, Email software or any other App. It is also optimized for the new iPad Pro models.
SUPPORTED SDR HARDWARE:
FLEX-6300, FLEX-6400, FLEX-6400M, FLEX-6500, FLEX-6600, FLEX-6600M, FLEX-6700
Find out more here: http://go-to.me/smartsdr
Read the Manual: http://go-to.me/smartsdr-manual
Антенна
Вполне подойдёт ненаправленная телевизионная антенна МВ-ДМВ («рога»). Я вообще принимал на полуметровый металлический штырь. Все это нужно вытаскивать на балкон / в окно. Если компьютер далеко — лучше удлинять USB кабель, а не антенну. Ну и источники радиочастотного шума лучше убрать подальше (например тот же компьютер с открытым корпусом сильно мешает).
Вот как все это выглядит в работе:
(не забываем громкость по-тише)
Переговоры диспетчеров и пилотов, 118-135Mhz:
Строители на 433/446Mhz:
Радиолюбители на 144МГц (невероятная деталь — в комментах на ютубе отметился участник переговоров):
Мне лишь остаётся пожелать удачи в ваших исследованиях радиоэфира!
PS. Эх, я вижу что я опоздал на 65 минут. К счастью, мы рассказали о RTL2832 c разных сторон (там HDSDR, тут SDRSharp и кино).
PPS. Самый занимательный услышанный диалог, к сожалению тогда не записывал:Разговор двух строителей (видимо прораб с каким-то другим руководителем)
1: Тут опалубку криво сделали, бетон получился тоньше чем нужно на 5см
2: Можно как-то исправить?
1: Ну… переделывать все надо…
1: Так что делать будем, показывать технадзору?
2: Ну что ты как маленький…
2: Ну конечно нет
Выпуск продукта
В апреле Лукас запустил краудфандинг для своего продукта и получил первую партию заказов на 20000$ (то есть, порядка пятидесяти экземпляров).
После отгрузки этой партии можно будет с уверенностью сказать, что прототип превратился в продукт, и это замечательный финал длинной трёхлетней истории шестандцатилетнего пацана, собравшего своими руками настоящее Software Defined Radio.
Справочные ссылки→ Схематика FreeSRP→ Исходники FPGA→ Исходники USB Контроллера→ Сайт проекта
Другие применения и границы возможного
RTL2832 можно использовать для отладки радиопередатчиков, подслушивания за радионянями и аналоговыми радиотелефонами, для разбора протоколов связи в игрушках на радиоуправлении, радиозвонках, пультов от машин, погодных станций, систем удаленного сбора информации с датчиков, электросчетчиков.
С конвертором можно считывать код с простейших 125 кГц RFID меток. Сигналы можно записывать днями, анализировать и затем повторить в эфир на передающем оборудовании. При необходимости тюнер можно подключить к Android-устройству, Raspberry Pi или другому компактному компьютеру для организации автономного сбора данных из радиоэфира.
Можно принимать фотографии с погодных спутников и слушать передачи с МКС — но тут уже потребуются специальные антенны, усилители. Фотографии декодируются программойWXtoImg.
Есть возможность захватывать зашифрованные данные, передаваемые GSM-телефонами (проект airprobe), в случае если в сети отключен frequency-hopping.
Возможности SDR на основе RTL2832 все-таки не безграничны: до Wi-Fi и Bluetooth он не достает по частоте, и, даже если сделать конвертер, из-за того, что полоса захватываемых частот не может быть шире ~2,8 МГц, невозможно будет принимать даже один канал Wi-Fi.
Bluetooth 1600 раз в секунду меняет рабочую частоту в диапазоне 2400–2483МГц, и за ним будет не угнаться. По этой же причине невозможен полноценный прием аналогового телевидения (там нужна принимаемая полоса 8 МГц, с 2,8 МГц можно получить только черно-белую картинку без звука). Для таких применений нужны более серьезные SDR-приемники: HackRF, bladeRF, USRP1 и другие.
Тем не менее возможность исследовать как аналоговый, так и цифровой радиоэфир, прикоснуться к спутникам и самолетам теперь есть у каждого!
Железо
USB TV-тюнер состоит из двух частей — радиочастотная часть (определяет возможные частоты работы) и цифровая часть (оцифровывает сигнал и передаёт в компьютер по USB).
Цифровая часть поддерживается одна — RTL2832.
Вариантов аналоговой части несколько: Elonics e4000 (всеобщий любимец, работает в диапазоне 50-1100Mhz и 1250-2200Mhz), FC0013 (~45-900Mhz). FC0012 хуже т.к. имеет проблемы с качеством сигнала и много частот, где он не работает.
Таким образом, лучше искать приёмники с e4000 или FC0013. К сожалению Elonics на данный момент обанкротилась, и последние запасы быстро иссякают.
Как он работает
Как ни странно, но несмотря на популярность, подробного описания работы приёмника я не встречал, и было непонятно как он избавляется от зеркалки имея такую низкую пч. Пришлось разбираться самому. Приёмник содержит два основных чипа:
R820T2 это тюнер с заявленной полосой от «42 to 1002 MHz» (реально больше — 24 ~1700 МГц) и подавлением боковой «Image rejection: 65 dBc». На выходе промежуточная частота 3.57 МГц.
Подавление боковой кажется слишком большим для дешёвого аналога, но особых вариантов вроде бы нет. Хотя сейчас и есть тюнеры от silabs с цифровой обработкой, но R820T вышел в 2021 и разработан он был не грандами.И поискав удалось найти статью — где филипс ещё в 2005 описывал чип тюнера с аналоговым подавлением в 58dB (двойной квадратурный смеситель и полифайзеры).
RTL2832U — ну тут в общем понятно, это 8 битный АЦП с частотой дискретизации 28.8 МГц, (плюс декодер DVB-T и работа с USB). В базовом режиме он оцифровывает окрестности 3.57 МГц.Что касается полосы в 2-3 MSPS, которую мы видим в SDRSharp, то сигнал ограничивается уже после АЦП — для DAB (Digital Audio Broadcasting), где SDR режим использовался разработчиком чипа, большая полоса была не нужна.
В RTL-SDR V3 можно также переключиться с обычного квадратурного режима (с использованием R820T2) на директ сэмплинг, RTL2832U будет оцифровывать сигнал с других ножек, которые в оригинальном свистке не задействованы. Некоторая проблема этого режима в том, что после половины частоты дискретизации 14.4 МГц (Котельников-Найквист), пойдёт вторая зона Найквиста и мы фактически получаем зеркальную полосу приёма, которую можно убрать только фильтрами на входе.
Как пример, радиолюбитель работает на частоте 14.179 МГц и одновременно его видно (и слышно) на 14.621 (28800-14179).
Куда двигаться дальше?
Пути улучшения следующие:
1) HF конвертор, чтобы сдвинуть частоты на 100Мгц «вверх» — тогда можно слушать и 27Мгц рации, и кучу
шпионских
и многое другое.
: e4000 — кремниевый чип, и шумит достаточно сильно. Если перед ним поставить малошумящий усилитель — можно снизить уровень шума примерно на 3dB (т.е. вдвое).
— отличается своей широкополосностью и горизонтальной диаграммой направленности.
вещательного диапазона (чтобы много-киловаттные FM и телестанции меньше мешали приемнику)
5) Диапазонную антенну на тот диапазон, который интересует, вместо дискоконуса с широкой полосой, но слабеньким усилением (опять же, уже полоса — меньше посторонних сигналов приходится приемнику отфильтровывать — соответственно потенциально выше качество приема слабых сигналов). За последние 2 пункта спасибо
Малошумящий усилитель
И E4000, и R820T — кремниевые микросхемы, и усилитель внутри них шумит сильнее, чем более дорогие отдельные GaAs-усилители. Для некоторого снижения уровня шумов (на 1,5–3 дБ) и улучшения возможностей приема очень слабых сигналов можно купить малошумящий усилитель, который включается между антенной и тюнером.
Один из вариантов — LNA for all.

Пишем по
Из дневника Лукаса Лао БайерЧтобы эта плата начала приносить пользу, необходимо разработать несколько компонент:
Для персонального компьютера я написал C библиотеку на основе libusb. Однако, чтобы не изобретать велосипед, я решил интегрироваться в какой-нибудь популярный фреймворк, и очевидным выбором была GNU Radio.
Сначала я собирался просто написать собственный блок для GNU Radio, но затем я натолкнулся на проект gr-osmosdr, который осуществляет поддержку многих популярных SDR. В комплекте с ним идёт анализатор спектра, генератора сигнала. Плюс, эта библиотека уже используется другими приложениями (например, Gqrx, AirProbe/gr-gsm). Соответственно, если я сделаю патч в этот проект, то моя плата автоматически появится в этих приложениях.
Потому я скопировал себе актуальную версию gr-osmosdr, и дальше просто смотрел какие правки делались для поддержки других SDR. В итоге, потребовались очень небольшие правки, чтобы библиотека увидела мою плату. Дальше появились функции для настройки частоты, ширины спектра и т.д.
Ключевая функция — work — производит или потребляет данные из потока GNU Radio. Сначала я реализовал простую очередь, чтобы как можно быстрее начать играть с платой, но, конечно, это неэффективно. Сейчас я обновил алгоритм и сделал, как делают все папы: через обратные вызовы и синхронизацию с помощью условных переменных
В общем, теперь для работы с моей платой через gr-osmosdr нужно просто указать аргумент freesrp.
Проверяем корректность потока данныхЯ начал баловаться с GNU Radio начиная со второй ревизии моей платы, когда трансивер ещё не очень-то работал. Я просто посылал сигнал и разворачивал его обратно в приёмный тракт. Так я мог проверить, что в цифровой части платы ничего не искажается.
Чтобы проверить частоту дискретизации платы, я гнал сигнал из блока GNU Radio «probe rate», а на ПЛИС собрал простой счётчик:
Сигнал генерируется в ПЛИС и принимается в GNU Radio. Частота дискретизации вбита прямо в код. Получаемая частота дискретизации выводится в отладочное окно.
Прием длинно- и коротковолновых аналоговых и цифровых радиостанций
До прихода интернета КВ-радиостанции были одним из способов узнавать новости с другого конца земного шара — короткие волны, отражаясь от ионосферы, могут приниматься далеко за горизонтом. Большое количество КВ-радиостанций существует и поныне, их можно искать в диапазоне ~8–15 МГц. Ночью в Москве мне удавалось услышать радиостанции из Франции, Италии, Германии, Болгарии, Великобритании и Китая.
Дальнейшее развитие — цифровые DRM-радиостанции: на коротких волнах передается сжатый звук с коррекцией ошибок дополнительная информация. Слушать их можно с помощью декодера Dream. Диапазон частот для поиска — от 0 до 15 МГц. Нужно помнить, что для таких низких частот может понадобиться большая антенна.
Помимо этого, можно услышать передачи радиолюбителей — на частотах 1810–2000 кГц, 3500–3800 кГц, 7000–7200 кГц, 144–146 МГц, 430–440 МГц и других.
Прием сигналов с автоматических передатчиков самолетов ads-b
ADS-B используется для того, чтобы и диспетчер, и пилот видели воздушную обстановку. Каждый самолет регулярно передает параметры полета на частоте 1090 МГц: название рейса, высота, скорость, азимут, текущие координаты (передаются не всегда).
Эти данные можем принять и мы, чтобы лично наблюдать за полетами. Два популярных декодера ADS-B для RTL2832 — ADSB# и RTL1090. Я использовал ADSB#. Перед запуском желательно настроиться на 1090 МГц в SDRSharp, посмотреть, есть ли сигнал и какая ошибка частоты из-за неточности кварцевого генератора.
Эту ошибку необходимо скомпенсировать в настройках Front-end’а: Frequency correction (ppm). Нужно помнить, что величина этой ошибки может изменяться вместе с температурой приемника. Найденную коррекцию нужно указать и в окне ADSB### (предварительно закрыв SDRSharp).
Оптимальная антенна-монополь для 1090 МГц получается длиной всего 6,9 см. Так как сигнал очень слабый, тут очень желательно иметь дипольную антенну, установленную вертикально с такой же длиной элементов.
ADSB# декодирует пакеты и ждет подключений по сети от клиента, отображающего воздушную обстановку. В качестве такого клиента мы будет использовать adsbSCOPE.
После запуска adsbSCOPE необходимо открыть пункт меню Other -> Network -> Network setup, нажать внизу на кнопку adsb#, убедиться, что указан адрес сервера 127.0.0.1. Затем на карте необходимо найти твое местоположение и выполнить команду Navigation -> Set Receiver Location. Затем запустить подключение к ADSB#: Other -> Network -> RAW-data client active.
Если все сделано правильно, то в течение нескольких минут ты сможешь увидеть информацию о самолетах (если, конечно, они пролетают рядом с тобой). В моем случае с антенной-монополем можно было принимать сигналы от самолетов на расстоянии примерно 25 км.
Результат можно улучшить, взяв более качественную антенну (диполь и сложнее), добавив дополнительный усилитель на входе (желательно на GaAs), используя тюнер на основе R820T (на этой частоте он имеет более высокую чувствительность по сравнению с E4000).

Радиопереговоры в безлицензионных диапазонах
Гражданские рации, не требующие регистрации в России, работают на частотах 433 и 446 МГц. Впрочем, в Москве русскую речь там услышать сложно. Их сразу и без проблем слышно в SDRSharp, модуляция NFM.
Поскольку каналов много, очень полезен плагин для SDRSharp AutoTuner Plugin — он автоматически включает частоту, на которой ведется передача, и таким образом можно слушать сразу все каналы раций.
Чтобы слушать рации на частоте 27 МГц, нужен тюнер с микросхемой R820T или внешний конвертер в случае E4000 (например, описанный ранее Ham It Up v1.2). Оптимальная антенна для 27 МГц уже требуется более серьезная, длиной ~2,59 или ~1,23 м.
Радиопереговоры полиции
Полиция в Москве и во многих других регионах России перешла на использование цифровых радиостанций, работающих в стандарте APCO-25 (P25). В P25 данные передаются в цифровом виде со сжатием и кодами коррекции ошибок — это позволяет увеличить дальность устойчивой связи и больше каналов впихнуть в ту же полосу радиочастот. Также существует опциональная возможность шифрования переговоров, однако обычная полиция работает без шифрования.
Для приема P25-раций можно использовать декодер DSD. DSD ожидает аудиоданные на входе. Перенаправить аудио с SDRSharp в DSD можно с помощью Virtual Audio Cable. DSD весьма критичен к настройкам SDRSharp — я рекомендую устанавливать AF Gain около 20–40%, возможно отключать галочку Filter Audio.
Найти частоты предлагаю читателям самостоятельно, так как эта информация не является открытой.
Разработка аппаратной части
Из дневника Лукаса Лао БайерFreeSRP – доступная программно-определяемая радиосистема. Я ее разработал, потому что не нашел устройств с более высокой пропускной способностью, чем HackRF за 300$, но дешевле более производительной USRP за 700$. Некоторые компоненты еще требуют доработки, но система будет полностью соответствовать философии Open Source.
FreeSRP основана на трансивере Analog Devices AD9364. Ключевые возможности:
Несмотря на то, что есть другие альтернативы типа LimeSDR, я считаю, что FreeSRP будет востребован. Разработка, как и ожидалось, была невероятно познавательной.
Я начал работу над системой два года назад, летом 2021, когда мне было 16. На тот момент у меня не было опыта серьезной работы с железом, не считая низкопроизводительных плат для моего проекта High Altitude Balloon. Поэтому я понимал, что разработка FreeSRP будет непростой во всех аспектах: скоростные шины (100MHz), USB3.
Сравните мою предыдущую плату и нынешнюю
Что и говорить, амбициозность проекта колоссальна. Однако, меня это нисколько не пугало, и я начал с чистого листа, исходя лишь из того, что я точно буду использовать трансивер AD9346, а мост между трансивером и USB3.0 реализую на ПЛИС. Недолгие поиски привели меня к Xilinx Artix 7 и контроллеру Cypress EZ-USB FX3. Эти игрушки показались мне оптимальными рещениями в плане цены.
На основе даташитов и референсных дизайнов я постепенно подготовил принципиальную схему, в которой решил вопросы по всем остальным компонентам. Для разработки я использовал Altium Designer. Хотя он и не open source, для меня это был наиболее интуитивно понятный пакет дизайна печатных плат.
Многие его прекрасные функции весьма помогли мне в разработке: жизнь становится гораздо проще, если у тебя есть инструменты для отрисовки параллельных шин или дорожек с конкретным сопротивлением. Впрочем, когда я закончу устранение недочётов в дизайне, я перерисую всё в KiCad, чтобы большему числу людей было удобнее пользоваться моими разработками.
От дизайна к прототипу
Когда схема готова, пора выпускать шаблон платы. Для прототипа очень важна цена изготовления, и в мой бюджет еле-еле умещалась четырёхслойная плата от нашего американского сервиса OSH Park, который славится низким ценником на штучные заказы. Пусть у них есть только четырёхслойки, параметры изготовления весьма хороши — дорожки 5 mil с такими же промежутками, 10 mil для отверстий, а также прекрасный субстрат Isola FR408, от качества которого зависит радиосигнал.
Самое важное в разработке платы — удобно расположить компоненты. Я старался сделать так, чтобы соединения между компонентами были как можно меньше. Конечно, я изо всех сил стремился сделать плату минимального размера, что сильно влияет на цену. Я начал рисовать прохождения сигнала с одной стороны — от USB — и постепенно добавлял компоненты по ходу этого пути, пока не дошёл до радиоинтерфейса. Компоненты вне этого пути (регуляторы напряжения) были добавлены в оставшиеся свободные места на плате.
С первого раза, разумеется, вышло не идеально, и довольно долго я увлеченно переделывал плату, пока наконец не понял, что уже всё хорошо. Самая сильная боль наступила, когда я начал разводить BGA на своей четырёхслойной плате. Тем не менее, я справился.
Изготовление прототипаПосле долгих треволнений, я всё же заказал три платы, и в январе 2021 они — УРА! — приехали. Я намеревался самостоятельно собирать плату, поэтому дополнительно заказал шаблон монтажа на пленке для паяльной пасты. Для монтажа я использовал галогеновую печку и контроллер собственной разработки.
Так как FreeSRP основан на двухсторонней плате, я сначала монтировал нижний слой. В дизайне я расположил снизу только маленькие компоненты: когда я буду запекать плату второй раз при монтаже верхнего слоя, маленькие компоненты удержатся на плате даже вверх ногами.
Частичная сборкаУ меня было три печатные платы, поэтому я сначала собрал прототип лишь частично. На одной плате установил только регуляторы напряжения, и благодаря этому обнаружил проблему с регулятором на 1.8В. Ничего страшного, я заменил его внешним источником питания.
На второй плате я собрал всю цифровую часть: USB и FPGA. Впервые мне довелось монтировать BGA, и я делал это вручную. После долгих часов напряжённого и кропотливого монтажа дорогущих компонентов без права на ошибку, я дрожащими руками аккуратно положил плату в печь. Ожидание было мучительным, и как же я ликовал, когда всё прошло идеально!
Первое включение
Конечно, я невероятно страшился первого включения платы. Хотя цепи питания были проверены на первой плате, я всё равно не исключал, что сейчас мои драгоценные компонентики вспыхнут синим пламенем. Возможно есть какой-то безопасный способ включать не тестированную плату. Мне ничего лучше не пришло в голову, как плавно повышать ток на блоке питания, и молиться, чтобы нигде не пошёл дым.
Тест на дым был пройден успешно, и лампочки загорелись. Ни ПЛИС, ни USB на ощупь не нагревались. Я подключил USB в компьютер, и операционка обнаружила чип Cypress. Затем я запустил приложения Xilinx, и они подключились к ПЛИС через JTAG. Похоже, всё заработало!
Вторая ревизияВо второй ревизии мне понадобилось устранить проблемы с питанием и разводкой USB3.0. В результате, я получил полностью рабочую цифровую часть платы, и пора было переходить к радиочасти.Сначала я не стал трогать трансивер, и собрал все остальные компоненты.
Параллельно, началась разработка программной части проекта. До этого я никогда не программировал ПЛИС, поэтому мне пришлось изучать Verilog с нуля. На этом этапе я решил реализовать параллельный интерфейс к USB-контроллеру. Хотя все части проекта были не тривиальны, разработка ПЛИС для меня стала самой жуткой частью проекта.
Очень сложно найти документацию для чайников по использованию инструментов и IP-блоков. Сообщения, которые писала Vivado Design Suite, были для меня китайской грамотой, а включение готовых IP-блоков приводило к сотням непонятных уведомлений. Скорее всего, я просто не умею пока правильно готовить на этой кухне.
Даже самые минимальные изменения в дизайне требовали мучительно долгого обсчёта программой, поэтому всё необходимо симулировать — а это еще больше усложняет вход в чудесный мир ПЛИС. А отладка! Без Integrated Logic Analyzer отлаживать что-либо совершенно невозможно, а он стал бесплатным только в 2021 году– до этого прайс был очень высоким.
В вопрос по тактированию я вник до конца не сразу – только к третьей попытке пришло осознание, что тактовый сигнал трансивера нужно было обязательно завернуть в clock-inputs на ПЛИС.Наигравшись с Verilog, я решил, что самое время впаивать трансивер.
Я взял третью плату, вновь установил на неё три сотни компонентов, как и ранее, начав с нижней стороны. Но когда я паял верхнюю сторону, контроллер моей печки объявил забастовку и не выключил печь. Я не мог получать показания по температуре в печи, а контролировать агрегат удавалось только включая-выключая его или открывая дверцу.
Тем не менее, я был решительно настроен закончить проект, поэтому разбил копилку, вновь заказал компоненты и через несколько недель предпринял еще одну попытку всё собрать. Вы не представляете, как я потел в этот раз, словно в финале турнира по покеру! К счастью, всё прошло без сюрпризов.
Цифровая часть в новом прототипе работала идеально. А вот трансивер работать не хотел, его конфигурационный порт просто не отвечал. Потом я заметил, что трансивер на ощупь горячий. Почему он так нагрелся, было непонятно, ведь он должен спать без конфигурации.
Оказывается, я по ошибке последовательно включил два резистора — 698Ом и 536ОМ (в сумме 1234Ом) вместо 14.3 килоомного резистора из документации! Я заменил резисторы, и чип перестал греться, но он всё равно не работал. Похоже, я его спалил.
В общем, в этот момент я решил, что сделано уже достаточно много для такого юного специалиста без глубоких знаний электроники, и пора проект отложить. Но у меня осталась работающая ПЛИС, поэтому я стал развлекаться с ней.
В результате долгих экспериментов, я прикрутил драйвер трансивера и справился с генерацией тестовых сигналов. У меня заработала цепочка передачи сигнала от ПЛИС к USB, так что дальше я мог управлять своей SDR с компьютера с помощью библиотеки на более знакомом мне C .
Третья ревизия
В какой-то момент я нашёл силы на ещё один рывок и сделал третью ревизию. Я исправил досадную ошибку с 14.3 килоомным резистором, соединил clock-inputs с FPGA, и заменил осциллятор трансивера на кристалл, чтобы упростить раздачу тактового сигнала и исключить дальнейшие проблемы.
Конечно, проект вышел за рамки срока и бюджета, но сейчас мне уже кажется, что иметь всего три ревизии до работающей платы — это совсем неплохо!
Также на этой ревизии я перешёл на шестислойную печатную плату. Прототипы стали стоить дороже, но расстояние между сигнальными дорожками значительно увеличились, и я достиг максимальной тактовой частоты в шинах.
Кроме того, я купил отличные шаблоны из нержавейки, которые, в отличие от каптоновых, гораздо проще использовать.
Раз софт у меня уже был готов, я сразу смог запустить трансивер на прием, и вот они долгожданные первые сэмплы в GNURadio!
Наконец-то вся тяжелая работа дала свои плоды. Еще через несколько недель я смог запустить передатчик, и убедился, что полнодуплексный режим у меня взлетел, пусть и не в полную ширину. И тут я нашёл новую проблему с усилком на передаче, поэтому сигнал получился очень слабым.
В любом случае, у меня есть полнофункциональная SDR-плата, ребята! Да, ещё много нужно доделать. Я хочу тщательно измерить производительность приемника и передатчика. Очень хочется запустить мелкосерийное производство, но перед этим мне нужно ещё немного оптимизировать дизайн и быть на 100% уверенным, что я не оставил в плате ещё каких-то сюрпризов.
Постановка задачиБольшое спасибо Лукасу за его подробный отчёт, а сейчас давайте рассмотрим его решения.Итак, Лукас хотел сделать широкополосную программно-определяемую радиосистему с характеристиками лучше, чем у hackRF, и дешевле USRP. Давайте рассмотрим, как устроено оборудование конкурентов.
USRP
bladeRF
hackRF
Последнее изображение выглядит наиболее лаконично, однако все три устройства имеют одинаковую архитектуру: сигнал принимается из эфира, оцифровывается и передаётся в USB. Есть различия в деталях. В hackRF радиочасть реализована в виде нескольких компонент: сигнал после приёма с помощью миксера сдвигается в промежуточную частоту диапазона 2.3-2.
7GHz, затем преобразуется в синфазную и квадратурную составляющую сигнала, которая уже оцифровывется. Другие устройства решают эту задачу одним компонентом — трансивером. Преобразование цифрового сигнала для передачи в USB, а также управление радиотрактом, осуществляется при помощи ПЛИС (FPGA) либо микроконтроллера.
Проектируя систему сверху вниз, мы разделим её на три части: RF, FPGA и USB, и сначала проработаем каждый блок по отдельности, а затем разберёмся, как связать их вместе.
RF-частьРадиомодуль в такой системе — самое хрупкое дело. Дискретные биты должны превратиться в волну и с нужной мощностью полететь в антенну. Для этого раньше требовалась целая россыпь восхитительных штучек: фильтры, интерполяторы, дециматоры, цифро-аналоговые преобразователи, синтезаторы, миксеры и различные усилители.
До сих пор существует класс людей, предпочитающих самостоятельно контролировать каждый аспект их радиомодуля и собирающих их из маленьких кусочков. Какое же решение предпочтёт школьник? Конечно, он будет рад, если один суперчип решит для него все эти проблемы. Вот какие есть варианты:
Как в hackRFМайкл Оссманн, кстати говоря, тоже радиолюбитель, а не радиопрофессионал, и единственная причина, почему он не решил радиочасть в своём проекте в виде одного умного кусочка кремния — это доллары, которые для этого потребовались бы.
Майкл выбрал компромисс: он использует три кусочка кремния и экономит примерно половину стоимости, что делает hackRF таким доступным по цене. Радиосигнал в hackRF приходит на RFFC5071, который понижает частоту до ~2.5GHz (это называется LO-синтез), затем этот сигнал попадает в узкополосный трансивер MAX2837, превращается в baseband и в таком виде идёт в MAX5864 — это как раз цифро-аналоговый (и обратно) преобразователь.
AD9364Analog Devices выпускают отличные трансиверы, которые часто используются в различных SDR-проектах. Выше на схеме видно, что такой чип, к примеру, комфортно себя чувствует на устройствах USRP. У производителя можно купить чип на демонстрационной плате AD-FMCOMMS4-EBZ, которая в принципе является готовой примитивной SDR.
LMS6002DЧипы Lime Micro используются во множестве систем (bladeRF, например), в том числе и в российской SDR-разработке umTRX, а в этом году они замахнулись на собственную SDR-систему и успешно собрали на Kickstarter средства для запуска LimeSDR в продакшн.
Поэтому в итоге Лукас выбрал вариант с AD9364, и немедленно заказал его.
Выбор FPGAСамое сложное при выборе ПЛИС — это определиться Altera или Xilinx. Эти компании словно Sony и Nintendo производят одинаково крутое железо, и дьявол лишь в деталях. Какая же разница между Altera и Xilinx?
Altera славится очень долгой поддержкой своих микросхем. Среда разработки Xilinx Vivado работает только с последней (седьмой) серией микросхем, тогда как Altera’s Quartus поддерживает даже Flex 10K, которому пятнадцать лет исполнилось с момента первого выпуска.
На момент старта проекта, софт для отладки Xilinx стоил 700$ (и стал бесплатным только в этом году), а у Altera он бесплатен. IP-блоки (готовые программные библиотеки) в Altera можно попробовать во время демо-периода с ограничениями. В итоге, для новичка-любителя Altera выглядит предпочтительней.
Но Лукаc выбрал Xilinx. Он утверждает, что из-за цены, но я думаю, что наугад (сравните, Xilinx Aritx-7 и Altera Cyclone V).
Как выбрать конкретную модель микросхемы у Xilinx? Два года назад выбор стоял между Spartan-6 и Artix-7, которые считаются low-cost предложением Xilinx. Spartan-6 отпадает, потому что его не поддерживает программное обеспечение Vivado.
Все BGA семейства Artix-7 совместимы что называется pin-to-pin, поэтому дальше Лукас просто ткнул в модель 50T, решив определиться с конкретной моделью, когда софт будет готов и точно определятся требования к производительности микросхемы.
Какие FPGA используют в других аналогичных проектах?
Автор hackRF не стал ставить FPGA, а выбрал более дешёвую технологию — CPLD, что является, скажем так, упрощённой версией FPGA. В результате, он практически ничего полезного не может в ней делать и вообще планирует исключить ПЛИС из своего дизайна, переведя управление трансивером на чип USB-контроллера.
USB3.0Осталось определиться с решением для USB3.0. Самое популярное решение здесь — микроконтроллер Cypress FX3, и сложно придумать причины не использовать его. Тем не менее, рассмотрим альтернативы.
Первым на ум приходит FTDI FT60x — микроконтроллер в корпусе QFN. Компания FTDI знаменита тем, что любит выпускать драйвера, которые намеренно убивают твой чип, если он является подделкой. Если для USB2.0 чипы этой компании считались стандартом де-факто, то в USB3.
Другой вариант — взять трансивер от Texas Instruments TUSB1310A, а MAC-уровень реализовать в ПЛИС. Трансивер стоит на 20$ дешевле, чем микроконтроллер от Cypress FX3, и я затрудняюсь прокомментировать, почему Лукас не сделал именно так.
Изготовление печатной платыЕсли вам больше хочется программировать, чем развлекаться с паяльником, я бы рекомендовал делать прототип на готовой плате. Хороший список готовых плат на разных ПЛИС можно найти на специальном сайте.
Однако, Лукасу в этом проекте были интересны все этапы. Более того, он даже монтировать плату хотел сам. Прототипы Лукас изготовил в OSH Park — это очень популярный сервис среди американских студентов. Цена у них идёт от площади платы (10$ за квадратный дюйм), и с учётом расположения в США вся процедура занимает весьма короткий промежуток времени.
Однако, сейчас, когда на плату есть заказы и её нужно изготавливать десятками, имеет смысл поискать самый оптимальный вариант для её изготовления. Ниже в таблице я привёл сравнение российских и зарубежных сервисов по изготовлению плат без монтажа на них.
Сравнение цен на изготовление печатной платы. Требования:
Часть российских заводов ответили отказом или выставили заградительные цены: не хотят связываться с мелкосерийным заказом. Хочу обратить внимание, что при текущем курсе доллара услуги российской компании Резонит оказываются даже предпочтительней китацев.
Плюс, они готовы сами смонтировать платы, если вы предоставите им комплектующие. На данный момент, из этого списка я лично работал только с EasyEDA, и нареканий нет. Цены Резонита приятно удивили Лукаса, и сейчас мы планируем разместить там заказ платы по его проекту.
Расширение диапазона поддерживаемых частот
Ниже ~52 МГц / 24 МГц находится бОльшая часть интересного в радиоэфире — поэтому ограничение по минимальной частоте серьезно сужает возможности этих приемников. Расширить диапазон можно, купив up-converter, который сдвинет сигнал с антенны на 100 или 125 МГц вверх.
Среди продающихся конвертеров пока лучше всех себя показывает NooElec — Ham It Up v1.2 с кварцем на 125 МГц. Использование кварца на 125 МГц очень важно, так как в районе 100 МГц находится много мощных FM-станций и без очень качественного экранирования всех частей системы они будут мешать приему.

Этот конвертер можно использовать с любыми SDR-системами, в том числе и работающими на передачу (есть ограничение на мощность).
Для приема на частотах менее 50 МГц придется больше внимания уделить антенне, так как габариты ее растут пропорционально увеличению длины волны. Конструкций антенн для любительской радиосвязи в КВ-диапазоне очень много, но в самом простейшем случае — это спускаемый с балкона провод длиной 5–20 м.
Сравнение с аналогами
Как видим здесь используется своя собственная плата, а не вытащенная из свистка. Использован термостабильный кварцевый генератор (TCXO), не плывущий при нагреве свистка. К тому же, у моего приёмника частота кварца была выставлена заметно точнее чем у синего свистка, отклонение частоты несущей тв каналов — пара килогерц.
В отличие от обычного свистка, в левом нижнем углу платы можно увидеть шестиног усилителя, а в правом нижнем углу трансформатор — они используются в режиме директ сэмплинга для приёма КВ.Вместо обычного стабилизатора AMS1117 используется более качественный LDO AP2114 (справа вверху).
В конце нужно упомянуть и недостатки, но они обусловлены использованием R820T2 и RTL2832U. Это небольшой динамический диапазон приёмника ввиду использования 8 битного ацп и зеркалка на кв, как следствие директ сэмплинга.
Впрочем, на практике самым слабым местом долго будет являться антенна, ибо помех в городе море.