我们检测到您正在使用不支持的浏览器. 为了获得最好的体验,请使用Chrome, Firefox, Safari或Edge访问该网站. X

USB的概念


如果您是开发具有通用串行总线(USB)接口的产品的新手, 以下是一些你将在我们的在线信息和文档中遇到的主要概念和术语的简要总结. 请访问 USB实现者论坛 网页下载规格, 了解关于合规性和获得更多关于USB技术的信息.

术语


  • 主持人: 一种个人计算机或其它计算机,它能列举各种设备并与之通信
  • 嵌入式主机: 嵌入式产品,如机顶盒, 视频游戏机和数据记录器,具有一些PC主机的功能
  • 设备: 外围设备,如老鼠, 键盘, 闪存, 和打印机, 遵循主机或嵌入式主机的命令
  • 活跃的(OTG): The capability of an application to act as either an embedded host or a device; an OTG application historically had a single Micro AB 连接器 to perform the host or device role
  • 双重角色: The capability of an application to act as an embedded host or a device; this type of application has two separate 连接器s for each role: a Type-A 连接器 for host and b 连接器 for device
  • 枚举: The process by which a USB host learns about a USB device that has just been connected to the bus; before the application is able to start running, 主机通过查询设备来确定设备的类型, 需要为该设备加载什么设备驱动程序, 该设备对功率有多大的要求, 等.

连接器类型及线缆


有许多类型的USB连接器,包括:类型a, b, Mini-A, Mini-AB, Mini-B, Micro-AB, 标准的一个, 标准的B, USB 3.0 Micro-B和Type-C®. 而Micro USB连接器是手机上最常见的充电和连接接口, Type-C连接器被设计成支持USB 2.0, USB 3.0, USB 3.1和未来USB规格达到20 Gbps的数据速率,用于新的更小的使用, 更薄更轻的设备. 下面的图表描述了一些常见的电缆类型.

USB控制器和物理接口


USB控制器通过运行在微控制器(MCU)上的USB堆栈处理所有通信, 而PHY为电缆提供物理接口. 一些集线器和mcu将USB系统所需的所有组件集成到单个IC中.

准备开始添加USB到您的设计?


查看我们可扩展的微控制器(mcu)和数字信号控制器(DSCs)组合集成USB或我们高度可配置的独立USB控制器, 中心, 收发器, 开关, 桥梁及安全产品.

USB常见问题

一般的问题


在高速USB和USB 2之间有什么区别吗.0? 哪一个才是正确的命名法?

在术语高速USB和USB 2之间是有区别的.0. USB 2.0是规格,而“高速USB”仅指USB 2的480mbps部分.0规范. 一个设备仍然可以是USB 2.0兼容,可全速或低速.

USB设备使用USB与计算机通信的速度有多快?

  • USB 2.0支持1.5 Mbps(低速),12 Mbps(全速)和480 Mbps(高速)传输速度.
  • USB 3.0增加了SuperSpeed USB,支持高达5gbps的速度.
  • USB 3.1更新USB 3.0表示支持最高10gbps的网速
  • USB 3.2允许两个10gbps的通道操作,实现20gbps的数据传输速率

什么是USB主机?

主机是USB分层星型网络的根. 它控制总线并发起通信. USB协议要求在任何USB系统中只有一个主机.

我听说过USB设备、外设和功能这些术语. 这些术语的正确用法和区别是什么?

在一般情况下, USB外设或设备是连接到USB主机并使用一些USB功能的东西,如数据传输或电源传输. 请注意,“功能”是USB规范启用的一些动作, 如高速数据传输. 设备和外围设备的例子是实体设备,如键盘, 存储设备, 或者像移动电话或便携式游戏机这样的便携式电子产品. USB集线器既是主机的设备,也是主机的外围设备.

一台主机可以连接多少台设备?

