未知usb设备(设备描述请求失败_USB硬件设计概要(3)

4. USB控制器信号

USB数据都采用差分信号方式传输,有效减少了数据传输过程中的共模干扰,更利于高速数据的传输。

4.1 USB低速和全速数据传输控制

数据传输开始和结束是由主设备发起的,控制USB总线从IDLE状态开始发送SOP包(start of packet)开始,该包的第一的字节为SYNC字段。结束时由主设备发送一个EOP包(end of packet)来结束传输。具体格式如图3.4.1所示。

5982c3c7fa181415619dcb9d05276457.png

图3.4.1 USB低速和全速传输开始于结束

4.2 USB高速数据传输控制

首先USB主设备在高速模式下发送数据包(SOP)的开始信号,总线状态由IDLE态切换到K态。同样的,结束时也有主设备发送一个EOP信号结束。注意高速传输时总线上的信号状态于低速和全速传输时的信号状态的差异。

  • 集线器信号通过控制端口上的持久的SEO态来实现对下形端口的复位。复位信号清除后,设备都将处于缺省状态。
  • 复位信号可在任一个集线器或主机的控制端口产生,该复位信号的最小持续时间为10ms。一个设备如果见其上形端口的SEO态持续时间超过2.5us,则它就把该信号作为复位信号处理。
  • 在复位信号清除后的10ms的复位恢复时间后,集线器必须能接收所有集线器请求,设备也必须能接收一个SetAddress()请求。如果接收这些请求失败,则设备将不能被USB系统软件所识别。

4.2.2 高速集线器或设备的复位

主设备首先确认是高速device,然后开始发出SEO信号,记为T0点,用以进行握手进程。Device检测SEO信号:

  • 如果是从挂起状态唤醒,则device在检查到2.5us的reset信号后,启动高速检测握手进程;
  • 如果是从全速的非挂起状态唤醒;则device在检查到2、5us、3ms的reset信号后,启动高速检测握手进程;
  • 如果是从高速的非挂起状态唤醒:则device切换到全速前,必须等待3ms、3.125ms;在切换到全速后的100us、875us间,如果检测到SEO信号,启动高速检测握手进程。启动高速检测握手进程;

4.2.3 高速传输时检测握手进程

  • 高速device让D+上拉,断开高速端接,往Bus上发送Chirp K(时间1-7ms,从TO计算);
  • Hub检测到的Chirp K必须大于2.5us:否则会持续发SEO信号,直到reset结束;
  • Bus结束Chirp K状态后100us内,Hub必须不间断的交替发送Chirp K 和Chirp J信号,以保证Bus处于激活状态而不会挂起:J或K信号时长40-60us,Chirp J/K交替信号必须持续到reset结束前100-500us;
  • Hub发完Chirp信号后,发送SEO信号直到reset结束;复位结束前Hub必须切换到高速状态:
  • Device发完chirp后,device必须接收到hub的交替Chirp K-J-K-J-K-J信号,且每位信号的长度大于2.5us:
  • 如果检测OK,device会在500us内,断开D+上拉,回复高速端接,进入高速defau|t状态:
  • 如果device在发完自己的chirp后lms-2.5ms后检测失败,device会切换到全速default状态直到reset结束。

4.2.4 挂起状态

USB所有的设备都必须能支持挂起状态,并可从任一电平状态进入挂起态。当设备发现它们的上行总线上的空闲态持续时间超3ms时,它们便进入挂起态。当设备的所有端口上的总线不活动时间不超过10ms后,设备必须被真正的挂起,此时它仅从总线上获得挂起电流。如果总线缺少其他的通信流量时,SOF令牌将在每(微)帧中出现一次,以防止全速/高速设备被挂起。当任一低速设备缺乏通信流量时,在SOF令牌出现的每一帧中至少有一个低速设备处于活动态,以避免它们不被挂起。

当处在挂起状态时,设备必须继续为它的D+(高速)或D.(低速)上的Rpu电阻提供电压从而维持一个空闲态,这样上行集线器才能为设备维持正确的连接状态。

高速device如果检测到Bus为ldle状态大于3ms,device将在id丨e开始后的3.125us内转换到全速配置;切换到全速后的100us、875us期间,device会采样总线的状态,如果是全速下的J状态,device会继续挂起;高速device或下行端口从挂起唤醒后,必须恢复到高速状态:

4.2.5 唤醒设备

处在挂起状态的设备,当它的上行端口接收到任一非空闲信号时,它的操作将被唤醒。特别地,如果设备的远程唤醒功能被USB系统软件开启时,它也可以发信号给系统来完成唤醒操作。唤醒信号由主机或设备使用,以使一个挂起的总线段回到活动态。集线器在唤醒信号的生成和传播中起了十分重要的作用。

USB系统软件必须提供10ms的唤醒恢复时间,在这段时间内,它将不对与被唤醒的部分总线相连的任一设备进行操作。端口的中断与连接也可以使集线器发送一个复位信号,从而唤醒系统,但仅当集线器具有远程唤醒使能时,这些事件才能引起集线器发送唤醒信号。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值