Стандарт AUTOSAR определяет типы данных платформы для использования программными компонентами AUTOSAR. В Simulink®можно смоделировать типы данных AUTOSAR, используемые в элементах, таких как элементы данных, аргументы операции, параметры калибровки, переменные измерения и переменные между выполнениями. Если вы импортируете компонент AUTOSAR из файлов ARXML, Embedded Coder® импортирует типы данных AUTOSAR и создает необходимые соответствующие типы данных Simulink. Во время генерации кода Embedded Coder экспортирует описания ARXML для типов данных, используемых в модели компонента, и генерирует типы данных AUTOSAR в коде С
AUTOSAR задает типы данных, которые применяются к:
Элементы массива данных интерфейса отправитель-получатель
Аргументы операции интерфейса клиент-сервер
Параметры калибровки
Переменные измерения
Межпрограммные переменные
Типы данных подразделяются на две категории:
Типы данных платформы (примитив), которые позволяют прямое отображение с внутренними типами C.
Составные типы данных, которые сопоставлены с массивами и структурами C.
Чтобы смоделировать типы данных платформы AUTOSAR, используйте соответствующие типы данных Simulink.
Тип платформы AUTOSAR | Тип данных Simulink |
---|---|
boolean | boolean |
float32 | single |
float64 | double |
sint8 | int8 |
sint16 | int16 |
sint32 | int32 |
sint64 | int64 |
uint8 | uint8 |
uint16 | uint16 |
uint32 | uint32 |
uint64 | uint64 |
Составными типами данных 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
Рабочий процесс по типам данных AUTOSAR в круговом соединении
Сопоставление физических ограничений типа данных отображения
В рабочем процессе Simulink origined (снизу вверх) вы создаете модель Simulink и экспортируете модель как программный компонент AUTOSAR.
Программное обеспечение генерирует типы данных приложения и реализации и базовые типы для сохранения информации, содержащейся в типах данных Simulink:
Для типов данных Simulink программное обеспечение генерирует типы данных реализации.
Для каждого типа с фиксированной точкой, в дополнение к типу данных реализации, программное обеспечение генерирует тип данных приложения с COMPU-METHOD-REF
элемент для сохранения шкалы и смещении. Этот тип данных приложения сопоставлен с типом данных реализации.
Примечание
Программное обеспечение не поддерживает типы данных приложения для кода, сгенерированного из ссылочных моделей.
Тип данных Simulink | AUTOSAR XML | |
---|---|---|
Тип реализации | Тип приложения | |
Примитив (исключая фиксированную точку), например, Охватывает логическое, целое, реальное myInt16 = Simulink.AliasType; myInt16.BaseType = 'int16'; |
<IMPLEMENTATION-DATA-TYPE> <SHORT-NAME>myInt16</SHORT-NAME> <CATEGORY>VALUE</CATEGORY> … | Не сгенерирован |
Примитив (фиксированная точка), для примера, 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>… |
Перечисление, например, Simulink.defineIntEnumType('myEnum',... {'Red','Green','Blue'},... [1;2;3],…); |
<IMPLEMENTATION-DATA-TYPE> <SHORT-NAME>myEnum</SHORT-NAME> <CATEGORY>VALUE</CATEGORY> <COMPU-METHOD>… | Не сгенерирован |
Запись, например, myRecord = Simulink.Bus; |
<IMPLEMENTATION-DATA-TYPE> <SHORT-NAME>myRecord</SHORT-NAME> <CATEGORY>STRUCT</CATEGORY> … | Не сгенерирован |
В рабочем процессе туда и обратно для импорта программного компонента 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
значения на ApplicationDataType
s в файлах ARXML для Min
и Max
значения на соответствующих объектах данных Simulink и сигналах ввода-вывода корневого уровня.
При экспорте файлов ARXML из модели программное обеспечение экспортирует Min
и Max
значения, заданные на объектах данных Simulink и сигналах ввода-вывода корневого уровня в соответствующий ApplicationDataType
PhysConstr
s в файлах ARXML.
Типы данных Simulink с неопределенными Min
и Max
соответствуют AUTOSAR ApplicationDataType
s с ограничениями полного диапазона. Для примера:
При импорте, если PhysConstr
значения на ApplicationDataType
соответствовать полному нижнему и верхнему пределам в InternalConstr
для связанного ImplementationDataType
, импортер устанавливает Simulink Min
и Max
значения в [ ]
. В этих случаях Simulink неявно применяет нижние и верхние пределы по умолчанию на основе типа.
При экспорте, если Simulink Min
и Max
значения для типа [ ]
программное обеспечение экспортирует значения нижнего и верхнего пределов по умолчанию для этого типа (для примера, 0 и 1 для boolean
на основе типа) в ARXML PhysConstr
описание.
Программные компоненты 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.
Тип данных | Категория CompuMethod | CompuMethod для типа приложения | 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
к следующему:
Значение атрибута символа, если он существует.
Значение VT, если это действительный идентификатор C.
Значение shortLabel.
Для целочисленных данных с плавающей точкой типов, которые не требуют преобразования между внутренними и физическими значениями, экспортер генерирует типовой метод CompuMethod с IDENTICAL
категорий и краткие
Identcl
.
Дополнительные сведения о настройке CompuMethods для генерации кода см. в разделе Настройка AUTOSAR CompuMethods.