关于USB接口的一些常见问题,知道还是比较有用的,拿来和大家分享:
1. USB 1.1和USB 2.0有何区别?
USB 2.0问世于2001年,是一种支持最高480Mbps数据传输率的外部总线。USB 2.0是USB 1.1的扩展。USB 2.0与USB 1.1兼容。USB 2.0的电缆和连接器可用于USB 1.1设备。但是,不是所有USB 1.1的电缆可用于USB 2.0设备。
2. 高速USB和USB 2.0有区别吗?哪一种说法是正确的?
高速USB和USB 2.0是有区别的。区别在于USB 2.0是一种规范。而“高速USB”仅指在USB 2.0规范中数据传输率为480Mbps的那部分。某个设备可以是符合USB 2.0的设备,同时还可以是全速设备或低速设备。
3. USB设备与计算机的通信速度有多快?
USB 2.0支持低速、全速和高速三种速度,分别为1.5Mbps、12Mbps和480Mbps。
4. 什么是USB主机?
主机是USB分层式星型网络的根节点。它控制着总线,网络中的通信由USB主机启动。USB协议要求任何USB系统中必须有一个独立的主机。
5. 我听说过USB设备、外设和功能这些术语。它们的区别是什么?如何正确使用这些术语?
USB规范对设备的字面定义比较模糊。规范中的“USB设备”既可以是集线器,也可代表一种功能。应使用“USB设备”取代“设备”,以避免不确定性。即使声明了“USB设备”,有时候人们会把USB使能的设备称为“USB设备”。由于术语使用的不一致,因此“外设”一词可能是较不容易混淆的说法。
USB规范中并未在定义列表中定义术语“外设”,但是在规范中该术语可与USB设备互换。USB设备的USB认证检查表也称为外设检查表。
在USB规范中对功能的定义是指USB设备提供给主机的能力。
6. 一个主机可连接多少设备?
每个主机控制器最多可连接127个设备。一个主机可包含多个主机控制器。如果有根集线器和/或复合设备,则根据其实现方式,可能改变可用物理设备的总数。集线器也作为总线上的设备,但集线器还会减少USB设备/外设上的可用接口。
7. 什么是USB集线器?
USB集线器是允许其他设备与其相连的一种USB设备,从而可以扩大网络。 集线器可通过总线供电或自供电。总线供电的集线器无法向所有与其连接的USB设备供电,但是自供电的USB集线器可以。由于USB设备可从USB集线器获得最小100mA和每个USB端口最大500mA的电流,总线供电的USB集线器最多可具有四个下游设备。
8. 最多可同时连接多少个集线器?
在一根独立链上最多可连接5个集线器。
9. 是否存在拥有和控制USB规范的组织?
存在的,就是USB开发者论坛,也称为USB-IF。其官方网站为http://www.usb.org,您可从中免费下载最新的USB规范。
10. 数据是如何通过USB协议传输的?
USB规范定义了四种不同的数据传输机制。
控制传输
USB主机使用控制传输向USB设备发送命令和询问。当枚举USB设备时,控制传输使用端点0(EP0),这样可强制所有USB设备支持EP0而无需考虑支持速度。控制包的最大容量为8、16、32或64字节。低速USB设备中控制传输的包长度必须为8字节,全速USB设备必须为64字节,而高速USB设备允许8、16、32或64字节。
中断传输
中断传输是USB设备向USB主机请求一定轮询速率的方法。在枚举过程中,USB设备向USB主机请求轮询时间。全速设备的最大轮询速率为每毫秒一次,低速设备为每10毫秒一次。低速USB设备的最大数据负载为8字节,全速USB设备为64字节。这使得全速USB设备的最大吞吐量为64KB/s,低速USB设备为800B/s。确认中断传输可保证数据的传送。如果传输包接收失败,则会重新发送。
批量传输
批量传输是设备传输大量数据的方法,但是不能保证会及时发送。在总线安排传输时,批量传输的优先级最低。当其他传输完成后,余下的带宽复位后将分配给批量传输。与中断传输一样,确认批量传输可保证数据的传送。只有全速和高速设备支持批量传输。对于全速USB设备的端点而言,最大的包容量可为8、16、32或64字节长度。对于高速USB设备的端点而言,最大的包容量可高达512字节长度。
同步传输
同步传输保证了传输速率。全速同步传输每帧可发送1023字节的数据。同步传输无需确认。因此,同步包有可能并未送达。同步传输的典型应用为音频/视频流,其中最重要的是以丢失包为代价保持视频和音频的进行。全速USB设备的最大传输率为1023Kbps。
11. 什么是令牌包?
USB协议定义了四种类型的包:
帧起始
令牌
数据
握手
有三种不同的令牌包。
IN —— 通知USB设备,主机欲读取信息
OUT —— 通知USB设备,主机欲发送信息
Setup —— 通知设备,主机要进行控制传输
12. 在通信中,USB协议如何检测错误?
USB协议通过CRC(循环冗余校验)检测错误。CRC由SIE(串行接口引擎)完成,从而无需软件执行CRC并可减少软件开销。令牌包为5位CRC,数据包为16位CRC。
13. 如果SIE接收到已损坏的数据会怎么样?
如果包未能通过CRC检查,SIE会丢弃该损坏的包,而无需软件介入。并将设置错误标志,说明接收到的包已损坏。SIE将不会对CRC值不正确的包进行确认。对于中断、批量和控制传输,如果未接收到确认,主机会尝试重新发送包。这样,虽然不会因包的损坏而造成数据丢失,但是可能会遭遇较低的带宽使用率。
14. USB协议中的传输(transfer)和事务(transaction)有何区别?
传输是事务的集合,事务是包的集合。
15. 最大可发送多大的数据包?
这取决于所使用的传输类型。全速USB设备的中断和批量传输的最大净负载为64字节,同步传输最多可传送1023字节。
16. 什么是枚举过程?
USB主机通过枚举过程可了解有新的USB设备与总线相连。在应用开始前,主机向设备询问各种信息,以确定设备的类型、载入设备所需的设备驱动程序以及设备的功率需求等。在枚举过程中,USB主机还为连接的设备分配地址。在地址设定后,USB主机将与位于该地址的设备进行通信。枚举过程的最终任务之一是把设备设定为某一具体运行配置。枚举过程的详细内容在USB规范的9.1.2节中给出。
17. USB主机如何识别USB设备的速度?
USB主机在两根通信线(D+和D-)上均有弱下拉电阻。如果设备要以全速模式运行,将会用较大的上拉电阻上拉D+。如果设备要运行在低速模式下,则会上拉D-。两种情况中的上拉电阻的标称值为1 kΩ。
18. USB主机如何对USB设备进行复位?
将D+和D-拉低至少10毫秒,USB主机就会对设备进行复位。当D+和D-拉低时间超过2.5微秒,USB设备就可认为已发生复位。一旦USB设备检测到了复位,在USB主机移除复位后将马上进入默认状态。该复位仅用于USB复位,不可复位控制器。
19. 如果USB主机对某一USB设备发送复位命令,那么其他与之相连的USB设备是否也会被复位?
不会。USB主机会要求集线器只复位相连的某个特定USB设备。如果USB主机复位集线器的话,那么与该集线器相连的所有设备都将被复位。
20. USB主机如何获取相连的USB设备名称?
已知USB设备的设备描述符中有许多字符串,其中一个就是制造商字符串。如果已知这些字符串,USB主机就可以在枚举过程中对其进行读取。
21. 什么是设备描述符?
设备描述符是描述各种关于相连设备信息的数据表,如制造商的厂商ID(VID)和产品ID(PID)。设备描述符的完整内容可在USB规范的表9-8中获取。
22. 什么是VID和PID?
VID指的是厂商ID,PID指的是产品ID。通过支付费用,USB-IF会发出VID。USB-IF要求每个厂商拥有自己的VID,以便销售其产品。当所使用的VID/PID不是惟一时,可能会发生法律和技术上的纠纷。
可从http://www.usb.org/developers/vendor/获取VID。
一旦购买了VID,制造商可自行决定如何在VID的范围内使用PID。
23. 我是否必须购买自己的VID? Microchip是否可授予其VID的从许可权?
Microchip有一套授予其VID从许可权的程序。请访问www.microchip.com/usb内的支持与培训页面,了解关于如何获取带Microchip VID的PID的更多信息。
24. 我生产的每种设备都需要一个新的PID吗?
每条产品线的产品都需要一个新的PID。产品线中相同的产品必须具有相同的PID。如果产品线中的每一款产品均需要具有惟一的标识符,可采用设备描述符中的iSerialNumber字段惟一地标识各设备。
25. 当两个USB设备同时连接到USB主机上时,会产生冲突吗?
不会。主机一次复位一个设备;并在完成当前设备的枚举过程后,才开始调查下一个设备。
入门/工具
26. Microchip提供哪些用于USB的开发工具?
更多关于各种USB开发和评估平台的信息,可在“工具”页面获得。
27. 在哪里可以购买到样片、C编译器和工具等产品?
您可以在Microchip Direct (www.microchipdirect.com)上购买。
28. 可获得哪些种类的C编译器?
Microchip提供以下各类编译器:
PIC18F USB系列单片机 —— C18
PIC24F USB系列单片机 —— C30
PIC32MX USB系列单片机 —— C32
上述编译器具有两种版本:授权版和教学版。关于教学版的限制,请参考各编译器相关文档。
29. 哪里可获得所有的软件?
关于USB的所有软件可在软件/工具处获得。
30. 哪里可找到无需修改或编译代码的评估用预编译演示文件?
USB固件v2.1以上的预编译演示文件可在“<INSTALL DIRECTORY>\USB – Precompiled Demos”目录下找到。该目录下还有相关文档,说明运行演示时所需的硬件,如何加载固件到设备以及如何运行演示。
31. USB协议栈所需的资源有哪些?
因编译器、处理器系列、USB运行模式(主机、USB设备和OTG等)和所使用的USB类/功能等的不同,所需要的资源是不同的。此外,不同的USB固件版本,所需资源也是不同的。
请参考各版本的版本说明,来估算各变量组合的不同大小。
USB设备/外设
32. USB集线器会降低设备运行速度吗?
USB集线器必须在帧结束前重新计算剩余时间。集线器造成的少量额外延迟将减少可用带宽。如果多个设备连接到集线器且并行工作(如网络摄像头 + USB闪存存储器 + 鼠标)的话,USB带宽由所有设备共用。
33. Microchip支持哪些设备类?
目前,Microchip支持以下各类的USB设备版本:HID(人机接口设备 —— 键盘、游戏杆和鼠标等)、CDC(通信设备 —— 调制解调器和以太网适配器等)、MSD(大容量存储设备 —— U盘和移动硬盘等),以及定制设备类 —— 客户可针对其产品开发专用的驱动程序。
更多关于所支持的设备类信息,请参考各软件版本的版本说明。
34. 两个集线器或两个USB设备之间的最大电缆长度为多少?
USB电缆的最大长度为5米。
35. “组合型”USB设备与“复合型”USB设备有何区别?
除一个或多个USB外设之外,“复合型”USB设备还有一个内置集线器,只需一根USB电缆就可把这一将所有功能集成到单个产品中的设备与主机相连。
“组合型”USB设备不使用集线器芯片。在单个外设中使用多个接口。目前,Microchip的全速USB芯片可用于开发组合型USB设备,而不能用于开发复合型设备。
36. Microchip定制的USB驱动程序支持Windows Vista系统吗?
1.3版以上的版本包含已更新的驱动程序,可工作在Windows Vista操作系统上(32和64位版本均适用)。
37. USB设备的Vbus引脚上可通过的最大电容是多少?为什么?
USB连接器的Vbus引脚上的最大电容必须小于10uF。
这是为了限制设备通电时的浪涌电流。限制浪涌电流的目的是为了限制向新连接设备的电容充电而导致的Vbus电压下降。如果没有对热插拔设备的浪涌电流进行限制的话,新连接的设备可能会导致其他设备停止工作。
如果应用中所需的电容值大于规范允许范围,那么将需要一个软启动电路将浪涌电流限制在规定值。
38. USB设备自供电时需注意些什么?
设备自供电时,必须使用I/O引脚来检测电缆的连接。只有USB主机驱动Vbus变为高电平后才能上拉D+或D-。
自启动设备的设置也必须与自启动一致。如果配置描述符显示为自启动,那么对于设备的任何GET_STATUS请求也必须返回自启动。
39. 如果我想根据实际状态选择由总线供电或自供电的话,那么该如何指定配置描述符?
如果希望该设备为总线供电,那么即使一段时间为自供电,也必须声明其为总线供电设备。
GET_STATUS请求应将USB设备目前工作在自供电或总线供电下的信息精确地反馈给主机。
40. 在使用HID类时PC端无需任何文件支持,而为何在使用CDC时需要INF文件?
CDC类有许多其他子类规范。主机需要知道应将哪些设备驱动程序载入连接的设备中。该信息存放于.INF文件。这就是说,当有新的CDC设备第一次与主机相连时,主机需要进行某些安装/设置过程。
USB嵌入式主机
41. 主机、嵌入式主机、受限主机和微型主机之间有何区别?
主机总是与能连接USB外设的PC机和笔记本电脑相提并论。完整的主机必须在Vbus端汲取500mA的电流,向所连接的外设供电。
嵌入式主机主要在小型便携式设备中,如机顶盒和PDA等。其在Vbus端汲取的最小电流仅为8mA。由于存储器容量有限,只能存储有限的驱动程序,因此所连接的外设也是有限的。与完整的主机不同,嵌入式主机无需载入不支持的设备驱动程序。但是,需要通知用户连接了不支持的设备。
通常称嵌入式主机为“微型主机”或“受限主机”,其实都是指同一类型的设备。嵌入式主机、微型主机或受限主机并未在USB规范或OTG补充中提及。相关认证程序的过程提到了嵌入式主机。
42. Microchip是否提供完整U盘应用所需的全部协议栈?
是的。Microchip提供USB海量存储类驱动程序、SCSI接口、FAT16/32格式软件和文件管理的应用示例。相关固件可在Software/Tools上获得。
43. Microchip支持哪些设备类?
目前,嵌入式主机协议栈支持MSD(海量存储设备——U盘和移动硬盘等)和定制设备类——客户可针对他们的设备开发专用的驱动程序。
关于软件支持的更多信息,请参考具体版本的版本说明。
44. 类似硬盘的高速外设可以连接到全速运行的主机上吗?
可以。USB协议要求所有全速通信和高速通信均作为全速通信启动,如果设备均支持高速,可向上扩展为高速。如果其中一个设备只支持全速的话,通信将限于全速级别,即12 Mbps。
45. 那么是不是说明任何硬盘可工作在任何主机上?
不是。硬盘为海量存储设备,并提供一些数据格式规定。要使设备工作,与简单的互相识别不同,文件和接口协议必须匹配。例如,U盘就是一种典型的海量存储应用。但要使设备功能齐全,必须具备USB类驱动程序、SCSI接口和FAT 16文件格式。
目前的USB嵌入式主机固件版本只支持FAT16文件格式。FAT32还在开发中。不支持NTFS和其他文件系统。
46. 作为一个嵌入式主机,需要支持会话请求协议(SRP)和主机协商协议(HNP)吗?
嵌入式主机SRP是可选特性,不是必需的。在大多数情况下,很可能无需这两种协议。更多关于SRP的信息,请查看本FAQ的OTG部分。
由于嵌入式主机只能作为主机使用,而不能作为USB设备,因此不会支持HNP。更多关于HNP的信息,请查看本FAQ的OTG部分。
USB On-The-Go(OTG)
47. 什么是OTG?为何开发OTG?
OTG规范是原有USB规范的追加。USB OTG对便携式设备进行定义,从一个设备只能有一个连接器到可与支持USB的产品相连而无需PC。这使得移动设备能互相连接。一个扮演嵌入式主机的角色,另一个作为USB设备使用,从而无需专为USB应用而准备PC。
48. 如果只想与USB设备(外设)对话,是否需要OTG产品?
如果设备只需与USB设备进行对话而不必与其他USB主机连接的话,该设备可以是嵌入式主机而无需为OTG产品(详情请参考上述嵌入式主机部分)。如果设备需要与USB设备和USB主机连接的话,就需要使用OTG产品了。
49. USB OTG是否需要同时存在于两个产品中才能互相连接和运行?
不需要,USB OTG产品将连接至所有的PC,并且还具有主机功能可连接到其支持的特定USB外设。
50. 使用USB OTG是否就不需要PC了?
不是这样的。其实,USB OTG补充了“广义PC”的概念,这一概念将PC置于广义数字设备世界的消费中心。通过实现数字设备之间的基本功能,USB OTG提高了这些PC外设的能力,使其对消费者和公司用户更具价值。
51. 什么是主机协商协议(HNP)?
根据与其连接的电缆另一端是哪类设备,USB OTG设备可确定哪些是主机设备哪些是外设。如果操作需要切换角色,HNP可提供角色切换机制,而无需移除和切换电缆终端。
52. 什么是会话请求协议(SRP)?
与其他USB主机不同,USB OTG设备在不使用时可从Vbus线上移除。Vbus上电的时间即为一次会话。使用SRP的话,连接在OTG产品上的设备可请求开始一次新的会话。在设备发出SRP信号后,OTG产品作为主机将从Vbus上电并与设备开始通信。
53. 当把两个USB OTG设备接插在一起时会怎么样?
当两个双重角色的设备通过电缆连接在一起时,电缆会设置默认主机和默认外设。如果在应用中需对调两个设备的角色,那么通过主机协商协议(HNP)提供的握手功能可完成这一动作。如果两个设备均不支持HNP,那么需通过反向连接电缆来满足设备所需的作用。
54. OTG采用哪种连接器?
未量产的OTG设备需要使用微型A/B连接器。这使得微型电缆的A或B端可进行连接。注意,不要把该连接器与用于USB设备的微型B连接器相混淆。
55. 如果可作为嵌入式主机或USB设备(外设)而又不必在两者之间进行动态切换,这样可行吗?我需要使用何种连接器?
是的,这是可行的。有两种方法可解决这一问题。
第一种解决方案是使用微型A/B连接器并对设备进行编程使其成为OTG设备。由于SRP和HNP为可选特性,因此可以禁用。这种方法的局限性是,具有A型连接器的USB设备,需要适配器以便与设备上的微型A/B端相连。
另外,设备可具有两个USB连接器。每个连接器必须有独立的Vbus电路,不过可以共用D+和D-。这种方法的局限性是,USB测试规范要求用户使用的所有连接器必须同时起作用。但是,目前的USB设备只支持一个USB端口,因此不可能同时使两个连接器工作。这就意味着必须实行某些机械特性,以便在任何时间两个端口中只有一个可供使用。
USB认证
56. 每个Microchip USB单片机上USB-IF的外设硅片TID编号是多少?
USB符合性测试ID
产品系列 TID 编号
PIC18F2455/2458/2550/2553/4455/4458/4550/4553 40002568
PIC18F87J50/86J55/86J50/85J50/67J50/66J55/66J50/65J50 40000369
PIC24FJ256GB110/108/106, PIC24FJ192GB110/108/106,
PIC24FJ128 GB110/108/106, PIC24FJ 64GB110/108/106 40000566
PIC18F2450/4450 40000174
这是水淼·dedeCMS站群文章更新器的试用版本更新的文章,故有此标记(2023-09-03 08:34:19)