按照USB协议 USB是向下兼容的,即USB3.0兼容USB2.0以及USB1.1. 由于USB3.0采用全双工传输数据,因此TX和RX分离。数据只需要朝一个方向传输就可以了,简化了等待引起的时间消耗,电路连接上作为Host的TX与Device的RX连接,Host的RX与Device的TX相连。另外,由于TX上存在大概500mV的直流电平,因此需要增加隔直电容。USB3.0采用全双工(USB2.0的半双工)传输数据,原理架构如下图:
在将USB设备插入USB3.0的Hub,主机通过TX端发起RX Detect,在没有设备接入时,主机发射端检测到的负载和有设备接入时的负载是不一样的,这样在有无设备接入时的RC时间常数就会不同,发送端通过改变TXP/TXN的共模电压,然后检测线路上共模电压充电时的信号上升时间(充电速率)就可以判别是否存在终端设备。
在USB3.0 中 Device 连接到 Host等价于连接了一个R_Term
左图为不接设备时的等效电路,此时由于R_term不存在,故电路模型实际为一RC串联电路,可简单计算出时间因子:
T=R_DetectC_Parasitic
右图为接上device的等效电路,此时R_term存在,得出此时时间因子:
T=(R_Detect+R_Term)(C_AC+C_Parasitic)
显然后者远远大于前者,故有无设备可根据充放电时间进行判断。
另外,接入R_term后,会对R_Detect产生分压的作用,电压会有所下降。
没接 Device:R_Detect如下,时间间隔是12ms。
USB规范定义需要每隔100ms 发起一次Rx Detect来检测Deivce 是否存在。
关于USB的识别流程图如下: