В Simulink ® можно гибко моделировать структуру и поведение программных компонентов для платформы AUTOSAR Classic. Компоненты могут содержать один или несколько исполняемых объектов и могут быть одинарными или многоэкземплярными. Для проектирования внутреннего поведения компонентов можно использовать стили моделирования Simulink, например на основе скорости и вызова функций.
Приложение AUTOSAR состоит из взаимосвязанных программных компонентов (SWC). Каждый программный компонент инкапсулирует функциональную реализацию автомобильного поведения с четко определенными точками подключения к внешнему миру.
В Simulink можно моделировать:
Атомарные программные компоненты - атомарный программный компонент не может быть разделен на более мелкие программные компоненты и работает ровно на одном автомобильном электронном блоке управления (ECU).
Компоненты программного обеспечения параметров - компонент программного обеспечения параметров представляет собой память, содержащую параметры калибровки AUTOSAR, и предоставляет данные параметров подключенным атомарным компонентам программного обеспечения.
Основным направлением моделирования AUTOSAR в Simulink являются атомарные программные компоненты. Сведения о компонентах программного обеспечения параметров см. в разделе Параметры калибровки и таблицы поиска модели AUTOSAR.
Примечание
Не путайте атомную в этом контексте с концепцией Simulink атомных подсистем.
Компонент атомарного программного обеспечения AUTOSAR взаимодействует с другими компонентами программного обеспечения AUTOSAR или системными службами через четко определенные точки соединения, называемые портами. Один или несколько исполняемых объектов (runnables) реализуют поведение компонента.
Для разработки атомарного программного компонента AUTOSAR в Simulink создается начальное представление Simulink компонента AUTOSAR, как описано в разделе Создание компонента. Можно либо импортировать описание компонента AUTOSAR из файлов ARXML, либо в существующей модели построить компонент AUTOSAR по умолчанию на основе содержимого модели. Результирующее представление включает в себя:
Блоки Simulink, соединения и данные, моделирующие элементы AUTOSAR, такие как порты, выполняемые объекты, переменные и параметры.
Сохраненные свойства, определенные в стандарте AUTOSAR для элементов AUTOSAR в программном компоненте.
Сопоставление элементов Simulink с элементами AUTOSAR.
Обычно представление Simulink компонента AUTOSAR представляет собой основанную на скорости модель, в которой периодические выполняемые объекты моделируются как атомарные подсистемы с периодическими скоростями.
Рассмотрим пример модели AUTOSAR autosar_swc. Эта модель показывает основанную на скорости реализацию атомарного программного компонента AUTOSAR. В модели реализована периодическая обработка с использованием нескольких скоростей. Инициализирующий функциональный блок инициализирует компонент.

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

Если конструкция программного компонента AUTOSAR содержит периодические таблицы выполнения, необходимо решить, требуется ли для компонента подход моделирования на основе скорости или на основе функционального вызова. Перед созданием начального представления Simulink компонента AUTOSAR укажите, как моделировать периодические выполняемые объекты:
При импорте описания компонента AUTOSAR из файлов ARXML с помощью arxml.importer функция объекта createComponentAsModel, укажите свойство ModelPeriodicRunnablesAs как AtomicSubsystem (по умолчанию) для основанных на скорости или FunctionCallSubsystem для функции на основе вызова.
При построении компонента AUTOSAR по умолчанию в существующей модели заполните модель содержимым на основе скорости или вызова функции.
Для моделирования на основе скорости создайте содержимое модели с одной или несколькими периодическими скоростями. Чтобы смоделировать переменную AUTOSAR с возможностью выполнения, используйте блок Rate Transition, который обрабатывает передачу данных между блоками, работающими с различными скоростями. Результирующий компонент имеет периодические выполняемые шаги, где N - количество дискретных скоростей в модели. События, которые представляют прерывания на основе скорости, инициируют выполнение периодических запускаемых шагов, используя монотонное планирование скорости.N
Для моделирования на основе вызова функции на верхнем уровне модели создайте подсистемы вызова функции или (для моделирования клиент-сервер) блоки Simulink Function. Добавление входов и выходов корневой модели. Чтобы смоделировать переменную AUTOSAR, можно использовать сигнальную линию для подключения подсистем вызова функций. Результирующий компонент имеет экспортируемая функция или выполняемые на сервере. N - количество подсистем вызова функций или блоков Simulink Function на верхнем уровне модели. События, представляющие вызовы функций, инициируют выполнение функциональных запусков.N
Выберите моделирование на основе скорости по умолчанию, если для проекта не требуется моделирование на основе вызова функции.
Иногда условия в программном компоненте AUTOSAR могут препятствовать использованию моделирования на основе скорости. Например:
Программный компонент AUTOSAR содержит сервер, который можно запустить.
Программный компонент AUTOSAR содержит управляемую переменную (IRV), считываемую или записываемую несколькими исполняемыми модулями.
Программный компонент AUTOSAR содержит периодически запускаемую скорость, которая не кратна самой быстрой скорости.
Программный компонент AUTOSAR содержит несколько запускаемых файлов, которые обращаются к одним и тем же данным чтения или записи с различной скоростью.
Программный компонент AUTOSAR содержит периодическую возможность запуска других событий.
Программный компонент AUTOSAR содержит несколько периодических запусков, запускаемых в один и тот же период.
Если программный компонент AUTOSAR поддерживает несколько экземпляров (т. е. SwcInternalBehavior признак supportsMultipleInstantiation имеет значение true), нельзя моделировать периодические выполняемые объекты как подсистемы вызова функций. Используйте моделирование на основе скорости и периодическую обработку моделей в качестве атомных подсистем или задайте supportsMultipleInstantiation кому false.
Примеры различных способов моделирования программных компонентов AUTOSAR см. в разделах Компоненты на основе скорости, Компоненты на основе вызовов функций и Шаблоны моделирования для Runnables AUTOSAR.
Многозадачность AUTOSAR можно моделировать с помощью многозадачного моделирования на основе скорости Simulink. Сначала создается или импортируется содержимое модели с несколькими периодическими скоростями. Вы можете:
Создание программного компонента с несколькими периодическими запусками в Simulink.
Импорт программного компонента с несколькими периодическими запусками из файлов ARXML в Simulink. Использовать arxml.importer функция объекта createComponentAsModel с собственностью ModelPeriodicRunnablesAs установить в значение AtomicSubsystem.
Перенос существующей многозадачной модели Simulink на целевой объект AUTOSAR.
Входы и выходы корневой модели представляют собой порты AUTOSAR, а блоки Rate Transition представляют собой межпроходные переменные (IRV) AUTOSAR.
Вот пример многозадачной модели на основе скорости, которая подходит для моделирования и генерации кода AUTOSAR. (В этом примере используется модель .) Модель представляет программный компонент AUTOSAR. Цвета, отображаемые при обновлении модели (если цвета включены на вкладке Отладка (Debug) в разделе Диагностика (Diagnostics) > Информационные наложения (Information Overlays)), представляют различные периодические скорости. Блоки Rate Transition представляют IRV AUTOSAR.matlabroot/help/toolbox/autosar/examples/mMultitasking_4rates.slx

При создании кода код модели C содержит сгруппированные по скорости функции шага модели, соответствующие runnables AUTOSAR, по одной для каждой дискретной скорости в модели. (Функции периодического шага должны вызываться с помощью монотонного планировщика скорости.) Дополнительные сведения см. в разделе Моделирование шаблонов для Runnables AUTOSAR.
Программный компонент AUTOSAR на основе скорости может включать в себя как периодические, так и асинхронные выполняемые файлы. Например, в бета-архитектуре типа JMAAB асинхронный триггер взаимодействует с периодическими модулями на основе скорости.
Рассмотрим пример модели AUTOSAR autosar_swc_fcncalls. Эта модель показывает основанную на скорости реализацию атомарного программного компонента AUTOSAR, который включает в себя подсистему асинхронного (запускаемого) вызова функции на корневом уровне. Инициализирующий функциональный блок инициализирует компонент.

