exponenta event banner

Конфигурирование данных AUTOSAR для измерения и калибровки

В Simulink ® можно импортировать и экспортировать свойства определения программных данных AUTOSAR и изменять свойства некоторых форм данных AUTOSAR.

Сведения о свойствах определения данных программного обеспечения (SwDataDefProps)

Embedded Coder ® поддерживает импорт и экспорт ARXML следующих свойств определения данных программного обеспечения AUTOSAR (SwDataDefProps):

  • Доступ к калибровке программного обеспечения (SwCalibrationAccess) - определяет доступ инструмента измерения и калибровки к объекту данных.

  • Формат отображения (DisplayFormat) - задает формат отображения измерений и калибровки для объекта данных.

  • Метод адреса программного обеспечения (SwAddrMethod) - указывает метод доступа к объекту данных (например, измерительный или калибровочный параметр) в соответствии с заданным адресом. Используется для группирования данных в памяти для доступа с помощью средств измерения и калибровки времени выполнения.

  • Согласование программного обеспечения (SwAlignment) - указывает предполагаемое выравнивание объекта данных в разделе памяти.

  • Политика внедрения программного обеспечения (SwImplPolicy) - указывает политику реализации для объекта данных относительно механизмов непротиворечивости переменных.

  • Компоновка записи программного обеспечения (SwRecordLayout) - указывает, как сериализовать данные в памяти ECU AUTOSAR.

В среде Simulink можно непосредственно изменять свойства определения программных данных для некоторых форм данных AUTOSAR. Вы не можете изменить SwImplPolicy или SwRecordLayout свойства, но экспортируются в коде ARXML.

Дополнительные сведения см. в разделах Настройка SwCalibrationAccess, Настройка DisplayFormat, Настройка SwAddrMethod, Настройка SwAlignment, Экспорт SwImplPolicy и Экспорт формата SwRecordLayout для данных таблицы подстановки.

Настроить SwCalibrationAccess

Можно указать SwCalibrationAccess свойство для переменных измерения, калибровочных параметров и объектов данных сигнала и параметров. Допустимые значения:

  • ReadOnly - Элемент данных появляется в созданном файле описания только для чтения.

  • ReadWrite - Элемент данных появляется в созданном файле описания с доступом как для чтения, так и для записи.

  • NotAccessible - Элемент данных не появляется в созданном файле описания и недоступен с помощью средств измерения и калибровки.

При открытии модели с сигналами и параметрами можно указать SwCalibrationAccess свойства следующими способами:

Определить SwCalibrationAccess для элементов данных AUTOSAR

Вызов функции AUTOSAR Dictionary или MATLAB ® позволяет определить SwCalibrationAccess для следующих элементов данных AUTOSAR:

  • Элементы данных интерфейса отправитель-получатель

  • Элементы данных энергонезависимого интерфейса

  • Аргументы клиент-сервер

  • Межпроходные переменные

Например:

  1. Откройте модель, настроенную для AUTOSAR.

  2. Откройте словарь AUTOSAR. Перейдите к одному из следующих представлений:

    • Интерфейс S-R или NV, представление DataElements

    • Интерфейс C-S, представление «Аргументы»

    • Атомарный компонент, вид IRV

  3. Используйте выпадающий список SwCalibrationAccess, чтобы выбрать уровень доступа к измерительному и калибровочному инструменту для элемента данных.

Кроме того, можно использовать функции свойств AUTOSAR для определения SwCalibrationAccess для элементов данных AUTOSAR. Например, следующий код открывает autosar_swc_fcncalls пример модели и устанавливает доступ измерений и калибровки к межпробегающим переменным IRV2 ReadWrite.

hModel = 'autosar_swc_fcncalls';
addpath(fullfile(matlabroot,'/examples/autosarblockset/main'));
open_system(hModel)
arProps = autosar.api.getAUTOSARProperties(hModel);
get(arProps,'/Company/Powertrain/Components/ASWC/ASWC_IB/IRV2','SwCalibrationAccess')

