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