|
Статья |
---|
Фото 01
Большинство радиолюбителей, кто работает на двух-метровом диапазоне слышали сигналы пакетного радио, которые передаются между станциями. Иногда это просто QSO, иногда сигнал APRS станции или сигнал DX-кластера. Пакетное радио получило широкое распространение в среде радиолюбителей с момента начала его использования на любительских диапазонах в 80-х годах прошлого века.
Хотели ли вы когда-нибудь с минимальными затратами средств и времени иметь возможность принимать сигналы пакетного радио? Или запустить свой диги-репитор, чтобы обеспечить передачу пакетов на большие расстояния, или стать узлом сети APRS? Возможно, вы задумывались над тем, что хорошо было-бы иметь возможность изменять программу для TNC.
Если эти вопросы возникали у вас до этого, возможно, предлагаемое ниже решение позволит ответить по крайней мере на некоторые из них. Данное устройство может быть реализовано с затратами около $25. Взамен вы получите возможность:
Конечно, предлагаемое устройство не может предоставить все режимы и возможности взрослого TNC, но его возможностей вполне достаточно для работы в эфире и изучения основ пакетного радио. Более того, если вы хотите изучить, как работает протокол AX.25 изнутри, и разобраться с программированием PIC-контроллеров, используя реальный проект, данное устроиство – хорошая база для старта. Вы можете изменить программу этого TNC, для использования его в качестве контроллера погодной станции или для дистанционого управления различными устройствами. Список применения данного устроиства можно расширять и расширять.
Исходный код для PIC-контроллера прилагается. Для прошивки программы в контроллер не требуется дорогостоящий программатор. Процедура прошивки будет описанна ниже в этой статье.
Я начал этот проект после изучения технических возможностей некоторых новых микроконтроллеров. Цена на микроконтроллеры драматически уменьшается, и в то же время они становятся все более мощными и охватывают более широкий спектр возможных применений.
После экспериментов с различными моделями, меня наиболее заинтересовали контроллеры серии MicroChip, и особенно PIC16F88. Этот микроконтроллер в корпусе DIP-18 доступен по цене около $3 за штуку. У контроллера имеются несколько ACP-каналов, включая UART для связи с терминалом, программируемая Flash-память программ и EEPROM-память для хранения позывных и параметров. Контроллер может выполнять программные инструкции каждые 200 наносекунд. Сравните эти возможности, с возможностями его дедушки Intel 8080! После изучения характеристик этого контроллера, я пришел к выводу, что это прекрасная база для создания TNC.
В большинстве изученных мной простых конструкций TNC на базе PIC-контроллеров, используется модем MX614P. Безусловно, использование готового блока с одной стороны как-бы упрощает конструкцию, но с другой стороны увеличивает общее потребление тока, что существенно для мобильного применения, а также увеличивает стоимость конструкции. Кроме того не у всех есть взможность приобрести MX614P. 8(((
Данная статья описывает как использовать возможности современных микроконтроллеров для кодирования/декодирования цифровых сигналов. Данная конструкция разработана специально для пакетного радио, но это устройство и принципы, заложенные в нём могут быть использованы для любого другого цифрового режима работы RTTY, Pactor и т.д. То есть, если вы соберёте эту конструкцию для пакетного режима, с небольшими доработками она может быть использована для других цифровых режимов работы.
Как и многие другие любительские проекты, этот проект основан на разработках многих конструкторов. В частности, работах Майка Берга (N0QBH), который сделал безмодемный приёмник, используя внешний компаратор. Многие разработчики ПО для PIC-контроллеров опубликовали схемы резистивных матриц, которые использовались в ранних разработках TNC на базе PIC-контроллеров для генерации синусоидального сигнала необходимого для формирования AFSK (Audio Frequency Shift Keying) сигнала. Я объеденил эти решения в одной конструкции, добавив командный интерфейс, который я поаимствовал из Тucson Amateur Packet Radio (TAPR) контроллера используя новый PIC-контроллер для создания простого и дешевого TNC.
Конструкция обладает следующими возможностями:
Схема TNC представлена на рис.1. Она состоит из двух микросхем: первая - это преобразователь уровней для RS232 (популярная микросхема MAX232) и собственно микроконтроллера. Микроконтроллер DIP18 версия PIC16F88. Интерфейс с трансивером включает в себя: аудио вход, который подключается к выходу трансивера на внешний динамик; аудио выход, который подключается к микрофонному входу трансивера; PTT выход, для управления прием/передача.
Последовательный порт используется для подключения компьютера со стандартным терминальным ПО или GPS приёмника, формирующего сигнал в стандарте NMEA. Компьютер с терминальным ПО необходим для установки параметров TNC и для работы в режиме прямой передачи текста.
Перемычка J4 (GPS receiver Enable) используется для определения устройства, подключенного к последовательному порту.
Нужно заметить, что после того, как все начальные установки выполнены, и параметры станции сохранены в EERAM, устройство может работать как супер простой удаленный диги-репитор. В этом случае отпадает необходимость в микросхеме MAX232 и устроиство превращается в однокристальный TNC.
Для питания устроиства можно применить любой источник с напряжением +7...18 Вольт. В качестве источника питания может быть использован сам трансивер или любой внешний блок питания.
Пакетное радио, как и многие другие технологии для передачи цифровой информации, использует метод Audio Frequency Shift Keying (AFSK) для передачи потока нулей и единиц. Метод основан на передачи двух частот 1200 Гц и 2200 Гц, отображающих изменения значений в цифровом потоке. Для приема AFSK в конструкции использован компаратор для определения точек в которых амплитуда принимаемого сигнала равна нулю, далее вычисляется интервал времени между такими точками для определения частоты принимаемого сигнала, после чего происходит пересчет изменений частоты принимаемого сигнала в поток данных.
Для того, чтобы понять, как это происходит, представьте себе синусоиду с частотой 1200 или 2200 Гц. Если мы ограничим сигнал синусоидальной формы, при помощи диодов (D3, D4 на схеме рис.1), то мы получим импульсы прямоугольной формы. Эти импульсы поступают на вход нуль-детектора, который формирует импульс в каждый момент, когда амплитуда входного сигнала равна нулю. Если процессор может постоянно подсчитывать интервал времени между импульсами на выходе нуль-детектора, то он может определить частоту синусоидального сигнала. PIC16F88 включает в себя таймер и внутренний компаратор, что позволяет реализовать декодирование AFSK сигнала внутри процессора. Программа процессора может также производить цифровую обработку сигнала для фильтрации частот не входящих в звуковой диапазон. В результате мы получаем очень чувствительную, безмодемную конструкцию которая по своим характеристикам не уступает модемным микросхемам типа MX614. Используя эту конструкцию я уверенно принимал пакеты длиной до 1 секунды на расстоянии более 120 км от передающей станции.
Следует заметить, что описанная выше технология может быть использована для измерения частоты любого синусоидального сигнала. Метод может быть применен для приёма любого цифрового сигнала, использующего AFSK или для решения задач, требующих определения частоты сигнала в звуковом диапазоне.
Для формирования пакетов на передачу, программа должна позволить генерировать синусоидальный сигнал с частотами 1200 и 2200 Гц. Изменение частоты сигнала определяет передачу цифрового нуля или еденицы. Синусоидальный сигнал ничто иное как изменение уровня напряжения с течением времени. Если процессор позволяет изменять напряжение на необходимое значение за необходимый период времени, то возможна генерация синусоидального сигнала с малыми искажениями. TNC должен генерировать сигнал только одной частоты в одим момент времени, но генерация многочастотного сигнала также возможна, например сигнала DTMF. Документация по контроллерам MicroChip содержит информацию о технологии генерации подобных сигналов.
Генерация сигналов может быть осуществлена с использованием управления резистивной матрицей, которая состоит из резисторов с определенными значениями сопротивления.
Если напряжение на выходе процессора может изменяеться достаточно быстро (приблизительно 32 раза за один период генерируемого синусоидального сигнала) и изменение этого напряжения будет происходить на заданное специфическое значение, то возможна генерация синусоидального сигнала.
Программа для PIC-процессора позволяет принимать пакеты, сохранять их в памяти, проверять ошибки в пакетах, посылать данные в последовательный порт и ретранслировать пакеты, если необходимо состоит приблизительно из 3000 строк кода. Если вас не интересует изучение или модификация прилагаемого программного обеспечения, рабочую версию откомпилированного кода вы можете загрузить по ссылке.
Если вы хотите разобраться в том, как работают PIC процессоры или как формируются пакеты или возможно вы захотите модифицировать код программы для своих проектов исходный код программы с коментариями доступен по ссылке.
ПРИМ: Это не полный код, но примеры охватывают основные процедуры программы. Этот код может быть использован в качестве основы для будущих экспериментов.
Программа организована по функциональным блокам (приём пакетов, диги-репитинг, командный процессор, и т.д.) и использует круговой алгоритм обработки данных. Терминальный интерфейс организован на базе таблицы функций, что упрощает добавление новых команд.
Програмное обеспечение для этого проекта построено на базе кода, разработанного многими радиолюбителями и опубликованного как Open Source Code. Пожалуйста, если вы планируете вносить изменения в код и опубликовывать свой проект, не забудьте включить ссылки на авторов в описание своего проекта.
Конструкция и разводка печатной платы для этого проекта некритичны. Один из возможных вариантов – использование стандартной макетной платы. Устроиство, показанное на рис.4 собрано на стандартной макетной плате Radio Shack с двумя алюминиевыми уголками для поддержки. Соблюдайте все правила предосторожности при работе с CMOS для предотвращения повреждения PIC-контроллера статическим электричеством. Хороший браслет с заземлением никогда не помешает!
Поскольку процессор работает на относительно большой тактовой частоте, блокировочные конденсаторы в цепи питания 5V очень важны. Установите конденсаторы ёмкостью 0.1 мкф параллельно с выводами питания каждой микросхемы. Я могу рассказать как много времени мне пришлось потратить на отлаживание цифровых устройств и потом обнаружить, что все проблемы из-за шума по цепи питания 5V. Блокировочные конденсаторы невелики по размерам и дешёвы, используйте их с толком.
Если вы разработали собственную печатную плату для этого проекта, то всегда лучше проверить монтаж перед подключением питания и установкой микросхем. После этого не устанавливая микросхемы, подключите источник питания 12V и проверьте наличие напряжения +5V на выводе 14 панельки для микросхемы PIC16F88 и выводе 16 панельки для микросхемы MAX232. Если напряжение в норме, установите микросхемы в панельки, предварительно отключив источник питания и используя браслет с заземлением. Не забудьте запрограммировать микропроцессор перед установкой.
После того как я собрал прототип показанный на рис.4, я нашёл другое конструктивное решение на базе платы для прототипов фирмы Olimex. Это самый быстрый способ для создания и настройки TNC. Многие проекты состоят из процессора, кварцевого резонатора для тактового генератора, источника питания, и последовательного порта. Компания Olimex изготавливает платы со всеми перечисленными компонентами. Кроме того платы Olimex имеют место для монтажа дополнительных элементов проекта. В случае TNC приблизительно половина необходимых компонентов уже смонтированна на плате.
Прежде, чем начать монтаж TNC, нужно проверить функциональность платы Olimex. Я рекомендую установить программу-загрузчик, которая поставляется вместе с платой и простой программой, которая управляет светодиодами на плате.
Фото 02
Фото 03
Фото 04
Фото 05
Фото 06
PS1: Обсуждение статьи на форуме QRZ.RU в группе APRS в теме: TNC для пакетного радио
PS2: Если вам понравилась данная конструкция и вам нужна печатная плата для изготовления этого контроллера, просим обращаться к UR5WHK.
...
[
02.04.2007 19:34
] Вёрстка и монтаж: Сергей (UR3IRS), Москва, Россия
[
02.04.2007 19:34
] Перевод статьи с англ.яз. на рус.яз.: Владимир (KI6BLP), г.Лос-Анжелес, США
[ 19.02.2007 ] Материалы предоставил: Василий (UR5WHK), г.Львов, Украина
[ 03-04.2005 ] Автор статьи: Bob Ball (WB8WGA), США