Как стать автором
Обновить

Добавление функции передачи в SDR# с HackRF

Время на прочтение2 мин
Количество просмотров9.7K

SDRSharp (SDR#) – Одна из удобных и бесплатных программ для работы с различными SDR-приемниками.  Благодаря открытому API, она позволяет дополнять ее различными плагинами. Данная программа позволяет слушать различные радиостанции совместно с Airspy и RTL-SDR донглов. Она так же работает с HackRF One, который может не только принимать радиосигналы, но и передавать. Однако, на просторах Интернета, я не смог найти ни одно дополнение к SDR#, который бы позволял использовать HackRF как трансивер. Но все же, на основе того, что сумел найти, получилось кое-как разобраться с библиотекой HackRF.DLL и добавить возможность передачи  радиосигналов через HackRF к SDR#. Это реализовано внедрением промежуточного слоя между SDR# и библиотекой HackRF.DLL, который подготовлен с таким же интерфейсом, что и стандартная библиотека HackRF.DLL, только добавлена форма и несколько функций для формирования сигнала и модуляции в него звука из микрофона. Пока реализована только частотная модуляция.

Для установки данного «дополнения» в SDR#, достаточно переименовать HackRF.DLL, находящийся в папке SDRSharp на UHackRF.DLL, и добавить файл HackRF.DLL из данного проекта.

После этого, при запуске SDR# и выборе HackRF, будет открываться дополнительно окно, позволяющее переключать HackRF в режим передачи.

Внешний вид SDR# с дополнением
Внешний вид SDR# с дополнением

Здесь частота передачи может отличаться от частоты приема в пределах полосы приема SDR и ее можно задавать верхним ползунком. Для переключения между приемом и передачей используется клавиша левый ctrl.

 Так как программа не оптимизирована еще, передача с частотой дискретизации в 20 МГц, скорее всего, будет происходить с искажениями. Чтобы разгрузить ЦП, можно установить более низкую частоту дискретизации в приложении SDR#. Минимальную частоту, которую можно выбрать в приложении – 8 MSPS. Однако ничего не мешает вписать и более низкую частоту.

Библиотека реализована в среде Delphi7. За основу были взяты две публикации, описывающие получение звука из микрофона и оболочку библиотеки над HackRF.DLL.

И над первым и над  вторым пришлось немного поработать. Оболочка над DLL-кой не сразу у меня компилировался. Видимо версии Delphi отличались. А потом оказалось, что не все функции, описанные в оболочке, реализованы в файле HackRF.DLL, поставляемый в комплекте с SDR#. С помощью DLL Export Viewer v1.66 получил список функций, описанные в DLL и таким образом подредактировал оболочку, чтобы там были только те функции, которые реализованы в данной DLL-библиотеке.

 Исходный код

Теги:
Хабы:
Всего голосов 7: ↑7 и ↓0+7
Комментарии12

Публикации

Истории

Работа

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
11 сентября
Митап по BigData от Честного ЗНАКа
Санкт-ПетербургОнлайн
14 сентября
Конференция Practical ML Conf
МоскваОнлайн
19 сентября
CDI Conf 2024
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
25 сентября
Конференция Yandex Scale 2024
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн