Выполненные проекты
Специализация
Контрактная разработка электроники / Проекты / Бортовой автомобильный самописец

Бортовой автомобильный самописец

ImageЗаказчик

Американская компания-разработчик инновационных продуктов и сервисов для мобильных коммуникационных устройств.

Проект

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

Задача

Бортовой автомобильный самописец представляет собой небольшое устройство размером чуть больше спичечного коробка, которое устанавливается в стандартный диагностический разъем любого автомобиля, поддерживающего стандарт автомобильной диагностики OBD-II (его поддерживают все автомобили после 1996 года выпуска).

Интерфейс OBD-II описывает пять протоколов низкого уровня:

  1. ISO 15765 CAN (Controller Area Network)
  2. ISO 14230 KWP2000 (Keyword Protocol 2000)
  3. ISO 9141
  4. SAE J1850 VPW (Variable Pulse Width Modulation)
  5. 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-порту.

Общая структурная схема модуля:

Image

Решение

Основные задачи по разработке:

  • Разработка и тестирование программного обеспечения
  • Разработка графического пользовательского интерфейса
  • Разработка программного обеспечения для тестирования аппаратной части на производстве

Аппаратная платформа

Устройство работает под управлением процессора 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.

Image Image Image

Программное обеспечение

При разработке программного обеспечения бортового самописца применялось различное открытое программное обеспечение, в том числе:

  • Ядро 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-протоколами.

Основные модули ПО:

  1. Модуль взаимодействия с пользовательским ПО через интерфейс USB, который реализует бизнес-логику
  2. Модуль логирования GPS-данных
  3. Модуль синхронизации времени по GPS
  4. Модуль логирования данных OBD диагностики
  5. Модуль записи звуковых файлов (формат wav)
  6. Модуль контроля системных ресурсов
  7. Модуль поддержки органов управления.
  8. Cервисные утилиты (обновление ПО, логирование и т.п.)

Структурная схема ПО:

Image

Дополнительно было реализовано специализированное программное обеспечение для проведения автоматизированного тестирования работоспособности устройств на этапе серийного производства.

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

Пример использования пользовательской утилиты для мониторинга параметров GPS в режиме реального времени:

Image

Преимущества

  • Эффективное использование возможностей ядра 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 месяцев

Скачать PDF - 182Kb