Дополнительные сведения см. в разделе Добавление асинхронного триггера верхнего уровня к периодической системе на основе скорости.
Многопользовательские приложения AUTOSAR можно моделировать с помощью подсистем вызова функции Simulink или (для моделирования клиент-сервер) блоков функции Simulink на верхнем уровне модели. Сначала создается или импортируется содержимое модели с несколькими функциями. Вы можете:
Создайте программный компонент с несколькими исполняемыми модулями, моделируемыми как подсистемы вызова функций или функциональные блоки Simulink в Simulink.
Импорт программного компонента с несколькими исполняемыми файлами из файлов ARXML в Simulink. Использовать arxml.importer функция объекта createComponentAsModel с собственностью ModelPeriodicRunnablesAs установить в значение FunctionCallSubsystem.
Перенос существующей функциональной модели Simulink в целевой объект AUTOSAR.
Входы и выходы корневой модели представляют собой порты AUTOSAR, а сигнальные линии, соединяющие подсистемы вызова функций, представляют собой межпространственные переменные AUTOSAR (IRV).
Ниже приведен пример основанной на вызове функции модели с несколькими исполняемыми объектами, которая подходит для моделирования и генерации кода AUTOSAR. (В этом примере используется пример модели AUTOSAR autosar_swc_slfcns.) Модель представляет программный компонент AUTOSAR. Подсистема вызова функций с меткой SS1 и функциональный блок Simulink readData представляют выполняемые объекты, реализующие их поведение. Инициализирующий функциональный блок инициализирует компонент. Сигнальная линия curValIRV представляет собой IRV AUTOSAR.

При создании кода код модели C включает в себя вызываемые функции точки входа модели, соответствующие runnables AUTOSAR, по одной для каждой подсистемы вызова функции верхней модели или блока функции Simulink. Дополнительные сведения см. в разделе Моделирование шаблонов для Runnables AUTOSAR.
Многоэкземплярные SWC AUTOSAR можно моделировать в Simulink. Например, можно:
Сопоставьте и настройте модель Simulink как многоэкземплярный SWC AUTOSAR и проверьте конфигурацию. Используйте Reusable function установка параметра модели Code interface packaging (Simulink Coder).
Создание кода C с повторно вводимыми выполняемыми функциями и вызовами многоэкземплярного RTE API. Можно получить доступ к внешним параметрам ввода-вывода, калибровки и памяти для каждого экземпляра, а также использовать повторно используемые подсистемы в многоэкземплярном режиме.
Проверьте многоэкземплярный код C AUTOSAR с помощью моделирования SIL и PIL.
Импорт и экспорт XML-файлов описания multi-instance AUTOSAR SWC.
Примечание
Настройка модели как многоэкземплярного SWC AUTOSAR не поддерживается, если модель использует стиль моделирования на основе вызова функции. То есть, когда модель содержит один из следующих блоков:
Функция симулятора
Порт ввода на уровне модели, сконфигурированный для вывода вызова функции
Приложения AUTOSAR иногда требуют выполнения сложной логики во время инициализации системы, сброса и завершения последовательности. Для моделирования процесса запуска, сброса и завершения работы в программном компоненте AUTOSAR используются блоки Simulink Initialize Function и Terminate Function.
Блоки Initialize Function и Terminate Function могут управлять выполнением компонента в ответ на события инициализации, сброса или завершения. Блоки можно разместить на любом уровне иерархии модели. Каждая невиртуальная подсистема может иметь собственный набор функций инициализации, сброса и завершения. В модели более низкого уровня Simulink агрегирует содержимое функций с соответствующими экземплярами в родительской модели.
Блоки Initialize Function и Terminate Function содержат блок прослушивателя событий. Чтобы указать тип события функции - Initialize, Reset, или Terminate - используйте параметр Event type блока Event Listener. Кроме того, функциональный блок считывает или записывает состояние условий для других блоков. По умолчанию блок Initialize Function инициализирует состояние блока с помощью блока записи состояния. Аналогично, блок завершения функции сохраняет состояние блока с блоком считывания состояния. При запуске функции значение переменной состояния записывается в указанный блок или считывается из него.
Модели AUTOSAR могут использовать блоки для моделирования потенциально сложных последовательностей запуска, сброса и завершения работы AUTOSAR. Подсистемы работают с любым стилем моделирования компонентов AUTOSAR. (Однако программная имитация запуска, сброса или завершения AUTOSAR работает только с экспортированным моделированием функций.)
В модели AUTOSAR каждая функция Simulink инициализируется, сбрасывается или завершается точкой входа с возможностью выполнения AUTOSAR. Для каждого выполняемого события настройте событие AUTOSAR, которое активирует выполняемое событие. Как правило, можно выбрать любой тип события AUTOSAR, кроме TimingEvent.
Дополнительные сведения см. в разделе Настройка инициализируемых AUTOSAR, сброс или завершение выполнения.
Прослушиватель событий | Инициализация функции | Переход ставки | Функция симулятора | Считыватель состояния | Государственный писатель | Завершить функцию