Стандарт AUTOSAR задает типы данных платформы для использования компонентами программного обеспечения AUTOSAR. В Simulink® можно смоделировать типы данных AUTOSAR, используемые в элементах, таких как элементы данных, аргументы операции, калибровочные параметры, переменные измерения и межвыполнимые переменные. Если вы импортируете компонент AUTOSAR из файлов arxml
, Embedded Coder® импортирует типы данных AUTOSAR и создает необходимые соответствующие типы данных Simulink. Во время генерации кода Embedded Coder экспортирует описания arxml
для типов данных, используемых в модели компонента, и генерирует типы данных AUTOSAR в коде С.
AUTOSAR задает типы данных, которые применяются:
Элементы данных Интерфейса получателя отправителя
Аргументы операции Интерфейса клиент-сервер
Калибровочные параметры
Переменные измерения
Межвыполнимые переменные
Типы данных попадают в две категории:
(Примитивные) типы данных платформы, которые позволяют прямое отображение с внутренними типами C.
Составные типы данных, которые сопоставляют с массивами C и структурами.
К типам данных модели AUTOSAR используйте соответствующие типы данных Simulink.
Тип данных AUTOSAR | Тип данных Simulink | |
---|---|---|
Тип платформы R4.x | Тип примитива R2.x/3.x | |
boolean | Boolean | boolean |
float32 | Float | single |
float64 | Double | double |
sint8 | Sint8 | int8 |
sint16 | Sint16 | int16 |
sint32 | Sint32 | int32 |
uint8 | Uint8 | uint8 |
uint16 | Uint16 | uint16 |
uint32 | Uint32 | uint32 |
Типы данных составного объекта AUTOSAR являются массивами и записями, которые представлены в Simulink широкими сигналами и соединяют шиной объекты, соответственно. Чтобы сконфигурировать широкий сигнал или объект шины через блоки Inport или Outport, используйте Model Data Editor. В модели выберите View> Model Data Editor и выберите вкладку Inports/Outports. Выберите представление Design
. Из списка импорта и выходных портов, выберите исходный блок, чтобы сконфигурировать.
Следующие данные показывают, как задать широкий сигнал, который соответствует массиву составного объекта AUTOSAR.
Следующие данные показывают, как задать объект шины, который соответствует записи составного объекта AUTOSAR.
Чтобы задать типы данных элементов данных и аргументы прототипа операции, используйте выпадающий список в столбце Data Type. Можно задать Simulink встроенный тип данных, такой как boolean
, single
или 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
, программное обеспечение генерирует ошибку.
Следующая таблица показывает, как программное обеспечение переводит AUTOSAR R2.x и типы данных R3.x к типам данных Simulink. Для получения информации о типах данных Релиза 4.x смотрите Типы данных Релиза 4.x.
AUTOSAR | Simulink |
---|---|
Типы примитивов (исключая фиксированную точку), например, Булевская переменная покрытий, целое число, действительное |
myInt16 = Simulink.AliasType; myInt16.BaseType = 'int16'; myInt16.HeaderFile = 'Rte_Type.h'; |
Тип примитива (фиксированная точка), например, |
myFixPt = Simulink.NumericType; myFixPt.DataTypeMode = …; myFixPt.IsAlias = true; myFixPt.HeaderFile = 'Rte_Type.h'; |
Перечисления, например, |
Simulink.defineIntEnumType('myEnum',... {'Red','Green','Blue'},... [1;2;3],…); |
Типы записи, например, |
myRecord = Simulink.Bus; |
Релиз 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.
В порожденном (восходящем) рабочем процессе Simulink вы создаете модель 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> … | Не сгенерированный |
В рабочем процессе туда и обратно вы сначала используете 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
на ApplicationDataType
s в файлах arxml
импортируются в Min
и значения Max
на соответствующих Объектах данных Simulink и сигналах ввода-вывода корневого уровня.
Когда вы экспортируете код arxml
из модели, Min
и значений Max
, заданных на Объектах данных Simulink, и сигналы ввода-вывода корневого уровня экспортируются в соответствующий ApplicationDataType
PhysConstr
s в файлах arxml
.
Компоненты программного обеспечения 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.
Тип данных | Категория 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 | Да | Нет |
Для и целочисленных типов данных с плавающей точкой, которые не требуют преобразования между внутренними и физическими значениями, средство экспорта генерирует типичный CompuMethod
с категорией IDENTICAL
и краткое название Identcl
.
Для получения информации о конфигурировании CompuMethods для генерации кода смотрите, Конфигурируют AUTOSAR CompuMethods.