Симулируйте вызовы компонента 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 (требует Simulink Test). На вкладке Apps нажмите Simulink Test. Затем на вкладке Tests нажмите Simulink Test Manager. Нажмите Add Test Harness. В диалоговом окне 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
порты. Например, SetEventStatus
порт S1StuckHigh
и GetFailedEvent
порт TPS1StuckHigh
совместно используйте идентификатор события 1; S1Stucklow
и TPS1StuckLow
совместно используйте идентификатор события 2; и так далее.
После ручного добавления NVRAM и Диагностических Сервисных блоков Компонента к модели интегрирования, симулируйте модель. Симуляция осуществляет AUTOSAR NvM и сервисные вызовы DEM в датчике положениях дросселя и моделях компонента монитора.
open_system('autosar_bsw_simulation'); simOutIntegration = sim('autosar_bsw_simulation');