设备应用于智能遥控器中的设计与实现

发布者:AngelicHeart最新更新时间:2013-08-06 来源: dzsc关键字:智能遥控器  IA2E  单片机 手机看文章 扫描二维码
随时随地手机看文章

  USB(Universal Serial Bus,通用串行总线)具有高速度、低成本、低功耗、即插即用和使用维护方便等优点,随着USB应用领域的逐步扩大,USB 设备现在不但是计算机连接外围设备的标准输入/输出,它也成为智能电视连接外围设备的标准输入/输出。HID 是Human Interface Dvices 的缩写,即人机接口设备, 是USB 协议中最早提出并支持的一种设备类,也是应用最广泛的一类USB 设备, 典型的HID 设备有键盘和鼠标等。USB 串行总线规范专门定义了HID 规范,只要设备符合HID 规范,就是HID 设备。操作系统自带了HID 的驱动程序,用户无需去开发很麻烦的驱动程序,这使HID 设备能够与操作系统方便快捷的建立通信。

  这些优点使得HID 设备在智能电视领域也得到了越来越广泛的应用,本论文就是研究基于HID 规范的六轴体感游戏手柄应用于智能遥控器中的设计与实现。

  1 工作原理

  智能遥控器包括两部分———遥控器和RF 接收器(Dongle),遥控器端和Dongle 端采用射频通信协议进行通信;而Dongle 端通过USB 接口与电视机连接, 它们之间通过USB协议进行通信。依据HID 规范,在Dongle 端模拟出一个具有输入和输出功能的HID 体感游戏手柄, 与电视机通过USB协议进行通信,从而将遥控器和体感游戏手柄合二为一。

  Dongle 端与遥控器端对码成功之后,它们之间就建立了通信。遥控器中体感游戏手柄功能的开启和关闭主要是通过电视机的反馈信息实现的。按下遥控器端的体感开关键时,电视机收到信息立即发出反馈信息,使遥控器端的体感开关指示亮,体感游戏手柄功能开启,用户可用遥控器体验体感游戏, 电视机会根据游戏的进度调用遥控器中的传感器模块、震动模块、Audio 模块,实现遥控器和电视机之间的互动;再按下遥控器端的体感开关键时,电视机发出反馈信息使遥控器端的体感开关指示灯灭,体感游戏手柄功能关闭。

  体感游戏手柄的操作方式主要是按键和特殊动作。在本系统中, 体感游戏手柄所需的按键与遥控器本身的按键复用,特殊动作的数据转换成相应的射频键值,当有特殊动作操作时,以按键键值的形式发送出去。另外,体感游戏手柄特殊动作的功能可以用于操作智能电视机的TV 部分, 在体感游戏手柄模式下,遥控器通过计算传感器的数据,检测出向左右甩动和向前甩动一下、两下4 个动作,可作为切换图片、音乐等使用。比如向右甩为后一曲,向左甩为前一曲,向前为播放暂停,向前快速两下为退出。

  2 系统组成

  2.1 硬件系统

  智能遥控器有许多功能,这里主要研究体感游戏手柄功能的设计与实现。涉及到的芯片主要有六轴传感器———三轴加速计(G-Sensor)和三轴陀螺仪(Gyro)与MCU,采用的加速计是ADXL345,陀螺仪是IMU3000,MCU 是IA2E。Dongle 端采用的MCU 也是IA2E。

  2.1.1 ADXL345、IMU3000 和IA2E 性能简介

  ADXL345是一款小而薄的超低功耗三轴加速计,分辨率高(13 位),测量范围达±16 g。可通过SPI(3 线或4 线)或I2C 数字接口访问,ADXL345 非常适合应用于移动设备。它可以在倾斜检测应用中测量静态重力加速度,还可以测量运动或冲击导致的动态加速度。其高分辨率(3.9 mg/LSB),能够测量不到1.0°的倾斜角度变化。

  IMU-3000内建了三轴陀螺仪与数字运动处理硬件加速引擎,并具有第二条I2C 接口来连接外接数字加速器,以执行完整的六轴融合算法。在应用层面上,将线性及旋转动作合并为单一的数据流。透过整合之融合算法输出,IMU-3000可减轻系统主处理器的密集运动处理演算,不须频繁读取运动感测数据,使之成为低成本、低功耗的微处理器。

  IA2E是SYNIC 公司的无线音频收发芯片,包含无线射频收发模块和USB 接口模块, 其USB 模块包含一个控制端点,两个同步端点和一个双向中断端点。具有非常强的RF 抗干扰特性。无需任何软件支持即可通过I2S、USB 等接口连接到电脑、电视、MP3 等设备。

  2.1.2 硬件系统设计

  在系统设计上, 遥控器和六轴传感器是两个分离的模块, 这样做的好处是传感器模块不影响遥控器的其他功能。

  本论文主要介绍一下六轴传感器模块与MCU 之间的通信方式和Dongle 端模块的硬件系统设计。

  首先,介绍传感器模块与MCU 之间的通信方式。它们之间通过简单的I2C 通信协议方式进行通信。具有体感游戏手柄功能的智能遥控器的遥控器端功能模块框图如图1 所示。

