在架构模型中创建 AUTOSAR 组合和组件
使用架构模型针对 Classic 平台开发 AUTOSAR 组合和组件。
AUTOSAR 架构模型为开发 AUTOSAR 组合和组件模型提供资源和画布。在架构模型中,您可以:
添加并连接 AUTOSAR 组合和组件。
创建用于分析的架构视图。
将组件与需求链接起来(需要 Requirements Toolbox)。
通过创建、导入或链接 Simulink 模型定义组件行为。
使用 Simulink 数据字典定义和共享接口、数据类型和常量。
配置调度和仿真。
导出组合和组件的 ARXML 描述并生成组件代码(需要 Embedded Coder)。
架构模型提供端到端的 AUTOSAR 软件设计工作流。在 Simulink 中,您可以创建高级应用程序设计,实现应用程序组件的行为,添加基础软件 (BSW) 服务调用和实现,并仿真应用程序。
创建架构模型
要开始在软件架构画布中开发 AUTOSAR 组合和组件,请创建一个 AUTOSAR 架构模型(需要 System Composer)。
1.通过输入 MATLAB 命令 simulink
或从工具条的 Simulink 部分中选择 Simulink 按钮 打开 Simulink 起始页。
2.在新建选项卡上,向下滚动到 AUTOSAR Blockset 并展开模型模板列表。将光标放在软件架构模板上,然后点击创建模型。
新 AUTOSAR 架构模型将打开。
3.浏览软件架构画布中的控件和内容。
在 Simulink 工具条中,建模选项卡支持架构建模的常见任务。
在模型窗口的左侧,调色板包括用于向模型添加不同类型的 AUTOSAR 组件的图标。对于 Classic 架构,支持的组件模块包括 Classic Component、Software Composition;对于基础软件 (BSW) 建模,支持的组件模块包括 Diagnostic Service Component 和 NVRAM Service Component。
组合编辑器提供基于 AUTOSAR 虚拟功能总线 (VFB) 的 AUTOSAR 软件架构的视图。模型画布最初为空。
您可以从建模选项卡选择架构平台 Classic Platform
或 Adaptive Platform
。默认为 Classic。不支持在同一架构模型中混合使用 Classic 组件和 Adaptive 组件。
此示例构造一个节气门位置控制应用程序。按照新 Classic 架构模型执行相关步骤,或参考展示最终结果的示例模型 autosar_tpc_composition
。
open_system('autosar_tpc_composition')
添加组合和组件并链接实现模型
AUTOSAR 应用程序的行为由其 AUTOSAR 组件定义,您可以将这些组件链接到 Simulink 实现模型。此示例为以下模型的 AUTOSAR 组件提供 Simulink 实现模型:
autosar_tpc_throttle_sensor1.slx
用于组件TPS_Primary
autosar_tpc_throttle_sensor2.slx
用于组件TPS_Secondary
autosar_tpc_throttle_sensor_monitor.slx
用于组件Monitor
autosar_tpc_pedal_sensor.slx
用于组件PedalSensor
autosar_tpc_controller.slx
用于组件Ctrl
autosar_tpc_actuator.slx
用于组件Actuator
上述节气门位置控制组件中有四个是传感器组件。这些传感器组件可以组合以创建一个 Software Composition 模块 Sensors
。在您的架构模型中,您可以通过两种方式创建此 Sensors
组合。您可以先创建一个空白组合并用相关组件填充它,也可以从组件创建组合。
使用组件创建组合
1.在建模选项卡上,选择 Classic 组件以添加 Classic Component 模块来表示上述模型的 AUTOSAR 组件:TPS_Primary
、TPS_Secondary
、Monitor
和 PedalSensor
。
2.选择这四个组件。点击并拖动鼠标以形成一个矩形,或按住 Shift 键选择多个组件。将鼠标暂停在省略号上,选择从所选内容创建组合选项。
3.由此创建的组合模块包含选定组件。将创建的 Software Composition 模块命名为 Sensors
。
创建组合并添加组件
1.向画布添加一个 Software Composition 模块。在建模选项卡上,选择软件组合,向画布添加一个 Software Composition 模块。在突出显示的名称字段中,写入 Sensors
。
2.打开 Sensors
组合以在画布上显示其内容。在建模选项卡上,选择 Classic 组件以添加 Classic Component 模块来表示上述模型的 AUTOSAR 组件:TPS_Primary
、TPS_Secondary
、Monitor
和 PedalSensor
。
将组件链接到 Simulink 模型
1.将每个组件链接到实现其行为的 Simulink 模型。打开 Sensors
组合模块(如果尚未打开)并选择 TPS_Primary
组件模块,将光标置于显示的省略号上,选择提示链接到模型。
在“链接到模型”对话框中,浏览到实现模型 autosar_tpc_throttle_sensor1.slx
。点击确定。对所有四个组件重复此操作,但改为链接到对应的 Simulink 模型。
在架构模型中,当您将组件模块链接到实现模型时,软件会验证指定的模型是否满足链接需求。一些需求是,实现模型必须使用与架构模型相同的目标,使用定步长求解器,并使用根级总线端口。如果实现模型不满足上述一项或多项链接需求,软件将打开 AUTOSAR 模型链接器,用于修复未满足的需求。有关详细信息,请参阅Link to Implementation Model。
对此示例提供的实现模型满足链接需求。
2.在链接每个模型后,您可以调整关联的组件模块的大小以更好地显示组件端口。
3.将组件相互连接并连接到组合根端口。
要互连组件,请将一条线从一个组件提供方端口拖到另一个组件接收方端口。
要将组件连接到
Sensors
组合根端口,请将一条线从组件端口拖到Sensors
组合边界。
(可选)为了与示例模型 autosar_tpc_composition
中的根端口命名精确匹配,请将端口 TPS_HwIO
和 TPS_HwIO1
分别重命名为 TPS1_HwIO
和 TPS2_HwIO
。
4.返回到架构模型的顶层。为完成应用程序,请添加两个 Classic Component 模块并将其命名为 Ctrl
和 Actuator
。将这些 AUTOSAR 组件链接到其 Simulink 实现模型 autosar_tpc_controller.slx
和 autosar_tpc_actuator.slx
。将 Sensors
组合、Ctrl
组件和 Actuator
组件相互连接并连接到架构模型边界。
5.要检查接口或数据类型问题,请更新架构模型。在建模选项卡上,选择更新模型。如果发现问题,将您的模型与示例模型 autosar_tpc_composition.slx
进行比较。
6.以唯一名称保存模型。
从组合创建 AUTOSAR 架构
如果您有保存在 AUTOSAR 架构模型中的组合,并希望从不同架构模型引用它,则您可以将该组合另存为 Simulink 实现模型并引用它。
1.将光标置于显示的 Sensors 组合的省略号上,选择选项将组合另存为架构模型。
2.在将组合另存为 AUTOSAR 架构模型对话框中,将实现模型的名称指定为 Sensors_Composition.slx
。
3.创建一个新 AUTOSAR 架构模型,并向画布添加一个组合模块。
4.将光标悬停在组合模块上方的省略号上。
5.选择链接到模型。
6.在链接到模型对话框中选择浏览...,导航到 'Sensors_Composition.slx'
文件并选择该文件。
7.点击确定。
可选:使用数据字典管理接口、数据类型和常量
使用 Simulink 数据字典的“架构数据”分区,您可以创建和配置接口、数据类型和常量,然后在多个模型中使用它们。此示例中的模型使用共享数据字典 tpc_interfaces.sldd
。Architectural Data Editor可用于以图形方式编辑这些模型的接口。有关如何使用架构数据编辑器管理数据字典的信息,请参阅Graphically Manage AUTOSAR Architectural Data。
通过在 MATLAB 命令行窗口中输入命令 archdataeditor
或从架构模型的建模工具条中选择架构数据编辑器 ,打开架构数据编辑器。从架构数据编辑器打开或创建一个数据字典。在此示例中,打开现有字典
tpc_interfaces.sldd
。
数据字典 tpc_interfaces
用作架构模型中存在的接口的数据源。您可以从各自对应的选项卡添加、删除和修改接口、数据类型和常量。
您可以使用在架构数据编辑器中定义的数据类型配置接口。tpc_interfaces
中的许多接口是使用自定义数据类型定义的。您也可以使用内置数据类型定义接口。
接口 APP_Percent
、APP_HwIO
、ThrCmd_Percent
、TPS_Percent
和 TPS_HwIO
是使用在数据类型选项卡上定义的 Simulink.ValueType
对象配置的。
要使您的更改出现在模型中,请保存数据字典并更新架构模型。
可选:创建用于分析的架构视图
为了帮助分析 AUTOSAR 架构模型的结构和功能方面,您可以创建模型层次结构的过滤视图。在建模选项卡上的架构视图菜单中:
选择聚焦视图以创建一个聚焦视图。
选择架构视图以创建一个具有分组条件的自定义视图。
为了帮助分析组件或组合的依赖关系,请创建一个聚焦视图。聚焦视图是架构组件或组合的简化视图,用于捕获其上游和下游依赖关系。
对于此示例,请在示例模型 autosar_tpc_composition
或您创建并保存的架构模型中选择组件 Monitor
。在建模选项卡上,选择架构视图 > 聚焦视图。
聚焦视图将打开,显示组件或组合在层次结构中连接到的模型元素。聚焦图会自动布局且不可编辑。
(可选)您可以在单独的持久模型窗口中创建聚焦视图。使用更改更新架构模型图会刷新打开的聚焦视图。在聚焦视图中时,您可以移动聚焦视图焦点。
要创建一个具有更复杂过滤条件的自定义视图,请使用架构视图库。在建模选项卡上,选择架构视图。自定义视图可以随架构模型一起保存,然后供协作用户访问和共享。有关详细信息,请参阅Create Profiles Stereotypes and Views for AUTOSAR Architecture Analysis。
可选:将组件链接到需求 (Requirements Toolbox)
如果您有 Requirements Toolbox 软件,可以将架构模型中的组件链接到需求。示例文件夹提供示例需求文件 TPC_Requirements.slreqx
。该文件包含节气门位置控制应用程序的四个组件的需求。
要将组件链接到需求,请执行以下操作:
1.打开需求管理器。在架构模型窗口中,需求选项卡将打开,需求浏览器停靠在底部。
2.在需求浏览器中,打开需求集 TPC_Requirements.slreqx
。该需求集包含模型中四个组件的需求。
3.要将 AUTOSAR 组件链接到需求,请将需求从需求浏览器拖到组件模块。例如,将需求 4 拖到 Actuator
组件模块。
有关详细信息,请参阅Link AUTOSAR Components to Requirements。
配置并运行仿真
要仿真 AUTOSAR 架构模型中聚合组件的行为,请点击运行。
如果您尝试运行在此示例中构造的 Classic 架构模型,会出现错误消息,指示找不到基础软件 (BSW) 函数调用方模块的函数定义。三个组件实现模型包含需要 BSW 服务实现的 BSW 函数调用。
要查看这些函数调用,请打开您的架构模型,例如 myTPC_Composition.slx
。在调试选项卡上的叠加信息下,点击连接器。从 Simulink 画布上的连接器窗格选择函数连接器。此选择会列出具有函数的每个模型的函数连接器。要查看具有 BSW 函数调用的模型,请打开 Sensors
组合。
这些模型包含对 Diagnostic Event Manager (Dem) 和 NVRAM Manager (NvM) 服务的函数调用。必须向顶层模型添加 Diagnostic Service Component 和 NVRAM Service Component 模块,才能对应用程序进行仿真。
要添加和配置服务实现模块,请执行以下操作:
1.返回到架构模型的顶层,选择建模选项卡。选择并放置一个诊断服务组件实例和一个 NVRAM 服务组件实例。要将函数调用方连接到 BSW 服务实现,请更新模型。
2.检查 BSW 函数调用方客户端端口到 BSW 服务 ID 的映射。Dem 客户端端口映射到 Dem 服务事件 ID,NvM 客户端端口映射到 NvM 服务模块 ID。
对于此示例,请更新 Dem 映射。打开 DEM/FIM 模块对话框,选择 RTE 选项卡,并输入显示的事件 ID 值。点击确定。有关 BSW ID 映射的详细信息,请参阅Simulate AUTOSAR Basic Software Services and Run-Time Environment。
现在可以对架构模型进行仿真。点击运行。
将架构模型连接到包含被控对象模型和踏板输入的测试框架
为了向节气门位置控制仿真提供仿真的踏板输入,您可以将架构模型放置在测试框架模型中。测试框架可以提供具有踏板输入模块的被控对象模型。请参考示例测试框架模型 autosar_tpc_system.slx
。
要将架构模型连接到测试框架,请执行以下操作:
1.插入一个 Model 模块。
2.配置该 Model 模块以引用您的架构模型,例如 myTPC_Composition.slx
。
3.在 Model 模块对话框中,选择选项调度速率。对于关联的参数速率调度方式,选择“调度编辑器”。节气门位置控制组件具有可以使用调度编辑器调度的显式分区。
4.将架构模型端口连接到测试框架信号。
测试框架模型现已准备就绪,可以进行仿真。点击运行。当您仿真应用程序时,节气门位置示波器指示架构模型中的节气门位置控制算法跟踪加速踏板输入的效果。
在测试框架模型中,从引用的 AUTOSAR 架构模型的 Model 模块中,您可以使用调度编辑器为组件可运行实体调度速率。要打开调度编辑器,请点击 Model 模块正上方的调度编辑器标记。在调度编辑器显示画面中,您可以可视化并控制应用程序组件中可运行实体(分区)的执行顺序。有关详细信息,请参阅Using the Schedule Editor、Configure AUTOSAR Runnable Execution Order和Configure AUTOSAR Scheduling and Simulation。
导出并打包组合 ARXML 描述和组件代码 (Embedded Coder)
如果您有 Simulink Coder 和 Embedded Coder 软件,可以从 AUTOSAR 架构模型导出组合和组件 AUTOSAR XML (ARXML) 描述并生成组件代码。(可选)创建一个 ZIP 文件以打包模型层次结构的编译工件,例如用于转移和集成。
要导出 ARXML 文件并生成代码,请执行以下操作:
1.打开在此示例中构造的架构模型或打开示例模型 autosar_tpc_composition.slx
。
2.要为导出 ARXML 做准备,请检查并修改 XML 选项。在建模选项卡上,选择 XML 选项。AUTOSAR 字典在“XML 选项”视图中打开。在架构模型级别指定的 XML 选项在导出时由模型中的每个组件继承。
3.要为节气门位置控制应用程序生成并打包代码,请在建模选项卡上,选择共享 > 生成代码和 ARXML。在“导出组合”对话框中,指定用于打包生成文件的 ZIP 文件的名称。要开始导出,请点击确定。
在架构模型编译时,您可以在诊断查看器中查看编译日志。首先组件模型进行编译,每个模型作为独立的顶层模型进行编译。最后,导出组合 ARXML。在编译完成后,当前文件夹包含架构模型和层次结构中每个组件模型的编译文件夹,以及指定的 ZIP 文件。
4.展开 ZIP 文件。其内容组织在 arxml
和 src
文件夹中。
5.检查 arxml
文件夹。在此示例中,因为 XML 选项导出的 XML 文件打包设置为 Modular
,XML 会导出到多个文件中,并根据包含的信息类型命名。每个 AUTOSAR 组件都有组件和实现描述文件,而架构模型有组合、数据类型、接口和时序描述文件。组合文件包括组合、组件原型以及组合端口和连接器的 XML 描述。数据类型、接口和时序文件聚合整个架构模型层次结构中的元素。在原型和配置文件中捕获的非功能性属性不包含在描述文件中。
6.检查 src
文件夹。每个组件模型都有一个编译文件夹,其中包含独立模型编译的工件。