一、Linux USB驱动之USB规范初探

写在开始的话

最近因为工作的需要,需要了解USB体系相关知识,以前喜欢记笔记的,长时间不写字了,也懒得去写了,所以就想到了写博客,记录学习USB的过程中的个人理解。至目前(2014年11月),USB3.0规范在嵌入式设备中还没有普及,我只学习USB2.0及以前的规范。所以博客中仅仅记会录USB2.0及以前的规范相关理解,主要以USB2.0体系为主。

从体系开始——体系简介

USB是一种支持热插拔的高速串行总线,使用差分信号来传输数据,到USB2.0规范,它最高支持480Mbps(USB2.0)的传输速率,支持USB2.0的设备称为高速设备。其他还有全速设备(USB1.1),速率为12Mbps,低速设备(USB1.0),速率为1.5Mbps。

USB支持总线供电和自供电两种供电方式,总线供电模式下,设备可以从总线上最大获取500mA的电流。USB接口的供电电压为5V,对于总线供电的设备,在枚举动作完成之前最多可以从总线上获取100mA的电流。

USB被设计成向下兼容的,当低速和全速设备连接到高速主机上时,主机可以通过分离传输来支持他们。这样改总线上传输最高速度等级由最慢的设备决定。设备包括主机,HUB,USB功能设备。

USB体系包括“主机”,“设备”,以及“物理连接”。主机提供USB接口,并提供管理结构的软件。主机可以是PC机,嵌入式设备等。一个USB系统中只能有一个主机。包括USB功能设备和HUB,一个USB系统中可以有127个设备。因为一个USB HOST最多同时支持128个地址,0地址为默认地址,在设备枚举时临时使用。以HOST-ROOT HUB为起点,最多支持七层,也就是说任何一个USB系统最多支持5个HUB级联。

USB系统层次结构图

USB采用轮询广播机制传输数据,所以的传输都是由主机发起。任何时刻USB系统内只允许一个数据包在传输。USB采用“令牌包”——“数据包”——“握手包”的传输机制。在令牌包中指定数据的来源或去向的设备地址和端点(Endpoint),来保证设备对广播的数据包或令牌包做出响应。握手表示传输是否成功。</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值