模式管理与网络通信管理笔记
一、关于模式的管理
1. AUTOSAR的BSWM
1)模式通知的方式
- 功能定位:BSWM是AUTOSAR BSW层中负责管理各模块状态协调与动作执行的模式管理中心
- 核心机制:
- 信息汇聚:接收来自应用层(ASW)和基础软件层(BSW)的模式信息
- 中心调度:根据模式信息触发预定动作的执行
- 状态管理:按照规则建立ECU各状态模式,统一响应状态改变
- 通知来源:
- RTE层通知:
- 触发源:ASW层的SWC(Software Component)通过Model Declaration Group发起
- 路径:通知经RTE层传递至BSWM模块
- 特点:适用于应用层触发的模式转换
- BSW层直连:
- 触发源:其他BSW层模块(如通信栈、诊断模块等)
- 路径:通过内置服务函数直接通知BSWM
- 特点:适用于底层模块状态变更通知
- RTE层通知:
2)动作执行的方式
- 执行原则:在接收状态转换通知后,协调各模块执行匹配动作
- 服务函数方式:
- 实现途径:
- 调用BSW层预定义的服务接口
- 触发ASW层组件提供的服务函数
- 特点:
- 标准化程度高
- 执行流程固定
- 适用于常规模式切换场景
- 实现途径:
- 回调函数方式:
- 实现机制:
- 允许用户自定义回调函数
- 通过函数指针实现动态绑定
- 优势:
- 灵活性:可自由组织执行逻辑
- 可配置性:在代码生成阶段支持重写
- 扩展性:便于添加特殊处理逻辑
- 应用场景:需要特殊处理或非标准流程的模式转换
- 实现机制:
3)工具操作
- BSWM配置文件夹介绍:
- 创建BSWM模块:
- 模块位置:在model management下创建BSWM模块,位于bsw models专用文件夹内
- 文件管理:建议使用单独的arxml文件保存,因其具有高度复用特性
- 模块结构:包含general和config两大配置选项
- BSWM的general配置:常用功能使能开关
- 关键配置项:
- CAN SM管理:通过SM enable开关控制是否管理CAN SM模块
- 通信功能:需开启rb com enable、dcm enable支持
- 错误检测:develop an error detect功能需启用
- 网络管理:以太网状态管理(internet state manager)必须打开
- 特殊协议:未使用FLEXRAY时应设为FALSE
- GL39协议:仅使用GL39 tp部分时不需开启dcm和nm功能
- 关键配置项:
- BSWM的general配置:主函数运行周期
- 周期设置:
- 重要性:BSWM模块对系统状态响应要求高
- 推荐值:采用1毫秒短周期运行主函数
- 考虑因素:需平衡响应速度与系统负载
- 周期设置:
- BSWM的general配置:debug enable等其它功能
- 调试支持:
- debug enable:辅助调试操作建议开启
- 中断队列:rb interrupt queen max默认设为1
- 可选功能:
- SD模块:未使用service discovery功能时应关闭
- 版本API:veriminfo API根据版本号获取需求决定
- 调试支持:
- BSWM的general配置:回调函数头文件声明
- 回调管理:
- 头文件声明:手写回调函数需在此声明函数原型
- 模式关联:BSWM根据模式调用特定回调函数
- 添加方式:根据实际需求酌情添加引用声明
- 回调管理:
- BSWM的general配置:配置建议
- 优化原则:
- 功能精简:未使用功能应设为FALSE
- 系统简化:减少不必要功能可降低调试工作量
- ECU适配:配置需匹配整个ECU的功能需求
- 优化原则:
- BSWM的config配置:三个配置选项
- 配置结构:
- arbitration:模式判定管理中心
- data type mapping:模式数据映射关系
- mode control:模式相关动作配置
- 配置结构:
- BSWM的config配置:arbitration
- 核心功能:
- 模式仲裁:提供模式判定的依据标准
- 状态管理:作为系统模式管理中心
- 核心功能:
- BSWM的config配置:data type mapping
- 映射关系:
- 参数解析:建立传入数据与模块状态的映射
- 必要性:BSWM需通过映射理解参数含义
- 配置内容:需引用各模块的模式声明
- 映射关系:
- BSWM的config配置:mode control
- 动作配置:
- 模式响应:定义不同模式下执行的动作
- 执行逻辑:基于当前模式触发相应操作
- 动作配置:
- BSWM模块:高度复用
- 设计特性:
- 复用优势:模块设计支持跨项目高度复用
- 配置继承:不建议使用vcu starter新建的BSWM
- 设计特性:
- BSWM模式管理:
- 数据类型映射:
- 映射定义:将模式与数据类型进行映射,例如将枚举量映射成unsigned int 8类型
- 配置位置:在software文件夹下的data types/data type mapping sets中定义
- 应用场景:application data type需要映射时,需在此创建专属映射供BSWM模块使用
- 模式仲裁:
- 组成要素:
- Logical expression(逻辑表达式)
- Mode conditions(模式情形)
- Mode request ports(模式请求接口)
- BSWM rules(BSWM规则)
- 工作流程:
- 模式请求接口收集模式数据
- 模式情形进行初步判断
- 逻辑表达式进行仲裁
- 根据仲裁结果触发相应规则
- 组成要素:
- BSWM模式请求端口配置:
- 数据源类型:
- BSWM自身状态通知
- CAN SM等标准模块状态指示
- 应用层SWC的模式通知
- 自定义模式请求
- 配置选项:
- 处理类型选择(immediate/differed)
- 初始化值定义
- 模式源声明配置
- 数据源类型:
- 条件配置:
- 典型条件类型:
- 启动阶段定义
- 非易失存储定义
- 复位通信控制
- 网络管理
- 判断依据:
- 基于MDG组数据
- 基于DCM等模块通知
- 仲裁准则(等于/不等于)
- 状态声明:可使用MDG组状态或其他BSW模块标准状态
- 典型条件类型:
- 逻辑表达式:
- 功能:将一个或多个conditions进行逻辑运算
- 参数引用:
- 可引用conditions
- 可引用其他逻辑表达式
- 可自引用
- 仲裁网络:形成复杂逻辑关系,最终输出判断结果
- 规则触发:
- 关键配置项:
- 默认规则状态
- 逻辑表达式引用
- 成立/不成立时的动作列表
- 执行机制:根据仲裁结果触发action list中的内容
- 关键配置项:
- BSWM模式控制:
- 动作配置:
- 动作类型:
- 上电初始化
- 模式切换
- RTE定时器启动
- 状态请求
- 功能停止
- 实现方式:
- 使用预设标准动作
- 通过call out函数自定义
- 动作类型:
- 动作序列:
- 组成方式:将多个action按顺序组合
- 注意事项:
- 需注意动作执行顺序
- 确保功能引用正确
- 形成完整的动作链
- 调用方式:由rules中的action list引用触发
- 动作配置:
- 数据类型映射:
- 创建BSWM模块:
二、网络状态管理
- 启动阶段管理
- MOD request port来源:由BSW的MDG模块提供,用于判定当前ECU状态
- 启动状态类型:
- Startup One:默认上电启动状态
- Startup Two:次级启动状态
- 状态判定逻辑:通过逻辑表达式判断Startup One与Startup Two之间的转换关系
- 状态控制器拉起
- BSW MSW动作:
- 通过Action List中的Switch Run动作触发
- 初始化所有通信相关模块
- 网络请求流程:
- BSW模块调用Comm中的网络管理通道
- 拉起控制器状态
- 总线管理器类型:
- KSM(CAN状态管理器)
- LIN SM(LIN状态管理器)
- Ethernet TSM(以太网状态管理器)
- BSW MSW动作:
- 仲裁机制
- 仲裁依据:基于BSW MSW规则集中的逻辑表达式
- 执行过程:
- 引用BSW MSW Switch Run动作
- 通过Action List确定具体执行类型
- 网络管理:
- 按照初始化顺序触发网络请求
- 通过Comm模块协调各总线状态
三、COM构成
- 通道管理机制:在COM的config set中管理CAN和LIN两个通道,将用户使用需求提供给BSW M调用
- 工作流程:BSW M触发动作后通知COM启动网络通道,例如CAN通道的启动管理
- 层级关系:COM作为中间层,向上对接用户需求,向下管理具体通信通道
四、CANSM模块
- 功能定位:专门管理从属的CAN通道,通过CANSM模块实现对MCAL层的控制
- 状态管理:负责将控制器节点切换为start/stop/sleep等状态,完成网络管理使能
- 协同机制:需要与BSW模块协同使用,形成完整的模式管理中心
- 模式管理架构
- 管理维度:
- 通信控制器状态:硬件层面的工作状态
- 通信模式状态:协议栈层面的通信模式
- 网络管理状态:网络唤醒/睡眠状态
- DCM状态:诊断通信管理状态
- 集中管理:所有状态由BSW M统一处理,实现中心化调度
- 管理维度:
- AUTOSAR模式管理
- 决策机制:BSW M汇总各模块模式状态信息,综合决断ECU当前应执行的动作
- 优势特点:
- 统一管理复杂的控制器状态
- 便于未来进行集中动作调度
- 提供标准化的状态转换接口
- 学习建议:需要结合BSW模块整体学习SM LINUX、SM FLEXRAY等模式管理模块
五、知识小结
知识点 | 核心内容 | 关键配置/实现要点 | 模块关联性 |
---|---|---|---|
BSWM模块功能 | 负责BSW层模块间状态管理与动作执行的模式管理中心 | • 汇聚应用层/BSW层模式信息 • 触发预定动作执行 • 实现软件中心调度 | 与RTE/COM/EcuM/NM等模块深度耦合 |
模式通知机制 | 两种触发方式: 1. 通过RTE发起模式转换通知 2. BSW模块直接服务函数通知 | • ASW层SWC通过Mode Declaration Group通知 • 标准模块(如CANSM)通过内置服务函数通知 | RTE作为核心中转层 |
动作执行方式 | 1. 调用服务函数 2. 回调函数机制 | • 回调函数支持代码生成阶段配置重写 • 提供更高灵活性 | 依赖Service Layer接口 |
BSWM配置架构 | 三级配置体系: 1. Arbitration(仲裁) 2. Data Type Mapping 3. Mode Control | • 逻辑表达式实现复杂状态机仲裁 • Action List支持多动作序列化执行 | 需与MDG(Mode Declaration Groups)配合 |
启动流程管理 | 典型状态切换链: Startup One→Startup Two→Run | • 通过Mode Condition判断启动阶段 • 关联网络管理/通信控制初始化 | 与EcuM启动流程协同 |
网络状态管理 | 统一协调通信控制器状态切换: • CAN/LIN状态机管理 • NM状态同步 | • 通过ComM_RequestCom等标准接口控制 • 需配置通道映射关系 | 依赖ComM/CANSM模块 |
开发实践要点 | 1. 周期配置(建议1ms) 2. 按需启用功能模块 3. 回调函数头文件声明 | • 在General配置启用所需模块管理功能 • 通过Callout实现自定义逻辑 | 需考虑代码复用性 |
调试关键项 | 1. 模式仲裁逻辑验证 2. 动作序列完整性检查 3. 状态同步时序 | • 使用Debug Enable配置项 • 重点监控Logical Expressions输出 | 涉及多模块联调 |