图1 遥控器端功能模块框图

图1 遥控器端功能模块框图

  传感器模块与MCU 之间的电路连接方式如图2 所示。由于传感器模块需要3.3 V 的电源, 而遥控器电路板上自带的电池是5 V 的,所以还需要一个电压转换电路。传感器模块中的G-sensor 产生X 轴、Y 轴和Z 轴方向的加速度数据,Gyro产生X 轴、Y 轴和Z 轴方向的角速度数据。MCU 通过I2C 总线不断的轮询传感器模块来获取这些数据,并把这些数据分析整理成8 个字节的数据包, 再以2.4 GHz 射频通信协议打包发送给Dongle 端。

图2 传感器与MCU 之间连接的电路图

图2 传感器与MCU 之间连接的电路图

  Dongle 端通过射频收发模块与遥控器端进行数据传输,通过USB 总线与电视机之间进行数据传输。Dongle 端模块的硬件电路比较简单, 功能模块框图如图3 所示, 采用单片机IA2E 作为它的MCU。由于IA2E 中包含了射频收发模块和USB 接口模块,所以只需要一个MCU 即可。IA2E 集成了USB通讯中的底层协议, 具有省事的内置固件模式和灵活的外置固件模式,它只是负责数据交换,所以单片机程序设计非常简洁。另外,可以在Dongle 端设计LED 灯电路模块,不仅美观,而且可以辅助软件更好地实现体感游戏手柄的功能, 还可以用来标识电视机的工作状态,保证Dongle 端做出正确的响应。

图3 Dongle 端功能模块框图

图3 Dongle 端功能模块框图[page]

    2.2 软件系统设计

  本系统所设计和实现的体感游戏手柄具有输入和输出的功能,即它具有输入和输出HID 数据包。它不像键盘和鼠标是标准的HID 设备,需要根据HID 规范自定义它的数据包格式。根据数据包的格式,写出其报告描述符,以保证在枚举过程中正确识别出体感游戏手柄设备。Dongle 端分析整理从遥控器端获取到的数据,根据设备的报告描述符,识别出体感游戏手柄数据,并把这些数据整理成符合其输入数据包格式的数据,然后Dongle 端再以USB 协议的通信方式,将整理好的数据传输给电视机。同时Dongle 端接收电视机反馈回来的数据信息, 并整理成符合其输出数据包格式的数据,然后将信息反馈给遥控器端,遥控器端再作出相应的响应。

  与所有HID 设备一样,具有体感游戏手柄功能的智能遥控器Dongle 端的应用程序设计也主要包括以下4 个方面的工作:1)查找所有HID 设备;2)确定哪一个是用户需要的HID 设备,并连接该设备;3)获得HID 设备的信息;4)根据用户需要,读取HID 输入报告或者写入HID 输出报告。

  智能遥控器中可能定义了多个HID 设备,需要使用两个接口,接口0 用于实现其他HID 设备的功能,接口1 用于实现体感游戏手柄的功能。因此需要两个非零端点,因为同一配置下的不同接口,必须使用不同的端点。而数据是通过非零端点进行传输的,体感游戏手柄的接口选用端点2 返回或发送报告数据。Dongle 端通过端点2 输入向电视机返回体感游戏手柄的数据,电视机通过端点2 输出中断将反馈给遥控器的信息发出。

  Dongle 插入后,怎样让电视机识别出USB 体感游戏手柄呢?设备枚举的功能就是实现电视机识别设备的过程,只有枚举成功了,电视机才能识别出设备,建立电视机与设备之间的通信。设备的枚举过程都是通过端点0 实现的。电视机通过端点0 输出中断发出各种请求,数据存放在端点0 的输出缓冲区中。Dongle 端读取并分析端点0 输出缓冲区的数据,然后通过端点0 输入中断做出相应的响应,数据存放到端点0输入缓冲区中, 在电视机下一次发送IN 令牌包后,MCU 会自动将端点0 输入缓冲区数据返回给电视机。当Dongle 端有多个报告描述符时,程序怎么知道电视机请求的是哪个呢? 电视机要获取报告描述符时,请求是发送到接口的。当电视机发出发送到接口1 的报告描述符请求时,Dongle 端会返回体感游戏手柄的报告描述符数据给电视机, 从而成功完成枚举过程。电视机识别出体感游戏手柄,建立它们之间的通信。

  在本系统中,通过在芯片的集成开发环境中添加USB 模块,根据实现设备的功能特点,做出相应设置并编译,实现设备枚举过程的功能及所需的代码, 然后再根据设备的实际需求做相应的修改, 在Dongle 端程序的主函数中初始化USB 模块,就可以实现电视机识别Dongle,进而识别出体感游戏手柄设备。Dongle 端程序主流程图如图4 所示。进入主函数,MCU 首先完成一系列初始化,包括中断配置和USB模块初始化(开始枚举过程)。然后程序就处于一个无限循环中,实现电视机和设备之间的实时通信。

