- PVSM.RU - https://www.pvsm.ru -

Создание CAN-концентратора на базе esp8266

Когда разрабатываешь модульные приборы для самолета, всегда возникает задача коммуникаций между ними.

Создание CAN-концентратора на базе esp8266 - 1

Тут надо сделать уточнение, что соединение подразумевает слаботочную передачу сигналов, в основном от датчиков к контроллеру или на дисплей.

Передачу напряжений от генератора или от датчика оборотов надо вести обычным проводом без каких либо протоколов обмена, в этом случае только аналоговый сигнал.

Для передачи на физическом уровне выбрана шина CAN 2.0B, как наиболее универсальная под эти задачи.

Сам протокол передачи реализуется на микросхеме контроллера шины MCP2515 и приемопередатчика SN65HVD230, все это есть на модуле

Создание CAN-концентратора на базе esp8266 - 2

Микросхему п/п U1 заменил на указанную выше, чтобы модуль можно было запускать от 3.3. вольт

Планируемый функционал описанного концентратора:

- получение широковещательных ID из шины и передача их в сериал порт или в FIX-gateway для работы с pyEfis

- парсинг данных из симулятора FlightGear и передача в шину CAN

- запуск демо-режима

По большому счету датчики и индикаторы можно соединять по шине CAN и без концентратора, но для расширения режимов он необходим.

Для запуска функционала шины CAN на esp8266, а точнее esp07

Создание CAN-концентратора на базе esp8266 - 3

Используется библиотека https://github.com/coryjfowler/MCP_CAN_lib [1] с небольшими доработками под кварц 16 мГц.

В коде микроконтроллера указал ID из can aero space

#define BODY_PITCH_ANGLE_ID    0x137    /* in DEC 311 a/c pitch angle */

#define BODY_ROLL_ANGLE_ID     0x138    /* in DEC 312 a/c roll angle */

#define BODY_SIDESLIP_ID       0x139    /* in DEC 313 a/c sideslip */

#define ALTITUDE_RATE_ID       0x13A    /* in DEC 314 vertical speed */

#define IND_AIRSPEED_ID        0x13B    /* in DEC 315 indicated airspeed */

#define CHANGE_ID              0x13E    /* in DEC 318 QNH change flag */

#define BARO_CORRECTION_ID     0x13F    /* in DEC 319 barometric correction (QNH) */

#define BARO_ALTITUDE_ID       0x140    /* in DEC 320 barometric altitude */

#define HEADING_ANGLE_ID       0x141    /* in DEC 321 heading angle */

В качестве проводки выбрал 4-х жильную витую пару и быстросъемные разъемы.

Создание CAN-концентратора на базе esp8266 - 4
Создание CAN-концентратора на базе esp8266 - 5

Интересный режим парсинга данных из летного симулятора, о котором напишу чуть позже.

Он позволяет выводить физические величины параметров полета в шину CAN, чтобы на земле выполнять отладку приборов и датчиков.

Ниже показан ДЕМО-режим.

Соединение компьютера воздушных данных и CAN-концентратора

Создание CAN-концентратора на базе esp8266 - 6

P.S. Всем интересующимся, могу скинуть код проекта в .pio

Автор: Engineer747

Источник [2]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/mikrokontrollery/409136

Ссылки в тексте:

[1] https://github.com/coryjfowler/MCP_CAN_lib: https://github.com/coryjfowler/MCP_CAN_lib

[2] Источник: https://habr.com/ru/articles/877614/?utm_campaign=877614&utm_source=habrahabr&utm_medium=rss