天线|RF射频
直播中

李名扬

7年用户 630经验值
私信 关注
[问答]

USB小知识总结的太棒了

USB小知识总结的太棒了

回帖(1)

王鑫

2021-5-31 11:12:15
  1、即插即用(Plug-and-Play)
  USB 比较于其他传统接口的一个优势是即插即用的实现,即插即用(Plug-and-Play )也可以叫做热插拔(Hot Plugging)。对于用户来讲,第一次插入USB 外设,自动或手动安装驱动程序,他就应该可以使用这个外设了,这是很友好的用户体验。如果操作系统提示你重新启动电脑,说明这个外设没有实现即插即用,从严格意义上来讲,这并不是一个USB 的外设。如果告诉用户这是应该的,就是在欺骗用户。
  对于微软来说,如果外设没有实现即插即用,就无法获得WHQL 认证。而对于USB IF(USB 实现者william hill官网 )来说,如果外设没有实现即插即用,就无法获得USB 的认证,不能使用USB 的标识。由于在USB2.0 规范发布之后,USB IF 改变了原先的标识,有些制造商仍使用原先的标识,这其实也是在欺骗用户。
  USB 的外设有很多,其中有很多外设有相似的特性,这些外设被归为某一类,例如键盘、鼠标等为HID 类,音响产品为Audio 类,硬盘、CD-ROM 、Flash 为Mass Storage 类。微软为一些常用类提供了类驱动程序,如果一个外设设计满足该类的规范,在第一次插入PC 时,操作系统可以自动识别到,并且自动调用该类驱动程序,这就是所谓的自动安装。目前Windows 能支持的类驱动程序只有HID、Audio 和Mass Storage,除此之外制造商必须提供自己的驱动程序。很不幸,USB 转串口的应用就属于这种情况,这就需要所谓的手动安装。
  手动安装有两种可能,一种是在第一次插入USB 时,系统会提示用户安装驱动程序,用户可以根据弹出窗口的提示进行安装,这时可能需要用户做一些搜索,有些用户可能会觉得这样不太方便;所以另一种方法是提供一个安装程序,将所有有关的应用/驱动程序打包在一起,一次性安装完成。如果驱动程序没有获得WHQL 认证,在安装过程中需要用户用鼠标点击一到二次“继续”和“完成”;而如果驱动程序获得WHQL 认证,就无需这么麻烦,这也可称为安静安装(Silent Install)。
  2、USB 多串口协议(UMP)
  在安装USB 转串口设备时,用户发现会出现二个步骤,一个是在接口(并串口)下有一个USB 设备,另一个就是USB 多串口协议(UMP)。其实这是正确的,首先USB 转串口的设备是用来模拟一个串口(COM ),所以是一个虚拟的COM 口;其次这是一个USB 转串口的桥,它必须遵循USB 多串口协议。
  在外设的“设备描述器”(Device Description)中,这个设备是一个USB 转串口的桥,每次外设接入时,操作系统会去读这个“设备描述器”来了解接入的是什么设备,并把它加入到“设备管理器”中(Device Manager)。这是第一步,之后操作系统知道这个外设是要实现一个虚拟的串口,所以在COM 下会加上USB 设备。
  有一些应用中,只出现一个虚拟串口,而没有USB 多串口协议。其实这是在驱动程序上作了手脚,屏蔽了很关键的第一步,没有向操作系统报告设备的属性。这样做看似简单了,但根本没有可能获得WHQL 认证,也无法得到USB 的认证。
  3、500mA 的总线供电模式
  USB 的规范中规定一个USB 的根集线器(root hub)最多只能提供500mA 的电流,这一方面是为了减轻PC 机的负担,另一方面是保护USB 的主控制器(Host Controller),目前USB 主控制器往往集成在南桥中。理论上来讲,任何一个USB Hub 应该使用一个电源开关来防止过电流,但目前至少有10%以上的主板没有使用电源开关或使用一些低性能的元器件以节省成本。
  当外设需要多于500mA 的电流时,就需要采用自供电模式了。这对于USB 硬盘的应用是一个瓶颈,也是一个挑战。2.5 英寸以上的硬盘本身就需要超过500mA,所以必须自供电,自供电可以使用电池,也可以使用稳压源,这对于移动设备来说都不是理想的方法。有一种折衷的方法是连接两个USB 口,可以获得两倍的电流-1A 。这是没有办法的办法,同样无法WHQL 和USB 认证。操作起来也很麻烦,必须先接上供电口,再接上设备口等等。
  好消息是硬盘的尺寸越来越小型化,耗电越来越省。1.8、1.5、1 英寸的硬盘已被广泛应用,性能越来越稳定,这些硬盘的耗电在300mA 之内,如果USB 控制芯片的耗电能控制在200mA 之内,就可以真正实现由总线来供电。TI 的TUSB6250 就是业界第一片实现总线供电的USB2.0 高速(480Mbps)转ATA/ATAPI 的解决方案。
  4、USB 与ATA/ATAPI 的冲突
  USB 转ATA/ATAPI 桥的控制器存在一些内在的冲突,原因在于桥的两边都试图要控制桥本身,例如USB 和ATA/ATAPI 都向往桥发送数据或接收数据,可以把这称为竞争,这时候桥无法解决优先权的话,数据的传送就停了下来。更严重的是桥还无法把这种状况通知PC 机和硬盘,PC 机和硬盘仍然不断地尝试,却没有出错信息提示给用户,用户就会很困惑,不知道发生了什么情况。这时候除了关机重新启动电脑,别无他法。
  USB 的Mass Storage 类规范共总结出13 种不同的冲突,这些冲突从标准本身已无法解决,只能用硬件或软件的方法来解决。TI 的TUSB6250 就很好地处理和解决了这个难题,其实就是增加了对竞争的仲裁,解决了优先权的判断,在同一时间只允许一个控制逻辑来控制总线,不会发生总线的堵塞。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分