AUTOSAR的基础软件和功能
AUTOSAR(Automotive Open System Architecture)是一个开放且标准化的软件架构,旨在为汽车电子控制单元(ECU)创建一个可复用和模块化的软件基础。AUTOSAR的基础软件(Basic Software, BSW)层和功能性质的组件(Functional Clusters)的定义是其核心内容之一。其中,基础软件是位于应用层和硬件之间的一层,提供了各种基本服务。
以下是AUTOSAR基础软件和其功能的一些主要组件:
- 操作系统(OS):
提供实时任务调度和管理、任务同步和通信、错误处理等功能。
典型地基于OSEK/VDX标准。
2. 微控制器抽象层(MCAL):
直接与硬件相关,实现硬件抽象,以便让上层软件无需关心具体硬件实现。
包含驱动程序,如ADC驱动、GPIO驱动、PWM驱动等。
3. 服务层(Service Layer):
提供通用服务,包括存储管理(如EEPROM管理),时间管理,诊断服务,通信服务(如CAN通信栈)等。
如COM模块用于处理不同ECU之间的数据交换。
4. ECU抽象层(ECUAL):
提供对MCAL硬件驱动程序的进一步抽象,使得不同微控制器之间的代码复用更加容易。
包含内存抽象、网络硬件抽象和I/O硬件抽象等。
5. 复用层(RTE, Runtime Environment):
处于应用层和基础软件层之间,负责实现应用软件组件之间以及应用与基础软件之间的通信。
使用虚拟功能总线(VFB)实现组件间的独立通信。
6. 诊断(Diagnostics):
提供故障检测、诊断和报告功能。
包含UDS(Unified Diagnostic Services)和DTC(Diagnostic Trouble Codes)等模块。
7. 通信(Communication):
支持不同通信协议,如CAN、LIN、FlexRay及以太网。
包含PDU路由、网络管理、传输协议等。
8. 存储器服务(Memory Services):
管理EEPROM、闪存等非易失性存储器的读写操作和数据存储。
AUTOSAR基础软件的层级设计和模块化,使得汽车电子软件开发更加系统化和标准化,有助于提升软件的复用性、可靠性和开发效率。
下面将从不同层级和模块的具体功能和应用来进行详细阐述。
微控制器抽象层(MCAL)
微控制器抽象层直接与ECU的硬件进行交互,提供硬件独立性,主要包括以下组件:
Analog/Digital Converter (ADC) Driver
用于控制和管理模拟信号的采集和数字化。
提供配置和启动ADC转换功能。
Digital I/O Driver
管理通用输入输出端口(GPIO)的状态和模式设置。
包含端口的初始化和端口管理功能。
PWM Driver
管理和控制脉宽调制信号的生成。
支持多个通道的PWM信号输出,用于执行器的精确控制。
Watchdog Driver
硬件看门狗模块,用于系统的自我监控和复位功能。
提供看门狗定时器的初始化、启动和刷新功能。
ECU抽象层(ECUAL)
ECU抽象层将MCAL模块进行进一步抽象,提供更高层次的硬件管理:
EEPROM Abstraction
管理非易失性存储器的读写操作。
实现对EEPROM的抽象,使上层应用无需关心具体存储硬件的细节。
Flash Memory Abstraction
管理闪存的读写和擦除操作。
提供API用于上层软件对闪存的访问。
I/O Hardware Abstraction
管理输入输出硬件,包括传感器和执行器等。
包含对信号的采集和处理功能。
服务层(Service Layer)
服务层提供一系列RFC(Request For Comment)和AUTOSAR标准定义的服务:
Communication Services
包含CAN、LIN、FlexRay、Ethernet等通信协议栈。
管理不同通信协议的帧和信号传输。
Diagnostic Services
提供统一诊断服务(UDS)的支持。
包含故障代码(DTC)管理和诊断请求/应答处理。
Memory Services
提供非易失存储器的管理,实现数据的安全存储和访问。
提供存储块的分配和释放功能。
Time Services
提供系统的时间管理服务,包括定时器功能。
支持定时任务调度和定时事件的触发。
通信管理(Communication Management)
通信管理包含网络通信和车内总线系统管理:
PDU Router
负责不同总线和通信协议间的数据单元(PDU)的路由。
支持跨网络的数据传输和翻译。
Network Management (NM)
负责汽车网络的拓扑管理和节点状态管理。
实现网络的唤醒和休眠机制,降低功耗。
Transport Protocol (TP)
管理数据包的分片和重组,保证大数据块的传输可靠性。
支持ISO-TP、CAN-TP等多种传输协议。
运行时环境(RTE, Runtime Environment)
运行时环境是AUTOSAR架构的核心部分,负责应用软件组件之间以及应用与BSW之间的通信:
Component Communication
实现组件内部的接口调用和数据交换。
提供传输和存储实际信号数据的功能。
Inter-ECU Communication
管理不同ECU之间的数据通信,确保数据的一致性和可靠性。
实现跨节点通信的处理。
诊断管理(Diagnostics Management)
诊断管理模块确保系统的故障检测和恢复能力:
Diagnostic Event Manager (DEM)
管理故障事件的记录和报告。
提供DTC的状态管理。
Fault Memory
存储和管理故障信息,包括经过时间和故障码等。
实现故障信息的持久化存储。
AUTOSAR基础软件架构通过模块化、分层设计和标准化接口极大地提升了汽车电子软件开发的灵活性和复用性。不同层级和模块各自负责特定功能,通过协调合作实现ECU系统的可靠运行和高效开发。