劉 俊
(重慶云途交通科技有限公司,重慶 400067)
車載藍牙電話技術(shù)研究及實現(xiàn)
劉 俊
(重慶云途交通科技有限公司,重慶 400067)
車載藍牙電話是專為行車安全和舒適性而設(shè)計,通過車載設(shè)備的藍牙與手機藍牙相連,使用者不需要觸碰手機便可控制手機電話,實用性好。藍牙電話基于藍牙HFP協(xié)議,車載設(shè)備端需具備藍牙免提組件(HF)的協(xié)議流程處理功能和對應(yīng)的UI交互處理功能。
車載設(shè)備;藍牙電話;Android系統(tǒng);藍牙協(xié)議
車載藍牙電話是專為行車安全和舒適性而設(shè)計,用戶只需要擁有一部帶有藍牙功能的手機,便可與車載藍牙連接,從而通過車載設(shè)備來進行呼叫功能。使用者不需要觸碰手機便可控制手機,用語音指令控制、操作車載終端甚至方向盤來接聽或撥打電話,通過車上的音響或藍牙無線耳麥進行通話,可以保證良好的通話效果。車載藍牙電話普遍使用在前裝車載娛樂終端和后裝車載設(shè)備上,是一項適用的技術(shù)。本文主要介紹基于Android系統(tǒng)車載設(shè)備藍牙電話功能實現(xiàn)原理。
Android系統(tǒng)藍牙包括應(yīng)用層、框架層和本地庫、HAL層和Kernel內(nèi)核驅(qū)動代碼。BlueZ協(xié)議主要在本地庫和內(nèi)核代碼中實現(xiàn),本地庫和內(nèi)核通過HAL層接口進行通信。框架層主要實現(xiàn)藍牙應(yīng)用協(xié)議Profile的管理,通過JNI接口與本地庫交互。框架層包括本地藍牙設(shè)備適配、本地藍牙信息及管理、遠端設(shè)備屬性、基于RFCOMM的藍牙設(shè)備服務(wù)端和客戶端socket管理、藍牙各類Profile服務(wù)等。藍牙電話功能相管理的模塊包括Settings App, Phone, Bluetooth,主要是車載智能設(shè)備的Android系統(tǒng)對藍牙HFP協(xié)議(Hands-freeProfile)的支持。HFP可以在藍牙連接基礎(chǔ)上實現(xiàn)電話控制功能,為藍牙電話功能提供統(tǒng)一的標(biāo)準(zhǔn)。
3.1藍牙HFP協(xié)議
HFP協(xié)議定義了音頻網(wǎng)關(guān)(AG)和免提組件(HF)兩個角色:AG設(shè)備作為音頻的輸入/輸出網(wǎng)關(guān),即手機端;HF設(shè)備作為音頻網(wǎng)關(guān)的遠程音頻輸入/輸出機制,即車載設(shè)備端。HFP協(xié)議提供了HF設(shè)備若干電話相關(guān)的遙控功能,首先是建立RFCOMM連接,通過RFCOMM協(xié)議通道在兩個設(shè)備間交互AT命令,AT命令集基于ITUTV.250和GSM07.07。HF端下發(fā)AT命令讀取AG端狀態(tài)以及控制AG端電話功能。同時,AG端通過AT命令(+CIEV:)指示終端的狀態(tài)。

圖1
3.2Android系統(tǒng)HFP協(xié)議的實現(xiàn)
Android系統(tǒng)HFP協(xié)議AG端接收并解析呼叫相關(guān)的AT命令并對調(diào)用電話系統(tǒng)接口進行處理。AT命令包括:
“AT+D”撥號操作;
“AT+A”接聽操作;
“AT+CHUP”掛斷操作;
“AT+CLCC”呼叫狀態(tài)查詢;
“AT+VTS”雙音多頻音發(fā)送;
“AT+CHLD”呼叫保持操作;
“AT+VGS”揚聲器音量調(diào)節(jié);
“AT+VGM”麥克音量調(diào)節(jié);
“+CIND”手機狀態(tài)指示等。
滿足了HF端所有的電話控制功能。因此,Android系統(tǒng)手機是支持AG端藍牙耳機和藍牙電話功能的,作為HF端的車載設(shè)備也應(yīng)該具備對等的功能。車載設(shè)備端需要增加藍牙電話的界面交互和邏輯處理,支持HFP協(xié)議HF端處理流程。Android 5.0以上的框架層(Framework)增加了免提服務(wù)客戶端管理并完善了HFP協(xié)議流程處理,因此采用Android 5.0以上系統(tǒng)的車載設(shè)備可在已有框架基礎(chǔ)上提供完整的藍牙電話功能,具體的實現(xiàn)流程如圖1所示。Bluetooth Client Service中增加電話控制相關(guān)接口,包括dial()、accept Call()、hold Call()、terminate Call()、hold Call()、getCurrent Calls()等,提供了撥號、接聽、掛斷、保持、呼叫狀態(tài)查詢等功能。Headset Client State Machine作為框架層和協(xié)議處理之間的橋梁,主要完成HFP在框架層的邏輯處理和狀態(tài)跳轉(zhuǎn),包含以下兩方面:(1)從本地的協(xié)議層模塊中接收電話指示,通過系統(tǒng)廣播通知應(yīng)用程序振鈴或者更新呼叫狀態(tài)顯示。(2)管理協(xié)議狀態(tài)(連接或者斷開),調(diào)用本接口,將應(yīng)用的控制下發(fā)到協(xié)議模塊。在藍牙協(xié)議層中,Bta_hf_client_cmd負責(zé)AT指令的組裝和發(fā)送,Bta_hf_client負責(zé)AT指令的接收、解析和上報。藍牙電話APP主要負責(zé)UI交互和界面邏輯處理,給用戶提供便捷的功能,包括撥號盤、同步通信錄和通話記錄、查找聯(lián)系人、來電提醒、通話界面的按鈕等。如果在方向盤上增加電話功能按鍵,通過車上線束將方向盤的按鍵事件發(fā)送到車載設(shè)備,就可觸發(fā)呼叫、接聽、掛斷等功能,這樣駕駛員在手不離開方向盤的情況下,控制手機電話。
目前,藍牙設(shè)備使用廣泛,藍牙協(xié)議也發(fā)展較成熟,通過藍牙連接將手機的功能轉(zhuǎn)移到車載設(shè)備上實現(xiàn)車載互聯(lián)的一種形式,其目的就是為了方便行車,提高用戶體驗。隨著硬件、軟件技術(shù)的發(fā)展,將會有更多基于藍牙連接方案的電子產(chǎn)品應(yīng)用到車載、醫(yī)療健康等領(lǐng)域,給用戶提供更多的便捷。
[1]韓超,梁泉. Android系統(tǒng)原理及開發(fā)要點詳解[M].北京:電子工業(yè)出版社,2010.
[2]張祿林.藍牙協(xié)議及其實現(xiàn)[M].北京:北京人民郵電出版社,2001.
TN924
A