Симулируйте вызовы компонентов 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');