解析SEP4020微处理器的动作控制MP3的设计.docx
解析SEP4020微处理器的动作控制MP3的设计引言动作识别是个很热门的话题。苹果公司继推出具有轰动效应的多点触控技术后又筹备申请自己的动作识别专利。动作的识别简单的说就是利用加速度传感器,捡逃在空间上的速度变化,通过篁达,提取动作。动作识别在很多方面都有应用,比如Rii、独感应游戏、四桨飞行器等,但是目前很少甚至没有将其用在MP3控制上的。当今的电子产品的大潮流就是用动作控制。试想一下一个没有任何触摸、机下按键的加3只要你前后左右的晃动就能进行所有最基本的控制操作,既灵动又时尚,这应当是一种全新的操作体验。本文将探讨如何设计这种通过动作来进行正常控制的MP3。1坡住平台1.1SEP4020嵌入式处理器本文所述驱动程序基于SEP4O2O入式微处理器。SEP4020是由东南大学国家专用型则I路系统工程技术研窕中心设计的一款处理器,采用0.18m标准CMOS的工艺设计,内嵌ASIXCORE(32位QSC内核,兼容KM720T,带8kB指令数据CaChe和全功能MMU)。SEP4020芯片中第成各种功能,包括:8/16位srm/norf1.sii½i,16位sdrm接11馍件Nandf1.ash控制器,支持NAM)F1.ASH自启动,支持软件/硬件ecc校验IOM/100M自适应以太网MAa支持KMII接口64kBy段高速片上SRAMUSB1.!Device,全速12Mb/s支持I2S齐频接口支持MMC/SD卡1.CD控制器,支持640X480X16位国1彩屏和STN黑白、灰度屏RTC,支持日历功能/WatchDog,支持后备电源10通道I1.MER,支持捕获、外部时钟邨动和MATCHoUT4通道PWM,支持高'速GPIo4通道咽,均支持红外2通道SS1.支持SPI和Microwire协议2通道SmartCard接口,兼容1S07816协议支持展多97个GPIO,14个外部中断支持链表传输和外部DM传输片上DP1.1.,支持多种功耗模式:ID1.E、S1.OW、NORMA1.S1.EEP1. 2MC9S08QG8本文中的动作捕捉判断部分由MC9S()8QG8来控制完成.MC9S08QG8是Freesca1.e公司的一款单片机,它的性能如下:8通道、10位模数转换器3个通讯接口:SCI、SPI、IIC4k或8k可重四F1.ASH存储器内置在线3遛(ICE)1. 3IMA7620动作控制MP3中动作的感应是由MMA7620完成的oMMA7620是Freesca1.e公司的一款三向加速度传感器,它的性能如下:3轴加速度感应和输出,可同时测量一:个坐标轴(x、y、z)的值并由;个通道输出4种灵敏度可供选择有休眠模式2动作控制YP3的设计2. 1动作捕捉一个动作从开始到结束一定会有加速度的产生,所以可以通过检测伴随着动作产生的加速度的大小和方向来判断动作。要测量加速度的大小就需要一个加速度传感器,将所得到的加速度以摸拟量的形式表示,然后将传感器所得到的模拟圻通过一个AD转换模块转换成数个佶号以方便后续计嗜.但是查找资料发现,如果单方面的使用一个AD变换器将从加速度传感器中得到的电压值量转换成为数字信号并要求达到期望的精度将导致成本的大幅度提尚,然而现有很多的单片机中已经集成了AD转换模块,并且整个单片机的价格要低于单买雎个三通道AD转换芯片。更为可观的是还可以利用单片机本身的处理功能对AD转换所得到的数字信号进行处理,预判动作。而且堆片机中集成了很多的逆传协议,简单而健壮。综合以上考虑,如果选用单片机代替AD转换模块就可以减轻核心板的负担和整个项目的开发难度.加速度传感器可以选择使用Frcesca1.e公司的MMA7620三轴加速度传感器。单片机可以选择使用FrQeSCaIe公司的MC9S08QG8单片机,它集成的八通道9bitAD转换模块正好和MMA7620的三通道输出相匹配,体积也很小,适用于便携设备。图1是手持部分的原理图,包括单片机和传感器PTA0、PTA1、PTA2:输入:分别接三向加速度传感涔的x、y、Z端口输出,读取加速度传感涔的X、y、Z轴的模拟数据。PTA3:输出:接三向加速度传感器的SIeeP引脚用于使传感器处于休眠状态从而降低功耗和锁定,避免运动时的干扰。PTTB0:输入:作为串口接收脚用于接收从核心板传来的命令。IyTFB1.:输出:作为串口发送脚用于向核心板发送由加速度传感器所测的经过堆片机处理后所得到的动作信息。PTB6、PTB7:输出:接加速度传感器的gse1.ec1.引脚从而控制加速度传感涔的灵敏度。2. 2动作判新利用FreeSCaIe公司的FreeMASTER软件,可以很方便地进行程序在线调试,杳看程序所有全局变量,具体软件和使用方法请隹询FreeS-CfIe管方网站。以卜.得到的数据为使用FreeMASTER欺件,以时间和AD转换值为+标绘图得到。每次每个方向采样20个数据,由于第一个数据的可第性比较大,所以采用每组数据的第个数据作为比较依据。经过多次测限,当X方向的数值小于80时为右转动作,X的方向的数值大于170时为左转动作,y方向的数值小于70时为向上抬的动作,y方向的数值大于160时为向下压的动作.虽然以上数据能表示动作,但人的动作时间相对单片机处理分析速度差别还是太大。为了解决这个问题,使堆片机和动作同步,可以把前两次的动作记录卜.来,根据前两次的动作对当前动作进行过波:如果连续几个相同的动作,就判断为次动作,不相同则切换“动作的切换必然带有前后动作的变化,记忆之前的动作就可以判断出有无动作切换。这样的动作识别方法比较简单且容易实现,如果要实现更为精确的识别,则需要对算法进一步优化。图2为右摇时AD转换器所得到的结果。图3为前后左右摆动数据。在判别动作后,通过串口通信协议,发送双办约定的动作ID,具体见表1通过串口协议,核心板也可以对传感耦和单片机进行一定的控制,包括传感器灵敏度调节,锁定休眠功能,使得后期的测试开发更加的方便。2. 3MP3控制1.inUX操作系统作为平台,其良好的系统可定制、可移植性使得其在嵌入式领域占有全要的地位。1.inUX有很多好的进程通信机制,如内存共享、管道、多线程、信号等,这里选择信号作为控制通信的桥梁。利用1.inUX内部完整的串口驱动程序可以很轻松地通过在小U的软中断接收程序中发射信号给指定的程序,也就是播放器程序,然后播放器程序接收并判断信号类型,给相应控制全局变域赋与相应的控制值,使得介入控制变得可能。控制使用的是播放器自带的机制,使得更加地稳定可靠。使用MadP1.ay作为MP3播放软件,其默认的控制是通过终端键盘来实现的。在设计时为了达到用动作产生的信号量来控制播放,同时不去大髭修改HadPIay的程序源码,可以通过裁断播放器与键盘的联系,与串口连接上,这样就可以基本不用修改上房的机制就能够控制整个播放器的动作。具体系统移植和需要的源代码软件包详见2. 4MP3播放MC9S08QG8与SEP1020之间通过串口来进行通信。施本的串口操作原则是先保存串口原始的参数,然后再设日程序所需要的参数,程序结束后恢第现场。串口般操作如下:串口操作需要的头文件串门软中断设置,填充S1.GIO结构体,分配相应中断函数:在操作系统中加入自动播放脚本,使得系统在开机时完成搜索MP3文件,建立播放列表,启动MadPIay播放器等操作。脚本代码如卜丁动作发生时MC9S08QG8向SEP4020发送一个动作信号,然后SEP4020中的UnUX内核就会发送一个S1.Gn)(串口信号)给各个用户进程.MadP1.ay生程捕捉该信号,并J1.读取串口上的消息,用以判断动作的形式。在MadP1.ay程序中需耍加入两个模块“第一个模块用丁读取申口上的消息,具体实现方法是打开并读取串口设备文件devIiyS1.来获取消息,然后按照设定会从设备上读到4种串口信号,时应4个ASC1.1.字符“1.,R,U,D”分别对应四种不同的动作:第二个模块是回京信';的处理函数,-H.1.inux内核接收到S1.GIO串口信号,MadP1.ay进程就进入软中断读取/devttyS1.上的串口消息。甫判断出动作,MadpIay就用ki1.1.函数向本进程发送相应的信号来控制播放。3总结木文介绍了针对SEP4020处理器等硬件在1.inUX操作系统卜的动作控制MP3的设计流程,为这种控制方式的MP3设计提供了个范例。以下是些改进的建议:作为手持式设备,动作控制MP3对于能耗的要求比较高,所以设计时必须考虑多使用一些低功耗的器件替代高功耗的器件。动作控制的MP3在运动中是受限制的,MP3的判断会受到比较大的干扰。所以如果动作采样方法和动作判断算法雄以有很大的改进,为方便继续使用应当考虑给MP3加上其他的控制方式,哲时取代动作控制。jq