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