当前位置: 首页 > news >正文

ASW层(应用层)设计与工作内容笔记

一、Autosar ASW层

1. ASW要素

在这里插入图片描述

  • 核心元素
    • 数据类型定义:作为所有工作的基础,是接口与组件交互的前提;
    • 接口类型定义:基于已定义的数据类型构建,实现组件间交互的“标准协议”;
    • 软件组件(SWC)设计:为每个组件匹配合适的数据接口,明确功能边界;
    • 组件连接:多个SWC通过接口关联,形成ASW层的Composition(组件集合) 概念。
  • 设计特点
    • 使用Component Prototype (CPT) 表示软件模块原型,聚焦“交互框架”而非具体算法;
    • 关注架构而非算法:仅定义组件间的交互逻辑,不涉及功能的具体实现代码;
    • 系统级视角:需综合考虑多核部署(SWC核心分配)、功能安全(ISO 26262)、信息安全(ISO/SAE 21434)等系统约束。

2. ASW层的设计

1)设计流程

在这里插入图片描述

按“基础准备→模块级→系统级”分层推进,确保设计逻辑完整可落地:

  • 基础准备工作
    • 数据类型定义:覆盖Base Type(底层原生类型)、Implementation Data Type(IDT,代码级类型)、Application Data Type(ADT,应用逻辑类型)及Data Type Mapping Sets(类型映射);
    • 数据变换方法:设计Compute Method,处理线性变换、分段增益、数据压缩等“代码值→物理值”的转换逻辑;
    • 接口类型定义:明确6类核心接口——SR(Sender Receiver,发送-接收)、CS(Client Service,客户端-服务端)、MS(Mode Switch,模式切换)、NV data(非易失数据)、Trigger(触发)、Parameter(参数)。
  • 模块级设计
    • 接口定义:确定单个SWC对外的交互方式(如用SR接口传传感器数据、CS接口提供控制服务);
    • 功能定义:划清SWC的功能边界(如“电池状态监测”“灯光控制”),避免功能重叠;
    • 事件定义:规划SWC的响应机制(如定时采样事件、数据接收触发事件);
    • IRV定义:设计SWC内部可运行实体(Runnable)间的交互变量(Internal Runnable Variable),实现组件内数据传递。
  • 系统级设计
    • 组件链接:通过接口建立不同SWC间的交互关系(如“传感器SWC→ECU控制SWC”的数据流向);
    • CPT定义:完成SWC的原型配置,为后续Composition构建提供可复用的模块单元。
2)设计原则
  • 抽象组合原则
    • 合理划分SWC功能颗粒度(避免过大降低复用性、过小增加交互复杂度);
    • 提前规划多核部署方案(高优先级SWC分配至独立核心,避免资源抢占);
    • 兼顾功能安全与信息安全(安全相关SWC单独设计,敏感数据接口需加密)。
  • 数据交互机制
    • 组件间通信完全依赖RTE(运行时环境),SWC无需关心底层总线(CAN/LIN/Ethernet)或协议细节;
    • BSW层为RTE提供底层支撑(如COM模块负责总线数据收发、NM模块管理网络状态);
    • SWC仅需向RTE发起“数据发送/接收”“服务调用”请求,无需直接调用BSW接口。
  • 架构特点
    • 所有ARXML文件共同描述严格的软件架构,确保跨工具、跨团队协作的一致性;
    • 避免“单个控制器视角”,需从整车系统出发设计SWC交互(如跨ECU的SWC通信);
    • 最终产出为“应用层软件架构”(接口、SWC、Composition),而非具体功能实现代码。

3. ASW层工作内容

1)数据类型(数据字典编辑器)

数据类型是ASW层的“语言基础”,按抽象层级分为4类,需通过数据字典编辑器统一管理:

  • Application Data Types (ADT)
    • 定义角度:从应用逻辑角度描述数据,属虚拟概念;
    • 核心特点:体现数据的物理语义(如“电池电压”“发动机转速”)、取值范围(如0-5V)和单位;
    • 关联逻辑:需绑定Compute Method,实现“计算机内部代码值→物理值”的转换;
    • 使用场景:SWC设计阶段,用于组件间的“虚拟通信”(不涉及底层代码实现)。
  • Implementation Data Types (IDT)
    • 定义角度:从代码实现角度描述数据;
    • 抽象层级:虽为抽象概念,但近似C语言数据类型(如uint16、float32);
    • 生成结果:代码生成时会自动转换为对应的C语言类型定义;
    • 作用:承上启下——基于Base Type构建,支撑ADT的底层实现。
  • Base Types
    • 定义角度:从比特/字节角度描述底层平台原生数据类型;
    • 依赖条件:与MCU硬件、编译器绑定(由Platform模块定义);
    • 核心作用:作为IDT、ADT的“底层基石”,确保数据类型与硬件兼容。
  • Data Type Mapping Sets
    • 本质:建立不同数据类型间的映射关系(如ADT与IDT的对应、IDT与Base Type的关联);
    • 目的:确保SWC交互、BSW层调用时数据格式一致,避免类型不匹配错误。
