博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CarPlay简介
阅读量:4283 次
发布时间:2019-05-27

本文共 1666 字,大约阅读时间需要 5 分钟。

据说,国外车展上,CarPlay已经成为了地摊货,凡参展的厂商都成为的标配(有同样待遇的还有Google的 Auto)。但由于我朝特色,至今未能一睹这俩位的真容(其实是水平不行,领导不带着去看车展)。网络上的只言片语多是重复拷贝的内容,没有什么有价值的东西。只是最近从Apple开放的其它协议上,已提供部分CarPlay集成规范,因此,本文从开发者的角度上,介绍下CarPlay到底是个什么东西!

(盗了Apple官网的图)

1. 简介

CarPlay定义了车载信息系统(IVI)如何与运行iOS的设备之间交互数字内容(包括,Video,Audio&Metadata)。这些内容以流(CarPlay无非是流媒体应用的变种罢了)的形式发送到车载系统上,Apple称车载系统为Accessory(其它外设也如此称呼)。CarPlay只允许运行在车辆与仪表盘结合的IVI系统上(想把CarPlay显示到后座的同学可以洗洗睡了),同时,CarPlay要求有声音的输出功能及Microphone输入。

集成CarPlay的车载系统只能在Apple指定的支持CarPlay功能的国家销售(http://www.apple.com/ios/feature-availability/#applecarplayapplecarplay),这里已经有China了,不过现在还拿不到,估计是流程问题。

集成CarPlay还需要大量其他协议的理解,包括:USB 2.0(HID, NCM, OTG),Apple Bonjour Service,TCP/IP,IPv6,NTP,H.264等等。

2. 硬件需求

高清显示屏:至少800*480分辨率,24Bit色深与30Hz的刷新率。

解码能力:支持H.264解码

输入设备:触摸屏,或者至少有选择键与回退键的旋钮

声音设备:Microphone输入与Speaker输出

按键:Siri按键与CarPlay按键

传感器:用于辅助导航定位的传感器

接口:USB Type A型的接口

放手机的位置:可能是Apple怕把手机摔坏了,挺贵的。。。

3. 软件结构

iOS8.3之前的CarPlay使用USB连接,现在增加了Wifi的支持,不过考虑到充电的问题。。。;USB要求使用OTG接口,这是由于物理层连接要求设备做Host,车机做Device,因此必须使用OTG的角色互换协议HNP。设备与车机通信采用USB NCM网络模型,IPv6协议。

CarPlay是一个基于认证的解决方案,因此,车机侧必须集成Apple的认证IC,同时提供认证的通信接口(I2C驱动)。

CarPlay的服务发现基于Apple的Bonjour实现,这部分在Apple的网站上可以下载。

CarPlay协议与Apple的另一个协议iAP2紧密结合,CarPlay会话建立之前,都是标准的iAP2 Host Mode通信。

集成CarPlay,Apple会提供一个叫做CarPlay Communication Plugin的插件,完成了CarPlay协议的封装,没有这个,集成的事可以先放放了;深度合作者(估计是捐了钱的)可以优先拿到这个。

CarPlay的UI画面,是使用H.264压缩,串流到车机侧显示,采用H.264 HP3.1/3.2 Profile,最大码率25Mbps。

CarPlay的Audio比较麻烦,分为俩大类:Main Audio与Alternative Audio。Main Audio包括娱乐系统的Audio,电话的Audio,Siri的Audio等等;Alterative Audio包括一些提示音什么的,这些个Audio之间有一个复杂的管理逻辑,在CarPlay的协议中进行了描述。

另外,CarPlay给车机传输的所有流都是加密的,密钥要与认证IC通信才能算出(这玩意整得跟个机顶盒似的,难道。。。?)

4. 协议

都是基于HTTP文本的定义,估计Apple都给封好了,东西不全,不确定是否有工作量。

转载地址:http://znngi.baihongyu.com/

你可能感兴趣的文章
cp: cannot create symbolic link to fat format of usb: Operation not permitted
查看>>
MTD bad Block issue
查看>>
How to change network interface name
查看>>
ubifs and ubi and mtd
查看>>
shell script set 用法
查看>>
英文序數寫法與唸法 Ordinal Numbers(轉載)
查看>>
DVB-S info
查看>>
绿盟扫描操作指导
查看>>
理解链路本地址与站点本地地址
查看>>
/proc/mtd 各个参数含义 -- linux内核
查看>>
linux nand flash常用命令
查看>>
NESSUS扫描操作指导
查看>>
C语言读取文件大小,载入文件全部内容
查看>>
C语言 static静态变量的作用
查看>>
Linux(C/C++)下的文件操作open、fopen与freopen
查看>>
C语言 文件操作的头文件
查看>>
C语言的常用库函数(dos)之四(dir.h文件下的一些函数)
查看>>
warning: jobserver unavailable: using -j1. Add `+' to parent make rule问题怎么解决
查看>>
防火墙报文转发流程
查看>>
以太坊创始人:17岁的亿万富翁养成记
查看>>