图4 Dongle 端程序主流程

图4 Dongle 端程序主流程

  电视机和设备之间不是随时都能够进行通信的,只有设置了非零配置之后才能进行数据传输。在无限循环中,首先判断电视机和Dongle 端的通信是否准备好,即设备的枚举过程是否成功完成。这需要获取配置值,进行判断,若配置值非零,说明电视机和Dongle 端的通信已建立。Dongle 端不断的获取从遥控器端发来的数据,根据设备的设备描述符、配置描述符集合(包括断点描述符、接口描述符等),分析整理后存放到相应HID 设备的HID 包中, 然后通过USB 总线传递给电视机。

  若按下体感开关键,遥控器选择的是体感游戏手柄功能;否则,遥控器选择的是其他设备的功能。按下体感开关键,电视机先通过端点2 输出中断发出反馈信息, 使遥控器端的体感开关指示灯亮,体感游戏手柄功能打开,然后遥控器可以发送体感游戏手柄数据给电视机。Dongle 端发送体感游戏手柄数据到端点2 之前,需要检查端点2 是否处于空闲状态,即里面是否还有数据未发送出去, 可以通过端点2 输入中断和总线复位中断使端点2处于空闲状态。如果端点2 输入处于空闲状态,就可以通过端点2 输入返回体感游戏手柄数据给电视机了。电视机会根据游戏的进度发出反馈信息, 调用遥控器的传感器模块、震动模块和Audio 模块,实现遥控器和电视机之间的互动。

  3 结束语

  本系统是基于HID 规范的六轴体感游戏手柄应用于智能遥控器中的设计与实现,首先分析了这种体感游戏手柄的工作原理,然后从硬件系统和软件系统两方面提出了体感游戏手柄设计与实现的方案。在智能遥控器中可能有多个HID设备功能的情况下,通过共用一个USB 接口再实现体感游戏手柄的功能。经过反复调试验证表明,具有这种六轴体感游戏手柄功能的智能遥控器工作性能良好,完全可以取代普通的体感游戏手柄体验体感游戏。另外,可以基于此硬件系统和软件系统,遥控器端对传感器的数据进行相应处理后传输给Dongle 端,Dongle 端可以模拟实现其他功能, 譬如进一步实现空中鼠标的功能。

关键字:智能遥控器  IA2E  单片机 引用地址:设备应用于智能遥控器中的设计与实现

上一篇:基于USB主机和ZigBee的无线音响系统
下一篇:一种无线语音传输系统设计方案

推荐阅读最新更新时间:2024-03-16 13:26

缩短上市时间 集成开发环境成MCU关注点
随着MCU产品市场需求不断推陈出新,整机厂商面临的主要课题就是:产品的生命周期越来越短,同一规格的产品数量不断减少,多品种少量生产的市场需求日益强烈。在此情况下,MCU供应商仅仅提供参考设计已经不能满足整机厂商的要求,集成开发环境被引入产品开发中就显得尤为重要了。 紧贴用户需求 集成开发环境(Integrated Developing Environment,简称IDE)是一个综合性的工具软件,它把产品设计全过程所需的各项功能集合在一起,为设计人员提供完整的服务。集成开发环境并不是把各种功能简单地拼装在一起,而是把它们有机地结合起来,统一在一个图形化操作界面下,为设计人员提供尽可能高效、便利的服务。 近几年,客户(整机厂商)
[单片机]
基于AT89C2051单片机的厨房定时器的制作
该制作以5分钟为一个计时单位,最多计时1小时,3V电池做电源,有蜂鸣器报警,工作时功耗为6mA左右(使用AT89C2051),可以使用3V钮扣电池,具有自动关机功能,不运行时耗电量可以忽略不计,单键操作,简单方便。   电路图   VT1为PNP的9012,当电路不工作时VT1的B极由R4得到高电平,VT1截止,AT89C2051无法从VT1的E极得到电源。当SW1按下时,VT1的B极通过VD2和SB1接地,由高电平转为低电平,VT1导通。此时AT89C2051得电,同时通过C1,R4复位。复位成功后P3.7升为高电平,使得VT2导通,从而使VT1的B极保持低电平状态,这时就算松开SB1,VT1也不会截止而导致MCU
[单片机]
基于PIC单片机智能湿度测量仪电路
  由HM1500/1520型湿度传感器和单片机构成的智能湿度测量仪电路如下图所示。该仪表采用+5V电源,配4只共阴极LED数码管。电路中共使用了3片IC:IC1为HM1500/1520型湿度传感器,IC2是由美国微芯片(Microchip)公司生产的带10位ADC的单片机PIC16F874,IC3为7达林顿反相驱动器阵列MC1413。PIC16F874是一种高性价比的8位单片机,内含8路逐次逼近式10位A/D转换器,最多可对8路湿度信号进行模数转换,现仅用其中一路。JT为4MHz石英晶体,配上振荡器电容C1、C2之后可为单片机提供4MHz时钟频率。PIC16F874的电源电压范围较宽(+2.5~+5V),适合低压供电,静态电流小
