3. Vector DaVinci Developer入门
DaVinci Developer是Vector公司提供的AUTOSAR基础软件配置与RTE生成工具,在ECU开发流程中承担着“软件架构落地”的关键角色。与DaVinci Configurator Pro(侧重BSW模块参数配置)不同,Developer的核心职责是完成SWC(软件组件)设计、端口与连接定义、RTE事件映射以及最终RTE代码的生成。本章将围绕界面导航、工程创建、ECU提取和模块配置四个基础操作域展开,帮助学员建立对工具操作逻辑的整体认知,并掌握从已有工程中提取ECU信息、配置基础模块的标准路径。
上图展示了DaVinci Developer在AUTOSAR开发流程中的核心操作链路:从工程创建开始,经过ECU提取,进入模块配置,最终输出RTE代码。图中同时呈现了模块配置阶段的核心对象关系——SWC、端口、连接和RTE事件映射之间的依赖结构。这张图是理解后续所有操作步骤的认知地图,建议学员在学习过程中反复对照。
3.1 界面导航与工作台定制
核心原理:基于Eclipse的模块化界面
DaVinci Developer基于Eclipse平台构建,其界面布局遵循“透视图(Perspective)+ 编辑器(Editor)+ 视图(View)”的三层结构。默认的“AUTOSAR透视图”包含左侧的工程浏览器(Project Explorer)、中央的模块编辑器(Module Editor)、右侧的属性视图(Properties)以及底部的问题视图(Problems)。理解这三个区域的数据联动关系是高效操作的前提:工程浏览器展示所有.arxml文件与模块节点,模块编辑器提供图形化或表格化的配置界面,属性视图则显示当前选中对象的详细参数。
操作流程:界面定制与导航技巧
- 切换透视图:通过菜单
Window → Perspective → Open Perspective → Other选择“AUTOSAR”或“Debug”透视图。开发阶段建议使用AUTOSAR透视图,调试RTE生成问题时切换到Debug透视图。 - 工程浏览器导航:在Project Explorer中展开工程节点,可以看到
ComponentTypes、ComponentPrototypes、PortDefs、Connectors等逻辑分组。双击任意节点即可打开对应的编辑器。 - 属性视图联动:在编辑器或浏览器中单击选中对象,右侧属性视图会实时刷新。属性视图底部有多个标签页,如“General”、“Ports”、“Internal Behavior”等,用于查看和修改详细参数。
- 快速定位:使用快捷键
Ctrl+Shift+R打开资源查找对话框,输入模块名称(如“ComM”)即可快速跳转到对应配置页面。 - 自定义布局:拖动视图标签可以重新排列位置,通过
Window → Save Perspective As保存自定义布局。建议将“Problems”视图固定在底部,将“Properties”视图固定在右侧,形成稳定的工作区。
Ctrl+Shift+L 可以查看所有快捷键列表,建议将“Next/Previous Editor”设置为常用快捷键。
案例拆解:多工程并行时的界面组织
在实际项目中,工程师往往需要同时打开多个工程(如基础软件工程、应用软件工程、系统提取工程)。此时建议采用以下界面组织策略:
- 为每个工程创建独立的Working Set(工作集),在Project Explorer右上角点击下拉箭头选择“Select Working Set”进行过滤。
- 使用
Window → New Window打开第二个窗口,将两个工程分别放在不同窗口中,避免频繁切换。 - 在属性视图中开启“Show Advanced Properties”选项(视图右上角倒三角图标),以显示更多底层AUTOSAR参数。
这种组织方式在同时对比不同ECU配置或进行配置差异分析时尤为有效。例如,在对比两个ECU的ComM模块配置时,可以分别在两个窗口中打开对应模块,并排查看参数差异。
常见误区与总结
Window → Reset Perspective 恢复默认布局。另外,在工程浏览器中删除对象时,务必确认是否勾选了“Delete from disk”选项——如果勾选,将从文件系统中永久删除.arxml中的对应定义,且无法通过撤销恢复。
界面导航的核心目标是建立“对象-属性-问题”的快速定位能力。建议新学员在第一个小时内完成以下练习:创建一个测试工程,导入示例.arxml文件,然后通过快捷键在10秒内定位到某个特定SWC的某个端口属性。这个练习能有效检验界面熟悉程度。
3.2 工程创建与AUTOSAR版本管理
核心原理:工程文件结构与版本兼容性
DaVinci Developer工程本质上是一个包含多个.arxml文件、配置文件和生成代码的文件夹集合。工程创建的核心决策点在于AUTOSAR版本选择——不同版本(如4.2.2、4.4.0、4.6.0)在元模型结构、端口接口定义、RTE生成规则上存在差异。版本不匹配是导致后续配置错误和代码生成失败的首要原因。
操作流程:从零创建工程
- 启动向导:菜单
File → New → DaVinci Project,输入工程名称和存储路径。 - 选择AUTOSAR版本:在向导页中选择目标AUTOSAR版本。建议与ECU项目中其他工具链(如Configurator Pro、编译器)保持版本一致。
- 配置工程选项:设置RTE生成选项,包括是否生成RTE头文件、是否生成调度表、是否启用VFB(虚拟功能总线)视图等。
- 导入系统提取文件:在工程创建完成后,通过
File → Import → AUTOSAR System Extract导入由系统架构工具(如PREEvision或System Desk)生成的.arxml文件。 - 验证工程完整性:导入后检查Problems视图,确认没有版本不兼容或缺失依赖的错误。
案例拆解:版本不匹配导致的配置异常
某项目组在开发车身控制器时,使用了DaVinci Developer 4.4.0版本,但系统提取文件是由基于AUTOSAR 4.2.2的工具生成的。导入后出现以下现象:
- 部分SWC的端口类型显示为“Unknown”,无法编辑端口属性。
- RTE生成时报告“Unresolved reference”错误,指向多个接口定义。
- 模块编辑器中部分配置页面空白,无法显示预期参数。
分析过程:通过查看Problems视图中的错误详情,发现所有错误均指向“AUTOSAR version mismatch”或“Schema validation failed”。进一步检查.arxml文件的根元素,确认其schemaVersion为4.2.2,而工程设置为4.4.0。
解决方案:在工程属性中修改AUTOSAR版本为4.2.2,重新导入.arxml文件。问题解决,所有端口和接口定义恢复正常显示。
复盘经验:在项目启动阶段,必须统一所有工具链的AUTOSAR版本。建议在工程创建时记录版本信息,并在导入文件前使用 File → Validate 功能进行预检查。
常见误区与总结
工程创建阶段的关键输出物包括:工程配置文件(.dpa)、导入的系统提取文件、以及初始化的模块配置数据库。建议在创建工程后立即进行版本验证和完整性检查,避免将问题带入后续配置阶段。
3.3 ECU提取:从系统级到ECU级
核心原理:ECU提取的语义
ECU提取(ECU Extract)是指从整车系统描述中筛选出与目标ECU相关的所有AUTOSAR元素,生成一个独立的ECU级描述文件。这个过程不是简单的文件裁剪,而是基于ECU实例(ECU Instance)的语义过滤——只保留该ECU包含的SWC原型、端口连接、BSW模块配置需求以及相关的数据类型定义。提取后的文件是后续所有配置工作的基础。
操作流程:执行ECU提取
- 打开系统提取文件:在工程浏览器中双击导入的系统提取.arxml文件,系统会以表格形式展示所有ECU实例。
- 选择目标ECU:在ECU实例列表中找到目标ECU(如“BodyControlModule”),右键选择
Extract ECU。 - 配置提取选项:在提取对话框中,选择是否包含BSW模块描述、是否保留诊断相关定义、是否生成VFB视图等。默认选项通常适用于大多数场景。
- 执行提取:点击Finish,工具会生成一个新的.arxml文件(通常命名为
工程名_ECU名.arxml),并在工程浏览器中自动加载。 - 验证提取结果:检查提取后的文件中是否包含所有预期的SWC和连接。特别注意检查跨ECU的连接是否被正确转换为“外部连接”或“信号路由”。
案例拆解:提取后连接丢失问题
某动力总成项目中,从系统提取文件中提取“EngineControlUnit”后,发现原本与“TransmissionControlUnit”之间的CAN信号连接在提取后的文件中消失了。
分析过程:检查提取选项,发现“Include cross-ECU connections”选项未勾选。该选项控制是否保留与其他ECU的通信关系。在AUTOSAR中,跨ECU通信通常通过ComM、Com和PduR模块实现,这些模块的配置需要知道对端ECU的信号定义。
解决方案:重新执行ECU提取,勾选“Include cross-ECU connections”选项。提取后,在生成的文件中可以看到一个名为“CrossECU_Connection”的虚拟连接器,其中包含了与TCM的CAN信号映射关系。
复盘经验:ECU提取选项的选择直接影响后续BSW模块配置的完整性。建议在提取时保留所有跨ECU连接信息,即使当前阶段不需要,也可以在后续配置中删除。
常见误区与总结
ECU提取是连接系统设计与ECU实现的桥梁。一个成功的提取操作应该做到:所有本ECU的SWC完整保留、所有跨ECU通信关系清晰可见、所有BSW模块需求正确映射。建议在提取后使用 Window → Show View → AUTOSAR Navigator 查看提取结果的完整结构。
3.4 模块配置基础操作:SWC、端口与连接
核心原理:模块配置的对象层次
模块配置是DaVinci Developer的核心功能,其操作对象遵循严格的层次结构:SWC类型(ComponentType)→ SWC原型(ComponentPrototype)→ 端口(Port)→ 连接(Connector)→ RTE事件(RTE Event)。理解这个层次关系是避免配置错误的关键。SWC类型定义了组件的结构和行为模板,SWC原型是类型在具体ECU中的实例化,端口定义了组件与外界的交互点,连接描述了端口之间的数据或服务流,RTE事件则决定了运行实体(Runnable)的触发方式。
操作流程:创建一个简单的SWC并建立连接
- 创建SWC类型:在工程浏览器中右键
ComponentTypes → New → SwcComponentType,输入名称(如“App_SeatControl”),选择类型(Application SWC)。 - 定义端口:在SWC编辑器的“Ports”标签页中,点击“Add”创建端口。选择端口类型(ProvidePort/RequirePort)、端口接口(如“SeatControl_Interface”),并指定数据元素或操作。
- 创建SWC原型:在
ComponentPrototypes下右键新建原型,选择刚创建的SWC类型。原型名称通常与ECU中的实例名一致(如“SeatControl_Instance”)。 - 建立连接:在“Connectors”编辑器中,通过拖拽方式将两个SWC原型的端口连接起来。连接类型可以是Assembly Connector(组件间连接)或Delegation Connector(组件与复合组件端口之间的连接)。
- 配置RTE事件:在SWC类型的“Internal Behavior”标签页中,添加Runnable,并为其配置触发事件(如Periodic Trigger、DataReceivedEvent)。
案例拆解:座椅控制模块的端口连接配置
以车身域中的座椅控制为例,需要实现以下功能:座椅位置传感器信号输入、电机控制输出、以及通过CAN与中央网关通信。
| 对象名称 | 类型 | 端口接口 | 方向 | 连接目标 |
|---|---|---|---|---|
| SeatPosition_Sensor | SWC原型 | Position_Interface | RequirePort | 传感器抽象层 |
| SeatMotor_Control | SWC原型 | Motor_Interface | ProvidePort | 执行器驱动 |
| SeatCAN_Comm | SWC原型 | CAN_Interface | RequirePort | ComM模块 |
配置步骤:
- 创建三个SWC类型:SeatPosition_Sensor、SeatMotor_Control、SeatCAN_Comm。
- 为每个SWC定义合适的端口接口。Position_Interface包含一个数据元素“Position_Value”(uint16),Motor_Interface包含一个操作“SetMotorSpeed”(uint8),CAN_Interface包含一个数据元素“SeatStatus”(uint8)。
- 创建三个SWC原型,并放置在ECU的组件拓扑中。
- 使用Assembly Connector将SeatPosition_Sensor的RequirePort连接到传感器抽象层的ProvidePort。
- 使用Delegation Connector将SeatMotor_Control的ProvidePort连接到ECU复合组件顶层的端口。
- 在SeatPosition_Sensor的Internal Behavior中添加Runnable“ReadPosition”,并配置为100ms周期触发。
验证与结果:配置完成后,使用 Validation → Validate 检查连接一致性。确认所有端口都有有效连接,所有Runnable都有触发事件。生成RTE后,检查生成的 Rte_SeatPosition_Sensor.h 文件中是否包含正确的端口访问宏。
风险与代价:如果端口接口定义不一致(如数据类型不匹配),RTE生成时会报告类型冲突错误。此时需要返回接口定义处修改,避免在连接层面强行适配。
常见误区与总结
模块配置的基础操作需要学员建立“类型-原型-端口-连接-事件”的完整思维链。建议在练习时,先画出组件拓扑草图,再在工具中实现。同时,定期使用 File → Export → AUTOSAR Description 导出配置结果,用于版本对比和团队评审。
通过本章的学习,学员应能够独立完成从工程创建到基础模块配置的完整流程。下一阶段的学习将聚焦于更复杂的BSW模块配置和RTE高级特性,但本章的基础操作能力将贯穿整个AUTOSAR开发周期。