exponenta event banner

Типы данных модели AUTOSAR

Стандарт AUTOSAR определяет типы данных платформы для использования компонентами программного обеспечения AUTOSAR. В Simulink ® можно моделировать типы данных AUTOSAR, используемые в таких элементах, как элементы данных, аргументы операции, параметры калибровки, переменные измерения и межпроходные переменные. При импорте компонента AUTOSAR из файлов ARXML Embedded Coder ® импортирует типы данных AUTOSAR и создает требуемые соответствующие типы данных Simulink. Во время создания кода Embedded Coder экспортирует описания ARXML для типов данных, используемых в модели компонента, и генерирует типы данных AUTOSAR в коде C.

Сведения о типах данных AUTOSAR

AUTOSAR указывает типы данных, которые применяются к:

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

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

  • Калибровочные параметры

  • Переменные измерения

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

Типы данных подразделяются на две категории:

  • Платформенные (примитивные) типы данных, которые позволяют прямое сопоставление с внутренними типами C.

  • Составные типы данных, которые сопоставляются с массивами и структурами Си.

Для моделирования типов данных платформы AUTOSAR используйте соответствующие типы данных Simulink.

Тип платформы AUTOSARТип данных Simulink
booleanboolean
float32single
float64double
sint8int8
sint16int16
sint32int32
sint64int64
uint8uint8
uint16uint16
uint32uint32
uint64uint64

Составные типы данных AUTOSAR представляют собой массивы и записи, которые представлены в Simulink широкими сигналами и объектами шины соответственно. Для настройки широкого объекта сигнала или шины через блоки Inport или Outport используйте Редактор данных модели (Model Data Editor). На вкладке Моделирование (Modeling) щелкните Редактор данных модели (Model Data Editor) и выберите вкладку Ввод/вывод (Inports/Outports). Выберите Design посмотреть. В списке входов и выходов выберите блок источника для настройки.

На следующем рисунке показано, как задать широкий сигнал, соответствующий составному массиву AUTOSAR.

На следующем рисунке показано, как указать объект шины, соответствующий составной записи AUTOSAR.

Чтобы указать типы данных элементов данных и аргументов прототипа операции, используйте раскрывающийся список в столбце Тип данных. Можно указать встроенный тип данных Simulink, например: boolean, single, или int8или введите выражение (псевдоним) для типа данных. Например, на следующем рисунке показан псевдоним sint8, соответствующий типу данных AUTOSAR, в столбце «Тип данных».

Для получения дополнительных инструкций по заданию типа данных можно воспользоваться помощником по типам данных на панели «Атрибуты сигнала» диалогового окна «Параметры блока ввода или вывода» или в инспекторе свойств.

Перечислимые типы данных

AUTOSAR поддерживает перечисляемые типы данных. Для процесса импорта при наличии соответствующего перечисляемого типа данных Simulink программа использует этот тип данных. Программное обеспечение проверяет согласованность двух типов данных. Однако если соответствующий тип данных Simulink не найден, программа автоматически создает перечисленный тип данных с помощью Simulink.defineIntEnumType класс. Это автоматическое создание типов данных полезно, когда требуется импортировать большое количество перечисляемых типов данных.

Рассмотрим следующий пример:

<SHORT-NAME>BasicColors</SHORT-NAME>
  <COMPU-INTERNAL-TO-PHYS>
  <COMPU-SCALES>
     <COMPU-SCALE>
        <LOWER-LIMIT>0</LOWER-LIMIT>
        <UPPER-LIMIT>0</UPPER-LIMIT>
        <COMPU-CONST>
           <VT>Red</VT>

Программа создает перечисляемый тип данных, используя:

Simulink.defineIntEnumType( 'BasicColors', ...
     {'Red', 'Green', 'Blue'}, ...
     [0;1;2], ...
     'Description', 'Type definition of BasicColors.', ...
     'HeaderFile', 'Rte_Type.h', ...
     'AddClassNameToEnumNames', false);

Параметры структуры

Перед экспортом программного компонента AUTOSAR укажите типы данных параметров структуры, которые должны быть Simulink.Bus объекты. См. раздел Управление типами данных полей и признаками путем создания объекта параметра. В противном случае программа отображает следующее поведение:

  • При проверке конфигурации AUTOSAR программа выдает предупреждение.

  • При построении модели программа определяет каждый тип данных как анонимный struct и генерирует случайное, неописательное имя для типа данных.

При импорте программного компонента AUTOSAR, если структура параметров имеет имя типа данных, соответствующее анонимному struct, программное обеспечение устанавливает тип данных в struct. Однако, если компонент имеет элементы данных, ссылающиеся на этот анонимный struct тип данных, программное обеспечение генерирует ошибку.

Типы данных

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

