Первые электронные системы появились в автомобилях еще в 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 и разработки новых функций, особенно в области безопасности. Информация из различных источников анализируется и консолидируется для формирования полной модели среды, позволяя разрабатывать новые функции, поддерживающие водителя в критических ситуациях. Например, если внимание водителя отвлекает пассажир, то приложение может определить, что едущий впереди автомобиль тормозит, и предупредить об этом водителя либо же автономно включить торможение. Водитель никогда не догадается о существовании такого программного обеспечения, пока не возникнет опасная ситуация.
В автомобилестроении сегодня назрела очередная программная революция – все шире начинают применяться средства мультимедиа и бытовой электроники. Автомобили будут подключаться к Интернету и ко всем видам мобильных и установленных дома устройств, причем неуклонно будет расти доля решений на базе свободного ПО.
Юрген Мессингер (moessinger@de.bosch.com) – вице-президент по интеграции автомобильных систем компании Robert Bosch.
Jurgen Mossinger. Software in Automotive Systems. IEEE Software, March/April 2010. IEEE Computer Society, 2010. All rights reserved. Reprinted with permission.
Архитектура поддержки разработки аппаратно-независимых компонентов