USB接口的光电隔离保护方案及其实现

时间:2007-11-30
目前计算机的USB接口已经大量使用,一般每台电脑都有2到4个USB口。当一台电脑同时接多个USB外部设备时,如果这些外部设备介入了高电压干扰,就可能会烧坏电脑的USB口甚至电脑以及外设。目前电脑的几种通信接口中,MODEM口以及以太网接口由于本身具有变压器隔离所以不容易损坏,而RS-232串口也可以选用波仕的RS-232光电隔离器来进行有效的保护,只有USB以及类似的1394接口目前还没有方便的隔离保护方案。

  实现原理

  本文提供了一种对USB信号进行光电隔离的电路,可以使USB的接口得到保护。

将USB信号

图1为将USB信号(D+、D—)转换为光信号的原理框图。

  USB信号检测电路

  (1)将D+和D—变换为“或”门输出DOR1和差分比较器输出RCV1。一双可控三态缓冲器

(2)通过控制端EN来控制逻辑“通”与“端”。当EN=“0”时,DOR=DOR1、RCV=RCV1。而当EN=“1”时,DOR和RCV为高阻状态。光发射驱动电路

  (3)将DOR和RCV转换为三种光强度(亮、半亮、暗)。光接收电路

  (4)将接收到的三种光强度(亮、半亮、暗)恢复为D+和D—的三种状态。光接收电路(4)的输出之一H的状态变化触发单稳延时电路(5)。单稳延时电路

  (5)的输出EN平时(即USB信号处于闲置状态时)为“0”,当其输入H有下降延(即由“1”变为“0”)时输出EN由“0”变为“1”并且保持为“1”大约1000us,然后恢复为“0”。另一双可控三态缓冲器(2)通过控制端EN来控制来控制逻辑“通”与“断”,当EN=“1”时,VP=H、VM=L,而当EN=“0”时输出VP、VM为高阻状态。

  具体实施方式

将USB信号转换为光信号的具体电路图 
图2

  图2为将USB信号转换为光信号的具体电路图。假设USB为全速状态(12M),此时D+通过大约1.5KΩ的电阻接+5V电源。平时USB信号处于闲置(Idle)状态,此时D+为“1”(高电平,大约3至5V),D—为逻辑“0”(低电平,大约0至1.4V)。IC1为“或”门。IC2、IC4、IC5和IC6为可控三态缓冲器。其中,IC2和IC4是当其控制信号EN为“0”时导通的,而IC5和IC6是当其控制信号EN为“1”时导通的。由于IC2和IC4在不导通时(即EN为“1”时)输出为高阻状态,所以在IC2的输出端加了上拉电阻R1、在IC4的输出端加了上拉电阻R2。IC3、IC10和IC11是比较器。IC7是单稳触发电路由输入端(信号VP)下降沿触发,输出EN平时为“0”。当IC7的输入端出现一个下降沿时,其输出端将出现一个持续时间大约1000us的“1”状态,然后恢复为“0”。IC7的输出信号EN通过控制IC2、IC4、IC5和IC6来控D+、D—的“收/发”状态。由于EN平时为“0”,所以平时允许接收D+和D—(IC2、IC4导通),而禁止发送信号到D+和D—上(IC5和IC6输出为高阻态)。IC8是一个复合逻辑电路,其输入、输出以及光发射二极管的光强度关系如表1:

输入

  IC8的输出A和B是具有足够电流驱动能力的电压,通过电阻R3和R4送给光发射二极管IC12。光发射二极管IC12的输出光强度大致正比于输入电流。当A和B同时为“1”时,通过光发射二极管的电流,所以此时光强度状态称为“全亮”。当A为“1”、B为“0”时,电流只有大约一半,此时光强度状态为“半亮”。当A为“0”、B为“0”时,电流为0,此时光强度状态为“暗”。IC13为光接收器。由于如图描述的电路是实际产品的一半,即在相互光电隔离的两个USB口各加一个这样的USB转光的电路,所以IC13光接收器接对方电路的光发射二极管的光(即通过光电耦合器)。IC13接收光,IC13的输出为与接收到的光的强度大致成正比的电压。无接收光时(即对方发射的光强度为“暗”),IC13的输出V0大约为0。由于比较器IC10、IC11的负端输入电压都大于0,所以IC10和IC11的输出的逻辑状态均为“0”,即H=“0”且L=“0”。当对方光发射强度为“全亮”时,IC13的输出电压比V1和V2都大(V1、V2的值都可通过调节电阻R5、R6和R7的值得到),所以IC10、IC11的输出的逻辑状态为H=“1”且L=“1”。当对方光发射强度为“半亮”时,IC13的输出电压比V1大而比V2小(V1、V2的值都可通过调节电阻R5、R6和R7的值得到),所以IC10、IC11的输出的逻辑状态为H=“0”且L=“1”。IC9是一个复合逻辑电路,其输入与输出以及接收光强度的关系如表2。

入与输出以及接收光强度的关系表

  对于全速USB的信号,平时闲置状态(Idle)时D+为逻辑“1”、D—为逻辑“0”,所以IC1、IC2的输出为“1”,IC3、IC4的输出为“1”,这样根据表1可知输出光强度为“暗”。当光强度为“暗 ”时,根据表2传到对方电路的光接收器并经过对方电路的IC9后的输出为VP=“1”、VM=“0”。一旦USB开始传输数据,则D+和D—的信号逻辑状态发生变化。全速USB的信号状态变化为:D+由“1”变成为“0”,D—由“0”变成为“1”。上位机的USB信号状态先出现变化,此时IC1和IC2的输出仍然为“1”,IC3和IC4的输出变成为“0”。根据表1 ,光发射二极管将由“暗”变成为“全亮”。“全亮”的光通过光电耦合器传到对方电路(与本描述的一样)的光接收管。根据表2,对方电路的VP由“1”变为“0”,VM 由“0”变为“1”。对方电路的VP由“1”变为“0”就是说这个VP产生了一个下降沿,从而触发了对方电路的IC7,使IC7的输出EN由“0”变为“1”并且保持“1”大约1000us(然后又恢复为“0”)。

  对方电路的VM由“0”变为“1”从而使对方电路的USB信号由禁止发送(EN=“0”)变为禁止接收(EN=“1”)。此时对方电路的VP和VM可以通过对方电路的IC5和IC6传给对方电路的D+和D—,从而使上位机的USB信号在1000us内通过光电耦合器传到对方电路(即:下位机)的D+和D—线上。在这1000us内可以过光电耦合器传输三种D+和D—状态: ①、 D+为“1”且D—为“0”(代表闲置状态以及数据“1”)②、 D+为“0”且D—为“1”(代表数据“0”)③、D+为“0”且D—为“0”(代表数据传输结束标志)。这三种状态可以表达USB信号的所有状态(D+为“1”且D—为“1”的状态是禁止的)。前面已经描述了如何通过光强度的“暗”代表状态①、“全亮”代表状态②。而状态③恰好是通过光强度的“半亮”来表示,具体描述如下:当D+和D—处于状态 ③时, D+和D—都为“0”,IC1和IC2的输出为DOR=“0”,根据表1,此时光发射二极管的强度为“半亮”。“半亮”的光传输到对方电路的光接收管IC12并且经过对方电路的比较器IC10和IC11,输出为H=“0”、L=“1”。根据表2,对方电路IC9个输出为VP=VM=“0”。而在单稳电路输出为“1”的1000us内正好将这个状态③传输给对方电路的D+和D—(均为“0”)。在

  大约1000us的时间内,恰好上位机向下位机传输一帧USB数据完毕,并且等待下位机回传应答信号。1000us结束后,下位机的IC7的输出EN恢复为“0”,此时下位机的USB数据状态先变化。 下位机的USB数据传输到上位机的过程与前面描述的上位机的USB数据传输到下位机的过程原理完全一样。     

  对于高速USB(480M),由于传输一帧数据的时间减少了,所以单稳电路的延时时间要相应减小。

 

 


  
上一篇:CAN-bus应用方案
下一篇:Wind River联手飞思卡尔为多核MPC5121e处理器推出基于Linux的解决方案

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料