USB(Universal Serial Bus)
USB(通用串行总线)是用于将适用USB的外围设备连接到主机的外部总线结构,其主要是用在中速和低速的外设
在USB的网络协议中它负责管理整个USB系统Host与USB Device的通信Host 端有一个Root Hub???????ú?éò?á??óò???USB Hub 或一个USB Device?′USB Hub可以将一个USB端口扩展为多个端口如USB键盘USB MODEM Compound Device是指带一个Hub和一个或多个不可删除的USB Device的复合设备
USB的系统有且只有一个host所以将两台PC的USB
口通过A-A USB电缆连接起来如果将两个host连起来通信
与它的网络协议冲突Prolific等厂家有USB到USB的设备控制器
USB设备
USB的设备可以接在PC上的任意的USB接口上
USB的Hub有一个上行的端口(到host)
从而可以使整个的系统可以扩展的连接127个外设
对于USB系统来说所有的其他连接到host都称为设备
只有通过host的管理与调节才能够实现数据的互相传送通常会有一个根Hub
USB的设备类型(device class)
虽然USB设备都会表现USB的一些基本的特征
同类型的设备可以拥有一些共同的行为特征和工作协议
下表中就给出一些基本的USB的设备类型分类
鼠标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
Bulk存储器硬盘USB_DEVICE_CLASS_STORAGE
HUB USB_DEVICE_CLASS_HUB
USB的优点有以下几条
U SB为所有的USB外设提供了单一的这样一来就简化了USB外设的设计
2?úê?á??μí3×ê?′
U SB支持热插拔(hot plug)和PNP(Plug-and-Play)
?????ú?μí3?ˉì?μ??ì2aíaéèμ?2?°?
??????í¨μ?ía?§á??ó±ê×?
4USB直接连接到Hub或者是连接到Host的设备可以通过USB电缆供电或使用两种供电方式的组合.并且支持节约能源的挂机和唤醒模式
U SB提供全速12Mbps的速率和低速 1.5Mbps的速率来适应各种不同类型的外设
6USB提供了四种不同的数据传输类型Bulk数据传输同步数据传输可为音频和视频等实时设备的实时数据传输提供固定带宽
U SB的端口具有很灵活的扩展性
传输方式
USB有四种的传输方式同步(isochronous)大量(bulk)
???1òa?yè·????′?ê?μ?·?ê?
?í??Dèòa?a??3t??ê?2éó?μ?ê2?′1¤×÷·?ê??íDDá?
1????′?ê?ê????ò′?ê?USB系统软件用来主要进行查询控制传输方式可以包括832和64字节的数据控制传输典型地用在主计算机和USB外设之间的端点(Endpoint)0之间的传输
2í?2?′?ê?ìá1?á?è·?¨μ?′??íoí????ê±??它被用于时间严格并具有较强容错性的流数据传输
例如执行即时通话的网络电话应用时同步数据要求确定的带宽值和确定的最大传输次数即时的数据传递比完美的精度和数据的完整性更重要一些
中断(interrupt)方式传输
设备的端点模式器的结构决定了它的查询频率这种传输方式典型的应用在少量的分散的键盘
中断方式传输是单向的并且对于host来说只有输入的方式
大量(bulk)传输同时又没有带宽和间隔
时间要求的情况下打印机和扫描仪属于这种类型
可以等到所有其它类型的数据的传输完成之后再传输和接收数据
每帧通常是1ms时间长
在完成了系统的配置信息和连接之后
用来适应整个的USB的带宽同步方式和中断方式的传输会占据整个带宽的90%
数据交换
一个transaction是在host和设备通常由host开始交换接下来是双方向上的数据包
就会由设备返回一个握手USB系统通过IN,OUT,和SETUP 的包来指定USB地址和endpoint0通常被用来用做缺省的传送配置信息的每个SETUP 的包包含8个byte的数据对于DATA数据包来说
ACK handshake的包用来指示数据传送的正确性
并且请示host重新发数据或者清除这次传送
将不同于总线速度的设备中就会回应一个PRE的包从而会忽略该设备DATA的数据包最大是1023bytes
从https://www.wendangku.net/doc/5510150225.html,/developer处得到USB的Specificationí?ê±?é2???The USB Handbook by Jaff Kosar
2如果要开发WDM驱动程序则需要一台有以下配置的PC
然后DDK
3
42?òa×??T??μ????′2¢?òμ????é?ü?àμ?êμày?′3ìDò′ú??
5同时就可以获得一个Vendor ID每个Vendor ID的零售价格是$200
6è?×ü??·???ò?竞争者的相应USB设备以及USB鼠标USB键盘等
7MCU固件程序和客户程序代码
参加USB遵从试验
驱动程序编写
USB的驱动程序和以往的直接跟硬件打交道的WIN95的VXD的方式的驱动程序不同Windows下的USB软件总体框图如图2
USB软件总体框图
í???ê?ò??????ò1?′óμ?×ó°?o????DD?Dí?óòμ1¤3ì??ê?è??±μ?μ?×ó??ê?ó|ó??÷òa?úèYóD?÷?t×êá?μ?×ó??ê??§3?·t??×aè?oíòy??μèD??¢
°?è¨ê??-×÷??
在使用本资料或软件时欢迎到网站内的BBS
中发表
技术论坛
欢迎到网站下载
电子爱好者http://www.etuni.com