Симулируйте основные программные сервисы AUTOSAR и окружение выполнения

Симулируйте вызовы компонентов AUTOSAR к Basic Software memory и службам диагностики с помощью ссылочных реализаций.

Настройка вызовов базовых программных служб AUTOSAR

Стандарт 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 для симуляции

Чтобы симулировать модель компонента 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; и так далее.

Моделирование вызовов служб AUTOSAR NvM и Dem

После настройки блоков NVRAM и Diagnostic Service Компонента в модели интегрирования, моделируйте модель. Симуляция выполняет сервисные вызовы AUTOSAR NvM и Dem в датчике положения дросселя и контролирует модели компонента.

open_system('autosar_bsw_simulation');
simOutIntegration = sim('autosar_bsw_simulation');

Связанные ссылки