Стандарт 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 |
uint8 | uint8 |
uint16 | uint16 |
uint32 | uint32 |
Типы данных составного объекта 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
объекты. Смотрите Типы данных Поля элемента управления и Характеристики путем Создания Объекта параметра. В противном случае программное обеспечение отображает следующее поведение:
Когда вы подтверждаете настройку AUTOSAR, программное обеспечение выдает предупреждение.
Когда вы создаете модель, программное обеспечение задает каждый тип данных, чтобы быть
struct
anonymous и генерирует случайное, неописательное имя для типа данных.
При импорте компонента программного обеспечения 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.
В порожденном (восходящем) рабочем процессе 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 | Да | Нет |
Для перечислимых типов данных инструмент средства импорта ARXML придерживается стандарта AUTOSAR и устанавливает категорию CompuMethod TEXTTABLE
к следующему:
Значение символа приписывает, если это существует.
VT значения, если это - допустимый идентификатор C.
Значение shortLabel.
Для типов целочисленных данных с плавающей точкой, которые не требуют преобразования между внутренними и физическими значениями, средство экспорта генерирует типовой CompuMethod с категорией IDENTICAL
и краткое название Identcl
.
Для получения информации о конфигурировании CompuMethods для генерации кода смотрите, Конфигурируют AUTOSAR CompuMethods.