编辑说明
  • 编辑界面:包含4个核心选项卡——Data Types(数据类型)、Interface(接口)、Compute Method(计算方法)、Data Constraints(数据约束);
  • 类型分类:左侧选项卡区分“Primitive(基础类型,如单个数值)”和“Composite(复杂类型,如数组、结构体、联合体)”;
  • 编辑方式:以表格形式维护数据字典,需定义“存放位置、类型、短名、标定权限(read write/read only)”,支持引用Base Type或同类型其他定义;
  • 注意事项:需具备C语言基础,可配置数组长度、结构体成员等属性;
  • 推荐设计流程:先定义Base Type(适配MCU平台)→再定义IDT(代码级抽象)→最后定义ADT(应用逻辑语义)→按需配置Mapping Sets。
2)计算方法(Compute Method)
  • 功能定位:将SWC交互的“原始代码值”转换为“具有物理意义的量值”(如ADC采样值0-4095→电压值0-5V)。
  • 核心转换方式
    • identical变换:原始数据与物理值一致,无需转换(如“1=灯亮,0=灯灭”);
    • 线性变换:遵循y=kx+b公式(k为系数,b为偏移量),适用于连续线性关系数据;
    • scale of linear变换:带比例尺的线性转换(如物理值=(原始值-偏移量)×系数/比例尺),适用于需校准的传感器数据;
    • 文字表转换:通过预设对照表实现数值映射(如“1=正常,2=警告,3=故障”),适用于离散状态数据。
  • 使用建议:根据数据的物理特性选择转换方式,确保“代码值→物理值”的准确性。
3)数据约束(Data Constraints)
  • 核心功能:定义数据的有效边界和异常处理规则,避免无效数据导致SWC功能误判。
  • 典型应用场景
    • 需设置上下界的连续量(如发动机转速0-8000rpm、冷却液温度-40-125℃);
    • 安全相关参数的边界控制(如制动压力低于1MPa时触发报警)。
  • 操作特性
    • 支持可视化界面编辑,可快速添加/删除约束元素;
    • 工程意义:提升系统稳定性,减少因数据异常引发的功能故障。
4)接口(Interface)

接口是SWC间、SWC与BSW层交互的“标准协议”,按功能分为6类:

  • 接口类型及核心用途
    • 数据交互接口(Sender Receiver, SR):实现SWC间双向数据交换(如“传感器SWC→ECU SWC发送温度数据”),基于“数据帧”传递,无返回值;
    • 客户端服务端接口(Client Server, CS):支持“请求-响应”式函数调用(如“ECU SWC→诊断SWC请求读取故障码”),Client发起调用,Server执行并返回结果;
    • 参数接口(Parameter):用于SWC间静态/慢变参数传递(如“标定工具→控制SWC传递PID参数”),支持配置“读/写”权限;
    • 模式切换接口(Mode Switch, MS):由ASW层发起模式转换请求(如“应用层请求ECU进入休眠模式”),与BSW层BSWM、DCM、ECUM模块联动,通过RTE传递模式指令;
    • 非易失数据接口(NV Data):专门用于SWC与BSW存储模块(如NVM)交互,实现数据持久化(如保存故障码、标定参数);
    • 触发接口(Trigger):传递“触发信号”,触发SWC特定动作(如定时触发数据采样任务),无数据交互。
  • 接口操作
    • 添加方式:通过工具选项卡切换,选择对应接口类型创建;
    • 原型声明:接口声明即创建“可复用原型”(类似C++类声明),后续SWC可直接引用;
    • VDP配置:支持为每个接口添加多个Variable Data Point(变量数据点),可定义不同数据类型。
  • 接口应用
    • SWC复用:SWC设计时引用接口原型,可对接口设置别名(如将“Temp_SR”别名为“Engine_Temp_SR”);
    • 类比理解:接口原型≈C++类声明,SWC使用接口≈类的实例化。
5)软件组件(SWC)

