Как я управлял трансивером и выходил в эфир через кнопочный телефон
Сегодня, пересматривая свои старые документы, вспомнил одну интересную вещь, связанную с любительской радиосвязью, и решил на скорую руку написать об этом статью. Речь пойдёт об удалённой работе в радиоэфире, но не через Интернет, как сразу многие бы подумали, а через обычную мобильную связь. Дело было десять лет назад, когда смартфонов ещё ни у кого не было, они только начинали появляться. А у меня вплоть до 2017 года были кнопочные телефоны. Я уже давно знал, что если во время разговора с абонентом нажимать кнопки, то абонент будет слышать звук от этих кнопок. Этот звук похож на тоновый набор обычного стационарного телефона. В принципе, я уже и раньше узнал, что эти звуки — стандартные DTMF сигналы. Тема DTMF сигналов и моя практика их использования в различных приложениях заслужила бы отдельной статьи. Но в этой статье будет идти речь об их применении для управления трансивером. Так вот, у меня возникла следующая идея. Можно подключить телефон к DTMF-декодеру, а его в свою очередь — к микроконтроллеру, с его помощью обработать последовательность DTMF сигналов по заданному алгоритму и к его выходу UART подключить CAT-интерфейс трансивера. По такой схеме можно реализовать управление трансивером через DTMF сигналы. В свою очередь телефон с трансивером соединить по аудиотракту, и тогда можно будет работать в радиоэфире через телефон. Я немедленно начал этим заниматься.
Рис. 1. Схема соединений
У меня уже была плата DTMF-декодера, которую я изготавливал ещё в школьное время по этой схеме. На плате размещена микросхема самого декодера IL9270N (аналог ЭКР1008ВЖ18), дешифратор и логические инверторы. К ней я подключал светодиоды, затем тиристорные ключи и лампочки на 220В, но это другая история. Потом эта плата была заброшена, так как была не востребована. Именно её я и взял за основу своей конструкции. Точнее, за периферию. А за основу — макетную плату на МК ATmega8, которую я изготавливал накануне. Я как раз тогда начинал заниматься программированием МК AVR более детально. Из платы DTMF-декодера я извлёк все микросхемы, за исключением самого декодера. К её выходам я подпаял 7 проводов: 4 линии данных D0…D3, 1 линия активности OE, питание 5В и масса GND. Также я отрезал LM7805. Эти провода я подключил к своей макетной плате с МК. Интерфейс UART я подключил к CAT-интерфейсу своего трансивера. Здесь два варианта, в зависимости от трансивера. Если трансивер имеет интерфейс с уровнями TTL, то МК можно подключать напрямую. Если RS-232, то через преобразователь на микросхеме MAX232. Всё стандартно. У меня SDR трансивер, и я подключался через MAX232 к COM-порту ПК. Но суть от этого не меняется. Честно говоря, я ещё не умел работать с UART МК по приёму. Благо, что UART в этом случае односторонний (TX, GND). И мне было не важно, чем отвечает трансивер на мои команды.
Рис 2. Плата с DTMF-декодером и кнопочный телефон
На схеме (рис. 1) видно, каким образом я осуществил сопряжение по аудиотракту. Это простой случай сопряжения. Но у меня дело обстояло иначе. На столе у меня стоит микшерный пульт в роли маршрутизатора аудиосигналов. Я всё подключил через него, задействовав несколько каналов входа и AUX посылов. Такое подключение даёт возможность выставить уровни громкости на каждой линии, в том числе и на звукозапись при необходимости.
Алгоритм работы данного комплекса предполагался такой. На столе лежит мобильный телефон, подключенный к устройству и настроенный на автоответ. Я, находясь далеко от дома, звоню со своего телефона на этот телефон. Тарифы на тот момент времени уже позволяли иметь бесплатную или копеечную связь. Телефон принимает вызов, и я слышу радиоэфир. Если будет включен трансивер на передачу, то в эфир будет передаваться всё, что я говорю в трубку. А включать трансивер на передачи я буду с помощью нажатия кнопок на телефоне, который, как уже было сказано, передаёт абоненту при нажатии кнопок DTMF-сигнал. То есть, я нажимаю кнопку, формируя тем самым DTMF-сигнал, соответствующий этой кнопке. Этот сигнал выходит с аудиовыхода базового телефона и подаётся на мой декодер, затем его код — в микроконтроллер. Он в свою очередь формирует команду CAT для моего трансивера — приём или передача. Сразу же возникла идея не только переключать трансивер на передачу или приём, но и полноценно управлять им: перестраивать частоту, переключать диапазоны и виды модуляции. Недостатки такого управления очевидны — оно «слепое». То есть, на моей стороне нет дисплея с информацией или аудиоответа об успешности управления. Можно только ориентироваться косвенно — по изменению звука с трансивера. Но, даже имея такие недостатки, это всё равно уникально и интересно. К тому времени в эфире я уже слышал радиолюбителей, которые работали удалённо через Интернет, но в их случае был покупной трансивер с невыговариваемой ценой. А в моём случае — куда всё проще и дешевле. Да и вообще, мобильная связь, на мой взгляд, надёжнее и качественнее Интернет в плане передачи звука.
Сначала я изучил протокол CAT интерфейса, взяв за основу соответствующий моему аппарату конфигурационный файл из программы OmniRig. Протокол оказался текстовый, что позволило мне его предварительно протестировать вручную через HyperTerminal. Затем я приступил к написанию прошивки. Честно говоря, мне страшно сейчас заглядывать в код. Хотя, всё там нормально, за мелкими исключениями. Очень много вложенных свич-кейсов. Главное, забегая вперёд, программа работала без сбоя. В алгоритм программы заложена обработка последовательностей нажатия кнопок (цифры от 0 до 9, *, #) и распознавания предусмотренных мной команд. Ввод команды начинается с нажатия клавиши »*», затем вводится номер команды, после чего снова нажимается клавиша »*» и вводится значение для введённой команды (если оно предусмотрено). Нажатием клавиши »#» выполняется введённая команда (в случае, если она определена) и управление возвращается в режим по умолчанию. В этом режиме кнопки означают следующие функции.»1» — перестроить вверх на 100 Гц;»2» — перестроить вверх на 1 кГц;»3» — перестроить вверх на 5 кГц;»4» — перестроить вниз на 100 Гц;»5» — перестроить вниз на 1 кГц;»6» — перестроить вниз на 5 кГц;»7» — ячейка памяти назад;»8» — перейти на приём;»9» — ячейка памяти вперёд;»0» — перейти на передачу;»*» — начать вводить команду. Как можно заметить, внутри МК я ещё предусмотрен ячейки памяти частот. Теперь по поводу команд. Всего сделал четыре команды.»0» — ввести частоту в Гц. Пример: *0×3675000# — перестроить трансивер на частоту 3675 кГц.»1» — сменить модуляцию. Номер модуляции — согласно описанию протокола из конфигурационного файла в секции «set mode».»2» — перейти на банк памяти;»3» — создать ячейку в банке памяти. Команда не имеет аргументов.
Теперь по поводу практической эксплуатации такого устройства. Окончательно на готовой плате устройство я так и не реализовал. Я им пользовался от силы 2.5 года, потом надоело. Пользовался в основном, когда ездил в дальние велопоездки. Как добросовестный радиолюбитель, по возвращению домой я заносил проведённые радиосвязи в журнал, предварительно прослушивав аудиозапись, которая велась на время удалённой работы постоянно. Когда появился смартфон с мобильным Интернетом, я управлял трансивером (SDR) через TeamViewer. Но звук всё равно при этом передавал по отдельному независимому каналу — через всю ту же обычную мобильную связь. Качество звука при приёме станций, разумеется, отличается от звука в наушниках возле трансивера. Тихие станции уловить тяжело, и звук может иногда кратковременно прерываться. Задержки есть, но они незначительны для обычной работы в эфире. Бывало такое, что я нажимал на передачу и терял сеть мобильной связи, находясь далеко от города. Но в основном я был очень доволен работой через этот комплекс. При передаче мой голос был также своеобразен. Учитывая обработку голоса в тракте мобильной связи, я на своём трансивере выключал компрессию и эквалайзер по передаче.
В настоящее время на смену старым трансиверам пришли трансиверы нового поколения, и тема удалённой работы в эфире уже звучит как само собой разумеющееся. Но данная идея, о которой шла речь в этой статье, актуальность не теряет. Ведь не у всех есть такие дорогие современные трансиверы. Да и не везде и не у каждого ещё есть Интернет. Особенно — у радиолюбителей пожилого возраста. Меня неоднократно уже спрашивали, как изготовить такую конструкцию самому, и просили меня в этом помочь. Со временем я планирую сделать её на единой плате и реализовать CAT протоколы к популярным моделям трансиверов (Yaesu, ICOM).