每个主控制器最多支持127个设备. 一个主机可以包含多个主机控制器. 根中心和/或复合设备的存在可能会改变可用物理设备的总数, 基于它们的实现. 集线器也可以算作总线上的一个设备, 所以每个集线器也会减少可用USB设备/外围设备插槽的数量.

谁拥有和控制USB规范?

USB实现论坛. 也被称为USB- if,拥有USB规范. 你可以从他们的网站上免费下载最新的USB规格, www.usb.org.

如何在USB协议中传输数据?

USB规范定义了四种不同类型的数据传输:

控制传输
USB主机通过控制传输向USB设备发送命令和查询. 在枚举USB设备时,控制传输使用端点0 (EP0). 因此,无论EP0支持的速度如何,所有USB设备都必须支持EP0. The maximum size for a control packet is 8 bytes for low-speed devices; 64 bytes for full-speed devices; and 16, 32或64字节的高速设备.

中断传输
中断传输使USB设备能够在枚举过程中从USB主机请求一个轮询速率. 全速设备的最大轮询速率是每毫秒一次,低速设备的最大轮询速率是每10毫秒一次. 低速USB设备的最大数据负载大小为8字节,最大吞吐量为800bps. 对于一个全速的USB设备, 最大负载大小为64字节,最大吞吐量为64kbps. 中断传输被确认,因此它们保证了包的传递. 如果一个包没有到达,传输将再次尝试.

批量传输
批量传输是设备传输大量数据的一种方式. 因为他们在公交车上的优先级最低, 他们不能保证及时交货. 在所有其他传输完成后,剩余的带宽用于批量传输. 就像中断传输一样,批量传输也被确认以保证其交付. 大容量传输仅支持全速和高速设备. 用于全速USB设备端点, 最大数据包大小可以是8, 16, 32或64字节长. 对于高速USB设备终端,最大数据包大小可达512字节长.

同步传输
一个全速度的同步事务可以每帧发送1023个字节,最大传输速率为1023 Kbps. 而同步传输提供了保证的数据传输速率, 他们的交货未被确认, 有些包裹可能无法送达. 音频/视频流是同步传输的典型应用,因为以丢弃包为代价保持视频和音频的最新更重要.

什么是令牌包?

USB协议定义了四种类型的数据包:

  • 帧开始
  • 令牌
  • Data
  • 握手

有三种不同类型的令牌包:

  • IN – 通知USB设备主机想要读取信息
  • —— 通知USB设备主机要发送该信息
  • 设置- - - 用于指示设备即将发生控制转移

USB协议如何检测通信中的错误?

USB协议使用串行接口引擎(SIE)执行循环冗余检查(CRC)来检测错误. 这消除了在软件中实现CRC的需要,减少了软件开销. 令牌报文的CRC为5位,数据报文的CRC为16位.

如果SIE接收到损坏的数据会发生什么?

如果数据包在不需要任何软件干预的情况下未能通过CRC检查,SIE就会丢弃损坏的数据包. 设置一个错误标志,表示收到了一个损坏的数据包. SIE不会承认(ACK)有不正确的CRC值的包. 对于中断, 散装, 和控制转移, 如果接收不到ACK,主机将尝试重新发送数据包. 这意味着这些传输不会由于损坏的数据包而丢失数据, 但它们可能会遇到较低的应用程序带宽.

USB协议中的传输和事务之间有什么区别?

传输是一组事务,而事务是一组包.

我能发送的最大数据包是多少?

这取决于您使用的转换类型. 对于全速USB设备,中断和批量传输的最大负载大小为64字节. 同步传输可以发送高达1023字节的全速USB设备.

什么是枚举过程?

这是一个USB主机如何了解一个刚刚连接到总线的USB设备. 在应用程序开始运行之前, 主机向设备查询信息,以确定已连接的设备类型, 需要为该设备加载什么设备驱动程序, 设备的功率要求和其他细节. 在枚举过程中,USB主机也分配一个地址给连接的设备. 地址设置完成后, USB主机将与该地址的设备进行通信. 最后的枚举任务之一是将设备设置为特定的操作配置. 枚举过程的详细描述见第9节.1.2 . USB规范.

