Современное программное обеспечение для автомобиля. Программное обеспечение для ремонта автомобилей. Удаление кодов неисправности

Любой электронный блок автомобиля подключен к диагностической шине - цифровой линии, позволяющей бортовой электронике взаимодействовать с диагностическим оборудованием. Здесь кроется первая проблема: хотя теоретически существует единый стандарт OBD-II, стандартизирующий метод связи с ЭБУ и тип разъема, распространяется он только на системы впрыска. «Достучаться» до блоков ABS, SRS и так далее через протокол OBD- II нельзя. Но и в системах впрыска зачастую применяются специфичные для конкретной фирмы коды ошибок и кодировка данных состояния: при диагностике абсолютно исправного автомобиля не подходящей для его ЭБУ программой можно увидеть данные, несовместимые с реальностью.

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

  • Считывание текущих и сохраненных данных . Наиболее примитивные устройства способны считывать только сохраненные и текущие ошибки, но в целях диагностики такие вещи практически бесполезны: без возможности корректно считать текущие данные (расход воздуха, степень открытия дросселя, напряжения лямбда-зондов) прибор является скорее игрушкой, чем реальным инструментом.
  • Испытание исполнительных механизмов . В зависимости от степени интеграции бортовой электроники можно проверять исправность множества электромеханических узлов: от включения бензонасоса до испытания дворников (если мотором управляет контроллер, естественно).
  • Адаптация датчиков и исполнительных механизмов . Ряд сложных узлов требуют принудительного согласования с ЭБУ: установка нулевого положения сервопривода дроссельной заслонки, задание дебета пьезофорсунок на дизелях Common Rail и так далее.
  • Изменение конфигурации . Большинство блоков являются универсальными для всего семейства автомобилей, и в них задается конфигурация, соответствующая конкретной комплектации (например, в контроллер подушек безопасности прописано число и расположение подушек). Простейшие примеры реконфигурации - изменение языка приборной панели, активация бортового компьютера, отключение неисправных подушек безопасности.

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

Самое же главное в диагностике автомобиля - не «навороченность» прибора, а профессионализм человека, его использующего. Поэтому, покупая диагностический сканер в личное пользование, стоит задуматься - не станет ли это лишней тратой денег, и не лучше ли обратиться к настоящему диагносту?

Сталкиваясь с реалиями машиностроительной промышленности, большинство разработчиков программного обеспечения не справляются – уж очень узкоспециализированы продукты, с которыми приходится работать. Это вам не создание программ для интернет-пользователей, компьютеров и даже не мобильные приложения, а потому новички чувствуют себя, как Томас из фильма «Бегущий в лабиринте». Посмотрите, примерно, 50 секунд трейлера – и вы поймете, какой шок испытывают те, кто имеет дело с разработкой ПО для автомобилей впервые.

Все, что у вас есть - это множество терминов и инструментов, о которых вы понятия не имеете. Когда во время собеседования в одной автомобильной компании я поинтересовался, какую IDE они используют, интервьюеру мой вопрос, мягко говоря, не понравился. Я привык к Visual Studio, и наивно надеялся, что здесь для разработки встроенного программного обеспечения понадобится что-то аналогичное. Я даже не представлял, что меня ожидало! Просто море мелких и серьезных (по сложности) инструментов, которым нужна была очередная жертва.

Причем, когда речь идет о разработке программного обеспечения для автомобилей, инструменты отнюдь не единственная проблема. Практически невозможно найти литературу для новичков или просто обучающие материалы, касающиеся библиотек или архитектуры соответствующих программ. Термин «учебное пособие» и вовсе звучит неуместно, ведь сфера автомобилестроения – весьма закрытое сообщество. Да и сообществом ее вряд ли назовешь, ведь при такой конкуренции никто не должен догадаться, как вы создаете ту или иную программу. Чтобы узнать хоть что-то об отдельных инструментах и механизмах этого сегмента программирования, вы можете записаться на запредельно дорогие курсы, но ваша компания должна быть готова выложить немалую сумму и потребуется не меньше нескольких недель, чтобы получить опыт, который вам нужен уже сейчас. Очень жаль, что разобраться в специфике программирования для автомобилестроения так сложно, а потому я решил посвятить свою статью именно этой теме.

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

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

