经产观察
IT资讯
IT产业动态
业界
网站运营
站长资讯
互联网
国际互联网新闻
国内互联网新闻
通信行业
通信设备
通信运营商
消费电子
数码
家电
通信设备

通信设备基于Wave Panel的HID设备通讯接口设计

作者:habao 来源: 日期:2014-10-25 15:36:53 人气:

  引 言

  HID(Human Intece Device,人机接口设备)是一类低速USB 设备,典型的HID 设备有键盘。鼠标。游戏杆等。相对于U 盘。打印机等高速USB 设备,HID 设备具有使用方便。响应迅速。研发成本低廉等优点,其应用领域十分广泛。当前HID 设备正在向专用化方向快速发展 。

  Wave Panel 是苹果公司研发的视频色彩编辑软件Color 支持一型专用的数据输入和显示HID 设备,该设备面板上设置有按键。解码器和二维球三种控制器,能够快捷。精确地对各类视频色彩参数进行设置,并将控制和状态信息同步显示在设备微型显示屏上,从而改变了传统“鼠标+键盘”的视频编辑软件控制方式.Wave Panel 没有提供Windows 下与应用程序通讯的功能,因此可基于Wave Panel 设计一个功能完备。通用性强的通讯接口,并加以验证。这对企业和科研机构根据实际需求灵活地配备和控制专用HID 设备有很大帮助。

  1 Wave Panel 的性能特征

  HID 设备除满足USB 标准外,还具备一些与人机交互密切相关的特点,主要包括:

  1)通常使用控制方式或中断方式通讯。两种传输方式的区别在于控制方式适用于对延迟没有特别的数据,而中断方式适用于低延迟。周期性的数据 .Wave Panel 的数据传输方式为中断方式。

  2)单次传输的数据量小,且这些数据以状态变化信息或控制信息为主。其中低速HID 设备单次传输数据最大为8 字节,全速设备为64 字节,高速设备为1024 字节。主机与HID 设备交换的数据存储在报表(Report)结构内 。

  Wave Panel 的输入报表长度为27 字节,其中0 字节用于记录报表ID,1 ~ 6 字节的前41 比特分别记录41 个按键的按下或抬起状态,另有7 比特未用,置为0;7 ~19 字节分别记录13 个解码器的状态;20 ~25 字节每2 字节分别记录一个二维球X 轴和Y 轴的状态;26 字节留作固件升级使用.Wave Panel 的输出报表长度为41 字节,其中0 ~ 5 字节为控制命令,6 ~ 40字节为显示信息的字符。

  3)使用轮询方式检测设备状态变化情况.HID 设备可能在任何时刻向主机发送数据,例如鼠标发生移动或键盘有按键按下。所以HID 设备会在一个固定的时间间隔内轮询各控制口一次,当发现设备状态有变化时生成输入报表发送给主机 。但轮询的间隔时间要由用户对HID 设备的操作速度决定。如果间隔时间过小,则用户来不及在两次轮询间隔内完成一次操作;反之,又会使HID 设备的响应速度无法与用户的操作速度匹配,造成延迟 。

  Wave Panel ,每40 毫秒对所有控制器端口轮询一次,若其中任何一个控制器的状态在两次轮询间隔内发生改变,就会在下次轮询前生成输入报表发送给主机.40 毫秒是基于视频每帧显示时间而确定的。

  2 HID 设备的通讯过程

  HID 设备是Windows 操作系统最早支持的USB设备。在Windows 98 及以后的各版本中都已内置了HID 设备的驱动程序,主机与HID 设备通讯时无须再编写专门的驱动程序。这就简化了HID 设备与主机应用程序通讯接口的设计和研发。

  通过分析,可以将HID 设备与主机应用程序的通讯划分为设备识别和打开。读报表。写报表和设备关闭四个模块。

  2. 1 Wave Panel 的识别和打开

  HID 设备连接到主机后,以厂商ID(VID)。产品ID(PID)和产品版本号(PVN)三项属性值的组合作为设备唯一标识.Wave Panel 的三项属性值可以从产品说明书直接获取。由于一台主机可能同时连接有多台HID 设备,所以在通讯前应用程序必须要识别并打开Wave Panel,这一过程需要调用多个Windows API函数实现。基本方法是首先获取当前与主机连接的所有HID 设备信息的集合,然后逐一枚举集合中的各设备,并比较VID.PID 和PVN 值。当三项属性值都与Wave Panel 相等时表示已经找到,调用CreateFile()将该Wave Panel 打开,并保存Wave Panel 设备句柄。该模块的流程如图1 所示。

延伸内容:
推荐文章