SWC是ASW层的“功能单元”,需完成创建、接口配置、内部行为定义等操作:

  • SWC的创建
    • 类型分类:AUTOSAR架构下SWC分为7类——应用SWC(核心业务功能)、复杂驱动SWC(CDD,特殊硬件驱动)、ECU抽象SWC(硬件适配)、非易失存储SWC(NV数据处理)、参数传感SWC(传感器数据采集)、执行SWC(执行器控制)、服务类SWC(通用服务,如时间同步);
    • 设计原则:设计阶段需明确SWC的接口交互逻辑(“与谁交互、交互什么数据”);
    • 创建方法:通过ARXML工具或工程查看工具,在software/components子文件夹右键创建,推荐用系统级工具可视化查看。
  • 配置SWC的接口及数据变体
    • 端口配置:左侧面板配置接口类型与可运行实体(Runnable),右侧配置数据及variant/split ball支持选项;
    • 引用元素:若需使用mapping或unit groups,需提前引入相关引用元素;
    • 命名规范:建议采用区分性命名(如“pp_XXX”代表provider port,“rp_XXX”代表receiver port)。
  • 配置内部行为及可运行实体
    • 内部行为创建:点击右上角“+”创建software internal behavior,推荐命名格式为“swc_ib_[组件名]_0”;
    • 可运行实体(Runnable):通过“configure runnable entity”创建,可按周期命名(如“Runnable_1ms”),需挂载到指定内部行为下(Runnable是SWC的“执行单元”,对应具体功能逻辑)。
  • 配置事件
    • 事件类型:定时事件(按周期触发,如1ms事件)、初始化事件(SWC启动时触发)、后台事件(空闲时执行)、数据接收事件(收到SR接口数据时触发)、操作调用事件(CS接口被调用时触发);
    • 创建限制:部分事件需对应接口支持(如数据接收事件依赖SR接口),需提前定义rps和variable data prototype(bdp)数据类型。
  • 配置可运行实体间的变量交互(IRV)
    • IRV变量:用于SWC内部不同Runnable间的数据交换,可导入已有IRV或声明新数据类型;
    • 关键配置:明确IRV的读写关系(如“Runnable_A写,Runnable_B读”),可设置初始值(如默认0)。
  • 其他配置
    • 参数配置:按需定义或新增参数类型,支持多种参数化选项;
    • 设计考量:合理划分SWC颗粒度,预留未来Composition映射空间,适配功能安全与架构约束。
6)组件系统级工作内容
  • 链接组件并定义CPT
    • Composition概念:比SWC更高层级的“组件集合”,是多个SWC按功能关联形成的系统单元;
    • 创建流程:创建Composition Software Component Type→保存至同名ARXML文件→在Composition中引用SWC、接口及数据类型;
    • 组件声明与引用:先在components下声明组件原型(CPT),可引用已创建的ASW SWC(如ASW VCU)或BSW生成模块,CPT支持重命名(如“CPT_ASW_VCU”)。
  • 配置组件间的连接
    • 自动配置工具:使用“Auto Config Composition”功能,自动完成SWC引用、命名及链接建立,需后续检查正确性;
    • 连接检查:在“Assembly Connectors”中删除无用连接,确保链路准确;
    • 手动连接方法:通过“Manual Connection Editor”选择源组件(Source Component)与目标组件(Target Component),需保证接口类型一致(如SR接口只能连SR接口);
    • 连接规则:依赖良好的命名规范,支持正则表达式匹配(示例:将ASW VCU与DCM模块的“ECU Serial Number”端口连接);
    • 连接状态检查:通过“Open with Composition Overview”可视化查看,调整工具窗口显示方式,确认所有链接无误。
  • 导入system info创建必要的元素
    • 自动生成功能:在AR Explorer中打开System文件夹→选择目标ECU→点击“Auto Generate ASW”,自动创建接口、组件等基础元素;
    • 配置选项:设置Component Name(如“VCU_Component”),可双击创建新组件,将接口映射到指定Component下(如所有接口挂载到VCU Component);
    • 生成内容:自动创建VCU Component的SWC、必要PS Ports、VCU Composition,根据DBC文件生成收发信号;
    • 后续工作:手动映射服务模块,补全组件链接,可大幅减少数据类型与接口的手动创建工作量。

