笔者在从事Android车载行业的开发过程中,发现Android车载开发和平时的Android开发还是有很大不同之处,对于一个小白来说或者说如果是刚入行的新人都会很陌生,目前市场也没有很多系统性的知识提供给大家。
所以笔者准备通过一个专栏系列,把自己在车载开发过程中的学习记录和开发经验记录下来并分享出来,希望能给大家带来一些帮助。
在第一篇内容,笔者介绍了Android车载操作系统现状、整个操作系统架构和架构下核心概念:
第二篇内容,笔者介绍了Android Automotive
操作系统中的一个关键组件CarFramework
:
第三篇,笔者介绍音频焦点相关的知识,为后续介绍音频相关的内容打好基础
第四篇,笔者介绍了车载音频系统架构、CarAudioManager和CarAudioService和多音区音频
车载开发过程中会遇到很多从未遇到过的名词概念,笔者现开启番外篇系列之概念篇,介绍一些常见的概念,这是第一篇会介绍以下常见的概念:
1.操作系统和平台
2.通信协议
3.车载互联解决方案
4.通信协议
操作系统和平台
在车载系统中,有多种操作系统和平台被广泛使用,以满足不同车辆制造商和应用需求。以下是一些主要的车载操作系统和平台:
1. Android Automotive OS
- 描述:一种专门为汽车设计的嵌入式操作系统,基于Android定制,直接运行在车辆的硬件上,而不依赖于智能手机。
- 特点:提供丰富的多媒体、导航和通讯功能,并允许开发者为车载环境开发应用。
- 应用:用于车载信息娱乐系统(IVI),支持广泛的第三方应用。
2. QNX
- 描述:一种基于微内核的实时操作系统,由BlackBerry旗下的QNX软件系统公司开发。
- 特点:高度稳定和可靠,支持实时操作,非常适合安全性要求高的汽车应用。
- 应用:广泛用于车辆的电子控制单元(ECU)、信息娱乐系统、仪表盘等。
3. Automotive Grade Linux (AGL)
- 描述:一个开源的Linux项目,旨在为汽车应用创建一个共享的软件平台。
- 特点:由Linux基金会推动,提供一个灵活且可扩展的框架,支持定制和多供应商协作。
- 应用:适用于信息娱乐系统、仪表盘、车载信息处理等。
4. GENIVI
- 描述:一个开源软件平台,旨在支持车载信息娱乐系统的快速开发和部署。
- 特点:促进跨供应商的互操作性和标准化,支持多种硬件和软件环境。
- 应用:主要用于信息娱乐系统和车载通讯。
5. Microsoft Windows Embedded Automotive
- 描述:微软为汽车制造商提供的定制化嵌入式操作系统解决方案。
- 特点:基于Windows Embedded平台,提供强大的开发工具和支持,易于集成和定制。
- 应用:曾用于福特Sync等车载信息娱乐系统。
6. VxWorks
- 描述:由风河公司(Wind River)开发的实时操作系统(RTOS)。
- 特点:高可靠性、低延迟,广泛应用于安全关键系统。
- 应用:用于ECU、信息娱乐系统、仪表盘等。
7. ROS (Robot Operating System)
- 描述:一种开源的机器人操作系统,越来越多地应用于自动驾驶和高级驾驶辅助系统(ADAS)。
- 特点:提供丰富的开发工具和库,支持复杂的传感器融合和数据处理。
- 应用:用于自动驾驶车辆的研究和开发。
8. Ubuntu Automotive
- 描述:基于Ubuntu Linux的定制版本,专为汽车应用设计。
- 特点:提供一个开放的开发环境,支持广泛的硬件和软件集成。
- 应用:适用于信息娱乐系统、自动驾驶平台等。
9. BlackBerry IVY
- 描述:BlackBerry与Amazon Web Services(AWS)合作开发的智能汽车数据平台。
- 特点:提供实时数据处理和分析,支持云连接和边缘计算。
- 应用:用于车载数据管理、分析和服务提供。
10. Tizen IVI (In-Vehicle Infotainment)
- 描述:一个基于Linux的开源操作系统,由Tizen项目开发,专注于车载信息娱乐系统。
- 特点:灵活且可扩展,支持多种应用和服务。
- 应用:适用于车载信息娱乐系统、仪表盘等。
-
Android Auto:Google开发的一项技术,使Android手机与车载系统无缝连接,提供导航、通讯和娱乐功能。
-
HMI(Human-Machine Interface):人机界面,指驾驶员与车载系统交互的界面和方式。
-
OBD-II(On-Board Diagnostics):车载诊断系统,提供车辆自我诊断和报告能力的标准接口。
-
ADAS(Advanced Driver Assistance Systems):高级驾驶辅助系统,通过传感器和摄像头提供驾驶辅助功能,如车道保持、自动紧急制动等。
Android Auto和Apple CarPlay是两种主流的智能手机与车载系统集成的解决方案,旨在通过连接智能手机来增强车载信息娱乐系统的功能。以下是对它们的详细介绍:
车载互联解决方案
1.Carwith
Carwith
是小米公司推出的车载互联系统,通过智能手机与车载系统的连接,实现导航、音乐、通讯等功能的无缝集成,提升了驾驶和乘车的智能化体验。
- 智能互联:集成小米生态系统,支持多种智能设备的连接和控制。
- 语音助手:集成小爱同学,支持语音控制导航、音乐等功能。
- 导航和媒体:支持高德地图、百度地图等导航应用,以及小米音乐等媒体应用。
2.HiCar
HiCar
是华为公司的车载解决方案,通过智能手机与车载系统的深度集成,提供全面的车载应用和服务,支持语音助手和多种第三方应用的集成。
- 智能协同:利用华为的IoT平台,实现多设备的智能协同工作。
- 语音控制:集成华为语音助手,支持语音导航、音乐播放等操作。
- 导航和媒体:支持高德地图、百度地图等导航应用,以及华为音乐等媒体应用。
3.Apple CarPlay
Apple CarPlay 是苹果公司的车载信息娱乐系统,通过连接支持CarPlay的iPhone,将iPhone的界面映射到车载显示屏上,提供导航、音乐、通讯等功能。
- iOS集成:与iPhone深度集成,支持苹果地图、音乐和通讯应用。
- 语音助手:集成Siri,支持语音控制导航、音乐等功能。
- 第三方应用:支持第三方应用的集成和操作。
4.Android Auto
Android Auto 是Google的车载互联解决方案,允许支持Android Auto的Android手机与车载系统连接,提供导航、音乐、通讯等功能,支持Google Assistant语音控制和第三方应用的集成。
- Android集成:与Android手机深度集成,支持Google地图、音乐和通讯应用。
- 语音助手:集成Google Assistant,支持语音导航、音乐播放等操作。
- 第三方应用:支持第三方应用的集成和操作。
5.Baidu CarLife
Baidu CarLife
是百度公司的车载互联解决方案,支持Android和iOS设备,集成了百度地图和语音助手,提供导航、音乐、通讯等功能。
- 百度生态集成:支持百度地图、语音助手等百度生态系统的功能。
- 语音控制:支持语音导航、音乐播放等操作。
- 第三方应用:支持第三方应用的集成和操作。
6.对比分析
特点 / 解决方案 | Carwith | HiCar | Apple CarPlay | Android Auto | Baidu CarLife |
---|---|---|---|---|---|
厂商 | 小米 | 华为 | 苹果 | 百度 | |
主要特点 | 智能互联、语音助手、导航和媒体播放 | 智能协同、语音控制、导航和媒体播放 | iOS集成、Siri语音控制、第三方应用 | Android集成、Google Assistant语音控制、第三方应用 | 百度地图集成、语音助手、第三方应用 |
兼容性 | 小米手机 | 华为手机 | iPhone | Android手机 | Android和iOS手机 |
第三方应用支持 | 有限 | 有限 | 丰富 | 丰富 | 有限 |
语音助手 | 小爱同学 | 华为语音助手 | Siri | Google Assistant | 百度语音助手 |
通信协议
1.CAN
CAN(Controller Area Network) 是一种串行通信协议,最初由德国的Bosch公司在20世纪80年代开发,旨在汽车内部的控制器和设备之间实现高效、可靠的数据通信。CAN已经成为汽车行业的标准通信协议,并广泛应用于工业自动化、医疗设备、楼宇自动化等领域。
工作原理
CAN网络是一种多主方式的总线系统,允许多个节点(即控制器、传感器、执行器等)连接到同一总线上进行通信。每个节点都可以在总线上发送和接收数据,网络上的节点根据报文的优先级进行仲裁,确保高优先级的报文能够优先传输。
其多主架构和强大的错误检测机制使其成为车载网络通信的首选解决方案。随着CAN FD的推出,CAN的应用范围和性能得到了进一步提升,能够满足更高数据速率和更大数据量的需求。
应用场景
- 动力系统:发动机控制单元(ECU)、变速器、燃油系统等。
- 车身电子:车灯、车窗、空调、座椅调节等。
- 安全系统:防抱死制动系统(ABS)、安全气囊、电子稳定程序(ESP)等。
2.LIN
LIN(Local Interconnect Network) 是一种用于汽车低速通信的串行通信协议,主要用于车内各类传感器和执行器的网络。它由多个汽车制造商和供应商共同开发,旨在作为更简单、成本更低的替代方案,用于一些不需要高带宽和实时性的应用场景。
工作原理
LIN是一种单主多从(master-slave)通信系统,其中只有一个主节点(通常是控制单元)和多个从节点(传感器、执行器等)。主节点负责调度所有的通信,从节点只在接收到主节点的请求时才响应。
应用场景
-
车身电子: 车窗升降、座椅调节、车灯控制、雨刷控制等不需要高速通信的功能。
-
空调控制:空调系统中的各类传感器和执行器之间的数据通信。
-
车内网络:车内娱乐系统、门锁控制、镜子调节等功能的通信。
-
CAN Bus(Controller Area Network):一种车辆内部的通信协议,用于各个电子控制单元(ECU)之间的数据传输。
-
MOST (Media Oriented Systems Transport):用于多媒体数据传输的高带宽汽车通信标准。
-
Ethernet AVB (Audio Video Bridging):用于音频和视频数据流的汽车以太网协议。
-
LIN(Local Interconnect Network):一种用于低速通信的车载网络协议,通常用于简单设备的通信。
-
FlexRay:一种高速、时间触发的车载通信协议,常用于需要高可靠性和实时性的应用。
3.MOST
MOST(Media Oriented Systems Transport) 是一种用于车载多媒体和信息娱乐系统的高带宽串行通信协议。MOST最初由德国公司OASIS SiliconSystems开发,目前由MOST Cooperation管理。该协议主要用于传输音频、视频、语音和数据,广泛应用于汽车行业的高端多媒体和信息娱乐系统。
工作原理
MOST
网络是一种环形网络架构,使用光纤、电缆或同轴电缆进行数据传输。它采用同步传输方式,确保数据以恒定的速率传输,适合高质量多媒体数据的传输。每个设备在网络中作为节点,通过网络接口发送和接收数据。
应用场景
- 车载信息娱乐系统:用于传输音频、视频和数据,实现高质量的多媒体播放、导航和通信功能。
- 高级驾驶辅助系统: 用于传输实时视频和数据,支持驾驶辅助功能。
- 车载网络:在高端汽车中,用于连接多媒体设备、导航系统、电话和其他信息娱乐设备。
4.FlexRay
FlexRay
是一种用于汽车的高速、实时、可靠的串行通信协议。它由FlexRay Consortium
(包括宝马、戴姆勒、博世、飞思卡尔、恩智浦等公司)开发,旨在满足现代汽车对电子控制系统越来越高的要求。
FlexRay
特别适用于高级驾驶辅助系统(ADAS)、车身控制、动力系统控制等对数据速率和可靠性有高要求的应用。
工作原理
FlexRay
网络采用时分多址(TDMA)技术,将通信时间划分为多个时隙,每个时隙分配给网络中的一个或多个节点。这种方式确保了网络的确定性和实时性,适合时间关键型应用。FlexRay
还支持双通道通信,进一步提高了系统的可靠性和冗余度。
应用场景
- 高级驾驶辅助系统(ADAS): 高速、可靠的数据传输,用于传感器融合、环境感知等功能。
- 动力系统控制: 实时性和可靠性要求高的应用,如发动机控制、变速器控制。
- 车身控制:高速数据传输需求的应用,如电子稳定控制系统(ESC)、电动助力转向(EPS)。
- 信息娱乐系统:高带宽需求的应用,如车载视频、音频系统。
5.Automotive Ethernet
Automotive Ethernet
是将以太网技术应用于汽车内部通信的一种技术标准。由于汽车中的电子系统日益复杂,数据带宽需求迅速增加,传统的车载通信协议(如CAN、LIN、MOST等)在带宽和速度上已不能满足需求。Automotive Ethernet
以其高带宽、低延迟和灵活的架构,成为现代汽车网络通信的主要发展方向。
工作原理
Automotive Ethernet采用标准的以太网协议,但为了适应汽车环境,对物理层和部分协议层进行了改进。其典型拓扑结构包括星形、菊花链和环形,能够灵活适应不同的应用场景。
应用场景
- 高级驾驶辅助系统(ADAS): 高速传输传感器数据和视频流,实现实时环境感知和决策。
- 自动驾驶:实时传输大量数据,包括传感器数据、地图数据、车辆状态信息等。
- 车载信息娱乐系统: 高带宽传输音频、视频和互联网数据,提供高质量的信息娱乐体验。
- 车内网络:连接各类电子控制单元(ECU)、传感器和执行器,实现高效的数据交换和控制。
- 车载诊断和维护:实时监控车辆状态和故障诊断,提高车辆维护效率。
6.车载通信协议的对比
特点 / 协议 | Automotive Ethernet | CAN | LIN | FlexRay | MOST |
---|---|---|---|---|---|
传输速率 | 最高可达10 Gbps | 最高可达1 Mbps | 通常在20 kbps左右 | 最高可达20 Mbps | 最多150 Mbps |
通信方式 | 全双工,交换技术 | 多主 | 单主多从 | 双通道,时分多址(TDMA) | 同步传输,多种拓扑 |
实时性 | 高 | 高 | 较低 | 高 | 高 |
可靠性 | 高 | 高 | 较低 | 高 | 高 |
复杂度 | 中 | 中 | 低 | 高 | 高 |
应用场景 | 高带宽、高实时性应用 | 高速控制系统 | 低速、低带宽应用 | 高速、实时性应用 | 高质量多媒体传输 |
OTA
OTA(Over The Air) 是指通过无线通信网络对设备进行远程更新和管理的一种技术。它允许设备制造商或服务提供商通过无线方式推送软件、固件、配置文件或数据更新到用户的设备,而无需用户进行物理连接或手动操作。这种技术在智能手机、车载系统、物联网设备、智能家居和其他电子设备中得到了广泛应用。
FOTA(Firmware Over-The-Air)
FOTA是指通过无线通信网络对设备的固件进行远程更新。固件是嵌入在设备硬件中的底层软件,负责设备的基本功能和控制。
- 目的:更新车辆的电子控制单元(ECU)固件,通常涉及车辆的底层功能,如引擎控制、变速箱管理和安全系统。
- 特点:确保车辆运行的核心系统保持最新状态,修复漏洞,提升性能和增加新功能。
SOTA(Software Over-The-Air)
SOTA是指通过无线通信网络对设备的软件进行远程更新。软件包括操作系统、应用程序和中间件等,负责设备的高级功能和用户界面。
- 目的:更新车载信息娱乐系统的软件,包括操作系统、应用程序和用户界面。
- 特点:改善用户体验、修复软件问题、添加新功能和支持新设备或服务。
特点对比
特点 | FOTA(Firmware Over-The-Air) | SOTA(Software Over-The-Air) |
---|---|---|
更新内容 | 固件(控制单元的嵌入式软件) | 应用软件和操作系统 |
应用范围 | 车载电子控制单元(ECU) | 信息娱乐系统、导航系统、应用软件等 |
更新频率 | 较低(通常是关键更新或重要修复) | 较高(包括功能更新、性能改进等) |
复杂度 | 较高(涉及底层系统,更新失败风险大) | 较低(涉及上层应用,更新相对安全) |
实时性要求 | 较高(可能影响车辆核心功能) | 较低(更新失败风险较小) |
安全性 | 高(需确保固件完整性和真实性) | 较高(需确保软件安全性) |
数据量 | 较小(通常为固件补丁或升级包) | 较大(可能涉及多个应用或系统的更新) |
依赖性 | 高(依赖于硬件和底层软件) | 较低(依赖于操作系统和平台) |