内容发布更新时间 : 2024/12/24 10:54:15星期一 下面是文章的全部内容请认真阅读。
毕业设计说明书
4. USB在设备供电方面提供了灵活性。USB直接连接到Hub或者是连接到Host的设备可以通过USB电缆供电,也可以通过电池或者其它的电力设备来供电,或使用两种供电方式的组合,并且支持节约能源的挂机和唤醒模式。
5.USB提供全速12Mbps的速率和低速1.5Mbps的速率来适应各种不同类型的外设,USB2.0还支持480Mbps的高速传输速率。
6.为了适应各种不同类型外围设备的要求,USB提供了四种不同的数据传输类型:控制传输Bulk数据、传输中断数据传输和同步数据传输。同步数据传输可为音频和视频等实时设备的实时数据传输提供固定带宽。
7. USB的端口具有很灵活的扩展性,一个USB端口串接上一个USB Hub就可以扩展为多个USB端口。 3.1.3传输方式
USB有四种的传输方式:控制(Control)、同步(isochronous)、中断(interrupt)、大量(bulk)。如果是从硬件开始来设计整个的系统那还要正确选择传输的方式,而作为一个驱动程序的书写者就只需要弄清楚其采用的什么工作方式就行了。通常所有的传输方式下的主动权都在PC边。
1.控制(Control)方式传输:控制传输是双向传输,数据量通常较小。USB系统软件用来主要进行查询、配置和给USB设备发送通用的命令。控制传输方式可以包括8、16、32和64字节的数据,这依赖于设备和传输速度。控制传输典型地用在主计算机和USB外设之间的端点(Endpoint)0之间的传输,但是指定供应商的控制传输能用到其它的端点。
2.同步(isochronous)方式:传输同步传输提供了确定的带宽和间隔时间latency)。它被用于时间严格并具有较强容错性的流数据传输,或者用于要求恒定的数据传输率的即时应用中。例如,执行即时通话的网络电话应用时,使用同步传输模式是很好的选择。同步数据要求确定的带宽值和确定的最大传输次数。对于同步传输来说,即时的数据传递比完美的精度和数据的完整性更重要一些。
3.中断(interrupt)方式:传输中断方式传输主要用于定时查询设备是否有中断数据要传输,设备的端点模式器的结构决定了它的查询频率,从1到255ms之间,这种传输方式典型的应用在少量的分散的,不可预测数据的传输。键盘、操纵杆和鼠标就属于这一类型。中断方式传输是单向的并且对于host来说只有输
11
毕业设计说明书
入的方式。
4.大量(bulk)传输:主要应用在数据大量传输和接受数据上,同时又没有带宽和间隔时间要求的情况下,要求保证传输。打印机和扫描仪属于这种类型。这种类型的设备适合于传输非常慢和大量被延迟的传输,可以等到所有其它类型的数据的传输完成之后再传输和接收数据。
USB将其有效的带宽分成各个不同的帧(frame),每帧通常是1ms时间长。每个设备每帧只能传输一个同步的传输包。在完成了系统的配置信息和连接之后,USB的host就对不同的传输点和传输方式做一个统筹安排,用来适应整个的USB 的带宽。通常情况下,同步方式和中断方式的传输会占据整个带宽的90%剩下的就安排给控制方式传输数据。
3.2 USB的总线协议 3.2.1 总线拓扑结构
图 3-2 USB总线拓扑
12
毕业设计说明书
USB总线的物理连接是一种分层的菊花链结构,集线器(hub)是每个星形结构的中心。PC机就是主机和根Hub,用户可以将外设或附加的Hub与之相连。这些附加的Hub可以连接另外的外设以及下层HubUSB。支持最多5个Hub层以及127个外设。图3-2描述了USB的物理拓扑结构,从中可以看出每一段的连接都是点对点的。 3.2.2 USB的物理层
USB的物理接口包括电气特性和机械特性。USB通过一个四线电缆来传输信号与电源,如图3-3所示。
图3-3 USB电缆定义
其中,D+和D-是一对差模的信号线,而VBus和GND则提供了+5V的电源,它可以给一些设备(包括Hub)供电,但也要有一定的条件限制。
USB提供了两种数据传输率:一种是12Mb的高速(fullspeed)模式,另一种是1.5Mb的低速模式。这两种模式可以同时存在于一个USB系统中。而引入低速模式,主要是为了降低要求不高的设备的成本,比如鼠标、键盘等等。
USB信号线在高速模式下必须使用带有屏蔽的双绞线,而且最长不能超过5m;而在低速模式时中可以使用不带屏蔽或不是双绞的线,但最长不能超过3m。这主要是由于信号衰减的限制。为了提供信号电压保证,以及与终端负载相匹配,在电缆的每一端都使用了不平衡的终端负载。这种终端负载也保证了能够检测外设与端口的连接或分离,并且可以区分高速与低速设备。
所有的设备都有上行的接口。上行和下行的接头是不能互换的,这保证了不会有非法的连接出现。插头与插座有A和B两个系列,系列A用于基本固定的外围设备,而系列B用于经常拔插的设备,这两个系列是不能互换的 。 3.2.3 USB总线协议
13
毕业设计说明书
所有总线操作都可以归结为三种包的传输。任何操作都是从主机开始的,主机以预先排好的时序,发出一个描述操作类型、方向、外设地址以及端点号的包,我们称之为令牌包(Token Packet)。然后在令牌中指定的数据发送者发出一个数据包或者指出它没有数据可以传输。而数据的目的地一般要以一个确认包(Handshake Packet)来作出响应以表明传输是否成功。
1.域的类型
同步域(SYNC field):所有的包都起始于SYNC域,它被用于本地时钟与输入信号的同步,并且在长度上定义为8位。SYNC的最后两位作为一个记号表明PID域(标识域)的开始。。
标识域(Packet Identifier Field):对于每个包,PID都是紧跟着SYNC的,PID指明了包的类型及其格式。主机和所有的外设都必须对接收到的PID域进行解码。如果出现错误或者解码为未定义的值,那么这个包就会被接收者忽略。如果外设接收到一个PID,它所指明的操作类型或者方向不被支持,外设将不作响应。
地址域(Address Field):外设端点都是由地址域指明的,它包括两个子域:外设地址和外设端点。外设必须解读这两个域,其中若有任何一个不匹配,这个令牌就会被忽略。
外设地址域(ADDR)指定了外设,它根据PID所说明的令牌的类型,指明了外设是数据包的发送者或接收者。ADDR共6位,因此最多可以有127个地址。一旦外设被复位或上电,外设的地址被缺省为0,这时必须在主机枚举过程中被赋予一个独一的地址。而0地址只能用于缺省值而不能分配作一般的地址。
端点域(ENDP)有4位,它使设备可以拥有几个子通道。所有的设备必须支持一个控制端点0(endpoint0)。低速的设备最多支持2个端点:0和一个附加端点。高速设备可以支持最多16个端点。
帧号域(Frame Number Field):这是一个11位的域,指明了目前帧的排号,每过一帧(1ms)这个域的值加1,到达最大值XFF后返回0。这个域只存在于每帧开始时的SOF令牌中。
数据域(Data Field):范围是0~1023字节,而且必须是整数个字节。 CRC校验:包括令牌校验和数据校验。
14
毕业设计说明书
2.包的类型
令牌包(Token Packed):
其中包括:IN(输入)、OUT(输出)、SETUP(设置)和SOF(Start of Frame,帧起始)四种类型。其中IN、OUT、SETUP的格式如图3-4所示。
图3-4 IN、OUT、SETUP数据格式
对于OUT和SETUP来说,ADDR和ENDP中所指明的端点将接收到主机发出的数据包,而对IN来说,所指定的端点将输出一个数据包。
Token和SOF在三个字节的时间内以一个EOP(End of Packet)结束。如果一个包被解码为Token包但是并没有在3个字节时间内以EOP结束,就会被看作非法包或该包被忽略。
对于SOF包,它的格式如图3-5所示。主机以一定的速率(1ms±0.05一次)发送SOF包,SOF不引起任何操作。
图3-5 SOF数据格式
数据包:包括Data0和Data1两种类型。这两种包的定义是为了支持数据触发同步。数据包包含了PID、DATA和CRC三个域,如图3-6所示。
图3-6 DATA数据格式
15