车机技术之车规级Linux-Automotive Grade Linux(AGL)
简介
Automotive Grade Linux(AGL)是一个开源操作系统项目,基于Linux内核基础,汽车厂商、零配件供应商、技术提供商为了加速开发和适配对汽车的连接,一起合作实现该开源项目,该项目在2012年9月成立,至今已有5年时间。
当前已经有超过100家成员单位,其中包括奔驰、路虎、三菱、斯巴鲁、日产、五十铃、福特、马自达、捷豹、丰田、本田、松下、NTT数据、悍马、Intel、三星等等。
- 在2012年9月,该项目宣布立项开始。
- 在2013年4月,该项目发布了第一个基于VMWare虚机的demo版。
- 在2015年2月,该项目发布了第一版车规级别的车用操作系统软件需求规格。
- 在2015年9月,该项目发布了安全白皮书。
- 在2016年1月,该项目发布了第一版的统一代码基线。
- 在2016年6月,该项目发布了第二版的统一代码基线。
- 在2016年12月,该项目发布了第三版的统一代码基线。
- 在2017年8月,该项目发布了第四版的统一代码基线和新的SDK。
架构
下图为AGL的系统架构:
底层OS层
因为基于Linux内核,所以几乎一样,不过是个实时的OS。包括系统bootloader启动、文件管理、任务调度、设备管理、设备驱动(并行设备、图形驱动、视频驱动、音频驱动、车载外设如传感器CAN等等)、资源监控、系统更新等等。
服务层
在底层OS之上做了一个服务层,支持蓝牙、Wifi、IPC、生命周期管理、位置服务、窗口和图形系统、网络服务、健康监控、电源管理、错误管理、电话、持久化存储、摄像头、音频服务、收音调台服务、语音服务、通信服务、智能手机连接、配置服务、诊断服务、多媒体服务、浏览器服务、个性化PIM服务、车载总线服务等。
应用框架层
基于服务层提供的服务,在其上形成了一个应用框架,后续开发者们可以基于应用框架开发各种各样丰富多彩的应用。本层包括原生应用框架、应用管理、策略管理、窗口管理、声音管理、输入管理、用户管理、WEB框架。
应用层
该层已经不属于AGL所负责的部分,用户可以自己开发各类应用,比如主屏定制、收音机、浏览器、天气、手车互联、车载电话、音视频播放、Email收发等等。
安全层
对于车来说,安全是非常重要的,所以安全单独做了一层,但是这层是横跨所有层的,每一层都有安全需要考虑和实现。
功能举例
下面简单举几个例子说明AGL的功能。
- 汽车上最基本的需要AGL控制或相关的设备如下,这些都已经在AGL中直接支持,开发者无需花费太多精力即可完成开发。
- 无缝数据共享,AGL收集的车上数据可以支持V2V、V2I、V2X实现无缝共享,如下图示:
- Wifi的多种使用模式,如果车上人员各自想玩自己,不想成CP玩,可以开启普通的wifi模式,提供上网功能即可。如果想玩多P,在可以设置成Miracast模式,车上所有人共享同一屏幕画面,如下图示:
- 手机车机互联,通过MirrorLink、HDMI、Miracast、Airplay、DLNA等协议可以实现把手机屏幕投影到车机,也可通过车机操作手机。
默认主屏风格和内容
- 启动之后进入的主屏,还是非常有后现代感的,如果做一个这样风格的手机,是不是也能吸一波粉呢:
- 通风和空调主屏:
- 电话主屏:
- 仪表板主屏:
- 设置功能的主屏:
最后blabla两句
AGL已经逐步成熟,好处和优点就是底层已经实现好,能够快读开发出车机产品,问题就是目前基于AGL应用框架的开发群体不够大,应用不多。和传统的WinCE、QNX等相比,优势明显,但是和Android相比,不知道最终谁能胜出。