Моделируйте типы данных AUTOSAR

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

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

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

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

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

  • Параметры калибровки

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

  • Межпрограммные переменные

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

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

  • Составные типы данных, которые сопоставлены с массивами и структурами 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.

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

Для большего руководства в определении типа данных Вы можете использовать Data Type Assistant на Signal Attributes панели Inport или диалоговое окно <reservedrangesplaceholder0> Block Parameters или в Property Inspector.

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

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 программное обеспечение выдает предупреждение.

  • Когда вы создаете модель, программное обеспечение определяет каждый тип данных как anonymous 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 origined (снизу вверх) вы создаете модель Simulink и экспортируете модель как программный компонент AUTOSAR.

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

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

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

Примечание

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

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

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

Охватывает логическое, целое, реальное

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 является линейное масштабирование данных, измерение и калибровка.

The category атрибут CompuMethod представляет специализацию CompuMethod, которая может накладывать семантические ограничения. The 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.

Похожие примеры

Подробнее о