劉 俊
(重慶云途交通科技有限公司,重慶 400067)
車載藍牙電話技術研究及實現(xiàn)
劉 俊
(重慶云途交通科技有限公司,重慶 400067)
車載藍牙電話是專為行車安全和舒適性而設計,通過車載設備的藍牙與手機藍牙相連,使用者不需要觸碰手機便可控制手機電話,實用性好。藍牙電話基于藍牙HFP協(xié)議,車載設備端需具備藍牙免提組件(HF)的協(xié)議流程處理功能和對應的UI交互處理功能。
車載設備;藍牙電話;Android系統(tǒng);藍牙協(xié)議
車載藍牙電話是專為行車安全和舒適性而設計,用戶只需要擁有一部帶有藍牙功能的手機,便可與車載藍牙連接,從而通過車載設備來進行呼叫功能。使用者不需要觸碰手機便可控制手機,用語音指令控制、操作車載終端甚至方向盤來接聽或撥打電話,通過車上的音響或藍牙無線耳麥進行通話,可以保證良好的通話效果。車載藍牙電話普遍使用在前裝車載娛樂終端和后裝車載設備上,是一項適用的技術。本文主要介紹基于Android系統(tǒng)車載設備藍牙電話功能實現(xiàn)原理。
Android系統(tǒng)藍牙包括應用層、框架層和本地庫、HAL層和Kernel內核驅動代碼。BlueZ協(xié)議主要在本地庫和內核代碼中實現(xiàn),本地庫和內核通過HAL層接口進行通信??蚣軐又饕獙崿F(xiàn)藍牙應用協(xié)議Profile的管理,通過JNI接口與本地庫交互。框架層包括本地藍牙設備適配、本地藍牙信息及管理、遠端設備屬性、基于RFCOMM的藍牙設備服務端和客戶端socket管理、藍牙各類Profile服務等。藍牙電話功能相管理的模塊包括Settings App, Phone, Bluetooth,主要是車載智能設備的Android系統(tǒng)對藍牙HFP協(xié)議(Hands-freeProfile)的支持。HFP可以在藍牙連接基礎上實現(xiàn)電話控制功能,為藍牙電話功能提供統(tǒng)一的標準。
3.1藍牙HFP協(xié)議
HFP協(xié)議定義了音頻網(wǎng)關(AG)和免提組件(HF)兩個角色:AG設備作為音頻的輸入/輸出網(wǎng)關,即手機端;HF設備作為音頻網(wǎng)關的遠程音頻輸入/輸出機制,即車載設備端。HFP協(xié)議提供了HF設備若干電話相關的遙控功能,首先是建立RFCOMM連接,通過RFCOMM協(xié)議通道在兩個設備間交互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端接收并解析呼叫相關的AT命令并對調用電話系統(tǒng)接口進行處理。AT命令包括:
“AT+D”撥號操作;
“AT+A”接聽操作;
“AT+CHUP”掛斷操作;
“AT+CLCC”呼叫狀態(tài)查詢;
“AT+VTS”雙音多頻音發(fā)送;
“AT+CHLD”呼叫保持操作;
“AT+VGS”揚聲器音量調節(jié);
“AT+VGM”麥克音量調節(jié);
“+CIND”手機狀態(tài)指示等。
滿足了HF端所有的電話控制功能。因此,Android系統(tǒng)手機是支持AG端藍牙耳機和藍牙電話功能的,作為HF端的車載設備也應該具備對等的功能。車載設備端需要增加藍牙電話的界面交互和邏輯處理,支持HFP協(xié)議HF端處理流程。Android 5.0以上的框架層(Framework)增加了免提服務客戶端管理并完善了HFP協(xié)議流程處理,因此采用Android 5.0以上系統(tǒng)的車載設備可在已有框架基礎上提供完整的藍牙電話功能,具體的實現(xiàn)流程如圖1所示。Bluetooth Client Service中增加電話控制相關接口,包括dial()、accept Call()、hold Call()、terminate Call()、hold Call()、getCurrent Calls()等,提供了撥號、接聽、掛斷、保持、呼叫狀態(tài)查詢等功能。Headset Client State Machine作為框架層和協(xié)議處理之間的橋梁,主要完成HFP在框架層的邏輯處理和狀態(tài)跳轉,包含以下兩方面:(1)從本地的協(xié)議層模塊中接收電話指示,通過系統(tǒng)廣播通知應用程序振鈴或者更新呼叫狀態(tài)顯示。(2)管理協(xié)議狀態(tài)(連接或者斷開),調用本接口,將應用的控制下發(fā)到協(xié)議模塊。在藍牙協(xié)議層中,Bta_hf_client_cmd負責AT指令的組裝和發(fā)送,Bta_hf_client負責AT指令的接收、解析和上報。藍牙電話APP主要負責UI交互和界面邏輯處理,給用戶提供便捷的功能,包括撥號盤、同步通信錄和通話記錄、查找聯(lián)系人、來電提醒、通話界面的按鈕等。如果在方向盤上增加電話功能按鍵,通過車上線束將方向盤的按鍵事件發(fā)送到車載設備,就可觸發(fā)呼叫、接聽、掛斷等功能,這樣駕駛員在手不離開方向盤的情況下,控制手機電話。
目前,藍牙設備使用廣泛,藍牙協(xié)議也發(fā)展較成熟,通過藍牙連接將手機的功能轉移到車載設備上實現(xiàn)車載互聯(lián)的一種形式,其目的就是為了方便行車,提高用戶體驗。隨著硬件、軟件技術的發(fā)展,將會有更多基于藍牙連接方案的電子產(chǎn)品應用到車載、醫(yī)療健康等領域,給用戶提供更多的便捷。
[1]韓超,梁泉. Android系統(tǒng)原理及開發(fā)要點詳解[M].北京:電子工業(yè)出版社,2010.
[2]張祿林.藍牙協(xié)議及其實現(xiàn)[M].北京:北京人民郵電出版社,2001.
TN924
A