本實(shí)例是以STM32F103系列單片機(jī)作為核心處理器,利用VS1003芯片進(jìn)行音頻解碼的一種無線解說器。通過對(duì)觸摸顯示屏的操作,實(shí)現(xiàn)手持部分和終端部分二者的無線通訊。系統(tǒng)采用大容量的SD卡作為存儲(chǔ)部分,通過SPI將VS1003B與SD卡的數(shù)據(jù)與STM32進(jìn)行交互通信。本解說器在播放時(shí)沒有出現(xiàn)理論上的斷續(xù)情況,音質(zhì)較好,占用的軟硬件資源也較少,為后續(xù)的擴(kuò)展留下了很大空間。
1 系統(tǒng)總體構(gòu)成
系統(tǒng)主要器件包括TFT觸摸屏、STM32F103RCT6微控制器、SD卡、語音解碼芯片VS1003、揚(yáng)聲器。STM32F103RCT6微控制器為系統(tǒng)終端的控制核心,通過它與手持式設(shè)備之間進(jìn)行無線串口通訊,讀取SD卡中的音頻文件,控制VS1003解碼讀取的數(shù)據(jù),實(shí)現(xiàn)聲音的播放與控制,該系統(tǒng)主體結(jié)構(gòu)如圖1所示。
2.1 TFT觸摸屏控制電路
單片機(jī)芯片STM32F103RCT6工作在8MHz時(shí)鐘下,RTC工作在32.768kHz時(shí)鐘下。單片機(jī)PA3、PA5、PA6、PA7、與SD卡SD_CS、SPI1_SCK、SPI1_MISO、SPI1_MOSI相連,采用SPI通訊。顯示屏接口采用并行總線方式(數(shù)據(jù)總線D[7:0]、地址總線A[1:0]、片選/CS、讀/RD、寫/WR),直接與單片機(jī)引腳相連,如圖2所示。
2.2 VS1003音頻解碼控制電路
語音解碼芯片VS1003可解碼MP3(MPEG 1&2音頻層III)(CBR+VBR+ABR)、WMA 4.0/4.1/7/8/9的所有配置文件(5.384kbit/s的)、WAV(PCM+IMAADPCM)、MIDI/SP—MIDI文件,對(duì)話筒輸入或線路輸入的音頻信號(hào)進(jìn)行IMA ADPCM編碼,內(nèi)含高性能片上立體聲數(shù)模轉(zhuǎn)換器,兩聲道間無相位差。
[page]
3 軟件控制設(shè)計(jì)
3.1 手持設(shè)備控制流程
對(duì)手持式設(shè)備進(jìn)行軟件控制編程時(shí),第一步使用需要對(duì)系統(tǒng)時(shí)鐘進(jìn)行初始化,需要對(duì)外部高速時(shí)鐘使能,中斷向量表配置,鎖相環(huán)配置等過程。這樣系統(tǒng)才能正確執(zhí)行相關(guān)程序。接下來對(duì)串口進(jìn)行初始化,本設(shè)計(jì)使用的串口一,需要對(duì)GPIOA進(jìn)行初始化,并配置其復(fù)用功能,將TXD引腳設(shè)置成復(fù)用延遲輸出,RXD配置成浮空輸入。下面設(shè)置USAT的波特率、傳輸字長(zhǎng)、有無奇偶校驗(yàn)、數(shù)據(jù)流控制、收發(fā)模式、中斷優(yōu)先級(jí)、中斷服務(wù)函數(shù)等。
3.2 終端設(shè)備程序流程圖
終端設(shè)備開機(jī)后需要設(shè)置無線單片機(jī)的初始值,初始值為包括解說區(qū)域的坐標(biāo)代碼,因此在游覽干道旁需每隔約25m設(shè)置一個(gè)終端,當(dāng)游人在游覽干道上行進(jìn),身上的手持設(shè)備就可隨時(shí)和道路旁放置的無線終端相互交換信息,播放需要的解說詞。
因此終端流程最開始對(duì)所需要的外設(shè)進(jìn)行初始化,確認(rèn)初始化無誤以后進(jìn)入正弦波測(cè)試,如有初始化不成功的程序?qū)⒉荒苓M(jìn)入下一個(gè)流程。在正弦波測(cè)試完之后確定終端設(shè)備上的外設(shè)運(yùn)行良好,將SD卡中的音頻文件信息解碼出來,并發(fā)送出去,此時(shí)進(jìn)入串口監(jiān)控狀態(tài),時(shí)刻監(jiān)控串口信息,當(dāng)收到播放指令時(shí)即在SD卡中尋找對(duì)應(yīng)的信息,并從SD卡中將數(shù)據(jù)讀取出來,發(fā)送至VS1003進(jìn)行解碼,在播放過程中如接收到新的串口數(shù)據(jù),再進(jìn)行判斷,是停止還是暫?;蛘咂渌?,然后執(zhí)行相應(yīng)的命令。
相關(guān)閱讀:
電路分享:一款無線氣體測(cè)試系統(tǒng)硬件電路設(shè)計(jì)
重磅推薦:黑白循跡小車的電路設(shè)計(jì)
智能家電的無線數(shù)據(jù)傳輸電路設(shè)計(jì)