1.2.2 硬件层面
硬件平台直接决定了无人驾驶汽车感知环境、计算能力和能量损耗的能力,决定了无人驾驶汽车整体的鲁棒性和安全性。
从以上内容来看,无人驾驶硬件平台主要包括感知平台、计算平台和控制平台。
1.感知平台
感知平台的作用是使用各种传感器检测环境数据,并上传至感知系统,包括激光雷达、超声波雷达、红外线传感器、摄像头、惯导、电机编码器和北斗GPS等。
2.计算平台
计算平台的作用是当硬件传感器接收到环境信息后,数据会被导入计算平台,由不同的芯片进行运算。计算平台的设计直接影响无人驾驶系统的实时性和鲁棒性,包括GPU、DSP、FPGA、ASIC等。
3.控制平台
控制平台的作用是用电信号控制车辆的制动、转向、动力系统,包括电子控制单元(ECU)与通信总线两大部分。其中,ECU主要实现控制算法;通信总线主要实现ECU和机械部件间的通信功能。
1)ECU
(1)简介。
Electronic Control Unit,俗称“车载电脑”,它是一种用于汽车的专用微机控制器,也被称为汽车专用电脑。当发动机工作时,ECU收集每个传感器的信号,执行操作,并将操作结果转化为控制信号,以控制被控对象的工作。
(2)使用场景。
发动机工作时,ECU程序将不断对采集到的传感器信号进行比较和计算,比较和计算的结果将由发动机点火、废气再循环、怠速等控制,具有故障自诊断和故障保护的功能。
在驾驶过程中,存储器不断记录车辆行驶过程中的数据,成为一种ECU学习程序,为适应驾驶习惯提供最优控制,在业界也被称为自适应程序。
高级轿车里有不止一个ECU,为了提高安全系数,高级轿车常用的固化系统分为主动悬架系统、防抱死制动系统、电控自动变速器、四轮驱动系统、安全气囊系统和多向可调电控座椅等,每个系统都配有自己的ECU,可以快速处理车辆收集的数据,并通过计算对车辆系统进行快速控制。
当然,随着汽车越来越轿车电子化、自动化,线路越来越复杂,ECU也会越来越多。以宝马、奔驰、奥迪为例,在各自的高阶车款中,都有超过100款的电子控制单元。ECU通常在16~16.5V的电压范围内工作(关键点有内部稳压装置),工作电流为0.015~0.1A,工作温度为-40~80℃,能承受高达1000Hz的振动,损坏率非常低。
2)通信总线
无人驾驶的最终目的是代替人类进行驾驶,这就导致了无人驾驶技术需要达到非常苛刻的要求。就通信方面,无人驾驶的反应速度需要做到与人一样,甚至更快,这就需要选择一个理想的通信方式,只有在通信上达到实时的状态,无人驾驶汽车才有安全可言,所以接下来的内容将从CAN通信协议、MOST通信协议、FlexRay通信协议和LIN通信协议具体介绍其特点,了解通信协议在无人驾驶上所占有的地位。
(1)CAN通信协议。
借助CAN通信协议,如图1.4所示,很多汽车公司都在车内设置了上百个ECU,形成了一个区域网,有效解决了线路信息传递的复杂化。通用、沃尔沃、特斯拉和其他车型也支持远程控制。远程控制的工作原理是,将手机或计算机发出的指令发送到伺服器,然后将指令转发至车载通信模块,再由通信模块在接收指令时通过CAN总线将指令转发至各个ECU。
图1.4 CAN通信协议
目前,CAN总线在汽车总线网络市场的主导地位依然存在。由于CAN总线技术的成熟,大多数硬件通信协议都是基于CAN总线设计的,采用CAN总线通信可以降低无人驾驶车辆的开发难度。
那么CAN总线通信协议有哪些优势呢?接下来,我们将详细介绍CAN总线通信协议。
CAN总线是德国博世公司在20世纪80年代初开发的一种串行数据通信协议,用于解决现代汽车中许多控制和测试仪器之间的数据交换问题。
它的短帧数据结构、无损总线性仲裁技术和灵活的通信方式符合汽车的实时性和可靠性要求。CAN总线可分为高速和低速,高速CAN总线的最大速度为1Mbps(C级总线),低速CAN总线的最大速度为250kbps(B类总线)。
CAN总线通常是线型结构的,即所有节点与总线并联。因此,当一个节点损坏时,其他节点仍然工作。但是,当总线的一部分发生短路时,总线不能工作。
CAN总线采用的是CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)机制。每个节点都会一直监听总线,并在发现自己空闲时开始发送数据。
当多个节点同时发送数据时,它们通过一组仲裁机制争夺总线。每个节点将首先发送数据的ID,较小的ID意味着较高的优先级,而较高的优先级自动覆盖较小的ID。当一个节点发现它发送的ID被重写时,它知道正在发送优先级较高的消息,并自动停止发送。
优先级最高的消息获得总线使用权并开始发送数据。当发送高优先级的数据包时,节点试图再次与总线竞争。一次又一次。这就充分利用了总线的优势。缺点是有一个时效延迟,优先级越低,等待的时间可能越长。
尽管CAN总线总体上可以满足无人驾驶汽车的实时发送,但就CAN总线的仲裁计值而言,CAN总线并不是实时总线。因为当CAN总线上的节点在当前发送的数据中发现错误时,它会发送一个错误帧来通知总线上的所有节点。发送错误数据的节点被重新发布。每个节点都有一个错误计数器,当一个节点总是发送或接收超过一定数量的错误时,它将自动退出总线。
(2)MOST和FlexRay通信协议。
随着技术的进步,汽车内部呈爆炸式增长。特别是随着大屏幕技术的普及和流媒体技术的介入,CAN总线在某些时候已经“力不从心”,无法工作。因此,开发了更先进的通信协议,如MOST、FlexRay和以太网。这些协议标准具有更大的带宽和更大的稳定性,保证了硬件高速通信的能力,以及在大屏幕上图像显示和音频输出的能力。
其中,MOST是一种高速多媒体传输接口,MOST节点的标准配置如图1.5所示,专门为汽车内部的一些视频提供传输和高码率音频,MOST总线的数据类型如图1.6所示。
图1.5 MOST节点的标准配置
FlexRay总线采用TDMA(Time Division Multiple Access)和FTDMA(Flexible Time Division Multiple Access)两种周期通信方法。FlexRay将通信周期分为静态、动态和网络空闲时间。
静态部分使用TDMA方法,其中每个节点均匀分布时间片,每个节点只能在自己的时间片内发送消息,即使一个节点目前没有要发送的消息(这会导致一定程度的总线资源浪费),该时间片仍然存在。
使用动态部分中的FTDMA方法,依次询问每个节点是否有消息要发送,以及是否有消息要跳过。静态部分用于发送需要频繁发送的重要数据,动态部分用于发送频率不确定且重要性相对较低的数据。
图1.6 MOST总线的数据类型
当FlexRay总线通信期间发生数据错误时,循环期间接收的所有数据都将被丢弃,但不存在重发机制。所有节点将在下一个周期继续进行通信。FlexRay也有一个错误计数器,当一个节点发送太多的接收错误时,计数器会跳出总线。
FlexRay具有高速、可靠、安全的特点。FlexRay通过两个单独的总线进行物理通信,每个总线的数据速率10Mbps。FlexRay还提供了许多网络所不具备的可靠性特点。
特别是FlexRay具有冗余通信能力,能够通过硬件和进度监测完全复制网络配置。FlexRay还提供灵活的配置,支持总线、星型和混合拓扑。
FlexRay本身不能保证系统的安全,但它有许多特性支持面向安全性的系统设计,如线控系统。
FlexRay最大的优点是FlexRay协议确保信息延迟抖动保持在最低限度,使传输同步可预测,即使在恶劣和多变的行车环境中也不会干扰系统传输。这对于需要连续高速性能的应用非常重要,如线控刹车和线控转向。
宝马在07X5系列的电子控制减震器系统中首次使用了FlexRay技术。该车使用基于飞思卡尔的微控制器和恩智浦的收发器,监测纵向和横向加速度、车辆速度、车身和轮胎加速度、方向盘角度和行驶高度的数据,尽量减少轮胎的负荷变动和底盘的振动,以提高乘坐舒适性、安全性和高速响应性。
(3)LIN通信协议。
LIN通信协议如图1.7所示,汽车工业仍在努力弥补CAN协议的一些缺陷。与CAN相比,LIN带宽更小,承载的数据量更少,而且成本更低,适用于简单的ECU场景,如电动门窗、座椅调节和灯光照明控制。LIN是一种低成本、低速度的低速串行通信总线,适用于汽车中的汽车低端分布式应用。它的目标是通过为现有的汽车网络提供辅助功能并在没有CAN总线的带宽和多功能的情况下使用它们来降低成本。
图1.7 LIN通信协议
与CAN相比,LIN的成本节省主要是由于单线传输、硅片软硬件的低实现成本,以及不需要在从属节点中使用石英或陶瓷谐振器。这些优势是以带宽低和单宿主总线访问方法受限为代价的。LIN使用单一的主控制器与多个模式的设备,只需要一个12V的信号线之间的一级和二级设备。低速网络主要针对“传感器/执行器控制”,可提供高达20Kbps的速度。
一个典型的LIN网络可以有12个节点。以门窗控制为例,有门锁、车窗玻璃开关、车窗升降电机、操作按钮等,所有这些都需要一个LIN网络来连接。通过CAN网关,LIN网络还可以与其他汽车系统进行信息交换,实现更丰富的功能。
LIN由一个宿主节点(Master)和一个或多个从属节点(Slave)组成。所有节点都包含一个被分解为发送和接收任务的从属通信任务,并且宿主节点还包含一个额外的宿主发送任务。在实时LIN中,通信总是由宿主任务发起的。LIN网络中的节点不使用主机节点名称以外的任何有关系统设置的信息。可以将节点添加到LIN,而不需要其他依赖节点更改硬件和软件。宿主节点发送包含同步中断、同步字节和消息标识符的消息头。在接收和过滤PIN并开始消息响应的传输后,启动从属任务。响应由2个、4个或8个数据字节和一个检查字节组成。报头和响应部分构成消息帧。
LIN总线上的所有通信均由主机节点中的主机任务发起,主机任务根据进度表确定当前通信内容,发送相应的帧头,并将帧通道分配给报文帧。在从从机节点接收到帧头之后,总线通过解释标识符来决定是否响应当前通信,以及如何响应当前通信。基于这种报文滤波方式,LIN可以实现多种数据传输模式,一个报文帧可以被多个节点同时接收和使用。