USB主机如何识别USB设备的速度?

USB主机在通信线路(D+和D-)上有较弱的下拉电阻. 如果要在全速模式下运行,设备将用一个更强的上拉电阻拉上D+. 如果一个设备将在低速模式下运行,那么D-会被拉起. 在每一种情况下,上拉电阻的值名义上是1K5.

USB主机如何复位USB设备?

USB主机通过设置D+和D - low至少10毫秒来发送一个复位到设备. 如果USB设备看到D+和D-大于2的值都很低,则确定复位已经发生.5微秒. USB设备检测复位后, 一旦USB主机移除重置,它就进入默认状态. 这只复位USB设备,而不复位控制器.

如果USB主机对特定的USB设备发出一个reset命令, 它也会重置其他连接的USB设备吗?

No. USB主机将要求集线器复位特定连接的USB设备, 只有那个设备会被重置. 如果USB主机重置集线器本身,那么所有连接到集线器的设备将被重置.

USB主机如何找出一个连接的USB设备的名称?

在USB设备的设备描述符中有几个字符串, 其中一个是制造商串. 如果实现了这些字符串,USB主机可以在枚举过程中读取这些字符串.

当两个USB设备同时连接到一个USB主机时,会有争用吗?

No. 主机每次重置一个设备,然后在开始调查下一个设备之前完成一个设备的枚举.

USB设备/外围问题


USB集线器如何减慢设备?

USB集线器必须计算出每帧结束前的剩余时间. 由集线器增加的小的额外延迟将减少可用带宽. 如果多个设备连接在集线器上并并行工作(例如, 一个摄像头, 一个u盘和一个鼠标), 然后USB带宽在设备之间共享.

Microchip的mcu支持哪些设备类?

目前微芯片支持评估USB设备版本的人机接口设备(HID), 通信设备(疾控中心), 海量存储设备(MSD)和自定义设备类. hid的例子包括键盘、操纵杆和电脑鼠标. cdc的例子包括调制解调器和以太网适配器, msd的例子包括拇指驱动器和外部硬盘. 自定义设备类允许用户为他们的设备开发独特的驱动程序. 有关设备类支持的更多信息,请参阅特定软件版本的说明.

可以在两个集线器或两个USB设备之间使用的最大电缆长度是多少?

USB 2的最大长度.0电缆为5米. USB 3.X规格没有指定电缆的最大长度,但推荐长度为3米. USB 3的最大长度限制.X电缆是电缆的质量. 如果你使用高质量的电缆,你应该能够超过3米. 如果你需要走更远的距离,必须使用有源或中继电缆.

复合USB设备和复合USB设备有什么区别?

除了一个或多个USB外围设备外,复合USB设备还有一个内置集线器, 所有的产品都整合成一个单一的产品,只有一根USB线缆连接到主机.

复合USB设备不使用集线器硅. 它在一个外围设备中使用多个接口. 目前, 我们的全速USB mcu可以用于开发复合USB设备,但不能用于复合设备. 一个复合设备可以建立使用我们的USB集线器线.

USB设备的VBUS引脚的最大电容是什么?为什么?

USB连接器的VBUS引脚所看到的最大电容必须小于10uf. 这是为了限制当设备插入设备时进入设备的涌流. 限制浪涌电流的目的是限制VBUS电压下降,由于充电的新附加设备上的电容器. 不限制热插拔设备的涌流, 新连接的设备可能会导致其他设备停止工作.

如果应用程序需要比规格允许更多的电容, 需要一个缓启动电路来限制涌流电流到规定的极限.

当USB设备是自供电时应该注意什么?

