Разработать ПО на систему зажигания, приборную панель мотоцикла

Цена договорная
12 декабря 2020, 19:00 • 9 откликов • 47 просмотров
Разрабатываемый комплекс состоит из 2-х основных функциональных узлов - блок зажигания/измерения и блок отображения. Также есть дополнительные (планируемые) блоки, помечены звездочками.

Блок зажигания/измерения.
Алгоритм работы блока зажигания/измерения (канал зажигания): сбор данных с нескольких датчиков (ДПКВ, Холла, датчик разряжения, температурный, тока, напряжения), математическая обработка по встроенным или пользовательским таблицам, формирование выходного импульса на катушки зажигания (2 шт).
Алгоритм работы блока зажигания/измерения (канал измерения): сбор данных с нескольких датчиков (ДПКВ, Холла, температурные, токовые, напряжения, скорости), коррекция измеренных данных в соответствии с пользовательскими таблицами коррекции, "запаковка" полученных данных в пакет и отправка по асинхронному интерфейсу на блок отображения.
Программа блока зажигания/измерения должна работать на 2-х разных процессорах одного семейства (STM32), в трех режимах:
- режим 1, упрощенный: ампутированы все функции блока измерения, функции зажигания редуцированы.
- режим 2, стандартный: функции блока измерения редуцированы, результаты измерений не транслируются наружу, а выводятся на локальный дисплей., функции зажигания также редуцированы (но в меньшей степени, чем в режиме 1).
- режим 3 - полный: используются все заложенные функции как зажигания, так и измерения.
Общение с пользователем в режимах 2 и 3 - как через локальный дисплей и клавиатуру, так и по асинхронной шине передачи данных с блока отображения. Общение с пользователем в режиме 1 не предусмотрено.

Блок отображения.
Принимает пакеты информации от блока измерения, распаковывает их, и направляет на устройства индикации (графический ЖК 128х64, SPI, символьный ЖК 16х2, I2C, группа RGB светодиодов подсветки, до 6 стрелочных приборов (каждый прибор - отдельный МК, управляющий шаговым мотором со стрелкой)).
Блок отображения имеет орган управления в виде энкодера, позволяющий настаивать всю систему, в режиме настройки блок отображения выступает в роли терминала для блока измерения.

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

*Датчик уровня топлива.
Планируемый к разработке блок, довольно простое устройство, преобразователь емкость-частота.

*Блок распределения и защиты.
Планируемый к разработке блок, на данном этапе под него предусматривается только часть интерфейса в блоке отображения и тайм-слот. По отношению к блоку измерения - ведомый. Назначение - сбор сигналов с органов управления и концевиков, включение нагрузки через реле и предохранители. Мониторинг исправности реле, предохранителей и нагрузки. Что-то типа блока реле в авто, но с мониторингом.

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

*Блок сопряжения с ПК.
Планируемый к разработке блок, служит для сопряжения с ПК (по сути, преобразователь UART-USB), назначение - обновление прошивок остальных блоков, настройка и конфигурация их с ПК. На данный момент закладывается тайм-слот и возможность использование ПК, как терминала настройки.

Схемотехника устройств моя, опытные экземпляры (как правило, минимум 2 экземпляра, для себя и программиста) изготавливаю самостоятельно, справедливую критику и исправления принимаю положительно. Поправки и отладка возможны дистанционно (программаторы для PIC, AVR, STM имеются, пользоваться умею).

Использование беспроводных каналов связи (Bluetooth) и смартфонов как терминала не планируется, но может быть обсуждено.

Целевая аудитория разработки - мотоциклисты, в основном - на отечественных Уралах (новый Урал стоит порядка миллиона, так что не стоит сразу вешать ярлык уралист=нищеброд-колхозник ))). Впрочем, гибкость адаптации блока измерения/зажигания допускает применение на иномарках.
Сроки - весьма растянуты, ибо разработкой я занимаюсь с нуля, в одиночку, имея жену, малолетнюю дочку и три мотоцикла, поэтому работа и оплата будут поэтапные.

Смартфоном не пользуюсь, поэтому связь - мобильный телефон и электронная почта.

Территориально предпочтительно Москва и северо-восток области - так проще будет общаться, передавать тестовые блоки и т. п.
Файлы