贛州金環(huán)磁選設(shè)備有限公司 李 勇
江西理工大學(xué)電氣工程與自動(dòng)化學(xué)院 程鐵棟 周乃軍
動(dòng)漫游戲產(chǎn)業(yè)屬于動(dòng)漫產(chǎn)業(yè)的一種衍生產(chǎn)品,因其具有低能耗、高產(chǎn)業(yè)價(jià)值等特點(diǎn)與優(yōu)勢(shì),被譽(yù)為21世紀(jì)的朝陽產(chǎn)業(yè)[1-3]。目前市場(chǎng)上的動(dòng)漫游戲按平臺(tái)類別大致可分為兩種:網(wǎng)絡(luò)游戲與機(jī)臺(tái)游戲。以PC為平臺(tái)的機(jī)臺(tái)游戲多為進(jìn)口主板或采用企業(yè)專用平臺(tái),兼容性較差,同時(shí)因?yàn)橛螒虍a(chǎn)品的時(shí)效性,上述不足容易造成資源浪費(fèi)。本設(shè)計(jì)的目的是為了彌補(bǔ)現(xiàn)有機(jī)臺(tái)動(dòng)漫游戲的不足,為機(jī)臺(tái)動(dòng)漫游戲提供一個(gè)通用的嵌入式平臺(tái)[7-13],從而縮短機(jī)臺(tái)游戲的開發(fā)周期,提高效率、節(jié)省成本。系統(tǒng)采用ARM Cortex-M3為內(nèi)核的STM32F103VET6控制器作為控制核心,以u(píng)C/OS-II作為實(shí)時(shí)操作系統(tǒng),充分利用uC/OS-II系統(tǒng)的信號(hào)量、郵箱機(jī)制來實(shí)現(xiàn)多線程之間的游戲任務(wù)切換,從而提高硬件資源的運(yùn)行效率,最終實(shí)現(xiàn)一個(gè)結(jié)構(gòu)精簡(jiǎn),可重復(fù)利用的嵌入式動(dòng)漫游戲平臺(tái)。
圖1 系統(tǒng)整體框圖
系統(tǒng)的整體框圖如圖1所示。整個(gè)系統(tǒng)主要包括嵌入式控板模塊、分機(jī)模塊和電源模塊共3個(gè)主要部分。其中電源模塊負(fù)責(zé)給整個(gè)系統(tǒng)提供穩(wěn)定的電壓電流,系統(tǒng)的核心是嵌入式游戲主控模塊(一臺(tái)主控板可帶多臺(tái)分機(jī)),而分機(jī)模塊負(fù)責(zé)接收如搖桿這些游戲外設(shè)的人機(jī)交互信息,并在做初步處理后,通過CAN總線把數(shù)據(jù)和信息發(fā)送給游戲主控板進(jìn)行分析、判斷和處理,然后主控板將根據(jù)程序把對(duì)應(yīng)動(dòng)畫效果顯示在LCD顯示器上。
嵌入式游戲系統(tǒng)的硬件框圖如圖2所示。電路由主控制器STM32、多媒體處理芯片Amazon-LF以及NAND FLASH存儲(chǔ)器、音頻處理電路、視頻接口電路、SD卡接口電路和電源電路等組成。主控板通過抗干擾能力強(qiáng)的CAN總線和分機(jī)實(shí)現(xiàn)通信,并將分機(jī)通過CAN總線發(fā)來的相關(guān)信息經(jīng)過邏輯處理后,轉(zhuǎn)換成命令傳遞給多媒體處理芯片Amazon-LF。Amazon-LF芯片通過串口和主控制器通信,在接收到指令后自行讀取多媒體庫里面的相關(guān)素材并進(jìn)行處理,包括圖像翻轉(zhuǎn)、解壓和音頻去噪等工作,然后將數(shù)據(jù)輸出到顯示和音頻設(shè)備。
圖2 嵌入式主控板硬件框圖
如圖3所示是主控板的部分原理圖,其中包括詳細(xì)的SD_CARD接口和CAN總線接口電路圖。系統(tǒng)設(shè)計(jì)中充分利用了STM32這款處理器的優(yōu)越性能、豐富外設(shè)以及自帶的固件函數(shù)。其中SD卡的作用是自動(dòng)為動(dòng)漫游戲系統(tǒng)進(jìn)行程序升級(jí),當(dāng)載有程序的SD卡接入電路時(shí),系統(tǒng)能自動(dòng)檢測(cè)到硬件并開始程序升級(jí);USB和LCD作為備用接口;STM32通過一個(gè)串口和Amazon-LF連接實(shí)現(xiàn)通信;STM32的CAN接口通過CAN總線接口芯片實(shí)現(xiàn)與分機(jī)通信。
圖3 接口原理圖
系統(tǒng)的多媒體處理電路的設(shè)計(jì)主體是采用32位的Amazon-LF EISC微處理器。與傳統(tǒng)的多媒體處理系統(tǒng)相比較,采用專用的多媒體處理器可以減小核心CPU的處理負(fù)擔(dān),提高系統(tǒng)的運(yùn)行速度。Amazon-LF是一款低成本、高性能的視頻/圖像加速器,其內(nèi)部集成了32位EISC(SE3208)處理器核以及一些周邊的功能模塊如定時(shí)器、串行接口等。芯片內(nèi)建的Cache可以提供單指令周期的編碼和數(shù)據(jù)處理以加速程序的執(zhí)行速度。Amazon-LF支持NTSC/PAL的視頻顯示式,并具有基于3D的圖像加速引擎。實(shí)現(xiàn)對(duì)多媒體資料存儲(chǔ)作用的是NAND FLASH,采用的是M59PW1282芯片,在電路中的作用是存儲(chǔ)動(dòng)漫游戲中用到的圖片文件、音樂文件、以及各種字庫資源。在系統(tǒng)運(yùn)行過程中,Amazon-LF在接收到STM32發(fā)來的指令后,讀取M59PW1282中的存儲(chǔ)的數(shù)據(jù),并將讀取的的數(shù)據(jù)送往視頻和音頻輸出口輸出。音頻驅(qū)動(dòng)電路實(shí)現(xiàn)對(duì)Amazon-LF輸出的音頻信號(hào)的驅(qū)動(dòng)和處理,包括濾波、數(shù)模轉(zhuǎn)換、信號(hào)放大等。
由于系統(tǒng)需要多線程操作,任務(wù)調(diào)度,需要為動(dòng)漫游戲系統(tǒng)移植uC/OS-II實(shí)時(shí)操作系統(tǒng)。uC/OS-II是用標(biāo)準(zhǔn)C語言和匯編語言來寫的,只有與微處理器相關(guān)的部分是由匯編指令寫的,所以在STM32F103VET6上移植uC/OS-II實(shí)時(shí)操作系統(tǒng),只需要做的工作就是修改與處理器有關(guān)的部分,主要有三個(gè)文件:寫處理器相關(guān)文件OS_CPU.H和OS_CPU_C.C;匯編文件0S_CPU_A.ASM和系統(tǒng)配置文件OS_CFG.h,圖4給出了uC/OS-Ⅱ體系結(jié)構(gòu)以及它與系統(tǒng)硬件之間的關(guān)系。圖中還給出了STM32初始化函數(shù)中有相關(guān)的內(nèi)設(shè)和外設(shè)配置。
圖4 uC/OS-II軟件和對(duì)應(yīng)硬件體系結(jié)構(gòu)
動(dòng)漫游戲系統(tǒng)在使用微控制器的各種外設(shè)接口資源、以及各種硬件資源時(shí)只需要調(diào)用這些硬件資源的驅(qū)動(dòng)程序。動(dòng)漫游戲系統(tǒng)的硬件驅(qū)動(dòng)程序由串口打印輸出驅(qū)動(dòng)程序、SD卡驅(qū)動(dòng)程序、Amazon-LF驅(qū)動(dòng)程序、液晶顯示器驅(qū)動(dòng)程序、SPI串行通信口驅(qū)動(dòng)程序等程序組成。以上的驅(qū)動(dòng)程序保證了各個(gè)模塊硬件資源的正常工作。系統(tǒng)只要調(diào)用這些底層驅(qū)動(dòng)程序,就可實(shí)現(xiàn)整個(gè)動(dòng)漫游戲系統(tǒng)的各個(gè)硬件部分功能。
圖5 主任務(wù)程序流程圖
圖6 動(dòng)畫程序流程圖
圖7 示意效果圖
應(yīng)用程序包括一個(gè)主函數(shù)程序和4個(gè)任務(wù)程序。(1)主函數(shù)包括了uC/OS-Ⅱ系統(tǒng)的初始化,主任務(wù)初始化以及一些相應(yīng)的硬件初始化程序,在主函數(shù)中創(chuàng)建了4個(gè)任務(wù)函數(shù),包括主任務(wù)、動(dòng)畫任務(wù)、聲音任務(wù)、顯示任務(wù)。主函數(shù)的程序流程如圖5所示。(2)主任務(wù)程序設(shè)計(jì)。主任務(wù)程序是在主函數(shù)中創(chuàng)建的,主函數(shù)創(chuàng)建了4個(gè)任務(wù),應(yīng)用程序所需要實(shí)現(xiàn)的功能大部分都在這4個(gè)任務(wù)中,而主任務(wù)是幾個(gè)任務(wù)中最重要的一個(gè)任務(wù),在主任務(wù)中有實(shí)現(xiàn)程序升級(jí)的函數(shù),LCD、按鍵、CAN和動(dòng)畫等初始化函數(shù),以及處理消息任務(wù)和定時(shí)任務(wù)等。主任務(wù)程序流程圖如圖5所示。(3)動(dòng)畫子程序設(shè)計(jì)。系統(tǒng)中的動(dòng)畫采用金魚群的游動(dòng)作為實(shí)驗(yàn)測(cè)試。實(shí)現(xiàn)魚群游動(dòng)的動(dòng)畫應(yīng)用程序,是劃分到最細(xì)的子程序模塊。金魚群游動(dòng)函數(shù)程序流程見圖6所示。動(dòng)畫的頁面效果是多層圖層疊加在一起顯現(xiàn)的。而圖層就象膠片一張張按順序疊放在一起,組合起來形成頁面的最終效果。金魚圖層就只含有金魚圖像,同理,背景圖層就只含有背景圖像。動(dòng)漫游戲系統(tǒng)設(shè)計(jì)中,采用了多層圖層,不同圖像創(chuàng)建了自己的圖層。當(dāng)一層圖層處于頂層時(shí),它會(huì)遮掩它下面的圖層,不用的地方可以濾掉,使下一層的圖像顯現(xiàn)。當(dāng)一幅圖像需要調(diào)用時(shí),直接使它的圖層標(biāo)志使能,同理,當(dāng)不需要該圖像時(shí),則關(guān)閉對(duì)應(yīng)的圖層。這種設(shè)計(jì)方案可以減少芯片處理數(shù)據(jù)的負(fù)荷,使圖像顯示更加流暢。
本文利用STM32作為中央處理器設(shè)計(jì)了硬件電路。在硬件電路基礎(chǔ)上移植uC/OS-II實(shí)時(shí)操作系統(tǒng)并完成了應(yīng)用程序的編寫,最后成功實(shí)現(xiàn)了一個(gè)動(dòng)漫游戲系統(tǒng)設(shè)計(jì)。由系統(tǒng)的圖形接口輸出的圖像運(yùn)行流暢,可以到達(dá)18幀/秒的傳輸速度,圖7為其中截取的一幅圖像。經(jīng)過溫度和時(shí)間測(cè)試,系統(tǒng)運(yùn)行穩(wěn)定可靠。
[1]隋楊洋.動(dòng)漫游戲產(chǎn)業(yè)的發(fā)展現(xiàn)狀、產(chǎn)業(yè)鏈接與政策研究[J].南方論叢,2008(09)03:191-193.
[2]蔡進(jìn),趙呈領(lǐng).淺談我國教育游戲的現(xiàn)狀問題及開發(fā)原則[J].教育信息化,2005,10:21-23.
[3]廖祥忠,賈磊磊.2008中國動(dòng)漫產(chǎn)業(yè)發(fā)展報(bào)告[R].合肥:安徽美術(shù)出社,2010:2-13.
[4]譚玲.動(dòng)漫產(chǎn)業(yè)[M].重慶:四川大學(xué)出版社,2006:150-200.
[5]尹曉宇.科技改變生活:電子游戲[J].今日科苑,2009(01):20-21.
[6]馬紅亮.電子游戲的教育價(jià)值:來自美國研究的新觀點(diǎn)[J].開放教育研究,2009(01):105-109.
[7]胥京宇.用“軟件+服務(wù)”平臺(tái)滿足嵌入式市場(chǎng)的新趨勢(shì)——微軟嵌入式事業(yè)部發(fā)展訪談[J].世界電子元器件,2009(01):94-95.
[8]張舸,林世勇.基于嵌入式系統(tǒng)的游戲程序設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2009,06(293):86-90.
[9]姚錫忠.嵌入式操作系統(tǒng)的現(xiàn)狀及發(fā)展趨勢(shì)[J].中國新技術(shù)新產(chǎn)品,2009(23):38
[10]曹文浩.一種嵌入式操作系統(tǒng)內(nèi)核的設(shè)計(jì)與實(shí)現(xiàn)[D].吉林大學(xué),2009:8-12.
[11]Andrew N.Sloss,Dominic Symes,Chric Wright著.沈建華譯.ARM嵌入式系統(tǒng)開發(fā)——軟件設(shè)計(jì)與優(yōu)化[M].北京:北京航空航天大學(xué)出版社,2005:145-245.
[12]宋凱,嚴(yán)麗平,甘嵐.ARMLinux在S3C2410上的移植[J].計(jì)算機(jī)工程和設(shè)計(jì),2008,29(16):4137-4140.
[13]TOMIYAMA H,CH IKADA S,HONDA S.An RTOS based Approach to Design and Validation of Embedded System[A].IEEE International Symposium on VLSI Design,Automation and Test[C].2005:185-187.