oled顯示技術(shù)論文(2)
oled顯示技術(shù)論文篇二
采用OLED顯示的MP3音樂播放器設(shè)計(jì)
摘 要:本文采用STM32F103RBT6微控制器做為核心處理單元,以VS1053實(shí)現(xiàn)了音頻解碼功能,以O(shè)LED液晶屏實(shí)現(xiàn)了人機(jī)界面,結(jié)合TF卡、ASM1117電源芯片等外圍器件完成了一種功能完整、功耗低、人機(jī)交互友好的MP3音樂芯片設(shè)計(jì)。系統(tǒng)可播放VS1053原生支持的MP3、WMA、WAV文件,并通過軟件加載PATCH的方式增加了對(duì)無損音頻FLAC格式的支持。
關(guān)鍵詞:OLED;音樂播放器;STM32;音頻解碼
中圖分類號(hào):TN312.8 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-7712 (2014) 02-0000-01
一、引言
MP3是一種可以大幅度降低音頻數(shù)據(jù)量的音頻壓縮技術(shù),可以播放MP3音樂文件的設(shè)備稱為MP3音樂播放器。本文基于STM32系列MCU、VS1053音頻編解碼器和OLED顯示屏,設(shè)計(jì)了一款可以播放常見格式音樂文件的MP3音樂播放器,該播放器可通過OLED顯示屏顯示長文件名、播放時(shí)間等信息,具有音量調(diào)節(jié)和曲目選擇功能。
二、系統(tǒng)方案設(shè)計(jì)
本音樂播放器主要由主控部分、存儲(chǔ)模塊、音頻解碼模塊、顯示模塊等幾個(gè)核心部分構(gòu)成。主控電路以STM32F103RBT6嵌入式MCU為核心,配合8M無源晶振、32.768K晶振等外圍器件以及電源電路、復(fù)位電路等構(gòu)成最小系統(tǒng),主要完成數(shù)據(jù)讀寫、處理與各模塊調(diào)度等功能,是整個(gè)系統(tǒng)的核心部分。系統(tǒng)的另一個(gè)核心部分是音頻解碼模塊,由VS1053音頻編解碼芯片為核心構(gòu)成,主要負(fù)責(zé)將MCU傳輸過來的音頻數(shù)據(jù)流解碼并通過音頻輸出通道播放。
三、系統(tǒng)的硬件設(shè)計(jì)
(一)控制核心電路。系統(tǒng)的主芯片STM32F103RBT6是一款采用ARM CORTEX M3內(nèi)核的高性能、低成本32位核心處理器。該款CPU在STM32F103系列中屬于中端產(chǎn)品,內(nèi)嵌的128K程序存儲(chǔ)器和20K的RAM已足以滿足音樂播放器系統(tǒng)的需求。該芯片內(nèi)嵌2個(gè)SPI口與2個(gè)IIC口,方便與系統(tǒng)中各個(gè)模塊進(jìn)行通信。系統(tǒng)采用8M晶振,利用內(nèi)部鎖相環(huán)倍頻到72M主頻。
(二)顯示模塊設(shè)計(jì)。系統(tǒng)采用128*64分辨率的OLED顯示屏作為顯示模塊。該顯示屏由SSD1306作為驅(qū)動(dòng)芯片,可以通過8080并口和SPI或IIC串口與單片機(jī)進(jìn)行通訊。本設(shè)計(jì)中采用SPI串口模式。
(三)音頻解碼模塊。系統(tǒng)采用VS1053芯片作為音頻解碼的核心,該芯片還內(nèi)置了一個(gè)高性能立體聲DAC和音頻耳機(jī)放大器,極大簡化了電路設(shè)計(jì)。在系統(tǒng)中,STM32作為主機(jī),VS1053作為從機(jī),通過7根線與CPU通訊。DREQ是一個(gè)數(shù)據(jù)請(qǐng)求信號(hào)。MISO、MOSI和SCK則是VS1053的SPI接口。他們在XCS和XDCS控制下來執(zhí)行不同的操作。
(四)其他外圍電路設(shè)計(jì)。存儲(chǔ)部分。存儲(chǔ)部分采用TF封裝的SD卡,用來存放音頻文件。采用SPI模式與CPU通訊,CS/MISO/MOSI/CLK腳分別接10~100K上拉電阻。人機(jī)接口。系統(tǒng)共通過四顆按鍵,接到CPU的IO口上,分別實(shí)現(xiàn)音量的加、減,曲目的選擇功能。還有一顆復(fù)位按鍵,用于系統(tǒng)的復(fù)位。
四、系統(tǒng)的軟件設(shè)計(jì)
(一)內(nèi)存管理。音樂播放器的程序涉及到大量的數(shù)據(jù)讀寫,引入內(nèi)存管理才能提高軟件運(yùn)行效率,增強(qiáng)系統(tǒng)穩(wěn)定性。內(nèi)存管理,是指軟件運(yùn)行時(shí)對(duì)計(jì)算機(jī)內(nèi)存資源的分配和使用的技術(shù)。其最主要的目的是高效,快速的分配,并且在適當(dāng)?shù)臅r(shí)候釋放和回收內(nèi)存資源。內(nèi)存管理主要由2個(gè)函數(shù)組成:malloc函數(shù)用于內(nèi)存申請(qǐng),free函數(shù)用于內(nèi)存釋放。本系統(tǒng)中,采用分塊式內(nèi)存管理方式,即將內(nèi)存地址映射到內(nèi)存表中進(jìn)行管理。
(二)FATFS文件系統(tǒng)的移植。FATFS是一個(gè)完全免費(fèi)開源的FAT文件系統(tǒng)模塊,專門為小型的嵌入式系統(tǒng)而設(shè)計(jì)。移植需要修改源碼中的兩個(gè)文件,即fconf.h和diskio.c。FATFS源碼中的cc936.c文件提供了對(duì)中文長文件名的支持,其中含有Unicode與GBK編碼的雙向轉(zhuǎn)換表,故文件較大,若直接編譯,程序容量將超過芯片的程序存儲(chǔ)器128K的限制,我們需要將其中的轉(zhuǎn)換表數(shù)組提取出來轉(zhuǎn)換成UNIGBK.BIN文件,放置在內(nèi)存卡或外置FLASH芯片中。
(三)VS1053控制。VS1053的軟件操作過程如下:
(1)復(fù)位VS1053。讓VS1053的狀態(tài)回到原始狀態(tài),準(zhǔn)備解碼下一首歌曲。
(2)配置VS1053的相關(guān)寄存器。配置模式寄存器(MODE)、時(shí)鐘寄存器(CLOCKF)、音調(diào)寄存器(BASS)、音量寄存器(VOL)等。
(3)發(fā)送音頻數(shù)據(jù)。發(fā)送數(shù)據(jù)的時(shí)序規(guī)則:DREQ變高時(shí),向VS1053發(fā)送32個(gè)字節(jié)。然后繼續(xù)等待DREQ變高,直到音頻數(shù)據(jù)發(fā)送完。
(四)OLED顯示。OLED通過SPI串行口與單片機(jī)進(jìn)行通訊,因STM32F103RBT6只有兩個(gè)SPI串行口,且SD卡、VS1053都需要SPI通訊,同時(shí)又對(duì)傳速速率有較高要求,故將兩個(gè)內(nèi)置SPI分配給SD和VS1053。液晶屏對(duì)傳速速率沒有過高要求,故采用IO口模擬SPI的模式。
五、結(jié)束語
本文討論了一種基于STM32F103RBT6的音樂播放器設(shè)計(jì),定義了OLED液晶顯示屏、SD卡和VS1053的接口設(shè)計(jì),討論了FATFS的移植、內(nèi)存管理和VS1053的控制流程,并指出了軟硬件設(shè)計(jì)中需要特別注意的一些細(xì)節(jié)問題,對(duì)相應(yīng)器件的調(diào)試和其他類似系統(tǒng)設(shè)計(jì)有一定的參考意義。
參考文獻(xiàn):
[1]李寧.基于MDK的STM32處理器開發(fā)應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2008.
[2]劉軍.例說STM32[M].北京:北京航空航天大學(xué)出版社,2011.
[3]程磊.基于STM32的MP3播放器的設(shè)計(jì)[J].內(nèi)江科技,2012(12):100-101.
[4]鄭喜鳳,侯世敏.基于C8051F的OLED控制電路的設(shè)計(jì)[J].微計(jì)算機(jī)信息,2008(07):283-284.
[5]李世奇,董浩斌,李榮生.基于FatFs文件系統(tǒng)的SD卡存儲(chǔ)器設(shè)計(jì)[J].測控技術(shù),2012(12):79-81.
[作者簡介]周言(1993-),女,遼寧丹東人,北華航天工業(yè)學(xué)院學(xué)生,本科在讀,主要研究方向:電氣自動(dòng)化;王耀(1990-),男,安徽宿州人,北華航天工業(yè)學(xué)院學(xué)生,本科在讀,主要研究方向:圖形圖像處理;王灼(1992-),男,黑龍江綏化人,北華航天工業(yè)學(xué)院學(xué)生,本科在讀,主要研究方向:圖形圖像處理。
看了“oled顯示技術(shù)論文”的人還看: