新闻中心

EEPW首页 > 元件/连接器 > 设计应用 > RS-485收发器难题详解

RS-485收发器难题详解

作者:时间:2020-06-17来源:EEWORLD收藏
编者按:引言: USB低速设备的设计发展到现在已经有了相当的成熟度。 各家IC公司都推出了USB DEVICE端的解决方案, 一般以8 BIT CPU CORE + USB SIE为主流构架。 SH69P04是中颖电子(Sinowealth)本着丰富USB产品应用,降低USB IC成本而设计的4BIT OTP单片机, 用以开发USB DEVICE设备。

SH69P04的功能及特点

本文引用地址:http://www.amcfsurvey.com/article/202006/414310.htm

1. 和PS2端口共用

通过寄存器实现端口和PS2端口的切换

PS2PU = 1: 如果PS2IS = 1, 则内部PS2专用上拉电阻起作用。当需要使用端口时, 只要让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驱动程序会去完成。




关键词: RS-485收发器 USB

评论


相关推荐

技术专区

关闭