set(arProps,'/Company/Powertrain/Components/ASWC/ASWC_IB/IRV2','SwCalibrationAccess','ReadWrite');
get(arProps,'/Company/Powertrain/Components/ASWC/ASWC_IB/IRV2','SwCalibrationAccess')
ans =
    'ReadOnly'

ans =
    'ReadWrite'

Вот пример вызова свойств AUTOSAR set для установки функции SwCalibrationAccess для элемента данных интерфейса S-R в той же модели.

set(arProps,'/Company/Powertrain/Interfaces/InIf/In1','SwCalibrationAccess','ReadWrite');
get(arProps,'/Company/Powertrain/Interfaces/InIf/In1','SwCalibrationAccess')
ans =
    'ReadWrite'

Указать значение по умолчанию SwCalibrationAccess для типов данных приложения

Параметры AUTOSAR XML включают значение по умолчанию SwCalibrationAccess (свойство SwCalibrationAccessDefault), которая определяет значение по умолчанию SwCalibrationAccess значение для типов данных приложения AUTOSAR в модели. Для изменения значения по умолчанию можно использовать функции свойств AUTOSAR. Например, следующий код открывает autosar_swc_fcncalls пример модели и изменение доступа к измерениям и калибровке по умолчанию для типов данных приложений AUTOSAR из ReadOnly кому ReadWrite.

hModel = 'autosar_swc_fcncalls';
addpath(fullfile(matlabroot,'/examples/autosarblockset/main'));
open_system(hModel)
arProps = autosar.api.getAUTOSARProperties(hModel);
get(arProps,'XmlOptions','SwCalibrationAccessDefault')

set(arProps,'XmlOptions','SwCalibrationAccessDefault','ReadWrite');
get(arProps,'XmlOptions','SwCalibrationAccessDefault')
ans =
    'ReadOnly'

ans =
    'ReadWrite'

Настроить DisplayFormat

Спецификации формата отображения AUTOSAR управляют шириной и точностью отображения данных измерений и калибровки. Можно импортировать и экспортировать спецификации формата отображения AUTOSAR, а также редактировать спецификации в Simulink. Можно задать формат отображения для следующих элементов AUTOSAR:

  • Межпроходные переменные

  • Элементы данных интерфейса отправитель-получатель

  • Аргументы операций интерфейса клиент-сервер

  • CompuMethods

Спецификация формата дисплея является подмножеством ANSI ® Cprintf спецификаторы со следующей формой:

%[flags][width][.precision]type
ОбластьОписание
flags
(необязательно)

Символы, указывающие флаги, поддерживаемые схемами AUTOSAR:

  • (''): Вставка пробела перед значением.

  • -: Выравнивание по левому краю.

  • +: Отображать знак плюс или минус, даже для положительных чисел.

  • #:

    • Для типов o, x, и X, дисплей 0, 0x, или 0X префикс.

    • Для типов e, E, и f, отображать десятичную точку, даже если точность равна 0.

    • Для типов g и G, не удаляйте конечные нули или десятичную точку.

width
(необязательно)

Положительное целое число, указывающее минимальное количество отображаемых символов.

precision
(необязательно)

Положительное целое число, указывающее точность отображения:

  • Для значений целочисленного типа (d, i, o, u, x, и X), указывает минимальное количество цифр.

  • Для типов e, E, и fуказывает количество цифр справа от десятичной запятой.

  • Для типов g и G, указывает количество значащих цифр.

type