[电源管理]
基于PIC<font color='red'>单片机</font>的<font color='red'>智能</font>湿度测量仪电路
51单片机多机通信协议
做自己以前没做过的东西,总会有各种踌躇,害怕做不出来,其实要是真的开始去做了,问题就解决大半了。 在家没网,就开始写了, 熬了两夜,加一个半天,总算是完成了通信协议,经调试,可以正常工作。 如果有孩子也要做这个,可以参考一下哈! 别的不多说,贴代码。 //------------------------------------------------- //主机程序,主机座控制,用中断法 //----------------------------------------------- #include basic.h //-------------------------------------
[单片机]
基于AVR单片机实现超声波测距的程序编写
#include #defineucharunsignedchar #defineuintunsignedint ucharint_flag; uintqian,bai,shi,ge; uinti; floatdistance; //AlphanumericLCDModulefuncTIons #asm .equ__lcd_port=0x18;PORTB #endasm #include //ExternalInterrupt0servicerouTIne interrupt voidext_int0_isr(void) {#asm( sei ) if(int_flag) { distance=i*17.3; } elsei
[单片机]
基于AVR<font color='red'>单片机</font>实现超声波测距的程序编写
基于单片机AT89C51的时间/位移换向控制器设计
引言 在实际生产过程中,常常要用到具有自动换向功能的控制部件,如机械加工中的往返运行(位移),直流电源的正反向输出,电动机的正反转运行等现象,都是当正向(或反向)运行到一定时间或一定位置时,自动换为反向(或正向)运行,周而复始的过程。实现这一过程的自动化,就是设计一套控制电路,再配以位移传感器或时间继电器。目前市场现有的时间继电器虽然可以用多个组合来满足一些使用场合的要求,但仍存在着重复计时误差大,稳定可靠运行性不高,使用不方便灵活等问题。为此,笔者研发了以单片机为核心组成的时间/位移换向控制器SWHX-1,该系统具有成本低等特点,可完全且克服以上不足。 电路组成及工作原理 SWHX-1的内部电路如图1所示。该系统分为输入输
[单片机]
8051单片机串行口及串行通信
一、串行通信的基础知识 CPU与其他外部设备要进行信息交换,一台计算机与其他计算机之间有时也要交换信息,这些信息交换就称为通信。通信有并行通信和串行通信两种。 1、并行通信 并行通信是将数据字节的各位用多条数据线同时进行传送。 并行通信控制简单、传输速度快;由于传输线较多,长距离传送时成本高且接收方的各位同时接受存在困难。 2、串行通信 串行通信是将数据字节分成一位一位的形式在一条传输线上逐个地传送。 串行通信传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,但数据的传送控制要比并行通信复杂。 串行通信又可以分为异步通信与同步通信。 1)异步通信 异步通信是指通信的发送设备与接
[单片机]
8051<font color='red'>单片机</font>串行口及串行通信
51单片机P0口的特性及使用方法解析
一、P0口特性: P0口为三态双向I/O口。对于内部有程序存贮器的单片机基本系统(如定制的8051),P0口可以作为输入/输出口使用,直接连外部的输入/输出设备;也可以作为系统扩展的地址/数据总线口。对于内部没有程序存贮器的单片机(如8031),P0口只能作为地址/数据总线口使用。 1、P0口的输出驱动器中也有一个多路电子开关。输出驱动器转接至口锁动器的Q端时,P0口作为双向I/O口使用。 这时,CPU发来的控制信号为低电平,使输出驱动电路的上拉场效应管T1截止。P0口的锁存器为“1”时,输出驱动器中的两个场效应管均截止,引脚浮空;由于P0口输出电路是漏极开路的电路,必须外接10kΩ拉高电阻才能有高电平输出。而写入“0”时,下
[单片机]
51<font color='red'>单片机</font>P0口的特性及使用方法解析
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved