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