Какие темы мы рассмотрим?

  • Как встроенное программное обеспечение повышает производительность автомобиля?
  • Как встроенные приложения позволяют управлять автомобилем?
  • Какие существуют типичные ограничения CPU?
  • Как благодаря встроенным программам осуществляется процесс непрерывной обработки данных с датчиков?
  • Как это программное обеспечение структурировано и как отдельные приложения взаимодействуют между собой для управления автомобилем?
Я отвечу на эти вопросы, рассмотрев конкретный пример, а заодно сделаю обзор по разработке архитектуры встроенного программного обеспечения. В качестве примера мы возьмем полностью электронную систему рулевого управления. Это не настоящая модель, но по строению она, в принципе, похожа на то, что вы, скорее всего, видели в своем автомобиле. Мы поговорим подробнее об архитектуре, а затем перейдем к упрощенной схеме, раскрывающей суть функционала системы.

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

Данная модель частично управляется программно. Частично означает, что специализированное ПО лишь помогает водителю, но полный контроль над системой имеет именно он.

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

Работу ПО обеспечивает крошечный процессор или, если говорить точнее, микроконтроллер, по сети подключенный к датчику.

Когда водитель поворачивает руль, благодаря датчику, который постоянно передает информацию о текущем угле поворота, ПО получает соответствующий сигнал. Например, если водитель поворачивает руль на 90 ° вправо, в течение секунды сигнал датчика обрабатывается по следующему принципу:

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


Электронный блок управления (ECU)

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


Руль - синий, рулевая рейка - розовый (прим.)

Становится понятно, что даже обработка информации здесь не подчиняется ни логике событийно-ориентированного программирования, как в случае с привычными приложениями графического интерфейса пользователя, ни законам пакетных фалов. Вместо этого требуется непрерывная, своевременная обработка входящих данных. Если программе понадобится слишком много времени, чтобы проанализировать показатели датчиков, рулевая рейка и передние колеса автомобиля будут двигаться с задержкой, и водитель это заметит. Скорее всего, в экстремальной ситуации это приведет к потере контроля над автомобилем , например, при повороте руля в целях объезда препятствия машина не сразу среагирует на маневр. Подобная специфика повышает требования к временным показателям программ для автомобилей, особенно, если учесть ограниченную производительность процессора стандартных электронных блоков управления.

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

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



До начала текущего столетия в автомобилях было не так уж и много электронных систем. Некоторые дорогие модели имели электронное зажигание, круиз-контроль и климат-контроль, но это было довольно примитивные системы аналоговой электроники. С тех пор многое изменилось. Современные автомобили, даже базовые модели, имеют в своем составе десятки микропроцессоров и микроконтроллеров разной мощности, от крошечных 4-х битных устройств до 32-х или даже 64-х разрядных монстров.


Каждое из этих устройств содержит в себе определенную программу для выполнения определенных задач, поэтому программное обеспечение является одним из важнейших факторов качества и надежности автомобиля. Чтобы упорядочить разработку автомобильных встраиваемых систем и программного обеспечения для них, были введены специальные стандарты, и вот их основной (но не полный) список:

  • Шина CAN – средство для надежного соединения множества электронных систем вместе с минимальным количеством проводов.
  • MISRA C (и C ++) – подробный список правил по использованию языка C в системах критической безопасности, таких как автомобили.
  • OSEK / VDX – стандарт для операционных систем реального времени, используемых в автомобилях и прочих подобных системах.
  • Genivi – стандарт для систем на базе Linux, используемых для информационно-развлекательных систем в автомобиле.

Рассмотрим каждый из этих стандартов поподробнее.


Шина CAN


Проводка в автомобилях традиционно прокладывается по принципу «от точки к точке». Эта схема проста для понимания и технической поддержки, но быстро становится чрезмерно сложной, когда количество электронных систем увеличивается. В какой-то момент использование системной шины начинает иметь смысл. Пучок проводов направляется от одного устройства к другому, и каждое устройство имеет уникальный адрес шины и реагирует только тогда, когда оно видит этот адрес на шине. В автомобильных системах используются несколько систем шин, но шина CAN является наиболее хорошо известной и широко применяемой.



