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

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

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

Насколько безопасна автоматическая система?

Однако все ли так просто и безопасно, можно ли полностью довериться , главной задачей которой является облегчение процесса управления автомобилем водителем? Ответ абсолютно не однозначен.

Возможно, кого то удивит тот факт, что программное обеспечение современной машины составляют строки кода, которых примерно в 2,5 раза больше, чем в одной из самых популярных компьютерных ОС современности – Windows 7.

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

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

Производители электрокаров

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

Дело в том, что в таком случае, хороший хакер может получить доступ к автоматике транспортного средства используя обычный ноутбук. Ярким тому подтверждением стал эксперимент компьютерных специалистов Чарли Миллера и Криса Валасека, который они продемонстрировали на конференции Black Hat. Хакеры смоделировали взлом электроники автомобиля и показали, к чему это может привести.

Хорошо, что это был только научный пример и никто не пострадал. Набрав скорость и достигнув 80 км/час, автомобиль внезапно перестал отвечать на команды, тормоза полностью отказали, а при нажатии на педаль акселератора, машину резко завернуло вправо.

Самое удивительное случилось после этого: программное обеспечение, которое и принесло вред автоматической системе управления автомобилем, молниеносно удалилось, поэтому внешне все это выглядело, как несчастный случай. Э

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

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

Лидером в разработке программ для проектирования автомобилей является компания Dassault Systemes.

Корпорации принадлежит 11 брендов программного обеспечения, которые продаются в Азии, Америке и Европе. Эти продукты включают 3-D моделирование, создание производственных симуляторов, программы, изучающие динамику жидкостей и многое другое. Корпорация предлагает программное обеспечение не только для автопроизводителей, но и для геологов и горняков. Популярные продукты компании — это система автоматизированного проектирования - CATIA, САПР (системы автоматизированного проектирования) и программный комплекс для автоматизации работ промышленного предприятия на этапах конструкторской и технологической подготовки производства -SOLIDWORKS.

В механических САПР (системы автоматизированного проектирования) компания первая на рынке. 14 из 16 автопроизводителей используют CATIA. Примечательно, что первым клиентом, производящим автомобили у Dassault Systemes была компания Honda, еще в начале 1980-х годов. До этого Dassault Systemes имели дело только с аэрокосмической промышленностью.

Методы разработки и производства автомобилей кардинально изменились за последние 20 лет. До появления мощных компьютеров и 3-D САПР в 1970 году легионы рисовальщиков в отутюженных брюках и с тощими галстуками давили на карандаши и перемалывали тонны информации. Логарифмические линейки и рейсшины доминировали в процессе, что замедляло работу и увеличивало стоимость автомобиля.

В те дни нужно было "вживую" испытать каждый компонент транспортного средства. С приходом 3-D моделирования и 3-D симуляторов делать это начали виртуально.

Для примера возьмем краш - тесты. Производство одной «живой» модели для одного краш-теста обойдется производителю в 25 тысяч долларов США. Затраты возрастают с каждым новым шагом в дизайне. Сделайте поправки на неудачные испытания и переработку некоторых параметров машины, на появление с каждым годом новых видов краш-тесов, наподобие « », и поймете, почему разорились некоторые автоконцерны. Снизить затраты помогают компьютеры и специальное программное обеспечение, которое прогнозирует поведение автомобиля, участвующего в краш-тесте, еще до посадки туда несчастных кукол.

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

Последние разработки компании Dassault Syatemes

Компания Dassault Syatemes, в этом году, разработала программу Target Zero Defects, которая помогает автопроизводителям и компаниям-поставщикам воспрепятствовать попаданию потенциально дефектного компонента в собираемое транспортное средство до запуска на линию сборки.

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

Постоянная конкурентная борьба автоконцернов увеличивает вероятность ошибки при проектировании и производстве автомобиля. Теперь с подобными проблемами будет бороться новое программное обеспечение Target Zero Defects от компании Dassault Systeme.

На Женевском автосалоне, прошедшем буквально несколько недель назад, компания Apple официально заявила о запуске продукта CarPlay. Как стало известно, многие производители автомобилей уже купили права на данное программное обеспечение. Это означает, что, возможно, уже через несколько месяцев, обрутившись в любой салон, где ведется продажа иномарок в Москве, можно будет приобрести новый автомобиль с установленным CarPlay.
Что же принципиально нового содержится в ПО от Apple? На первый взгляд, это всего лишь компьютерная программа, которая обеспечивает интерфейс автомобильных новинок. Список возможностей: развлекательные функции, карты, обмен сообщениями, голосовое управление. И почему вообще производители автомобилей стали активно участвовать в разработке программного обеспечения?
Вероятнее всего, в предыдущие годы автомобильные компании осознали, что их традиционный подход к автоэлектронике в современном мире обречен. Когда все развлечения в автомобиле включали лишь радио и проигрыватель компакт-дисков, автомобильные компании чувствовали себя в пределах своей зоны комфорта. Но как только у водителей появились новые потребности, в ответ на которые приборные панели стали оснащаться программным обеспечением, автомобильные компании поняли, что они не способны создать интересный для потребителя продукт самостоятельно. Ведь до сих пор навигационные и развлекательные системы, установленные стандартно в автомобилях, остаются намного менее функциональными, чем приложения, доступные для смартфонов и планшетов.
Однако теперь времена меняются и автомобильное ПО просто должно стать сложнее и удобнее, в нем должны появиться такие функции как возможность хранения музыкальных файлов, возможность прослушивания радиостанций онлайн, навигация, напоминания, адресная книга, подключение к социальным сетям и многое другое. Однако это должно быть не устройство, автономно встроенное в автомобиль, а система, помогающая использовать имеющийся у нас девайс (планшет или смартфон) для управления развлекательными функциями автомобиля. Так вот именно такую функцию и будет выполнять CarPlay.
Вероятно, в США это изобретение вызовет всплеск спроса на новые автомобили, оснащенные новой функцией. А также все больше пользователей смартфонов будут производить обмен старого авто на новый, уже содержащий новейшее программное обеспечение.

Об авторе: Андрей Страшко

    Другие новости

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



Поделиться