您的位置:

AUTOSAR 从入门到精通

一、什么是AUTOSAR?

AUTOSAR(Automotive Open System Architecture),是一种针对汽车电子系统设计的架构,是由汽车业界的主要厂商和供应商共同创建的一种标准化的软件平台,以协调汽车行业的需求。

AUTOSAR的目的是提供一个标准化的软件体系结构,支持汽车电子系统各个方面的软硬件开发和生命周期管理。该架构包含以下组件:

  • 应用程序接口 (APIs)
  • 运行时环境 (RTE)
  • 操作系统 (OS)
  • 通信协议栈 (Com)
  • 诊断协议 (Diagnostics)
  • 存储设备接口 (FEE)
  • 复位管理 (DEM)
  • 控制单元模块 (CDD)
  • 硬件抽象层 (HAL)
  • 等等

这些组件协同工作,构成了功能丰富的汽车电子系统。AUTOSAR能够提高开发效率、降低开发成本和风险、同时保证系统的安全性和可靠性。

二、AUTOSAR的开发流程

在AUTOSAR的开发流程中,系统工程师和软件工程师会在各自的环节中参与。系统工程师使用AUTOSAR建立电子控制单元 (ECU)的概念和需求,并在系统水平上将它们组合为各个应用程序。软件工程师使用AUTOSAR来实现这些应用程序,为完成硬件和软件的集成而创建软件组件、驱动程序和软件模型。

下图展示了AUTOSAR的开发流程:

![AUTOSAR开发流程](https://i.imgur.com/cVsp3Qn.png)

三、AUTOSAR软件架构的关键组件

1.应用程序接口 (APIs)

AUTOSAR应用程序接口是应用软件与其他软件组件之间的接口。它定义了应用程序如何使用底层可重用软件组件。API由一组标准化的接口定义,有助于提高系统的可维护性、可遵循性和可升级性。

下面是一个示例API定义:

/* Sender application */
void Com_SendSignal(uint8 SignalId, const void *SignalDataPtr);

/* Receiver application */
void Com_ReceiveSignal(uint8 SignalId, void *SignalDataPtr);

2.运行时环境 (RTE)

AUTOSAR运行时环境是由AUTOSAR软件组件间的通信所使用的一组服务。这些服务包括端口接收服务、端口发送服务、组件之间管理服务等。运行时环境在系统配置时自动生成,并为底层软件组件提供标准接口。它也可以相互适应,并且利用AUTOSAR定义的协议提供了可靠的数据通信和以模块为基础的集成运行时环境。

下面是一个示例RTE配置文件:

/* Configuration of port ComSignal1 */
{
   portComSignal1 =
   {
      dataElement = Data1;
      isQueued = false;
      sentTimeout = 1000ms;
      receiveTimeout = 1000ms
   };
};

3.操作系统 (OS)

AUTOSAR操作系统提供了可重用的高级驱动程序和操作系统服务,如任务管理、事件管理、定时器、内存管理、中断和异常管理等。操作系统还提供了许多标准的接口和函数,允许开发者自由组装和设计操作系统功能,以支持更复杂的应用程序。

下面是一个示例操作系统配置文件:

/* Configuration of OS Task */
{
   Task1 =
   {
      ScheduleTableRef = ScheduleTable1;
      ExecutionTime = 100ms;
      CycleTime = 500ms;
      OffsetTime = 0ms;
      Priority = 1;
   };
};

4.通信协议栈 (Com)

AUTOSAR通信协议栈包含了许多抽象层和接口,包括物理驱动层、网络层、传输层、应用程序层等。这些层次结构的组合和嵌套提供了各种各样的功能特性,以满足多种网络传输协议的需求。

下面是一个示例通信协议栈配置:

/* Configuration of Com */
{
   ComConfig =
   {
      Signal =
      {
         ComSignal1 =
         {
            PduId = Pdu1;
            Com_PduSignalInitValueRef = SignalValue1;
         };
      };
      Pdu =
      {
         Pdu1 =
         {
            ComIPduSignalProcessing = IMMEDIATE;
            ComIPduSignalProcessing = DEFERRED;
         };
      };
      ComIPdu =
      {
         Pdu1 =
         {
            ComIPduDirection = SEND_RECEIVE;
         };
      };
   };
};

5.诊断协议 (Diagnostics)

AUTOSAR诊断协议支持汽车诊断监测、故障指示和车辆状态信息传递。AUTOSAR诊断架构定义了一组协议、接口和数据结构,使每个ECU都可以为汽车提供安全、可靠、高效地服务。

下面是一个示例诊断报文:

/* Diagnostic message format */
Header (DTC, Function Identifier, Variant Identifier)
Diagnostics Data (Free Format)
Fault Of Event Data (Data Size, Format Identifier, Data)

四、AUTOSAR的应用场景

AUTOSAR的应用场景包括:

  • 电动汽车和混合动力汽车所需的高端驱动控制
  • 车辆动态控制系统,如自动刹车和改进的稳定性控制
  • 车辆感知技术,如全景摄像头和智能交通灯控制
  • 技术特性,如车辆重要部件和计算机高速通信,以及操作和控制电力系统
  • 高级功能,如信息娱乐系统、语音识别和GPS

五、小结

本文对AUTOSAR从入门到精通进行了阐述,包括AUTOSAR的定义和目的、AUTOSAR开发流程、AUTOSAR软件架构的关键组件、以及AUTOSAR的应用场景。