Главная | Железо | Приемники | miniADSB | Декодер FGPA zuban

Декодер с FPGA для приемника miniADSB

Тэги: 
Тэги: 

Набор для сборки декодера для приемника miniADSB от zuban.

Сайт автора: http://hafik.zuban.name/~zuban/miniadsb/miniadsbrx.php

Форум поддержки: http://groups.yahoo.com/group/miniadsbrx/

1. Для приема ADS-B полный комплект оборудования должен быть следующим:

  • приемник miniADSB
  • компаратор LM393 или аналог, трансмиттер RS-485 (75176), источник питания стабилизатор 4 В
  • плата FGPA декодера
  • программное обеспечение

Набор FGPA декодер содержит только 3-ий пункт (отмечен зеленым)

1.1 Правильно собранный и рабочий приемник miniADSB имеет аналоговый выход с уровнями 0.5-2 В.

1.2 Схема обработки данных

Для предотвращения потери сигнала в коаксиальном кабеле, приемник miniADSB должен быть рядом с антенной. Возможный вариант это установка приемника прямо на антенне. Аналоговый сигнал на выходе miniADSB с высокоимпедансного выхода имеет уровни 0.5-2 В. Компаратор должен быть как можно ближе к приемнику, считай в одном корпусе.

FPGA декодер имеет коннектор для подключения Ethernet. Ethernet кабель содержит четыре витых пары. Одна пара используется для данных RS-485 от компаратора, другие три пары используются для подачи питания 5 В. MiniADSB работает при напряжении примерно 4 В, так что даже при очень длинном кабеле есть запас на потери напряжения в кабеле.

Благодаря RS-485 расстояние между приемником и декодером может быть десятки метров, падение напряжения же можно не учитывать при длине кабеля до 100 метров.

1.2 Компаратор

Компаратор не является частью декодера. Схема, изображенная на Рис. 2 должна быть расположена как можно ближе к приемнику miniADSB.

Много пользователей miniADSB утверждают, что используют LM393 или аналоги в качестве компаратора для приемника. По моему мнению LM393 слишком не быстродействующий. Я использовал LT1011, тоже устаревший, но его можно было приобрести в местных магазинах.

Постоянная времени цепочки R1-C1 должна быть примерно 100 нс или может быть полность убрана. Постоянная времени R2-C2 должна быть 2-5 мкс. Оно не может быть слишком маленьким (уменьшается чувствительность) или слишком большим (медленная реакция для самолетов находящихся близко). Поэкспериментируйте с подбором наилучшего приема. Много вариантов включения и цепочки R5-R6-R7, цель которой состоит в том, чтобы подбирать пороговое напряжение на отрицательном входе компаратора для уменьшения шумов при отсутствии сигнала.

Кликните картинку для увеличения.

Декодер имеет возможность инвертировать входные данные (устанавливается через web-интерфейс), так что нет точного метода определения когда данные инвертированы (перепутаны провода данных, перепутан "+" и "-" входы компаратора, ...). Если Вы видите нечетное количество инверсий на пути данных, просто еще раз проинвертируйте данные.

 2. FPGA изнутри

MicroBlaze процессор внутри FPGA работает на частоте 48 МГц. Это 32-х-битный процессор с производительностью почти 1 MIPS/МГц.

Внутри FPGA некоторая часть декодирования производится с помощью логики. Подготовленные данные поступают в буфер FIFO, откуда извлекаются микропрограммой.

Программа полностью работает в памяти SDRAM, и загружается туда из flash-памяти загрузчиком. MicroBlaze имеет кэш для ускорения доступа к памяти.

3. Web интерфейс

3.1 Возможности интерфейса

Пользователь может менять параметры декодера через web-интерфейс. Этот интерфейс защищен паролем, который можно менять. Метод авторизации - HTTP Basic Authentication. Пароль передается по сети в виде открытого текста! Используйте web-интерфейс только в доверенной сети иначе любой может увидеть Ваш пароль при желании.

3.2 Установка TCP/IP

