您的位置 首页 嵌入式

RS-485收发器难题详解

SH69P04的功能及特点1.USB和PS2端口共用通过寄存器实现USB端口和PS2端口的切换PS2

SH69P04的功能及特色

1. USB和PS2端口共用

经过寄存器完结USB端口和PS2端口的切换

PS2PU = 1: 假如PS2IS = 1, 则内部PS2专用上拉电阻起作用。当需求运用USB端口时, 只要让PS2IS = 0即能封闭PS2端口及其上拉电阻。

2. 1.5KΩ可控上拉电阻

如图2, 有了这个1.5KΩ可控上拉电阻一方面能够节省本钱, 另一方面能够完结软开关, 保证PC认出DEVICE。

当USB DEVICE和PC相连后因为内部1.5KΩ上拉电阻并未翻开, 所以PC不以为有新的设备衔接。 在翻开上拉电阻前用户能够定心的完结程序初始化及其它客户程序, 而不用忧虑需求及时呼应USB总线上的信号。 这是因为假如没有可控的上拉电阻而是直接外加, 那么当DEVICE和PC相连后, PC立刻就会知道有新的设备衔接, 在必定时刻后就会向DEVICE发送信号, 假如DEVICE接连几回通讯失利的话, PC就以为该DEVICE犯错而不会再和它通讯。

别的结合Watch Dog能够进一步保证DEVICE的衔接。 用户能够事前核算一下整个USB初始化进程所需的时刻, 并设置Watch Dog。 假如USB初始化犯错就能够发生Watch Dog Reset, 1.5KΩ上拉就被封闭, 程序重新开始。 PC就会以为DEVICE有了一次插拔动作。程序死锁也能够用这种方法来处理。

 图 3

3. 专为MOUSE规划的I/O端口

如图3, 原理剖析时Q1.1和Q1.3是输出方波。 实践上因为Photo Transistors是选用光敏三极管, 当光栅滚动时, 光敏三极管遭到的光线也是接连改变的, 所以输出的波形也是接连改变的。 又因为光栅无法彻底隔绝光线, 所以会发生一个OFFSET电平。 实践波形如图4。

图中VIH表明一旦输入电平高于VIH, 那么MCU就以为是高电平。 VIL表明一旦输入电平低于VIL, 那么MCU就以为是低电平。 在图4所示的这种状态下MCU能够很便利的读到光栅滚动的状况。 可是因为搅扰或许元器件老化等原因形成OFFSET电平发生改变, 使得输入信号的电平无法和VIH、VIL相交(如图5), MCU就会以为输入的信号一向为高或一向为低。

SH69P04为每一个MOUSE的端口供给三档下拉电阻(如图4)来操控OFFSET电平。 经过寄存器来挑选下拉电阻的阻值, 用以处理因为OFFSET电平的改变而引起的过错。

软件规划

USB协议尽管很杂乱, 可是MOUSE端需求编写的程序却非常有限。 用户很简单就能和PC树立联络。(Windows端HID驱动程序由操作系统供给)

1. USB/PS2端口的监测

第一步: 上电, delay 50ms 

第二步: 在2ms的时刻内监测D-的电平, 假如有4次为高电平, 便是PS2接口。 不然进入第三步

第三步: 翻开USB上拉电阻, delay500us, 重复监测D+和D-的电平, 直到其间有一个呈现高电平。 假如D+是高电平, 则为PS2接口。 假如D-是低电平, 则进入第4步。

第四步: 封闭USB上拉电阻, delay 100us。 假如D+/D-都为低电平, 则为USB接口。

不然便是PS2接口。

2. USB Enumeration进程

整个进程有点像做测试题。 PC问, MOUSE答复。 其间关键是要告知PC, 本身是一个MOUSE, 支撑HID协议。 因为篇幅有限, 就不具体列出了。

3. 把MOUSE的信息传给PC

在Enumeration进程中, MOUSE会告知PC后续X,Y,Z,按键这些信息的格局。 当MOUSE有动作时, 只要按这个格局把数据回来给PC就能够了。 剩余的工作PC端HID驱动程序会去完结。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/91785.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部