Симулируйте вызовы компонентов AUTOSAR к Basic Software memory и службам диагностики с помощью ссылочных реализаций.
Стандарт AUTOSAR задает службы Basic Software (BSW), которые выполняются во время выполнения окружения AUTOSAR. Услуги включают в себя диспетчер событий NVRAM (NvM) Diagnostic Event Manager (Dem) и сервисы Function Inhibition Manager (FiM). В среде выполнения AUTOSAR программные компоненты AUTOSAR обычно получают доступ к службам BSW с помощью связи клиент-сервер или отправитель-получатель.
В модели компонента программного обеспечения AUTOSAR для реализации вызовов клиентов к интерфейсам услуг NvM, Dem и FiM можно перетащить предварительно сконфигурированные блоки вызывающего абонента NvM, Dem и FiM. Каждый блок имеет предварительно заполненные параметры, такие как имя порта клиента и операция. Вы конфигурируете параметры блоков, для примера, чтобы выбрать сервисную операцию для вызова. Чтобы сконфигурировать добавленные блоки вызывающего абонента в программном компоненте AUTOSAR, синхронизируйте модель. Программное обеспечение создает интерфейсы, операции и порты клиента AUTOSAR и сопоставляет каждый вызов функции Simulink с клиентским портом и операцией AUTOSAR. Дополнительные сведения см. в разделах Настройка вызовов службы AUTOSAR NVRAM Manager, Настройка вызовов службы AUTOSAR Diagnostic Event Manager и Настройка вызовов службы AUTOSAR Function Inhibition Manager.
Вот модель интегрирования положения дросселя, которая интегрирует два компонента датчика положения дросселя и компонент монитора положения дросселя. Компоненты датчика берут значение датчика положения дросселя необработанного (TPS) и преобразуют его в процентное значение TPS. Компонент монитора принимает процентные значения TPS, обеспечиваемые первичным и вторичным компонентами датчика, и решает, какой сигнал TPS должен пройти. Компоненты датчика вызывают услуги BSW NvM и Dem, а компоненты монитора - услуги BSW Dem.
open_system('autosar_bsw_presim');
Компоненты датчика autosar_bsw_sensor1
и autosar_bsw_sensor2
каждый содержит блок Initialize Function, который вызывает служебный интерфейс NvM NvMService
. Вызовы реализуются с помощью Basic Software библиотечного блока NvMServiceCaller. Каждый блок сконфигурирован для вызова NvMService
операция ReadBlock
. The ReadBlock
вызовы используют клиентские порты S1LowSetPoint
и S2LowSetPoint
. Вот блок Initialize Function для autosar_bsw_sensor1
.
Вот диалоговое окно блока NvMServiceCaller для ReadBlock
вызов в блоке Initialize Function. Для получения дополнительной информации см. NvMServiceCaller.
Компоненты датчика autosar_bsw_sensor1
и autosar_bsw_sensor2
каждый содержит два вызова к интерфейсу услуги Dem DiagnosticMonitor
. Оба вызова реализуются с помощью библиотечного блока Basic Software DiagnosticMonitorCaller. Каждый блок сконфигурирован для вызова DiagnosticMonitor
операция SetEventStatus
. The SetEventStatus
вызовы используют клиентские порты S1StuckLow
, S1StuckHigh
, S2StuckLow
, и S2StuckHigh
.
Вот диалоговое окно блока DiagnosticMonitorCaller для StuckLow
вызов первого компонента датчика. Для получения дополнительной информации см. DiagnosticMonitorCaller.
Отслеживайте autosar_bsw_monitor
компонента содержит вызов интерфейса услуги Dem
DiagnosticMonitor
и четыре вызова интерфейса услуги Dem DiagnosticInfo
.
Как и в компоненте датчика, DiagnosticMonitorCaller
блок реализует DiagnosticMonitor
вызов, и он сконфигурирован для вызова SetEventStatus
операция. Имя порта клиента TPS
.
Четыре DiagnosticInfo
вызовы реализуются с помощью библиотечного блока Basic Software DiagnosticInfoCaller. Каждый блок сконфигурирован для вызова DiagnosticInfo
операция GetEventFailed
. The GetEventFailed
вызовы используют клиентские порты TPS1StuckLow
, TPS1StuckHigh
, TPS2StuckLow
, и TPS2StuckHigh
.
Вот DiagnosticinfoCaller
диалоговое окно блока для TPS1StuckLow
вызов. Для получения дополнительной информации см. раздел DiagnosticInfoCaller.
Если у вас есть программное обеспечение Simulink Coder и Embedded Coder, можно сгенерировать код С и экспортировать описания ARXML для сервисных вызовов NvM и Dem. Откройте и создайте каждую модель компонента. Для примера, чтобы создать модель autosar_bsw_monitor
, откройте модель. Нажмите Ctrl + B или введите команду
MATLAB slbuild('autosar_bsw_monitor')
.
Чтобы увидеть результаты сборки модели, исследуйте отчет о генерации кода.
Чтобы симулировать модель компонента AUTOSAR, которая вызывает службы BSW, создайте содержащую композицию, систему или модель тестовой обвязки. В той, которая содержит модель, обеспечивают эталонные реализации сервисных операций NvM, Dem и FiM, вызываемых компонентом.
Библиотека блоков AUTOSAR Basic Software включает блок NVRAM Service Component и блок Diagnostic Service Component. Блоки обеспечивают эталонные реализации операций обслуживания NvM, Dem и FiM. Чтобы поддержать симуляцию вызовов компонентов в сервисы NvM, Dem и FiM, включите блоки в содержащую модель. Можно вставить блоки любым из двух способов:
Автоматически вставьте блоки, создав модель тестовой обвязки Simulink Test
Вручную вставьте блоки в содержащую композицию, систему или модель тестовой обвязки
Чтобы автоматически вставить блоки Service Component для модели, которая вызывает сервисы BSW NvM, Dem и FiM, откройте модель (или содержащую модель) и создайте тестовую обвязку Simulink Test (требует Simulink Test). На вкладке Приложения нажмите Simulink Test.Затем на вкладке Тесты нажмите Добавить тестовую обвязку. В диалоговом окне Create Test Harness нажмите OK. Программное обеспечение компилирует модель, добавляет блоки NVRAM и Diagnostic Service Component, и создает порты и другие элементы, необходимые для симуляции. Для примера вот тестовая обвязка, созданная для модели интегрирования положения дросселя.
Чтобы вставить блоки Service Component вручную для сервисных вызовов NvM и Dem в этом примере, откройте модель интегрирования. Использование браузера библиотек или add_block
команды или путем ввода имен блоков в окне модели добавьте блоки NVRAM и Diagnostic Service Component к модели.
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 перечислены клиентские порты компонентов и их отображения к идентификаторам блоков услуг NvM. Каждая строка в таблице представляет вызов в службы NvM из блока вызывающего абонента Basic Software. Вызовы, которые действуют на один и тот же блок NvM, обычно используют один и тот же идентификатор блока. Этот пример отображает ReadBlock NvM
клиентские порты к различным идентификаторам блоков.
Блок Diagnostic Service Component имеет предварительно заполненные параметры, включая параметры RTE и параметры Dem Counter-Based Debouncing. Исследуйте настройки параметра и учитывайте, требуется ли изменение, на основе того, как вы используете сервисные операции Dem.
Параметры Counter-Based Debouncing управляют основанным на counter алгоритмом debounction, предоставленным реализациями ссылок на услугу Dem. Во время нескольких запусков симуляции можно настроить размер шага события и параметры порога и наблюдать эффекты. Для получения дополнительной информации см. Раздел «Диагностика при Компоненте»
В табуляционной таблице RTE перечислены клиентские порты компонентов и их отображение идентификаторам служб Dem или FiM (в данном примере, идентификаторам событий). Каждая строка таблицы представляет вызов в службы Dem из блока вызывающего абонента Basic Software. Вызовы, действующие на то же событие, обычно используют один и тот же идентификатор события. Этот пример отображает SetEventStatus Dem
клиентские порты к различным идентификаторам событий, а затем сопоставляет GetEventFailed
Dem клиентские порты к идентификаторам событий, совместно используемым с
SetEventStatus
порты. Для примера, SetEventStatus
порт S1StuckHigh
и GetFailedEvent
порт TPS1StuckHigh
совместное использование идентификатора события 1; S1Stucklow
и TPS1StuckLow
совместное использование идентификатора события 2; и так далее.
После настройки блоков NVRAM и Diagnostic Service Компонента в модели интегрирования, моделируйте модель. Симуляция выполняет сервисные вызовы AUTOSAR NvM и Dem в датчике положения дросселя и контролирует модели компонента.
open_system('autosar_bsw_simulation'); simOutIntegration = sim('autosar_bsw_simulation');