总线接口与计算机通信(四)USB外部总线(初级认识)
USB简介
USB是英文Universal Serial BUS(通用串行总线)的缩写,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯,是应用在PC领域的接口技术。USB接口支持设备的即插即用和热插拔功能。
USB的电气特性
USB连接器包含四条线:2条用于电源供电(VBUS和GND),2条用于USB数据传输(D+和D-)。VBUS提供5V电源,电流可达500mA。D+和D-为双向信号线,信号传输速率为12Mbps(每位83ns)。D+和D-信号电平为3.3V

USB的特点
1)USB为所有的USB外设提供了单一的易于使用的标准的连接类型。这样一来就简化了USB 外设的设计,实现了单一的数据通用接口。USB的端口具有很灵活的扩展性,一个USB端口串接上一个USBHub就可以扩展为多个USB端口。整个的USB的系统只有一个端口和一个中断节省了系统资源。
2) USB支持热插拔(hot plug)和PNP(Plug-and-Play),也就是说在不关闭PC 的情况下可 以安全的插上和断开USB设备。
3)USB在设备供电方面提供了灵活性。直接连接到Hub,或者是连接到Host的设备可以通过USB,也可以通过电池或者其它的电力设备来供电,或使用两种供电方式的组合并且支持节约能源的挂机和唤醒模式。
5)USB传输速率适应各种不同类型的外设,提供全速12Mbps的速率和低速1.5Mbps的速率, USB2.0还支持480Mbps的高速传输速率。(现在usb3.0了,usb1.1不再考虑)
6)为了适应各种不同类型外围设备的要求,USB提供了四种不同的数据传输类型:控制传输,Bulk数据传输,中断数据传输和同步数据传输,同步数据传输可为音频和视频等实时设备的实时数据传输提供固定带宽。
USB四种的传输方式:
- 控制(Control)传输
控制传输是双向传输数据,主要进行查询配置和给USB设备发送通用的命令。控制传输方式可以包括8,16,32和64字节的数据,这依赖于设备和传输速度。控制传输典型地用在主计算机和USB外设端点之间的传输。
- 同步(isochronous)传输
同步传输提供了确定的带宽和间隔时间,它被用于时间严格并具有较强容错性的流数据传输,或者用于要求恒定的数据传输率的即时应用中,例如执行即时通话的网络电话,应用时使用同步传输模式是很好的选择。
- 中断(interrupt)传输
中断方式传输主要用于定时查询设备是否有中断数据要传输。设备的端点模式器的结构决定了它的查询频率从1到255ms之间。这种传输方式典型的应用在少量的分散的不可预测数据的传输,键盘、操纵杆和鼠标就属于这一类型。
- 批量(bulk)传输
主要应用在数据大量传输,而传输和接受数据上又没有带宽和间隔时间要求。打印机和扫描仪属于这种类型。
USB的拓朴结构

1) USB的网络协议中每个USB的系统有且只有一个host它负责管理整个USB系统,包括USB Device的连接与删除、与USB Device的通信、总路线的控制等等
2) Host端有一个Root Hub,可提供一个或多个USB下行端口,每个端口可以连接一个USB Hub或一个USB Device
3) USB Hub是用于USB端口扩展的,即USB Hub可以将一个USB端口扩展为多个端口。 上图中的每个Func(Function)就是一个USB Device,如USB键盘、USB鼠标、USB MODEM、USB硬盘等等
4) Compound Device是指带一个Hub和一个或多个不可删除的USB Device的复合设备
5) 一个USB系统可连接多达127个Function
USB 的设备类型(device class)
虽然USB设备都会表现USB的一些基本的特征,但是USB的设备还是可以分成多个不同类型。同类型的设备可以拥有一些共同的行为特征和工作协议从而使设备的驱动程序的书写变得简单一些。下表中就给出一些基本的USB的设备类型分类

