AUTOSAR是AUTomotive Open System ARchitecture的缩写,它是一个具有标准规格的分层架构,由宝马集团、博世、大陆、戴姆勒、福特、通用汽车、PSA集团、丰田和大众等公司组成的联盟创立。一个实体可以通过不同类型的会员资格为AUTOSAR的发展做出贡献,这些会员是核心会员、高级会员和开发会员。在上面列出了核心成员,但还有许多高级成员,他们从事工具开发、服务提供商等。AUTOSAR的目标是对汽车应用中使用的ECU的软件开发进行标准化。AUTOSAR实施了一个类似于OSI模型的分层架构。它有不同的层次来处理和抽象代码的不同操作。AUTOSAR用于微控制器,其目标应用主要是在汽车领域,利用CAN、Flex Ray、以太网等。在基于微控制器的应用中,由于微控制器有资源限制,它的开发目的是尽可能使用最少的内存。AUTOSAR这种分层架构组要分为以下几层:应用层:这一层在顶部的应用程序代码。它可以有不同的应用模块,称为软件组件(SWC),用于ECU根据应用需要支持的每个功能。例如,像电动窗和温度测量的功能将有单独的SWC。这不是一个标准,但它取决于设计者。AUTOSAR RTE:这是AUTOSAR的重要层之一,它提供了不同SWC之间以及ECU之间的通信。应用层使用该层,同时使用端口与下面的其他层进行通信。关服务层:这一层提供不同的服务供应用程序使用。服务包括:系统服务、内存服务、加密服务、板外通信服务、通信服务。ECU抽象层:该层提供与ECU相关的抽象。它包含不同的抽象层,如I/O硬件抽象层,板上设备抽象,内存硬件抽象,加密硬件抽象等,以使应用程序独立于硬件。微控制器抽象层(MCAL):这是微控制器抽象层,它有驱动程序,上述各层与微控制器硬件外围设备进行通信。为什么会有AUTOSAR架构?以下是为ECU编写软件的传统方法所面临的问题。嵌入式系统是一个广阔的领域,有许多半导体制造商、硬件和软件平台,可以根据应用要求进行选择。由于这种多样性,开发工作是艰难的,代码的可移植性是困难的,这进一步增加了开发成本。汽车是一个复杂的机器,由N个小的嵌入式系统组成,称为电子控制单元(ECU),因此为这些控制器维护和开发代码并不容易。如果不同的ECU使用不同的MCU来满足成本要求,那么每个ECU将有不同的软件,因为硬件平台是不同的,这就进一步增加了复杂性。为了使事情部分标准化,有时还需要开发并遵循定制的标准(定制标准是指开发一个网络中所有ECU都同意的通信协议)来与其他ECU通信。这是编写软件的传统方式,很难维护,而且代码的可移植性或重复使用能力也很低。一辆汽车有N个零件,这些零件由不同的公司生产,这些公司被称为一级公司,它们向宝马、大众等OEM厂商提供零件。今天,几乎所有的机械部件都通过添加ECU而变得智能化,以提高控制和效率。因此,这些ECU也需要有一个共同的通信方式来与OEM的ECU进行通信,为此,需要实施和维护一个定制的标准。因此,需要一个标准化的软件开发基础设施来解决这些问题,AUTOSAR很好地解决了这个问题。AUTOSAR采用分层结构,不同的层专门用于执行不同的操作和抽象。应用程序代码是完全可移植的,因为AUTOSAR的设计方式是,应用程序代码的编写与硬件无关,因此相同的应用程序代码可以在不同的硬件平台上运行。AUTOSAR有一个专门支持硬件功能的层,称为MCAL(微控制器抽象)层,它有访问MCU的底层硬件外设的驱动程序。由于AUTOSAR提供了标准的通信方式,无论ECU开发商(无论是OEM还是Tier1),ECU都可以相互通信,因此,没有必要维持自定义的通信标准。利用AUTOSAR的ECU可以相互通信,而不考虑硬件的基本差异。大多数芯片制造商提供AUTOSAR的MCAL层,但如果他们不提供,那么开发人员需要编写自己的MCAL层或外包给提供此类服务的公司。由于AUTOSAR已经实现了所有的驱动程序和层,这不是一种限制吗?事实上,这不是一个限制,因为在今天这个快节奏的世界里,项目的完成有严格的期限要求。但考虑到传统软件设计中的上述共同问题,它不可能快速开发软件以满足需求,所以AUTOSAR是有用的。虽然AUTOSAR似乎已经实现了一切,但必须在SWC的Runnable中手动编写SWC功能的代码。如果使用AUTOSAR不支持的外部外围设备,怎么办?如果使用AUTOSAR不支持的设备,那么可以使用复杂设备驱动程序SWC。该层让从应用程序直接访问MCAL层,可以直接将设备与ECU连接起来,但需要自己开发其软件,由于其高度依赖硬件,它不像SWC那样可以重复使用或移植。AUTOSAR的类型。AUTOSAR架构有两种类型,即经典和适应性。经典架构拥有应用程序通常需要的所有模块,而适应性架构可以通过删除不必要的模块,根据应用程序进行配置和调整。建议:阅读和使用AUTOSAR的读者必须具备嵌入式系统、C语言编程、分层结构的知识,以及CAN、I2C等通信协议的知识。AUTOSAR是嵌入式系统的高级阶段,因此读者应具备上述术语的知识。