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软件总体框图


发布评论