本论坛将全面搬家到:http://wwwblogs/91program,请大家以后来这里看看。


手机互联的概念

手机互联:通过手机车机映射技术可以在车载终端上充分发挥智能手机的优势,例如:手机端资源丰富,软件更新方便、快速等等。

手机成万物互联的中心,应用于车载市场,是由于车载市场的高端性。

手机的优点

车机的优点:屏幕大

把手机的优点和车机的优点结合起来,满足消费者的需求,是现在车载产品的一个重要的发展方向。例如:一些车载产品,通过手机互联技术,在车载产品将不再有导航功能。而是利用手机上的导航软件,这样可以做到节省成本。


手机互联现状:

原车载行业

国际巨头

本地巨头

本来车载行业在手机互联方面已经是一片混战,先有苹果和Google,现在又加上了 BAT 中的两家。由于阿里收购高德,利用高德A-Link的资源开始布局手机互联。百度也通过 CarNet 进入手机互联产品。


手机互联都有哪些技术呢?

标准手机互联(为手机互联技术而生):

1) MirrorLink

2) 苹果:CarPlay

3) 谷歌:AndroidAUTO


1) MirrorLink 手机通过USB,BT 或 WIFI,即可与车机建立连接

    Nokia 发布的技术,现被 MS 收购

    通过 USB 连接,打电话还是走 BT 通道

    将手机虚拟成网卡,车机通过 RTSP 流媒体播放显示

    最新版本:V1.2(30帧);常用的是 V1.1(10-15帧),显示还不能完成达到用户的要求。

    将 Android 手机插入 PC 上,会在 PC 的网络链接中看到一个虚拟的网卡: Windows Mobile-based Internet SharingDevice


2)苹果:CarPlay

    连接方式:USB/WIFI

硬件系统等的要求:需要 iOS 7.1,iPhone 5,要求硬按键支持 SIRI,

功能:不支持视频;车机显示界面与手机显示界面不同,采用 RTP/RTSP 视频流显示界面。

    只能使用苹果在线地图,不实用(流量太大)

    与其它方案的一个差别:车机做为从设备、手机做为主设备


3) 谷歌:Android AUTO

    OpenAutomotive Alliance,开源汽车联盟

    将一些简单的功能映射到车机,与苹果的实现类似。

其它应用于手机互联的技术:

1)MHL/HDMI

2)DLNA

3)Mirocast


MHL:Mobile High-Definition Link,移动终端高清影音标准接口,从 HDMI 引申而来

    使用一条信号电缆,通过标准 HDMI 输入接口

    Micro USB


DLNA:Digital Living Network Alliance,由索尼、英特尔、微软等发起成立、旨在解决个人PC,消费电器,移动设备在内的无线网络和有线网络的互联互通。DLNA并不是创造技术,而是形成 一种解决的方案,一种大家可以遵守的规范。


Mirocast本身不是为手机互联设计的,BT回控

    WIFIDisplay,通过WIFI Direct(WIFI直连)实现

    只能通过 BT 回控,不支持苹果手机


App-Link 技术:

AppLink:高德:ASDL/百度:CarNet

    A-Link + SDL:Smart Device Link(由 Ford 开发,开源协议)

    只能回控 App,不能回控系统或其它 App

   

    CarNet:针对 WinCE,通过 USB 将手机上的一些服务投射到车机上。

 

Apple 未开放对国内的授权

Android AUTO 也只有几个有限的大公司在做

 

接下来我们来研究一下 MHL 的具体实现:

MHL 硬件关键元器件列表:

器件名称

器件型号

价格XX

MHL IC

EP94Z1

XX

音频D/A

CS4344

XX

HDMI_E插座

 MX50/53

XX

                                               图:MHL框图

车载设备通过 MHL 与手机连接时,可以支持 Android 和 iOS 系统的手机,当然手机的硬件需要支持 MHL。这样可以将手机的屏幕显示映射到车载设备的屏幕上显示,但如何通过车载设备来控制手机呢?此功能我们称之为“回控”,一般是通过 BT 来实现。当然,也可以通过其它无线通讯技术来实现回控。


两种回控方式

一种是通过 HID(Human Interface Device),这时手机将车载设备当成一种输入设备。

另一种,是通过在手机上安装应用软件,通过车载设备上软件与此应用软件之间的通过 BT SPP 通讯来完成回控。下面我们来重点介绍第2种方法,采用这样方式需要手机与车载设备之间进行短距离通讯,现在比较流行的利用 BT。

 

Android 系统:通过 BT 的 SPP(蓝牙串行端口)协议来完成指令的传输。

iOS 系统:因为苹果的要求,通过 BT 控制 iPhone 必须通过其认证。控制的方式较 Android 要复杂很多,要通过 iAP 认证,就比较相应的 IC 才能完成。


无论是哪一种手机系统,开发手机端软件都必须具备较深的功底。手机与车载设备之间的通讯协议因为完全是自定义的,没有什么难度。一般来说,协议需要支持:

1 手机是什么系统

2 手机屏幕分辨率

3 手机屏幕是横屏显示、还是竖屏显示

4 是否处于手机互联 App 界面

5 控制方式:SPP、还是 HID

6 心跳包、应答包

7手机与车机连接/断开连接指令

8 Touch信息

9 其它功能控制,如 音乐 控制等指令

等等

 

通讯协议示例:

(1) Type

       Func 功能分类,例如:通用、音频、视频、SMS等等

              0x00 通用功能

              0x01 音频功能

              0x02 视频功能

              0x03 SMS(???)

       Index 各分类中的具体功能索引,例如:通用功能中有手机与车机连接指令、手机与车机断开连接指令、当前应用、启动应用指令、心跳包、ACK、音量、USB存贮设备状态、SD卡状态、手机OS类型[iOS(0x01)/Android(0x02)/WindowsPhone(0x03)]等等。

              0x00~0x1F  通用功能中各子功能的索引

              0x20~0x5F  车机发送到手机的指令索引

              0x60~0x9F  手机发送到车机的指令索引

(2) D_Flag 指令是否需要应答(ACK)

       0 bit: 0 不需要 ACK;1 需要 ACK。

       其它 bits 备用。

(3) Checksum 采用异或和

(4) 采用网络字节序:即高字节优先

(5) 流水号:从 0 开始到 65535,循环使用

(6) Length:指 Payload 的有效长度,取值:0-65535

(7) Payload:有效负载的数据

(8) Header 与 End:帧头与帧尾

 

如果使用 BT 可以参考 BT 相关的指令分析方法,然后加入对 SPP HID 指令的处理;如果使用其它无线通讯技术,如:Socket,可以参考以前讲过的 Socket 编程的代码,加入对如上述自定义协议的数据解析的过程。

更多推荐

WinCE 手机互联