В Simulink® можно гибко смоделировать структуру и поведение компонентов программного обеспечения для Классической Платформы AUTOSAR. Компоненты могут содержать одну или несколько выполнимых сущностей и могут быть одно экземпляром или мультиэкземпляром. Чтобы спроектировать внутреннее поведение компонентов, можно использовать стили моделирования Simulink, такой как основанные на уровне и базирующийся вызов функции.
Приложение AUTOSAR составлено из взаимосвязанных компонентов программного обеспечения (SWCs). Каждый компонент программного обеспечения инкапсулирует функциональную реализацию автомобильного поведения с четко определенными точками контакта к внешнему миру.
В Simulink можно смоделировать:
Атомарные компоненты программного обеспечения — атомарный компонент программного обеспечения не может быть разделен в меньшие компоненты программного обеспечения и работает точно на одном автомобильном электронном блоке управления (ECU).
Компоненты программного обеспечения параметра — компонент программного обеспечения параметра представляет память, содержащую калибровочные параметры AUTOSAR, и предоставляет данные о параметре связанным атомарным компонентам программного обеспечения.
Основным особым вниманием AUTOSAR, моделирующего в Simulink, являются атомарные компоненты программного обеспечения. Для получения информации о компонентах программного обеспечения параметра смотрите Калибровочные Параметры AUTOSAR Модели и Интерполяционные таблицы.
Примечание
Не путайте атомарный в этом контексте с концепцией Simulink атомарных подсистем.
Атомарный компонент программного обеспечения AUTOSAR взаимодействует с другими компонентами программного обеспечения AUTOSAR, или системные службы через четко определенные точки контакта вызвали порты. Одна или несколько выполнимых сущностей (runnables) реализуют поведение компонента.
Чтобы разработать атомарный компонент программного обеспечения AUTOSAR в Simulink, вы создаете начальное представление Simulink компонента AUTOSAR, как описано в Создании Компонента. Можно или импортировать описание компонента AUTOSAR из файлов ARXML или, в существующей модели, создать AUTOSAR по умолчанию, компонентно-ориентированный на содержимом модели. Получившееся представление включает:
Блоки Simulink, связи и данные, что элементы модели AUTOSAR, такие как порты, runnables, межвыполнимые переменные и параметры.
Сохраненные свойства, заданные в стандарте AUTOSAR, для элементов AUTOSAR в компоненте программного обеспечения.
Отображение элементов Simulink к элементам AUTOSAR.
Обычно, представление Simulink компонента AUTOSAR является основанной на уровне моделью, в которой периодические runnables моделируются как атомарные подсистемы с периодическими уровнями.
Рассмотрите модель autosar_swc
в качестве примера AUTOSAR. Эта модель показывает основанную на уровне реализацию атомарного компонента программного обеспечения AUTOSAR. Модель реализует периодический runnables, использующий несколько уровней. Блок Initialize Function инициализирует компонент.
Однако, если ваш проект компонента требует функций сервера или вызовов периодической функции, представление Simulink может быть основанной на вызове функции моделью. Модель может содержать блоки Simulink Function или подсистемы вызова функций с периодическими уровнями.
Рассмотрите модель autosar_swc_slfcns
в качестве примера AUTOSAR. Эта модель показывает основанную на вызове функции реализацию атомарного компонента программного обеспечения AUTOSAR. Модель использует блок Simulink Function и периодическую подсистему вызова функций на корневом уровне. Блок Initialize Function инициализирует компонент.
Если ваш проект компонента программного обеспечения AUTOSAR содержит периодический runnables, необходимо решить, требует ли компонент основанного на уровне или основанного на вызове функции подхода моделирования. Прежде чем вы будете создавать начальное представление Simulink своего компонента AUTOSAR, будете определять, как смоделировать периодический runnables:
Если вы импортируете описание компонента AUTOSAR из файлов ARXML с помощью arxml.importer
объектная функция createComponentAsModel
, задайте свойство ModelPeriodicRunnablesAs
как AtomicSubsystem
(значение по умолчанию) для основанного на уровне или FunctionCallSubsystem
для базирующегося вызова функции.
Если вы создаете компонент AUTOSAR по умолчанию в существующей модели, заполняете модель с основанным на уровне или основанным на вызове функции содержимым.
Для основанного на уровне моделирования создайте содержимое модели с одним или несколькими периодическими уровнями. Чтобы смоделировать межвыполнимую переменную AUTOSAR, используйте блок Rate Transition, который обрабатывает передачи данных между блоками, действующими на различных уровнях. Получившийся компонент имеет
периодический шаг runnables, где N
количество дискретных уровней в модели. События, которые представляют основанные на уровне прерывания, инициируют выполнение периодического шага runnables, с помощью пропорционального числу обращений планирования.N
Для основанного на вызове функции моделирования, в верхнем уровне модели, создают подсистемы вызова функций — или (для моделирования клиент-сервер) блоки Simulink Function. Добавьте корневой импорт модели и выходные порты. Чтобы смоделировать межвыполнимую переменную AUTOSAR, используйте сигнальную линию, чтобы соединить подсистемы вызова функций. Получившийся компонент имеет
экспортированная функция или сервер runnables. N
количество подсистем вызова функций или блоков Simulink Function в верхнем уровне модели. События, которые представляют вызовы функции, инициируют выполнение функционального runnables.N
Выберите основанное на уровне моделирование, значение по умолчанию, если ваш проект не требует основанного на вызове функции моделирования.
Иногда, условия в вашем компоненте программного обеспечения AUTOSAR могут предотвратить использование основанного на уровне моделирования. Например:
Компонент программного обеспечения AUTOSAR содержит выполнимый сервер.
Компонент программного обеспечения AUTOSAR содержит межвыполнимую переменную (IRV) что несколько чтений runnables или записи.
Компонент программного обеспечения AUTOSAR содержит периодическое выполнимое с уровнем, который не является кратным самому быстрому уровню.
Компонент программного обеспечения AUTOSAR содержит несколько runnables, которые получают доступ к тому же чтению или записывают данные на различных уровнях.
Компонент программного обеспечения AUTOSAR содержит периодическое выполнимое, которое также инициировали другие события.
Компонент программного обеспечения AUTOSAR содержит несколько периодических runnables, которые инициированы в тот же период.
Если ваш компонент программного обеспечения AUTOSAR поддерживает несколько инстанцирование (то есть, SwcInternalBehavior
припишите supportsMultipleInstantiation
установлен в true
), вы не можете смоделировать периодический runnables как подсистемы вызова функций. Или используйте основанное на уровне моделирование и периодический runnables модели как атомарные подсистемы, или установите supportsMultipleInstantiation
к false
.
Для примеров различных путей к компонентам программного обеспечения модели AUTOSAR смотрите Основанные на уровне Компоненты, основанные на вызове функции Компоненты и Шаблоны Моделирования для AUTOSAR Runnables.
Можно смоделировать AUTOSAR multi-runnables использование Simulink основанное на уровне, многозадачное моделирование. Сначала вы создаете или импортируете содержимое модели с несколькими периодическими уровнями. Вы можете:
Создайте компонент программного обеспечения с несколькими периодическими runnables в Simulink.
Импортируйте компонент программного обеспечения с несколькими периодическими runnables из файлов ARXML в Simulink. Используйте arxml.importer
объектная функция createComponentAsModel
со свойством ModelPeriodicRunnablesAs
установите на AtomicSubsystem
.
Переместите существующую основанную на уровне, многозадачную модель Simulink на цель AUTOSAR.
Корневой импорт модели и выходные порты представляют порты AUTOSAR, и блоки Rate Transition представляют межвыполнимые переменные AUTOSAR (IRVs).
Вот пример основанной на уровне, многозадачной модели, которая подходит для симуляции и генерации кода AUTOSAR. (Этот пример использует модель
.) Модель представляет компонент программного обеспечения AUTOSAR. Цвета, отображенные, когда вы обновляете модель (если цвета включены на вкладке Debug под Diagnostics> Information Overlays), представляют различные периодические существующие уровни. Блоки Rate Transition представляют AUTOSAR IRVs.matlabroot
/help/toolbox/autosar/examples/mMultitasking_4rates.slx
Когда вы генерируете код, код С модели содержит сгруппированные уровнем ступенчатые функции модели, соответствующие AUTOSAR runnables, один для каждого дискретного уровня в модели. (Периодические ступенчатые функции должны быть названы способом пропорционального числу обращений планировщика.) Для получения дополнительной информации, смотрите Шаблоны Моделирования для AUTOSAR Runnables.
Основанный на уровне компонент программного обеспечения AUTOSAR может включать и периодический и асинхронный runnables. Например, в бета архитектуре типа JMAAB, асинхронный выполнимый триггер взаимодействует с периодическим основанным на уровне runnables.
Рассмотрите модель autosar_swc_fcncalls
в качестве примера AUTOSAR. Эта модель показывает основанную на уровне реализацию атомарного компонента программного обеспечения AUTOSAR, который включает асинхронную (инициированную) подсистему вызова функций в корневой уровень. Блок Initialize Function инициализирует компонент.
Для получения дополнительной информации смотрите, Добавляет Асинхронный Триггер Верхнего уровня к Периодической Основанной на уровне Системе.
Можно смоделировать AUTOSAR multi-runnables использование подсистем вызова функций Simulink — или (для моделирования клиент-сервер) блоки Simulink Function — в верхнем уровне модели. Сначала вы создаете или импортируете содержимое модели с несколькими функциями. Вы можете:
Создайте компонент программного обеспечения с несколькими runnables, смоделированными как подсистемы вызова функций или блоки Simulink Function в Simulink.
Импортируйте компонент программного обеспечения с несколькими runnables из файлов ARXML в Simulink. Используйте arxml.importer
объектная функция createComponentAsModel
со свойством ModelPeriodicRunnablesAs
установите на FunctionCallSubsystem
.
Переместите существующую функциональную модель Simulink на цель AUTOSAR.
Корневой импорт модели и выходные порты представляют порты AUTOSAR, и сигнальные линии, соединяющие подсистемы вызова функций, представляют межвыполнимые переменные AUTOSAR (IRVs).
Вот пример основанной на вызове функции модели с несколькими выполнимыми сущностями, который подходит для симуляции и генерации кода AUTOSAR. (Этот пример использует модель autosar_swc_slfcns
в качестве примера AUTOSAR.) Модель представляет компонент программного обеспечения AUTOSAR. Подсистема вызова функций пометила
SS1
и блок Simulink Function readData
представляйте runnables, которые реализуют его поведение. Блок Initialize Function инициализирует компонент. Сигнальная линия curValIRV
представляет AUTOSAR IRV.
Когда вы генерируете код, код С модели включает вызываемые функции точки входа модели, соответствующие AUTOSAR runnables, один для каждой подсистемы вызова функций топ-модели или блока Simulink Function. Для получения дополнительной информации смотрите Шаблоны Моделирования для AUTOSAR Runnables.
Можно смоделировать мультиэкземпляр AUTOSAR SWCs в Simulink. Например, вы можете:
Сопоставьте и сконфигурируйте модель Simulink как мультиэкземпляр AUTOSAR SWC и подтвердите настройку. Используйте Reusable function
установка параметра модели Code interface packaging (Simulink Coder).
Сгенерируйте код С с повторно используемыми выполнимыми функциями и мультиэкземпляром вызовы API RTE. Можно получить доступ к внешнему вводу-выводу, калибровочным параметрам и памяти на экземпляр, и использовать допускающие повторное использование подсистемы в режиме мультиэкземпляра.
Проверьте код С мультиэкземпляра AUTOSAR с SIL и PIL симуляциями.
Мультиэкземпляр импорта и экспорта XML-файлы описания AUTOSAR SWC.
Примечание
Конфигурирование модели как мультиэкземпляр, AUTOSAR SWC не поддерживается, когда модель использует основанный на вызове функции стиль моделирования. Таким образом, когда модель содержит любой из этих блоков:
Simulink Function
Уровень модели Inport, сконфигурированный, чтобы вывести вызов функции
Приложения AUTOSAR иногда требуют, чтобы сложная логика выполнилась во время системной инициализации, сбросила, и последовательности завершения. К запуску модели сброс и обработка завершения работы в компоненте программного обеспечения AUTOSAR, используют блоки Simulink Initialize Function и Terminate Function.
Initialize Function и блоки Terminate Function могут управлять выполнением компонента в ответ на, инициализируют, сбрасывают, или оконечные события. Можно поместить блоки на любом уровне иерархии модели. Каждая невиртуальная подсистема может иметь свой собственный набор, инициализируют, сбрасывают, и оконечные функции. В модели низшего уровня Simulink агрегировал содержимое функций с соответствующими экземплярами в родительской модели.
Initialize Function и блоки Terminate Function содержат блок Event Listener. Задавать тип события функции — Initialize
сброс
, или Terminate
— используйте параметр Event type блока Event Listener. Кроме того, функциональный блок читает или пишет состояние условий для других блоков. По умолчанию блок Initialize Function инициализирует состояние блока блоком State Writer. Точно так же блок Terminate Function сохраняет состояние блока с блоком State Reader. Когда функция инициирована, значение переменной состояния записано в или считано из заданного блока.
Модели AUTOSAR могут использовать блоки для модели, потенциально объединяют запуск AUTOSAR, сбрасывают, и последовательности завершения работы. Подсистемы работают с любым стилем моделирования компонента AUTOSAR. (Однако программное обеспечение в симуляции цикла AUTOSAR инициализирует, сбросило или завершает работу, runnables работает только с экспортируемым моделированием функций.)
В модели AUTOSAR вы сопоставляете каждый Simulink, инициализируют, сбрасывают или отключают функцию точки входа к выполнимому AUTOSAR. Для каждого выполнимого, сконфигурируйте событие AUTOSAR, которое активирует выполнимое. В общем случае можно выбрать любой тип события AUTOSAR кроме TimingEvent
.
Для получения дополнительной информации смотрите, Конфигурируют AUTOSAR, Инициализируют, Сброс, или Отключают Runnables.
Event Listener | Initialize Function | Rate Transition | Simulink Function | State Reader | State Writer | Terminate Function