位置:51电子网 » 技术资料 » 接口电路

USB封包中的数据域类型

发布时间:2008/12/17 0:00:00 访问次数:639

  usb接口是以令牌封包为主(token based)的总线协议,而且pc主机掌握了这个总线的一切主控权。换而言之,一切的沟通都由pc主机来负责激活与执行。再加上,由于usb不占用任何pc的中断向量、dma或是任何输人/输出的资源,因此,必须通过严谨的协议才能与外围设各达成通信的目的,进而执行各项传输的命令。当然,在usb的通信协议中,不仅只有令牌封包而已,还包含了数据封包、握手封包以及特殊封包等。因此,就必须先介绍usb封包类型中的各种数据域的格式,并加以说明。

  不同的封包类型,含有不同数量与形态的数据域。以下依序介绍各种数据域的规范与结构。而通过不同形态的数据域的组成,即可构成所要的封包类型。

  封包内所包含的信息数据位于1~3 074字节之间。第1个字节总是封包标识符(pid),用来定义其余的信息字节所要表达的意义。而封包的最后一部分,则是封包结束eop(end-of-packet)标识符。

  但应注意,usb的串行传输是先送出最低位lsb,然后再依序送出,直到最高位msb为止,如图1所示。而pid[0:3]与pid[0:3]的意义稍后会再加以解释。

  图1 封包格式

  首先,介绍第一个,也是每一种封包都含有的数据域:同步列数据域。

  1.同步列(synchronization sequence,sync)数据域

  sync字段由8位组成,作为每一个数据封包的前导,用来产生同步,将会起始pll。因此,它的数值固定为:00000001。这个字段仅可以在闲置时,作传输之用。封包的起始是由总线从j状态转换成k状态的变化所产生设置的。大部分的传送过程是由传送器在下一个可用的位时间所驱动的,并用来产生一个sync序列。而另一端的接收器即可利用此序列,将其所接收到时钟与所接收到的数据传输过程,两者加以调和,如此即可确保封包的信息部分是可靠地接收到。这个sync序列以2个k状态来结束,且在下一个位时间,开始传递封包的信息。

  此外,若针对高速传输,sync序列将会由pc主机所产生,且其中包含了09位的sync(kj kjkj…kjkk)。虽然这些sync序列将会由于集线器的阻隔而消耗若干信号,但在最后末端的设备至少可以收到12位sync序列。而这已足够去锁住接收的时钟,并用来产生pll。但对低速/全速的设备来说,仅需使用8位sync序列。

  2.封包标识符(packet identifier,pid)数据域

  pid字段紧随在sync字段后面,用来表示数据封包的类型。pid字段由一个4位的标识符栏以及一个互为补码的检查栏组成。在表3,2中,列出了封包的类型,其可分为令牌、数据、握手或特殊等4种封包类型。这4种类型可由pid[0:1]2个位来定义。此外,在每一种的封包类型中,还可通过pid[2:3]2个位来定义出不同的封包格式。例如,在令牌封包中,又可细分为out、in、setup与sof等4种封包格式。如此,可推类至其余的封包类型。但在2.0规范中,新增了几个封包标识符,其中,数据封包类型新添了data2与data3两个封包标识符。

  表 各种封包的类型与规范

