Бортовой автомобильный самописец
Заказчик
Американская компания-разработчик инновационных продуктов и сервисов для мобильных коммуникационных устройств.
Проект
Разработать бортовой автомобильный самописец — портативное устройство контроля и диагностики технического состояния автомобиля с функциями записи маршрута, фиксирования переговоров пассажиров в салоне и передачи всей информации по беспроводному каналу в диспетчерско-координационный центр.
Задача
Бортовой автомобильный самописец представляет собой небольшое устройство размером чуть больше спичечного коробка, которое устанавливается в стандартный диагностический разъем любого автомобиля, поддерживающего стандарт автомобильной диагностики OBD-II (его поддерживают все автомобили после 1996 года выпуска).
Интерфейс OBD-II описывает пять протоколов низкого уровня:
- ISO 15765 CAN (Controller Area Network)
- ISO 14230 KWP2000 (Keyword Protocol 2000)
- ISO 9141
- SAE J1850 VPW (Variable Pulse Width Modulation)
- SAE J1850 PWM (Pulse Width Modulation)
Автомобили Chrysler, все автомобили европейского производства и большинство азиатских производителей используют протоколы ISO 9141 или ISO 14230 KWP2000. В автомобилях General Motors используется SAE J1850 VPW, а SAE J1850 PWM является стандартом для производителя Ford.
В задачи устройства входит сбор, хранение и передача информации о маршруте транспортного средства (по данным системы глобального позиционирования GPS), запись переговоров пассажиров, диагностика технического состояния автомобиля. Устройство собирает следующие диагностические показатели:
- температура охлаждающей жидкости
- количество оборотов двигателя
- количество топлива
- скорость движения автомобиля
- состояние системы кондиционирования воздуха и др.
Вся накопленная информация передается в диспетчерско-координационный центр по беспроводному стандарту IEEE-802-11b/g Wi-Fi (если транспортное средство находится в зоне доступа сети) либо через прямое подключение по интерфейсу USB.
В задачи специалистов компании Promwad входила:
- Разработка программного обеспечения по сбору, обработке, хранению и передаче данных в диспетчерско-координационный центр
- Разработка дизайна и конструкции корпуса устройства, редизайн схемотехники
Взаимодействие с бортовым самописцем должно осуществляться посредством графического пользовательского интерфейса. Программное обеспечение должно запускаться автоматически при подключении устройства к USB-порту.
Общая структурная схема модуля:

Решение
Основные задачи по разработке:
- Разработка и тестирование программного обеспечения
- Разработка графического пользовательского интерфейса
- Разработка программного обеспечения для тестирования аппаратной части на производстве
Аппаратная платформа
Устройство работает под управлением процессора Atmel AT91SAM9RL64 с ядром ARM 9. Память программ и данных включает в себя 32 MB SDRAM и 1024 MB NAND флеш. В устройстве были реализованы следующие коммуникационные интерфейсы: IEE802-11b/g WiFi; USB 2.0 device; GPS; CAN; ISO9141, ISO14230, VPW, PWM.
Для тестирования и отладки протоколов автомобильной диагностики применялись эмуляторы блока управления автомобиля таких производителей как Bowser Electronics и ScanTool.net, LLC.

Программное обеспечение
При разработке программного обеспечения бортового самописца применялось различное открытое программное обеспечение, в том числе:
- Ядро Linux v. 2.6.35
- Загрузчик U-boot 2010.09
- Начальный загрузчик Bootstrap-v1.15
- Утилиты wireless-tools для работы с WiFi-сетями
- OpenSSL для шифрования данных
- GPSD сервер для работы с GPS
- buildroot-2010.08 для сборки прошивки для устройства
Стоит также отметить, что при отладке ПО была выявлены и успешно исправлена ошибка в алгоритме мультиблочной передачи данных в стандартном драйвере ядра Linux v. 2.6.35 AT91 MCI. Данные исправления вошли в релиз ядра v.2.6.37.
Поддержка OBD-протоколов ISO9141, ISO14230, PWM, VPW была реализована программно, за счет реализации на процессоре real-time логики управления OBD-протоколами.
Основные модули ПО:
- Модуль взаимодействия с пользовательским ПО через интерфейс USB, который реализует бизнес-логику
- Модуль логирования GPS-данных
- Модуль синхронизации времени по GPS
- Модуль логирования данных OBD диагностики
- Модуль записи звуковых файлов (формат wav)
- Модуль контроля системных ресурсов
- Модуль поддержки органов управления.
- Cервисные утилиты (обновление ПО, логирование и т.п.)
Структурная схема ПО:

Дополнительно было реализовано специализированное программное обеспечение для проведения автоматизированного тестирования работоспособности устройств на этапе серийного производства.
Для взаимодействия с портативным бортовым самописцем на стороне ПК была реализована утилита конфигурации, она работает под ОС Windows XP и предлагает пользователю последовательность шагов для настройки параметров устройства и тестирования его функциональности. Взаимосвязь устройства с ПК осуществляется посредством интерфейса USB. Разработка пользовательского интерфейса была выполнена при помощи Qt4.7.0, QWT-5.2.0, QSerialPort.
Пример использования пользовательской утилиты для мониторинга параметров GPS в режиме реального времени:

Преимущества
- Эффективное использование возможностей ядра Linux для задач реального времени
- Надёжное отказоустойчивое обновление прошивки без потери пользовательских данных и настроек
- Полное управление устройством как по USB, так и по WiFi
- Зашифрованный файл настроек
- Интуитивно понятный графический интерфейс пользователя
- Корпус спроектирован с защитой от несанкционированного отключения модуля
|
Технологии
|
Embedded Linux, gpsd, ODB-II, Qt4
|
|
Интерфейсы
|
USB 2.0, Wi-Fi, CAN, ISO9141, ISO14230, VPW, PWM, UART, SPI
|
|
Языки программирования
|
C, C++, bash
|
|
Средства разработки
|
GCC, GNU make, buildroot, qtcreator, qmake
|
|
Средства управления проектом
|
SVN, redmine
|
|
Срок выполнения проекта
|
9 месяцев
|
|