В классических и адаптивных программных компонентах AUTOSAR можно смоделировать порты AUTOSAR с помощью Simulink корневого уровня® шинные порты вместо Inport и Outport блоков. Порт шины блокирует In Bus Element и Out Bus Element может упростить интерфейсы модели. Для получения дополнительной информации смотрите Упрощение Подсистемы и Интерфейсов модели с Шинами.
Блоки шинных портов обеспечивают более интуитивно понятный способ моделирования коммуникационных портов, интерфейсов и групп элементов данных AUTOSAR. Если вы моделируете порты AUTOSAR с In Bus Element и Out Bus Element блоками и вводите порты шины с помощью объектов шины, основные свойства портов AUTOSAR, интерфейсов и элементов данных конфигурируются без использования словаря AUTOSAR. Чтобы управлять интерфейсами компонентов, вы конфигурируете объекты шины Simulink.
Можно использовать порты шины корневого уровня с:
Программные компоненты AUTOSAR, которые используют стили моделирования на основе скорости или экспорта функций.
Связь на основе сигнала AUTOSAR.
Коммуникация на основе сообщений AUTOSAR, включая классический приемник отправителя в очереди (S-R) или адаптивную передачу сообщений на основе событий.
В моделях архитектуры AUTOSAR можно связать модели компонента Classic Platform, которые имеют порты шины, а затем использовать Редактор расписаний для планирования симуляции.
Моделируйте порты AUTOSAR путем настройки портов шины Simulink
Моделируйте интерфейсы AUTOSAR путем набора портов шины с объектами шины
Чтобы сконфигурировать порты шины Simulink в модели AUTOSAR:
Создайте или откройте модель компонента программного обеспечения AUTOSAR. Примеры в этой теме используют копию модели с возможностью записи autosar_swc
.
Для ссылки, пример модели
показывает конечный результат этих процедур.matlabroot
/ help/toolbox/autosar/examples/mAutosarSwcBusPorts.slx
Добавьте два блока In Bus Element к модели и соедините их как корневые входные порты. Сконфигурируйте порты шины для совместного использования одного и того же порта AUTOSAR, но с различными элементами. Блоки шинных портов автоматически сопоставляются с портами и элементами AUTOSAR.
Удалите существующие блоки Inport в модели.
Создайте In Bus Element блок. Откройте диалоговое окно параметров блоков. Установите Port name значение ReceivePort
и имя сигнала, чтобы In1
.
Соедините блок с первым входным сигналом. Сделайте копию блока и соедините его со вторым входным сигналом. В холсте модели (не диалоговом окне параметров блоков) щелкните имя второго блока и измените In1
на In2
.
Теперь в In Bus Element параметров блоков окне перечислены оба сигнала.
Отредактируйте каждый сигнал и установите Sample time равными 1 и 2, соответственно.
Добавьте два блока Out Bus Element к модели и соедините их как корневые выходные порты. Сконфигурируйте порты шины для совместного использования одного и того же порта AUTOSAR, но с различными элементами. Блоки шинных портов автоматически сопоставляются с портами и элементами AUTOSAR.
Удалите существующие блоки Outport в модели.
Создайте Out Bus Element блок. Откройте диалоговое окно параметров блоков. Установите Port name значение SenderPort
и имя сигнала, чтобы Out1
.
Соедините блок с первым выходным сигналом. Сделайте копию блока и соедините его со вторым входным сигналом. В этом случае имя сигнала автоматически устанавливается на Out2
.
Теперь в Out Bus Element параметров блоков окне перечислены оба сигнала.
На вкладке Apps откройте приложение AUTOSAR Component Designer.
Используйте редактор Отображения, чтобы убедиться, что основанные на скорости функции правильно сопоставлены с выполняемыми AUTOSAR.
Убедитесь, что порты шины правильно сопоставлены с портами AUTOSAR.
Исследуйте режим доступа к данным AUTOSAR, выбранный для каждого порта. Область образца модели mAutosarSwcBusPorts
задает неявный доступ к данным для приема и отправки в соответствии с исходными настройками для autosar_swc
.
Вы можете открыть словарь AUTOSAR и просмотреть порты компонентов AUTOSAR, возможности выполнения, S-R интерфейсы и элементы данных.
Если вы генерируете код для модели:
Сгенерированный файл ARXML autosar_swc_component.arxml
описывает периодические выполняемые функции для каждой частоты дискретизации с именем Runnable_1s
и Runnable_2s
.
Файл сгенерированного кода autosar_swc.c
определяет функции, основанные на скорости Runnable_1s
и Runnable_2s
.
Для определения интерфейса AUTOSAR введите шинный порт с объектом шины. Этот пример использует ту же модель программного компонента AUTOSAR, которая была изменена в предыдущем примере. Пример заменяет интерфейс отправителя Output_If
в autosar_swc
с новым интерфейсом с именем SenderInterface
.
С измененным autosar_swc
откройте, откройте Редактор шины. На вкладке Modeling выберите Design > Bus Editor.
В диалоговом окне Редактор добавьте шину и назовите ее SenderInterface
. Добавьте два элемента шины и назовите их Out1
и Out2
.
При желании, когда вы выходите из диалогового окна, сохраните SenderInterface
объект шины в файл MAT для дальнейшего использования. Пример модели mAutosarSwcBusPorts
не загружает файл MAT. Вместо этого он использует PreLoadFcn
моделируйте коллбэк, чтобы программно создать SenderInterface
шинный объект.
Откройте SenderPort
диалоговое окно блока. Отредактируйте порт SenderPort (не сигналы). В Data type меню выберите Bus:SenderInterface
.
Поскольку новый интерфейс заменяет существующий сопоставленный интерфейс, необходимо явно удалить существующий порт отправителя и интерфейс отправителя. Откройте приложение AUTOSAR Component Designer и откройте AUTOSAR Dictionary. Выберите и удалите порт отправителя SenderPort
и интерфейс S-R Output_If
.
Чтобы сгенерировать и сопоставить новый интерфейс отправителя, либо вызовите функцию autosar.api.create
чтобы обновить отображение модели или нажать Ctrl+B, чтобы сгенерировать код модели (требует Embedded Coder®). Вот autosar.api.create
вызов функции.
autosar.api.create('autosar_swc');
Вы можете открыть словарь AUTOSAR и просмотреть новые определения портов отправителей и интерфейсов S-R.
Для ссылки, пример модели
показывает конечный результат этих процедур.matlabroot
/ help/toolbox/autosar/examples/mAutosarSwcBusPorts.slx
autosar.api.create
| In Bus Element | Out Bus Element