续表

  3.地址(address,addr)数据域

  addr数据域由7位组成,可用来寻址出达127个外围设各。当然每一个设各仅能对应一个唯一的地址,而每当新的外围设各刚连接至usb接口时,拥有预设的地址0,其后再赋予新的地址。也因此,27-1(预设地址)=127外围设备。

  4.端点(endpoint,en!)p)数据域

  endp数据域由4位组成,之前有提及过,端点是类似微管线的概念。通过这4位,可以定义出高达16个端点。但基本上,只使用15个端点。而通过端点描述符的设置,则最多可寻址出30个端点。这个endp数据域仅用在in、out与setup令牌封包中。对于低速的设各可支持端点0以及端点1作为中断传输模式(如cy7c63o/ixx微控制器系列),而全速设各则可以拥有15个输人端点(in)与15个输出端点(out)共30个端点。cypress usb微控制器的cy7c64213与cy7c64313系列则最多可支持31个端点(另外包含一个端点0)。

  5.循环冗余检验(cycle redundancy checks,crc)数据域

  根据不同的封包类型,crc数据域由不同数目的位组成。其中,最重要的数据封包采用crc16的数据域(16位),而其余的封包类型则采用crc5的数据域(5位)。其中的的循环冗余检验crc,是一种用来做数据错误检测的技术。这是由于数据在做串行传输时,有时候会发生若干错误。因此,crc可根据数据算出一个检验值,然后依此判断数据的正确性。

  通过前面所介绍的5个数据域,即可构成了大部分的封包类型,而以下再介绍其余特殊

  usb接口是以令牌封包为主(token based)的总线协议,而且pc主机掌握了这个总线的一切主控权。换而言之,一切的沟通都由pc主机来负责激活与执行。再加上,由于usb不占用任何pc的中断向量、dma或是任何输人/输出的资源,因此,必须通过严谨的协议才能与外围设各达成通信的目的,进而执行各项传输的命令。当然,在usb的通信协议中,不仅只有令牌封包而已,还包含了数据封包、握手封包以及特殊封包等。因此,就必须先介绍usb封包类型中的各种数据域的格式,并加以说明。

  不同的封包类型,含有不同数量与形态的数据域。以下依序介绍各种数据域的规范与结构。而通过不同形态的数据域的组成,即可构成所要的封包类型。

  封包内所包含的信息数据位于1~3 074字节之间。第1个字节总是封包标识符(pid),用来定义其余的信息字节所要表达的意义。而封包的最后一部分,则是封包结束eop(end-of-packet)标识符。

  但应注意,usb的串行传输是先送出最低位lsb,然后再依序送出,直到最高位msb为止,如图1所示。而pid[0:3]与pid[0:3]的意义稍后会再加以解释。

  图1 封包格式

  首先,介绍第一个,也是每一种封包都含有的数据域:同步列数据域。

  1.同步列(synchronization sequence,sync)数据域

  sync字段由8位组成,作为每一个数据封包的前导,用来产生同步,将会起始pll。因此,它的数值固定为:00000001。这个字段仅可以在闲置时,作传输之用。封包的起始是由总线从j状态转换成k状态的变化所产生设置的。大部分的传送过程是由传送器在下一个可用的位时间所驱动的,并用来产生一个sync序列。而另一端的接收器即可利用此序列,将其所接收到时钟与所接收到的数据传输过程,两者加以调和,如此即可确保封包的信息部分是可靠地接收到。这个sync序列以2个k状态来结束,且在下一个位时间,开始传递封包的信息。

  此外,若针对高速传输,sync序列将会由pc主机所产生,且其中包含了09位的sync(kj kjkj…kjkk)。虽然这些sync序列将会由于集线器的阻隔而消耗若干信号,但在最后末端的设备至少可以收到12位sync序列。而这已足够去锁住接收的时钟,并用来产生pll。但对低速/全速的设备来说,仅需使用8位sync序列。

  2.封包标识符(packet identifier,pid)数据域

  pid字段紧随在sync字段后面,用来表示数据封包的类型。pid字段由一个4位的标识符栏以及一个互为补码的检查栏组成。在表3,2中,列出了封包的类型,其可分为令牌、数据、握手或特殊等4种封包类型。这4种类型可由pid[0:1]2个位来定义。此外,在每一种的封包类型中,还可通过pid[2:3]2个位来定义出不同的封包格式。例如,在令牌封包中,又可细分为out、in、setup与sof等4种封包格式。如此,可推类至其余的封包类型。但在2.0规范中,新增了几个封包标识符,其中,数据封包类型新添了data2与data3两个封包标识符。

  表 各种封包的类型与规范

续表

  3.地址(address,addr)数据域

  addr数据域由7位组成,可用来寻址出达127个外围设各。当然每一个设各仅能对应一个唯一的地址,而每当新的外围设各刚连接至usb接口时,拥有预设的地址0,其后再赋予新的地址。也因此,27-1(预设地址)=127外围设备。

  4.端点(endpoint,en!)p)数据域

  endp数据域由4位组成,之前有提及过,端点是类似微管线的概念。通过这4位,可以定义出高达16个端点。但基本上,只使用15个端点。而通过端点描述符的设置,则最多可寻址出30个端点。这个endp数据域仅用在in、out与setup令牌封包中。对于低速的设各可支持端点0以及端点1作为中断传输模式(如cy7c63o/ixx微控制器系列),而全速设各则可以拥有15个输人端点(in)与15个输出端点(out)共30个端点。cypress usb微控制器的cy7c64213与cy7c64313系列则最多可支持31个端点(另外包含一个端点0)。

  5.循环冗余检验(cycle redundancy checks,crc)数据域

  根据不同的封包类型,crc数据域由不同数目的位组成。其中,最重要的数据封包采用crc16的数据域(16位),而其余的封包类型则采用crc5的数据域(5位)。其中的的循环冗余检验crc,是一种用来做数据错误检测的技术。这是由于数据在做串行传输时,有时候会发生若干错误。因此,crc可根据数据算出一个检验值,然后依此判断数据的正确性。

  通过前面所介绍的5个数据域,即可构成了大部分的封包类型,而以下再介绍其余特殊

相关IC型号

热门点击

 

推荐技术资料

耳机放大器
    为了在听音乐时不影响家人,我萌生了做一台耳机放大器的想... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!