Символы, указывающие числовой тип преобразования, поддерживаемый схемами AUTOSAR:

  • d: Десятичное целое число со знаком.

  • i: Десятичное целое число со знаком.

  • o: Без знака восьмеричное целое число.

  • u: Десятичное целое без знака.

  • x: Шестнадцатеричное целое число без знака, используйте символы «abcdef».

  • X: Шестнадцатеричное целое число без знака, с использованием символов «ABCDEF».

  • e: Подписанное значение с плавающей запятой в экспоненциальной нотации. Значение имеет форму [-]d.dddd e [sign]ddd.

    • d представляет собой одну десятичную цифру.

    • dddd представляет собой одну или несколько десятичных цифр.

    • ddd равно ровно трем десятичным цифрам.

    • sign является + или -.

  • E: Идентично e формат, за исключением E, а не e, вводит экспоненту.

  • f: Подписанное значение с плавающей запятой в нотации с фиксированной запятой. Значение имеет форму [-]dddd.dddd.

    • dddd представляет собой одну или несколько десятичных цифр.

    • Число цифр перед десятичной запятой зависит от величины числа.

    • Количество цифр после десятичной запятой зависит от требуемой точности.

  • g: Подписанное значение напечатано в f или e в зависимости от того, какой формат является более компактным для заданного значения и точности. Конечные нули усекаются, и десятичная точка появляется только в том случае, если за ней следуют одна или несколько цифр.

  • G: Идентично g формат, за исключением того, что E, а не e, вводит показатель степени (при необходимости).

Например, спецификатор формата %2.1d задает ширину 2, точность 1 и десятичный знак со знаком, создавая отображаемое значение, например 12.2.

Атрибут DisplayFormat отображается в диалоговых окнах для элементов AUTOSAR, к которым он применяется. Формат отображения можно задать в диалоговом окне или с помощью API элементов, который может изменять атрибуты.

hModel = 'autosar_swc_counter';
addpath(fullfile(matlabroot,'/examples/autosarblockset/main'));
open_system(hModel);
slMap = autosar.api.getSimulinkMapping(hModel);
mapParameter(slMap,'INC','ConstantMemory','DisplayFormat','%2.6f')

Если указан формат отображения, при экспорте кода ARXML создается соответствующая спецификация DISPLAY-FORMAT.

<PARAMETER-DATA-PROTOTYPE UUID="...">
    <SHORT-NAME>INC</SHORT-NAME>
    <CATEGORY>VALUE</CATEGORY>
    <SW-DATA-DEF-PROPS>
        <SW-DATA-DEF-PROPS-VARIANTS>
            <SW-DATA-DEF-PROPS-CONDITIONAL>
                <SW-CALIBRATION-ACCESS>READ-WRITE</SW-CALIBRATION-ACCESS>
                <DISPLAY-FORMAT>%2.6f</DISPLAY-FORMAT>
                <SW-IMPL-POLICY>STANDARD</SW-IMPL-POLICY>
            </SW-DATA-DEF-PROPS-CONDITIONAL>
        </SW-DATA-DEF-PROPS-VARIANTS>
    </SW-DATA-DEF-PROPS>
    ...
</PARAMETER-DATA-PROTOTYPE>

Настроить SwAddrMethod

Программные компоненты AUTOSAR используют методы адреса программного обеспечения (SwAddrMethods) группировать данные и функции в секции памяти для доступа средствами измерения и калибровки времени выполнения. Для модели Simulink, сопоставленной с программным компонентом AUTOSAR, можно связать SwAddrMethods с этими элементами:

  • Параметр модели или таблица подстановки сопоставлены:

    • Постоянная память AUTOSAR

    • Внутренний калибровочный параметр AUTOSAR

    • Параметр порта AUTOSAR

  • Сигнал, состояние или хранилище данных сопоставлены:

    • Статическая память AUTOSAR

    • Память AUTOSAR для каждого экземпляра

  • Функция точки входа модели, сопоставленная с возможностью выполнения AUTOSAR

  • Внутренние данные внутри функции точки входа модели

