藍(lán)牙技術(shù)在車載信息娛樂系統(tǒng)中的應(yīng)用
隨著汽車電子和消費電子技術(shù)的融合,車載信息娛樂系統(tǒng)近幾年發(fā)展迅猛,成為融合各種技術(shù)的集成化平臺,很多在消費電子領(lǐng)域中的應(yīng)用開始在汽車上實現(xiàn),滿足了用戶在娛樂、舒適與安全方面的追求。在消費電子領(lǐng)域大行其道的藍(lán)牙技術(shù)也開始滲透到汽車應(yīng)用中,汽車內(nèi)部空間有限,正符合藍(lán)牙短距離連接應(yīng)用的初衷,而且藍(lán)牙SIG組織以剖面(profile)的形式詳細(xì)定義了在各方面應(yīng)用中的操作方式和應(yīng)該遵循的原則和步驟,相比于其他無線技術(shù)更能保證通用性和互操作性。藍(lán)牙SIG組織專門定義了HFP(Hand Free Profile)規(guī)范了藍(lán)牙在車載免提裝置中的應(yīng)用,使得用戶通過車載麥克風(fēng)和音響便可以打電話,保證了行車安全;定義了PBAP(Phone Book Access Profile)和OPP(Obeject Push profile)規(guī)范了電話簿下載的應(yīng)用,使得用戶可以將手機中的電話簿同步到車載免提裝置上,從而可以利用汽車上的按鍵和液晶屏直接撥打電話,方便了用戶的使用;藍(lán)牙技術(shù)在立體聲耳機中的應(yīng)用經(jīng)驗也開始應(yīng)用到車載娛樂系統(tǒng)中,利用車載音響便可以播放藍(lán)牙立體聲流媒體音樂,大大提升了用戶的車內(nèi)娛樂體驗。在筆者研制的一款車載娛樂設(shè)備中,將USB技術(shù)、藍(lán)牙技術(shù)、音頻解碼技術(shù)融合在一起,結(jié)合汽車內(nèi)部麥克風(fēng)和音響,集成了播放U盤存儲的音樂、免提應(yīng)用、電話簿下載和流媒體音樂播放功能,而且通過CAN總線連接車載CAN網(wǎng)絡(luò),實現(xiàn)了與車載信息娛樂系統(tǒng)的集成和功能的可擴展性。本文主要從硬件設(shè)計和軟件設(shè)計兩個方面講述一下藍(lán)牙技術(shù)在這款車載娛樂設(shè)備中的應(yīng)用與開發(fā)。
一、硬件設(shè)計
該車載娛樂設(shè)備的硬件設(shè)計采用雙處理器結(jié)構(gòu)實現(xiàn),主CPU采用Freescale的高性能32位處理器MCF5251,藍(lán)牙芯片采用CSR的Bluecore5-MM,采用UART作為兩款處理器的接口。其中USB HOST、音頻文件解碼、CAN通訊、人機接口均在主CPU上實現(xiàn),Bluecore5-MM實現(xiàn)藍(lán)牙通訊和相應(yīng)的剖面協(xié)議,其結(jié)構(gòu)框圖如圖1所示:
圖1:硬件結(jié)構(gòu)圖
下面介紹下Bluecore5-MM芯片的特點及應(yīng)用。
BlueCore5-MM是CSR提供的一款高度集成的藍(lán)牙單芯片,在8*8*1.2mm TPBGA封裝內(nèi)集成了藍(lán)牙MAC層和基帶IC,其發(fā)射功率和接收功率分別可達(dá)到+8dBm和-90dBm,無須外部功放即能實現(xiàn)Class 2的范圍。CSR以固件的形式提供了完全兼容藍(lán)牙2.0規(guī)范的的協(xié)議棧,且內(nèi)部提供了自動校準(zhǔn)和內(nèi)建的自測試機制,用于原型開發(fā)和藍(lán)牙協(xié)議認(rèn)證。
Bluecore5-MM內(nèi)部包含一16位MCU,可外接32M bits FLASH,用于完成協(xié)議棧和應(yīng)用程序,還集成了一顆處理能力高達(dá)64MIPS的DSP,主要完成三個功能:
1. 回聲消除及噪聲抑制,提供非常清晰的語音質(zhì)量;
2. 實現(xiàn)對流媒體音樂的解碼,可以對mp3,aac等格式的音樂文件解碼;
3. 能夠方便地增加CSR第三方合作伙伴基于該DSP開發(fā)的專用的經(jīng)過驗證的音頻或語音增強軟件,快速加強其終端設(shè)計的性能和功能。
這樣便提升了免提組件的用戶體驗, 使其適用于各種先進(jìn)且高質(zhì)量音頻的車載應(yīng)用。其內(nèi)部結(jié)構(gòu)如圖2所示:
圖2: Bluecore5-MM 結(jié)構(gòu)圖
藍(lán)牙子系統(tǒng)硬件在CSR提供的BlueTunes2開發(fā)板的基礎(chǔ)上進(jìn)行設(shè)計開發(fā),該開發(fā)板提供了基于BlueCore5-Multimedia芯片的完整的硬件解決方案,包括原理圖設(shè)計和PCB設(shè)計和天線設(shè)計?;贐lueCore5的藍(lán)牙子系統(tǒng)硬件開發(fā)一個很重要的工作便是利用PSTOOL工具調(diào)整可以決定RF特性的PSKEY值,比如Crystal trim。筆者設(shè)計好電路板后,采用多部手機進(jìn)行搜索和連接測試,發(fā)現(xiàn)有的手機搜索不到該設(shè)備,采用Anritsu/安立公司的MT8852藍(lán)牙測試儀測試了其RF特性,發(fā)現(xiàn)“初始載波”不合格,通過修改影響初始載波偏移的PSKEY-Crystal trim,測試通過,且設(shè)備可以被所有的手機搜索到。
二、軟件設(shè)計
CSR提供固件(firmware)完成藍(lán)牙協(xié)議棧,軟件開發(fā)環(huán)境提供各個剖面(profile)庫及其源代碼,這樣我們就可以不必深究底層協(xié)議,而在CSR提供的協(xié)議棧和剖面庫的基礎(chǔ)上專注于應(yīng)用軟件開發(fā),軟件結(jié)構(gòu)框圖如下圖所示:
圖3: 軟件結(jié)構(gòu)圖
我們選擇的開發(fā)環(huán)境為RoadTunesSdk,基于其提供的操作系統(tǒng)VM實現(xiàn)應(yīng)用程序的開發(fā)?;谄銱FP剖面,可以實現(xiàn)免提通話應(yīng)用,并可以傳遞信號強度、電池電量、充電狀態(tài)、漫游狀態(tài)等信號量,在液晶屏上顯示;基于其A2DP和AVRCP剖面,可以實現(xiàn)流媒體音樂播放和遠(yuǎn)程控制,這些部分CSR提供了完整的例程,比較容易實現(xiàn)。以下我們從UART通訊、自動連接、電話簿同步等幾個方面闡述下軟件開發(fā)的關(guān)鍵技術(shù)。
2.1 UART通訊
BC5和主CPU之間的數(shù)據(jù)交換采用通訊幀的方式,采用幀頭(0x55+0xaa)+ID(標(biāo)示該幀的含義)+DLC(數(shù)據(jù)場長度)+DATA(數(shù)據(jù))+CRC16(16位CRC校驗)的格式進(jìn)行傳輸,并且采用緩沖區(qū)的方式保證數(shù)據(jù)在未處理之前可以存儲。
主CPU到BC5主要是人機接口命令,比如接聽電話、掛斷、呼叫保持、激活保密模式等,這個數(shù)據(jù)量小而且?guī)g間隔比較長,所以數(shù)據(jù)可以得到有效的存儲和處理。而從BC5到主CPU的數(shù)據(jù)傳輸便比較復(fù)雜,因為涉及到藍(lán)牙手機、BC5 和主CPU之間的三方通信,藍(lán)牙手機到BC5可能在短時間內(nèi)有大量的數(shù)據(jù)傳輸,這樣在BC5到主CPU短時間內(nèi)便會有多幀傳輸,為了保證數(shù)據(jù)存儲和次序處理的正確性,采用開辟多個獨立緩沖區(qū)的方式便有些不可取,我們采用了在主CPU端開辟一個大的FIFO(先入先出)緩沖區(qū)的方式,保證了數(shù)據(jù)得到正確緩存和次序處理。該緩沖區(qū)空間比較大,數(shù)據(jù)便可以得到有效緩存,而且由于其先入先出的特性,所以數(shù)據(jù)的次序處理又可以得到保證。
串行通信的錯誤來自于其采樣時刻的干擾,當(dāng)DLC不產(chǎn)生錯誤時,CRC校驗可以保證數(shù)據(jù)的正確性。但是當(dāng)DLC由于干擾產(chǎn)生錯誤時,便會引起幀的解析狀態(tài)機的混亂,將下一幀的數(shù)據(jù)誤判斷為該幀數(shù)據(jù),便會產(chǎn)生漏幀的現(xiàn)象,并進(jìn)而引起FIFO緩沖區(qū)的混亂。為了有效解決該問題,必須保證填充到FIFO緩沖區(qū)的數(shù)據(jù)都是嚴(yán)格按照之前定義的幀格式進(jìn)行順序排列的。我們采用了幀延時和定時器監(jiān)測的方式來剔除錯誤幀,首先在幀發(fā)送時會有個10ms的延時,相鄰兩條幀的時間間隔則大于10ms,在主CPU端接收幀時開啟一個7ms的超時定時器,每接收到一個數(shù)據(jù)便重啟該定時器,如果定時器超時,則可以判斷出DLC出錯,從而將這一幀判斷為不完整,將該幀不完整的數(shù)據(jù)丟掉,然后退出幀尾等待,等待下一個幀頭的到來。不完整幀不填充到FIFO緩沖區(qū)中,這樣便解決了因為DLC錯誤引起整個FIFO緩沖區(qū)混亂的問題。
2.2 自動連接
為了增強使用的便利性和對用戶的友好性,我們實現(xiàn)了自動連接功能。我們定義了自動連接的三個觸發(fā)條件:
1. 系統(tǒng)上電
2. 由于連接設(shè)備離開有效范圍引起當(dāng)前連接斷開
3. 一個已配對設(shè)備進(jìn)入藍(lán)牙有效范圍
為了實現(xiàn)這三個條件下的自動連接,我們實現(xiàn)了配對列表管理和周期搜索功能。配對設(shè)備的管理包括添加配對設(shè)備、從液晶屏上刪除配對設(shè)備、存儲、提取、優(yōu)先級管理、查找最后一次連接的免提設(shè)備和音頻設(shè)備、查找進(jìn)入藍(lán)牙環(huán)境的最高優(yōu)先級的設(shè)備等功能。優(yōu)先級設(shè)計為:優(yōu)先級最高的為上次連接的設(shè)備,然后按照配對列表的次序依次遞減。
為了確定是否有一個已配對設(shè)備進(jìn)入藍(lán)牙有效范圍,采用周期“搜索”的方式進(jìn)行判斷。當(dāng)配對列表不為空而且當(dāng)前沒有連接的前提下發(fā)起周期搜索,如果上次沒有搜索到某個配對設(shè)備而這次搜索搜索到了,便發(fā)起與該設(shè)備的自動連接。由于搜索是個對藍(lán)牙基帶帶寬要求比較高的操作,所以為了保證不因為自動搜索影響外部發(fā)起的搜索配對、手動連接、從液晶屏發(fā)起的連接,在配對和手動連接進(jìn)行中停止自動搜索并重啟搜索定時,使得自動搜索盡量不影響這些操作。
2.3 電話簿同步
電話簿條目在下載傳輸時采用VCARD格式,符合vCard2.1和vCard3.0規(guī)范,格式如下所示:
BEGIN:VCARD
VERSION:2.1
N;CHARSET=UTF-8:jianhui
TEL;CELL:13475909642
. . . . .
END:VCARD
可以采用以下幾種方式下載: AT命令、OPP、PBAP、syncML,筆者實現(xiàn)了后三種方式。OPP即用戶在手機上選擇一條或幾條電話號碼PUSH到車載免提裝置上,PBAP是藍(lán)牙SIG為了規(guī)范電話簿的自動下載而定義的一個應(yīng)用剖面,定義了兩種功能:下載和瀏覽。下載是把整個電話本作為一個文件進(jìn)行下載,瀏覽是以單條VCARD為單位的下載。按照PBAP的定義,所有的手機都應(yīng)支持下載和瀏覽功能,由于手機兼容性問題,我們測試的結(jié)果為所有手機都能支持下載功能,部分手機支持瀏覽功能,而且有的手機采用下載功能下載時下載不全,這是由手機本身的缺陷造成的,為了解決該問題,我們首先獲得電話號碼總條目數(shù),當(dāng)采用下載方式下載完并將VCARD解析完成后,我們判斷條目數(shù)是否相等,如果不相等,我們再采用瀏覽方式去下載。
syncML是移動設(shè)備間數(shù)據(jù)同步的一種通用協(xié)議,與藍(lán)牙OBEX協(xié)議綁定便可以實現(xiàn)syncML在藍(lán)牙技術(shù)上的應(yīng)用。syncML不僅可以下載電話簿,還可以完成電話簿的更新,當(dāng)?shù)谝淮瓮胶?,第二次同步時便將產(chǎn)生變化的部分以syncML文檔的格式傳過來,解析該syncML文檔便可以實現(xiàn)電話簿條目的增加(ADD)、刪除(DELETE)和修改(REPLACE)操作。
結(jié)語
藍(lán)牙技術(shù)的車載應(yīng)用開發(fā)研究越來越廣泛,筆者融合了藍(lán)牙技術(shù)和汽車電子技術(shù),設(shè)計實現(xiàn)了一款車載信息娛樂設(shè)備,介紹了其藍(lán)牙子系統(tǒng)硬件設(shè)計和軟件開發(fā)的若干關(guān)鍵技術(shù),該設(shè)備運行穩(wěn)定,具有良好的用戶體驗和使用價值。
評論