2024年4月5日发(作者:)

USB(Universal Serial Bus)

USB(通用串行总线)是用于将适用USB的外围设备连接到主机的外部总线结构,其主要

是用在中速和低速的外设实现数据

的传输他支持主系统(host)和USB的外围设备(device)之间

的数据传输

连接PC与电话 而电话提供最为广泛的通信互连

而计算机与通信是两个相对独立发展的产业

并行口和键盘鼠标端口都不能Plug-and-

USB

2

Play

3

从用户端来看

PC的已有的串行/并行口等端口只适用于一两种的外设

提供双向低速到中速(USB 2.0可达480Mb/s)的通用外设总线

并且易于扩展

图1

在USB的网络协议中

端有一个Root Hub

或一个USB Device

口扩展为多个端口

USB MODEM

可删除的USB Device的复合设备

    USB的系统有且只有一个host

口通过A-A USB电缆连接起来

有USB到USB的设备控制器

它负责管理整个USB系

Host与USB Device的通信Host

ÿ¸ö¶Ë¿Ú¿ÉÒÔÁ¬½ÓÒ»¸öUSB Hub

¼´USB Hub可以将一个USB端

如USB键盘

Compound Device是指带一个Hub和一个或多个不

所以将两台PC的USB

如果将两个host连起来通信

与它的网络协议冲突Prolific等厂家

USB设备

USB的设备可以接在PC上的任意的USB接口上

USB的Hub有一个上行的端口(到host)

从而可以使整个的系统可以扩展的连接127个外设

对于USB系统来说所有的其他连接到host都称为设备

只有通过host的管理与调节才能够实现数据的互

相传送通常会有一个根Hub

USB的设备类型(device class)

虽然USB设备都会表现USB的一些基本的特征

同类型的设备可以拥有一些共同的行为特征和工作协议

下表中就给出一些基本的USB的设备类型分类

图像

显示

物理回应设备

电源

打印机

Bulk存储器

HUB

鼠标

摄相机.扫描仪

监视器

动力回馈式游戏操纵杆

不间断电源供应

USB_DEVICE_CLASS_HUMAN_INTERFACE

USB_DEVICE_CLASS_IMAGE

USB_DEVICE_CLASS_MONITOR

USB_DEVICE_CLASS_PHYSICAL_INTERFACE

USB_DEVICE_CLASS_POWER

硬盘

USB_DEVICE_CLASS_PRINTER

USB_DEVICE_CLASS_STORAGE

USB_DEVICE_CLASS_HUB

USB的优点有以下几条

 SB为所有的USB外设提供了单一的U

了USB外设的设计

2½ÚÊ¡ÁËϵͳ×ÊÔ´

USB支持热插拔(hot plug)和PNP(Plug-and-Play) 

¼ÆËã»úϵͳ¶¯Ì¬µØ¼ì²âÍâÉèµÄ²å°Î

ÆäËûÆÕͨµÄÍâΧÁ¬½Ó±ê×¼

USB直接连接到Hub或者是连接到Host的设备可

以通过USB电缆供电或使用两种供电

方式的组合.并且支持节约能源的挂机和唤醒模式

USB提供全速12Mbps的速率和低速1.5Mbps的速率来适应各种不同类型的外设 

USB提供了四种不同的数据传输类型

同步数据传输可为音频和视频

这样一来就简化

4

6

Bulk数据传输

等实时设备的实时数据传输提供固定带宽

USB的端口具有很灵活的扩展性 

传输方式

USB有四种的传输方式同步(isochronous)

Ä㻹ҪÕýÈ·Ñ¡Ôñ´«ÊäµÄ·½Ê½

¾ÍÖ»ÐèҪŪÇå³þËûÊDzÉÓõÄʲô¹¤×÷·½Ê½¾ÍÐÐÁË

大量(bulk)

1¿ØÖÆ´«ÊäÊÇË«Ïò´«Êä

要进行查询

和64字节的数据

设之间的端点(Endpoint)0之间的传输

USB系统软件用来主

控制传输方式可以包括832

控制传输典型地用在主计算机和USB外

2ͬ²½´«ÊäÌṩÁËÈ·¶¨µÄ´ø¿íºÍ¼ä¸ôʱ¼ä它被用

于时间严格并具有较强容错性的流数据传输

例如执行即时通话的网络电话应用时同步数

据要求确定的带宽值和确定的最大传输次数即时的数据传递比完

美的精度和数据的完整性更重要一些

中断(interrupt)方式传输 

设备的端点模式器的结构决定了它的查询频率这种传输方式典

型的应用在少量的分散的键盘

中断方式传输是单向的并且对于host来说只有输入的方式

大量(bulk)传输 同时又没有带宽和间隔

时间要求的情况下

传输和接收数据

打印机和扫描仪属于这种类型

可以等到所有其它类型的数据的传输完成之后再

每帧通常是1ms时间长

在完成了系统的配置信息和连接之后

用来适应整个的USB的带宽

步方式和中断方式的传输会占据整个带宽的90%

数据交换

一个transaction是在host和设备

始交换

就会由设备返回一个握手

的包来指定USB地址和endpoint

的包包含8个byte的数据

通常由host开

接下来是双方向上的数据包

USB系统通过IN,OUT,和SETUP

0通常被用来用做缺省的传送配置信息

每个SETUP

对于DATA数据包来说

ACK handshake的包用

来指示数据传送的正确性

并且请示host重新发数据或者清除这次传送

将不同于总线速度的设备中就会回应一个PRE的包

从而会忽略该设备DATA的数据包最大是1023bytes

 Http:///developer处得到USB的Specification从

¿¼The USB Handbook by Jaff Kosar

2

ͬʱ¿É²Î

如果要开发WDM驱动程序则需要一台有以下配置的PC

然后DDK

3

4

5

Vendor ID

6

以及USB鼠标USB键盘等

²»Òª×öÎÞνµÄÖØ¸´

ʵÀýÔ´³ÌÐò´úÂë

²¢ÕÒµ½¾¡¿ÉÄܶàµÄ

同时就可以获得一个

每个Vendor ID的零售价格是$200

Èç×ÜÏß·ÖÎöÒÇ竞争者的相应USB设备

7

参加USB遵从试验 

MCU固件程序和客户程序代码

驱动程序编写

USB的驱动程序和以往的直接跟硬件打交道的WIN95的VXD的方式的驱动程序不

同Windows下的USB软件总体框图如图2

USB软件总体框图