Устройство распознавания рукописного ввода
Заказчик
 Европейский поставщик консалтинговых услуг и электрооборудования для автомобилей.
Задача
Разработать программный пакет поддержки платы, предназначенной для упрощения взаимодействия водителя в системе «человек-машина». Устройство должно обеспечивать поддержку различных европейских и азиатских языков, а также распознавание гистур (специальных скользящих движений пальцем по экрану ввода либо вблизи него). Устройство должно осуществлять контроль параметров и управлять режимами индикации и подсветки дополнительного оборудования автомобиля. Для производства данного изделия предъявляется специальное требование на соответствие процессов и программного обеспечения автомобильным стандартам AUTOSAR и MISRA.
Решение
В качестве решения для аппаратной платформы выбран процессор mpc5554, который рекомендован производителем для применения в области автоэлектроники. Его производительность и высокая степень интеграции позволяет создавать достаточно сложные системы, требующие вычислений в режиме реального времени, несмотря на сравнительно низкую стоимость. Он обладает производительностью в 5 раз больше, чем предшественник mpc500 и содержит 2Mb встроенной flash памяти. Так же он содержит более функциональные модули.
Аппаратное обеспечение
Выбранная отладочная платформа ITMPC5554 Target Board поддерживает:
- Nexus IEEE-ISTO 5001 класс 3 многоядерной отладки - характеристика, упрощающая процесс создания кода;
- интегрированные DSP функции и обновленный контроль прерываний;
- быстрый (1.25 мкс) 5В 12-ти битный АЦП.
Из дополнительных функций следует отметить:
- встроенная flash память, объемом 2Mb, позволяет производить одновременное чтение и запись, включая EEPROM - электрически стираемую перепрограммируемую ПЗУ;
- поддержка 5.0V интерфейса делает устройство совместимым с существующими системами и дает возможность работы с сенсорами и системами ввода-вывода;
- встроенный обработчик поддерживает SIMD и DSP инструкции;
- больше ресурса центрального процессора доступно разработчику, благодаря использованию режима DMA и широкополосных 64-х битных внутренних шин;
- совместимость с программным обеспечением микроконтроллеров семейства MPC500.

Программное обеспечение
Начальный загрузчик и программное обеспечение хранятся во внутренней FLASH памяти процессора. Требование поддержки безопасного обновления загрузчика и приложения пользователя по существующим протоколам с целью совместимости с другим оборудованием в автомобиле обусловило разделение начального загрузчика на два уровня:
- загрузчик первого уровня, выполняющий минимальную конфигурацию платы, и осуществляющий слежение и выбор активного загрузчика второго уровня;
- два загрузчика второго уровня, один из которых является активным.
Загрузчик второго уровня производит окончательную конфигурацию периферийных устройств, поддерживает необходимые протоколы в системе и имеет функции диагностики. Наличие двух копий загрузчика второго уровня, одна из которых является активной, позволяет не потерять работоспособность всей системы в случае неудачного обновления, и произвести восстановление, не прибегая к услугам специального центра, без извлечения устройства из автомобиля.
Поскольку одним из требований к устройству была его возможность интеграции в существующий программно-аппаратный комплекс автомобиля, то с этой целью реализован ряд специальных протоколов взаимодействия производителя.
С целью выделения большего объема ресурсов для программного решения, принято решение использовать внешнюю FLASH. Производителем аппаратной платформы предполагалось возможность использования FLASH различных компаний-изготовителей – для этого разработан унифицированный драйвер внешней FLASH.
Также специалистами компании Promwad был разработан “Memory Stack” согласно стандарту AUTOSAR, включающий в себя:
- Memory Interface;
- Non-volatile manager;
- Internal FLASH driver;
- External FLASH drivers;
- RAM and ROM complex test.
Для плавного регулирования подсветки органов управления разработан драйвер встроенного широтно-импульсного модулятора.
Для контроля параметров бортовой сети питания автомобиля используется встроенный аналого-цифровой преобразователь (АЦП). С целью повышения точности калибровка АЦП производится динамически. При отклонении параметров от заданного диапазона устройство отключается и тем самым предотвращает свой возможный выход из строя. Возвращение в нормальный режим работы происходит только после восстановления номинальных параметров.
Для выполнения требований, предъявленных к надежности программного обеспечения, разработана и согласована с заказчиком документация и специальное программное обеспечение для тестирования. Для каждого модуля составлены полные сценарии поведения и разработан план для проведения тестов.
Так, например, объем тестов для драйвера FLASH памяти составил порядка 70 пунктов и охватывает:
- проверку кода на соответствие реализации, согласно требованиям AUTOSAR;
- генерацию отчета проверки на соответствие стандарту MISRA;
- тестирование поведения системы при правильных сценариях;
- тестирование поведения системы в ошибочных сценариях;
- тестирование поведения системы в критичных сценариях (сценарии с граничными параметрами).
Преимущества
- Соответствие ПО автомобильным стандартам AUTOSAR и MISRA;
- Отсутствие аналогов у других производителей автомобильного оборудования;
- Улучшенная эргономика управления – повышение безопасности движения;
- Минимальные риски возникновения ошибки на стадии производства, исправление которой потребует значительных финансовых затрат (отзыв автомобилей);
- Универсальность решения позволяющая легко сменить аппаратную платформу.
| Языки программирования |
C, C++, ASM |
| Интерфейсы |
USB, RS232, SPI |
| Средства разработки |
WinIDEA, MSVC2005. |
| Средства управления проектом |
dotProject, MSProject, SVN |
| Трудозатраты |
80 человеко-дней |
| Срок выполнения проекта |
6 месяцев |
|
|
|