预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

编码方式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位地址。主机控制器通过投票分配流量,一般是通过轮询模式,因此没有明确向主机控制器请求之前,设备不能传输数据。为了访问端点,必须获得一个分层的配置。连接到主机的设备有且仅有一个设备描述符(devicedescriptor)而设备描述符有若干配置描述符,(configurationdescriptors)。这些配置一般与状态相对应,例如活跃和节能模式。每个配置描述符有若干接口描述符(interfacesetting),用于描述设备的一定方面,所以可以被用于不同的用途:如一个相机可能拥有视频和音频两个接口。接口描述符有一个缺省接口设置(defaultinterfacesetting)和可能多个替代接口设置(alternateinterfacesettings),它们都拥有如上所述的端点描述符。一个端点能够在多个接口和替代接口设置之间复用。[编辑]HCD(HostControllerDriver)包含主机控制器和根HUB的硬件为程序员提供了由硬件实现定义的接口主机控制器设备(HCD)。而实际上它在计算机上就是端口和内存映射。1.0和1.1的标准有两个竞争的HCD实现。康柏的开放主机控制器接口(OHCI)和Intel的通用主机控制器接口(UHCI)。VIA威盛采纳了UHCI;其他主要的芯片组多使用OHCI。它们的主要区别是UHCI更加依赖软件驱动,因此对CPU要求更高,但是自身的硬件会更廉价。它们的并存导致操作系统开发和硬件厂商都必须在两个方案上开发和测试,从而导致费用上升。因此USB-IF在USB2.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能够显示OS启动时关于USB设备的信息。[编辑]USB封包格式USB的封包格式和早期的互联网封包格式非常相似,要了解USB连接原理就一定要先了解封包格式。 USB封包格式偏移量0124689类型HeaderChksumHeaderSizeSi