Когда флэш память пуста или сделан Reset (через джампер) декодер имеет IP адрес 192.168.1.100 и пароль 1234 (пользователь admin). Первое что Вы должны сделать - это установить другой адрес и пароль.

3.3 Mac-адрес

Важно. Каждое устройство, подключенное к сети Ethernet должно иметь Mac-адрес в зависимости от производителя. Каждый производитель должен купить себе собственные пределы Mac-адресов. Теперь Вы производитель :)  Не беспокойтесь, есть несколько (а именно, каждый четверый) Mac адресов известных как 'locally administered'. Если Вы присвоите адрес из этих пределов и исключите повторение существующего адреса в сети - все будет работать прекрасно.

Locally administered MAC адрес должен начинаться с 02, 06, 0A, 0E, 12, 16, 1A, 1E, ... etc. Например: 52:33:11:AA:00:01

Когда флэш память декодера пуста (и после сброса), Mac адрес назначается из случайных чисел, которые получаются из шумов приемника.  Если у Вас есть две платы декодера, которые подключены к одной сети и не подключены к приемнику, то при включении питания у них скорее всего установятся одинаковые Mac адреса и сеть слетит. То же самое будет если сделать эти адреса одинаковыми специально.

4. Формат данных

Декодер понимает несколько форматов данных, все они происходят от простого "AVR" формата, который понимают много других декодеров. Данные могут быть доступны через serial порт, через TCP или UDP датаграммы. Не все интерфейсы поддерживают все форматы:

  Basic AVR Format Timestamped AVR Format Binary AVR Format Compressed AVR Format
Serial Port in future supported supported not available
TCP stream in future supported supported supported
Web Interface not planned supported not planned not planned
UDP datagrams in future in future not planned not available

 

Доступ к данным через web-интерфейс служит для отладочных целей. 

4.1 Basic AVR Format

Формат поддерживается многими декодерами и PC программами. Каждый Mode-S пакет данных на одну линию. Начинается со '*', 14 или 28 16-ти-ричных цифр содержат 7 или 14 байтов данных и далее ';'. Строка оканчивается двумя байтами 13 и 10 в (формат Windows).

*8D3C484899045DAE0807FFD23686;
*02E617B0D9F419;
*5D504DE20CDCC9;
*02A4853445E148;
*5D774100258F2C;
*02A185347F640D;
*2800171CD666DF;
*5D02912996CFE1;
*8D02912958CD84AF2E9F84A045FF;

4.2 Timestamped AVR Format

Этот формат на самом деле является Basic AVR Format, дополненный 48 битами Timestap (метка времени). Метка времени вычисляется из значения счетчика инкрементируемого на частоте 12 МГц. Для отличия от Basic AVR Format, каждая строка начинается с '@'.

@01D7F90185AE8D3C484899045DAE0807FFD23686;
@01D7F9029C1302E617B0D9F419;
@01D7F90634285D504DE20CDCC9;
@01D7F906F64202A4853445E148;
@01D7F908FBF65D774100258F2C;
@01D7F9096CD502A185347F640D;
@01D7F90B485D2800171CD666DF;
@01D7F90D8CED5D02912996CFE1;
@01D7F90F5AD48D02912958CD84AF2E9F84A045FF;

4.3 Binary AVR Format

Для уменьшения траффика (в медленных сетях), данные в Binary AVR Format пересылаются напрямую в двоичном виде без преобразования в шестнадцатиричный. Специальные символы (0xFF, 0xFE и 0xFD) включаются в пакет данных обозначая его начало и метку времени. Данные легко синхронизируются через COM-порт, TCP пакеты всегда начинаются с начала.

4.4 Compressed Binary AVR Format

Для еще большего сжатия применяется слегка доработанный gzip.

Есть две модификации zip формата:

  • Тип блока длиной только 2 байта (не 3) (бит конца файла неуказывается, данные бесконечны)
  • Блок всегда выравнивается на границу байта, каждый блок немедленно выдается в поток данных. Биты типа блока (первые биты блока) всегда начинаются на границе байта.

