一种实用的电脑接口判断方法

2019-10-21 07:29严成武
科学与财富 2019年7期
关键词:上拉外设低电平

严成武

摘 要:本文介绍了一种实用的利用单片机来实现U+P鼠标接口判断的方法。首先分析电脑的USB接口和PS/2接口在电气上的区别,并根据这种区别,给出利用单片机判断这两种接口的方案。

关键词:单片机;PS/2接口;USB接口;接口判断

U+P鼠标如图1,可直接用在USB接口;经过图2的转接头(USB转PS/2),也可以用在PS/2接口上。它能自动识别是插在了USB接口还是PS/2接口,如果是插到了USB接口,则进行USB初始化,然后按照USB协议与电脑通信;如果是插到了PS/2接口,则进行PS/2初始化,然后按照PS/2协议与电脑通信。本文将重点讨论:电脑的USB接口与PS/2接口的硬件特性,以及利用单片机判断的方法。

1、电脑USB接口与PS/2接口的硬件特性。

1.1、USB接口硬件特性。

电脑USB接口与外设的连接有4根线,分别为VCC,D-, D+,GND。其中VCC为电源正极(+5V),GND为电源负极,D-,D+为信号线。在电脑内部,D-、D+各有一个15K的下拉电阻。当没有接外设时,因15K下拉电阻的存在,D-、D+均为低电平。

根据USB协议,只要外设的电路不改变D-、D+的低电平状态,则电脑会一直保持这种状态,即:D-、D+保持低电平。

2,PS/2接口硬件特性。

电脑PS/2接口与外设的连接有6根线,但只用了4根线,分别为VCC,数据(DATA), 时钟(CLK),GND。其中VCC为电源正极(+5V),GND为电源负极,DATA为数据线,CLK为时钟线。在电脑内部,DATA、CLK各有一个约5K的上拉电阻。当没有接外设时,在正常状态下,因5K上拉电阻的存在,DATA、CLK均为高电平。如果键盘PS/2接口有通信时,电脑会在鼠标PS/2接口的CLK线上输出一个低电平,但DATA仍保持高电平。如果电脑在禁止PS/2接口时,也会在CLK上一直输出低电平,禁止通信。

根据PS/2协议,只要外设的电路不改变DATA、CLK的电平状态,则电脑会一直保持它原来的状态,即:CLK正常为高电平,另一个PS/2接口有通信或禁止接口时,为低电平;DATA一直保持高电平。

2、两种接口的连接关系。

当U+P鼠标通过转接头接到PS/2接口上时,U+P鼠标的四根线可定义为:VCC,D-/DATA,D+/CLK,GND。

3、接口判断方法。

根据两个接口以上的硬件特性,在鼠標上电时,通过判断D-/DATA,D+/CLK的电平,即可判断出是哪个接口。在D-/DATA、D+/CLK上接500K的上拉电阻是为了防止接触不良时,D-/DATA、D+/CLK不会处在悬空状态。

如果接到了USB接口,虽然D+、D-有500K的上拉电阻,但电脑内部有15K的下拉电阻,D+、D-还是低电平。

如果接到了PS/2接口,DATA上都是上拉电阻,而且根据PS/2协议,电脑不会主动输出低电平,所以肯定为高电平;CLK上也都是上拉电阻,正常也为高电平,只是在另一个PS/2接口有通信或禁止接口时,为低电平。

具体电路如图3,判断步骤如下:

①当接口判断电路接到电脑的USB接口(或PS/2接口)时,51单片机从VCC,GND上得电,上电复位后,延时500MS,等待接口接触良好。

②读D-/DATA(P0.0)、D+/CLK(P0.1)的状态。

③如果P0.0、P0.1均为低电平,则初步认为是USB接口;每隔1MS读一次P0.0、P0.1,如连续20次均保持这种状态,则确认为USB接口。否则重新回到2。

④如果P0.0为高电平,不管P0.1为高电平还是低电平,都认为是PS/2接口;每隔1MS读一次P0.0、P0.1,如连续20次均保持这种状态,则确认为PS/2接口。否则重新回到2。

4、结束语

这种方法经过上万次的测试,均能正确判断接口;2007年用在了公司的U+P鼠标产品上,并批量生产,直到现在,客户没有这方面的投诉。

参考文献:

[1]《单片机原理与应用技术》,付晓光编著,清华大学出版社,2008年修订。

[2]《单片微型计算机》,徐惠民,安德宁编著,北京邮电学院出版社。

猜你喜欢
上拉外设低电平
铁道车辆高/低电平信号智能发生器设计
高效PDT 终端定位数据上报方法
某车型雾灯偶发点亮故障分析与设计优化
2017款凯迪拉克2.8L/3.0L/3.2L/3.6L车型低电平参考电压总线电路图
在老师的葬礼上拉小提琴的男孩
基于Xilinx芯片的FPGA的DONE信号上拉电阻阻值分析
15-MeV电子直线加速器的低电平系统
Microchip推出具备双ADC外设的全新器件,扩展其低成本8位PIC®单片机产品线
集成电路静态参数测试
外设天地行情