首页 / 行业
主机识别USB设备原理简介
2022-05-05 17:28:00
USB(UniversalSerialBus),其中文为通用串行总线,是一个外部总线标准,也是一种输入输出接口的技术规范,被广泛地应用于个人计算机和计算机周边配套的通信。标准USB接口通过四线实现主机跟设备之间的通信连接(Vdd/D+/D-/GND),每台主机最多可以连接127个外部设备,并且不会损失通信速度。常用的电脑周边USB设备有鼠标、键盘、U盘、音响、摄像头等等。那么一台主机(电脑),是如何适时的知道是否有外部USB设备插入电脑USB端口的呢?
一、USB端口及设备硬件架构
如下图所示,图(1)为USB主机接口内部示意图,图2为支持全速通信的USB设备端,图3为支持低速通信的USB设备端口。
二、USB端口插入外部设备识别
1)全速/低速设备插入识别
USB支持三种类型的传输速率:1.5Mb/s的低速传输、12Mb/s的全速传输和480Mb/s的高速传输。当主控制器或集线器的下行端口上没有USB设备连接时,其D+和D-线上的下拉电阻使得这两条数据线的电压都是近地的(图1);当全速/低速设备连接以后,电流流过由集线器的下拉电阻和设备在D+/D-的上拉电阻构成的分压器。由于下拉电阻的阻值是15KΩ,上拉电阻的阻值是1.5KΩ,所以在D+/D-线上会出现大小为(Vcc*15/(15+1.5))的直流高电平电压。当USB主机探测到D+/D-线的电压已经接近高电平,而其它的线保持接地时,它就知道全速/低速设备已经连接了(D+为高电平,主机判定接入全速设备;如果检测D-为高电平,则接入的USB设备为低速设备)。
2)高速设备插入识别
高速设备初始是以一个全速设备的身份出现的,即和全速设备一样,D+线上有一个1.5k的上拉电阻。USB2.0的hub把它当作一个全速设备,之后,主机hub和设备通过一系列握手信号确认双方的身份。在这里对速度的检测是双向的,比如高速的hub需要检测所挂上来的设备是高速、全速还是低速,高速的设备需要检测所连上的hub是USB2.0的还是1.x的,如果是前者,就进行一系列动作切到高速模式工作,如果是后者,就以全速模式工作。
总结下来,高速设备的识别过程如下:
1)D+/D-上拉电阻确定为全速/高速设备
2)主机hub检测到有设备插入,向主机通报,主机发送Set_Port_Feature请求让hub复位新插入的设备。设备复位操作是hub通过驱动数据线到复位状态SE0(Single-ended 0,即D+和D-全为低电平),并持续至少10ms(中颖设备中产生bus reset信号)。
3)如果是高速设备,看到复位信号后,通过内部的电流源向D-线持续灌大小为17.78mA电流。因为此时高速设备D+的1.5k上拉电阻还未撤销,在hub端,全速/低速驱动器形成一个阻抗为45欧姆(Ohm)的终端电阻,两个电阻并联后仍是45欧姆左右的阻抗,所以在hub端看到一个约800mV的电压(45欧姆*17.78mA),这就是Chirp K信号。Chirp K信号的持续时间是1ms~7ms。
4)在hub端,虽然下达了复位信号,并一直驱动着SE0,但USB2.0的高速接收器一直在检测Chirp K(D+位0,D-为1)信号,如果没有看到Chirp K信号,就继续复位操作,直到复位结束,之后就在全速模式下操作。如果只是一个全速的hub,不支持高速操作,那么该hub不理会设备发送的Chirp K信号,之后设备也不会切换到高速模式。
设备发送的ChirpK信号结束后100us内,hub必须开始回复一连串的KJKJKJ….(K/J为USB信号端口的两种状态,K状态D+为高D-为低,J状态D+为低D-为高)序列,向设备表明这是一个USB2.0的hub。这里的KJ序列是连续的,中间不能间断,而且每个K或J的持续时间在40us~60us之间。KJ序列停止后的100~500us内结束复位操作。hub发送ChirpKJ序列的方式和设备一样,通过电流源向差分数据线交替灌17.78mA的电流实现。
5)设备端确定上述高速流程后,断开D+上拉1.5k电阻并连接D+/D-上的高速终端电阻。
三、USB端口设备枚举
通过上述过程,主机只是知道有新的设备插入了,但是不知道插进来个什么东西,所以就开始询问它是什么设备,怎么用,负荷能力怎么样。这个时候就进入了USB协议的枚举过程。USB枚举过程简单来说如下:
1)获取设备描述符
地址:默认为0
主机:发送获取描述符指令包
设备:设备接到包后解析,然后按固定格式返回设备描述符信息
目的:主机获取USB设备的基础属性,比如数据传输方式,数据长度,设备最大电流负荷,USB版本,VID/PID等。
2)配置描述符
分配地址:主机给设备分配一个属于它的地址;
主机:给设备一个地址后,就开始询问设备的具体配置(配置描述符)。
设备:解析主机信息,上传设备配置信息;
目的:配置上传设备描述符、字符串描述符等;HID设备还要上传报告描述符。
到此,主机就已经完全识别了端口插入的设备是什么,将怎么工作。
来源:中颖电子
最新内容
手机 |
相关内容
低耗能,小安派-LRW-TH1传感器通用板
低耗能,小安派-LRW-TH1传感器通用板,一块板即可连接多种传感器!,传感器,多种,连接,一块,通用,接口,小安派-LRW-TH1传感器通用板是一款应用在阀门控制中的直流有刷驱动芯
应用在阀门控制中的直流有刷驱动芯片,芯片,控制,支持,远程控制,电动,调节,直流有刷驱动芯片是一种用于控制直流电机的IPB072N15N3G浅析可配置混合信号芯片
浅析可配置混合信号芯片,芯片,信号,混合,配置,灵活性,性能,MC33072DR2G可配置混合信号芯片是一种集成电路(IC),它包含了数字和模拟电路用于传感器接口设计的运算放大器,哪
用于传感器接口设计的运算放大器,哪几项特性最为关键?,运算放大器,几项,传感器,接口设计,用于,输出,在传感器接口设计中,HT1622运算放什么是串口服务器,串口服务器的组成
什么是串口服务器,串口服务器的组成、特点、原理、分类、常见故障及预防措施,服务器,串口,分类,远程访问,预防,接口,TLC27M2CDR串口如何选择激光测距传感器?
如何选择激光测距传感器?,传感器,激光,需求,输出,选择,测量,选择MAX3485EESA+T激光测距传感器时,需要考虑一系列因素,包括测量范围、测什么是无刷电机控制器,无刷电机控制
什么是无刷电机控制器,无刷电机控制器的组成、特点、原理、分类、常见故障及预防措施,控制器,分类,位置,监测,传感器,控制,无刷电机步进电机用什么控制 如何选择步进
步进电机用什么控制 如何选择步进电机驱动器,控制,用什么,步进电机,通信接口,选择,复杂性,步进电机可以通过IRF9Z24NPBF控制器来控