1、前言
之前一直在做Android开发,从近几年行业表现可以看出来,移动设备开发这两年进入了平稳期。这主要是因为移动设备软件和硬件都没有革命性创新。在新的革命性替代产品之前,移动开发仍会平稳走下去,但再也不会像曾经那么火爆。
今年有机会开始做IoT相关的工作,也开始关注车载中控,这篇算是一个科普性质的知识整理。
这些年包括5G、大数据、云计算、AI等基础技术的发展,给汽车这个领域的发展也提供了更多可能。除了比硬件外,最近车厂开始把车载软件作为宣传点。软件方面大概两个方向,驾驶辅助和中控。驾驶辅助这类功能,技术投入大产出慢,属于高端功能。借助移动设备的发展,中控软硬件成本相对较低,投入产出高,已经是汽车标配。
2、主流OS
中控的软件,OS是核心。了解OS首先得了解OS的硬件环境:
传统汽车电子产品大概分两类:一类是车载电子设备,如仪表,音响、导航和空调等等,这类不直接参与汽车行驶的控制,不会影响车辆行驶性能和安全的,统称为车载娱乐信息系统(In-Vehicle Infotainment, IVI)。
另一类是电子控制装置,控制车辆运动,还有安全防护,控制发动机,变速箱,电池等这些车辆部件协同工作,这类统称为电子控制单元(ElectronicControl Unit, ECU)。常见的ECU包括EMS发动机电控系统,ABS制动防抱死系统,新能源汽车电池管理系统BMS等。
一个比较典型的车载系统的架构大概是这样的,大概分三部分:娱乐信息系统、网关和电子控制系统。
网关系统:TelematicsBOX,网关作为车载OS的中转系统,负责两部分系统的通信,以及车机与外部的通信,比如车联网的平台服务,以及移动端的车主APP指令和信息转发。
车载娱乐信息系统,最早的收音机/CD播放器通过专用的音频解码芯片就能实现,后来触摸屏代替播放器开关、调节按钮,后来又有了蓝牙电话功能、地图导航、倒车雷达/影像,相应要用的主CPU数据处理能力也逐步增强。
相比IVI,电控系统需要响应更多的输入输出信号,任务调度更加复杂;另外电控系统直接参与车辆行驶的管理,系统可靠性和实时性要求更高,因此应用于ECU的嵌入式操作系统比IVI操作系统有更严苛的技术指标。
目前在车载OS的领域里,主要的参与者大概分两类:车厂和技术公司,车厂肯定是主导。老牌的车厂(更谨慎一点,安全大于技术,成本和时间压力)、新近的电动车厂(更积极一点,可能为了吸引注意力)、科技公司(软件为主:以数据和内容见长,打造平台/生态,没有控制权、量产)、方案公司(供应链优势,与芯片、设备制造商等上下游公司联系更紧密)。图上的内容随时间肯定会有变化,仅供参考。
车载IVI系统目前应用比较广泛的有QNX、Linux (私有Linux和开源Linux)和Android,稍后细说。ECU一般使用的嵌入式设备常用的实时操作系统RTOS,这类比较多,比如QNX就是常用的一种。下面介绍一下目前主流的系统:
- QNX
黑莓全资子公司,全世界第一个实时操作系统公司。为汽车、通信、网络、医疗、国防、航空航天、工业自动化等细分市场提供操作系统和软件解决方案。
QNX以其安全性和实时性著称,突破口是汽车的仪表(Cluster)。QNX在车载底层操作系统(ECU OS)的市场份额超过60%。全球90%以上的车厂都和QNX合作,包括国内新晋的电动车厂。
这是QNX汽车平台的架构,大家可以了解到相关的技术。底层是他的RTOS,本身框架支持Qt、JS,QNX是可以跑Android APP的,大家应该听说过黑莓曾经推出过支持Android APP的手机。
- Linux
大多数老牌车厂是基于Linux Kernel裁剪和配置,然后加上自己设计的UI,作为车载操作系统 ,比如宝马的MBUX。开源的比如Automotive Grade Linux。因为Linux的稳定性更好,成熟度高。但普及范围小和开发难度大,限制了它在车载导航和车载娱乐上的发展。随着车联网、ADAS的发展,对可靠性以及网络设计的需求,也许会给Linux更多机会。
- Android
2014年4.4发布,因为RAM优化,实时性和稳定性大幅提升后,才开始用到车机上。开始各种定制,前装和后装都有,比如吉利子公司亿客通定制的GKUI,感觉就是Android平板的样子。特别要强调一下的是Android Automotive OS,这是2019年Google IO上发布的,搭载在沃尔沃PoleStar2的系统,目前AOSP主线已经开源。
这个Android的架构图,Android生态之所以这么繁荣,主要原因是开源免费,给制造商更多的自由。这应该也是Android更容易放到车机的原因。
QNX因为电控系统的优势,所以仍然保持很高的市场占用率,但是商用要授权。Linux更多是车厂订制,一般是有实力的大厂,比如Tesla,Android比Linux的优势在UI和生态,比QNX的优势是免费开源随便改。劣势是可靠性不足,所以多数只放在中控上。
3、 应用发展
车载OS的应用和技术现状,1996年通用发布OnStar,大概是车联网第一次发布。
- 过去这20多年,随着互联网的发展,虽然车载上的应用功能越来越丰富了,但FM、音乐、导航这些仍然是其中最重要最基础的功能。有人说如果不是汽车,广播可能早就没了,现在汽车以外的人还有谁会听FM。个人主要用导航和蓝牙播放音乐。感受下历史:
- 1930第一个车载广播(摩托罗拉)
- 1966年出现盒式磁带播放器(福特),1983丰田和富士通制作了第一个车载CD播放器。
- 卫星导航:80年代早期出现了车载导航,GPS在2000年前后开放民用。
2007年iPhone问世,过去这10多年,智能手机蓬勃发展,为了扩展手机应用场景,充分利用中控屏幕,出现了手机和中控互联的各种方法。Android Auto与Android手机互联、Apple Car Play,百度的Car Life同时支持iOS和Android手机,全是在(2014年),通过这种连接和共享技术,用户可以在手机和车机两端进行操作。还有一类技术,单纯用来投影,比如多数Android手机内置的Miracast基于WifiDirect。而且从实际情况来看,手机连接也变成了车机的一项必备功能。这类功能一般是需要通过数据线和车机相连,然后就可以在车机上看到应用专为车机设计的UI。
-
车载的场景里,交互方式相对手机发生了很大变化,传统的车辆,通过按键旋钮来控制FM和音乐,近几年出现了触摸屏和语音指令这些输入方式。
- 按键功能是机械的,确定的,不需思考,语音可以减少手部动作,降低行驶中操作的危险性,复杂指令支持不太好,多轮对话也会分散注意力,所以只适用于简单指令。
- 触摸屏的出现允许车机通过OTA获得新功能,比如Tesla把所有功能都放到屏幕,用屏幕控制”一切“,另一方面马自达CEO说基于安全的考虑,要去掉触摸屏,最新的车上也证实了这一点。
- 输出设备除了传统的扬声器和常规的屏幕,最近又出现各种各样的车内屏幕组合,比如是国内厂商理想的车内设计,有多个屏幕在驾驶位、副驾驶、中控等,而且有专门的输入屏,还有国内拜腾的48寸超大屏。多个屏幕的设计看起来是种趋势。
- 下面这个是HUD,把导航或其他信息投影到前挡风玻璃。
- 总结下来各种设计都是在功能和安全之间做平衡
4、趋势
从移动开发出发,看一下有什么机会,毕竟类似的技术栈更容易迁移。
- 对移动开发最简单的切入方式,就是通过手机和车机互联,扩展手机APP的应用场景,也就是手机APP的车载模式,比如Android Auto和Car Play或者CarLife的支持,另外就是考虑投影情况下APP的UI适配。看一下SDK和文档就可以搞了,毕竟另外开发一个车机版的APP代价还是比较大的。
- 虽然都是Android,但是因为使用场景的变化(由手机到车载),比如从手机的竖屏到横屏显示,屏幕变大,还有超大分区显示的屏幕。所以为车机写APP,不是简单地照搬手机,要考虑到新的交互方式:语音、投影这些。
- 在做中控设计的时候发现,手机的APP很多不支持横屏,也没有专门为车载设计新应用,不过最近微信已经发布车载版,看来也是趋势了。
- 目前机会主要是在Android APP开发,(跨平台开发是不是可以派上用场了),比如GKUI、DiLink这些开放平台大家可以了解一下,另一个就是Android Automotive OS可能会在国外称为主流,国内受到政策等原因,应用还是类似手机版Android的命运。
- 中控应用想要繁荣,安全的交互方式是一个大前提,不然仍然只是一个显示设备。智能驾驶成熟的时候,在中控玩游戏也可以,但是在此之前肯定还是有一个时间段,需要不断提升驾驶时使用中控的安全性。
- 2019年4月发布的高德智能车机版天猫精灵,是一个外设,搭配一个行车记录仪,连到中控屏就可以直接使用了,这种独立外设,生态发展很重要。汽车厂设计的多屏互动和输入输出分离这样的交互,都需要系统级的定制才能实现。
- Tesla和蔚来发生的车辆自燃,大家应该听说了,主要问题都在电池(据说汽油车自燃概率更高,只是没人关注),Tesla通过OTA升级修复BMS的bug,蔚来说是碰撞导致的电池硬件发生问题,但是电池问题为什么没有提醒用户。车载软件复杂了以后,最重要是安全,可以说安全到达就是绝大多数汽车用户的目标,车辆对于驾驶者或者乘客的安全至关重要。手机死机了多数情况影响不大,但是汽车故障可能直接危及生命,所以这方面需要车载OS本身内建的安全(入侵检测、防火墙等)和稳定性。最终肯定是车厂和上下游的参与者(内容提供商、数据提供商、技术提供商、芯片提供商)共同合作,形成行业标准。