AIS-приёмник из доступных комплектующих, своими руками
Задумал расширение зоны покрытия своего проекта AIS-Мониторинга, "разбрасыванием" AIS-приёмников. Вдохновение придал проект dAISy: https://github.com/astuder/dAISy. Для пробы подыскал на Aliexpress модуль E30-170T20D на трансивере от Silicon Labs 4463 rev B1 (далее SI4463), который спроектирован на работу в диапазоне от 148-173 МГц (подходит для работы с AIS работающим на частоте ~162 МГц). Над этим модулем ставлю эксперименты.
Коротко о результатах:
- Положительный - модуль реально работает в качестве ais-приёмника;
- Отрицательный - чувствительность мягко говоря - плохая. При подключении хорошей антенны, максимальная дальность приёма от станций находящихся на расстоянии не более 4.5-5 морских миль (8.3-9.2 км).
Обращаю внимание, что я не несу никакой ответственности! Если Вы возьмётесь перепрошивать модуль, то его начальные функции будут недоступны. Если Вы что-то подсоедините не так и выпустите из микросхем волшебный дым - это Ваши проблемы. Подходите к вопросу ответственно и проверяйте все соединения!
Быстрый старт
Введение
Модуль E30-170T20D построен на трансивере SI4463, который управляется китайской копией 8-ми битного микроконтроллера от STMicroelectronics STM8L151G6 (далее STM8L). Именно в микроконтроллер необходимо вшить управляющую программу.
Китайцы оставили на модуле E30-170T20D отладочный "разъём" SWIM через который можно проводить прошивку и отладку STM8L. На фото отверстия "VSGR" - это контакты SWIM.
Контакт | Назначение |
---|---|
V | Питание 3.3V |
S | Сигнал SWIM |
G | Питание GND |
R | Сигнал Reset |
Я написал простейшую программу для STM8L, которая конфигурирует SI4463 на частоту AIS и осуществляет передачу полученных данных в формате NEMA-0183 на UART разьём модуля E30-170T20D.
Обычно AIS использует два канала: 161.975 МГц и 162.025 МГц. В моей программе отсутствует возможность переключения между каналами, я выкладываю две прошивки:
- одна для приёма канала А - 161.975 МГц (MD5: 39f92826c18c9c9cae04f15affeef091);
- вторая для приёма канала B - 162.025 МГц (MD5: a8f2ae5f5b32e5143d10294126a3a63d).
Прошивка
Для прошивки я использую китайский программатор/отладчик ST-LINK V2.
Прошивку можно осуществить программой: stm8flash. Исходники: https://github.com/vdudouyt/stm8flash. Версия для Windows: https://github.com/sensics/IR-Board-Programmer/tree/master/stm8flash, необходимо скачать DLL и EXE файлы.
Необходимо произвести коммутацию согласно таблице ниже:
Контакт E30-170T20D | Контакт ST-LINK |
---|---|
V или VCC | 3.3V |
S | SWIM |
G или GND | GND |
R | RST |
Процесс прошивки предельно прост. Полагаю что все файлы у вас находятся в одной папке.
Вводим:
stm8flash -c stlinkv2 -p stm8l151?6 -s flash -w a_161.bin
Получаем ответ:
Determine FLASH area
Due to its file extension (or lack thereof), "a_161.bin" is considered as RAW BINARY format!
32768 bytes at 0x8000... OK
Bytes written: 32768
Проверка
Задумка такова, что при подаче питания на модуль он сразу начинает приём данных из эфира и передаче данных на скорости 19200 бод на вывод RX. Я использовал USB TTL конвертор UART. После соединения E30-170T20D с конвертером тремя проводами по схеме:
Контакт E30-170T20D | Контакт USB TTL UART |
---|---|
VCC | 5V |
TXD | RXD |
GND | GND |
Здесь будет блок об подключении через putty...
Декодирование и просмотр данных от AIS, реализует свободная программа OpenCPN.
- Есть предположение, что чувствительность/дальность приёмника можно увеличить оптимизировав обвязку SI4463, но нужно взяться за паяльник. К сожалению этот вариант не особо интересен, т.к. во главу я ставил доступность изделия/комплектухи.
- Есть идея использовать ногу модуля AUX для выбора рабочего канала.
- Изначально я задумывал передачу данных на сервер через GSM-модем, свободные ноги (TX, M0, M1) на модуле ещё есть, программа (даже в первой неоптимизированной версии) получилась очень компактной, памяти осталось более чем достаточно для управления модемом.
- Если решу вопрос с дальностью приёма, то пойду на проект двухканального приёмника (два SI4463 и какой нибудь STM32 с двумя SPI, UART и USB).
- По наличию свободного времени будет продолжение...
Исходники
Тем кому интересно что внутри и как работает открываю исходники.