PS2鼠标使用USB接口的转换器

[09-13 16:54:27]   来源:http://www.88dzw.com  接口定义   阅读:8564

文章摘要:(1)初始化:初始化主要对S52以及外围电路的初始化,通过复位,初始化USB并读取D12的ChipID进行确认(D12的ChipID为0x1012);(2)中断服务:用于对主机的令牌包的响应,主要包括StandardDeviceReq标准请求,VendorDeviceReq用户厂商请求和ClassFunctionReq类设备请求等,其中比较重要的为标准请求。标准请求的作用是告诉PC这是一个什么样的USB设备,包括USB类型、USB设备的描述符等;(3)主循环处理数据:用于对获得的USB鼠标数据的处理填充,并等待PC要求数据时将数据传送给PC。Windows对USB设备的枚举顺序:(1)GetD

PS2鼠标使用USB接口的转换器,标签:接口技术,微机原理与接口技术,http://www.88dzw.com

  (1)初始化:初始化主要对S52以及外围电路的初始化,通过复位,初始化USB并读取D12的ChipID进行确认(D12的ChipID为0x1012);

  (2)中断服务:用于对主机的令牌包的响应,主要包括StandardDeviceReq标准请求,VendorDeviceReq用户厂商请求和ClassFunctionReq类设备请求等,其中比较重要的为标准请求。标准请求的作用是告诉PC这是一个什么样的USB设备,包括USB类型、USB设备的描述符等;

  (3)主循环处理数据:用于对获得的USB鼠标数据的处理填充,并等待PC要求数据时将数据传送给PC。

  Windows对USB设备的枚举顺序:

  (1)GetDeviceDescriptor:主机主要对Length感兴趣,即第2字节type必须为0x01,即Device,否则PC将重复2次后放弃(注意:此步只发送前16字节设备描述符);

  (2)SetAddress:一般为02或者03;

  (3)GetDeviceDescriptor:读取全部设备描述符,一般为18字节分为2次传输,如果不正确PC重复2次后放弃(与(1)步相比,此步发送全部的18字节设备描述符);

  (4)GetConfigDescriptor:注意第2字节一定为0x02即Config;

  (5)GetStringDescriptor:根据在设备描述符中的第15、16、17字节索引顺序而定,一般先读取LanguageID再读取ProductString读取全部ConfigDescriptor,次数根据描述符的大小决定,端点个数不同,描述符大小不同。至此PC已经能正确识别设备并安装驱动,如果不正确PC将重复2次后放弃;


  (6)SetCorfiguration、GetConfiguration和Getlnterface等调用,对设备的状态进行最后的配置即完成设备的枚举。

  在编写USB固件程序时需要注意:

  (1)S52的中断应设置为电平触发,中断后必须读上次传输状态寄存器命令0x40-0x45,以清除中断寄存器中的中断标志,只有这样D12的中断输出才能变回高电平;

  (2)在接收到Setup包后必须调用ACKsetup命令重新使能端口0;

  (3)在向IN端点写完数据后必须调用ValidateBuffer命令(0xFA)指明缓冲区中的数据有效,可以发送到主机;

  (4)当读完数据后必须调用ClearBuffer命令(0xF2),以保证可以接收新的包;

  (5)在调试过程中,可使用USBVIEW等工具软件,外加代码中的串口输出调试信息配合完成;

  (6)在代码中涉及到鼠标报告描述符MouseReportDescriptor,可以使用HID Descrptor

  Tool工具生成。

  USB鼠标的软件流程如下:

  完成后的截图如图7所示。


  图7为在设备管理器中看到的识别为“USB人体学输入设备”以及“HID-compliant mouse”;在“人体学输入设备”查看属性,可看到“位置0(LLH-HXY’MOUSE)”。


  图8为使用USBVIEW调试工具看到的USB鼠标信息。


  图9为笔者的做的实物图,正在使用中。

  该USB鼠标经过笔者的长时间测试使用,性能比较稳定。在实际使用过程中应对鼠标的移动速度进行调整,以更加适应自身的使用习惯。除此之外,硬件焊接正确无需调试便可正常工作。笔者已经附上全部的代码以及调试输出信息,供读者进行参考。

  本文利用ATMEL89S52完成了鼠标移动数据的读取与PC机通信数据的传送,其实质为PS/2到USB协议的转换,有兴趣的读者可以使用更加小巧、低电压的芯片进行改造,使结构更加合理,外观更加美观。从学习USB协议的通用性和易用性上说,具有广泛的价值。


上一页  [1] [2] 


Tag:接口定义接口技术,微机原理与接口技术接口定义

《PS2鼠标使用USB接口的转换器》相关文章

分类导航
最新更新
热门排行