Моделируйте вызовы компонента AUTOSAR памяти Basic Software и диагностических сервисов с помощью ссылочных реализаций
Стандарт AUTOSAR задает Basic Software (BSW) сервисы, которые запускаются в среде выполнения AUTOSAR. Сервисы включают менеджера NVRAM (NvM) и Диагностический менеджер событий (DEM) сервисы. В среде выполнения AUTOSAR, компоненты программного обеспечения AUTOSAR обычно доступ сервисы BSW, использующие клиент-сервер или коммуникация получателя отправителя.
В вашей модели компонента программного обеспечения AUTOSAR, чтобы реализовать клиентские вызовы сервисных интерфейсов NvM и DEM, вы перетаскиваете мышью, предварительно сконфигурировал блоки вызывающей стороны NvM и DEM. Каждый блок предварительно заполнил параметры, такие как имя Клиентского порта и Операция. Вы конфигурируете параметры блоков, например, чтобы выбрать NvM или сервисную операцию Dem, чтобы вызвать. Чтобы сконфигурировать добавленные блоки вызывающей стороны в компоненте программного обеспечения AUTOSAR, вы синхронизируете модель. Программное обеспечение создает интерфейсы клиентской службы AUTOSAR, операции и порты, и сопоставляет каждый вызов функции Simulink с клиентским портом AUTOSAR и операцию. Для получения дополнительной информации смотрите, Конфигурируют Вызовы менеджера AUTOSAR NVRAM Сервис и Конфигурируют Вызовы Диагностического Сервиса менеджера по корпоративным мероприятиям AUTOSAR.
Вот модель интегрирования положения дросселя, которая интегрирует два компонента датчика положений дросселя, и положение дросселя контролируют компонент. Компоненты датчика принимают необработанное значение датчика положений дросселя (TPS) и преобразовывают его в процентное значение TPS. Компонент монитора берет процентные значения TPS, обеспеченные первичными и вторичными компонентами датчика, и решает, о каком TPS сигнализируют, чтобы пройти. Компоненты датчика вызывают BSW NvM и сервисы DEM, и компонент монитора вызывает сервисы DEM BSW.
open_system('autosar_bsw_presim');
autosar_bsw_sensor1
компонентов датчика и autosar_bsw_sensor2
, каждый содержит Инициализировать Функциональный блок, который вызывает сервисный интерфейс NvMService
NvM. Вызовы реализованы с помощью блока NvMServiceCaller Библиотеки стандартных программ. Каждый блок сконфигурирован, чтобы вызвать операцию NvMService
ReadBlock
. Вызовы ReadBlock
используют клиентские порты S1LowSetPoint
и S2LowSetPoint
. Вот Инициализировать Функциональный блок для autosar_bsw_sensor1
.
Вот диалоговое окно блока NvMServiceCaller для ReadBlock
, призывают Инициализировать Функциональный блок. Для получения дополнительной информации смотрите NvMServiceCaller.
Компоненты датчика autosar_bsw_sensor1
и autosar_bsw_sensor2
каждый содержит два вызова сервисного интерфейса DiagnosticMonitor
DEM. Оба вызова реализованы с помощью блока DiagnosticMonitorCaller Библиотеки стандартных программ. Каждый блок сконфигурирован, чтобы вызвать операцию DiagnosticMonitor
SetEventStatus
. Вызовы SetEventStatus
используют клиентские порты S1StuckLow
, S1StuckHigh
, S2StuckLow
и S2StuckHigh
.
Вот диалоговое окно блока DiagnosticMonitorCaller для вызова StuckLow
в первом компоненте датчика. Для получения дополнительной информации смотрите DiagnosticMonitorCaller.
Контролируйте autosar_bsw_monitor
компонента содержит вызов сервисного интерфейса DiagnosticMonitor
DEM и четыре вызова сервисного интерфейса DiagnosticInfo
DEM.
Как в компоненте датчика, блок DiagnosticMonitorCaller
реализует вызов DiagnosticMonitor
, и это сконфигурировано, чтобы вызвать операцию SetEventStatus
. Именем клиентского порта является TPS
.
Четыре вызова DiagnosticInfo
реализованы с помощью блока DiagnosticInfoCaller Библиотеки стандартных программ. Каждый блок сконфигурирован, чтобы вызвать операцию DiagnosticInfo
GetEventFailed
. Вызовы GetEventFailed
используют клиентские порты TPS1StuckLow
, TPS1StuckHigh
, TPS2StuckLow
и TPS2StuckHigh
.
Вот диалоговое окно блока DiagnosticinfoCaller
для вызова TPS1StuckLow
. Для получения дополнительной информации смотрите DiagnosticInfoCaller.
Если вам лицензируют для Simulink Coder и Embedded Coder, можно сгенерировать код С и экспортировать описания arxml
для сервисных вызовов NvM и DEM. Откройте и создайте каждую модель компонента. Например, чтобы создать модель autosar_bsw_monitor
, откройте модель. Нажмите Ctrl+B или введите команду MATLAB rtwbuild('autosar_bsw_monitor')
.
Чтобы видеть результаты сборки модели, исследуйте отчет генерации кода.
Чтобы моделировать модель компонента AUTOSAR, которая вызывает сервисы BSW, создайте содержание состава, системы или модели тестовой обвязки. В том содержащем модель, обеспечьте ссылочные реализации сервисных операций NvM и DEM, вызванных компонентом.
Библиотека блоков AUTOSAR Basic Software включает блок NVRAM Service Component и блок Diagnostic Service Component. Блоки обеспечивают ссылочные реализации сервисных операций NvM и DEM. Чтобы поддержать симуляцию вызовов компонента сервисов NvM и DEM, включайте блоки в содержание модели. Можно вставить блоки любым из двух способов:
Автоматически вставьте блоки путем создания модели тестовой обвязки Simulink Test
Вручную вставьте блоки в содержание состава, системы или модели тестовой обвязки
Чтобы вставить Сервисные блоки Компонента автоматически для модели, которая вызывает BSW NvM и сервисы DEM, откройте модель (или содержание модели) и создайте обвязку Simulink Test. Выберите Analysis> Test Harness> Create for Model. В диалоговом окне Create Test Harness нажать ОК. Программное обеспечение компилирует модель, добавляет NVRAM и Диагностические Сервисные блоки Компонента, и создает порты и другие элементы, требуемые для симуляции. Например, вот тестовая обвязка, созданная для модели интегрирования положения дросселя.
Чтобы вставить Сервисные блоки Компонента вручную для сервисных вызовов NvM и DEM в этом примере, откройте модель интегрирования. Используя Браузер Библиотеки или команды add_block
, или путем ввода имен блока в окне модели, добавляют NVRAM и Диагностические Сервисные блоки Компонента к модели.
open_system('autosar_bsw_presim'); add_block('autosarlibnvm/NVRAM Service Component','autosar_bsw_presim/NVRAM Service Component'); add_block('autosarlibdem/Diagnostic Service Component','autosar_bsw_presim/Diagnostic Service Component'); set_param('autosar_bsw_presim','SimulationCommand','update');
Блок NVRAM Service Component предварительно заполнил параметры, включая параметры среды выполнения (RTE) и параметры NVRAM Properties. Исследуйте установки параметров и рассмотрите, требует ли кто-либо изменения, на основе того, как вы используете сервисные операции NvM. Для получения дополнительной информации смотрите Сервисный Компонент NVRAM.
Таблица вкладки RTE приводит клиентские порты компонента и их отображение с сервисным блоком IDs NvM. Каждая строка в таблице представляет вызов на службы NvM от блока вызывающей стороны Basic Software. Вызовы, которые действуют на тот же блок NvM обычно, используют тот же блок ID. Этот пример сопоставляет клиентские порты NvM ReadBlock
с различным блоком IDs.
Блок Diagnostic Service Component предварительно заполнил параметры, включая параметры RTE и Противооснованные параметры Debouncing. Исследуйте установки параметров и рассмотрите, требует ли кто-либо изменения, на основе того, как вы используете сервисные операции DEM.
Противооснованные параметры Debouncing управляют противооснованным debounce алгоритмом, предоставленным сервисными реализациями ссылки DEM. Во время нескольких выполнений симуляции можно настроить размер шага события и пороговые параметры и наблюдать эффекты. Для получения дополнительной информации смотрите Диагностический Сервисный Компонент.
Таблица вкладки RTE приводит клиентские порты компонента и их отображение с сервисными идентификаторами события DEM. Каждая строка в таблице представляет вызов на службы DEM от блока вызывающей стороны Basic Software. Вызовы, которые действуют на то же событие обычно, используют тот же идентификатор события. Этот пример сопоставляет DEM клиентские порты SetEventStatus
с различными идентификаторами события, и затем сопоставляет DEM клиентские порты GetEventFailed
с идентификаторами события, которые совместно используются с портами SetEventStatus
. Например, порт S1StuckHigh
и GetFailedEvent
порта SetEventStatus
идентификатор события доли TPS1StuckHigh
1; S1Stucklow
и TPS1StuckLow
совместно используют идентификатор события 2; и так далее.
После ручного добавления NVRAM и Диагностических Сервисных блоков Компонента к модели интегрирования, моделируйте модель. Симуляция осуществляет AUTOSAR NvM и сервисные вызовы DEM в датчике положениях дросселя и моделях компонента монитора.
open_system('autosar_bsw_simulation'); simOutIntegration = sim('autosar_bsw_simulation');