В Simulink®, для Classic Platform, можно смоделировать AUTOSAR sender-receiver (S-R), client-server (C-S), mode-switch (M-S), энергонезависимые (NV) данные, параметр и триггерную связь.
Программные компоненты AUTOSAR обеспечивают четко определенные точки соединения, называемые портами. Существует три типа портов AUTOSAR:
Require
(В)
Provide
из
Комбинированные Provide-Require
(InOut - представлен в схеме AUTOSAR версии 4.1)
Порты AUTOSAR могут ссылаться на следующие виды интерфейсов:
Отправитель-получатель
Клиент-сервер
Переключатель режимов
Энергонезависимые данные
Параметр
Спусковой механизм
Следующий рисунок показывает программный компонент AUTOSAR с четырьмя портами, представляющими комбинации портов и интерфейсов для интерфейсов Sender-Receiver и Client-Server.
A Require
порт, который ссылается на интерфейс Mode-Switch, называется mode-receiver port.
При коммуникации с получателем (S-R) на основе портов AUTOSAR программные компоненты AUTOSAR считывают и записывают данные в другие компоненты или службы. Для реализации связи S-R программные компоненты AUTOSAR определяют:
Интерфейс отправителя-получателя AUTOSAR с элементами данных.
AUTOSAR обеспечивает и требует порты, которые отправляют и получают данные.
В Simulink можно:
Создайте интерфейсы и порты AUTOSAR S-R с помощью словаря AUTOSAR.
Модель AUTOSAR обеспечивает и требует порты с помощью выходов и входных портов корневого уровня Simulink.
Сопоставьте выходные порты и входные порты с AUTOSAR, обеспечивающими и требующими порты, с помощью редактора Отображения.
Интерфейс отправитель-получатель состоит из одного или нескольких элементов данных. Хотя Require
, Provide
, или Provide-Require
порт может ссылаться на интерфейс отправителя-получателя, программный компонент AUTOSAR не обязательно получает доступ ко всем элементам данных. Для примера рассмотрим следующие рисунки.
Программный компонент AUTOSAR имеет Require
и Provide
порт, который ссылается на тот же интерфейс отправителя-получателя, Interface1
. Хотя этот интерфейс содержит элементы данных DE1
, DE2
, DE3
, DE4
, и DE5
компонент не использует все элементы данных.
Следующий рисунок является примером моделирования в Simulink программного компонента AUTOSAR, который обращается к элементам данных.
ASWC
обращается к элементам данных DE1
и DE2
. Доступ к элементу данных моделей следующим образом:
Для Require
порты, используйте входные порты Simulink. Для примера, RPort1_DE1
и RPort1_DE2
.
Для Provide
порты, используйте выходные порты Simulink. Для примера, PPort1_DE1
и PPort1_DE2
.
Для Provide-Require
порты (схема 4.1 или выше), используйте пары inport и outport Simulink с совпадающими типом данных, размерностью и типом сигнала. Для получения дополнительной информации см. раздел «Настройка порта AUTOSAR-Require».
ErrorStatus - это значение, которое возвращается в окружение выполнения AUTOSAR (RTE) для указания ошибок, обнаруженных системой связи для каждого элемента данных. Можно использовать входной порт Simulink, чтобы смоделировать состояние ошибки, например RPort1_DE1 (ErrorStatus)
.
Используйте Dictionary AUTOSAR и редактор Code Mappings, чтобы задать параметры AUTOSAR для каждого входного и выходного порта. Для получения дополнительной информации см. раздел «Настройка связи между отправителем и получателем AUTOSAR».
При обмене данными с получателем (S-R) в очереди AUTOSAR программные компоненты AUTOSAR считывают и записывают данные в другие компоненты или службы. Данные, отправленные программным компонентом отправителя AUTOSAR, добавляются в очередь, предоставляемую окружением выполнения AUTOSAR (RTE). Вновь полученные данные не перезаписывают существующие непрочитанные данные. Позже программный компонент приемника считывает данные из очереди.
Для реализации обмена данными S-R в очереди, программные компоненты AUTOSAR определяют:
Интерфейс отправителя-получателя AUTOSAR с элементами данных.
AUTOSAR обеспечивает и требует порты, которые отправляют и получают данные в очереди.
В Simulink можно:
Создайте интерфейсы и порты S-R в очереди AUTOSAR с помощью словаря AUTOSAR.
Модель AUTOSAR обеспечивает и требует порты с помощью выходов и входных портов корневого уровня Simulink.
Сопоставьте выходные порты и входные порты с AUTOSAR, обеспечивающими и требующими порты, с помощью редактора Отображения. Установите режимы доступа к данным AUTOSAR на QueuedExplicitSend
или QueuedExplicitReceive
.
Чтобы смоделировать отправку и прием данных AUTOSAR с помощью очереди, используйте блоки Simulink Send и Receive. Если ваша реализация связи S-R в очереди включает состояния или требует логики принятия решений, используйте Stateflow® чарты. Можно обрабатывать ошибки, возникающие, когда очередь пуста или полна. Можно задать размер очереди. Для получения дополнительной информации смотрите Обзор сообщений Simulink.
Можно симулировать коммуникацию отправитель-получатель (S-R) в очереди AUTOSAR между моделями компонента, например, в симуляции уровня композиции. Отправители и приемники данных могут запускаться с различными скоростями. Несколько отправителей данных могут взаимодействовать с одним приемником данных.
Чтобы начать, можно импортировать компоненты с поставленными в очередь интерфейсами S-R и портами из файлов ARXML в Simulink или использовать Simulink, чтобы создать интерфейсы и порты. Для получения дополнительной информации см. раздел «Настройка обмена данными между отправителем и получателем в очереди AUTOSAR».
AUTOSAR позволяет взаимодействовать клиент-сервер между:
Компоненты прикладного программного обеспечения
Компонент прикладного программного обеспечения и базовое программное обеспечение
Интерфейс клиент-сервер AUTOSAR определяет взаимодействие между программным компонентом, который обеспечивает интерфейс, и программным компонентом, который требует интерфейса. Компонентом, обеспечивающим интерфейс, является сервер. Компонент, который требует интерфейса, является клиентом.
Чтобы смоделировать клиенты и серверы AUTOSAR в Simulink, для симуляции и генерации кода:
Чтобы смоделировать серверы AUTOSAR, используйте Simulink Function блоков на корневом уровне модели.
Чтобы смоделировать вызовы клиента AUTOSAR, используйте блоки Function Caller.
Используйте стиль моделирования, основанный на вызове функции, чтобы создать взаимосвязанные функции Simulink, вызовы функции и корневые входные и выходные порты модели на верхнем уровне модели.
Эта схема иллюстрирует среду вызова функции, в которой блоки Simulink Function моделируют выполняемые серверы AUTOSAR, Function Caller блоки моделируют вызовы клиента AUTOSAR и линии передачи данных Simulink моделируют промежуточные переменные AUTOSAR (IRV).
Высокоуровневый рабочий процесс разработки клиентов и серверов AUTOSAR в Simulink:
Моделируйте функции сервера и блоки вызывающего абонента в Simulink. Например, создайте Simulink Function блоки на корневом уровне модели с соответствующими блоками Function Caller, которые вызывают функции. Используйте набор инструментов Simulink, чтобы моделировать и разрабатывать блоки.
В контексте модели, настроенной для AUTOSAR, сопоставьте и сконфигурируйте функции Simulink с выполняемыми серверами AUTOSAR. Проверьте строение, моделируйте и сгенерируйте код C и ARXML из модели.
В контексте другой модели, настроенной для AUTOSAR, сопоставьте и сконфигурируйте блоки вызывающего абонента функции с портами клиента AUTOSAR и операциями AUTOSAR. Проверьте строение, моделируйте и сгенерируйте код C и ARXML из модели.
Интегрируйте сгенерированный код C в среду тестирования для проверки, для примера, с SIL симуляцией. (В конечном счете сгенерированный код C и ARXML интегрируются в окружение выполнения AUTOSAR (RTE).)
Дополнительные сведения см. в разделе Настройка связи клиент-сервер AUTOSAR.
Коммуникация переключателя режима (M-S) AUTOSAR основана на менеджере режимов и подключенных пользователях режима. Менеджер режимов является авторитетным источником для программных компонентов, чтобы запросить текущий режим и получить уведомление при изменении режима. Диспетчер режимов может быть предоставлен программным обеспечением AUTOSAR Basic Software (BSW) или реализован как программный компонент AUTOSAR. Менеджер режимов, реализованный как программный компонент, называется менеджером режимов приложений. Программным компонентом, который запрашивает менеджер режима и получает уведомления об изменениях режима, является пользователь режима.
Чтобы смоделировать программный компонент пользователя в режиме AUTOSAR в Simulink:
Создайте интерфейс переключения режимов AUTOSAR.
Создайте порт приемника режима AUTOSAR и сопоставьте его с входным портом Simulink.
Для инициализации или другого запуска AUTOSAR в модели задайте событие переключения режима, чтобы запустить выполнение.
Чтобы смоделировать порт приемника режима программного компонента AUTOSAR, общие шаги могут включать:
Объявите группу объявления режима - группу значений режима - используя перечисление Simulink. Например, можно создать перечисленный тип mdgModes
, с перечисленными значениями MANUAL_ADJUST
и AUTO_ADJUST
. Укажите тип склада как беззнаковое целое число.
Simulink.defineIntEnumType('mdgModes', ... {'MANUAL_ADJUST', 'AUTO_ADJUST'}, ... [18 28], ... 'Description', 'Type definition of mdgModes.', ... 'HeaderFile', 'Rte_Type.h', ... 'DefaultValue', 'MANUAL_ADJUST', ... 'AddClassNameToEnumNames', false,... 'StorageType', 'uint16'... );
Примените тип данных перечисления к входному порту Simulink, который представляет порт приемника режима AUTOSAR. В этом диалоговом окне блока тип mdgModes
задается как тип входных данных.
Чтобы задать отображение входного порта Simulink с портом приемника режима AUTOSAR, используйте редактор Отображения (или эквивалентные функции карты AUTOSAR).
В следующем примере, на вкладке Inports редактора Code Mappings, Simulink inport mode_receiver
сопоставлен с портом приемника режима AUTOSAR current_mode
и элемент AUTOSAR mgMirrorAdjust
.
Чтобы задать событие переключения режимов, которое инициализирует выполнение инициализации или экспортированное выполнение, общие шаги могут включать:
Для редактирования, добавления или удаления интерфейсов переключения режимов AUTOSAR и портов приемника режимов используйте словарь AUTOSAR (или эквивалентные функции свойств AUTOSAR).
В модели выберите или добавьте runnable, который вы хотите активировать событием переключения режима.
В Runnables представлении словаря AUTOSAR выберите возможность выполнения, которую необходимо активировать при переключении режима. Настройте событие. В следующем примере событие переключения режима добавляется для Runnable_Auto
, и сконфигурировано для активации при входе (в зависимости от выхода или при переходе). Он сопоставлен с предварительно сконфигурированным портом получателя режима и значением объявления режима, которое допустимо для выбранного порта.
Для получения дополнительной информации см. раздел «Настройка связи в режиме AUTOSAR-Switch».
Чтобы смоделировать программный компонент менеджера режимов приложений в Simulink, используйте порт отправителя режима AUTOSAR. Порты отправителя режима выводят переключатель режима на пользовательские компоненты подключенного режима. Например, вот менеджер режима приложения, смоделированный в Simulink, который использует порт отправителя режима для вывода текущего значения EngineMode
.
Вы моделируете порт отправителя режима как корневой выходной порт модели, который сопоставлен с портом отправителя режима AUTOSAR и интерфейсом переключателя режима (M-S). Тип данных outport является классом перечисления с беззнаковым целочисленным типом хранилища, представляющим группу объявления режима AUTOSAR.
В Simulink можно:
Импортируйте элементы связи переключателя режима AUTOSAR из кода ARXML.
Программа импортирует Mode Switch Points, Mode Switch Interfaces и Mode Declaration Group.
Для каждого порта поставщика AUTOSAR, который ссылается на интерфейс M-S, импортер создает корневой порт с ModeSend
доступ к данным и с классом перечисления группы объявлений режима AUTOSAR.
Импортер сопоставляет вывод модели с портом отправителя в режиме AUTOSAR с интерфейсом M-S.
Создайте элементы связи AUTOSAR mode-switch.
Создайте корневой порт модели и установите тип данных вывода на класс перечисления, который представляет группу объявления режима AUTOSAR.
Создайте порт отправителя в режиме AUTOSAR со связанным интерфейсом M-S.
В редакторе Отображения установите режим доступа к исходящим данным равным ModeSend
, и сопоставить порт вывода с портом отправителя в режиме AUTOSAR.
Сгенерируйте ARXML и Код С для портов отправителя в режиме AUTOSAR и связанном авто-РСА элементами связи M-S.
Код ARXML включает ссылку Mode Switch Points, Mode Switch Interfaces и Mode Declaration Group.
Этот Код С включает в себя Rte_Switch
Вызовы API для передачи переключателей режима другим компонентам программного обеспечения.
Для получения дополнительной информации см. раздел «Настройка связи в режиме AUTOSAR-Switch».
Стандарт AUTOSAR задает энергонезависимую (NV) передачу данных на основе портов, при которой программный компонент AUTOSAR считывает и записывает данные в энергонезависимые компоненты AUTOSAR. Для реализации передачи данных NV, программные компоненты AUTOSAR определяют и требуют порты, которые отправляют и получают данные NV.
В Simulink можно:
Импортируйте интерфейсы данных и порты AUTOSAR NV из кода ARXML.
Создайте интерфейсы и порты AUTOSAR NV и сопоставьте входные и выходные порты Simulink с портами AUTOSAR NV.
Вы моделируете порты AUTOSAR NV с входными и выходными портами Simulink таким же образом, как описано в Интерфейсе отправителя-получателя.
Сгенерируйте код C и ARXML для интерфейсов и портов данных AUTOSAR NV.
Для получения дополнительной информации см. раздел «Настройка энергонезависимой передачи данных AUTOSAR».
Стандарт AUTOSAR задает основанные на портах параметры для передачи параметров. Коммуникация параметров AUTOSAR основана на программном компоненте параметра (ParameterSwComponent
) и один или несколько атомарных программных компонентов, которые требуют основанного на портах доступа к данным о параметрах. The ParameterSwComponent
представляет память, содержащую параметры AUTOSAR, и обеспечивает данные параметров для подключенных компонентов атомарного программного обеспечения.
В Simulink можно смоделировать фрагмент приемника передачи параметра на основе порта AUTOSAR. В элементарном программном компоненте AUTOSAR вы создаете интерфейс параметра с элементами данных и портом приемника параметра.
Для получения дополнительной информации смотрите Настройте параметры порта AUTOSAR для связи с компонентом параметра.
Стандарт AUTOSAR задает коммуникацию событий внешнего триггера, при которой программный компонент или сервис AUTOSAR сигнализирует о возникновении внешнего триггера (ExternalTriggerOccurredEvent
) к другому компоненту. Приемный компонент активирует возможность выполнения в ответ на событие.
В Simulink можно смоделировать фрагмент приемника передачи событий внешнего триггера AUTOSAR. В компоненте, который вы хотите реагировать на внешний триггер, вы создаете интерфейс триггера, порт приемника триггера, чтобы получить ExternalTriggerOccurredEvent
и возможность выполнения, активируемая событием.
Для получения дополнительной информации см. раздел «Настройка приемника для передачи событий внешнего триггера AUTOSAR».