引用:
总线接口与计算机通信(四)USB外部总线(初级认识)的更多相关文章
- 总线接口与计算机通信(二)SPI总线
SPI总线协议及SPI时序图详解 : http://blog.163.com/sunshine_linting/blog/static/44893323201181482335951/ 浅谈SPI总 ...
- 总线接口与计算机通信(五)CAN总线
CAN网络图示 CAN的特点 CAN协议具有以下特点. (1) 多主控制 在总线空闲时,所有的单元都可开始发送消息(多主控制). 最先访问总线的单元可获得发送权( ...
- 总线接口与计算机通信(一)I2C总线
1. I2C总线的基本概念 1)发送器(Transmitter):发送数据到总线的器件 2)接收器(Receiver):从总线接收数据的器件 3)主机(Master):初始化发送. ...
- 总线接口与计算机通信(三)UART起止式异步通用串行数据总线
串口简介 1. 什么是串口? 串口是计算机上一种非常通用的设备通信的协议.串口通信的概念非常简单,串口按位(bit) 发送和接收字节.尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送 ...
- Linux usb 1. 总线简介
文章目录 1. USB 发展历史 1.1 USB 1.0/2.0 1.2 USB 3.0 1.3 速度识别 1.4 OTG 1.5 phy 总线 1.6 传输编码方式 2. 总线拓扑 2.1 Devi ...
- 【接口时序】6、IIC总线的原理与Verilog实现
一. 软件平台与硬件平台 软件平台: 1.操作系统:Windows-8.1 2.开发套件:ISE14.7 3.仿真工具:ModelSim-10.4-SE .ChipScope 硬件平台: 1. FPG ...
- 【接口时序】4、SPI总线的原理与Verilog实现
一. 软件平台与硬件平台 软件平台: 1.操作系统:Windows-8.1 2.开发套件:ISE14.7 3.仿真工具:ModelSim-10.4-SE 硬件平台: 1. FPGA型号:Xilinx公 ...
- 利用FPGA实现PCI总线接口及Windows驱动实现
利用FPGA实现PCI总线接口及Windows驱动实现 关于PCI总线协议,资料网上.书本都是.这里我们仅仅对重点对利用FPGA实现PCI总线接口问题进行简单分析.下图是PCI总线接口信号: 配置空间 ...
- MVC5+EF6 简易版CMS(非接口) 第四章:使用业务层方法,以及关联表解决方案
目录 简易版CMS后台管理系统开发流程 MVC5+EF6 简易版CMS(非接口) 第一章:新建项目 MVC5+EF6 简易版CMS(非接口) 第二章:建数据模型 MVC5+EF6 简易版CMS(非接口 ...
随机推荐
- MD5 加密 以及 加盐加密
这是MD5加密 - (NSString *)MD5Hash { const char *cStr = [self UTF8String]; unsigned char result[16]; CC_M ...
- SQL Server 排名函数实现
在SQL Server 中有四大排名函数分别是: 1.row_number() 2.ntile() 3.rank() 4.dense_rank() -------------------------- ...
- 利用 XPath-jQuery 集锦手册在 XPath 和 jQuery 之间做选择
利用 XPath-jQuery 集锦手册在 XPath 和 jQuery 之间做选择 利用 XPath-jQuery 集锦手册在 XPath 和 jQuery 之间做选择
- Junk-Mail Filter(并差集删点)
Junk-Mail Filter Time Limit: 15000/8000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- Android使用ViewFlipper实现左右滑动效果面
在我的博客中,上次是使用ViewPager实现左右滑动的效果的,请看文章:Android使用ViewPager实现左右滑动效果. 这次我来使用ViewFlipper实现这种效果,好了,先看看效果吧: ...
- XML DOM 节点
来自:w3cschool菜鸟教程 在 DOM 中,XML 文档中的每个成分都是一个节点. DOM 节点 根据 DOM,XML 文档中的每个成分都是一个节点. DOM 是这样规定的: 整个文档是一个文档 ...
- c 查找A字符串在B字符串中是否存在,计算出现的次数
主要是应用了头文件<string.h>中的strstr函数 char * strstr(const char *s1, const char *s2); 查找是否存在: #include& ...
- css代码优化篇
心情比较不咋地,不想说什么了 代码演示如下: 不推荐 .fw-800 { font-weight: 800; } .red { color: red; } 推荐 .heavy { font-weigh ...
- 捉Bug:易车注册页布局小臭虫 附demo
--------<!--文章开始-->-------- 开场show:这几天天气异常燥热,早上起来从棉毛衣换到了小短袖,配上一杯冷泡乌龙茶,真是没谁了,这哥们懂得享受哈 开始鼓捣博客,把博 ...
- zoj 3708 Density of Power Network
/*看英文和图我头都大了,不过很简单的.*/ #include<string.h> #include<stdio.h> ][],q[],w[]; int main(int ar ...