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

USB封包格式

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

  1.起始(sop)封包

  根集线器会在每1 ms时,送出sof封包。这介于2个sof封包之间的时间,即称为帧(frame)。sof封包虽是属于令牌封包的一种,但却具有独自的pid形态名称sof。通常目标设各都利用sof封包来辨识帧的起点。这个封包常用于等时传输。也就是在1 ms的帧(高速是125 μs微帧,将1 ms切成8份)开始时,等时传输会利用sof激活传输并达到同步传输的作用。而在每一个帧开始时,sof会传给所有连接上去的全速设各(包含集线器)。因此,sof封包并不适用于低速设备。这个封包内包含了一个帧码,其可不断地递增,且在高达最大值时反转为0,重新再计

  数一次。这个帧码是用来表示帧的计数值,因此,8个微帧都使用同一个帧码值。若必要时,高速设各可计算出sof的重复使用次数,并计算出微帧的数量。通过缩短微帧的周期时间,便可减少高速设各对于缓冲存储器的需求。

  如图1所示,高速的根集线器将会使用额外的sof来传输8个微帧。有些书籍会把这种高速的sof,另命名为usof。这种增加的微帧,同时也替高速的连接带来了更复杂的控制方式。

  图1 usb帧与微帧示意图

  此外,再利用如图2所示的简图来说明主机所送出的一个sof封包的格式。其中,sof的封包标识符,pid数据域的值为0xa5。pid[3:o]=0101与pid[3:o]=1010所产生的,只不过它的传送顺序须由lsb→msb。因此,即可推算出0xa5。以下,所有的pid数据域皆可由此推算而得到。

  图2 sof封包的各种组成字段

  图2显示了sof封包的各种字段与相关的定义。

  此外,端点可以通过sof封包来加以同步,或是以帧码值来作为时间的参考依据。当整个usb总线上没有usb传输时,sof封包也可避免让设备切人低功率的中止(suspend)状态。再者,虽然在低速设各上,是看不到sof封包的,但相反,设各的集线器使用了前面所提及的bop(end of-packet)信号,且在每一个帧设置一次。因此,有时后也称这种信号为设各的低速存活(keep alive)信号。所以说,sof/usof封包是给全速/高速设各来使用的,而低速存活信号却可避免让低速设备切入中止状态中。

  2.令牌封包

  由于usb的数据交易是由pc主机端所激活的,所以在每一个数据交易中,必须以下列的5个数据域所组合而成的令牌封包作为起始,并执行通信协议的前导工作。一个令牌封包含盖了5个数据域sync、pid、addr、endp与crc5。这即是54233的第1个数字:5。如下所列为其令牌封包的各个组成的数据域。

  令牌封包的pid数据域(pid[1:0]=[0,1])中包含了out、in、setup这3种pid类型名称。也就是包含了out令牌封包、in令牌封包以及setup令牌封包。例如,在执行控制传输主机要通过预设的地址取得设备描述符(get ̄descriptor),就必须先执行下列的setup令牌封包,作为每一次控制传输的开始,其中,pid栏变成setup的pid类型名称(0xb4)。in令牌封包,则是主机用来通知设备,将要执行数据输入的工作。而out令牌封包则刚好相反。

  图3 显示了pc主机所起始的setup令牌封包。

  图3 令牌封包的各种组成的字段

  3.数据封包

  在usb接口中,主机执行了总线的管理、数据传输以及设各对主机所提出的要求命令作出响应的动作。这些所要传输的数据与要求命令是什么呢?因此,必须通过数据封包来执行这项工作。

  而由setup、in与out令牌封包所起始的数据传输,将会以datao、data1、data2与mdata封包来加以实现。一个数据封包含了4个数据域:sync、pid、data与crc16。各个字段的意义之前已有介绍过。这即是54233的第2个数字:4。在这里,要稍微注意的是data字段内所放置的位值,须根据usb设各的传输设备(低速、高速与全速)以及传输类型(中断传输、批量传输与等时传输)而定,且须以所设置的maxpacksize字节为基本单位。也即是,若传输的数据不足maxpacksize字节,或是传输到最后所剩余的也不足maxpacksize字节,则仍须传输maxpacksize个字节的数据域。

  列出由4个数据域所组合而成的数据封包。

  数据封包的pid数据域(pid[1:0]=[1:1])包含了4种类型:data0、data1、data2与mdata。而根据usb规范,最初的数据封包都以data0作为开始,其后才是data1,然后依此方式交替切换。这个动作称之为数据紧密连接(data toggle)。这个动作有点类似将数据紧

  1.起始(sop)封包

  根集线器会在每1 ms时,送出sof封包。这介于2个sof封包之间的时间,即称为帧(frame)。sof封包虽是属于令牌封包的一种,但却具有独自的pid形态名称sof。通常目标设各都利用sof封包来辨识帧的起点。这个封包常用于等时传输。也就是在1 ms的帧(高速是125 μs微帧,将1 ms切成8份)开始时,等时传输会利用sof激活传输并达到同步传输的作用。而在每一个帧开始时,sof会传给所有连接上去的全速设各(包含集线器)。因此,sof封包并不适用于低速设备。这个封包内包含了一个帧码,其可不断地递增,且在高达最大值时反转为0,重新再计

  数一次。这个帧码是用来表示帧的计数值,因此,8个微帧都使用同一个帧码值。若必要时,高速设各可计算出sof的重复使用次数,并计算出微帧的数量。通过缩短微帧的周期时间,便可减少高速设各对于缓冲存储器的需求。

  如图1所示,高速的根集线器将会使用额外的sof来传输8个微帧。有些书籍会把这种高速的sof,另命名为usof。这种增加的微帧,同时也替高速的连接带来了更复杂的控制方式。

  图1 usb帧与微帧示意图

  此外,再利用如图2所示的简图来说明主机所送出的一个sof封包的格式。其中,sof的封包标识符,pid数据域的值为0xa5。pid[3:o]=0101与pid[3:o]=1010所产生的,只不过它的传送顺序须由lsb→msb。因此,即可推算出0xa5。以下,所有的pid数据域皆可由此推算而得到。

  图2 sof封包的各种组成字段

  图2显示了sof封包的各种字段与相关的定义。

  此外,端点可以通过sof封包来加以同步,或是以帧码值来作为时间的参考依据。当整个usb总线上没有usb传输时,sof封包也可避免让设备切人低功率的中止(suspend)状态。再者,虽然在低速设各上,是看不到sof封包的,但相反,设各的集线器使用了前面所提及的bop(end of-packet)信号,且在每一个帧设置一次。因此,有时后也称这种信号为设各的低速存活(keep alive)信号。所以说,sof/usof封包是给全速/高速设各来使用的,而低速存活信号却可避免让低速设备切入中止状态中。

  2.令牌封包

  由于usb的数据交易是由pc主机端所激活的,所以在每一个数据交易中,必须以下列的5个数据域所组合而成的令牌封包作为起始,并执行通信协议的前导工作。一个令牌封包含盖了5个数据域sync、pid、addr、endp与crc5。这即是54233的第1个数字:5。如下所列为其令牌封包的各个组成的数据域。

  令牌封包的pid数据域(pid[1:0]=[0,1])中包含了out、in、setup这3种pid类型名称。也就是包含了out令牌封包、in令牌封包以及setup令牌封包。例如,在执行控制传输主机要通过预设的地址取得设备描述符(get ̄descriptor),就必须先执行下列的setup令牌封包,作为每一次控制传输的开始,其中,pid栏变成setup的pid类型名称(0xb4)。in令牌封包,则是主机用来通知设备,将要执行数据输入的工作。而out令牌封包则刚好相反。

  图3 显示了pc主机所起始的setup令牌封包。

  图3 令牌封包的各种组成的字段

  3.数据封包

  在usb接口中,主机执行了总线的管理、数据传输以及设各对主机所提出的要求命令作出响应的动作。这些所要传输的数据与要求命令是什么呢?因此,必须通过数据封包来执行这项工作。

  而由setup、in与out令牌封包所起始的数据传输,将会以datao、data1、data2与mdata封包来加以实现。一个数据封包含了4个数据域:sync、pid、data与crc16。各个字段的意义之前已有介绍过。这即是54233的第2个数字:4。在这里,要稍微注意的是data字段内所放置的位值,须根据usb设各的传输设备(低速、高速与全速)以及传输类型(中断传输、批量传输与等时传输)而定,且须以所设置的maxpacksize字节为基本单位。也即是,若传输的数据不足maxpacksize字节,或是传输到最后所剩余的也不足maxpacksize字节,则仍须传输maxpacksize个字节的数据域。

  列出由4个数据域所组合而成的数据封包。

  数据封包的pid数据域(pid[1:0]=[1:1])包含了4种类型:data0、data1、data2与mdata。而根据usb规范,最初的数据封包都以data0作为开始,其后才是data1,然后依此方式交替切换。这个动作称之为数据紧密连接(data toggle)。这个动作有点类似将数据紧

相关IC型号

热门点击

 

推荐技术资料

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


 复制成功!