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

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

О типах данных AUTOSAR

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

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

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

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

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

  • Межвыполнимые переменные

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

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

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

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

Тип данных AUTOSARТип данных Simulink
Тип платформы R4.xТип примитива R2.x/3.x
booleanBooleanboolean
float32Floatsingle
float64Doubledouble
sint8Sint8int8
sint16Sint16int16
sint32Sint32int32
uint8Uint8uint8
uint16Uint16uint16
uint32Uint32uint32

Типы данных составного объекта AUTOSAR являются массивами и записями, которые представлены в Simulink широкими сигналами и соединяют шиной объекты, соответственно. Чтобы сконфигурировать широкий сигнал или объект шины через Inport или блоки Outport, используйте Model Data Editor. На вкладке AUTOSAR выберите Settings> Model Data Editor и выберите вкладку Inports/Outports. Выберите Design представление. Из списка импорта и выходных портов, выберите исходный блок, чтобы сконфигурировать.

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

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

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

Для большего руководства в определении типа данных можно использовать Data Type Assistant на панели Signal Attributes диалогового окна Inport или Outport 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 объекты. Смотрите Типы данных Поля элемента управления и Характеристики путем Создания Объекта параметра (Simulink). В противном случае программное обеспечение отображает следующее поведение:

  • Когда вы подтверждаете настройку AUTOSAR, программное обеспечение выдает предупреждение.

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

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

Релиз 2.x и 3.x Типы данных

Следующая таблица показывает, как программное обеспечение переводит AUTOSAR R2.x и типы данных R3.x к типам данных Simulink. Для получения информации о типах данных Релиза 4.x смотрите Типы данных Релиза 4.x.

AUTOSAR Simulink

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

Булевская переменная покрытий, целое число, действительное

myInt16 = Simulink.AliasType;
myInt16.BaseType = 'int16';
myInt16.HeaderFile = 'Rte_Type.h';

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

myFixPt = Simulink.NumericType;
myFixPt.DataTypeMode = …;
myFixPt.IsAlias = true;
myFixPt.HeaderFile = 'Rte_Type.h';

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

Simulink.defineIntEnumType('myEnum',...
 {'Red','Green','Blue'},...
 [1;2;3],…);

Типы записи, например, myRecord

myRecord = Simulink.Bus;

Релиз 4.x Типы данных

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

Программное обеспечение поддерживает AUTOSAR R4.x совместимые типы данных в Simulink порожденные и рабочие процессы туда и обратно:

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

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

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

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

    Для получения дополнительной информации смотрите, Конфигурируют Пакеты AUTOSAR.

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

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

Для типов данных AUTOSAR R4.x, порожденных в Simulink, можно управлять некоторыми аспектами экспорта типа данных. Например, можно управлять, когда типы данных приложения сгенерированы или задают пакет AUTOSAR и краткое название, экспортируемое для наборов отображения типа данных AUTOSAR. Для получения дополнительной информации смотрите, Конфигурируют Типы данных Релиза 4.x AUTOSAR.

Типы данных R4.x в Simulink порожденный рабочий процесс

В порожденном (восходящем) рабочем процессе Simulink вы создаете модель 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>
…
Не сгенерированный

Типы данных R4.x в рабочем процессе туда и обратно

В рабочем процессе туда и обратно вы сначала используете XML-описание, сгенерированное инструментом разработки AUTOSAR, чтобы импортировать компонент программного обеспечения 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 файлы.

Категории 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
ДаНет

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

Для получения информации о конфигурировании CompuMethods для генерации кода смотрите, Конфигурируют AUTOSAR CompuMethods.

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

Больше о