Параметры компрессора всегда установлены на режим 'fastest' (gzip-1). Используя Compressed Binary AVR Format экономится до 70% траффика по сравнению с Timestamped AVR Format.

5. Подключение PC
5.1 Любое приложение

Доступ к TCP потоку данных может быть получен стандартными утилитами как для Windows так и для Linux, например nc и telnet. Приемник имеет IP адрес 192.168.1.100 и TCP порт 7777, Вы можете получить доступ к данным набрав

nc 192.168.1.100 7777

или

telnet 192.168.1.100 7777

Использование nc чище чем telnet. Данные также доступны через http протокол, например через wget, набрав 

wget http://192.168.1.100/rx -O - 2>/dev/null

Учтите, что после адреса есть /rx.

5.2 PlanePlotter

PlanePlotter может непосредственно воспринимать данные Timestamped AVR Format, но принимает он только с COM порта, так что Вам нужна будет  какая-то утилита виртуального COM порта, например com0com. Эта утилита может создать два COM порта и эмулировать null modem кабель между ними. Данные с приемника могут направлены непосредственно в первый COM порт, а PlanePlotter можно настроить принимать данные со второго COM порта null modem кабеля.
Используя Timestamped AVR Format PlanePlotter может использовать MLAT (planeplotter.pbworks.com/w/page/17117304/MLAT-Introduction), как хакнутый SBS-1.
Важно: PlanePlotter не бесплатен, цена €25. Конечно Вы можете крякнуть его, но тогда у Вас не будет доступа к данным других пользователей через сеть и использовать MLAT не получится тоже, что не есть good.

5.3 Sprut's adsbScope

Это ПО (www.sprut.de/electronic/pic/projekte/adsb/adsb.htm) может подключаться напрямую к TCP потокам. Она с открытым кодом и бесплатна, что, имхо (автора), рано или позно приведет к доминированию над PlanePlotter. Есть модификация IC7K http://adsbradar.ru/adsbscope2-microadsb

6. Разъемы декодера
6.1 Питание

Плата декодера требует стабилизированного источника 5 V питания. Есть такой - MW0513SZ. Приемник, компаратор и декодер, все работают от одного источника питания потребляя где-то до 400 mA, использовать 500 mA источник питания в самый раз.

6.2 Reset джампер (сброс)

Если Вы забыли пароль и т.п. Вы можете сбросить все установки, включив декодер с установленной перемычкой. Примечание: джампер есть только на плате версии ADSB-2, на ADSB-1 его нет. В процессе сброса, все четыре светодиода на передней панели мигнут три раза.

6.3 RJ-45

Оба коннектора Ethernet и от приемника это разъемы RJ-45. Не перепутайте их! Иначе замкнете цепи на 5 В.

6.4 Светодиоды

Есть четыре светодиода (LEDs) на передней панели и два светодиода на каждый RJ-45 разъем (разъем приемника имеет двух-цветные диоды), но при соединении используется только один цвет. Ниже представлены варианты индикации:

LED Функция
LED1 PC подключен и данные принимаются ОК. Мигает с каждым пакетом но не более ~10 раз за сек.
LED2 Нет Mode-S данных от приемника
LED3 Приемник перегружен (слишком много сообщений). Мигает ~1 раз в сек.
LED4 Нет соединения с PC.
Ethernet зеленый LED Статус соединения Ethernet
Ethernet оранжевый LED Приме или передача Ethernet пакета
Приемник зеленый LED Кабель подсоединен - принимается шум
Приемник оранжевый LED Принят правильный пакет, мигает на каждый пакет но не более ~10 раз за сек.

 

7. Flash программирование / предзагрузка
7.1 Flash память

Во flash памяти на плате содержится FPGA конфигурация и прошивка. Она не может программироваться напрямую, только через FPGA используя JTAG порт. FPGA должен быть сконфигурирован перед программированием Flash через JTAG порт (используя USER1 JTAG команду). В обычном режиме, конфигурация загружается из Flash памяти, и не нужно никаких дополнительных действий. То же самое при обновлении. Когда же программируется чистая Flash память, FPGA должен быть сначала сконфигурирован через JTAG порт. Все необходимые файлы (кофигурация, программирование, изображения для обновления через web-интерфейс) включены в прошивку (см. раздел Файлы в miniadsbrx yahoo group). 

