基于HID规范的智能遥控器中的设计2

2012-09-09 16:33:12来源: 互联网

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 端程序主流程

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

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

  3 结束语

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

关键字:HID规范  智能  遥控器

编辑:神话 引用地址:http://www.eeworld.com.cn/mndz/2012/0909/article_16687.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
HID规范
智能
遥控器

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved