基于SEP4O2O微处理器的动作控制MP3的设计

发布者:yunhao最新更新时间:2010-04-12 来源: 电子科技关键字:MP3  手持式设备  SEP4020  嵌入式  Linux  动作控制 手机看文章 扫描二维码
随时随地手机看文章

  0引言

  动作识别是一个很热门的话题。苹果公司继推出具有轰动效应的多点触控技术后又筹备申请自己的动作识别专利。动作的识别简单的说就是利用加速度传感器,检测在空间上的速度变化,通过算法,提取动作。动作识别在很多方面都有应用,比如Wii、手机感应游戏、四桨飞行器等,但是目前很少甚至没有将其用在MP3控制上的。当今的电子产品的一大潮流就是用动作控制。试想一下一个没有任何触摸、机械按键的MP3,只要你前后左右的晃动就能进行所有最基本的控制操作,既灵动又时尚,这应当是一种全新的操作体验。本文将探讨如何设计这种通过动作来进行正常控制的MP3。

  1硬件平台

  1.1SEP4020嵌入式处理器

  本文所述驱动程序基于SEP4020嵌入式微处理器。SEP4020是由东南大学国家专用集成电路系统工程技术研究中心设计的一款处理器,采用0.18μm标准CMOS的工艺设计,内嵌ASIXCORE(32位RISC内核,兼容ARM720T,带8kB指令数据Cache和全功能MMU)。SEP4020芯片中集成各种功能,包括:

8/16位SRAM/NORFALSH接口,16位SDRAM接口
硬件NANDFLASH控制器,支持NANDFLASH自启动,支持软件/硬件ECC校验
10M/100M自适应以太网MAC,支持RMII接口
64kByte高速片上SRAM
USBl.1Device,全速12Mb/s
支持I2S音频接口
支持MMC/SD卡
LCD控制器,支持640×480×16位TFT彩屏和STN黑白、灰度屏
RTC,支持日历功能/WatchDog,支持后备电源
10通道TIMER,支持捕获、外部时钟驱动和MATCHOUT
4通道PWM,支持高速GPIO
4通道UART,均支持红外
2通道SSI,支持SPI和Microwire协议
2通道SmartCard接口,兼容IS07816协议
支持最多97个GPIO,14个外部中断
支持链表DMA传输和外部DMA传输
片上DPLL,支持多种功耗模式:IDLE、SLOW、NORMALSLEEP

  1.2MC9S08QG8

  本文中的动作捕捉判断部分由MC9S08QG8来控制完成。MC9S08QG8是Freescale公司的一款单片机,它的性能如下:

8通道、10位模数转换器
3个通讯接口:SCI、SPI、IIC
4k或8k可重编程FLASH存储器
内置在线仿真器(ICE)

  1.3MMA7620

  动作控制MP3中动作的感应是由MMA7620完成的。MMA7620是Freescale公司的一款三向加速度传感器,它的性能如下:

3轴加速度感应和输出,可同时测量三个坐标轴(x、y、z)的值并由三个通道输出
4种灵敏度可供选择
有休眠模式[page]

  2动作控制MP3的设计

  2.1动作捕捉

  一个动作从开始到结束一定会有加速度的产生,所以可以通过检测伴随着动作产生的加速度的大小和方向来判断动作。要测量加速度的大小就需要一个加速度传感器,将所得到的加速度以模拟量的形式表示,然后将传感器所得到的模拟量通过一个AD转换模块转换成数字信号以方便后续计算。但是查找资料发现,如果单方面的使用一个AD变换器将从加速度传感器中得到的电压信号转换成为数字信号并要求达到期望的精度将导致成本的大幅度提高,然而现有很多的单片机中已经集成了AD转换模块,并且整个单片机的价格要低于单买单个三通道AD转换芯片。更为可观的是还可以利用单片机本身的处理功能对AD转换所得到的数字信号进行处理,预判动作。而且单片机中集成了很多的通信协议,简单而健壮。综合以上考虑,如果选用单片机代替AD转换模块就可以减轻核心板的负担和整个项目的开发难度。

  加速度传感器可以选择使用Freescale公司的MMA7620三轴加速度传感器。单片机可以选择使用Freescale公司的MC9S08QG8单片机,它集成的八通道9bitAD转换模块正好和MMA7620的三通道输出相匹配,体积也很小,适用于便携设备。

  图l是手持部分的原理图,包括单片机和传感器PTA0、PTAl、PTA2:输入:分别接三向加速度传感器的x、y、z端口输出,读取加速度传感器的x、y、z轴的模拟数据。

PTA3:输出;接三向加速度传感器的Sleep引脚用于使传感器处于休眠状态从而降低功耗和锁定,避免运动时的干扰。
PTTB0:输入;作为串口接收脚用于接收从核心板传来的命令。
PTFBl:输出;作为串口发送脚用于向核心板发送由加速度传感器所测的经过单片机处理后所得到的动作信息。
PTB6、PTB7:输出;接加速度传感器的gselect引脚从而控制加速度传感器的灵敏度。

   2.2动作判断

  利用Freescale公司的FreeMASTER软件,可以很方便地进行程序在线调试,查看程序所有全局变量,具体软件和使用方法请查询Frees-cfle管方网站。以下得到的数据为使用FreeMASTER欺件,以时间和AD转换值为坐标绘图得到。 [page]

  每次每个方向采样20个数据,由于第一个数据的可靠性比较大,所以采用每组数据的第一个数据作为比较依据。经过多次测试,当x方向的数值小于80时为右转动作,x的方向的数值大于170时为左转动作,y方向的数值小于70时为向上抬的动作,y方向的数值大于160时为向下压的动作。虽然以上数据能表示动作,但人的动作时间相对单片机处理分析速度差别还是太大。为了解决这个问题,使单片机和动作同步,可以把前两次的动作记录下来,根据前两次的动作对当前动作进行过滤:如果连续几个相同的动作,就判断为一次动作,不相同则切换。动作的切换必然带有前后动作的变化,记忆之前的动作就可以判断出有无动作切换。这样的动作识别方法比较简单且容易实现,如果要实现更为精确的识别,则需要对算法进一步优化。图2为右摇时AD转换器所得到的结果。图3为前后左右摆动数据。

  在判别动作后,通过串口通信协议,发送双办约定的动作ID,具体见表l

  通过串口协议,核心板也可以对传感器和单片机进行一定的控制,包括传感器灵敏度调节,锁定休眠功能,使得后期的测试开发更加的方便。[page]

  2.3MP3控制

  Linux操作系统作为平台,其良好的系统可定制、可移植性使得其在嵌入式领域占有重要的地位。Linux有很多好的进程通信机制,如内存共享、管道、多线程、信号等,这里选择信号作为控制通信的桥梁。利用Linux内部完整的串口驱动程序可以很轻松地通过在串口的软中断接收程序中发射信号给指定的程序,也就是播放器程序,然后播放器程序接收并判断信号类型,给相应控制全局变量赋与相应的控制值,使得介入控制变得可能。控制使用的是播放器自带的机制,使得更加地稳定可靠。使用Madplay作为MP3播放软件,其默认的控制是通过终端键盘来实现的。在设计时为了达到用动作产生的信号量来控制播放,同时不去大量修改Madplay的程序源码,可以通过截断播放器与键盘的联系,与串口连接上,这样就可以基本不用修改上层的机制就能够控制整个播放器的动作。

  具体系统移植和需要的源代码软件包详见www.armfans.net

  2.4MP3播放

  MC9S08QG8与SEP4020之间通过串口来进行通信。

  基本的串口操作原则是先保存串口原始的参数,然后再设置程序所需要的参数,程序结束后恢复现场。串口一般操作如下:

  串口操作需要的头文件

   串口软中断设置,填充SIGIO结构体,分配相应中断函数:

