藍(lán)牙車載音頻流播放器的設(shè)計(jì)與實(shí)現(xiàn)
1 系統(tǒng)結(jié)構(gòu)
系統(tǒng)結(jié)構(gòu)如圖1所示。音頻流播放器、液晶屏和收音機(jī)組成一個(gè)車載娛樂系統(tǒng)的CAN網(wǎng)絡(luò),控制命令及狀態(tài)信息均通過CAN總線傳輸,其中收音機(jī)帶有功放,直接驅(qū)動(dòng)汽車?yán)?,并統(tǒng)一管理包括FM、CD和音頻流播放器的音頻輸出在內(nèi)的音源。音頻流播放器和藍(lán)牙手機(jī)通過藍(lán)牙進(jìn)行交互,采用A2DP(Advanced Audio Distribution Profile)完成音樂音頻流數(shù)據(jù)及相關(guān)格式信息的傳輸,通過AVRCP(Audio/Video Remote Control Profile)完成對(duì)音樂的遠(yuǎn)程播放控制及播放信息及狀態(tài)的讀取。在A2DP中引入了2個(gè)終端名:SRC(Source)和SNK(Sink)。在這里,數(shù)字音頻流的數(shù)據(jù)發(fā)送端藍(lán)牙手機(jī)稱為SRC,數(shù)字音頻流的接收端藍(lán)牙音頻流播放器稱為SNK。本文引用地址:http://www.ex-cimer.com/article/197662.htm
2 硬件設(shè)計(jì)
藍(lán)牙音頻流播放器的硬件設(shè)計(jì)中,包括CAN通訊、藍(lán)牙子系統(tǒng)和音頻系統(tǒng)3個(gè)部分,其中藍(lán)牙子系統(tǒng)和音頻系統(tǒng)部分采用CSR的藍(lán)牙單芯片Bluecore5-MutiMedia(以下簡(jiǎn)稱BC5)實(shí)現(xiàn)。該芯片集成了MCU實(shí)現(xiàn)藍(lán)牙協(xié)議棧及應(yīng)用,集成了性能高達(dá)64MIPS的DSP實(shí)現(xiàn)音樂文件的編解碼,集成了CODEC、音頻ADC及DAC,實(shí)現(xiàn)了音頻輸入輸出功能,圖2描述了基于該芯片的硬件設(shè)計(jì)。
由圖2可見,BC5內(nèi)部集成了藍(lán)牙射頻及基帶控制、MCU、DSP和音頻CODEC,只需要很少的外圍元件便能完成電路設(shè)計(jì)。
3 播放控制狀態(tài)機(jī)的設(shè)計(jì)
藍(lán)牙音頻流的遠(yuǎn)程播放控制使得用戶可以使用車載收音機(jī)上控制CD音樂的按鍵來(lái)控制藍(lán)牙手機(jī)上的音樂,控制操作包括播放、暫停、上一首、下一首、快進(jìn)和快退,通過AVRCP(音視頻遠(yuǎn)程控制剖面)命令實(shí)現(xiàn)??紤]到用戶操作隨機(jī)性很強(qiáng)及藍(lán)牙手機(jī)的音頻流支持特性不同的問題,需要設(shè)計(jì)一個(gè)完善的遠(yuǎn)程播放控制狀態(tài)機(jī)來(lái)保證良好的操作體驗(yàn)。
遠(yuǎn)程播放控制狀態(tài)機(jī)是個(gè)組合式狀態(tài)機(jī),包括2個(gè)小的狀態(tài)機(jī):(1)狀態(tài)為藍(lán)牙手機(jī)音樂狀態(tài),輸入為人機(jī)接口操作,在人機(jī)接口操作的處理中判斷當(dāng)前音樂狀態(tài),決定輸出的AVRCP命令;(2)狀態(tài)為人機(jī)接口操作或者說“期望狀態(tài)”,輸入為藍(lán)牙手機(jī)音樂當(dāng)前狀態(tài)的更新,在音樂狀態(tài)更新的處理中根據(jù)期望狀態(tài)決定輸出的AVRCP命令。把人機(jī)接口操作稱為“期望狀態(tài)”,把當(dāng)前音樂狀態(tài)稱為“實(shí)際狀態(tài)”,這兩個(gè)狀態(tài)機(jī)的原理便是當(dāng)期望狀態(tài)和實(shí)際狀態(tài)不一致時(shí),發(fā)送可以達(dá)到期望狀態(tài)的AVRCP命令。下面詳細(xì)介紹下狀態(tài)機(jī)的設(shè)計(jì)要點(diǎn)。
首先每個(gè)人機(jī)操作的控制命令在AVRCP上都對(duì)應(yīng)2個(gè)命令,對(duì)于播放、暫停、上一首、下一首操作,命令是連續(xù)執(zhí)行的,比如暫停操作便是在AVRCP上連續(xù)執(zhí)行PAUSE_PRESS和PAUSE_RELEASE命令;而對(duì)于快進(jìn)命令,則是先執(zhí)行FF_PRESS命令,在快進(jìn)按鍵松開時(shí)再執(zhí)行FF_RELEASE命令。
評(píng)論