USB速度和电源
USB速度和电源
USB(通用串行总线)是现代计算机系统中最常用的接口之一,广泛应用于各种外设的连接和数据传输。本文将详细介绍USB设备的速度模式和电源管理机制,帮助读者更好地理解USB技术的工作原理。
USB速度
USB规范已经为USB系统定义了以下四种速度模式:低速(Low-Speed)、全速(Full-Speed)、高速(Hi-Speed)和超高速(SuperSpeed)。
目前,赛普拉斯对PsoC器件系列仅支持全速模式,另外对于各种专用USB设备则支持低速、高速和超高速等模式。因此,本应用笔记将重点介绍这三种速度模式。
新型主机一直能同低速设备进行通信。例如,高速主机能够与低速设备进行通信,但全速主机并不能同高速设备进行通信。
低速、全速和高速设备的速率分别为1.5Mb/s、12Mb/s和480Mb/s。但是,这些指的是总线速率,并不是数据速率。实际的数据速率受总线加载速度、传输类型、开销、操作系统等因素的影响。数据传输则受以下内容的限制:
低速设备
例如:键盘、鼠标和游戏等外设
总线速率:1.5Mb/s
最大的有效数据速率:800B/s
全速设备
例如:手机、音频设备和压缩视频
总线速率:12Mb/s
最大的有效数据速率:1.2MB/s
高速设备
例如:视频、影像和存储设备
总线速率:480Mb/s
最大的有效数据速率:53MB/s
建立好了USB设备和主机间的连接后,需要使用D+或D-信号线上的上拉电阻来检测设备的速度。D+信号线上的1.5kΩ大小的上拉电阻表示所连接的是一个全速设备,D-线上1.5kΩ大小的上拉电阻表示所连接的是一个低速设备。
高速设备都是作为全速设备进行初始化,因此它们在D+信号线上也使用了一个1.5kΩ大小的上拉电阻。设备连接好后,会在枚举的复位阶段中发出J状态和K状态序列。如果集线器支持高速设备,则不需要使用上拉电阻。USB进行枚举时需要使用上拉电阻。否则,USB会认为总线上没有连接任意设备。部分设备要求在D+/D-信号线上使用一个外部上拉电阻。但是PSoC已经带有所需的内部上拉电阻,因此不需要外部上拉电阻。
USB2.0设备经常被误解为高速USB设备。所有高速设备都符合USB2.0规范,这是因为USB2.0规范支持高速模式。USB2.0规范还包含了全速和低速设备。这些速度也影响到有关位时间的USB信号(如数据包结束(EOP)信号)。低速和全速USB设备使用了频率为48MHz的时钟执行SIE操作,并执行使用其他时钟源的USB操作。该48MHz时钟和总线速度决定了USB位时间:
- 全速:时钟频率/总线速度=48MHz/12Mb/s时,USB位时间为4个时钟周期。
- 全速:时钟频率/总线速度=48MHz/1.5Mb/s时,USB位时间为4个时钟周期。
USB电源
作为USB电源时,USB设备可被划分为两种设备类型:总线供电和自供电。
总线供电是USB设计的一个优势。由于设备通过总线供电,因此不需要使用笨重的内部或外部电源,它仍能够维持自身操作。总线可由主机或集线器供电。使用某个总线供电的设备时,用户将设备配置为某种状态前必须考虑其功耗。即设备枚举完成后,必须在第一次将设备连接到总线到主机将SET_CONFIGURATION命令传输给设备的这段时间内检查其功耗。设备被配置前不能消耗超过100mA的电流(即USB规范中为低速、全速或高速设备定义为一个负载单位)。
在配置过程中,设备要求一个预算功耗。总线供电的设备共有以下两种:高功耗和低功耗设备。低功耗设备最多消耗100mA的电流,高功耗设备最多消耗500mA的电流。消耗的电流超过500mA的设备要自供电。
自供电设备通过使用外部电源(如直流电源适配器或电池)为自己供电。自供电设备在进行设计的过程中需要考虑到一些注意事项。USB规范要求自供电设备一直监控自己的VBUS线。VBUS不存在的时间内,设备必须断开提供给D+/D-线上的上拉电阻的电源,从而防止向主机或集线器供电。否则,会导致USB合规性测试发生失败。但是自供电集线器能够从总线获得最多100mA的电流。
设备还能结合两种电源模式,并成为一个总线供电和自供电的设备。常见的例子是设备使用电池。设备通常是自供电的;但使用VBUS给电池充电,并且在电池电量发生变化时给设备供电。在技术方面,该设备是一个自供电设备,如USB描述符中显示,但该设备仍要求来自主机的预算电源。同自供电设备相似,这些混合设计中仍需要监控VBUS大小,并且仍会断开提供给D+/D-线上的上拉电阻的电源。在本应用中,需要实现一部分电源管理系统类型,以监控电池的电压、充电状态,并控制电池电源和外部电源间的切换。
此外,无论设备的供电方式如何,所有USB设备都必须考虑到它们的暂停电流。设备的暂停电流是指在主机处于挂起模式(又称待机模式)时由VBUS提供的电流。如果总线在3ms时间内没有进行任意操作,设备会进入挂起模式。即使没有进行任意数据传输操作,主机仍会发出“帧开始”(SOF)令牌,以防止设备进入挂起模式。但低速设备却没有SOF数据包,因此这种设备是一个例外。总线上不进行低速数据的传输时,低速设备每经过1m都会发送“数据包结束”(EOP)信号,将其作为“保持活动”信号。总线休闲时,设备必须进入挂起模式,并消耗不大于2.5mA的电流。为满足该要求,设计师必须保证设备进入挂起状态前已经关闭了各个LED和其他电源库。一旦检测到总线上发生任何操作,USB设备都会退出挂起状态。如果设备具有远程唤醒功能,它可以向主机发送恢复请求,然后等待主机确认该请求,而不是等待主机进行恢复。
连接状态:当将某个设备插入到主机/集线器,但主机/集线器不给VBUS线供电时,会出现这种状态。它通常在集线器检测到一个过流事件时出现。虽然仍连接着设备,但主机移除了供给它的电源。
供电:某个设备被连接到USB上并得到供电,但仍未接收到一个复位请求。
默认:某个设备被连接到USB上、得到供电,并且由主机进行了复位。这时,设备没有任何设备地址。设备会响应地址0。
地址:某个设备被连接到USB、得到供电、被复位,并且有一个唯一的地址。但是设备仍未得到配置。
配置:设备已经连接到USB、得到供电、被复位、具有唯一的地址、得到配置,但尚未进入挂起状态。此时,总线供电设备能够消耗超过100mA的电流。
挂起:如上面所述,设备已经建立好了连接,并且得到配置,但在3ms时间内不会进行任意总线操作。
对于低速、全速和高速USB设备,USB的功耗会以2mA的单位进行枚举。例如,需要消耗100mA电流的全速设备在进行枚举时将发送数值50。开发USB设计时,请考虑您的设备消耗总线的电流。
根集线器由主机PC的电源供电。如果主机被连接到交流电源上,则USB规范要求主机为集线器上的每一个端口提供500mA的电流。这样能将总线供电设备上的电流消耗限制在500mA。如果主机PC由电池供电,它可以为集线器上的每一端口提供100mA或500mA的电流。将设备插入到总线供电的集线器时,该设备必须是低功耗设备,并且消耗电流不能超过100mA。总线供电的集线器共有500mA的电流可供给所有所连接的设备使用。