USB基础介绍
(转)USB (Universal Serial Bus)
全文地址:http://vlewang.blog.163.com/blog/static/105878151201032804347546/
USB(通用串行总线)是用于将适用USB的外围设备连接到主机的外部总线结构,其主要是用在中速和低速的外设,。USB是通过PCI总线和PC的内部系统数据线连接,实现数据的传输,。USB同时又是一种通信协议,他支持主系统(host)和USB的外围设(device)之间的数据传输。
USB的动机
1 连接PC与电话,
PC具有很强的运算能力,而电话提供最为广泛的通信互连,运算与通信成为计算机应用的基础,而计算机与通信是两个相对独立发展的产业,USB旨在提供可以广泛应用于PC,到电话的互连的普遍性的连接。
2 Plug-and-Play
从用户端来看,PC的串行口,并行口和键盘鼠标端口都不能Plug-and-Play,USB则提供真正的Plug-and-Play。
3 端口扩展
PC的已有的串行/并行口等端口只适用于一两种的外设,并且不易扩展,USB提供双向,低成本,低速到中速(USB 2.0可达480Mb/s)的通用外设总线,适用于连接各种各样的外设,并且易于扩展。
USB的拓朴结构
在USB的网络协议中,每个USB的系统有且只有一个host,它负责管理整个USB系统,包括USB Device的连接与删除,Host与USB Device的通信,总路线的控制等等,Host端有一个Root Hub,可提供一个或多个USB下行端口,每个端口可以连接一个USB Hub或一个USB Device。USB Hub,是用于USB 端口扩展的,即USB Hub可以将一个USB端口扩展为多个端口,图1中的每个Func(Function)就是一个USB Device,如USB键盘,USB鼠标,USB MODEM,USB硬盘等等,Compound Device是指带一个Hub和一个或多个不可删除的USB Device的复合设备,一个USB系统可连接多达127个Function。
USB
的系统有且只有一个host,而PC端的USB都是Host,所以将两台PC的USB
口通过A-A USB电缆连接起来,是不能实现通信,如果将两个host连起来通信,这样一来的一个USB的系统有了两个的host,与它的网络协议冲突,Anchorchip,Prolific,等厂家
有USB到USB的设备控制器,可以实现两个USB Host的相连
USB设备
USB的设备可以接在PC上的任意的USB接口上,而使用Hub还可以扩展使更多的USB设备连接到系统中,USB的Hub有一个上行的端口(到host),有多个的下行端口(连接其它的设备),从而可以使整个的系统可以扩展的连接127个外设,其中Hub也算外设。对于USB系统来说,USB的host永远在PC边,所有的其他连接到host都称为设备,在设备与设备之间是无法实现直线通信的,只有通过host的管理与调节才能够实现数据的互相传送,在系统中,通常会有一个根Hub,这个Hub一般有两个下行的端口。
USB的设备类型(device class)
虽然USB设备都会表现USB的一些基本的特征,但是USB的设备还是可以分成多个不同类型,同类型的设备可以拥有一些共同的行为特征和工作协议,从而使设备的驱动程序的书写变得简单一些,下表中就给出一些基本的USB的设备类型分类
设备举例 |
音频(audio) |
USB_DEVICE_CLASS_AUDIO |
MODEM |
HID |
USB_DEVICE_CLASS_HUMAN_INTERFACE |
摄相机.扫描仪 |
显示 |
USB_DEVICE_CLASS_MONITOR |
动力回馈式 游戏操纵杆 |
电源 |
USB_DEVICE_CLASS_POWER |
Bulk存储器 |
USB_DEVICE_CLASS_STORAGE |
|
的优点 1、USB为所有的USB外设提供了单一的,易于使用的标准的连接类型,这样一来就简化了USB,外设的设计,同时也简化了用户在判断哪个插头对应哪个插槽时的任务,实现了单一的数据通用接口。 2、整个的USB的系统只有一个端口和一个中断,节省了系统资源。 3、USB支持热插拔(hot plug)和PNP(Plug-and-Play),也就是说在不关闭PC,的情况下可以安全的插上和断开USB设备,计算机系统动态地检测外设的插拔,并且动态地加载驱动程序,其他普通的外围连接标准,如SCSI设备等必须在关掉主机的情况下才能插拔外围设备。 4、USB在设备供电方面提供了灵活性,USB直接连接到Hub或者是连接到Host的设备可以通过USB电缆供电,也可以通过电池或者其它的电力设备来供电,或使用两种供电方式的组合并且支持节约能源的挂机和唤醒模式。 5、USB提供全速12Mbps的速率和低速1.5Mbps的速率来适应各种不同类型的外设。USB2.0还支持480Mbps的高速传输速率。 6、为了适应各种不同类型外围设备的要求,USB提供了四种不同的数据传输类型:控制传输,Bulk,数据传输,中断数据传输和同步数据传输,同步数据传输可为音频和视频等实时设备的实时数据传输提供固定带宽。 7、USB的端口具有很灵活的扩展性,一个USB端口串接上一个USB Hub就可以扩展为 多个USB端口。 传输方式 USB将其有效的带宽分成各个不同的帧(frame),每帧通常是1ms时间长,每个设备每帧只能传输一个同步的传输包,在完成了系统的配置信息和连接之后,USB的host就会对不同的传输点和传输方式做一个统筹安排,用来适应整个的USB的带宽,通常情况下,同步方式和中断方式的传输会占据整个带宽的90%,剩下的就安排给控制方式传输数据 数据交换,Transactions 一个transaction是在host和设备(device)之间的不连续相互数据交换,通常由host开始交换,交换的开始是由Token的包开始的,接下来是双方向上的数据包,在数据包传送完之后,就会由设备(device)返回一个握手(handshake)包,USB系统通过IN,OUT和SETUP的包来指定USB地址和endpoint(最多是128个0,通常被用来用做缺省的传送配置信息的)。并且这些被指定的设备必须通过上面形式的包来回应这种形式的指定,每个SETUP的包包含8个byte的数据,数据用来指示传送的数据类型,对于DATA数据包来说,设置两种类型的数据包是为了能够在传送数据的时候做到更加的精确,ACK handshake的包用来指示数据传送的正确性,而STALL handshake则表示数据包在传送的过程中出了故障并且请示host重新发数据或者清除这次传送,PRE格式的包主要是用在在一个USB的系统中如果存在不同速率的设备的时候,将不同于总线速度的设备中就会回应一个PRE的包从而会忽略该设备,各种不同类型的包的大小是不同的,DATA的数据包最大是1023bytes。 USB,设备的开发 驱动程序编写 |
USB基础介绍的更多相关文章
- 高通camera结构(摄像头基础介绍)
摄像头基础介绍 一.摄像头结构和工作原理. 拍摄景物通过镜头,将生成的光学图像投射到传感器上,然后光学图像被转换成电信号,电信号再经过模数转换变为数字信号,数字信号经过DSP加工处理,再被送到电脑中进 ...
- Web3D编程入门总结——WebGL与Three.js基础介绍
/*在这里对这段时间学习的3D编程知识做个总结,以备再次出发.计划分成“webgl与three.js基础介绍”.“面向对象的基础3D场景框架编写”.“模型导入与简单3D游戏编写”三个部分,其他零散知识 ...
- C++ 迭代器 基础介绍
C++ 迭代器 基础介绍 迭代器提供对一个容器中的对象的访问方法,并且定义了容器中对象的范围.迭代器就如同一个指针.事实上,C++的指针也是一种迭代器.但是,迭代器不仅仅是指针,因此你不能认为他们一定 ...
- Node.js学习笔记(一)基础介绍
什么是Node.js 官网介绍: Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js us ...
- Node.js 基础介绍
什么是Node.js 官网介绍: Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js us ...
- 1、git基础介绍及远程/本地仓库、分支
1. Git基础介绍 基于Git进行开发时,首先需要将远程仓库代码clone到本地,即为本地仓库.后续大部分时间都是基于本地仓库上的分支进行编码,最后将本地仓库的代码合入远程仓库. 1.1. 远程仓库 ...
- git基础介绍
git基础介绍 这是git操作的基础篇,是以前的写的操作文档,就没有进行手打,直接把图片贴进来了,你们担待哈,有不正确的地方可以指正出来,我将在第一时间去修改,多谢哈! 一.文件状态:git系统的文件 ...
- OSPF基础介绍
OSPF基础介绍 一.RIP的缺陷 1.以跳数评估的路由并非最优路径 2.最大跳数16导致网络尺度小 3.收敛速度慢 4.更新发送全部路由表浪费网络资源 二.OSPF基本原理 1.什么是OSPF a& ...
- iOS系统及客户端软件测试的基础介绍
iOS系统及客户端软件测试的基础介绍 iOS现在的最新版本iOS5是10月12号推出,当前版本是4.3.5 先是硬件部分,采用iOS系统的是iPad,iPhone,iTouch这三种设备,其中iPho ...
随机推荐
- 【bzoj2906】颜色 分块
题目描述 给定一个长度为N的颜色序列C,对于该序列中的任意一个元素Ci,都有1<=Ci<=M.对于一种颜色ColorK来说,区间[L,R]内的权值定义为这种颜色在该区间中出现的次数的平方, ...
- NOIP2017 【游记】
一年过去,想起去年还是个傻b[今年也是],心里总是无限的感慨. 脑海里是日日夜夜在机房的身影,一题一题AC的激情 我等今年等了许久,虽然我是个蒟蒻,但我有梦想的憧憬 鲲鹏展翅翼向天,扶摇直上九万里. ...
- Zookeeper(二) zookeeper集群搭建 与使用
一.zookeeper集群搭建 鉴于 zookeeper 本身的特点,服务器集群的节点数推荐设置为奇数台.我这里我规划为三台, 为别为 hadoop01,hadoop02,hadoop03 1. ...
- 解题:POI 2009 Lyz
题面 板板讲的霍尔定理 霍尔定理:一张二分图有完全匹配的充要条件是对于任$i$个左部点都有至少$i$个右部点与它们相邻.放在这个题里就是说显然最容易使得鞋不够的情况是一段连续的人,那就维护一下最大子段 ...
- 洛谷P1029 最大公约数和最小公倍数问题
题目描述 输入二个正整数x0,y0(2<=x0<100000,2<=y0<=1000000),求出满足下列条件的P,Q的个数 条件: 1.P,Q是正整数 2.要求P,Q以x0为 ...
- codeforces 691F 暴力
传送门:https://codeforces.com/contest/691/problem/F 题意:给你n个数和q次询问,每次询问问你有多少对ai,aj满足ai*aj>=q[i],注意 a* ...
- vim,删除所有
vim 删除所有内容:方法1: 按ggdG方法2: :%d
- 远程调试openstack
之前一直没有找到方法调试openstack的horizon代码,现在终于找到方法了,特别感谢下面这篇博客,讲解非常清晰: http://blog.csdn.net/tantexian/article/ ...
- 跟我一起写Makefile(二)
Makefile 总述——————— 一.Makefile里有什么? Makefile里主要包含了五个东西:显式规则.隐晦规则.变量定义.文件指示和注释. 1.显式规则.显式规则说明了,如何生成一个或 ...
- LeetCode-Sort List[AC源码]
package com.lw.leet4; /** * @ClassName:Solution * @Description: * Sort List * Sort a linked list in ...