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

А Вы знаете типы программного обеспечения для ремонта автомобилей?

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

Два основных типа программного обеспечения для ремонта автомобилей используются для диагностики или для управления фронт-офисом. Диагностическое программное обеспечение для ремонта автомобилей может содержать множество функций, включая процедуры ремонта, инструкции по устранению неисправностей, известные «правильные» значения для датчиков и другую бесценную информацию. Это программное обеспечение часто доступно в отдельных зарубежных и отечественных сервисах по ремонту автомобилей, и может охватывать конкретные марки автомобилей. Специализированное программное обеспечение для ремонта автомобилей также доступно для современных диагностических инструментов, некоторые из которых могут быть довольно сложными вычислительными устройствами. Программное обеспечение на передней панели может включать в себя оценки, планировщики и генераторы рабочего порядка. Качественную настройку ПО, могут выполнить на http://savtom.com/ где ремонтируют автомобили Мерседес, Ауди и БМВ.

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

Большинство современных авторемонтных объектов имеют некоторую систему компьютеризированной информационной системы для оказания помощи в диагностике и ремонте. Простейшей формой этого является один компьютерный терминал с набором компакт-дисков (CD) или цифровых универсальных дисков (DVD), которые содержат процедуры ремонта, спецификации и другую информацию. Техник может ввести год, марку и модель транспортного средства в этот тип системы, чтобы найти конкретную информацию. Некоторые из этих программ также включают в себя множество схемных, проводных и разобранных диаграмм.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Содержание обзора:

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

Особенности автомобильного софта


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

Сейчас в каждом автомобиле имеется в наличие несколько электронных блоков управления (ЭБУ) – electronic control unit, ECU, которые взаимодействуют между собой через электронную сеть автомобиля.


Взаимодействие между этими блоками выполняется благодаря шинным архитектурам, которые представляют собой совокупность контроллеров - CAN, controller area network, а также специальную сеть, предназначенную для передачи информации специального цифрового оборудования - MOST, media-oriented systems trans, FIexRay, а также систему Local interconnect, (LIN).

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

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

  • Надежность - системные программы автомашины в достаточно сложной сети ECU в продолжение всего периода использования должны работать максимально надежно;
  • Безопасность выполняемых функций - ESC и система торможения должны действовать безотказно, и это уже предполагает довольно серьезные требования к ПО и к самому процессу их разработок;
  • Скорость взаимодействия – мгновенная реакция электронных узлов автомобиля (до миллисекунд) невозможна без специальной программной архитектуры и усовершенствованных операционных систем;
  • Надежная архитектура - ПО автомобиля должно осуществлять максимальную электромагнитную совместимость, а также не поддаваться влияниям искаженных сигналов;
  • Связь узлов электронно-механического цикла.
Внимание: Ни в коем случае не допускать перезагрузку ECU во время работы!

Основные составляющие ECU


ECU представляет собой довольно сложную плату, на которой, помимо микроконтроллера, имеются сотни других элементов. Рассмотрим основные детали.
  1. Аналого-цифровой преобразователь(ADC) - это оборудование предназначено для снятия показателей с определенных автомобильных датчиков, и с датчика кислорода в том числе. Дело в том, что процессор способен воспринимать только цифровые значения, а, например, показатель кислорода выдает лишь электрические сигналы напряжением от 0 до 1,1V. ADC преобразует эти данные в десятибитное двоичное число, и оно становится понятным для процессора.
  2. Драйвер – программа, предназначенная для управления цифровым оборудованием за счет преобразования сигналов.
  3. Цифро-аналоговый преобразователь (DAC) - предоставляет аналоговые сигналы, чтобы запустить определенные компоненты двигателя автомобиля.
  4. Чип связи – эти чипы позволяют реализовать самые разные стандарты связи, имеющиеся в автомобиле. В производстве имеется несколько таких стандартов, но самым распространенным из них является CAN - Controller-Area Networking. Он обеспечивает скорость 500 к/бит в секунду, что крайне необходимо для модулей, которые совершают до сотни операций в ежесекундно.

Процессы и технология


С тех пор, как появилось первое ПО для автомобилей, многое изменилось. Если изначально программное обеспечение мог контролировать всего лишь один производитель, то теперь это стало практически невозможно.

Изначально в прошлом столетии в качестве ПО использовался ассемблер. Язык же Си стал распространяться в 90-е годы. Компания Robert Bosch и многие другие производители начали разрабатывать ПО с помощью Mathlab/Simulink и ASCET (управляющие и моделирующие технологии).

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

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


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

В настоящее время работа над ПО для автомашин проводится несколькими объединениями, распределенными по всему миру. И такого рода деятельность стала довольно оптимальной для бизнеса.

Управление двигателем


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

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

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

Центром управления трансмиссиями автомашин является модуль управления двигателем. Современные модули имеют объем более 2 мегабайт цифровой памяти и функционируют с частотой тактов до 160 МГц. При этом задействуются программы до 300 тыс. строк кода.

Стандартизация


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

В 2003 году поставщиками и производителями было создано объединение «Automotive Open System Architecture»(Autosar). Цель создания организации – выполнение общего стандарта и единых технологий. Сегодня это объединение охватывает свыше 150 организаций, которыми сообща разрабатывается новое строение ECU, базовое ПО и все необходимое для создания рабочего программного обеспечения.

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

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

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

Самыми распространенными в современном автомобилестроении являются шины (высокоскоростные) Ethernet. Они надежно поддерживают связи между ECU, а также новые опции, в том числе и в отношении безопасности.


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

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

Заключение

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

5 нужных лайфхаков для автомобиля - в видео:

09.04.2010 Юрген Мессингер

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

Первые электронные системы появились в автомобилях еще в 60-х годах, и благодаря этому отрасль серьезно изменилась – сегодня электроника, и особенно программное обеспечение, являются основными источниками инноваций. Программное обеспечение повышает надежность с помощью систем активной и пассивной безопасности, таких как антиблокировочная тормозная система и электронная система курсовой устойчивости (ESC). Кроме того, сегодня происходит постепенная интеграция бытовой электроники в автомобили.

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

Сейчас каждый автомобиль имеет несколько электронных блоков управления (electronic control unit, ECU), связанных между собой внутримашинной сетью. Эти блоки взаимодействуют через стандартные шинные архитектуры, такие как сеть контроллеров (controller area network, CAN), сеть передачи данных мультимедийных систем (media-oriented systems transport, MOST), FlexRay и локальный интерконнект (local interconnect network, LIN). В сравнении с Ethernet, широко используемым для связи ПК, перечисленные шины работают медленнее – в автомобилях объем пересылаемой информации невелик, но ее необходимо обработать за несколько миллисекунд. Увеличение числа связываемых ECU приводит к необходимости создания более сложных структур внутримашинных сетей, требующих особой электрической и электронной архитектуры. Основные отличия между автомобильным программным обеспечением и другими видами ПО:

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

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

Процессы и технология

Если в первые годы появления автомобильного ПО его мог контролировать один разработчик, то теперь это уже невозможно.

В 70-х годах разработчики программного обеспечения для автомобилей начали использовать ассемблер, а Си стал основным языком в 90-х годах. На протяжении последнего десятилетия компания Robert Bosch и другие поставщики автомобильных компонентов стали разрабатывать программное обеспечение на базе моделей, используя ASCET (усовершенствованный инженерный инструментарий моделирования и управления) и Mathlab/Simulink.

Шинные системы, такие как CAN, серьезно усложняют программное обеспечение, поскольку допускают взаимодействия между программами различных ECU. В автомобилях класса люкс сложная сеть связывает сейчас до 80 ECU, в совокупности имеющих до 100 млн строк кода. Поскольку программное обеспечение становится все сложнее, возникает необходимость совершенствовать методы инжиниринга, соответственно в отрасли сегодня предлагаются параллельные организационные и технические процессы для разработки ПО. Компания Bosch давно применяет разработку на базе процессов инжиниринга и управления, соответствующих CMMI уровня 3, а ее инженерное подразделение в Индии уже добилось уровня 5.

Разработка на базе процессов и архитектуры является также необходимым условием эффективного аутсорсинга – компания Bosch стала отдавать на сторону некоторые разработки еще в начале 90-х годов. Сегодня работа над ПО ведется несколькими географически распределенными подразделениями, что оказалось весьма полезным для бизнеса, например, сейчас в филиале, находящемся в Индии, работает свыше 6 тыс. инженеров.

Управление двигателем

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

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

Модуль управления двигателем – основа управления трансмиссиями легковых автомобилей. Современные модули содержат свыше 2 Мбайт встроенной флэш-памяти, работают с тактовой частотой до 160 МГц, выполняя программы объемом до 300 тыс. строк кода.

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

Стандартизация

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

В 2003 году ведущие автопроизводители и поставщики создали сообщество Automotive Open System Architecture (Autosar, www.autosar.org) с целью разработки единого глобального стандарта и соответствующих технологий. Сегодня в Autosar входят свыше 150 компаний, и в рамках этого партнерства разрабатывается архитектура ECU, базовое программное обеспечение, методология и стандартизованные интерфейсы для прикладного программного обеспечения. Партнерство способствует разработке независимых от оборудования компонентов, позволяя автопроизводителям и поставщикам обмениваться программным обеспечением и повторно использовать его на различных ECU.

Архитектура Autosar ECU имеет несколько уровней абстракции, отделяющих ПО от аппаратного обеспечения (см. рисунок). На верхнем уровне расположено прикладное программное обеспечение, реализующее все прикладные функции. Далее идет базовое программное обеспечение, обеспечивающее необходимую абстракцию от аппаратного обеспечения, по аналогии с операционной системой для ПК. Среда исполнения в реальном времени (Autosar Runtime Environment, RTE) обеспечивает все взаимодействия как внутри ECU, так и между ними. Методология Autosar включает в себя шаблоны и форматы обмена, используемые для описания, конфигурации и генерации инфраструктуры.

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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


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

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


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

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

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