二、内容总结

  1. Composition构建要点
    • SWC引用建立:Composition中必须为所有必要SWC建立引用,避免缺失模块;
    • PP-RP链接:需正确建立Composition内“provider port(PP)”与“receiver port(RP)”的对应链接;
    • 数据依赖规则:每个receiver port(RPOS)必须有且仅有一个provider port(PPOS)提供数据,否则会触发编译错误;
    • 工作注意事项:链接配置繁杂,需耐心核对,避免因链路错误导致系统功能失效。
  2. 工程实例演示
    • 实例工程:以TC397 MCU的工程为例,演示Composition的完整构建流程;
    • 工具准备:需等待工程工具完全加载(避免因加载不完整导致配置异常)。
  3. 模块引用关系
    • 核心模块:需重点关注CDD模块(复杂设备驱动)与IO硬件抽象模块;
    • 建立原则:根据MCU硬件状态与资源(如引脚、外设)正确创建模块,确保硬件与软件适配;
    • 引用验证:必须完成模块间的正确引用,才能进入后续映射阶段。
  4. 后续工作流程
    • 映射阶段:将创建的Composition与System中的元素(如ECU、总线)进行相互映射;
    • 学习安排:详细映射流程将在后续课程(如第21章)展开。
  5. ASW层概念补充
    • 层级结构:ASW层存在多级架构概念(如SWC、Composition、System Level);
    • 后续讲解:不同层级的具体含义与区别将在后续课程中深入说明。

三、知识小结

知识点核心内容关键操作/配置项关联概念
ASW层设计流程定义数据类型→设计接口→创建SWC→构建CompositionData Type定义、Interface配置、SWC原型设计、Composition组件链接BSW层支持、RTE数据交互
数据类型分类Application/Implementation/Base Data Types + Mapping SetsADT物理语义映射、IDT代码级定义、Base Type原生类型匹配、Mapping Sets关联Compute Method线性变换
接口类型Sender-Receiver/Client-Server/Parameter等6类接口VDP变量声明、Mode Switch模式关联、接口原型复用、PP/RP端口命名RTE服务请求抽象、BSWM模式管理
SWC设计应用/复杂驱动/ECU抽象等7类组件Port配置、Runnable实体创建、IRV变量读写映射、事件类型匹配功能安全颗粒度、多核部署
Composition构建组件连接与系统架构集成Auto-config自动链接、Assembly Connector手动校验、Composition Overview状态检查系统级功能集成、跨ECU交互
工具链操作ARXML数据字典编辑 + Composition可视化配置AR Explorer工程查看、Auto Generate ASW自动生成、Problems面板错误排查System Mapping映射、DBC信号导入
设计准则功能抽象/多核部署/信息安全三重约束SWC颗粒度控制、接口复用规划、安全相关组件隔离、核心功能优先级分配自下而上开发方法论、ISO 26262合规
自动化生成从System Description导入生成基础元素(接口、SWC、Composition)Auto-generate ASW触发、DBC信号映射、Component接口挂载、VCU Composition自动创建服务模块集成、硬件资源适配
http://www.dtcms.com/a/473581.html

相关文章:

  • One Commander(文件管理器) 中文绿色版
  • 标签之超文本链接(本文为个人学习笔记,内容整理自哔哩哔哩UP主【非学者勿扰】的公开课程。 > 所有知识点归属原作者,仅作非商业用途分享)
  • 北京专业做网站怎么样灵璧做网站
  • 离线下载transformer
  • Wireshark过滤器语法详细指南及相关知识点
  • 把工艺内容做成向量数据库供llm调用
  • MIT 6.S081课程笔记0——关于课程
  • 前端梳理体系从常问问题去完善-网络篇
  • 常平网站wordpress精简优化
  • TensorFlow2 Python深度学习 - TensorFlow2框架入门 - 使用Keras实现逻辑回归
  • 网站公司制作公司网站如何宣传推广
  • Tensorflow循环神经网络RNN
  • python如何控制鼠标移动到某坐标位置
  • 单片机中经常定义的结构体解读
  • 基于Jetson+GMSL AI相机的工业高动态视觉感知方案
  • 海口房地产网站建设新公司注册取名
  • WebSocket —— 在线聊天室
  • 我的高清手机大屏
  • MySQL(三) - 表中数据增删改操作
  • [嵌入式系统-101]:AIoT(人工智能物联网)开发板
  • 成都装修网站制作免费一键网站
  • 2025版spring security认证授权详解篇【经典】
  • 第五十五章 ESP32S3 基于MQTT协议连接OneNet物联网开放平台
  • MySQL可重复读的级别下,幻读本质问题
  • MaixCam二维云台检测人脸项目
  • 无线收发系统结构
  • 做网站的工作是什么开发公司官网
  • Node.js 与 MongoDB:高效的数据管理解决方案
  • 网络层:从 IP 协议到路由转发
  • 做网站办什么营业执照nginx wordpress 伪静态