HID的固件要求

虽然本书稍后的应用程序是针对VB程序来设计的,但对于要与HID设备通信的主机驱动程序来说,设备的固件程序代码是必须符合某 些要求的。也即是,设备的描述符必须辨识设各包含了HID接口。在固件程序代码中,除了预设的控制管线外,还须支持中断IN端点 。此外,固仵也必须包含报告描述符,以用来定义所要传送与接收数据的格式。

  对于设备而言,为了送出数据,固件程序代码必须支持Get ̄Report控制传输以及中断IN传输的规范。相对,为了接收数据,就需要 固件程序代码支持Se辶Report控制传输以及可能也支持中断OUT传输。

  所有的HID数据必须使用所定义的报告格式,其定义了在报告描述符中的数据大小值与内容。一个设各可能支持一个或更多的报告。 在设备固件程序代码中的报告描述符用来描述报告,并且可能涵盖了相关于所要使用的数据是如何被接收与传送的。

  每一个报告的数值可以用来定义报告是作为输人(mput)、输出(output)以及特性(feature)报告之用的。主机能够以输人报告 来接收数据,也可以通过输出报告来传送数据。此外,特性报告则可以利用任一方向来传输。

  当主机要求输人报告时,而设备就在每一次的中断传输,将数据送至主机。而主机会根据在端点描述符所要求的最高迟滞时间,安 排整个的传输要求。此外,对于输出报告而言,主机可以使用控制传输或中断传输将数据传送到设备端。但对于HID群组执行OUT中断 的功能在原先USB1.0版中是没有具各的。而在稍后的USB 1.1版本中才加以改进并增加此功能。当然在Windows 98第二版(SE)以及 后来修定的Windows版本皆可应用这个新增的特性。

  对于输人报告,所有的Windows 98以及稍后版本的HID驱动程序则使用中断传输来读取。此外,对于输出报告、传输类型则根据设 备所支持的端点类型以及所安装的Windows版本而定。其中,最原始的Windows 98(Windows 98 Gold)版本仅相容HID规范1.0版, 那么HID驱动程序则会针对输出报告来使用控制传输。而Windows 98SE,Windows2000以及Windows ME版本与规范1.1版本相容,那么 若是设各接口也具各中断OUT端点,HID驱动程序就可针对输出报告来使用中断传输;否则,则使用控制传输。再者,如果HID设备接 口不支持中断OUT端点,或如果固件对于输出报告,同时支持两种传输类型,HID即可相容于任何的Windows版本。

  特性(feature)报告能够以双向(IN与OUT)来传递,可以使用控制传输来加以实现。为了送出OUT特性报告,主机送出 Set_Report要求,其后跟随报告数据,然后设备会传回状态信息以表示是否为成功或失败的传输。而为了接收IN特性报告,主机会送 出Get_Report要求,设各再送出此报告,然后主机会传回状态信息以表示是否为成功或失败的传输。如果数据仅是偶而传递一下,或 没有迟滞时间要求,则当数据不再需要时,特性报告就会以周期传输来避开总线的阻塞。

  使用特性(feature)报告来传输的另一个优点是,能够提供多种报告格式。这样主机就可在控制要求中设置报告的数量。若使用 中断传输来作数据的接收或传递,主机就不再需要设置特定的报告来要求或送出数据字节。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值