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

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

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

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

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

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

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

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

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

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

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

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

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

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

Используется библиотека https://github.com/coryjfowler/MCP_CAN_lib с небольшими доработками под кварц 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, чтобы на земле выполнять отладку приборов и датчиков.

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

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

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

Источник: https://habr.com/ru/articles/877614/


Интересные статьи

Интересные статьи

Попадание внутренней корпоративной информации в чужие руки — страшный сон для любого бизнеса. Последствия таких инцидентов могут быть непредсказуемыми, от утечек данных клиентов и сопутствующих штрафо...
Если Вы используете Битрикс24 и у Вас один из архивных тарифов, то наверняка Вы уже в курсе того, что в 2023 году планируется прекратить их поддержку. Если нет, то сейчас самое время чтобы об этом пог...
Меня зовут Лилия и уже более 15 лет я преподаю начинающим тестировщикам. Анализируя свой опыт, я пытаюсь понять, почему успешные QA-лиды, QA-менеджеры и даже Head of QA с хорошим опытом от десяти лет,...
Прим. переводчика: само правило достаточно старое, да и пример, приведенный в статье - на мой взгляд самый простой. Поэтому статья подойдет скорее для новичков, люди с хорошим опытом напи...
На работе я занимаюсь поддержкой пользователей и обслуживанием коробочной версии CRM Битрикс24, в том числе и написанием бизнес-процессов. Нужно отметить, что на самом деле я не «чист...