控制平台是无人车的核心部件,控制着车辆的各种控制系统,包括汽车防抱死制动系统(ABS)、汽车驱动防滑转系统(ASR)、汽车电子稳定程序(ESP)、电子感应制动控制系统(SBC)、电子制动力分配(EBD)、辅助制动系统(BAS)、安全气囊(SRS)和汽车雷达防碰撞系统、电控自动变速器(EAT)、无级变速器(CVT)、巡航控制系统(CCS)、电子控制悬架(ECS)、电控动力转向系统(EPS)等等。
控制平台主要包括了电子控制单元ECU与通信总线两大部分:ECU主要实现控制算法,通信总线主要实现ECU以及机械部件间的通信功能。接下来我们详细介绍一下控制平台。
ECU(Electronic Control Unit)电子控制单元,俗称“车载电脑”。是汽车专用微机控制器,也叫汽车专用电脑。发动机工作时,ECU采集各传感器的信号,进行运算,并将运算的结果转变为控制信号,控制被控对象的工作。
固有程序在发动机工作时,不断地与采集来的各传感器的信号进行比较和计算。把比较和计算的结果控制发动机的点火、怠速、废气再循环等多项参数的控制。它还有故障自诊断和保护功能。
存储器也会不停地记录行驶中的数据,成为ECU的学习程序,为适应驾驶习惯提供最佳的控制状态,这叫自适应程序。在高级轿车上,有不止一只ECU,如防抱死制动系统、四轮驱动系统、电控自动变速器、主动悬架系统、安全气囊系统、多向可调电控座椅等都配置有各自的ECU。
随着轿车电子化自动化的提高,ECU将会日益增多,线路会日益复杂。宝马、奔驰和奥迪三大车厂各系列高阶车款皆已包含超过一百个电子控制单元(ECU)。ECU的电压工作范围一般在6.5-16V(内部关键处有稳压装置)、工作电流在0.015-0.1A、工作温度在-40~80℃, 能承受1000Hz以下的振动,损坏率非常小。
ECU从用途上讲是汽车专用微机控制器,也叫汽车专用单片机。它和普通的单片机一样,由微处理器(CPU)、存储器(ROM、RAM)、输入/输出接口(I/O)、模数转换器(A/D)以及整形、驱动等大规模集成电路组成。
存储器ROM中储存的是一套固定的程序,该程序是经过精确计算和大量实验取的数据为基础。固有程序在发动机工作时,不断地与采集来的各传感器的信号进行比较和计算,然后输出指令,以控制发动机的点火、空燃比、怠速、废气再循环等多项参数的设置,判断是否需要改变的喷油量多少,点火正时是需要提前还是延后,气门开度的大小等 。
详细来说,当发动机启动时,电控单元进入工作状态,某些程序从ROM中取出,进入CPU,这些程序专用于控制点火时刻、控制汽油喷射、控制怠速等等。执行程序中所需的发动机信息,来自各个传感器。
这些传感器信号一经采集首先进入输入回路接受处理,如果是模拟信号,则需先经过A/D转换器转换成数字信号。大多数传感器信息将先暂存在RAM内,然后根据程序处理顺序由从RAM送至CPU。
接下来是将存储器ROM中的参考数据引入CPU,与传感器输入数据进行比较。CPU在完成对这些数据比较运算后,作出决定并发出指令信号,经I/O接口进行放大,必要的信号还经D/A转换器变成模拟信号,最后经输出回路控制执行器动作。
随着轿车电子化自动化的提高,ECU将会日益增多,目前高端汽车在总计100多个ECU系统中包含多达200个微处理器。这数百个ECU,在汽车内部组成了一个区域网。
一个ECU发出的数据包,所有的节点都会接收到,但只有承担该数据包任务的节点,才会去执行命令。举个例子,比如刹车灯。当监控刹车踏板的ECU,监测到踏板行程有变动时,就会通知监测尾灯的ECU。
此时,该ECU控制尾灯,并将其通电点亮。这一个简单的操作,其实背后有至少2个ECU的配合。要让所有的这些ECU之间相互配合,就需要采用一种称为多路复用通信网络协议进行信息传递, 控制器区域网(Controllers Area Network,CAN)总线是其中之一。
借助CAN协议,汽车内部的数百个ECU可以组建一个区域网, 有效地解决线路信息传递所带来的复杂化问题。通用、沃尔沃、特斯拉等车型支持远程控制,其原理就是手机发出的指令先到达伺服器,然后被转发到车载通讯模块。车载通讯模块接收到指令后,再通过CAN总线将指令传达到各个ECU。
为了弥补CAN协议在某些方面的不足,汽车工业还研发出了很多其他协议,比如LIN协议。相比CAN,LIN的带宽要更小,承载的数据量更少,但同时成本也更低,适合应用于一些简单的ECU中,比如车窗升降等。
随著技术进步,汽车内部的数据量暴增。尤其是大萤幕的普及和流媒体技术的介入,让CAN总线在某些时候“力不从心”,已无法胜任工作。于是,更高级的通讯协议问世了,比如MOST、FlexRay、乙太网等。
这些协议标准,拥有更大的带宽与更强的稳定性。其中,MOST是一种高速多媒体传输接口,专门为汽车内部的一些高码率音频、视频提供传输。FlexRay也是一种高速协议,但不仅限于多媒体传输。在自动驾驶的奥迪A7中,位于后备箱的车载CPU(奥迪称之为zFAS)模组,就是依靠FlexRay协议来读取前置摄像头捕捉的数据。
EUC的主要生产厂商包括有博世(BOSCH)、德尔福(DELPHI)、马瑞利(MARELLI)、日立(Hitachi)、大陆(Continental)、日本电装(DENSO)等。
主要产品包括有:博世的M7、M7.9.7、M7.9.7.1、ME7、ME7.9.7、ME7.8.8、EDC16、054K0;德尔福的MT20U2、MT20U、MT20、MR140、MT80、ITMS-6F;日立/电装的69J0、69EB、77J0、3601015A28K;西门子SIM2K-34、SIM2k-51.4、SIM2k-D51、SIMK43等系列。
CPU是ECU中的核心部分,它具有运算与控制的功能,发动机在运行时,它采集各传感器的信号,进行运算,并将运算的结果转变为控制信号,控制被控对象的工作。
它还实行对存储器(ROM、RAM)、输入/输出接口和其他外部电路的控制。Power Train ECU采用的CPU基本来自于Infineon、ST、Freescale。BOSCH的16位ECU M(E)7系列早期主要使用Infineon C167内核的CPU。
之后ST为BOSCH定制了ST10系列CPU,价格上更有优势,因此BOSCH后期的16位ECU都基本上采用ST10系列CPU。BOSCH的32位ECU ME9系列主要使用Freescale的PowerPC内核的CPU MPC55系列。
ME9主要在美国市场上销售的MED17系列则使用Infineon的Tricore内核CPU TC17xx。MED17系列ECU有好多分枝,分别使用不同型号的TC17xx CPU。
MEDC18系列依然沿用PowerPC路线,选择了选择ST和Freescale两家供应商,使用了Freescale的XPC56系列CPU以及ST的SPC56系列CPU。车身ECU的则选择更多,Infineon、ST、Freescale、NEC和瑞萨电子都提供相关CPU的支持。
随着汽车各系统的控制逐步向自动化和智能化转变,汽车电气系统变得日益复杂。为了满足各电子系统的实时性要求,我们须对汽车数据,如发动机转速、车轮转速、节气门踏板位置等信息,实行共享,因而我们需要汽车通信总线。目前,车用总线技术被美国汽车工程师协会SAE下属的汽车网络委员会按照协议特性分为A、B、C、D四类。
LIN是面向汽车低端分布式应用的低成本,低速串行通信总线。它的目标是为现有汽车网络提供辅助功能,在不需要CAN总线的带宽和多功能的场合使用,降低成本。
LIN相对于CAN的成本节省主要是由于采用单线传输、硅片中硬件或软件的低实现成本和无需在从属节点中使用石英或陶瓷谐振器。
这些优点是以较低的带宽和受局限的单宿主总线访问方法为代价的。LIN采用单个主控制器多个从设备的模式,在主从设备之间只需要1根电压为12伏的信号线。这种主要面向“传感器/执行器控制”的低速网络,其最高传输速率可达20Kb/S,主要应用于电动门窗、座椅调节、灯光照明等控制。
典型的LIN网络的节点数可以达到12个。以门窗控制为例,在车门上有门锁、车窗玻璃开关、车窗升降电机、操作按钮等,只需要1个LIN网络就可以把它们连为一体。而通过CAN网关,LIN网络还可以和汽车其他系统进行信息交换,实现更丰富的功能。
LIN包含一个宿主节点(Master)和一个或多个从属节点(Slave)。所有节点都包含一个被分解为发送和接收任务的从属通讯任务,而宿主节点还包含一个附加的宿主发送任务。
在实时LIN中,通讯总是由宿主任务发起的。除了宿主节点的命名之外,LIN网络中的节点不使用有关系统设置的任何信息。我们可以在不要求其它从属节点改变硬件和软件的情况下向LIN中增加节点。
宿主节点发送一个包含同步中断、同步字节和消息识别码的消息报头。从属任务在收到和过滤识别码后被激活并开始消息响应的传输。响应包含两个、四个或八个数据字节和一个检查和(checksum)字节。报头和响应部分组成一个消息帧。
LIN总线上的所有通讯都由主机节点中的主机任务发起,主机任务根据进度表来确定当前的通讯内容,发送相应的帧头,并为报文帧分配帧通道。
总线上的从机节点接收帧头之后,通过解读标识符来确定自己是否应该对当前通讯做出响应、做出何种响应。基于这种报文滤波方式,LIN可实现多种数据传输模式,且一个报文帧可以同时被多个节点接收利用。
图19 LIN总线
在当前的汽车总线网络市场上,占据主导地位的是CAN总线。CAN总线是德国博世公司在20世纪80年代初为了解决现代汽车中众多的控制与测试仪器之间的数据交换问题而开发的一种串行数据通讯协议。
它的短帧数据结构、非破坏性总线性仲裁技术及灵活的通讯方式适应了汽车的实时性和可靠性要求。CAN总线分为高速和低速两种,高速CAN最高速度为1Mbps(C类总线),低速CAN为250Kbps(B类总线)。
图20 CAN总线
CAN总线一般为线型结构,所有节点并联在总线上。当一个节点损坏时,其他节点依然能正常工作。但当总线一处出现短路时,整个总线便无法工作。CAN总线是采用CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)机制。各节点会一直监听总线,发现总线空闲时便开始发送数据。
当多个节点同时发送数据时,会通过一套仲裁机制竞争总线。每个节点会先发送数据的ID,ID越小表示优先级越大,优先级大的会自动覆盖小的ID。当节点发现自己发送的ID被覆盖掉时,就知道有比他优先级更高的消息正在被发送,便自动停止发送。
优先级最高的消息获得总线使用权,开始发送数据。当高优先级的数据包发送完后,各节点便又尝试竞争总线。如此反复下去。这样能最大程度的利用总线。弊端是会有时效延迟,优先级越低的数据包,可能需要等待的时间越长。
从这点上来讲,CAN总线不是一种实时总线。当CAN总线有节点发现当前发送的数据有误时,会发送错误帧告知总线上的所有节点。发送错误数据的节点会重发。每个节点都有一个错误计数器。当一个节点总是发送或接收错误超过一定次数时,会自动退出总线。
FlexRay总线数据收发采取时间触发和事件触发的方式。利用时间触发通信时,网络中的各个节点都预先知道彼此将要进行通信的时间,接收器提前知道报文到达的时间,报文在总线上的时间可以预测出来。
即便行车环境恶劣多变,干扰了系统传输,FlexRay协议也可以确保将信息延迟和抖动降至最低,尽可能保持传输的同步与可预测。这对需要持续及高速性能的应用(如线控刹车、线控转向等)来说,是非常重要的。
图21 FlexRay总线
FlexRay总线用的是TDMA(Time Division Multiple Access)和FTDMA(Flexible Time Division Multiple Access)两种周期通信方法。FlexRay将一个通信周期分为静态部分、动态部分、网络空闲时间。
静态部分使用TDMA方法,每个节点会均匀分配时间片,每个节点只有在属于自己的时间片里面才能发送消息,即使某个节点当前无消息可发,该时间片依然会保留(也就造成了一定的总线资源浪费)。
在动态部分使用FTDMA方法,会轮流问询每个节点有没有消息要发,有就发,没有就跳过。静态部分用于发送需要经常性发送的重要性高的数据,动态部分用于发送使用频率不确定、相对不重要的数据。
当FlexRay总线通信过程中出现数据错误时,该周期里接收到的所有数据都会被丢弃掉,但没有重发机制。所有节点会继续进行下一个周期的通信。FlexRay同样也有错误计数器,当一个节点发送接收错误过多时会被踢出总线。
FlexRay具有高速、可靠及安全的特点。FlexRay在物理上通过两条分开的总线通信,每一条的数据速率是10MBit/s。FlexRay还能够提供很多网络所不具有的可靠性特点。
尤其是FlexRay具备的冗余通信能力可实现通过硬件完全复制网络配置,并进行进度监测。FlexRay同时提供灵活的配置,可支持各种拓扑,如总线、星型和混合拓扑。
FlexRay本身不能确保系统安全,但它具备大量功能,可以支持以安全为导向的系统(如线控系统)的设计。
宝马公司在07款X5系列车型的电子控制减震器系统中首次应用了FlexRay技术。此款车采用基于飞思卡尔的微控制器和恩智浦的收发器,可以监视有关车辆速度、纵向和横向加速度、方向盘角度、车身和轮胎加速度及行驶高度的数据,实现了更好的乘坐舒适性以及驾驶时的安全性和高速响应性,此外还将施加给轮胎的负荷变动以及底盘的振动均减至最小。