Для Классической Платформы AUTOSAR стандарт AUTOSAR задает важные сервисы как часть Basic Software (BSW), который запускается в Среде выполнения AUTOSAR (RTE). Примеры включают услуги, предоставленные Диагностическим менеджером событий (DEM), Функциональный менеджер по Ингибированию (FiM) и менеджер NVRAM (NvM). В AUTOSAR RTE, компоненты программного обеспечения AUTOSAR обычно доступ сервисы BSW, использующие клиент-сервер или коммуникация приемника отправителя.
Чтобы поддержать моделирование уровня системы компонентов AUTOSAR и услуги, AUTOSAR Blockset обеспечивает библиотеку блоков AUTOSAR Basic Software. Библиотека содержит предварительно сконфигурированные блоки для моделирования вызовов компонента услуг AUTOSAR BSW и ссылочных реализаций сервисов BSW. Для получения информации об использовании блоков к клиентским вызовам модели сервисных интерфейсов AUTOSAR BSW см. Модель Вызовы Программного сервиса AUTOSAR Basic.
Для примеров live скрипта симуляции сервисов AUTOSAR BSW смотрите, что примеры Симулируют Основные Программные сервисы AUTOSAR и Среду выполнения и Конфигурируют и Симулируют Сервисные Вызовы Ингибирования Функции AUTOSAR.
Как задано в спецификации AUTOSAR, Функциональный менеджер по Ингибированию обеспечивает механизм управления для того, чтобы выборочно подавить (то есть, деактивируясь) функциональное выполнение в компоненте программного обеспечения runnables, на основе функциональных идентификаторов (FID) с условиями ингибирования. Например, FID может представлять функциональность, которая должна быть остановлена, если определенный отказ происходит.
Функциональный менеджер по Ингибированию тесно связан с Диагностическим менеджером событий, потому что условия ингибирования могут быть основаны на состоянии диагностических событий. Например, если о событии отказа датчика сообщают Диагностическому менеджеру событий, Функциональный менеджер по Ингибированию может подавить идентификатор присоединенной функции и остановить выполнение соответствующей функциональности.
AUTOSAR Blockset обеспечивает блоки FiM и DEM, которые позволяют вам запрашивать состояние функциональных условий ингибирования и конфигурировать функциональные критерии ингибирования на основе диагностического состояния события.
Доступность функции управления во время отказа или для тестирования
Сконфигурируйте сервисные призывы к функциональному ингибированию
Компоненты программного обеспечения AUTOSAR используют функциональное ингибирование, чтобы включить функции или прочь в зависимости от состояния событий Diagnostic Event Manager (Dem). Компоненты программного обеспечения могут реагировать на событие, такое как успешность или неуспешность датчика путем разрешения или предотвращения выполнения присоединенной функции.
Рассмотрите модель компонента программного обеспечения AUTOSAR, в которой блок Dem Set Status служит монитором для новой функциональности в компоненте. События DEM передали при помощи блока Set Status, указывают, произошли ли условия, такие как отказ датчика. Состояние Event определяет, может ли выполнение связанных нисходящих функций продолжить. Функции запускаются, только если ни о каких событиях отказа не сообщают.
Реализовывать функциональное ингибирование для новой функциональности в компоненте:
Откройте модель компонента программного обеспечения AUTOSAR.
Откройте диалоговое окно блока Состояния Набора. Исследуйте имя клиентского порта и значения операции. Подтвердите, что клиентский порт и его клиентский интерфейс заданы в Словаре AUTOSAR.
Смоделируйте новую функциональность, таким образом, что она выполнится, только если состояние события не указывает ни на какие отказы датчика. Этот пример помещает новую функциональность в активированную подсистему.
Добавьте блок Function Inhibition Caller в модель. Откройте диалоговое окно блока и сконфигурируйте блок, чтобы запросить GetFunctionPermission
операция от FiM FunctionInhibition
сервисный интерфейс. Задайте имя клиентского порта и шаг расчета.
Откройте редактор Отображений Кода и нажмите кнопку Update. Программное обеспечение создает заданный клиентский порт и интерфейс в Словаре AUTOSAR, и сопоставляет Получить блок вызывающей стороны Разрешения с заданным клиентским портом AUTOSAR и операцией.
Соедините блок Get Permission с разрешать портом подсистемы, которая содержит новую функциональность. Блок представляет оценку функциональных условий ингибирования для новой функциональности. Если функциональность не запрещается и поэтому имеет разрешение запуститься, блок Get Permission возвращает true, включая подсистему.
Вот пересмотренная модель компонента программного обеспечения.
Поместите модель компонента программного обеспечения в тестовую обвязку.
В модели тестовой обвязки, чтобы обеспечить ссылочные реализации DEM Получают Состояние, и FiM Получают сервисы Разрешения для симуляции, добавляют блок Diagnostic Service Component. Обновите модель.
Откройте диалоговое окно блока Diagnostic Service Component. Чтобы обновить таблицы RTE и FiM в диалоговом окне в любой точке, обновите модель.
На вкладке RTE вы конфигурируете событие и функциональные идентификаторы для событий, которые могут инициировать функциональное ингибирование. В этом примере иерархия модели содержит только один порт события и один порт FID, таким образом, вкладка RTE не требует никакой дальнейшей настройки.
Если иерархия модели содержит дополнительные порты для нескольких, Получают блоки Разрешения, с функциональностью, распределенной на нескольких компонентах, можно использовать вкладку RTE, чтобы присвоить порты тому же FID, чтобы сгруппировать их или разделить FID, чтобы обратиться к ним индивидуально. Для функционального примера ингибирования с несколькими портами и распределенной функциональностью, смотрите, Конфигурируют и Симулируют Сервисные Вызовы Ингибирования Функции AUTOSAR.
После того, как событие и функциональные идентификаторы сконфигурированы, переключаются на вкладку FiM. На вкладке FiM вы добавляете и конфигурируете условия ингибирования, которые определяют, когда Добираются, блоки Разрешения позволяют функциональности действовать.
Вкладка FiM перечисляет функциональные идентификаторы, представляющие функции в иерархии модели, для которой реализовано функциональное ингибирование. В этом примере иерархия модели содержит один FID.
Чтобы добавить условие ингибирования для FID, выберите FID и нажмите кнопку Add inhibition condition. Строка для условия ингибирования появляется под FID.
В строке выберите значение идентификатора события (соответствие с идентификатором события, перечисленным во вкладке RTE). Затем для FID и пары идентификатора события, выберите значение маски ингибирования. Технические требования AUTOSAR задают значения маски в таблице значений FiMInhibitionMask.
В этом примере запрещается функция, представленная FID 1, если событие, представленное идентификатором события 1, является LAST_FAILED.
Обновите и симулируйте модель тестовой обвязки.
Следующие шаги в разработке компонента программного обеспечения включают:
Обращение, как инициировать событие.
Добавление функциональности, чтобы запретить.
Для примера более широкого масштаба моделирования ингибирования функции AUTOSAR смотрите, Конфигурируют и Симулируют Сервисные Вызовы Ингибирования Функции AUTOSAR.
В компоненте программного обеспечения AUTOSAR циклы операции представляют автомобильные циклы, такие как циклы воспламенения, подвергает циклу включения и выключения питания, нагрейте циклы или циклы встроенной диагностики (OBD). Цикл может быть запущен, остановлен или запрошен при помощи Диагностических сервисов менеджера по корпоративным мероприятиям. Можно использовать циклы операции, чтобы определить, перестало ли данное событие работать в течение данного времени.
Циклы операции разделяют симуляцию в промежутки времени, такие как мелкие циклы. В каждом цикле программное обеспечение может проверять, было ли диагностическое условие (событие) ПРОТЕСТИРОВАНО (условие FiM) во время того цикла, и запрещение функционирует соответственно.
Блок BSW DiagnosticOperationCycleCaller поддерживает SetOperationCycleState
и GetOperationCycleState
сервисы. Компонент вызывает сервисы к циклам операции компонента элемента управления, которые используются, чтобы определить объем отказов к периоду времени. Вызов SetOperationCycleState
со значением Dem_OperationCycleStateType. DEM_CYCLE_STATE_START запускает цикл операции. Передача в значении Dem_OperationCycleStateType. DEM_CYCLE_STATE_END заканчивает цикл операции. Вызов GetOperationCycleState
запрашивает текущее состояние цикла операции.
Для использования в качестве примера блока DiagnosticOperationCycleCaller и SetOperationCycleState
сервис, смотрите, Конфигурируют и Симулируют Сервисные Вызовы Ингибирования Функции AUTOSAR.
Функциональный менеджер по Ингибированию поддерживает критерии ингибирования ограничения функциональных блоков от выполнения, пока логические и функциональные предшественники не запустились, или для ограничения выполнения системы безопасности, пока отказ не проверяется. Однако можно ограничить использование функциональности независимо от критериев ингибирования. Например, компонент датчика может отключить чтение своих данных о датчике во время отказа или во время тестирования другой функциональности системы.
Блок BSW Control Function Available Caller поддерживает SetFunctionAvailable
сервис, который обеспечивает гранулированный механизм, чтобы запретить определенную функциональность. Компонент использует SetFunctionAvailable
со значением входного сигнала лжи, чтобы запретить сопоставленную функциональность, так, чтобы блок Get Permission для функциональности возвратился 0. В этом примере монитор датчика использует SetFunctionAvailable
сообщать центральному компоненту монитора, доступны ли измерения датчика.
Центральный монитор использует блоки Function Inhibition Caller и GetFunctionPermission
сервис решить, ли с учетом измерений, прибывающих из каждого датчика. Центральный монитор имеет, столько же Получает блоки Разрешения, сколько существуют датчики.
Вкладка FiM блока DIagnostic Service Component конфигурирует детали событий отказа. Если функция доступна, ID вкладки FiM и ингибирование функции управления настроек маски. Если функция не доступна, GetFunctionPermission
всегда возвращает false.
Как часть реализации функционального ингибирования, вы конфигурируете клиентские вызовы FiM-связанных сервисных интерфейсов в вашем компоненте программного обеспечения AUTOSAR. Вот пример конфигурирования клиентских вызовов, чтобы запросить состояние функциональных условий ингибирования.
Откройте модель, которая сконфигурирована для генерации кода AUTOSAR. Этот пример использует модель autosar_bsw_fimmonitor
в качестве примера, который сопоставлен с примером, Конфигурируют и Симулируют Сервисные Вызовы Ингибирования Функции AUTOSAR. Используя Браузер Библиотеки или путем ввода имен блока в окне модели, добавьте блок FiM Function Inhibition Caller в модель.
В целях этого примера соедините блок выходные параметры с блоками Terminator.
Откройте новый блок и исследуйте параметры. Для сервисного вызова FiM Client port name является FiM_FunctionInhibition
и Operation является GetFunctionPermission
. Установите Sample time на 0.005
, который совпадает с другим GetFunctionPermission
вызывающая сторона блокируется в модели.
Откройте редактор Отображений Кода. Чтобы обновить Simulink® к отображению AUTOSAR модели с изменениями в вызывающих сторонах функции Simulink, нажмите кнопку Update. Программное обеспечение создает интерфейсы клиентской службы AUTOSAR, операции и порты, и сопоставляет каждую вызывающую сторону функции Simulink с клиентским портом AUTOSAR и операцией.
Например, для блока Function Inhibition Caller в этом примере, для который GetFunctionPermission
операция выбрана:
Программное обеспечение создает интерфейс C-S FiM_FunctionInhibition
, и под FiM_FunctionInhibition
, его поддерживаемая операция, GetFunctionPermission
. Аргументам операции предоставляют свойства только для чтения. В Словаре AUTOSAR вот аргументы для FiM_FunctionInhibition
операция GetFunctionPermission
.
Программное обеспечение создает клиентский порт с именем по умолчанию FiM_FunctionInhibition
. В отличие от C-S-interface, операции и имен аргумента, может быть настроено имя клиентского порта. Клиентский порт сопоставлен с FiM_FunctionInhibition
интерфейс.
Редактор Отображений Кода сопоставляет блок вызывающей стороны функции Function Inhibition Caller с клиентским портом AUTOSAR FiM_FunctionInhibition
и операция AUTOSAR GetFunctionPermission
.
Опционально, создайте свою модель компонента и исследуйте сгенерированный C и код ARXML. Код С включает клиентские вызовы сервисов BSW, например:
/* FunctionCaller: '<Root>/Function Inhibition Caller' */ Rte_Call_FiM_FunctionInhibition_GetFunctionPermission (&rtb_FunctionInhibitionCaller_o1);
Сгенерированные RTE включают файлы, задают извещатели работы сервера, такие как Rte_Call_FiM_FunctionInhibition_GetFunctionPermission
.
Код ARXML задает сервисные операции BSW, вызванные компонентом как извещатели сервера, например:
<SERVER-CALL-POINTS> <SYNCHRONOUS-SERVER-CALL-POINT UUID="..."> <SHORT-NAME>SC_FiM_Function_60fb8d34c7807f7b</SHORT-NAME> <OPERATION-IREF> <CONTEXT-R-PORT-REF DEST="R-PORT-PROTOTYPE"> /ThrottlePositionMonitorCompo_pkg/ThrottlePositionMonitorCompo_swc /ThrottlePositionMonitor/FiM_FunctionInhibition </CONTEXT-R-PORT-REF> <TARGET-REQUIRED-OPERATION-REF DEST="CLIENT-SERVER-OPERATION"> /AUTOSAR/Services/FiM/FiM_FunctionInhibition/GetFunctionPermission </TARGET-REQUIRED-OPERATION-REF> </OPERATION-IREF> <TIMEOUT>1.0E-06</TIMEOUT> </SYNCHRONOUS-SERVER-CALL-POINT> ... </SERVER-CALL-POINTS>
Чтобы симулировать модель компонента, создайте содержание состава, системы или модели тестовой обвязки. В том содержащем модель, вставьте ссылочную реализацию FiM GetFunctionPermission
сервисная операция.
Библиотека блоков AUTOSAR Basic Software обеспечивает блок Diagnostic Service Component, который обеспечивает ссылочные реализации сервисных операций DEM и FiM. Можно вручную вставить блок в содержание состава, системы или модели тестовой обвязки, или автоматически вставить блок путем создания модели тестовой обвязки Simulink Test™.
Для получения дополнительной информации смотрите, Конфигурируют Основные Реализации Программного сервиса AUTOSAR для Симуляции.
Пример Конфигурирует и Симулирует Сервисные Вызовы Ингибирования Функции AUTOSAR, обеспечивает набор моделей в качестве примера, которые вместе иллюстрируют ключевые аспекты реализации функционального ингибирования, включая:
Запросите состояние условий ингибирования (FunctionInhibition
операция GetFunctionPermission
).
Сконфигурируйте критерии ингибирования на основе состояния события (диалоговое окно блока Diagnostic Service Component, RTE и вкладки FiM).
Циклы операции Define, чтобы определить объем отказов к периоду времени (DEM OperationCycle
операция SetOperationCycleState
).
Control Function Available Caller | Diagnostic Service Component | DiagnosticOperationCycleCaller | Function Inhibition Caller