Создание и использование SwAddrMethods в модели AUTOSAR:

  1. Импорт SwAddrMethods из файлов ARXML или создать SwAddrMethods в Simulink.

    • Импортировать SwAddrMethods из файлов ARXML, используйте arxml.importer функция - createComponentAsModel или createCompositionAsModel для новой модели или updateModel или updateAUTOSARProperties для существующей модели.

    • Создать SwAddrMethods в существующей модели откройте режим просмотра AUTOSAR Dictionary, SwAddrMethods и нажмите кнопку Add. Также можно использовать эквивалентные функции свойств AUTOSAR. Дополнительные сведения см. в разделе Создание методов SwAddrMethods в Simulink.

  2. Партнер SwAddrMethods с данными и функциями модели. Откройте редактор сопоставлений кодов и выберите закладку Параметры, Хранилища данных, Сигналы/Состояния или Функции. Выберите элемент на этой вкладке и с помощью инспектора свойств задайте атрибут SwAddrMethod. Либо используйте эквивалентную функцию сопоставления AUTOSAR. Дополнительные сведения см. в разделе Связывание метода SwAddrMethod с данными модели или функцией.

  3. Создайте код для модели AUTOSAR. (В этом примере используется сигнал, отображенный в статическую память AUTOSAR в модели autosar_swc_counter.) В созданных файлах:

    • Экспортированные файлы ARXML содержат SwAddrMethod описания и ссылки.

      <VARIABLE-DATA-PROTOTYPE UUID="...">
          <SHORT-NAME>SM_equal_to_count</SHORT-NAME>
          <CATEGORY>VALUE</CATEGORY>
          <SW-DATA-DEF-PROPS>
              <SW-DATA-DEF-PROPS-VARIANTS>
                  <SW-DATA-DEF-PROPS-CONDITIONAL>
                      <SW-ADDR-METHOD-REF DEST="SW-ADDR-METHOD">
                      /Company/Powertrain/DataTypes/SwAddrMethods/VAR
                      </SW-ADDR-METHOD-REF>
                      <SW-CALIBRATION-ACCESS>READ-ONLY</SW-CALIBRATION-ACCESS>
                      <SW-IMPL-POLICY>STANDARD</SW-IMPL-POLICY>
                  </SW-DATA-DEF-PROPS-CONDITIONAL>
              </SW-DATA-DEF-PROPS-VARIANTS>
          </SW-DATA-DEF-PROPS>
          <TYPE-TREF DEST="IMPLEMENTATION-DATA-TYPE">
          /Company/Powertrain/DataTypes/Boolean_volatile_my_qualifier</TYPE-TREF>
      </VARIABLE-DATA-PROTOTYPE>
    • Код C, совместимый с AUTOSAR, содержит комментарии и #define и #include операторы, которые предоставляют обертку вокруг данных или определений функций, принадлежащих каждому SwAddrMethod раздел памяти.

      /* Static Memory for Internal Data */
      
      /* SwAddrMethod VAR for Internal Data */
      #define autosar_swc_counter_START_SEC_VAR
      #include "autosar_swc_counter_MemMap.h"
      
      volatile my_qualifier boolean SM_equal_to_count;
      
      #define autosar_swc_conter_STOP_SEC_VAR
      #include "autosar_swc_counter_MemMap.h"

Создать SwAddrMethods в Simulink

Создать SwAddrMethods в существующей модели откройте режим просмотра AUTOSAR Dictionary, SwAddrMethods и нажмите кнопку Add.

Также можно использовать эквивалентные функции свойств AUTOSAR. Этот код добавляет SwAddrMethods myCODE и myVAR в модель компонента AUTOSAR.

hModel = 'autosar_swc_counter';
addpath(fullfile(matlabroot,'/examples/autosarblockset/main'));
open_system(hModel)
arProps = autosar.api.getAUTOSARProperties(hModel);
addPackageableElement(arProps,'SwAddrMethod',...
    '/Company/Powertrain/DataTypes/SwAddrMethods','myCODE',...
    'SectionType','Code')
swAddrPaths = find(arProps,[],'SwAddrMethod','PathType','FullyQualified',...
    'SectionType','Code')
addPackageableElement(arProps,'SwAddrMethod',...
    '/Company/Powertrain/DataTypes/SwAddrMethods','myVAR',...
    'SectionType','Var')
swAddrPaths = find(arProps,[],'SwAddrMethod','PathType','FullyQualified',...
    'SectionType','Var')
swAddrPaths =
    {'/Company/Powertrain/DataTypes/SwAddrMethods/CODE'}
    {'/Company/Powertrain/DataTypes/SwAddrMethods/myCODE'}

