文/張麗梅 甘伯青 易施光
隨著經濟發(fā)展和生活水平的提高,人們對于精神層面藝術享受的要求也越來越高。音樂作為一種老少皆宜、雅俗共享的藝術形式,吸引著成千上萬的聽眾。
傳統(tǒng)音樂文件在計算機上傳播時,主要通過音樂播放軟件進行播放,使音樂文件無法脫離計算機進行播放,給音樂欣賞帶來不便。自1998年韓國世韓(Seahan)公司推出的第一款MP3 播放器面世以來,MP3 播放器就迅速地占領了消費電子產品市場??墒牵?005年之后,MP3 發(fā)生了巨大的變化,其銷量迅速下降。而等到具備更多的功能的MP5 的面世后,MP3 面臨更大的挑戰(zhàn),幾乎被擠出了消費電子市場,MP5 一旦價格降下來,取代MP3 只是時間的問題。MP3 播放器的面臨的嚴峻挑戰(zhàn)及其技術的發(fā)展,使得人們對MP3播放器的要求越來越高。此外,嵌入式系統(tǒng)和人機交互技術的出現(xiàn),成為了消費電子產品新的增長點,新的消費電子產品層出不窮,集成了MP3 的功能以及其它功能的新產品越來越受到消費者的青睞?;谝陨媳尘?,本設計基于STM32 平臺,移植UCOSIII 嵌入式操作系統(tǒng)和GUI 嵌入式應用圖形支持系統(tǒng),形成一個完善的有人機交互接口的實時嵌入式系統(tǒng),在這個平臺上,采用STM32F405RGT6 高性能ARM 處理器作為核心控制芯片設計一個集成多種功能、實現(xiàn)人機交互的多功能MP3,該設計可以實現(xiàn)音頻播放、圖片瀏覽、電子書、娛樂游戲等多種功能。這種擁有MP3 的功能及其他功能、同時實現(xiàn)人機交互的嵌入式電子產品,將會在市場上受到消費者的青睞,具有實際應用價值和潛在的市場需求。
本文采用STM32F405RGT6 作為核心控制芯片,系統(tǒng)主要由電源、無線遙控、人機交互、FAT 文件系統(tǒng)、音頻解碼、功率放大以及音效處理等幾個部分組成。該設計的主系統(tǒng)是由MCU 控制各部分協(xié)調運行,無線遙控部分通過LC12S 模塊實現(xiàn),F(xiàn)AT 文件系統(tǒng)采用SD卡存儲,解碼芯片VS1053 實現(xiàn)音頻的解碼,LN4890 芯片實現(xiàn)音頻功率放大,整個設計主要由2.0 寸TFT 觸摸屏控制輸入和輸出,人性化地實現(xiàn)人機交互的功能。
使用STM32F405RGT6 芯片作為系統(tǒng)主控芯片,該主控芯片是由意法半導體公司設計的一款32 位微處理器,內核是高性能的的Cortex-M4,這是一款高性能、低功耗、低成本的單片機。該芯片在軟件和引腳方面對STM32 系列產品都有較好的兼容性,工作頻率可達168 MHz。其FSMC 采用32 位多重AHB 總線矩陣,總線訪問速度提高。
本設計采用SD 卡存儲FAT 文件系統(tǒng),SD 卡使用的驅動模式是SPI 模式,可以通過驅動核心控制器上的SPI 接口訪問SD 卡。本設計的SD 卡掛接在高性能控制器STM32F405的SPI1 上 面,STM32F405 的SPI 口 在168 MHz 主頻的條件下,SPI 最高通信速率可以到37.5 MHz,足夠播放任何格式的音頻文件了。
使用2.0 寸TFT-LCD 液晶作為顯示顯示界面,LCD 與CPU 的接口初始化完成后,就可以對液晶屏的控制芯片進行控制,通過配置內部寄存器,實現(xiàn)液晶屏的掃描方式、橫/豎屏顯示以及像素點的顏色的確定。液晶的觸摸屏是電阻式觸摸屏,通過四導線制控制器XPT2046 控制。XPT2046 芯片內含逐步逼近型A/D 轉換器,執(zhí)行兩次A/D 轉換后,XPT2046 可以檢測出被按的屏幕位置,進而返回相應的指令,用戶可通過返回的指令控制執(zhí)行相應的操作。
本設計使用的LC12S 無線模塊工作時處于免費的ISM 頻段,工作頻段為2.4GHz ~2.5 GHz。該模塊具有成本造價低廉,易用性好,靈活性高,無線通訊的可靠性高等優(yōu)勢,支持串口透傳,提供有通信協(xié)議,使用時無需了解復雜的無線通信知識,只需要了解串口通信。本設計由STC15W408AS 控制的無線模塊發(fā)送數(shù)據,MCU 控制的無線模塊接收數(shù)據,實現(xiàn)無線通信的開發(fā)。
VS1053 是繼VS1003 后荷蘭VLS 工公司出品的又一款高性能音頻解碼芯片,可以實現(xiàn)對MP3/OGG/WMA/FLAC/WAV/AAC/IVIID 等音頻格式的解碼,同時還可以支持ADPCM/OGG 等格式的編碼,性能相比以往的VS1003提升了不少。解碼電路如圖1所示。
VS1053 工作時通過DREQ 引腳的高低電平控制是否寫入數(shù)據,當DREQ 引腳電平為高時,MCU 向VS1053 發(fā)送32 Byte 的數(shù)據;反之,VS1053 則不寫入數(shù)據。接收數(shù)據后,通過配置內部寄存器,實現(xiàn)頻譜分析以及音量調節(jié),處理后的數(shù)據通過LN4890 音頻放大器,實現(xiàn)音頻功率放大,進而驅動喇叭。
要實現(xiàn)本設計的功能,要做的準備工作是在SD 卡內新建多個文件夾,分別用于存放音頻文件、字庫文件、圖片文件以及游戲文件。做完這些工作后,把液晶屏驅動、觸摸屏驅動、SD 卡驅動、VS1053 驅動、LC12S 無線模塊驅動等驅動程序添加到工程中,通過UCOSIII實時操作系統(tǒng)調度整個程序的運行。
表1:LC12S 收發(fā)測試數(shù)據
表2:VS1053 和LN4890 收發(fā)測試數(shù)據
圖1:VS1053 解碼電路圖
圖2:程序流程圖
圖3:音頻播放界面
圖4:頻譜顯示界面
軟件系統(tǒng)以STEMWIN 的GUI(Graphical User Interface)為圖形支持系統(tǒng),以UCOSIII為操作系統(tǒng)。STEMWIN 是ST 和Segger 公司聯(lián)合開發(fā)的嵌入式GUI 方案。UCOSIII 操作系統(tǒng)是Micrium 公司開發(fā)的一種可剝奪、可固化、可裁剪的微型的實時操作系統(tǒng),具有任務調度、任務通信、內存管理、中斷管理、定時管理等特性。
音頻播放功能是本設計的主要功能,通過處理FTA 文件系統(tǒng)和驅動SD 卡,得到音頻文件數(shù)據,由解碼芯片VS1053 實現(xiàn)音頻的解碼,由LN4890 功放模塊實現(xiàn)音頻功率放大。
音頻播放支持MP3/WAV 文件;支持歌詞顯示、頻譜顯示、播放模式切換;支持音頻左右切換、快進播放以及后臺播放。本設計頻譜分析的主要工作由VS1053B 來執(zhí)行,通過寫入頻譜分析的處理代碼,就能夠讓VS1053 在初始化后執(zhí)行頻譜分析的功能,CPU 需要做的就是在播放音頻時,讀取頻譜分析的結果并實時分析處理,最終在液晶屏上實時顯示,實現(xiàn)頻譜顯示的效果。
本設計的其它功能包含電子書閱讀、圖片瀏覽、游戲娛樂、秒表計時、計算機以及設置功能。
電子書閱讀、圖片瀏覽和游戲娛樂功能在文件數(shù)據的讀取與音樂播放功能一樣,但是所讀取的文件屬性不一樣。電子書閱讀支持TXT 文件、C 文件、H 文件、LRC 歌詞文件;圖片瀏覽則支持BMP 文件。電子書閱讀與圖片瀏覽功能不需要做額外的數(shù)據處理,直接把讀取的數(shù)據送給TFT-LCD即可實現(xiàn)相應功能。游戲娛樂功能要通過STC15W408AS 控制的無線模塊控制游戲的選擇和運行。設置功能結合帶日歷功能的RTC 時鐘和TFT-LCD 實現(xiàn),控制觸屏控制,更改時間和日期以及查看內存和CPU 使用情況。計算機功能通過控制觸摸屏,實現(xiàn)加減乘除運算。秒表計時通過控制重置、開始/暫停、計次三個觸摸屏按鍵,實現(xiàn)秒表計時的功能。
軟件部分的設計主要是對解碼芯片VS1053、LC12S 無 線 模 塊、2.0 寸TFT-LCD以及SD 卡等各個硬件模塊進行配置,對FAT文件系統(tǒng)的文件是否讀取成功的判斷,以及TFT-LCD 顯示信息、控制輸入輸出的程序。程序流程如圖2所示。
為了產品質量的保證,進行了如下的測試:
實驗結果:如表1所示,STC15W408AS控制的LC12 模塊正常發(fā)送數(shù)據,STM32 控制的LC12 模塊正常接數(shù)據,可控制游戲運行。
實驗結果:如表2所示,VS1053 正常執(zhí)行音頻解碼、音量調節(jié)以及頻譜分析的工作,LN4890 音頻功放正常實現(xiàn)音頻功率放大,本設計功能的實現(xiàn)正常。音頻播放界面如圖3所示,頻譜顯示界面如圖4所示。
本設計實現(xiàn)多功能MP3,能夠正常實現(xiàn)音頻播放、圖片瀏覽、電子書閱讀、游戲娛樂、計算機、秒表計時和設置功能,該設計具有操作簡單、穩(wěn)定性高、音質好、能耗低等優(yōu)點,具有實際應用價值和潛在的市場需求。