结构
SWC
一般位于Application Layer,应用层,称为ASW
由xml文件来描述(arxml)
独立于ECU(除了传感器和执行器SWC以外)
RTE
是SWC与BSW之间的接口,本质上:
- RTE控制了runnable代码的执行(Task Mapping)
- RTE控制了runnable对BSW模块的访问(Data Mapping,Memory Mapping)
- RTE控制了runnable对BSW服务的访问(Service Mapping)
- RTE知道外部和内部的数据传送并保证数据的一致性
BSW
按结构分:
- Service Layer,服务层
- ECU Abstraction Layer,ECU抽象层,把整个ECU的硬件资源进行抽象
- Microcontroller Abstraction Layer,MCAL,微控制器抽象层
- MC:MCU驱动,Gpt驱动,Wdg驱动
- Com:SPI,LIN,CAN,EHT,FlexRay
- Mem:Fls驱动(内部),Eep驱动(内部)
- Io:PORT,DIO,ADC,PWM,ICU,OCU
按组件功能分:
- system 系统
- communication 通信
- memory 内存
- io 输入输出
- complex device driver 复杂设备驱动
按类型分:
- 驱动模块,Driver
- 内部驱动,属于MCAL,针对单片机内部器件资源的驱动程序
- 外部驱动,位于ECU AL,针对外部器件,如外部EEPROM、外部看门狗等
- 例外:对于和内存映射相关的外部器件(如外部Flash),其驱动程序是可以直接对微控制器进行存取访问的,属于MCAL
- 接口模块,Interface
- 提供一个通用的接口函数(API)来访问一种特定的器件类型
- 一般属于ECU AL
- 处理模块
- 处理模块通常会并入驱动程序或是接口模块中
- 控制一个或多个客户端对一个或多个驱动程序进行并行、多重以及异步地访问
- 管理器,Manager,Management
- 当单纯的处理程序不能满足对多重的客户端进行抽象时,就需要用到管理器来进行处理
- 一般位于Service Layer
方法学
-
如果SWC1和SWC2在同一个ECU上,则通过RTE通信(虚拟的内部调用)
-
如果SWC1和SWC3在不同的ECU上,则先通过RTE,RTE再向BSW的Com Stack请求,再通过物理的总线通信(实际的真实网络)