[page]

  在操作系统中加入自动播放脚本,使得系统在开机时完成搜索MP3文件,建立播放列表,启动Madplay播放器等操作。脚本代码如下:

  动作发生时MC9S08QG8向SEP4020发送一个动作信号,然后SEP4020中的Linux内核就会发送一个SIGIO(串口信号)给各个用户进程。Madplay生程捕捉该信号,并且读取串口上的消息,用以判断动作的形式。在Madplay程序中需要加入两个模块。第一个模块用于读取串口上的消息,具体实现方法是打开并读取串口设备文件/dev/ttySl来获取消息,然后按照设定会从设备上读到4种串口信号,对应4个ASCII字符“L,R,U,D”分别对应四种不同的动作;第二个模块是响应信号的处理函数,一旦Linux内核接收到SIGIO串口信号,Madplay进程就进入软中断读取/dev/ttySl上的串口消息。甫一判断出动作,Madplay就用kill函数向本进程发送相应的信号来控制播放。

  3总结

  本文介绍了针对SEP4020处理器等硬件在Linux操作系统下的动作控制MP3的设计流程,为这种控制方式的MP3设计提供了一个范例。以下是一些改进的建议:作为手持式设备,动作控制MP3对于能耗的要求比较高,所以设计时必须考虑多使用一些低功耗的器件替代高功耗的器件。动作控制的MP3在运动中是受限制的,MP3的判断会受到比较大的干扰。所以如果动作采样方法和动作判断算法难以有很大的改进,为方便继续使用应当考虑给MP3加上其他的控制方式,暂时取代动作控制。

关键字:MP3  手持式设备  SEP4020  嵌入式  Linux  动作控制 引用地址:基于SEP4O2O微处理器的动作控制MP3的设计

上一篇:iSuppli报告iPad改变电子设计领域游戏规则
下一篇:2010年,中国成长为全球第二大电子书市场

推荐阅读最新更新时间:2024-05-03 11:12