Программное обеспечение поддерживает типы данных AUTOSAR в рабочих процессах, инициированных Simulink и в оба конца:

  • Для компонентов AUTOSAR, созданных в Simulink, программное обеспечение генерирует типы приложений, реализации и базы AUTOSAR для сохранения информации, содержащейся в типах данных Simulink.

    В структуре пакета AUTOSAR, созданной для компонентов, инициированных Simulink:

    • Можно указать отдельные пакеты для агрегирования элементов, относящихся к типам данных, включая типы данных приложений, типы базы программного обеспечения, наборы сопоставлений типов данных, системные константы и единицы измерения.

    • Типы данных реализации агрегируются в основном пакете типов данных.

    Дополнительные сведения см. в разделе Настройка пакетов AUTOSAR.

  • Для двухсторонних рабочих процессов с компонентами AUTOSAR, созданными вне MATLAB ®, импортер и экспортер ARXML сохраняют информацию о типе данных и сопоставление для каждого импортированного типа данных AUTOSAR.

Сведения о сопоставлении ограничений значений между типами данных приложения AUTOSAR и типами данных Simulink см. в разделе Сопоставление физических ограничений типа данных приложения.

Для типов данных AUTOSAR, созданных в Simulink, можно управлять некоторыми аспектами экспорта типов данных. Например, можно управлять созданием типов данных приложения или задавать пакет AUTOSAR и короткое имя, экспортируемые для наборов сопоставления типов данных AUTOSAR. Дополнительные сведения см. в разделе Настройка типов данных AUTOSAR.

Типы данных AUTOSAR в рабочем процессе, инициированном Simulink

В рабочем процессе Simulink (снизу вверх) создается модель Simulink и модель экспортируется как программный компонент AUTOSAR.

Программное обеспечение генерирует типы данных приложения и реализации и базовые типы для сохранения информации, содержащейся в типах данных Simulink:

  • Для типов данных Simulink программное обеспечение генерирует типы данных реализации.

  • Для каждого типа данных с фиксированной точкой в дополнение к типу данных реализации программное обеспечение генерирует тип данных приложения с помощью COMPU-METHOD-REF элемент для сохранения информации о масштабе и смещении. Этот тип данных приложения сопоставляется с типом данных реализации.

Примечание

Программное обеспечение не поддерживает типы данных приложения для кода, созданного из ссылочных моделей.

Тип данных SimulinkAUTOSAR XML
Тип реализацииТип приложения

Примитив (исключая фиксированную точку), например, myInt16

Covers Boolean, целое число, вещественное

myInt16 = Simulink.AliasType;
myInt16.BaseType = 'int16';
<IMPLEMENTATION-DATA-TYPE>
<SHORT-NAME>myInt16</SHORT-NAME>
<CATEGORY>VALUE</CATEGORY>
…
Не создано

Примитив (фиксированная точка), например, myFixPt

myFixPt = Simulink.NumericType;
myFixPt.DataTypeMode = …;
myFixPt.IsAlias = true;
<IMPLEMENTATION-DATA-TYPE>
<SHORT-NAME>myFixPt</SHORT-NAME>
<CATEGORY>VALUE</CATEGORY>
…
<APPLICATION-PRIMITIVE-DATA-TYPE>
<SHORT-NAME>myFixPt</SHORT-NAME>
<COMPU-METHOD-REF>…

Перечисление, например, myEnum

Simulink.defineIntEnumType('myEnum',...
 {'Red','Green','Blue'},...
 [1;2;3],…);
<IMPLEMENTATION-DATA-TYPE>
<SHORT-NAME>myEnum</SHORT-NAME>
<CATEGORY>VALUE</CATEGORY>
<COMPU-METHOD>…
Не создано

Запись, например, myRecord

myRecord = Simulink.Bus;
<IMPLEMENTATION-DATA-TYPE>
<SHORT-NAME>myRecord</SHORT-NAME>
<CATEGORY>STRUCT</CATEGORY>
…
Не создано

Типы данных AUTOSAR в непрерывном потоке операций

Для импорта программного компонента AUTOSAR в модель сначала используется описание XML, созданное инструментом разработки AUTOSAR. Позже из модели будет создан код AUTOSAR C и XML.

Если прототип данных ссылается на тип данных приложения, программное обеспечение сохраняет сопоставление типа данных приложения с типом данных реализации в модели и использует имя типа данных приложения для определения типа данных Simulink.

Например, предположим, что средство разработки задает тип данных приложения:

ApplDT1

В этом случае программное обеспечение определяет следующий тип данных Simulink:

ImplDT1
AUTOSAR XMLТип данных Simulink
Тип приложенияТип реализации
<APPLICATION-PRIMITIVE-DATA-TYPE>
<SHORT-NAME>myFixPt</SHORT-NAME>
<COMPU-METHOD-REF>…
<IMPLEMENTATION-DATA-TYPE>
<SHORT-NAME>myInt</SHORT-NAME>
…
myFixPt = Simulink.NumericType;
myFixPt.DataTypeMode = …;
myFixPt.IsAlias = true;

Если прототип данных ссылается на тип данных реализации, программное обеспечение не сохраняет информацию сопоставления и использует имя типа данных реализации для определения типа данных Simulink.

Программное обеспечение использует типы данных приложения в моделировании и типы данных реализации для генерации кода. При повторном экспорте программного компонента AUTOSAR программа использует сохраненную информацию для обеспечения одинакового сопоставления между экспортируемыми типами данных приложения и реализации.

Сопоставление физических ограничений типа данных приложения

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

  • При импорте файлов ARXML программное обеспечение импортирует PhysConstr значения на ApplicationDataTypes в файлах ARXML для Min и Max значения для соответствующих объектов данных Simulink и сигналов ввода-вывода корневого уровня.

  • При экспорте файлов ARXML из модели программа экспортирует Min и Max значения, указанные в объектах данных Simulink и сигналах ввода/вывода корневого уровня для соответствующего ApplicationDataType PhysConstrs в файлах ARXML.

  • Типы данных Simulink с неопределенными Min и Max соответствуют AUTOSAR ApplicationDataTypes с ограничениями полного диапазона. Например:

    • При импорте, если PhysConstr значения на ApplicationDataType соответствует полному нижнему и верхнему пределу в InternalConstr для связанного ImplementationDataType, импортер устанавливает Simulink Min и Max значения для [ ]. В этих случаях Simulink неявно применяет нижний и верхний пределы по умолчанию на основе типа.

    • При экспорте, если Simulink Min и Max значения для типа: [ ], программное обеспечение экспортирует нижние и верхние предельные значения по умолчанию для этого типа (например, 0 и 1 для boolean тип на основе) к ARXML PhysConstr описание.

Категории CompuMethod для типов данных

Программные компоненты AUTOSAR используют методы вычислений (CompuMethods) для преобразования между внутренними значениями и физическим представлением данных AUTOSAR. Обычно для CompuMethods используются линейное масштабирование данных, измерение и калибровка.

category атрибут CompuMethod представляет специализацию CompuMethod, которая может накладывать семантические ограничения. CompuMethod к категориям, производимым генератором кода, относятся:

  • BITFIELD_TEXTTABLE - Преобразование внутреннего значения в текстовые элементы битового поля.

  • IDENTICAL - функция с плавающей запятой или целочисленная функция, для которой внутренние и физические значения идентичны и не требуют преобразования.

  • LINEAR - Линейное преобразование внутреннего значения; например, умножьте внутреннее значение на коэффициент, а затем добавьте смещение.

  • RAT_FUNC - рациональная функция; аналогично линейному преобразованию, но с ограничениями преобразования, специфичными для рациональных функций.

  • SCALE_LINEAR_AND_TEXTTABLE - Сочетание LINEAR и TEXTTABLE спецификации масштабирования.

  • TEXTTABLE - Преобразование внутреннего значения в текстовые элементы.

Экспортер ARXML генерирует CompuMethods для каждого примитивного типа приложения, позволяя инструментам измерений и калибровки отслеживать данные приложения и взаимодействовать с ними. В следующей таблице показаны CompuMethod категории, которые генератор кода создает для типов данных в модели, настроенной для AUTOSAR.

Тип данныхКатегория CompuMethodCompuMethod для типа приложенияCompuMethod для типа реализации
БитфилдBITFIELD_TEXTTABLEДаДа
БулевTEXTTABLEДаДа
Перечисляется без типа складаTEXTTABLEДаДа
Перечисляется с типом складаTEXTTABLEДаНет
Фиксированная точкаLINEAR
RAT_FUNC (ограничено взаимным масштабированием)
SCALE_LINEAR_AND_TEXTABLE
ДаНет
Плавающая точкаIDENTICAL
SCALE_LINEAR_AND_TEXTABLE
ДаНет
Целое числоIDENTICAL
SCALE_LINEAR_AND_TEXTABLE
ДаНет

Для перечисляемых типов данных инструмент импорта ARXML соответствует стандарту AUTOSAR и задает категорию CompuMethod. TEXTTABLE к следующему:

  1. Значение атрибута символа, если он существует.

  2. Значение VT, если оно является допустимым идентификатором C.

  3. Значение shortLabel.

Для типов данных с плавающей запятой и целочисленных типов, которые не требуют преобразования между внутренними и физическими значениями, экспортер создает универсальный метод CompuMethod с категорией IDENTICAL и краткое имя Identcl.

Сведения о настройке CompuMethods для создания кода см. в разделе Настройка AUTOSAR CompuMethods.

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

Подробнее