Проект: Радио-модем.

Цель: организация обмена данными между двумя комьютерами по радиоканалу с использованием радиостанции.

Немного теории: Радиоканал. Спектр частот радиоканала лежит в пределах 300-3000 Гц. Опытным путём была получена АЧХ канала. АЧХ имеет очень неприятный вид: наблюдаются сильные завалы амплитуды на краях графика. В целях улучшения и без того неважной связи для передачи выбирается полоса частот 1200-2400 Гц. Пробным путём и в теории установлено, что наилучшим сигналом для передачи является синусоида.

Рассмотрим несколько вариантов радиомодемов: Подключение выхода и входа звуковой карты компьютера к радиостанции. Навеска PTT (сигнал управления приёмом/передачей в радиостанции) на один контакт COM порта. Сигнал формируется и принимается программой через звуковую карту. Для этого требуется лишь спаять пару делителей на резисторах(что бы не повредить вход радиостанции), транзисторный ключ для управления PTT, и установить программное обеспечение. Недостатки: "занятость" звуковой карты. Программная загрузка компьютера. Проблема с Windows - старые драйвера скорее всего не пойдут выше 95ых. Небольшие приставки к COM порту: эмулятор ЦАП(передатчик) и два узкополосных фильтра на ОУ (приёмник). Программа работает уже не с сигналом эфира, а с двоичным кодом поступающим с порта. Частота синусоидального сигнала зависит от частоты прямоугольных импульсов с порта (в схемах с микросхемой ГГ - выбирается одна из двух настроенных). Обычно в таких схемах 3-6 корпусов. Как и в предыдущем варианте требуется транзисторный ключ для управления PTT. За счёт частичной аппаратной реализации уменьшается загрузка процессора. Недостатки: Сложность настройки схемы и нахождения элементов. Установленный "железом" единственный протокол и скорость передачи(не более 2400 бод). Так же могут быть проблемы с драйверами. Микропроцессорные системы, однокристальные микроэвм, цифровые процессоры обработки сигнала. Наиболее сложные и относительно дорогостоящие схемы. Модем соединён стандартным кабелем с COM портом(и поддерживает стандартные протоколы обмена), имеет внутреннюю память(буфер) и ЦАП-АЦП для цифровой обработки сигнала. Микропроцессорные - состоят из процессора, ПЗУ, ОЗУ, Портов ввода/вывода, преобразователя уровней, логики управления. Минимум 7 корпусов, причём 2 - 40 выв. Основанные на ОМЭВМ - состоят из ОМЭВМ, преобразователя уровней, ЦАП-АЦП. 3 корпуса при ограничении ОЗУ - меньше 256 байт. Или 5 корпусов при подключении внешенго ОЗУ. При этом появляется возможность загрузки программы обработки сигнала при запуске модема. Основанные на DSP(digital sound processor) - практически то же, что и на ОМЭВМ, но имеют встроенные ЦАП-АЦП. Недостатки: Имеют большую стоимость и очень сложно достать. Схем первых двух вариантов модемов разработано довольно много и существенно их улучшить невозможно. Перейти же на качественно новый уровень позволяет разработка доступного по цене и деталям модема, основанного на ОМЭВМ или в крайнем случае - на микропроцессоре. Сама разработка модема началась с выбора метода передачи данных. Этот метод должен был позволить увеличить стандартную скорость передачи по сравнению с имеющимися. Вот его краткое описание (взято из ранней документации):

Для разделения битов применяют два принципиально разных метода: синхронный и асинхронный.
Синхронный - после передачи бита происходит подача сигнала сигнализирующего о передачи бита.
Асинхронный - Внутри обоих компьютеров одновременно по первому(стартующему) сигналу происходит обнуление счётчиков и разделение битов происходит по таймеру. В данной схеме применяется несколько преобразованный синхронный метод. Разделение битов происходит по переходу с положительной волны синуса на отрицательную и наоборот. Сам бит определяется по времени (1/частоту) полупериода синуса. Нетрудно подсчитать, что если 0-1200Гц а 1-2400Гц, то средняя частота передачи 1800 Гц, при том, что 1 бит за полный период, получаем скорость передачи 1800 бит/с или 225 байт/с.

Существует два метода повышения скорости:

Требовалось проверить этот метод. Для этого была разработана упрощенная схема по варианту (б) - приставка к COM порту. Усовершенствование передатчика имеющихся подобных схем было произведено за счёт замены эмулятора ЦАП (см. схемы пакетных модемов), на цифровой генератор сигналов. Описание работы передатчика (взято из ранней документации).

Сложность создания передатчика заключалась в том, что был необходим генератор синуса с произвольной частотой (от 300Гц до 3000Гц) и возможностью запускаться с "нуля" по команде управления. В процессе наладки была опробована схема на сдвиговом регистре и 4 резисторах (так называемая эмуляция ЦАПа). Но из-за взаимного влияния резисторов наблюдались значительные скачки амплитуды в разных точках "синуса" (больше похожего на прямоугольный треугольник). Поэтому была разработана другая схема на счётчике, ПЗУ (2К) и ЦАП, которая обеспечила "хороший" синус. Он(синус) формировался из 64 точек с градиентом амплитуды 256 значений. Большего деления амплитуды и не требовалось, а вот больше 64 точек не удалось сделать из-за нехватки скорости выдачи с COM порта (около 300 Мгц максимальная частота с генератора примерно 300 000 / 64 = 4700Гц). Управление передатчиком происходит по одному биту с COM порта. Дополнительно для синхронизации в COM порт вводится один бит информирующий о первой точке синуса.

