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