1.架构的定义
汽车领域谈论的架构一词,来源于英文单词Architecture。在《系统架构:复杂系统的产品设计与开发》一书中对架构的定义如下:系统架构是一种概念的具象化,是物理或信息功能到形式元素的分配,是系统之内的元素之间的关系与周边环境关系的一定定义。而IEEE(Institute of Electrical and Electronics Engineers,电器电子工程师学会)对于架构的定义如下:架构是一个系统在其组件层面的基本组织结构表现,包括系统内部组件之间的关系,组件与外部的关系以及决定其设计和演进的原则。
电子电气架构这个词包含二个部分:电子电气和架构。电子电气指车上所有电子电气部件构成的电子电气系统,它限定了架构一词的范围。结合架构一词的含义,电子电气架构指的是车上电子电气系统中各种组件之间的结构(关系),以及系统之内的组件与周边环境所构成的结构,还包含了设计这些组件乃至整个系统的原则和系统的演进原则。电子电子架构的最终输出物如下图1。
图 1
2.电子电气架构的4个子架构
从技术层面分解电子电气架构可以有多种方式,不同的分层方式反映了不同的关注点。在如下图2所示的架构分层中,将电子电气架构分为4个子架构:功能架构,电气架构,网络架构和软件架构。
图 2
2.1网络架构
网络架构是汽车上网络系统的架构,是最宏观且最直观的电子电气架构表现形式。网络系统是电子电气系统的子系统,它描述了网络组件及其总体结构,并定义了各种网络设备的连接原则。网络拓扑图是对网络架构中网络组件及其结构关系的一种静态,简单的呈现方式,网络拓扑不等于网络架构。以下是从静态(物理)和动态(逻辑)两个视图进行描述,每个视图又可以分别从宏观和微观的维度进行剖析,如下表1:
表 1
2.1.1网络拓扑
网络拓扑可以表示网络中各个节点的连接形式。网络拓扑中的每个ECU(Electronic Control Unit,电子控制器单元)节点都是这个电子电气系统的重要组件。正是这些连接在网络中的组件连接起了所有的功能组件--传感器和执行器。并且所有的逻辑功能控制都是由这些ECU节点来承载并实现的。
网络拓扑是网络架构的一个静态视图。它描述了电子电气系统中各个ECU之间的网络通信关系,即网络结构。在网络通信技术应用到汽车中后,已经极少有功能是单一的控制器独立实现的,每个控制器都要从其他的控制器中获取某些信息,从而使整车的各个控制器通过网络连接到一起,并让各个功能之间有了逻辑关系,让智能化在一定程度上得以实现。网络拓扑的基本结构如下6种,如图3:
图 3
2.1.2网络协议与规范
网络协议是一组确定数据如何在同一网络中的不同设备之间传输的规则。它允许连接设备之间相互通信,而不管它们的内部流程,结构或设计有什么不同。网络协议通常由各种网络或信息技术组织根据行业标准制定。OSI(Open System Interconnection,开放式系统互联)模型是最常见的用来定义协议层级的模型,汽车通信中的CAN,LIN,以太网等通信总线的协议基本上按照这个模型进行逐层定义的,如下图4所示OSI 7层模型定义:
图 4
(1)物理层 物理层(Physical Layer)是OSI模型的第一层。该层是整个网络通信的基础,定义了通信信号传输的物理介质类型和相关参数,包括电平、速率、频率等。介质类型包括双绞线、光纤、屏蔽电缆和无线信号等。物理层的主要功能是为数据端设备提供传送数据的通路。
(2)数据链路层 数据链路层(Data Link Layer)控制网络层与物理层之间的通信,主要功能是保证在不可靠的物理线路上进行可靠的数据传输。为了保证传输可靠性,从网络层接收到的数据被分割成待定的可物理层传输的帧(Frame)。帧是用来移动数据的结构包,不仅包括原始数据,还包括发送方和接受方的网络地址以及纠错和控制信息。
(3)网络层 网络层(Network Layer)为传输层提供服务,将传送的数据进行打包或分组。该层的主要作用是使数据包通过节点传送,即通过路径选择算法,将数据包送到目的地。另外,为避免通信子网中出现过多的数据包而造成网络阻塞,需要控制流入的数据包数量,即流控(Flow Control)。(4)传输层 传输层(Transport Layer)负责节点之间的数据传输和控制,建立端到端的连接,其作用是为上层协议提供可靠和透明的数据传输服务,包括处理差错控
制和流量控制等问题。传输层向高层屏蔽了低层数据通信的细节,高层用户看到的只是在两个传输实体之间的一条端到端的、可由用户控制和设定的、可靠的数据通路。传输协议同时进行流量控制或基于接收方可接收数据的快慢程度规定发送速率。传输层是OSI中承上启下的一层,下面三层面向网络,确保信息准确传输;上面三层面向用户主机,为用户提供各种服务。传输层与使用的网络类型无关。
(5)会话层 会话层(Session Layer)的任务是组织和同步在两个通信节点之间的会话,包括建立管理和终止表示层实体之间的通信会话。
(6)表示层 表示层(Presentation Layer)主要用于处理在两个通信系统中交互信息的表示方式,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。表示层包括数据的编码、格式变换、数据加密与解密、数据压缩与恢复等功能。
(7)应用层 应用层(Application Layer)是OSI的顶层,为OSI模型以外的应用程序提供服务。应用层中包含大量的、人们普遍需要的协议。该层提供的服务包括文件传输、文件管理以及电子邮件的信息处理。
在汽车的通信网络中,每一种总线都有相应的协议和规范,这些规范大多参考OSI模型,对从物理层到应用层的每一层都进行详细的规定。然而,并不是每一种总线都需要完整定义7层协议,如CAN总线标准仅采用OSI模型最下面的两层,即物理层和数据链路层,应用层的功能完全由使用者自行确定。
2.2电气架构
电气架构是汽车上电气系统的架构。电气系统物理视图中的组件包括车上的所有用电设备,以及存储,传输电能和电气信号的所有部件,如各种ECU,传感器,执行器,线束,保险丝和电池等。
电气系统的组件包括电能管理,能量分配等。电能管理负责管理车辆的电能使用状态,包括电源挡位的切换,蓄电池充放电管理和状态监控,混动与纯电车直流电压转换的控制等。混动与纯电车的动力电池管理在理论上应该也归到电能管理中,但是目前车企还是将其视为动力系统的一部分,从而划分到单独的部门进行管理。
2.2.1电气架构的物理视图
(1)电气拓扑图 电气拓扑图概要描述了整车电子部件的位置,线束走向(线束拓扑)和线束的连接关系。在某些车企的设计中,电气拓扑图是整车线束原理图的一部分。
(2)线束原理图 线束原理图详细描述了整车所有电子部件的连接关系,以及相应线缆的参数,是整车电气设计中最重要的输出物,是线束设计的重要依据。如下图5是线束原理图示例:
图 5
注意:网络拓扑与电气架构设计息息相关,从某种程度上说,网络拓扑是电气架构物理视图的一部分。
(3)电源分配图 电源分配图描述了整车用电设备的电源供给关系,主要体现了从发电或电能储备设备(蓄电池)经过保险丝盒到各个用电器的电源线,地线(GND)的连接关系,如下图6:
图 6
2.3功能架构
功能指实现特定的目标或得到特定的输出结果而需要完成的活动或动作。在汽车中,有些功能是通过物理硬件直接实现的,如悬架系统实现了对车身的支撑。在EEA中,大多数功能是依靠软件实现的,属于逻辑层面,因而被称为逻辑功能(Logical Function,LF)。由众多逻辑功能组成的系统被称为逻辑子系统,逻辑子系统是电子电气系统的子系统,是有逻辑视图的组件-逻辑功能所组成的系统。功能架构是逻辑子系统的架构,也叫逻辑架构。
逻辑子系统的组件是逻辑功能,功能架构体现的是逻辑子系统内的基本结构和逻辑功能之间的关系,以及逻辑功能与周边环境的关系,包括逻辑子系统设计和演进的原则,如下图7所示。
图 7
功能架构设计要完成整个电子电气系统的逻辑子系统的架构设计,其主要内容是定义每个电子电气架构中的逻辑控制功能,包括传感器,控制(处理)功能和执行器之间的依赖关系。功能架构中的逻辑功能组成的网络在不同的设计工具中呈现的形式不同,但是基本类似如下图8的功能架构,每一个块(Block)代表一个逻辑功能,每一个逻辑功能都是一个独立的功能,逻辑功能的端口之间通过信号连接起来,形成一个功能网络,这个“网络”可以实现比任何单一逻辑功能都复杂的功能。
图 8
2.4软件架构
2.4.1软件架构的定义
软件架构一词先于电子电气架构产生,对于任何一个软件系统来说,在编码之前,首先要完成的是内部结构和组件之间的关系,设计准则的规划。卡耐基梅隆大学软件工程学院对软件架构的定义是,一个系统的软件架构代表了与整个系统结构和行为相关的设计决策。
在软件架构的设计中,首先要进行软件架构风格的选择。不同的架构风格需要匹配不同的软件架构,如果架构中的通信总线形式是以太网且中心节点的主要芯片均为SoC,那么面向服务的架构(SOA)就是一个不错的选择。如果还是以MCU作为主控芯片或者采用以CAN总线为主的通信形式,SOA就无法成为备选项。软件架构的主要工作是将功能架构中定义的逻辑功能转换为对应用软件更细化的需求和相应的规范,并将这些需求和设计以某种形式分发给ECU供应商。在与供应商的数据进行交换的过程中,最为普遍的形式有两种:文档和AUTOSAR规定的ARXML格式。
2.4.2软件架构的风格
2.4.2.1分层架构
分层架构(Layered Architecture)也称为N层架构,通常分层架构分为4层:表示层(Presentation Layer),业务层(Business Layer),持久层(Persitence Layer)和数据库层(Database Layer)。每一层都是具体工作的高度抽象,有特定的角色和职能,用于实现某种特定的业务请求。分层架构的一个重要特性就是关注分离,每层组件只负责本层的逻辑,这样的划分让组件的功能更容易开发,测试,管理和维护。如下图9所示。
图 9
分层架构使用于以下场景或团队:
- 需要快速开发应用程序
- 应用程序需要具有严格的可维护性和可测试性的标准
- 企业有传统的组织架构基础和流程
- 缺乏经验和对架构模式了解有限的团队
2.4.2.2事件驱动架构
事件驱动架构是目前流行的分布式异步架构,用于创建可伸缩的应用程序,该模式适用于从小型到复杂的应用程序。它由高度解耦的,单一目的的事件处理组件组成,其主要思想是异步交付和处理事件。这是一种敏捷且高性能的软件架构模式,围绕所有事件的产生,检测和消费以及他们引发的响应来协调行为,安卓系统就采用了此种架构模式。其如下图10所示:
图 10
2.4.2.3微内核架构
微内核架构包含一个核心系统和多个插件模块。核心系统用最少的功能来保证系统的正常运作,插件模块作为独立的组件负责特别任务的处理。如下图11所示:
图 11
核心系统可以定义为通用业务逻辑,而不需要针对特殊情况,特殊规则或复杂条件流程进行代码的定制化。插件模块负责提升核心系统的功能,从而支持额外的业务能力。以任务调度应用为例,微内核包含了所有的任务调度和触发逻辑,而插件模块则包含了各种特殊的任务。
2.4.2.4面向服务架构
面向服务是一种范式,面向服务架构是一种通过应用面向服务而产生的架构类型。在SOA中,应用程序组件通过网络通信协议为其他组件提供基于标准化接口的服务。服务是一个独立的功能单元,可以被远程访问,独立操作和更新,具有高内聚低耦合的特点,有助于软件复用。由于服务的接口标准化,SOA中的业务层应用程序可以使用多个不同的服务构建。
SOA有8条基本设计原则:
- 标准化服务契约
- 服务松耦合
- 服务抽象
- 服务可重用性
- 服务自治
- 服务无状态
- 服务可发现性
- 服务可组合性
SOA在汽车电子电气架构中的实现框架如下图12所示:
图 12
在SOA架构中,整车层级的应用功能实现可以使用不同的服务组合,每个服务又可以被多个应用功能所使用,在增加新功能时,甚至不需要增加新的服务或者仅增加少量服务就可以快速部署。而且,当不同的服务可以互操作时,车企可以避免被单一供应商绑定,可以自己实现服务的增加,更新和修改,且无须修改底层软件组件和服务。