7.2 Типы Flash  памяти

Из-за нехватки Flash памяти на рынке, на печтной плате разведены дорожки под несколько вариантов чипов памяти. К сожалению, Atmel и Thomson (ST, Numonyx, ...) имеют различную разводку ножек, Вы должны обращать двойное внимание при пайке чипа памяти. Чипы Atmel и Thomson имеют одинаковые команды для чтения, поэтому FPGA конфигурация и загрузчик (bootloader) одинаковы для обеих типов памяти. К сожалению, они стираются и программируются полностью разными командами, поэтому прошивка должна быть пропатчена под каждую память. Сейчас у меня достаточно M25P80 8Mbit (1 MB) памяти, поэтому прошивка идет только для этого типа.

7.3 Предзагрузка памяти

По запросу, я могу предзагрузить flash память для Вас, тогда программирование через JTAG интерфейс не будет нужен. Но я не несу никакой ответственности если Ваша флэш память будет стерта и распрограммирована во время прошивки через web и Ваш декодер не захочет грузиться. Тогда вам понадобиться JTAG кабель для оживления Вашего декодера.

7.4 Программирование через JTAG: SVF файлы

Мои компиляции программ выданы в виде SVF файлов. Поэтому Вы можете использовать любой JTAG интерфейс, который понимает SVF файлы. Например ASIX PRESTO программатор (tools.asix.net/prg_presto.htm) (пожалуйста не вините меня, я был разработчиком железа для этого программатора). JTAG коннектор на плате имеет 1:1 разводку с PRESTO (На ADSB-2 плате нет неиспользуемых выводов VPP и пр. для сохранения места). Вы можете также использовать собственный JTAG кабель к LPT порту, Интернет кишит такими кабелями, схемами и программами для них, найти не трудно.

8. Документация на плату, инструкции по сборке
8.1 Схема

Посмотрите schema_ADSB-2.pdf на miniadsbrx yahoo group. Текст не в кривых, но шрифты можно найти. ADSB-1 уже не актуальна, две части платы который я делал я сохранил для обеих.

8.2 Указания по пайке

Посмотрите postup_osazovani.pdf (на Чешском) для инструкций по пайке маленьких SMD чипов – FPGA и SDRAM. Посмотрите pokladacka.pdf на miniadsbrx yahoo group для расположения деталей.

8.3 Тестирование и отладка

После установки всех компонентов, подключите питание к плате, установив перед этим напряжение 5.00 V и ток 400 mA. Ток потребления при отключенном применике miniADSB должен быть ниже 300 mA. Проверьте все источники питания на работоспособность и обеспечение 1.2 V, 2.5 V и
3.3 V.
Сейчас Вы можете сконфигурировать FPGA и запрограммировать Flash память. Если Flash память уже запрограмирована, декодер должен загрузиться, увеличив ток потребления примерно через секунду после включения питания на ~20 mA.

8.4 Прошивка

Посмотрите firmware_0-00.zip на miniadsbrx yahoo group и readme для него. Новые версии, запросы на доработку, баги и т.п. все это там же.

8.5 Список деталей

  • Детали в зеленой рамке: доступны через большинство местных магазинов
  • Детали в коричневой рамке: возможны проблемы с поиском данных деталей
  • Детали в красной рамке: недоступны в местных магазинах
  • Детали в фиолетовой рамке: для Ethernet соединения – без них возможна работа через COM-порт.

Кликните картинку для увеличения.

Кликните для увеличения

Деталь со странной аббревиатурой DJK02 - это разъем питания (см. Картинку 5).

8.6 Корпус

Корпус это стандартный алюминиевый корпус с лазерной прорезкой. Корпус выглядит реально хорошо, но он не дешевый.

Корпус анодирован.

Приобрести набор можно через наш Магазин.

 
 
 

Из фотографий

Комментарии

Clicky

Яндекс.Метрика