如果设备是自供电的,必须使用I/O引脚来检测电缆附件. D+或D线必须不拉上,直到USB主机驱动VBUS高. 自供电设备还必须一致地指定它是自供电的. 如果配置描述符说它是自供电的, 那么任何对设备的GET_STATUS请求也必须返回自供电.

如果我想让我的设备总线供电或自供电,我应该在我的配置描述符中指定什么?

如果设备将被总线供电, 即使它有时能自我供电, 然后它必须声明自己是一个总线驱动的设备. 如果USB设备当前使用自供电或总线供电,GET_STATUS请求应该准确地反映给主机.

为什么在使用CDC类时需要一个INF文件, 即使我不需要任何在PC端使用HID类?

CDC类有许多其他的子类规范. 主机需要知道为附加的设备加载这些设备驱动程序中的哪一个. 该信息包含在 .INF文件. 这意味着,当首次附加新的CDC设备时,主机将需要运行某种类型的安装/设置过程.

USB嵌入式主机问题


主机、嵌入式主机、有限主机和迷你主机有什么区别?

主机几乎总是在PC或笔记本电脑上下文中提到, 任何USB外设都可以插入USB端口. 一个完整的主机必须在VBUS上提供500ma的电流来为连接到它的外围设备供电.

嵌入式主机通常称为迷你主机或有限主机, 但它们都指的是同一种设备. 它们是小型便携设备,像机顶盒或手机. 嵌入式主机必须在VBUS上提供至少8 mA的电流. 它有有限的内存空间来存储驱动程序, 因此,与外围设备的连接也受到限制. 不像一个完整的宿主, 嵌入式主机不需要为它不支持的设备加载设备驱动程序. 然而, 嵌入式主机需要通知用户已经附加了不支持的设备.

请注意术语内嵌主机, USB规范或OTG补充中没有提到迷你主机和有限主机. 认证过程演练将这些设备称为嵌入式主机.

Microchip是否提供了开发一个完整的拇指驱动器应用程序所需的所有堆栈?

是的. 微芯片提供USB大容量存储类驱动程序, SCSI接口, FAT16/32格式软件, 以及一个文件管理应用的示例.

Microchip微处理器支持哪些设备类别?

目前嵌入式主机栈支持海量存储设备(MSD)和自定义设备类.

高速外设(如硬盘驱动器)能连接到全速运行的主机上吗?

是的. USB协议需要所有全速(12 Mbps)和高速(480 Mbps)的通信,以全速启动,然后扩展到高速,如果两个设备都支持它. 如果只有一个设备支持全速,通信将被限制在全速.

任何硬盘都能在任何主机上工作吗?

No. 硬盘驱动器是海量存储设备,因此具有某种形式的数据格式规定. 让设备工作, 而不是仅仅承认对方, 文件协议和接口协议也必须匹配. 例如, u盘是一个基本的海量存储应用程序, 而是USB类驱动程序, SCSI接口和FAT16格式都必须具备,才能发挥作用.

目前USB嵌入式主机固件发布版本同时支持FAT16和FAT32文件格式.

如果我的设备是嵌入式主机,那么它需要支持会话请求协议(SRP)和主机协商协议(HNP)吗??

SRP是嵌入式主机的可选特性, 但在大多数情况下,这并不是必需的,也可能不是我们所希望的. 因为嵌入式主机只能作为主机而不能作为USB设备, 不应支持海地国家警察. 有关SRP和HNP的更多信息,请参阅本FAQ的USB on - go部分.

USB活跃的问题


什么是USB on - go (OTG),为什么要开发它?

USB OTG规范是原始USB规范的一个补充. 它为便携式设备定义了一种方式, 每个设备只提供一个连接器, 连接到支持USB产品以外的个人电脑. 这允许移动设备相互连接. 一个设备将承担嵌入式主机的角色,另一个将承担USB设备的角色, 消除了对特定USB应用程序的PC需求.

如果我只希望我的设备连接到USB设备(外设), 它需要是一个USB OTG产品吗?