Если схема передатчика увеличилась, то схема приёмника напротов - уменьшилась. Это было достигнуто за счёт передачи функции определения частоты(периода) с "железа" на "софт" - от приёмника требовалось лишь определять переходы через ноль и иметь гистерезис для защиты от помех. Далее взято из ранней документации:

Приёмник представляет собой триггер Шмидта. С точки зрения "паяльника" это один ОУ практически любой марки и три резистора, два из которых задают уровень срабатывания. Принцип работы таков: Как тлько входной сигнал превысил положительный порог срабатывания, триггер переключается в 1, обратное переключение происходит, когда уровень сигнала будет меньше отрицательного порога срабатывания. Из этого следует, что помеха амплитудой меньше чем (2*порог срабатывания) не может помешать достоверному приёму. Таким образом приём информации осуществляется по 1 биту вводимому в COM порт.

Подключение к радиостанции.
Передатчик и приёмник имеют по одному проводу относительно земли, поэтому они подключаются напрямую. Единственное что надо собрать - это реле для переключение режима "приём/передача". Оно управляется с COM порта по одному биту через транзисторный ключ. В случае с радиостанцией ALAN 48plus это реле минимум с 3 группами контактов. Как ни странно, но сборка блока питания и схемы коммутации занимает большую часть времени чем сборка самого модема.

Программная часть или протоколы.
Большим плюсом схемы является возможность программного подбора скорости передачии других параметров. Это обуславливается превосходством "программного над аппаратаным" в схеме. Разумеется это одновременно и минус, т.к. всё машинное время компьютера уходит на приём/передачу данных. Но в дальнейшем после наладки связи и протоколов планируется переход на схему с однокристальной ЭВМ, которая возьмёт все процессы "на себя" (см. ниже). Основня суть протокола это посылка вначале стробирующего пакета состоящего например из байт - 0111110, по которому принимающая программа сможет распознать начало и конец байтов. Затем идёт заголовок состоящий из длины пакета, контрольной суммы, описания содержания блока (файл, данные, управление и.т.п.) и возможно некоторая служебная информация. Разумеется, что необходимо стремиться к уменьшению длины заголовка, т.к. при нескольких пользователях на одном канале размер кадра (блок с данными) должен быть небольшой (1024-256 байт) и заголовок будет отнимать от него "полезные" данные.

Были произведены следующие эксперименты, и их результаты:
1. Запись сигнала с передатчика на магнитофон (обычную кассету) и последующий приём. Примерно каждый третий пакет (посылка) принималась без ошибок. Сделано предположение, что это из-за плохого качества магнитной ленты.
2. Собран второй приёмник и тест проводился на двух радиостанциях Alan48+ Результат примерно такой же - верных пакетов меньше половины. Причём уже при длине пакета 512 байт он перестает достоверно приниматься. Расширения частотного спектра зон нуля и единицы влияют очень не значительно.
3. Проведено раздельное исследование приёмника (на ГЗЧ) и передатчика (на осциллографе) Приёмник [при подачи 1200 Гц на вход]: программа принимает последовательности нулей, среди которых с некторым периодом "проскакивает" единица. Ошибка носит несколько случайный характер, но избавиться допущенным расширением зоны не удаётся. Передатчик [в программе создан цикл генерации меандров]: на экране осциллографа сигнал периодически смещается, на слух заметны щелчки.
Сделано предположение, что это из-за нестабильной работы COM порта. На момент написания документа данную ошибку устранить неудалось.
Заключение по первой части: принятые пакеты подтвердили работоспосбность данного метода передачи данных. Ошибку с работой COM порта можно устранить путём создания схемы на ОМЭВМ или микропроцессорного модуля.

Разработка схемы на ОМЭВМ.

Толковые соображения:
1. С подключением внешней памяти (у омэвм внутренней мало) появляется не просто полностью внешний модем, но модем с загружаемой программой обработки сигнала, т.е. DSP (Digital Sound Processor) с практически любым алгоритмом. Для этого в Flash ПЗУ омэвм зашивается процедура приёма программы через COM порт, а затем управление передаётся ей.
2. В ПЗУ можно зашить ещё несколько функций для обеспечения работы модема с выключенным компьютером или вовсе без него (цифровой вызов абонента).
3. Подключение к COM порту по стандартной схеме позволит работать с ним из под Windows как с файлом, или вообще как с обычным модемом с использованием AT команд.

Немного о микропроцессорном модуле.
Модуль был собран на микропроцессоре Z80 (российский аналог КР1856ВМ1) по "минимальной" конфигурации - 2К ОЗУ и ПЗУ, 3 параллельных порта (BB55A), логика управления и генератор 3 МГц [6 корпусов].

Примерные детали:
Микроконтроллер Atmel.
Блок передачи: ЦАП - КР572ПА1
Блок приёма: можно ТШ, но лучше с использованием ЦАП из передатчика можно, добавив один ОУ, получить АЦП.
ОЗУ - от 4кб (РУ17) до 32кб(62256) с регистром защёлкой (ИР22)
PTT ключ + на свободные шины можно повесить блок индикации (ЖКИ или АЛС318) и кнопки управления.

Автор: Савинов Николай
Источник: www.mts-nn.ru/~nick507

Назад