USB通信协议分析和总结.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编码方式 USB 标准采用 NRZI(翻转不归零制)方式对数据进行编码,电平保持时传送逻辑1,电平翻转时传送逻辑 0。 软件架构 焊接在印刷电路板上的 USB 插座 一个 USB 主机通过 hub 链可以连接多个设备。由于理论上一个物理设备可以承担多种功能,例如路由器同时也可以是一个 SD 卡读卡器,USB 的术语中设备 (device)指的是功能(functions)。集线器(hub)由于作用特殊,按照正式 的观点并不认为是 function。直接连接到主机的 hub 是根(root)hub。 [编辑] 端点 设备/功能(和集线器)与管道 pipe(逻辑通道)联系在一起,管道把主机控制器和被称为端点 endpoint 的逻辑实体连接起来。管道和比特流(例如 UNIX 的 pipeline)有着相同的含义,而在 USB 词汇中术语端点经常和管道混用,甚至在正式文档中。 端点(和各自的管道)在每个方向上按照 0-15 编号,因此一个设备/功能最多有 32 个活动管道,16 个进,16 个出。(出(OUT)指离开控制器,而入(IN) 指进入主机控制器。)两个方向的端点 0 总是留给总线管理,占用了 32 个端点中的 2 个。在管道中,数据使用不同长度的包传递,端点可以传递的包长度上限一般是字节,所以 USB 包经常包含的数据量依次有 8、16、32、64、128、256、512 或者 1024 字节。 一个端点只能单向(进/出)传输数据,自然管道也是单向的。每个 USB 设备至少有两个端点/管道:它们分别是进出方向的,编号为0,用于控制总线上的设备。按照各自的传输类型,管道被分为 4 类: 控制传输(Control)——一般用于短的、简单的对设备的命令和状态反馈,例如用于总线控制的 0 号管道。 同步传输(Isochronous)——按照有保障的速度(可能但不必然是尽快地)传输,可能有数据丢失,例如实时的音频、视频。 中断传输(Interrupt)——用于必须保证尽快反应的设备(有限延迟), 例如鼠标、键盘。 批量传输(Bulk)——使用余下的带宽大量地(但是没有对于延迟、连续性、带宽和速度的保证)传输数据,例如普通的文件传输。 一旦设备(功能)通过总线的 hub 附加到主机控制器,主机控制器就给它分配一个主机上唯一的 7 位地址。主机控制器通过投票分配流量,一般是通过轮询模式, 因此没有明确向主机控制器请求之前,设备不能传输数据。 为了访问端点,必须获得一个分层的配置。连接到主机的设备有且仅有一个设备描述符(device descriptor),而设备描述符有若干配置描述符(configuration descriptors)。这些配置一般与状态相对应,例如活跃和节能模式。每个配置描述符有若干接口描述符(interface setting),用于描述设备的一定方面, 所以可以被用于不同的用途:如一个相机可能拥有视频和音频两个接口。接口描述符有一个缺省接口设置(default interface setting)和可能多个替代接口设置(alternate interface settings),它们都拥有如上所述的端点描述符。一个端点能够在多个接口和替代接口设置之间复用。 [编辑] HCD (Host Controller Driver) 包含主机控制器和根 HUB 的硬件为程序员提供了由硬件实现定义的接口主机控制器设备 (HCD)。而实际上它在计算机上就是端口和内存映射。 1.0 和 1.1 的标准有两个竞争的 HCD 实现。康柏的 开放主机控制器接口 (OHCI) 和 Intel 的通用主机控制器接口 (UHCI)。VIA 威盛采纳了 UHCI;其他主要的芯片组多使用 OHCI。它们的主要区别是UHCI 更加依赖软件驱动,因此对CPU 要求更高,但是自身的硬件会更廉价。它们的并存导致操作系统开发和硬件厂商都必须在两个方案上开发和测试,从而导致费用上升。因此 USB-IF 在 USB 2.0 的设计阶段坚持只能有一个实现规范,这就是扩展主机控制器接口 (EHCI)。因为EHCI 只支持高速传输,所以 EHCI 控制器包括四个虚拟的全速或者慢速控制器。这里同样是 Intel 和 Via 使用虚拟 UHCI,其他一般使用 OHCI 控制器。 某些版本的 Windows 上,打开设备管理器,如果设备说明中是否有“增强” (Enhanced),就能够确认它是 2.0 版的。而在 Linux 系统中,命令 lspci 能够列出所有的 PCI 设备,而 USB 会分别命名为 OHCI、UHCI 或者 EHCI。列出为 32 位地址的为 EHCI,16 位的为 OHCI 命令 lsusb 能够显示所有 USB 设备的信息。命令 dmesg 能

文档评论(0)

dqy118 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体上海海滋实业有限公司
IP属地湖北
统一社会信用代码/组织机构代码
91310115MA7DL1JF2N

1亿VIP精品文档

相关文档