互联网汽车信息娱乐系统基础框架
在互联网思维大潮下,汽车行业也随之变革加入了互联网元素,称之为互联网汽车。目前成熟且已经量产面市的互联网汽车主要体现在它的车载设备(中控部分的信息娱乐系统)。这种车载互联体现主要在几个方面:TSP(Telematics Service Providers)服务、移动网络(4G)\WIFI、手机互联。那么一台互联网汽车里的车载主机到底有哪些部分呢?本文借助典型的车载主机从具体模块的角度来介绍其框架。
一个典型的车载主机系统常被称作车载信息娱乐系统Audio Infotainment 简称AI系统,AI主要包括Vehicle Interface Processor(VIP),Application Processor(AP), TelematicsBox(T-Box)三个部分(有的也包括仪表部分,由于此部分与AI系统少有,本文不做讨论),Figure 1-1表示这三个部分框图概要。
Figure 1-1. AI System Block
VIP部分介绍
VIP 是系统车载系统的核心,它负责几个方面:电源管理、网络、启动Application Processor、监控系统是否稳定运行(包括温度监测、电压监测)、故障诊断信息、下线检测等。
AI系统中的电源管理尤为重要,它控制着AI系统的所有关键模块的供电及根据电源模式改变工作模式,同时监视正常运行时的电压状态。AI系统的电源需要依赖整车供电系统,轿车的供电电压是12V,但车厂要求在一定的电压范围内所有整车电子器件工作必须稳定,比如9V-16V之间。但极端情况下(电池老化亏电、缺电时接外部电源启动源)在启动时电压范围可能会在6V-30V之间,这时要求对于启动时需要运行的模块的工作电压范围要达到6V-30 V(如:起动机控制、发动机防盗、AI系统中的VIP等)。
车厂定义了整车电源管理规范,并定义在每种电源状态下整车工作行为,在AI系统中VIP负责电源状态管理,需要根据规范和系统要求定义出多种工作模式:正常运行模式、关机模式、临时使用模式、诊断模式、异常模式。在每种工作模式下VIP软件会定义出AI对应的运行状态,每种状态会定义出哪些模块是需要正常工作的哪些需要关闭的。其中关机状态并不是整个车载设备完全断电,而是车载设备进入了深度休眠模式,在这种模式下的待机电流要符合车厂的标准(比如小于1mA或更小);临时使用模式指在ACC ON状态下,用户打开AI系统使用,比如听收音机看电影等。这些模式之间根据各种外部因素条件进行切换,外部条件包括:CAN网络中的电源状态消息,当钥匙开关转动时向CAN网发送电源状态;用户操作:在正常模式下短按下power键关屏,长按表示关机等;电源监测:实时检测电源电压对不同范围的电压做不同处理等等。Table 1-1列出了大致的状态流转情况,但此表不很严谨。实际应用中的工作状态要复杂的多。每种工作状态的切换所依赖的条件也非常多,下表只列出了很小一部分作为参考。
Condition |
Run |
OFF |
Abnormal |
Temporary use |
Diagnosis |
ACC ON |
|
Run |
|
Run |
|
ACC OFF |
|
|
OFF |
OFF |
OFF |
Power Key Press |
|
Run |
|
Run |
|
Power Key Long Press |
OFF |
|
OFF |
OFF |
|
Can Power ON |
|
Run |
|
|
|
Can Power OFF |
OFF |
|
OFF |
Can Power OFF |
OFF |
Can Diagnosis |
Diagnosis |
|
|
Can Diagnosis |
|
Voltage High |
Abnormal |
|
Abnormal |
Abnormal |
Abnormal |
Voltage Low |
Abnormal |
|
Abnormal |
Abnormal |
Abnormal |
Table 1-1. Power Working Mode
除此之外VIP还负责给AP供电,AP的各个模块电源启动顺序有严格的要求,所以一般会使用配套的Power Manager IC (PMIC)来支持AP的上电,VIP只需要给PMIC供电和发送Reset信号即可。
车载的网络指的主要是CAN(Controller Area Network)网络, LIN(Local Interconnect Network)。其中CAN已成为汽车动力系统和车身电子系统最主要的应用网络。车厂定义AI系统需要接收处理哪些CAN消息,和需要发送哪些消息到CAN网络上。其中接收的消息一些由VIP直接处理,比如电源状态,唤醒信号,警报音等等,其他的消息由VIP透传给AP处理,如获取车身ECU的状态信息:车门车窗状态,大灯状态,车速、发动机转速、各种传感器信号,空调状态等等;另外AI系统也需要发送控制及状态信号到CAN网络,实现信息同步及车身单元控制,比如空调控制、时间同步、车门车窗控制等等。
AI系统需要支持诊断功能,当从CAN网络接收到诊断请求后,上报诊断码。一般在AI系统中需要按照车厂的要求在固定周期时间内监测模块状态,如:显示、摄像头、USB、电源、收音机、天线、功放\Speaker等的状态。有些模块需要由VIP检测并生成诊断码,如电源模块。其他的模块由AP检测,并周期性地把诊断结果上报给VIP模块,VIP统一把诊断信息保存在内部存储上。当收到诊断请求后把诊断码发送到CAN网络,由诊断仪接收处理。
Figure 1-2. Vehicle CAN
AP部分介绍
AP在AI系统中主要负责娱乐系统部分、车身部分功能控制、车身信息显示、行车安全监控等。在Figure1-1中AP相关部分描述了大部分的功能模块。
Audio模块是AI中最为复杂,它和许多模块都有直接或间接的联系;最容易出错,调试周期长的模块之一。Figure 1-3表示Audio 子系统。Audio子系统从软件实现的角度分为五个部分:DSP控制驱动,声卡驱动,音频策略,快速启动时的声音输出,后期的性能调试;DSP的控制主要是芯片初始化及提供所有所需的的功能接口,包含音量控制、音源选择、响度补偿、音源平衡、速度音量补偿、Fader\Balance、EQ、Mute、Click\Clack\Chime控制等;声卡驱动主要需要实现多声卡的实现及把DSP提供的接口封装成ALSA接口;音频策略定义了混音策略、各个音量的等级、响度补偿策略等等应用场景;快速启动时的声音输出主要是各种报警音、提示音的输出,由于此时AI系统还可能没有正常工作,所以很多车载使用VIP控制Audio模块,这样可以保证快速出声。后期的性能调试主要是保证Audio的性能符合车厂的标准,如音量曲线,频响曲线,最大输出失真度等。
通常在AI系统中有Radio模块、语音模块、CD(现在已经非常少见)模块和Audio模块关系很紧密,在这里把它们一起称为Audio模块,Radio部分包含FM、AM,若是海外版本通常会加上RDS和DAB功能。语音部分在车载中的地位越来越重要,它包括语音识别、控制、蓝牙通话等,这些都能在汽车行驶中提高行车安全。语音处理过程中需要处理回声消除/减少噪声(EC/NR)以提高语音识别率和通话质量。语音模块中除了可以用语音芯片处理EC/NR外也可以使用纯软件的语音算法库来解决。Radio在车内是最常用的功能之一,通常实现FM\AM基本功能如:停台、锁台、搜台功能等,这些功能比较简单。但是有些车厂使用双Tuner提高用户体验,并且在海外版本增加DAB或RDS的功能,这些合在一起并且需要整合到Audio系统中软件逻辑会变得相当复杂。另外Radio后期的性能调试尤其重要,比如锁台灵敏度,频响,信噪比,失真,通道平衡,中频抑制,镜像抑制等。在最后的路试环节中Radio模块也是重点测试的模块。
Figure 1-3. Audio Sub System Block
BT模块最复杂的部分是协议栈,但是很少有车载厂商会自己单独开发,通常是和专业的第三方开发机构一起联合开发。车载厂商需要调通主机控制接口(HCI)和BT的音频接口(PCM、IIS)。在实现BT的音频接口时,需要特别注意一点是时钟同步问题,否则上述提到的EC/NR算法就不能正确的消除回声问题。主要解决方法是时钟同源,确保Audio 模块和BT模块使用同一Bit Clock 或者使用同一参考时钟。
Figure 1-4. BT and Audio Synchronous Clock
显示、触摸、背光控制在AI系统中也有其特殊性。车载中的显示分两种:一体屏(Integrated display)和远程屏(Remote display),一体机的前板(带有显示屏的电路板)和主机紧挨着且在结构设计上结合在一起,显示常使用RGB信号连接,也有使用LVDS、HDMI接口。
Figure 1-5. Integrated Display Block
由于有些车载设备屏和主机是分离开的(比如后枕屏)就不能使用RGB信号做显示接口,常用LVDS、HDMI接口。但触摸模块不能使用这些接口,触摸芯片常使用I2C通信,另外还有Reset控制和中断信号,直接用线束连接会因距离过长影响触摸性能。基于此类问题,一些芯片厂商提供了一组芯片,主要是AP端信号串行化,屏端还原信号。通过这组芯片不仅可以传输LVDS\HDMI信号,还可以透传I2C、中断信号,这样就很好的解决了远程屏触摸问题。这种方案也有缺陷比如调节背光的背光PWM信号无法通过这个串行芯片透传。通常我们可以选用一个能产生PWM且是I2C控制信号的芯片来解决这个问题,这样可以通过I2C的透传间接控制此芯片来实现背光控制。Figure 1-6常见的远程屏方案框图。
Figure 1-6. Remote display block
除此之外,AI系统中的背光策略也值得一提,背光的控制常依据四个条件:时间、CAN消息、感光Sensor、用户设置。依据时间是把24小时划分成几个区间在各个区间背光值不同,这种方式比较粗略不能根据具体环境来调节;CAN消息是指通过获取CAN上的背光消息来设置背光值;通过感光Sensor可以准确地探知环境光强弱实时调节背光;用户也可以手动设置背光亮度。
导航模块是车载系统的重要功能之一,它主要使用GPS、G-Senser、Gyro三个芯片。通常由GPS提供的经纬度和速度信息就已经能定位,但行车环境复杂多变,时常进入隧道、或有高楼遮挡GPS信号、还有车速等一些因素使得无法准确定位,此时就需要惯性导航(Dead Reckoning)技术辅助定位,DR原理是需要Gyro提供实时的角加速度及G-sensor(此处表示ACC)提供的线性加速度作为参数,通过推算算法能精确的获得车辆当前位置及方向。Gyro和G-sensor常组合在同一芯片中,GPS数据可以从单独的芯片中获取,如果T-box中有GPS模块也可以从中获取数据。如图1-7左。
由于DR算法比较耗费资源导致负载,因此有GPS厂商把DR算法集成在片内flash中,此种方案需要GPS直接获取Gyro和ACC数据,同时也需要AP提供倒车信号和当前速度,如图1-7 右。
Figure 1-7. Navigation block
USB在AI系统中主要用做HOST功能以识别U盘和给外设充电充电,但在调试阶段还需要支持Device功能以便下载镜像及调试。所以AI系统USB实际U需要支持OTG和充电功能。由于汽车提供的USB口(Receptacle)是TypeA类型的,它没有ID Pin的定义,这样在调试时无法切换到Device功能,因此车载设备主板的USB接口通常是Mini/Micro类型的,再通过车载线束转换为Type A类型。标准的Mini/Micro Plug定义有两种:Mini/Micro-A ID脚接地为了使USB Controller 切换到Host功能;Mini/Micro-B ID 悬空这样会保证插入后USB Controller仍为Device模式;比如智能手机默认的都是Device模式,ID PIN是拉高的,只有当插入Mini/Micro-A Plug线 (俗称OTG线)才会切换到Host模式。但是车载USB默认是Host模式ID Pin都是拉低的,这样无论是Mini/Micro-A还是Mini/Micro-B都不能切换成Device模式,所以在调试过程中会使用一种ID Pin拉高的特制线。表1-2列出了常规的Mini/Micro定义及特殊用法的定义。
Pin |
Name |
Description |
1 |
VBUS |
+5 V |
2 |
D- |
Data- |
3 |
D+ |
Data+ |
4 |
ID |
The pin used byOn-The-Go Mini/Micro-A plug: ID connected to GND (Host) Mini/Micro-B plug: ID not connected (Device) Special plug for vehicle: ID Pulled up |
5 |
GND |
Signal ground |
Table 1-2. USB used in vehicle
车载USB给外设充电,如果没有充电芯片的支持,一般最大只能达到500mA的充电电流,但充电效果不理想,充电速度慢,而且不支持Apple设备的充电。充电芯片可以解决这些问题,充电芯片一般会支持CDP、DCP充电模式。有些充电芯片内部设计有符合Apple规范的电路直接支持Apple设备充电无需软件的介入。
汽车上的摄像头(Video)应用的非常广泛,倒车摄像,环视,行车记录,行车辅助等,在车载中常用CVBS摄像头经过Video Codec转换成数字信号。常见设计有如下图1-8两种,第一种比较常用也容易理解,多个CVBS信号接入Vedeo Codec,AP会选择使用哪路。第二种比较特殊,是因为有的车厂有快速显示倒车需求,一般在2秒左右需要响应倒车信号显示后摄像头画面,但由于此时AI系统还没有完全启动,无法及时显示出图像。为了解决这种问题把AP的显示数据当做Vedeo Codec的一个输入源。正常启动时显示正常启动画面,当检测到倒车信号后立即把显示源切到Camera,这种方案可以解决快速倒车的问题。但这种方案同时带来了很多弊端,比如Camera必须自带倒车辅助线,图像无法经过软件处理,也无法叠加等等。
Figure 1-8. Video\Camera
有的车有360环视功能,实时显示行车周围的环境情况提高安全性,在硬件上只需接入多个摄像头即可,但是软件需要合成多路的图像,这使得CPU负载很高,所以一般会选用带DSP的AP,或者外加模块单独处理图像合成。
AP与VIP之间的通信,由于AP需要处理倒车信号,HMI需要显示胎压、速度、车门、大灯转向灯状态等的状态,且能控制空调,车门车窗等,再者VIP的OTA升级,这些都需要AP与VIP通信,这种没有标准的名称,各个主机厂定义都不同,我们且称其为VACP(VIP AP Communication Protocol)。VACP常用UART或者SPI作为通信接口。无论是在VIP端还是AP端,编写调试都很复杂,极易出错。
T-Box部分介绍
T-Box对于车机是一个黑盒子,主要含有通信模块(GPRS、3G或4G),GPS, Sensor(G-Sensor和V-Sensor),对外通过通信模块和TSP后台通信包括数据、语音和短信,对内T-BOX是CAN网络的一个节点,通过CANBUS可以实现指令的传递和车辆信息的上报或报警。比如,通过后台控制或者特制的手机应用可以控制车辆启动,控制车门车窗开关,空调的开关,车灯控制,唤醒主机;获取几乎所有的车身信息,比如电源状态,车门状态,燃油状态,位置信息,速度信息等;在车辆门被异常打开,车胎气压低,电压低,碰撞等情况下会主动通过通信模块向后台或车主手机报警。
Figure 1-9. T-Box
T-Box的Phone模拟信号会传送给Audio Codec模块通过车内Speaker输出。除此之外T-Box通过USB或UART和AP通信,这样AP可以共享T-Box的数据业务,而且也可以省掉AP端的GPS模块节约成本,同样通过T-Box获取CAN网上的信息也是一种有效的途径。