PS2鼠标ps2接口好还是usb改USB接口线怎样连

永定县梦琪达电脑经营部
当前位置: &
价格(元/ 个 )
999 ~ 9999 :
10000 ~ 10000 :
>=10001 :
发货地点:广东省深圳市
发布时间:
永定县梦琪达电脑经营部
经营模式:
主营产品:
移动电源;车载充电器;手机保护壳;usb LED灯系列;无线网卡;电脑及配件;鼠标;键盘
所在地区:广东省深圳市
信用指数:35
认证信息:
已通过认证
***荣誉:0项
地址:广东深圳市龙岗区坂田集团
提示:您在淘金地上采购商品属于商业贸易行为。以上所展示的信息由卖家自行提供,内容的真实性、准确性和合法性由发布卖家负责,淘金地对此不承担任何责任。为规避购买风险,建议您在购买相关产品前务必确认供应商资质及产品质量
按产品字母分类:
公司地址:广东深圳市龙岗区坂田集团
联系***:PS2鼠标使用USB接口的转换器
PS2鼠标使用USB接口的转换器
发布: | 作者: | 来源:
| 查看:3305次 | 用户关注:
刘亮为了出差方便,笔者购置了笔记本电脑,由于笔记本电脑已淘汰了PS2接口,于是家中的PS2鼠标就被闲置了起来,笔者突发奇想,USB鼠标可以通过一个简易的转接器插到台式机的PS2口中使用,反过来行不行呢?笔者做了试验,结果却很失望,根本不行。看来需要另辟蹊径,于是,一不做二不休,用PDIUSBD12和51单片机设计了一个PS2转USB的协议转换器。原本其实并不抱太大的希望,结果却神奇般地成功了,而且不需要另外编写驱动,采用USB直
刘亮为了出差方便,笔者购置了笔记本电脑,由于笔记本电脑已淘汰了PS2接口,于是家中的PS2鼠标就被闲置了起来,笔者突发奇想,USB鼠标可以通过一个简易的转接器插到台式机的PS2口中使用,反过来行不行呢?笔者做了试验,结果却很失望,根本不行。看来需要另辟蹊径,于是,一不做二不休,用PDIUSBD12和51单片机设计了一个PS2转USB的协议转换器。原本其实并不抱太大的希望,结果却神奇般地成功了,而且不需要另外编写驱动,采用USB直接供电,识别为USB鼠标,十分好用,现将制作成果分享如下。硬件设计电路原理图如图1所示。其中鼠标PS2接口的引脚定义如图2。电路的主体为ATMEL公司的51系列芯片ATMEL89S52(以下简称S52)和PHILIPS公司的并行传输USB接口芯片PDIUSBD12(以下简称D12)。S52相信读者已经非常熟悉了,最高24MHz的主频,256字节的RAM,4组8位I/O口,没有什么特别的功能,一切中规中矩,本设计在此仅用到一个外部中断。但这同时也说明,任何51内核(带总线)的单片机都可以适用。PDIUSBD12是应用十分广泛的并行接口USB控制芯片,作为实现USB接口的标准组件,D12使设计者能够灵活选择合适的MCU,用最经济最快的方式实现USB外设的解决方案。S52主要完成PS2接口鼠标的控制与数据获取,并通过PDIUSBD12与PC完成鼠标协议数据的传输。为了精简电路,S52使用D12的可编程时钟源,通过编程输出高达24MHz的时钟,供S52使用;观察调试输出的Uart波特率需要为19200bps,便于快速输出信息,不耽误正常的USB枚举。软件设计鼠标的工作模式有四种,分别为Reset模式,Wrap模式,Remote模式和Stream模式。前两种作为测试用,Remote模式为主机有需要时,发送命令使鼠标回送位移数据,Stream模式是上电的初始模式,每当鼠标产生位置或者按键状态的改变就自动发送数据。显而易见,第四种模式最为合适。正常读取鼠标数据前只需发送命令(0xF4),此命令告知鼠标,主机已经准备完毕,可以接受位移数据。但是这样简单的初始化存在着一个显著的缺陷,就是笔者发现滚轮无法使用了。这个问题困扰了笔者很久,原以为是软件编写出现小错误,引起鼠标能工作,但工作不正常。后来仔细查看了相关文档才发现,鼠标的初始化远没有那么简单,有点复杂却非常有趣:首先进行复位,这时的鼠标还是不带滚轮的,然后依次设置鼠标的采样率为200、100、80,这时候,就可以被识别为带滚轮的鼠标了,随后就根据需要,设置所需的采样率,一般默认的100即可。PS/2鼠标与控制器间履行一种双向同步串行数据帧协议,每帧为11~12Bit,如图3所示。按照标准的三键鼠标的数据包有效数据为3个字节,如图4所示。读取PS/2鼠标数据后需要按照USB鼠标的格式进行转换。USB鼠标的数据格式如图5所示:此鼠标的重点调试重点是S52的USB控制代码。笔者参考了PHILIPS的标准固件驱动代码,并进行了一定优化。USB的控制代码通常由三部分组成。(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 DescrptorTool工具生成。USB鼠标的软件流程如下:完成后的截图如图7所示。图7为在设备管理器中看到的识别为“USB人体学输入设备”以及“HID-compliant mouse”;在“人体学输入设备”查看属性,可看到“位置0(LLH-HXY’MOUSE)”。图8为使用USBVIEW调试工具看到的USB鼠标信息。&&& 图9为笔者的做的实物图,正在使用中。该USB鼠标经过笔者的长时间测试使用,性能比较稳定。在实际使用过程中应对鼠标的移动速度进行调整,以更加适应自身的使用习惯。除此之外,硬件焊接正确无需调试便可正常工作。笔者已经附上全部的代码以及调试输出信息,供读者进行参考。本文利用ATMEL89S52完成了鼠标移动数据的读取与PC机通信数据的传送,其实质为PS/2到USB协议的转换,有兴趣的读者可以使用更加小巧、低电压的芯片进行改造,使结构更加合理,外观更加美观。从学习USB协议的通用性和易用性上说,具有广泛的价值。有兴趣参与讨论的读者可以加入作者的QQ群:。
本页面信息由华强电子网用户提供,如果涉嫌侵权,请与我们***联系,我们核实后将及时处理。
设计应用分类
&&& 目前,处理器性能的主要衡量指标是时钟PS2键盘(鼠标)接线图\鼠标ps2转usb接线图
我的图书馆
PS2键盘(鼠标)接线图\鼠标ps2转usb接线图
PS2键盘(鼠标)接线图
鼠标ps2转usb接线图
发表评论:
馆藏&24774
TA的推荐TA的最新馆藏

参考资料

 

随机推荐