如果设备只需要连接USB设备,不需要连接其他USB主机, 那么设备可以是嵌入式主机,而不是USB OTG产品(请参考上面的嵌入式主机部分). 如果一个设备需要连接到USB设备和USB主机,那么它需要是一个USB OTG产品.

USB OTG必须在两个产品中为他们连接和操作?

No, USB OTG产品将连接到所有的个人电脑,也将有主机功能,以连接到特定的USB外围设备,它支持.

什么是主机协商协议(HNP)?

USB OTG设备根据连接到设备上的线缆的哪一端来确定哪个设备是主机,哪个设备是外围设备. 如果操作需要切换角色, 海地核电站提供了一种机制,可以在不移除和切换电缆两端的情况下切换该角色.

什么是会话请求协议(SRP)?

不像其他USB主机, USB OTG设备可以从VBUS线移除电源,当他们不使用它. VBUS启动的时间称为会话. SRP允许连接到USB OTG产品的设备请求启动一个新的会话. 设备向SRP发送信号后, USB OTG产品作为主机将启动VBUS并开始与设备通信.

当你把两个USB OTG设备连接在一起时会发生什么?

当两台双角色设备通过线缆连接时, 该电缆设置默认主机和默认外设. 如果应用程序要求角色互换, 然后,HNP可以提供一个握手来执行该函数. 如果两个设备都不支持HNP, 然后,如果需要特定的角色,电缆可能需要反转.

什么连接器是用于USB OTG?

以前,USB OTG设备使用微a /B连接器. 这允许一个微型电缆的A端或B端被连接. 许多设备可以并将使用USB Type-C® 连接器,通过USB支持许多附加功能.

我希望我的产品是嵌入式主机或USB设备(外围设备), 但我不需要/不想在两者之间动态切换. 这可能吗?我应该使用什么连接器?

是的,这是可能的.

一种解决方案是使用micro-A/B连接器,并将设备编程为USB OTG设备. 因为SRP和HNP是可选的,所以可以禁用这些特性. 这里的限制是,带有全尺寸A连接器的USB设备将需要一个适配器来连接到设备上的微型A/B端口.

作为另一种解决方案,设备可以有两个USB连接器. 每一个都必须有自己单独的VBUS电路,但共享D+和D-. 这个解决方案的局限性在于,USB测试规范规定,用户可以访问的任何连接器都必须同时具有功能. 由于目前的USB设备只支持一个USB接口, 同时使用两个连接器是不可能的. 这意味着必须实现某种机械特性,以便在任何时候只能访问两个端口中的一个.

这个功能也可以使用USB-C实现® 连接器. 两台设备将在启动时协商主机-设备关系. 电缆将需要断开和重新连接,以强制重新协商状态.

USB VID / PID的问题


什么是设备描述符?

设备描述符是描述附加设备的各种信息的数据表, 如厂商的VID (vendor ID)、PID (Product ID)等. 设备描述符的完整内容可以在USB规范的表9-8中找到.

我如何获得一个VID和PID?

USB-IF要求每个供应商都有自己独特的VID,以便销售其产品. VID由USB-IF发放,支付所需费用后即可使用. 去 获取供应商ID 网页上的USB-IF的网站,以了解更多关于获得一个VID.

在购买了一个VID之后,制造商决定如何在该VID中使用pid.

当使用非唯一的VID/PID时,可能会涉及到法律和技术上的复杂性.

我是否必须购买自己的VID或微芯片转授权他们的VID?

微芯片公司的VID有一个再授权程序. 请填写 这种形式 申请一个PID与微芯片的VID为您的原型.

我是否需要为我生产的每个设备一个新的PID?

每条生产线都需要一个新的PID. 该产品线中每个相同的产品应该具有相同的PID. 如果生产线上的每个设备都需要一个唯一的标识符, 那么设备描述符的iSerialNumber字段可以用来唯一地标识每个设备.