swAddrPaths =
    {'/Company/Powertrain/DataTypes/SwAddrMethods/VAR'}
    {'/Company/Powertrain/DataTypes/SwAddrMethods/myVAR'}

Партнер SwAddrMethod с данными модели или функцией

Связаться SwAddrMethods с данными и функциями модели, откройте редактор Сопоставления кодов (Code Mappings) и выберите вкладку Параметры (Parameters), Хранилища данных (Data Stores), Сигналы/состояния (Signals/States) или Функции (Functions). Выберите элемент на этой вкладке и с помощью инспектора свойств задайте атрибут SwAddrMethod. В этом примере: SwAddrMethod Для сигнала выбран VAR equal_to_count, которая отображается в статическую память AUTOSAR.

Либо используйте эквивалентную функцию сопоставления AUTOSAR. Дополнительные сведения см. на справочной странице для mapFunction, mapParameter, mapSignal, mapState, или mapDataStore.

Настроить SwAlignment

SwAlignment описывает предполагаемое выравнивание данных AUTOSAR в разделе памяти. SwAlignment определяет количество битов. Допустимые значения: 8, 12, 32, UNKNOWN (устарело), UNSPECIFIED и BOOLEAN. Для числовых данных, типично SwAlignment значения 8, 16 и 32.

Если не определить SwAlignment свойство, swBaseType размер и memoryAllocationKeywordPolicy ссылочного SwAlignment определите выравнивание.

Можно использовать функцию свойства AUTOSAR set установить SwAlignment для элементов данных интерфейса S-R и межуправляемых переменных. Например:

interfacePath = '/A/B/C/Interfaces/If1/';
dataElementName = 'El1';
swAlignmentValue = '32';
set(dataObj,[interfacePath dataElementName],'SwAlignment',swAlignmentValue);

Для поддержки потока операций в оба конца импортер ARXML импортирует и сохраняет SwAlignment для следующих данных AUTOSAR:

  • Память для каждого экземпляра

  • Параметры компонентов программного обеспечения

  • Элементы данных интерфейса параметров

  • Аргументы операций интерфейса клиент-сервер

  • Статическая и постоянная память

Экспорт SwImplPolicy

SwImplPolicy свойство определяет политику реализации элемента данных, касающуюся механизмов непротиворечивости переменных. Вы не можете изменить SwImplPolicy свойство, но свойство имеет значение standard или queued для данных AUTOSAR в экспортированном коде ARXML. Установлено значение:

  • standard для

    • Память для каждого экземпляра

    • Межпроходные переменные

    • Параметры компонентов программного обеспечения

    • Элементы данных интерфейса параметров

    • Аргументы операций интерфейса клиент-сервер

    • Статическая и постоянная память

  • standard или queued для

    Элементы данных интерфейса отправитель-получатель

Экспорт SwRecordLayout для данных таблицы подстановки

Программные компоненты AUTOSAR используют форматы записей программного обеспечения (SwRecordLayouts) для указания способа сериализации данных в памяти ECU AUTOSAR. Импортер ARXML импортирует и сохраняет SwRecordLayout для данных AUTOSAR.

Можно импортировать SwRecordLayouts из файлов ARXML одним из двух способов:

  • При создании модели AUTOSAR из файлов ARXML с помощью функции импортера createComponentAsModel, включить файл ARXML, содержащий SwRecordLayout определения в импорте. Импортированный SwRecordLayouts сохраняются и позже экспортируются в коде ARXML.

  • При создании модели AUTOSAR в Simulink можно импортировать общие определения SwRecordLayouts из файлов ARXML. Использовать функцию импортера updateAUTOSARProperties. Например:

    importerObj = arxml.importer(arxmlFileName);
    updateAUTOSARProperties(importerObj,modelName);

    При создании кода модели экспортированный код ARXML содержит ссылки на импортированный код, доступный только для чтения. SwRecordLayout элементы, но не их определения.

    Дополнительные сведения см. в разделе Импорт и ссылки на общие определения элементов AUTOSAR.

Связанные примеры

Подробнее