USB学习2

来源:互联网 发布:sql server 2014 密钥 编辑:程序博客网 时间:2024/06/01 19:18

USB是英文Universal Serial Bus的简称,中文名称是“通用串行总线”。
   
    端点(Endpoint, 简写为EP)。从物理机制来说,端点可以是嵌入式系统或PC上的一个数据缓冲区,
用来存放和发送USB的各种数据;从逻辑上来说,端点可以视为数据的收发器,可以按照定义的传输方式
来交换数据。每个端点都有唯一确定的地址,即端点号。

    域(Field)。USB协议中规定的组成包的单元。
    帧(Frame)。这是一个时间概念,指的是从一个SOF令牌开始到下一个SOF发送之间的时间,其中
包含一系列的数据传送。

    人机交互设备(Human Interface Device,简称为HID)。USB协议规定的设备类之一。常见的USB鼠标
、键盘等设备均属于HID。HID的PC级开发因此仅需针对应用级用户程序。

    最低有效位(Least Significant Bit, 简写为LSB)。
    最高有效位(Most Significant Bit,简写为MSB).
   

    PCI总线  USB主控制器根Hub   (USB设备USB Hub)

5.2.2 低功耗的实现

    USB供电的工作状态分为2种,正常工作状态和挂起状态。
    如果总线供电设备在3ms内没有总线操作,即USB总线处于空闲状态的话,该设备就需要自动进入
挂起状态。
    在设备进入挂起状态后,可以通过唤醒(Resume)操作来恢复到正常工作状态。这种远程唤醒方式是
所有USB事务中,唯一能够由设备发起的事务。

     在USB的4线电缆中传输信号的是D+和D-这一对差模信号线,该线上使用的是+3.3V的电平,Vbus是+5V。

 

第6章  USB数据通信结构
   
    包, 是USB最基本的数据单元。每一个包,基本上包含了一个完整的USB信息。按照包在整个
USB数据传输中的作用不同,包可以分为3类:令牌包、数据包和握手包。

    域,一个包就是一串连续的二进制数,而域就是这些其中的一部分。域又被分为7类:同步序列域、
包标识域、地址域、端点域、帧号域、数据域和CRC校验域。

    以包为基础,USB定义了4种数据的传输类型:控制传输、中断传输、批量传输和同步传输。
    
    因此,这其中的每一个次数据交换过程既不能直接叫做批量传输,而又不是包,那是什么呢?叫
“事务”。每种传输方式都由很多个事务来完成,每一笔事务由底层包组成。

    比如1个字节的二进制数10001000,每一个数代表1位。一般将数左起第一个数称为最高有效位,即
MSB,也就是所举例数中的1;而将右起第一个数据成为最低有效位,即LSB。

    按照协议规定:USB总线上首先发送LSB,然后发送近邻的下一位,最后发送MSB。


6.2  二进制数的序列 ---- 域

6.2.1 同步域
    同步域用于本地时钟与输入信号的同步,代表一个包的起始。同步域长度为8位,最后2位作为一个标志
标明标识域PID的开始。同步域的数值固定为00000001。同步域位于每一个包的最开始处。

6.2.2 标识域
    包标识域(Packet Identifier Field,简写为PID),简称为标识域。
    标识域紧跟在同步域之后,作用时标明包的类型和格式,并作为包的错误检测手段的一种。
由于同步域主要是由硬件来处理的,因此,标识域就是USB软件机制最先收到并处理的包的内容。

6.2.3 地址域
    地址域(Address Field,简写为ADDR)内存放的是设备在主机上的地址,具有唯一性,设备和地址
是一一对应的,并且由主机分配地址。

    地址域由7位二进制数组成。这也就是USB拓扑结构中最大USB设备个数为127个的原因。

6.2.4 端点域

    端点域(Endpoint Field,简称ENDP),也叫做端点号。从硬件的角度看待端点,它其实就是USB中
一系列实际的物理数据缓冲区,发送和接收的数据存储在这里。端点域由4位二进制数组成,因此,一个
USB设备能够拥有的端点容量为16个。但是,并不是每一种USB设备都能够实际拥有16个端点。USB协议规定,
低速设备只能定义两个端点,即端点0和端点1(这个0和1就是端点号)。此外,除端点0以外,任何一个
端点都可以定义为IN端点或者OUT端点。

6.2.5 帧号域
     帧号域(Frame Field,简写为TRAM)中的帧是时间概念。USB协议中,1帧即1ms。在USB总线上,
1帧是一个独立的单元,包含了一系列总线动作。USB将一帧分为好几份,每一份中是一个USB的传输动作。

    每一个帧都有特定的帧号。帧号域由11位二进制数组成。

6.2.6 数据域
    数据域(Data Field,简写为DATA)中的数据长度为0-1023字节,在不同的传输类型中,数据域的长度
各不相同。

6.2.7 校验域
    CRC校验的一般做法是,发动数据的一方,对所要校验的数据进行一些运算,把结果作为CRC本身的值,
填入到CRC域中,然后发送数据。当接收方接收到数据后,也进行类似的运算,把运算的值与CRC域的值进行
比较,如果一致,表明数据传输中没有出现错误。现在很多的USB接口芯片中,CRC校验都是由硬件来完成的。

  
6.3 最基本的数据单元-------包

    USB中定义了4种类型的包,即令牌包、数据包、握手包和特殊包。

6.3.1 令牌包

   
6.3.2 数据包
  
    根据PID的不同,数据包(Data Packet)分为DATA0和DATA1两种包。两种包交替发送。

6.3.3 握手包

    握手包仅由同步域SYNC和标识域PID两个域组成,用于报告数据的传输状态,比如数据是否成功接收。


6.4 数据传输类型
    控制传输、中断传输、批量传输和同步传输。

    不可间断的音频流数据传输,就可用同步传输方式来传输;
    FAT文件等大容量的数据传输等就可以用批量传输的方式进行;
    像鼠标、键盘等这种没有数据发送速度的要求,数据量又小的设备就采用的是中断传输方式;
   
    事务按照其特点分为3种类型:输入(IN)事务、输出(OUT)事务和设置(SETUP)事务。

6.4.2 中断传输

    中断传输中,USB主机是以周期性的方式对设备进行轮询,以确定设备是否有数据发送。

    轮询的周期是影响鼠标等设备的定位精度等非常关键的参数。

    中断传输没有固定的传输速率。

    低速设备的数据包大小可以是1-8字节,全速设备的数据包大小是1-64字节,高速设备的数据包大小
则可达到1-1024字节。

    低速、全速和高速设备均支持中断传输。

6.4.3 批量传输
   
    只有全速和高速设备支持批量传输,而低速设备不支持。

6.4.4 同步传输

    只有全速和高速设备支持同步传输, 而低速设备不支持同步传输。

6.4.5 控制传输

    控制传输(Control Transfer)是最为复杂的传输类型,也是最为重要的传输类型,是USB枚举阶段
最主要的数据交换方式。当USB设备初次连接到主机之后,就通过控制传输来交换信息、设备地址和读取设备的
描述符。

6.5 数据流模型

6.5.1 端点
    除了端点0(用作控制传输端点,默认)外,端点必须在设备被主机配置后才能使用。

6.5.2 管道

    管道就是主机与设备端点之间的连接。管道包括数据流管道和信息管道2种。

 

 

0 0
原创粉丝点击