В 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, использующий несколько уровней. Инициализировать Функциональный блок инициализирует компонент.
Однако, если ваш проект компонента требует функций сервера или вызовов периодической функции, представление Simulink может быть основанной на вызове функции моделью. Модель может содержать Функциональные блоки Simulink или подсистемы вызова функций с периодическими уровнями.
Рассмотрите модель autosar_swc_slfcns
в качестве примера AUTOSAR. Эта модель показывает основанную на вызове функции реализацию атомарного компонента программного обеспечения AUTOSAR. Модель использует Функциональный блок Simulink и периодическую подсистему вызова функций на корневом уровне. Инициализировать Функциональный блок инициализирует компонент.
Если ваш проект компонента программного обеспечения AUTOSAR содержит периодический runnables, необходимо решить, требует ли компонент основанного на уровне или основанного на вызове функции подхода моделирования. Прежде чем вы будете создавать начальное представление Simulink своего компонента AUTOSAR, будете определять, как смоделировать периодический runnables:
Если вы импортируете описание компонента AUTOSAR из файлов arxml
с помощью функции объекта arxml.importer
createComponentAsModel
, задаете свойство ModelPeriodicRunnablesAs
как AtomicSubsystem
(значение по умолчанию) для основанного на уровне или FunctionCallSubsystem
для базирующегося вызова функции.
Если вы создаете компонент AUTOSAR по умолчанию в существующей модели, заполняете модель с основанным на уровне или основанным на вызове функции содержимым.
Для основанного на уровне моделирования создайте образцовое содержимое с одним или несколькими периодическими уровнями. Чтобы смоделировать межвыполнимую переменную AUTOSAR, используйте блок Rate Transition, который обрабатывает передачи данных между блоками, действующими на различных уровнях. Получившийся компонент имеет
периодический шаг runnables, где N
является количеством дискретных уровней в модели. События, которые представляют основанные на уровне прерывания, инициируют выполнение периодического шага runnables, с помощью пропорционального числу обращений планирования.N
Для основанного на вызове функции моделирования, в верхнем уровне модели, создают подсистемы вызова функций — или (для моделирования клиент-сервер) Функциональные блоки Simulink. Добавьте корневой импорт модели и выходные порты. Чтобы смоделировать межвыполнимую переменную AUTOSAR, используйте сигнальную линию, чтобы соединить подсистемы вызова функций. Получившийся компонент имеет экспортированную функцию
или сервер runnables. N
является количеством подсистем вызова функций или Функциональных блоков Simulink в верхнем уровне модели. События, которые представляют вызовы функции, инициируют выполнение функционального 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, и блоки Перехода Уровня представляют межвыполнимые переменные AUTOSAR (IRVs).
Вот пример основанной на уровне, многозадачной модели, которая подходит для симуляции и генерации кода AUTOSAR. (Этот пример использует модель
.) Модель представляет компонент программного обеспечения AUTOSAR. Четыре цвета, отображенные, когда вы обновляете модель (если Display> Sample Time> Colors выбран), представляют различные периодические существующие уровни. Блоки Перехода Уровня представляют три AUTOSAR IRVs.matlabroot/help/toolbox/autosar/examples/mMultitasking_4rates.slx
Когда вы генерируете код, образцовый код С содержит сгруппированные уровнем образцовые ступенчатые функции, соответствующие AUTOSAR runnables, один для каждого дискретного уровня в модели. (Периодические ступенчатые функции должны быть названы способом пропорционального числу обращений планировщика.) Для получения дополнительной информации, смотрите Шаблоны Моделирования для AUTOSAR Runnables.
Основанный на уровне компонент программного обеспечения AUTOSAR может включать и периодический и асинхронный runnables. Например, в бета архитектуре типа JMAAB, асинхронный выполнимый триггер взаимодействует с периодическим основанным на уровне runnables.
Рассмотрите модель autosar_swc_fcncalls
в качестве примера AUTOSAR. Эта модель показывает основанную на уровне реализацию атомарного компонента программного обеспечения AUTOSAR, который включает асинхронную (инициированную) подсистему вызова функций в корневой уровень. Инициализировать Функциональный блок инициализирует компонент.
Для получения дополнительной информации смотрите, Добавляет Асинхронный Триггер Верхнего уровня к Периодической Основанной на уровне Системе.
Можно смоделировать AUTOSAR multi-runnables использование подсистем вызова функций Simulink — или (для моделирования клиент-сервер) Функциональные блоки Simulink — в верхнем уровне модели. Сначала вы создаете или импортируете образцовое содержимое с несколькими функциями. Вы можете:
Создайте компонент программного обеспечения с несколькими runnables, смоделированными как подсистемы вызова функций или Функциональные блоки Simulink в Simulink.
Импортируйте компонент программного обеспечения с несколькими runnables из файлов arxml
в Simulink. Используйте функцию объекта arxml.importer
createComponentAsModel
с набором свойства ModelPeriodicRunnablesAs
к FunctionCallSubsystem
.
Переместите существующую функциональную модель Simulink на цель AUTOSAR.
Корневой импорт модели и выходные порты представляют порты AUTOSAR, и сигнальные линии, соединяющие подсистемы вызова функций, представляют межвыполнимые переменные AUTOSAR (IRVs).
Вот пример основанной на вызове функции модели с несколькими выполнимыми сущностями, который подходит для симуляции и генерации кода AUTOSAR. (Этот пример использует модель autosar_swc_slfcns
в качестве примера AUTOSAR.) Модель представляет компонент программного обеспечения AUTOSAR. Подсистема вызова функций маркировала SS1
, и Simulink Function block readData
представляют runnables, которые реализуют его поведение. Инициализировать Функциональный блок инициализирует компонент. Сигнальная линия curValIRV
представляет AUTOSAR IRV.
Когда вы генерируете код, образцовый код С включает вызываемые образцовые функции точки входа, соответствующие AUTOSAR runnables, один для каждой подсистемы вызова функций топ-модели или Функционального блока Simulink. Для получения дополнительной информации смотрите Шаблоны Моделирования для 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
Образцовый уровень Inport, сконфигурированный, чтобы вывести периодический вызов функции
Приложения AUTOSAR иногда требуют, чтобы сложная логика выполнилась во время системной инициализации, сбросила, и последовательности завершения. К образцовому запуску, сбросу, и обработке завершения работы в компоненте программного обеспечения AUTOSAR, использованию блоки Simulink Инициализируют Функцию и Оконечную Функцию.
Инициализировать Функция и Оконечные Функциональные блоки могут управлять выполнением компонента в ответ на, инициализируют, сбрасывают, или оконечные события. Можно поместить блоки на любом уровне иерархии модели. Каждая невиртуальная подсистема может иметь свой собственный набор, инициализируют, сбрасывают, и оконечные функции. В модели низшего уровня Simulink агрегировал содержимое функций с соответствующими экземплярами в родительской модели.
Инициализировать Функция и Оконечные Функциональные блоки содержат блок Event Listener. Чтобы задать тип события функции — Initialize
, Reset
, или Terminate
— используют параметр Event type блока Event Listener. Кроме того, функциональный блок читает или пишет состояние условий для других блоков. По умолчанию Инициализируйте Функциональный блок, инициализирует состояние блока с блоком State Writer. Точно так же Оконечный Функциональный блок сохраняет состояние блока с блоком State Reader. Когда функция инициирована, значение переменной состояния записано в или считано из заданного блока.
Модели AUTOSAR могут использовать блоки для модели, потенциально объединяют запуск AUTOSAR, сбрасывают, и последовательности завершения работы. Подсистемы работают с любым стилем моделирования компонента AUTOSAR. (Однако программное обеспечение в симуляции цикла AUTOSAR инициализирует, сбросило или останавливается, runnables работает только с экспортируемым моделированием функций.)
В модели AUTOSAR вы сопоставляете каждый Simulink, инициализируют, сбрасывают или отключают функцию точки входа к выполнимому AUTOSAR. Для каждого выполнимого, сконфигурируйте событие AUTOSAR, которое активирует выполнимое. В целом можно выбрать любой тип события AUTOSAR кроме TimingEvent
.
Для получения дополнительной информации смотрите, Конфигурируют AUTOSAR, Инициализируют, Сброс, или Отключают Runnables.
Event.listener | Инициализируйте функцию | Переход уровня | Функция Simulink | Читатель состояния | Средство записи состояния | Оконечная функция