朱緒軍,譚 虎,周細(xì)鳳
(湖南工程學(xué)院 電氣信息學(xué)院,湘潭 411104)
基于STM32和UC/OS-II的影音游戲系統(tǒng)設(shè)計(jì)*
朱緒軍,譚 虎,周細(xì)鳳
(湖南工程學(xué)院 電氣信息學(xué)院,湘潭 411104)
采用STM32芯片搭載UC/OS-II操作系統(tǒng),設(shè)計(jì)了一個(gè)影音游戲系統(tǒng).闡述了系統(tǒng)的工作原理及基于STM32F407ZGT6芯片的硬件設(shè)計(jì)和基于NES游戲的程序設(shè)計(jì).該系統(tǒng)軟硬件經(jīng)過調(diào)試驗(yàn)證,實(shí)現(xiàn)了MP3音樂及視頻的播放、圖片的瀏覽以及NES游戲的運(yùn)行等功能.該設(shè)計(jì)具有實(shí)時(shí)性強(qiáng),可拓展性好,后期維護(hù)方便等特點(diǎn).
STM32F407ZGT6;UC/OS-II;NES模擬器;WM8978
基于嵌入式應(yīng)用對(duì)低功耗、高性能的要求,智能設(shè)備越來越多將操作系統(tǒng)移植到嵌入式芯片中,以滿足實(shí)時(shí)性的要求.本文結(jié)合ST公司的STM32F407ZGT6芯片[1]和UC/OS-II實(shí)時(shí)操作系統(tǒng)[2],將STM32嵌入式芯片應(yīng)用于影音游戲系統(tǒng)的設(shè)計(jì).影音游戲系統(tǒng)的整體功能包括音樂、視頻播放,圖片瀏覽,NES游戲娛樂等等.硬件設(shè)計(jì)中,電源模塊采用ASM1117-3.3V給主控芯片電路供電,圖形界面使用一個(gè)3.5寸LCD顯示,影音模塊采用WM8978解碼來輸出聲音,游戲模塊采用USB手柄操作游戲.軟件部分,移植UC/OS-II操作系統(tǒng)來運(yùn)行各任務(wù)模塊.其中,游戲模塊采用NES模擬器來實(shí)現(xiàn)經(jīng)典的且較少空間占用的NES游戲[3].
總體設(shè)計(jì)分為兩個(gè)大部分,即核心板設(shè)計(jì)和底板設(shè)計(jì).其中,最小系統(tǒng)和SRAM模塊設(shè)計(jì)在核心板上,其他外圍元器件,如TF卡模塊、音頻解碼模塊、LCD顯示模塊、USB接口等,設(shè)計(jì)在底板上.
在此硬件基礎(chǔ)上運(yùn)行UC/OS-II操作系統(tǒng),然后再設(shè)計(jì)MP3播放器、視頻播放器、圖片瀏覽器、NES游戲機(jī)等程序,完成整個(gè)影音游戲系統(tǒng)的設(shè)計(jì),系統(tǒng)組成如圖1所示.
圖1 系統(tǒng)組成框圖
2.1 核心板電路設(shè)計(jì)
將SRAM和STM32F407ZGT6集成一塊PCB板,并加入穩(wěn)壓電路,穩(wěn)壓芯片選用的是線性穩(wěn)壓AMS1117-3.3,將輸入進(jìn)來的5 V直流電源,穩(wěn)成用于SRAM和STM32F407ZGT6芯片用的3.3 V.程序下載接口采用的是ST公司主推的SWD標(biāo)準(zhǔn),此接口僅需四個(gè)引腳就可以下載程序.為防止意外短路而燒毀芯片,加了一個(gè)自恢復(fù)保險(xiǎn)絲.接口選用的是2.54 mm的排針,這樣的排針適合直接可以插杜邦線,用于焊接后的調(diào)試主控的好壞[1].此外,還添加了主控芯片的復(fù)位電路、兩個(gè)指示用的LED燈等基本電路模塊.
2.2 底板設(shè)計(jì)
2.2.1 系統(tǒng)電源設(shè)計(jì)
在整個(gè)系統(tǒng)的電源設(shè)計(jì)上,由于整體的模塊比較多,選用的是24 V的適配器輸出電流3 A以滿足整體要求.為了使系統(tǒng)工作穩(wěn)定,要求電源的紋波必須比較小,故適宜使用線性穩(wěn)壓芯片,但是將24 V穩(wěn)到5 V如果用線性穩(wěn)壓,那發(fā)熱量和芯片的選型都沒有比較好的方法.對(duì)此,在24 V的輸入加了一個(gè)轉(zhuǎn)換效率高,且發(fā)熱量少的開關(guān)電源,選用的芯片是LM2596-5.0,將24 V穩(wěn)到5 V.然后再用線性穩(wěn)壓芯片AMS1117-5.0和AMS1117-3.3就得到芯片和模塊所需要的電壓了.此外,在電路的輸入和輸出都加了旁路電容和濾波電容,增加電源的穩(wěn)定[1].
同樣,在輸入端加入了自恢復(fù)保險(xiǎn)絲,在穩(wěn)壓芯片輸出端加了瞬態(tài)電壓抑制二極管,以更好的保護(hù)整個(gè)電路.電源電路設(shè)計(jì)如圖2所示.
圖2 電源電路圖
2.2.2 音頻解碼電路設(shè)計(jì)
音頻解碼的芯片選用的是WM8978,WM8978的通信接口是IIS和IIC.IIC是用來配置WM8978的寄存器,IIS用來傳輸音頻數(shù)據(jù),只需要將音頻數(shù)據(jù)送入WM8978,就可以自動(dòng)解碼輸出聲音.
WM8978芯片里面自帶的揚(yáng)聲器功放可提供高達(dá)900 MW的功率,可以直接驅(qū)動(dòng)揚(yáng)聲器,耳機(jī)輸出也可以直接使用[1].
2.2.3 LCD顯示屏電路設(shè)計(jì)
顯示屏是選用的是3.5寸的TFT-LCD 液晶顯示屏[4],分辨率是480×320的彩色顯示屏,電路設(shè)計(jì)如圖3所示.
2.2.4 TF卡電路設(shè)計(jì)
為了存儲(chǔ)更多的數(shù)據(jù),增加了TF卡,TF卡電路設(shè)計(jì)如圖4所示.將各種數(shù)據(jù)放在TF中,需要的時(shí)候就將數(shù)據(jù)從TF卡中讀出.STM32F407ZGT6自帶了標(biāo)準(zhǔn)的TF卡接口,使用STM32F4自帶的SDIO接口驅(qū)動(dòng),4位模式,最高通信速度可達(dá)48 MHz,最高每秒可傳輸數(shù)據(jù) 24 M字節(jié)[5].
圖3 LCD顯示屏電路圖
圖4 TF卡電路圖
2.2.5 USB電路設(shè)計(jì)
為了控制引入了游戲手柄,而現(xiàn)在游戲手柄基本都是USB接口,所以就需要USB接口電路來驅(qū)動(dòng)USB游戲手柄,實(shí)現(xiàn)對(duì)游戲的控制.USB電路設(shè)計(jì)如圖5所示.
圖5 USB電路圖
整個(gè)系統(tǒng)的硬件部分完成以后,主要就是軟件的編寫,系統(tǒng)軟件部分的設(shè)計(jì)思路是:系統(tǒng)初始化完成后,初始化各個(gè)模塊,然后運(yùn)行UC/OS-II操作系統(tǒng),并建立LED、主任務(wù)、監(jiān)視任務(wù)這三個(gè)任務(wù).任務(wù)切換周期是5 ms.在主任務(wù)里面運(yùn)行圖形用戶界面,不同的圖標(biāo)對(duì)應(yīng)不同的任務(wù).觸摸屏點(diǎn)擊了不同的圖標(biāo)就建立和運(yùn)行相應(yīng)的任務(wù).系統(tǒng)軟件整體流程圖如圖6所示.
圖6 系統(tǒng)軟件整體流程圖
其中,LED任務(wù)不管在任何時(shí)候都是在運(yùn)行的,每隔一定的時(shí)間,LED就閃爍一次,表示系統(tǒng)正常運(yùn)行.
核心板和底板的電路圖及PCB板設(shè)計(jì)好后,制版并焊接元器件,焊接后的核心板和底板實(shí)物圖如圖7所示.對(duì)核心板和底板進(jìn)行短路檢測,測試正常后,下載程序進(jìn)行調(diào)試,調(diào)試顯示正常.
圖7 核心板和底板實(shí)物圖(底部)
接下來設(shè)計(jì)整個(gè)系統(tǒng)的軟件部分,先是設(shè)計(jì)每個(gè)模塊的驅(qū)動(dòng),將每個(gè)模塊調(diào)試合格后,再整合所有的模塊.最終的設(shè)計(jì),所有的功能均正常工作,實(shí)現(xiàn)MP3音樂和視頻的播放,TF中的照片的瀏覽,插上USB游戲手柄后可正常的運(yùn)行NES游戲.程序總體界面及游戲模塊運(yùn)行實(shí)物圖如圖8所示.
該設(shè)計(jì)是以STM32F407ZGT6作為主控芯片,嵌入U(xiǎn)C/OS-II操作系統(tǒng),以LM2596-5.0和AMS1117-3.3為供電電源,通過WM8978實(shí)現(xiàn)音頻解碼,LCD顯示屏顯示圖像界面,TF卡存儲(chǔ)音頻視頻數(shù)據(jù),來實(shí)現(xiàn)一個(gè)影音游戲系統(tǒng).設(shè)計(jì)中,將核心板與底層版分開設(shè)計(jì),方便各自拆卸,降低維護(hù)成本,且核心板具有可拓展性,對(duì)其他系統(tǒng)的設(shè)計(jì)亦具有參考價(jià)值.游戲文件存儲(chǔ)于TF卡中,也宜于后期的更新.
圖8 程序總體界面及游戲模塊運(yùn)行實(shí)物圖(頂部)
通過系統(tǒng)整體硬件的制作和軟件的編寫,最后能實(shí)現(xiàn)MP3音樂的播放、視頻的播放、圖片的瀏覽和NES游戲的運(yùn)行,有一定的影音娛樂和技術(shù)推廣價(jià)值.
[1] 張 洋,劉 軍,嚴(yán)漢宇,等.精通STM32F4庫函數(shù)版[M].北京:北京航天航空大學(xué)出版社,2015:1-945.
[2] 任 哲.嵌入式實(shí)時(shí)操作系統(tǒng)UC/OS-II原理及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2009.
[3] 王 林.一種開源的NES模擬器FakeNES[J].安徽電子信息職業(yè)技術(shù)學(xué)院學(xué)報(bào),2014(4):33-35.
[4] 湯莉莉,黃 偉.基于STM32的FSMC接口驅(qū)動(dòng)TFT彩屏設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2013(20):139-141.
[5] 張 濤,左謹(jǐn)平,馬華玲.FatFs在32位微控制器STM32上的移植[J].電子技術(shù),2010,47(3):25-27.
[6] 周細(xì)鳳,胡曉冬,等.虛擬任意波形發(fā)生器與示波器的設(shè)計(jì)與實(shí)現(xiàn)[J].湖南工程學(xué)院學(xué)報(bào)(自科版),2016,26(1):19-24.
DesignofVideoGameSystemBasedonSTM32andUC/OS-II
ZHU Xu-jun,TAN Hu,ZHOU Xi-feng
(College of Elect. and Information Engineering, Hunan Institute of Engineering, Xiangtan 411104, China)
A video game system is designed based on STM32 chip which is equipped with UC/OS-II operating system. The principle of the system whose hardware is based on STM32F407ZGT6 chip and software program is based on NES game is described. After debugging and verifying, the software and hardware of the system have realized the functions of MP3 music and video playing, picture browsing and the operation of NES games. The design has the characteristics of real time, good expansibility and convenience in later maintenance.
STM32F407ZGT6; UC/OS-II; NES simulator; WM8978
2017-06-02
湖南省教育廳資助項(xiàng)目915C0327);博士啟動(dòng)基金資助項(xiàng)目(16RC010).
朱緒軍(1995-),男,本科生,研究方向:電子信息系統(tǒng)設(shè)計(jì).
譚 虎(1986-),男,講師,研究方向:信息科學(xué)與復(fù)雜網(wǎng)絡(luò).
TP391;TP316.2
A
1671-119X(2017)04-0013-04