总线接口与计算机通信(四)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(非接口 ...
随机推荐
- 计算BMI指数的小程序
小明身高1.75,体重80.5kg.请根据BMI公式(体重除以身高的平方)帮小明计算他的BMI指数,并根据BMI指数: 低于18.5:过轻 18.5-25:正常 25-28:过重 28-32:肥胖 高 ...
- XSS CSRF
XSS CSRF XSS 参考 https://zh.wikipedia.org/wiki/%E8%B7%A8%E7%B6%B2%E7%AB%99%E6%8C%87%E4%BB%A4%E7%A2%BC ...
- 加密解密技术—Web.config加密和解密
阅读目录 一:我们为什么要对web.config配置文件中的配置节加密? 二:怎么样加密和解密? 三:实例 四:运行效果 一:我们为什么要对web.config配置文件中的配置节加密? 因为在我们的项 ...
- HDU2159:FATE(二维完全背包)
Problem Description 最近xhd正在玩一款叫做FATE的游戏,为了得到极品装备,xhd在不停的杀怪做任务.久而久之xhd开始对杀怪产生的厌恶感,但又不得不通过杀怪来升完这最后一级.现 ...
- c语言中-----分配内存函数
原型: void * realloc(void *p, size_t size); realloc 可以对给定的指针所指的空间进行扩大 或者 缩小, 原有内存的数据保持不变.当然,对于缩小,则缩小部 ...
- Web Service 入门例子
在网上很常见的一个列子,实现计算器,看完总得自己练练,不然一段时间不接触又忘了 新建一个空网页,因为.net framework 4.0 不能直接建web 服务,只能在项目中添加 然后在项目中添加We ...
- SQL Server 判断表中是否存在某字段
功能:判断表中是否存在某字段,若不存在,则新增该字段 语句: IF NOT EXIST (SELECT 1 FROM [DATABASE].[SCHEMA].SYSCOLUMNS WHERE ID=O ...
- Exponentiation
Description Problems involving the computation of exact values of very large magnitude and precision ...
- 5.4.3 RegExp构造函数属性
RegExp构造函数包含一些属性(这些属性在其他语言中被看成是静态属性).这些属性适用于作用域中的所有正则表达式,并且基于所执行的最近一次正则表达式操作而变化.关于这些属性的另一个独特之处,就是可以通 ...
- Oracle 批量造数据
1.通过存储过程方式 CREATE OR REPLACE procedure XXZY.p_test is i number; begin .. loop INSERT INTO test_job V ...