瑞萨电子R-Car系列SoC支持汽车级Linux平台
日本东京,2017年8月7日讯 - 全球领先的半导体解决方案供应商瑞萨电子株式会社(TSE:6723)今日宣布,已经开始批量供应第一款采用汽车级Linux(AGL)软件的R-Car片上系统(SoC)。AGL是一个跨行业合作的开源项目,旨在为联网汽车开发完全开放的软件堆栈。 瑞萨电子认为,为扩大车载软件开发者基数,AGL不可或缺。瑞萨R-Car入门套件和AGL软件正在加速车载信息娱乐(IVI)应用的开发,帮助整车厂商更快推出联网汽车。瑞萨电子是AGL项目的白金会员,与丰田汽车等整车厂商携手,共同致力于推动开源软件的开发。瑞萨电子相信,通过支持这些活动,不仅可以帮助更多的一级供应商轻松开发车载应用,还可帮助对嵌入式应用软件不太熟悉
[汽车电子]
基于嵌入式Linux的3G无线视频终端的设计与实现
摘要:基于嵌入式系统开发以及3G相关技术,采用ARM+Linux作为软硬件开发平台,充分利用了ARM以及Linux系统丰富的软硬件资源,设计并实现了一个基于嵌入式Linux的3G无线视频终端。在软件设计上,采用了Linux的Netfilter架构与socket结合的方法,引入内核缓冲机制,达到了将数据包获取功能由用户态转入内核态,实现了数据包在Linux内核态的获取及高效转发,并且解决了3G模块因拨号延迟与视频服务器产生速率不匹配所造成的数据丢包问题,同时在嵌入式Linux下为3G模块开发了驱动。 关键词:嵌入式Linux;3G;Netflter;无线终端;套接字 随着网络技术和嵌入式技术的迅猛发展,通过网络来实现视频监控已经
[工业控制]
基于<font color='red'>嵌入式</font><font color='red'>Linux</font>的3G无线视频终端的设计与实现
嵌入式】W801 OTA方案设计
系统分区表 W801是平头哥内核的WIFI芯片。给到的SDK里面没有找到中断向量表重定向的函数,类似于STM32的NVIC_SetVectorTable,所以中断向量表只能给主程序用,那么BootLoader就没法弄了。干脆不用BootLoader了,直接划一个分区用来存放Updater代码,用于解压或差分计算新固件并复制到主分区(存在变砖的可能性)。 国产芯片就是资料不全,规格书里面写了Flash的寻址空间为0x0800 0000 ~ 0x0FFF FFFF,但是在SDK里面,链接脚本是从0x080d0400开始的,0x080d0400是在toolsw800wconfig文件里面W800_RUN_ADDRESS选项定义的默认
[单片机]
【<font color='red'>嵌入式</font>】W801 OTA方案设计
用MSP430实现的嵌入式因特网终端设计
作者Email: liekie@126.com 【摘 要】本文详细描述了用TI公司的MSP430单片机实现嵌入式因特网终端的设计,包括硬件和软件两大部分。MSP430微控制器控制以太网控制器CS8900A实现本地局域网的功能,通过TCP/IP协议提供与因特网进行连接的应用接口,使用该应用接口,可以建立新的任务或改变现有的任务,实现与因特网中其它终端间的通信。在本文中,给出了硬件原理图,说明了部分模块的工作流程。 【关键词】因特网;MSP430;终端;以太网;TCP/IP 1. 介绍 计算机通信系统尤其是因特网在日常生活中的作用越来越重要,并且呈加速发展的趋势。如今,上网不再是个人电脑和网络工作站的专利,很多用微控制器(或称单
[单片机]
设计超低功耗的嵌入式应用:五种电源模式详解
  通常说来,SoC相对于传统MCU而言能支持更多低功耗模式。其原因在于SoC集成度高,有更多片上组件和多种 电源 配置,以支持不同的工作需求。 电源 模式的数量与每种模式下的可用资源根据器件会有所不同。举例来说,在某种低功耗模式下,某个器件能在仅保持寄存器和RAM内容的情况下给所有其它组件断电,而另一种器件则只是给CPU断电,而让其它资源继续运行。不同制造商会对这些模式采取不同的命名方法。在本文中,我们将以赛普拉斯的PSoC 4器件为例来详细介绍各种 电源 模式。   以下电源模式也得到其它制造商的大多数设备的支持:   ●工作模式   ●休眠模式   ●深度休眠模式   ●冬眠模式   ●停止模式   下面我
[电源管理]
设计超低功耗的<font color='red'>嵌入式</font>应用:五种电源模式详解
OK6410A 开发板 (八) 37 linux-5.11 OK6410A 内存管理第五阶段
vmalloc vmalloc_init for_each_possible_cpu(i) { // vfree_deferred 类型变量的 链表 和 工作任务 free_work // free_work用于vfree执行时延迟异步释放vmalloc内存 struct vfree_deferred *p; ... // vmap_block_queue 类型变量的链表和锁 // vmap_block_queue 是 非连续内存块队列管理结构 struct vmap_block_queue *vbq; ... } // 将vmalloc_init之前的过程中分配的vma
[单片机]
基于Linux的WEB服务器的设计与实现
    嵌入式WEB服务器的主要设计思想就是将嵌入式系统和 WEB技术结合起来,将 WEB技术引入到现场测量和控制设备中,从而实现基于嵌入式 WEB服务器的控制系统。用户可以通过现有的公共通信网络,使用标准的 Web浏览器作为接口直接对现场的控制设备进行访问,监控和维护等操作,实现了异构设备之间的跨平台互访。 1嵌入式 Web服务器总体设计     系统硬件设计如图 1所示。嵌入式 WEB服务器由网络模块、接口模块和存储模块三个部分组成。网络模块是整个嵌入式 WEB服务器的核心,负责完成服务器的初始化,并且在 80端口等待用户的连接请求。根据用户请求的类型提供相应的服务。此外还要实现电子邮件功能,用来完成自动报警和数据的保存,
[嵌入式]
低成本ARM架构 工商业储能EMS能量控制单元飞凌嵌入式FCU2601新品发布
  FCU2601嵌入式控制单元是飞凌嵌入式为锂电池储能行业设计的EMS能量控制单元产品,设计兼具高性能,多接口,低功耗,广泛满足各类储能系统的本地能源管理应用需求。FCU2601嵌入式控制单元综合考虑到了储能行业不同场景的差异化需求,在硬件,防护,认证,软件等方面都做了充分的准备,以确保产品的适用性、稳定性和可靠性。   丰富的接口功能   飞凌嵌入式FCU2601嵌入式控制单元分为标准版和扩展版2种版本,扩展版拥有11路RS485,2路RS232,4路独立网口,2路CAN,8路DI,6路DO等多种常用接口。 (注:上图为FCU2601扩展版。标准版有4路RS485,2路千兆网口,无
[新能源]
小广播
最新手机便携文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved