基于STM32的动漫游戏系统设计

2014-03-16 09:26赣州金环磁选设备有限公司
电子世界 2014年9期
关键词:驱动程序图层嵌入式

赣州金环磁选设备有限公司 李 勇

江西理工大学电气工程与自动化学院 程铁栋 周乃军

1.引言

动漫游戏产业属于动漫产业的一种衍生产品,因其具有低能耗、高产业价值等特点与优势,被誉为21世纪的朝阳产业[1-3]。目前市场上的动漫游戏按平台类别大致可分为两种:网络游戏与机台游戏。以PC为平台的机台游戏多为进口主板或采用企业专用平台,兼容性较差,同时因为游戏产品的时效性,上述不足容易造成资源浪费。本设计的目的是为了弥补现有机台动漫游戏的不足,为机台动漫游戏提供一个通用的嵌入式平台[7-13],从而缩短机台游戏的开发周期,提高效率、节省成本。系统采用ARM Cortex-M3为内核的STM32F103VET6控制器作为控制核心,以uC/OS-II作为实时操作系统,充分利用uC/OS-II系统的信号量、邮箱机制来实现多线程之间的游戏任务切换,从而提高硬件资源的运行效率,最终实现一个结构精简,可重复利用的嵌入式动漫游戏平台。

图1 系统整体框图

2.系统总体设计

系统的整体框图如图1所示。整个系统主要包括嵌入式控板模块、分机模块和电源模块共3个主要部分。其中电源模块负责给整个系统提供稳定的电压电流,系统的核心是嵌入式游戏主控模块(一台主控板可带多台分机),而分机模块负责接收如摇杆这些游戏外设的人机交互信息,并在做初步处理后,通过CAN总线把数据和信息发送给游戏主控板进行分析、判断和处理,然后主控板将根据程序把对应动画效果显示在LCD显示器上。

嵌入式游戏系统的硬件框图如图2所示。电路由主控制器STM32、多媒体处理芯片Amazon-LF以及NAND FLASH存储器、音频处理电路、视频接口电路、SD卡接口电路和电源电路等组成。主控板通过抗干扰能力强的CAN总线和分机实现通信,并将分机通过CAN总线发来的相关信息经过逻辑处理后,转换成命令传递给多媒体处理芯片Amazon-LF。Amazon-LF芯片通过串口和主控制器通信,在接收到指令后自行读取多媒体库里面的相关素材并进行处理,包括图像翻转、解压和音频去噪等工作,然后将数据输出到显示和音频设备。

图2 嵌入式主控板硬件框图

3.动漫游戏系统硬件电路设计

3.1 主控器及外围电路设计

如图3所示是主控板的部分原理图,其中包括详细的SD_CARD接口和CAN总线接口电路图。系统设计中充分利用了STM32这款处理器的优越性能、丰富外设以及自带的固件函数。其中SD卡的作用是自动为动漫游戏系统进行程序升级,当载有程序的SD卡接入电路时,系统能自动检测到硬件并开始程序升级;USB和LCD作为备用接口;STM32通过一个串口和Amazon-LF连接实现通信;STM32的CAN接口通过CAN总线接口芯片实现与分机通信。

图3 接口原理图

3.2 多媒体处理电路设计

系统的多媒体处理电路的设计主体是采用32位的Amazon-LF EISC微处理器。与传统的多媒体处理系统相比较,采用专用的多媒体处理器可以减小核心CPU的处理负担,提高系统的运行速度。Amazon-LF是一款低成本、高性能的视频/图像加速器,其内部集成了32位EISC(SE3208)处理器核以及一些周边的功能模块如定时器、串行接口等。芯片内建的Cache可以提供单指令周期的编码和数据处理以加速程序的执行速度。Amazon-LF支持NTSC/PAL的视频显示式,并具有基于3D的图像加速引擎。实现对多媒体资料存储作用的是NAND FLASH,采用的是M59PW1282芯片,在电路中的作用是存储动漫游戏中用到的图片文件、音乐文件、以及各种字库资源。在系统运行过程中,Amazon-LF在接收到STM32发来的指令后,读取M59PW1282中的存储的数据,并将读取的的数据送往视频和音频输出口输出。音频驱动电路实现对Amazon-LF输出的音频信号的驱动和处理,包括滤波、数模转换、信号放大等。

4.动漫游戏系统软件系统设计

4.1 uC/OS-II实时操作系统移植

由于系统需要多线程操作,任务调度,需要为动漫游戏系统移植uC/OS-II实时操作系统。uC/OS-II是用标准C语言和汇编语言来写的,只有与微处理器相关的部分是由汇编指令写的,所以在STM32F103VET6上移植uC/OS-II实时操作系统,只需要做的工作就是修改与处理器有关的部分,主要有三个文件:写处理器相关文件OS_CPU.H和OS_CPU_C.C;汇编文件0S_CPU_A.ASM和系统配置文件OS_CFG.h,图4给出了uC/OS-Ⅱ体系结构以及它与系统硬件之间的关系。图中还给出了STM32初始化函数中有相关的内设和外设配置。

图4 uC/OS-II软件和对应硬件体系结构

4.2 硬件驱动程序

动漫游戏系统在使用微控制器的各种外设接口资源、以及各种硬件资源时只需要调用这些硬件资源的驱动程序。动漫游戏系统的硬件驱动程序由串口打印输出驱动程序、SD卡驱动程序、Amazon-LF驱动程序、液晶显示器驱动程序、SPI串行通信口驱动程序等程序组成。以上的驱动程序保证了各个模块硬件资源的正常工作。系统只要调用这些底层驱动程序,就可实现整个动漫游戏系统的各个硬件部分功能。

4.3 应用程序设计

图5 主任务程序流程图

图6 动画程序流程图

图7 示意效果图

应用程序包括一个主函数程序和4个任务程序。(1)主函数包括了uC/OS-Ⅱ系统的初始化,主任务初始化以及一些相应的硬件初始化程序,在主函数中创建了4个任务函数,包括主任务、动画任务、声音任务、显示任务。主函数的程序流程如图5所示。(2)主任务程序设计。主任务程序是在主函数中创建的,主函数创建了4个任务,应用程序所需要实现的功能大部分都在这4个任务中,而主任务是几个任务中最重要的一个任务,在主任务中有实现程序升级的函数,LCD、按键、CAN和动画等初始化函数,以及处理消息任务和定时任务等。主任务程序流程图如图5所示。(3)动画子程序设计。系统中的动画采用金鱼群的游动作为实验测试。实现鱼群游动的动画应用程序,是划分到最细的子程序模块。金鱼群游动函数程序流程见图6所示。动画的页面效果是多层图层叠加在一起显现的。而图层就象胶片一张张按顺序叠放在一起,组合起来形成页面的最终效果。金鱼图层就只含有金鱼图像,同理,背景图层就只含有背景图像。动漫游戏系统设计中,采用了多层图层,不同图像创建了自己的图层。当一层图层处于顶层时,它会遮掩它下面的图层,不用的地方可以滤掉,使下一层的图像显现。当一幅图像需要调用时,直接使它的图层标志使能,同理,当不需要该图像时,则关闭对应的图层。这种设计方案可以减少芯片处理数据的负荷,使图像显示更加流畅。

5.结语

本文利用STM32作为中央处理器设计了硬件电路。在硬件电路基础上移植uC/OS-II实时操作系统并完成了应用程序的编写,最后成功实现了一个动漫游戏系统设计。由系统的图形接口输出的图像运行流畅,可以到达18帧/秒的传输速度,图7为其中截取的一幅图像。经过温度和时间测试,系统运行稳定可靠。

[1]隋杨洋.动漫游戏产业的发展现状、产业链接与政策研究[J].南方论丛,2008(09)03:191-193.

[2]蔡进,赵呈领.浅谈我国教育游戏的现状问题及开发原则[J].教育信息化,2005,10:21-23.

[3]廖祥忠,贾磊磊.2008中国动漫产业发展报告[R].合肥:安徽美术出社,2010:2-13.

[4]谭玲.动漫产业[M].重庆:四川大学出版社,2006:150-200.

[5]尹晓宇.科技改变生活:电子游戏[J].今日科苑,2009(01):20-21.

[6]马红亮.电子游戏的教育价值:来自美国研究的新观点[J].开放教育研究,2009(01):105-109.

[7]胥京宇.用“软件+服务”平台满足嵌入式市场的新趋势——微软嵌入式事业部发展访谈[J].世界电子元器件,2009(01):94-95.

[8]张舸,林世勇.基于嵌入式系统的游戏程序设计[J].现代电子技术,2009,06(293):86-90.

[9]姚锡忠.嵌入式操作系统的现状及发展趋势[J].中国新技术新产品,2009(23):38

[10]曹文浩.一种嵌入式操作系统内核的设计与实现[D].吉林大学,2009:8-12.

[11]Andrew N.Sloss,Dominic Symes,Chric Wright著.沈建华译.ARM嵌入式系统开发——软件设计与优化[M].北京:北京航空航天大学出版社,2005:145-245.

[12]宋凯,严丽平,甘岚.ARMLinux在S3C2410上的移植[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.

猜你喜欢
驱动程序图层嵌入式
TS系列红外传感器在嵌入式控制系统中的应用
计算机硬件设备驱动程序分析
搭建基于Qt的嵌入式开发平台
解密照片合成利器图层混合模式
巧用混合图层 制作抽象动感森林
嵌入式软PLC在电镀生产流程控制系统中的应用
跟我学添加真实的光照效果
倍福 CX8091嵌入式控制器
基于MPC8280的CPU单元与内部总线驱动程序设计
国外建筑CAD图层标准发展现状与研究