Разработчики встраиваемых систем часто сожалеют о том, что ни один язык программирования не идеально подходит для их конкретных потребностей. В некотором смысле, эта ситуация неудивительна, потому что, хотя очень многие разработчики работают над созданием встраиваемых приложений, они по-прежнему представляют собой лишь весьма небольшой коллектив в мире программирования сообщества. Тем не менее, некоторые языки были разработаны с учетом их использования во встраиваемых системах, например, PL/M, Forth и Ada. Но они не являются общепринятыми.


Компромиссом, который был принят почти повсеместно, является язык C. Язык C является компактным, выразительным и мощным. Он предоставляет программисту средства, позволяющие написать эффективный, читабельный и легко поддерживаемый код. Все эти особенности привели его к его популярности. К сожалению, этот язык также позволяет неосторожным разработчикам писать опасный код, который может вызвать серьезные проблемы на всех этапах разработки проекта. В автомобилях и прочих критических в плане безопасности системах это может быть большой проблемой.


Именно поэтому в конце 1990-х годов ассоциация Motor Industry Software Reliability Association (MISRA) представила ряд правил для использования языка C в системах транспортных средств. Этот стандарт стал известен под именем MISRA-C. Также был установлен аналогичный подход к использованию языка C++. Хотя эти принципы были написаны для разработчиков программного обеспечения, применяемого в автомобилях, вскоре они начали распространяться на другие области применения, где безопасность имеет важнейшее значение.


OSEK/VDX


OSEK/VDX является стандартом для ОСРВ, предназначенных для использования в системах управления автомобилями. Он был разработан с нуля для этой цели и включает в себя основные характеристики, необходимые для обеспечения безопасности критической системы. Ключевой особенностью является отсутствие динамических объектов; все создается статически во время сборки. Внутренняя простота этой реализации не ограничивает значительно разработчиков программного обеспечения, но устраняет значительный потенциальный источник сбоя системы. И это неудивительно, что другие отрасли проявляют интерес к данному стандарту. Операционные системы, поддерживающие OSEK/VDX, сегодня доступны от целого ряда поставщиков.



Большинство информационно-развлекательных систем в автомобилях не имеют жестких требований по безопасности и не слишком привязаны к реальному времени, поэтому Linux является хорошим выбором, поскольку он предоставляет широкий выбор дополнительных программных компонентов. И Genivi является стандартом для реализации Linux в данном контексте.

Автомобильный мир не так прост, как кажется на первый взгляд. В мире автопромышленности много непонятного и неоднозначного. Запутанные автомобильные инструкции различные непонятные сокращения новых технологий, аббревиатуры опций и многое другое сбивает нас с толку. И во всем этом разнообразие технологий больше всего нам понятны новые электронные инновации в сфере автомобильной развлекательной электроники. Девиз современного мира - лучше жить с помощью технологий, чем отказаться от них.

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

Если Вы только , то почти наверняка при принятии окончательного решения ключевую роль будут играть новые электронные технологии. Мы специально отобрали самые распространённые современные технологии (функции), которые последние годы стали устанавливаться на современные автомобили. Большинство функций в обзоре присутствуют в новых автомобилях, стоимость которых не более 1,5 млн. рублей.

Поэтому Вам будет легко определить, какие функции Вы хотели бы видеть в своем автомобиле.

1) Bluetooth

Bluetooth достаточно недавно стала символом беспроводной автомобильной громкой связи. Но эта беспроводная технология, также может на небольшом расстоянии обеспечить подключение различных современных гаджетов к бортовому компьютеру автомобиля. Если у Вас есть современный смартфон под управлением современных операционных систем: Ios Android, BlackBerry или Windows Phone, то, скорее всего Ваше устройство имеет функцию Bluetooth.

Также почти в любом современном смартфоне есть профиль настройки профиля SMS сообщений с помощью технологии Bluetooth. Эти настройки помогут настроить Вам, отправлять SMS сообщение с помощью автомобильной громкой связи. Каким образом? Все очень просто. Вы за ранее можете в черновиках создать короткие шаблоны SMS сообщений. С помощью голосовой команды Вы будете отправлять в ответ, на поступившие сообщение, которое во многих автомобилях Вы можете прочитать на экране ЖК-экрана мультимедийной системы.


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


Практически все автомобили, оснащенные Bluetooth, могут принимать с Ваших гаджетов потоковую музыку. Этот тип соединения позволяет с Вашего телефона, смартфона, планшета или МР3-плеера воспроизводить музыку на динамиках автомобиля. В качестве удобства на многих современных автомобилях, для управления музыкой и громкостью звучания нет необходимости пользоваться электронными гаджетами, передающие по беспроводной системе музыкальный поток. Все это Вы можете делать на мультимедийной системе машины.

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

2) Порты USB


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

Воспроизведение музыки через USB порт имеет ряд преимуществ перед Bluetooth. Так при передаче музыкального потока по беспроводной технологии, система Bluetooth сжимает аудио файл, для быстрой передачи по каналу беспроводной радиосвязи, что ухудшает качество звучания мелодий.

3) Бесконтактный ключ автомобиля и зажигания


У нас есть более важные дела, чем копаться в кармане или в сумке в поисках ключа от автомобиля. Для этого есть технология беспроводного электронного ключа автомобиля. Принцип действия прост. В вашем кармане или сумке лежит электронный ключ, который когда Вы подходите к машине посылает в автомобиль специальный код для открытия двери. Подойдя к машине, Вы просто открываете дверь, садитесь в автомобиль и нажимаете кнопку запуска двигателя, не вставляя ключ в замок зажигания. Очень удобная функция, которая в последнее время устанавливается на многие новые автомобили.

4) Интеграция приложений


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

5) Распознавание голоса


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

Если раньше система требовала точного произношения определенной команды, то сегодня достаточно сказать часть команды и система распознает, чего Вы хотите.

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

6) Удаленное управление автомобилем


Как Вы думаете, возможно ли С системой дистанционного управления транспортным средством такое возможно. Для этого в App Store или Google Play существуют специальные приложения. Так с помощью этих программ, Вы можете отключить сигнализацию или включить. Также на расстояние Вы можете заблокировать автомашину при необходимости. Некоторые автомобили позволяют программам со смартфона получать данные о температуре в салоне и на улице, смотреть соответствующие диагностические данные, такие как уровень топлива, расход топлива, запас хода, а также получать данные со спутниковой навигации о местоположение транспортного средства и многую другую информацию.

7) Система контроля слепых зон


Мировые исследования показывают, что большая доля ДТП происходит из-за слепых зон автомобиля. В попытке остановить эту эпидемию аварий, большинство автопроизводителей стали оснащать свои транспортные средства системой контроля слепых зон. Действует все очень просто. Если во время движения автомобиля в мертвой, не просматриваемой зоне, находится автомобиль или другой объект, система предупреждает водителя об этом. На боковом зеркале или на приборной панели появляется предупреждающий знак.

8) Система контроля полосы


Эта технология призвана помочь водителям контролировать полосу движения. Специальные сенсорные датчики и камеры следят за дорожной разметкой. В случае пересечения полосы автомобиль предупреждает водителя об этом либо подачей звукового сигнала, либо вибрацией, которая передается на рулевое колесо. Во многих роскошных автомобилях, таких как Acura, Mercedes-Benz, и Audi, недавно появилась новое поколение подобной системы, которая при определенных настройках может автоматически сама изменять положение рулевого колеса, для того чтобы выравнивать автомобиль в случае неконтролируемого съезда с полосы.

9) Телематика


Эта новая технология позволяет Вам не просто подключить Ваш смартфон к информационно-развлекательной системе автомобиля, но и получить ряд . Если автомобиль, оборудованный мобильным интернет модемом и который подключен к безлимитному тарифному плану, то Вы можете совершать звонки с телефона, через автомобильный интернет, пользуясь интерфейсом автомашины. Это не только сэкономит вам мобильный трафик телефона, но сделает общение более удобным.

Также функции телематики предусматривают программирование информационной системы автомобиля на экстренные звонки с помощью Вашего сотового телефона в случае аварии. В таком случае система в автоматическом режиме сама пошлет экстренный вызов через ваш смартфон.

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

10) Адаптивный круиз-контроль


Многие системы предупреждения столкновения автопромышленности в области безопасности. В ближайшем будущем появятся практически на всех современных автомобилях. Это также крайне необходимо, как и подушки безопасности, без которых сейчас не обходится не один автомобиль.

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


Более продвинутые версии технологии предупреждения столкновения могут самостоятельно (без участия водителя) нажать педаль тормоза в случае опасности (если система определяет что столкновение неизбежно).

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

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

Обычно адаптивный круиз-контроль работает при движение автомобиля на скорости от 40 до 150 км/час.