手機互聯(lián)技術及通訊協(xié)議
手機互聯(lián)的概念
手機互聯(lián):通過手機車機映射技術可以在車載終端上充分發(fā)揮智能手機的優(yōu)勢,例如:手機端資源豐富,軟件更新方便、快速等等。
手機成萬物互聯(lián)的中心,應用于車載市場,是由于車載市場的高端性。
手機的優(yōu)點
車機的優(yōu)點:屏幕大
把手機的優(yōu)點和車機的優(yōu)點結合起來,滿足消費者的需求,是現(xiàn)在車載產(chǎn)品的一個重要的發(fā)展方向。例如:一些車載產(chǎn)品,通過手機互聯(lián)技術,在車載產(chǎn)品將不再有導航功能。而是利用手機上的導航軟件,這樣可以做到節(jié)省成本。
手機互聯(lián)現(xiàn)狀:
原車載行業(yè)
國際巨頭
本地巨頭
本來車載行業(yè)在手機互聯(lián)方面已經(jīng)是一片混戰(zhàn),先有蘋果和Google,現(xiàn)在又加上了 BAT 中的兩家。由于阿里收購高德,利用高德A-Link的資源開始布局手機互聯(lián)。百度也通過 CarNet 進入手機互聯(lián)產(chǎn)品。
手機互聯(lián)都有哪些技術呢?
標準手機互聯(lián)(為手機互聯(lián)技術而生):
1) MirrorLink
2) 蘋果:CarPlay
3) 谷歌:AndroidAUTO
1) MirrorLink 手機通過USB,BT 或 WIFI,即可與車機建立連接。
??? Nokia 發(fā)布的技術,現(xiàn)被 MS 收購
??? 通過 USB 連接,打電話還是走 BT 通道
??? 將手機虛擬成網(wǎng)卡,車機通過 RTSP 流媒體播放顯示
??? 最新版本:V1.2(30幀);常用的是 V1.1(10-15幀),顯示還不能完成達到用戶的要求。
??? 將 Android 手機插入 PC 上,會在 PC 的網(wǎng)絡鏈接中看到一個虛擬的網(wǎng)卡: Windows Mobile-based Internet SharingDevice
2)蘋果:CarPlay
??? 連接方式:USB/WIFI
硬件系統(tǒng)等的要求:需要 iOS 7.1,iPhone 5,要求硬按鍵支持 SIRI,
功能:不支持視頻;車機顯示界面與手機顯示界面不同,采用 RTP/RTSP 視頻流顯示界面。
??? 只能使用蘋果在線地圖,不實用(流量太大)
??? 與其它方案的一個差別:車機做為從設備、手機做為主設備
3) 谷歌:Android AUTO
??? OpenAutomotive Alliance,開源汽車聯(lián)盟
??? 將一些簡單的功能映射到車機,與蘋果的實現(xiàn)類似。
其它應用于手機互聯(lián)的技術:
1)MHL/HDMI
2)DLNA
3)Mirocast
MHL:Mobile High-Definition Link,移動終端高清影音標準接口,從 HDMI 引申而來。
??? 使用一條信號電纜,通過標準 HDMI 輸入接口
??? Micro USB
DLNA:Digital Living Network Alliance,由索尼、英特爾、微軟等發(fā)起成立、旨在解決個人PC,消費電器,移動設備在內(nèi)的無線網(wǎng)絡和有線網(wǎng)絡的互聯(lián)互通。DLNA并不是創(chuàng)造技術,而是形成?一種解決的方案,一種大家可以遵守的規(guī)范。
Mirocast:本身不是為手機互聯(lián)設計的,BT回控
??? WIFIDisplay,通過WIFI Direct(WIFI直連)實現(xiàn)
??? 只能通過 BT 回控,不支持蘋果手機
App-Link 技術:
AppLink:高德:ASDL/百度:CarNet
??? A-Link + SDL:Smart Device Link(由 Ford 開發(fā),開源協(xié)議)
??? 只能回控 App,不能回控系統(tǒng)或其它 App
???
??? CarNet:針對 WinCE,通過 USB 將手機上的一些服務投射到車機上。
?
Apple 未開放對國內(nèi)的授權
Android AUTO 也只有幾個有限的大公司在做
?
接下來我們來研究一下 MHL 的具體實現(xiàn):
MHL 硬件關鍵元器件列表:
器件名稱
器件型號
價格XX
MHL IC
EP94Z1
XX
音頻D/A
CS4344
XX
HDMI_E插座
?MX50/53
XX
車載設備通過 MHL 與手機連接時,可以支持 Android 和 iOS 系統(tǒng)的手機,當然手機的硬件需要支持 MHL。這樣可以將手機的屏幕顯示映射到車載設備的屏幕上顯示,但如何通過車載設備來控制手機呢?此功能我們稱之為“回控”,一般是通過 BT 來實現(xiàn)。當然,也可以通過其它無線通訊技術來實現(xiàn)回控。
兩種回控方式:
一種是通過 HID(Human Interface Device),這時手機將車載設備當成一種輸入設備。
另一種,是通過在手機上安裝應用軟件,通過車載設備上軟件與此應用軟件之間的通過 BT SPP 通訊來完成回控。下面我們來重點介紹第2種方法,采用這樣方式需要手機與車載設備之間進行短距離通訊,現(xiàn)在比較流行的利用 BT。
?
Android 系統(tǒng):通過 BT 的 SPP(藍牙串行端口)協(xié)議來完成指令的傳輸。
iOS 系統(tǒng):因為蘋果的要求,通過 BT 控制 iPhone 必須通過其認證。控制的方式較 Android 要復雜很多,要通過 iAP 認證,就比較相應的 IC 才能完成。
無論是哪一種手機系統(tǒng),開發(fā)手機端軟件都必須具備較深的功底。手機與車載設備之間的通訊協(xié)議因為完全是自定義的,沒有什么難度。一般來說,協(xié)議需要支持:
1 手機是什么系統(tǒng)
2 手機屏幕分辨率
3 手機屏幕是橫屏顯示、還是豎屏顯示
4 是否處于手機互聯(lián) App 界面
5 控制方式:SPP、還是 HID
6 心跳包、應答包
7手機與車機連接/斷開連接指令
8 Touch信息
9 其它功能控制,如 音樂 控制等指令
等等。
?
通訊協(xié)議示例:
(1) Type
?????? Func 功能分類,例如:通用、音頻、視頻、SMS等等
????????????? 0x00 通用功能
????????????? 0x01 音頻功能
????????????? 0x02 視頻功能
????????????? 0x03 SMS(???)
?????? Index 各分類中的具體功能索引,例如:通用功能中有手機與車機連接指令、手機與車機斷開連接指令、當前應用、啟動應用指令、心跳包、ACK、音量、USB存貯設備狀態(tài)、SD卡狀態(tài)、手機OS類型[iOS(0x01)/Android(0x02)/WindowsPhone(0x03)]等等。
????????????? 0x00~0x1F? 通用功能中各子功能的索引
????????????? 0x20~0x5F? 車機發(fā)送到手機的指令索引
????????????? 0x60~0x9F? 手機發(fā)送到車機的指令索引
(2) D_Flag 指令是否需要應答(ACK)
?????? 0 bit: 0 不需要 ACK;1 需要 ACK。
?????? 其它 bits 備用。
(3) Checksum 采用異或和
(4) 采用網(wǎng)絡字節(jié)序:即高字節(jié)優(yōu)先
(5) 流水號:從 0 開始到 65535,循環(huán)使用
(6) Length:指 Payload 的有效長度,取值:0-65535
(7) Payload:有效負載的數(shù)據(jù)
(8) Header 與 End:幀頭與幀尾
?
如果使用 BT 可以參考 BT 相關的指令分析方法,然后加入對 SPP 和 HID 指令的處理;如果使用其它無線通訊技術,如:Socket,可以參考以前講過的 Socket 編程的代碼,加入對如上述自定義協(xié)議的數(shù)據(jù)解析的過程。