Первое автомобильное программное обеспечение появилось в автомобилях еще в 60-х годах. Благодаря этому отрасль серьезно изменилась – сегодня электроника, и особенно программное обеспечение, являются основными источниками инноваций. Автомобильное программное обеспечение повышает надежность с помощью систем активной и пассивной безопасности, таких как антиблокировочная тормозная система и электронная система курсовой устойчивости (ESC). Кроме того, происходит постепенная интеграция бытовой электроники в автомобили.
Разработка автомобильного программного обеспечения
Любая разработка программного обеспечения имеет целью создание новой или улучшение существующей функции. Такие функции создают дополнительные плюсы и удобства для водителя, других пассажиров, механиков СТО, перевозчиков, обеспечивают соответствие требованиям законодательства, упрощают обслуживание или повышают эффективность проектирования и изготовления. Техническая реализация может быть механической, гидравлической, электрической или электронной. Часто комбинируют сразу несколько этих технологий, а ключевую роль в реализации многих автомобильных новшеств все чаще играет электроника. Благодаря использованию электрики, электроники и программного обеспечения — логического ядра систем — экономически эффективно реализуются «интеллектуальные» функции привода, шасси и остальной части автомобиля.
Управление и контроль практически всех функций в автомобилях всех классов сегодня осуществляет электроника. Технологический прогресс и развитие электроники позволяют реализовать многие новые, более мощные функции за счет использования программного обеспечения.
Требования к программному обеспечению в автомобиле
Требования к программному обеспечению в автомобиле сильно разнятся. Многие системы для управления двигателем и обеспечения безопасности движения должны гарантировать реакцию операций управления, чтобы не возникло отставание от физического процесса. Поэтому при управлении очень быстрыми физическими процессами, такими как управление двигателем или динамикой движения, вычисления должны выполняться очень быстро. Кроме того, очень высоки требования к надежности во многих областях. Это особенно относится к функциям обеспечения безопасности. Автомобильное программное обеспечение и электроника контролируются сложными системами диагностики.
Автомобильное программное обеспечение используется во многих вариантах автомобиля и даже модельных рядах. Поэтому оно должно легко адаптироваться к соответствующим системам. Для этого оно содержит параметры калибровки и программные карты. Их количество в автомобиле может достигать нескольких десятков тысяч. Эти регулируемые переменные имеют множество взаимных зависимостей. К тому же постоянно увеличивается степень связи отдельных систем между собой. Все чаще одна функция распределяется между несколькими системами или ЭБУ.
Программное обеспечение в автомобиле большей частью разрабатывается под конкретные области применения и интегрируется в единую систему. Его еще называют встроенным программным обеспечением, «зашитым» в постоянное запоминающее устройство. Многие функции часто разрабатываются и дорабатываются в течение длительного времени во многих уголках мира. Поскольку запасные части должны оставаться в наличии даже после завершения производства конкретного автомобиля, электроника в автомобиле должна иметь относительно длительный срок службы — до 30 лет.
Из соображений экономии в ЭБУ зачастую содержатся микроконтроллеры с ограниченной вычислительной мощностью и ограниченным объемом памяти. Во многих случаях для этого требуются меры по оптимизации разработки программного обеспечения для сокращения количества необходимых аппаратных средств.
Характерные особенности программного обеспечения зависят от области применения. В то время как программное обеспечение для привода и трансмиссии имеет широкие рамки, в программном обеспечении для ходовой части акцент делается на характеристиках, проявляемых в реальном времени. В системах обеспечения безопасности комфорта акцент делается на эффективность, т.е. расход ресурсов, а в мультимедийных приложениях за короткое время требуется обрабатывать большие объемы данных.
Проблемы, возникающие в связи с этими требованиями, должны решаться в тесном сотрудничестве автопроизводителей и поставщиков.
Структура программного обеспечения в автомобилях
Программное обеспечение в автомобиле состоит из множества компонентов. Как и в случае с персональным компьютером, различают «воспринимаемые функции» программного обеспечения, прикладное программного обеспечения и платформенное программное обеспечение, частично зависящее от аппаратной части (рис. «Основные компоненты статичной программной архитектуры для микроконтроллеров и стандартизованных программных компонентов» ). Взаимодействие между всеми функциями определяется в архитектуре. Здесь могут быть различные отображения. Статичное отображение иерархически описывает функциональные группы, сигналы и распределение ресурсов. С другой стороны, функциональное отображение описывает прохождение сигнала через различные функции. Динамическое отображение, т.е. зависимое от времени, анализирует отклик при выполнении различных задач. Уже на раннем этапе введены стандарты для обеспечения взаимодействия между отдельными компонентами и их дальнейшего развития. Наиболее важные стандарты описаны ниже.
Важные стандарты для автомобильного программного обеспечения
Органы и комитеты
Ассоциация стандартизации автоматизированных и измерительных систем (ASAM) занимается стандартизацией в автомобильной промышленности применительно к моделям данных, интерфейсам и синтаксису. ASAM разработала различные стандарты для подключения ЭБУ к компьютеру или терминалу ввода данных. Стандарт ASAM-MCD1 (MCD — измерение, калибровка и диагностика) поддерживает различные протоколы передачи данных. При использовании спецификаций ASAM-MCD2 можно обращаться к двоичным данным в ЭБУ и одновременно отображать соответствующие данные в виде физических значений и обрабатывать их. Стандарт ASAM-MCD3 также позволяет автоматизировать такие процессы, например, для автоматической калибровки данных. Есть и другие стандарты ASAM, регламентирующие, к примеру, обмен функциональными описаниями и данными.
Консорциум FlexRay разработал спецификацию для полевой шины FlexRay для регулирования по разомкнутому и замкнутому (с обратной связью) циклу в автомобилях. Благодаря высокой скорости передачи данных с запрограммированным арбитражем шины и отказоустойчивой конструкции она особенно подходит для использования в системах активной безопасности и в системе привода.
Международная электротехническая комиссия (IEC) устанавливает стандарты в области электротехники и электроники. IEC предлагает три системы анализа, с помощью которых можно проверить соответствие международным стандартам. IEC работает в тесном взаимодействии с международной организацией по стандартизации (ISO), международным телекоммуникационным союзом (ITU) и многочисленными органами стандартизации (в том числе Институтом инженеров-электриков и электронщиков, IEEE).
Ассоциация разработчиков программного обеспечения для автомобилей (MISRA) — организация в автопромышленности, устанавливающая правила для разработки и внедрения надежного программного обеспечения в автомобильных системах. Самым известным является стандарт программирования MISRA-C, разработанный компанией MISRA. Он предписывает правила надежного программирования на языке С. Цель этого стандарта — избежать ошибок периода исполнения из-за ненадежных конструкций языка С и возникновения слабых мест в структуре из-за непонимания между программистами, и защитить правильность выражений. Многие правила могут автоматически проверяться и учитываться при генерировании кодов.
Сообщество автомобильных инженеров (SAE) — международная научно-техническая организация, работающая в области технологий для обеспечения мобильности. Помимо прочего, оно устанавливает стандарты для автомобильной промышленности и способствует обмену знаниями.
Стандартизационный орган «Открытые системы и их интерфейсы для автомобильной электроники» (OSEK) появился из проекта немецкой автомобильной промышленности. Позже появилась инициатива «Vehicle Distributed Executive» (VDX) французской автомобильной промышленности. Стандартизация базовых компонентов программного обеспечения осуществляется под эгидой OSEK/VDX в следующих областях:
- Связь (обмен данными внутри и между ЭБУ);
- Операционная система (выполнение в реальном времени программ ЭБУ и базовых услуг для других модулей OSEK/VDX);
- Управление сетью (конфигурация и контроль).
Архитектура программных платформ для японской автомобильной промышленности (JasPar) — инициатива для сокращения расходов и технологий разработки в автомобильной электронике. Она поощряет японские компании совместно разрабатывать технологии, не имеющие отношения к конкуренции, такие как сетевые решения, сервисные функции и базовое программное обеспечение. JasPar работает в тесном сотрудничестве с AUTOSAR и FlexRay.
AUTOSAR
AUTOSAR — это ассоциация автопроизводителей, изготовителей ЭБУ и средств для разработки, базового программного обеспечения для ЭБУ и микроконтроллеров. Цель AUTOSAR — упрощение обмена программного обеспечения на разных ЭБУ. Для этого была разработана стандартизированная программная архитектура со стандартизированными форматами описания и конфигурации для встроенного автомобильного программного обеспечения. AUTOSAR определяет методы описания программного обеспечения в автомобилях, обеспечивающие возможность повторного использования, обмена, масштабирования и интеграции компонентов программного обеспечения.
Главным для AUTOSAR является логическое распределение между базовым программным обеспечением (BSW) для конкретных ЭБУ и прикладным программным обеспечением, независимым от ЭБУ (ASW) и их соединение по виртуальной системе шин (VFB) (рис. «Архитектура AUTOSAR» ). Эта виртуальная шина также соединяет компоненты программного обеспечения, реализованные в разных ЭБУ. Таким образом, их можно смещать между разными ЭБУ без необходимости вносить изменения в сами компоненты программного обеспечения. Это может быть полезно при оптимизации вычислительной мощности, требований к памяти и коммуникационной нагрузки.
Функциональные программные компоненты (SWC) строго разграничиваются между собой и с базовым программным обеспечением. Они, как правило, содержат конкретные алгоритмы управления, выполняемые во время прогона программы. Они сообщаются через интерфейс AUTOSAR с другими функциями и интерфейсами ЭБУ. Эти интерфейсы (API) определяются в описаниях SWC XML.
Среда прогона программы (RTE) обеспечивает связь между функциональными компонентами программного обеспечения и соответствующим базовым программным обеспечением на ЭБУ. RTE адаптируется к конкретному ЭБУ и области применения. Она может в большой степени создаваться автоматически из требований к интерфейсу.
Базовое программное обеспечение содержит программные части для конкретных ЭБУ — интерфейсы связи, диагностику и управление памятью. Базовое программное обеспечение также содержит слой сервисов. Это программное обеспечение сочетает в себе программные компоненты для общих сервисных функций (SRV), связи (СОМ) и операционной системы, частично зависящей от используемого ЭБУ (OS). Последняя базируется на операционной система OSEK/VDX. В этой области ресурсы ЭБУ группируются и управляются таким образом, чтобы получить оптимальную сетевую поддержку, управление памятью, диагностику и пр. Используемые аппаратные средства заключаются в два слоя со взаимной зависимостью. Абстракция микропроцессора (MCAL) с прямым доступом к интерфейсным модулям ЭБУ продолжается в еще одном слое (абстракция ЭБУ). Драйверы сложных устройств (CCD) обеспечивают прямой доступ к ресурсам микроконтроллера для приложений с особыми требованиями к функциональности и выбору времени. Они также являются неотъемлемой частью базового программного обеспечения, т.е. прикладное программное обеспечение можно разрабатывать независимо от аппаратной части, даже когда требуются услуги драйверов сложных устройств.
Помимо архитектуры ЭБУ, AUTOSAR частично стандартизирует также методы разработки. Это прежде всего относится к структуре и зависимостям различных рабочих продуктов (например, файлов). Они нужны для создания выполнимых программ для соответствующих ЭБУ из разных описаний программных компонентов.
Стандарты диагностики
Системы диагностики для проектирования и производства, ремонта и обслуживания автомобилей показали себя как очень затратные и негибкие. Они привязывают изготовителей к поставщикам и предотвращают простой обмен данными в случае взаимодействия между компаниями. Поэтому был разработан ряд диагностических стандартов.
Рабочая группа Automotive Electronics (ASAM-AE) разработала три спецификации для программных средств диагностики автомобилей, публикуемых в виде международных стандартов в группе стандартов ISO 22900:
- Интерфейс между средой прогона и устройствами связи (MCD-1Dи PDU-API, ISO 22900);
- Стандарт ODX для обмена данными диагностики, например, для передачи данных на тестер СТО (MCC-2D, ISO 22901);
- Интерфейс объектно-ориентированного программирования (MCD-3D, ISO 22900) для диагностических приложений, таких как, например, диагностика с подсказками.
Стандарт MCD-1C учитывает существующие стандартные инструменты, например, устройства для программирования ЭБУ.
В настоящее время в рамках проекта стандарта ISO разрабатываются требования к формату обмена, «Коммуникационный формат последовательной проверки на отсутствие разрывов» (ОТХ), для создания, использования и обмена диагностическими программами.
Процесс разработки программного обеспечения для автомобиля
Краеугольным камнем разработки программного обеспечения является изображение логической системной архитектуры в конкретной системе со всеми программами и данными. Здесь рассматривается вся система автомобиля, управляемая процессором. Особая важность придается четкому разделению составления технического задания, проектирования и реализации. Техническое задание с определением функций программного обеспечения составляется на физическом уровне, а проектирование и реализация программ и данных привязываются к конкретному микроконтроллеру.
Для удовлетворения приведенных выше требований в разработке программного обеспечения для автомобилей неотъемлемой частью разработки, в дополнение к технологии и инструментам, являются определяемые последовательности (процессы).
Модели для описания процессов
Для описания процессов при разработке программного обеспечения используется множество более или менее сложных моделей. Они обеспечивают прозрачность процессов, их сравнение, выявляют проблемные области и служат для проверки соответствия определенным стандартам. Однако они изначально не задумывались для непосредственного повышения качества самого программного обеспечения, эффективности или устранения систематических сбоев в процессах. Поэтому модели для описания процессов являются подходящими лишь частично. Ниже приводится описание на примере распространенной V-модели.
Принцип V-модели
Описанное здесь V-образное отображение процесса разработки используется во многих вариациях и степенях детализации. V-модель Федерации проектирования и реализации в сфере информационных технологий правительства Германии здесь описана не будет.
V-модель распределяет этапы процесса, связанные непосредственно с разработкой, по лучам воображаемой буквы V, где по оси х отображается ход разработки, а по оси у — степень детализации соответствующего этапа (рис. «Расширенная V-модель» ). Этап процесса можно описать необходимыми вводными переменными, процедурой, методами, ролями, инструментами, критериями качества и выходными переменными. Этапы процесса, определяемые на левом луче латинской V, проверяются на ее правом луче. Эти этапы могут также проходиться несколько раз или быть поделены на части.
В расширенной V-модели можно рассмотреть сопутствующие процессы — например, запрос, изменение, управление проектом и качеством.
Модели для оценки процессов
Модели для оценки процессов, в дополнение к чистому описанию задач и процессов, предоставляют информацию о зрелости и качестве процессов. Таким образом, можно сравнивать, оценивать и утверждать этапы работы. Они также позволяют определить узкие места процессов, влияющие, к примеру, на качество продукта или затраты. Однако информация о качестве процессов не дает полной картины качества самих продуктов. Здесь описываются три самые важные модели оценки процессов.
ISO 9000 и TS 16949
Ориентированный на процессы стандарт EN ISO 9000 регламентирует требования к системе управления качеством. Акцент здесь делается на взаимодействия и интерфейсы. Изначально акцент делался на производство и интерфейсы заказчика.
Техническая спецификация ISO/TS16949 была разработана североамериканской и европейской автомобильной промышленностью устанавливает требования к системам управления качеством. Цель этого стандарта — эффективное повышение качества системы и процессов для повышения степени удовлетворенности клиентов, выявления сбоев и рисков в производственном процессе и каналах сбыта, устранения их причин и проверки эффективности коррекционных и профилактических мер. Сутью спецификации является не выявление, а скорее предотвращение сбоев. Соответствие ISO 9000 и TS 16949 можно проверить путем сертификации.
CMMI
CMMI — это модель для оценки и систематической оптимизации организаций- разработчиков и их процессов, изначально разработанная Институтом разработки программного обеспечения (SEI). Она описывает набор требований к процессам и их зависимости (рис. «Обзор процесс CMMI. ML-уровень зрелости» ). CMMI обеспечивает рамки, реализация которых требует ориентированной на бизнес интерпретации и организации содержания. Она описывает то, что необходимо сделать. Организация должна соответствующим образом описать, «как» это необходимо сделать. Содержание модели CMMI базируется на передовых методах организации работы, т.е. «лучших методах». CMMI обеспечивает процедуру для оптимизации процессов на долгосрочную перспективу от пути развития организации до обучения организации.
CMMI имеет много общего в плане содержания с ISO 9000/TS 16949. В этом контексте CMMI имеет большую степень детализации, в то время как ISO 9000/TS 16949 охватывает более широкий спектр областей применения.
CMMI различает пять уровней зрелости (ML) подразделения организации (рис. «Уровни зрелости CMMI» ). Рассматриваются различные области процесса, в зависимости от уровня зрелости. Уровень зрелости считается достигнутым, когда все соответствующие области процесса отлажены и проверены системой оценки. Для выхода на более высокий уровень зрелости нужно еще раз проверить области процесса нижнего уровня.
CMMI используется в качестве оптимизационной-оценочной модели для организаций-разработчиков и обеспечивает хорошую поддержку при оптимизации процессов во всех подразделениях организации и оценке поставщиков.
Automotive SPICE
Аббревиатура SPICE расшифровывается как «совершенствование процессов в разработке программного обеспечения и определение возможностей». Automotive SPICE — это «автомобильный» вариант международного стандарта ISO/IEC 15504 (Процессы при разработке программного обеспечения). Это модель для оценки, с учетом специфики проекта, процессов, имеющих место при разработке программного обеспечения. Она, как и CMMI, концентрируется на требованиях к систематической разработке. Поэтому содержание моделей Automotive SPICE и CMMI очень похоже. Automotive SPICE больше концентрируется на требованиях к уровню и дает меньше возможностей для ориентированной на бизнес интерпретации требований. Automotive SPICE фокусируется (в настоящее время) только на программном обеспечении и только на отдельных проектах. Напротив, области применения CMMI шире и охватывают любые работы и услуги в сфере разработки и руководство ими. Automotive SPICE используется автопроизводителями в качестве модели для оценки проектов и поставщиков в области разработки программного обеспечения.
Оценка процессов выполняется с помощью двухразмерной модели. Понятие «размер процесса» служит для определения и выбора анализируемых процессов, а «размер уровня зрелости» — для определения и оценки их соответствующей возможности. Размер уровня зрелости состоит из шести ступеней уровня зрелости — «не завершено», «выполнено», «проконтролировано», «установлено», «предсказуемо» и «оптимизация».
Контроль качества при разработке программного обеспечения
Как и в случае с любым техническим продуктом, при разработке автомобильного программного обеспечения также используется множество инструментов для контроля качества. В отличие от механики и электрики, контроль качества играет менее значительную роль в создании программного обеспечения, поскольку оно относительно легко воспроизводится. Важными моментами здесь являются общая функциональность системы, стандарты качества, овладение сложностью и применение. Поскольку программное обеспечение в автомобиле также охватывает системы, имеющие отношение к безопасности — например, систему управления динамикой и системы повышения безопасности при движении (DAS), контроль качества играет важную роль. Кроме того, очень важное значение имеет экономическое представление качества программного обеспечения, особенно в сложных системах.
ISO 61508 и TS 26262
В настоящее время автомобильная промышленность разрабатывает стандарт ISO 26262 (Транспортные средства — функциональная безопасность) для проектирования имеющих отношение к безопасности электрических и электронных систем в автомобилях на базе стандарта IEC 61508 (Функциональная безопасность электрических / электронных / программируемых электронных систем, имеющих отношение к безопасности). Он включает в себя требования и к продукту, и к процессу разработки, и охватывает концепцию, проектирование, разработку, реализацию, запуск, обслуживание, модификацию, выключение и демонтаж как самой системы, имеющей отношение к безопасности, так и систем, уменьшающих риск. Стандарт обозначает эти этапы в целом как «полный жизненный цикл безопасности». Продукты делятся на уровни интеграции безопасности SIL1 — SIL 4 (ISO 61508) и автомобильные SIL, ASIL А — ASIL D (ISO 26262). SIL 1 и ASIL А, являются самым низким, a SIL 4 и ASIL D самым высоким уровнем интеграции безопасности.
Процессы разработки программного обеспечения для автомобилей
Междисциплинарная кооперация в разработке (например, между разработкой привода и электроники), распределенная разработка (например, между поставщиком и автопроизводителем или разработка в разных местах) и длительные жизненные циклы элементов программного обеспечения требуют общего понимания задач в целом. Например, при проектировании автомобильных функций управления с обратной связью и без нее, также должен обеспечиваться общий обзор всех требований к надежности и безопасности, а также аспектов реализации программного обеспечения. Для этого во многих областях используется разработка программного обеспечения на базе моделей (рис. «Этапы разработки программных функций на основе моделей» ).
Разработка программного обеспечения на базе моделей
Различают две области разработки программного обеспечения на базе моделей. Логическая системная архитектура содержит и описывает виртуальную область моделей, в то время как техническая системная архитектура содержит реальные ЭБУ и автомобили. Логическая системная архитектура отображается серым цветом, а техническая системная архитектура — белым. Эта процедура описывается функциями управления с обратной связью и без обратной связи, но подходит также и для общей реализации функций — например, для контроля и диагностики.
Функциональная модель на базе графики рассматривает все компоненты системы и может использоваться в качестве основы для общего понимания. При разработке программного обеспечения использование методов разработки на базе моделей, с блок-схемами или машинами конечного состояния, все чаще заменяет текстовые спецификации программного обеспечения. Этот метод моделирования программных функций имеет и другие преимущества. Если модель спецификации описывается формально, т.е. однозначно, без вариантов интерпретации, как математическая функция, то спецификация может быть выполнена на компьютере в режиме имитации и быстро и реалистично протестирована в самом автомобиле посредством создания прототипа быстрого управления. Кроме того, намного проще могут быть вскрыты несоответствия.
Для реализации заданных функциональных моделей в качестве программных компонентов для ЭБУ можно использовать методы автоматизированного генерирования кода. Поэтому функциональные модели должны содержать дополнительную информацию о разработке программного обеспечения. Сюда могут относиться меры по оптимизации, зависящие от характеристик продукта, необходимых электронной системе. Автоматизированное генерирование кода также гарантирует последовательность качественных характеристик кода.
На следующем этапе виртуальные модели среды, при необходимости дополняемые реальными компонентами, такими как форсунки, имитируют среду ЭБУ, тем самым позволяя проводить циклические лабораторные испытания формата «In-the-Loop». По сравнению с испытаниями на стенде и на дороге они повышают гибкость и глубину испытаний, упрощая их воспроизводимость. Калибровка функций программного обеспечения в электронной системе должна учитывать настройки, относящиеся к конкретному автомобилю — например, параметры, записанные в виде характеристических значений, кривых и карт этих функций. Во многих случаях это сопоставление происходит лишь на более поздней стадии разработки; зачастую прямо в автомобиле во время работы систем. Однако усиливается тенденция к более ранней (предварительной) передаче данных; т.е. уже на ранних этапах разработки как можно более реалистичные калибровочные данные определяются с помощью моделей или эмпирических значений. Из-за множества калибровочных переменных и взаимной зависимости для калибровки требуются подходящие процедуры и инструменты, потому что в конечном итоге качество калибровки, т.е. точная адаптация программного обеспечения к автомобилю, определяет степень использования потенциала программного обеспечения.
Функциональные сети и сети ЭБУ
Эта процедура может также применяться к разработке функциональных сетей и сетей ЭБУ. Однако в этих случаях появляются дополнительные аспекты, например:
- Комбинации смоделированных, виртуальных компонентов и функций, уже реализованных в коде ЭБУ;
- Комбинации смоделированных, виртуальных и реализованных механических компонентов и устройств.
Это полезно для различения функций на абстрактном уровне и технической реализации на более конкретном уровне. Концепция раздельного абстрактно-конкретного подхода применима ко всем компонентам автомобиля, к водителю и окружающей среде.
Моделирование и имитация программных функций
Моделирование систем управления автомобиля
Для моделирования систем управления с обратной связью и без обратной связи следует по возможности использовать блок-схемы. В этих схемах для отображения отклика компонентов используются блоки, а для отображения потока сигналов между блоками — стрелки (рис. «Моделирование с блок-схемами и имитацией» ). Поскольку большинство систем многовариантны, то все сигналы обычно представлены в виде векторов. Они классифицируются на:
- Измерительные переменные или переменные обратной связи у;
- Выходные переменные с управлением без обратной связи или с обратной связью u*
- Контрольные или заданные переменные w;
- Значения, задаваемые водителем w*;
- Переменные с управлением без обратной связи или с обратной связью у*:
- Регулируемые переменные u
- Значения возмущений z
Блоки классифицируются на:
- Блоки с управлением без обратной связи или с обратной связью;
- Модели исполнительных механизмов;
- системная модель;
- Модели генераторов заданных значений и датчиков;
- Модель водителя и окружающей среды.
Водитель может повлиять на функции контроллера без обратной связи или с обратной связью путем определения заданных значений. Все компоненты для ввода значений, задаваемых водителем (например, выключатели или педали), известны как генераторы заданных значений. В отличие от них, датчики регистрируют сигналы с завода. Модель этого типа может быть выполнена в имитационной системе (например, на персональном компьютере), что позволяет более детально проанализировать ее.
Создание прототипа быстрого управления программными функциями
Создание прототипа быстрого управления в этом контексте включает в себя все методы для ранней реализации спецификаций для функций управления без обратной связи или с обратной связью в реальном автомобиле. Для этого в испытании должны быть реализованы смоделированные функции управления без обратной связи или с обратной связью. В качестве платформы для реализации программных частей функций управления без обратной связи или с обратной связью можно использовать экспериментальные системы (рис. «Создание прототипа быстрого управления программных функций в реальном автомобиле» ).
Экспериментальные системы соединяются с генераторами заданных значений, датчиками и исполнительными органами, а также другими автомобильными ЭБУ, относящимися к общей системе. Интерфейсы с реальным автомобилем означают, что программные функции, реализованные в экспериментальной системе — и в ЭБУ — учитывают потребности в реальном времени.
В качестве ЭБУ в экспериментальных системах обычно используются компьютерные системы реального времени со значительно большей вычислительной способностью. Для решения этой задачи в качестве процессорного ядра все чаще используются персональные компьютеры. Это позволяет автоматически преобразовать модель программной функции из спецификации в реализуемую модель посредством создания прототипа быстрого управления, регламентируемого стандартизированными правилами. Затем заданное поведение можно моделировать с максимально возможной точностью.
Экспериментальные системы с модульной структурой можно конфигурировать под конкретную область применения — например, под необходимые интерфейсы для сигналов ввода-вывода. Вся система рассчитана на использование в автомобиле и управление от компьютера, например, персонального. Это позволяет тестировать спецификации программных функций на ранней стадии прямо в автомобиле. Затем спецификации могут, при необходимости, быть изменены.
При использовании экспериментальных систем различают приложения обхода и приложения с полной поддержкой.
Процедура обхода
Приложения обхода в основном используются тогда, когда разрабатывается лишь несколько программных функций и имеется ЭБУ с хорошо зарекомендовавшей себя базовой функциональностью — например, из предыдущего проекта.
Приложения обхода также подойдут, если функции датчика и исполнительного механизма ЭБУ очень сложны, а их поддержка требует значительных усилий со стороны экспериментальной системы (например, в случае с ЭБУ двигателя).
Приложения с полной поддержкой больше подходят, если ЭБУ этого типа нет, если требуется протестировать дополнительные генераторы заданных значений, датчики и исполнительные механизмы и если функциональность ЭБУ достаточно сложная.
Можно также скомбинировать обход отдельных частей программного обеспечения с полной поддержкой всего программного обеспечения в целом, что повышает гибкость.
Приложения обхода
Приложения обхода подходят для раннего тестирования дополнительной или модифицированной программной функции автомобильного ЭБУ. Новая или модифицированная программная функция определяется моделью и работает в экспериментальной системе. Для этого требуется ЭБУ, способный выполнять базовые функции программного обеспечения, поддерживать все необходимые генераторы заданных значений, датчики и исполнительные органы и обеспечивать интерфейс обхода для экспериментальной системы. Новая или модифицированная программная функция разрабатывается с помощью создания прототипа быстрого управления. В этом случае она выполняется в экспериментальной системе (рис. «Разработка прототипа с системой обхода» ).
Этот подход также приемлем для дальнейшего развития существующих функций ЭБУ. В этом случае существующие функции в ЭБУ продолжают использоваться, но модифицируются до такой степени, чтобы вводные значения отправлялись через интерфейс обхода, и использовались выходные значения из новой функции обхода. Необходимые программные изменения в ЭБУ называются ловушками обхода. Для синхронизации функциональных вычислений между ЭБУ и экспериментальной системой обычно используется процедура, когда ЭБУ инициирует вычисления функции обхода в экспериментальной системе через интерфейс управляющей логики. ЭБУ контролирует правдоподобие выходных значений функции обхода.
На функцию обхода можно также повлиять через автомобильную шину (например, CAN). Возможен даже доступ к центральному процессору ЭБУ через интерфейсы микроконтроллера посредством эмулятора.
Приложение с полной поддержкой
Если в автомобиле должна тестироваться совершенно новая функция, а ЭБУ с интерфейсом обхода нет, то испытания можно провести с помощью приложения «с полной поддержкой». В этом случае экспериментальная система должна поддерживать все генераторы заданных значений, датчики и интерфейсы исполнительных органов для данной функции.
Поведение функции в реальном времени также должно быть определено и гарантировано экспериментальной системой (рис. «Разработка прототипов с полной поддержкой» ). Вообще, это делается операционной системой реального времени на компьютере с полной поддержкой.
Виртуальное создание прототипов
В случае со сложными системами лучше тестировать функции как можно раньше. Одну из возможностей дает виртуальное создание прототипов. Здесь прототип тестируется в виртуальной модели среды. Операционная система более нового ЭБУ (например, RTA) работает в экспериментальной системе. Это позволяет считать временную характеристику более нового программного обеспечения хорошей.
Проектирование и реализация программных функций
На основании спецификации данных на стадии проектирования необходимо учесть функциональное поведение программной функции и ее поведение в реальном времени, все технические детали сети ЭБУ, реализованный микроконтроллер и архитектуру программного обеспечения. Тогда окончательная реализация программных функций может быть определена и осуществлена на базе программных компонентов (рис. «Реализация функции управления с обратной связью и без обратной связи с помощью сети ЭБУ» ).
В дополнение к решениям по структуре и поведению программной функции, здесь учитываются временные и дискретные функции микроконтроллеров, реализация включает в себя решения по поведению в реальном времени, распределению и интеграции микроконтроллеров и ЭБУ и требованиям к надежности и безопасности электронных систем. Необходимо также учитывать все требования к электронным системам и автомобилям с точки зрения производства и обслуживания (например, концепции контроля и диагностики, параметризация программных функций, или обновления программного обеспечения для ЭБУ).
Создание кода и сопутствующих данных (данные для документации, управление вариантами или предварительная передача данных калибровки) часто выполняются автоматически в соответствии с установленными стандартами.
Интеграция и тестирование программного обеспечения и ЭБУ
Требования к программному обеспечению автомобиля
Прототипы автомобилей зачастую имеются в ограниченном количестве. Это означает, что у поставщика компонентов часто отсутствует полная или обновленная среда для интеграции и тестирования поставляемых компонентов. Ограничения среды тестирования могут иногда ограничивать возможные его этапы. По этой причине модели сред часто служат основой для испытательных систем и стендов на этапе интеграции и тестирования.
Интеграция компонентов — это точка синхронизации для разработок всех отдельных компонентов. Интеграционное, системное и приемочное тестирование не могут быть выполнены до тех пор, пока не будут доступны все компоненты. Для ЭБУ это означает, что программные функции могут тестироваться только при наличии всех компонентов в системе автомобиля (ЭБУ, генераторов заданных значений, датчиков, исполнительных механизмов и системы). Использование циклических систем тестирования формата In-the-Loop в лаборатории позволяет заранее проверять ЭБУ в виртуальной среде тестирования при отсутствии фактических периферийных компонентов (рис. «Интеграция и тестирование ЭБУ с помощью циклической испытательной системы» ).
Это позволяет проводить и автоматизировать испытания в воспроизводимых лабораторных условиях с высоким уровнем гибкости. В отличие от испытаний на стенде или в реальном автомобиле можно протестировать полный, неограниченный спектр рабочих состояний (например, ЭБУ двигателя можно протестировать при любой нагрузке и любых оборотах). Износ автомобиля и ситуации сбоев имитируются легко и позволяют протестировать функции контроля, диагностики и обеспечения безопасности. Допуски компонентов (например, в генераторах заданных значений, датчиках и исполнительных органах) можно имитировать таким образом, чтобы можно было проверять надежность функций управления с обратной связью и без обратной связи.
Значительным плюсом также является большая глубина тестирования, которой можно достичь путем автоматизации. Это позволяет, к примеру, протестировать максимально возможное количество типов сбоев и их комбинаций при точно воспроизводимых условиях и документировать их в журнале сбоев.
Эта процедура также применима к испытаниям имеющихся генераторов, заданных значений, датчиков и исполнительных органов. Интерфейсы испытательной системы необходимо соответствующим образом изменить. В эту процедуру можно также встроить любые промежуточные этапы.
На рис. «Интеграция и тестирование ЭБУ с помощью циклической испытательной системы» ЭБУ изображены в виде «черного ящика». Поведение функций ЭБУ можно оценить только на основе входных и выходных сигналов w, у и u*. Этого изображения в виде «черного ящика» достаточно для простых программных функций. Однако для тестирования более сложных функций требуется интеграция процедуры измерения для внутренних промежуточных переменных ЭБУ. Эта технология измерения также называется инструментальным методом. Тестирование диагностических функций также требует доступа к запоминающему устройству неисправностей через диагностический интерфейс ЭБУ, а для этого требуется интеграция измерительно-диагностической системы (рис. «Интеграция и тестирование ЭБУ в реальном автомобиле» ).
Циклические испытательные системы
При циклических испытаниях встроенная электронная система подключается через интерфейсы к реальной (датчики, исполнительные органы) или виртуальной (математические модели) среде. Реакция системы анализируется и вводится обратно в систему. В зависимости от типа испытательных образцов различают следующие испытательные системы:
- В случае циклических испытаний модели (Model-in-the-Loop, MiL) тестируется функциональная модель программного обеспечения. Модель запускается на инструментальном компьютере систем автоматизированного проектирования.
- В случае циклических испытаний ПО (Software-in-the-Loop, SiL) тестируется программный код. Он запускается на инструментальном компьютере систем автоматизированного проектирования.
- В случае циклических испытаний функции (Function-in-the-Loop, FiL) тестируется программный код. Однако в отличие от SiL, он прогоняется на конечном устройстве. Связь между программным обеспечением и моделью среды выполняется посредством ловушек и эмулятора.
- В случае циклических испытаний аппаратной части (Hardware-in-the-Loop, HiL), весь ЭБУ проверяется посредством интерфейсов ввода-вывода. Также используются сочетания FiL и HiL. В качестве имитационных компьютеров все больше используются персональные компьютеры.
Циклические испытательные системы могут использоваться для проверки и дальнейшей разработки программного обеспечения и аппаратной части.
Калибровка программных функций
Процедура
Любая электронно-управляемая автомобильная система может лишь тогда развит свою способность, когда она оптимально адаптирована к соответствующему типу автомобиля. Чтобы программные функции можно было использовать в как можно большем количестве вариантов автомобилей, они содержат регулируемые параметры. Адаптация этих параметров к соответствующему варианту автомобиля и к каждому режиму работы (например, холодный режим работы, экстремальная жара или высота) называется калибровкой. Для достижения нужного уровня функциональности в автомобиле в целом необходимо использовать множество характеристических значений, кривых и программных карт — калибровочных данных.
Большинство изменений в автомобиле требует изменений в калибровке. Пример, кислородный датчик (λ-зонд в системе запуска измеряет остаточный кислород в выхлопе. На основе его сигналов можно определить фактически впрыскиваемое количество топлива. Таким образом, можно непрерывно и точно адаптировать параметры активации в ЭБУ двигателя. Необходимо адаптировать изменения в выпускной системе, приводящие изменению противодавления отработавших газов в точке, где установлен λ-зонд (например, измененный выпускной коллектор, сажевый фильтр). Если этого не сделать, то результатом будет увеличение расхода и вредных выбросов.
Управление вариантами в разработке, производстве и обслуживании можно: упростить путем разграничения программного статуса и статуса данных. Программный статус содержит, например, всю информации: о переменных, их предельных значениях и взаимосвязях, а статус данных содержит тактически примененные переменные.
Калибровка выполняется в лаборатории на стендах для двигателя и автомобиля во время испытаний автомобиля и в реальных условиях на испытательных маршрутах. В дополнение к измерительно-диагностической системе часто требуется калибровочная система для калибровки внутренних параметров ЭБУ, например, характеристических кривых и голограммных карт). По завершении калибровки производится комплексная проверка данных. Затем эти значения записываются в стираемую программируемую постоянную память (EPROM) или флэш-память последовательных ЭБУ.
Во время калибровки значения параметров должны быть регулируемыми. Поэтому система калибровки состоит из одного или более ЭБУ с подходящим интерфейсом измерительно-диагностической системы (рис. «Принцип работы измерительно-калибровочных инструментов» ). В дополнение к использованию в автомобилях, измерительно-диагностические и калибровочные системы можно также использовать в циклических испытательных системах и на испытательных стендах.
Изменения значений параметров, например, значений характеристической кривой, поддерживаются в калибровочной системе редакторами. Они также могут работать на уровне реализации (т.е. с примененными значениями) или на уровне физической спецификации. Соответственно, измерительная система преобразует записанные значения в физическое представление или представление реализаций. На рис. «Принцип работы измерительно-калибровочных инструментов» показан пример физического уровня и уровня реализации для характеристической кривой и записанного сигнала измерения.
При работе с системами калибровки обычно можно выбрать либо автономную калибровку, либо калибровку в реальном времени.
Автономная калибровка
При автономной калибровке выполнение функций управления с обратной связью и без обратной связи и функций контроля, т.е. «программы привода», прерываются для корректировки значений параметров. Поэтому при автономной калибровке возникает много ограничений. В частности, при использовании на испытательных стендах и во время тестирования в автомобиле она всегда влечет за собой прерывание испытаний на стенде или на дороге.
Калибровка в реальном времени
При калибровке в реальном времени значения параметров можно регулировать во время выполнения программных функций микроконтроллерами. Поэтому можно регулировать значения параметров при выполнении функций управления с обратной связью и без обратной связи и функций контроля, и стало быть, во время обычного использования на испытательном стенде или в автомобиле.
Калибровка в реальном времени предъявляет высокие требования к стабильности функций управления с обратной связью и без обратной связи и функций контроля, поскольку ездовой цикл должен оставаться стабильным во время всех процедур регулировки при возникновении исключений, например, если распределение точек интерполяции в характеристических кривых не сможет монотонно расти в течение коротких периодов времени. Калибровка в реальном времени подходит для долгосрочной модификации менее динамичных параметров (например, подстройки функций управления двигателем на моторном испытательном стенде).
Для применения более динамичных функций или функций, имеющих критичное значение для обеспечения безопасности (например, настройки программных функций системы ABS для маневров торможения во время тест-драйва), настройки не выполняются во время фактических маневров торможения. В этом случае калибровка в реальном времени все равно может сэкономить время посредством предотвращения любых прерываний выполнения программы и, соответственно, снижения интервала между двумя тест-драйвами.
Перспективы развития автомобильных функций и технологий
Новые автомобильные функции и технологии будут продолжать увеличивать объем программного обеспечения в автомобилях-даже в бюджетном сегменте. При этом во многих автомобилях количество ЭБУ остается неизменным. В результате объем функций некоторых ЭБУ продолжает расти. В целом системные разграничения между различными ЭБУ исчезают — например, в управлении гибридным приводом. Таким образом, электроника в автомобилях становится все более сложной. Поэтому ключевым элементом будущих разработок автомобильного программного обеспечения и сред разработки станет экономическая составляющая.
Другой тенденцией является все большая виртуализация разработок, когда отдельные части более поздних этапов разработки, таких как тестирование и калибровка, интегрируются в более простые фазы разработки, чтобы, к примеру, уже функциональные модели можно было циклически тестировать и снабжать данными на предварительной основе. Таким образом, сбои выявляются раньше, и непосредственно перед запуском серийного производства устраняются слабые места.
РЕКОМЕНДУЮ ЕЩЁ ПОЧИТАТЬ: