掌桥专利:专业的专利平台
掌桥专利
首页

USB3.1主机降速桥的协议层包传输序列处理系统、方法及介质

文献发布时间:2024-04-18 20:01:30


USB3.1主机降速桥的协议层包传输序列处理系统、方法及介质

技术领域

本申请涉及USB技术领域,特别是涉及USB3.1主机降速桥的协议层包传输序列处理系统、方法及介质。

背景技术

随着电子产品的广泛使用和大量数据传输需求的提升,USB正成为当今应用最广泛的接口之一,因此众多芯片厂商都将USB作为芯片中必不可少的功能之一,而想实现USB功能,必须要使用到USB控制器。当这些芯片厂商在做原型验证时,受制于硬件加速平台的最高工作频率(1~2MHz),必须要使用USB降速桥来适配验证平台极低的工作频率和外设的正常工作频率。目前的USB3降速桥屈指可数,即使可以用也只能与特定的设备进行连接,只能验证很少一部分基础功能,有很大局限性。

由于USB控制器和外围设备之间的工作频率相差太大,且USB3.1协议层具有burst传输的特点,现有USB3.1主机降速桥的技术方案至少存在如下几个缺陷:

(1)使用过多的缓存,消耗过多的资源;

(2)无法做到完全不修改USB驱动软件和USB控制器内部时间参数的情况下做到跨频传输;

(3)故障排除(debug)功能的缺失。

发明内容

鉴于以上所述现有技术的缺点,本申请的目的在于提供USB3.1主机降速桥的协议层包传输序列处理系统、方法及介质,用于解决USB3.1主机降速桥存在的缓存过多、无法跨频传输、故障排除(debug)功能缺失的问题。

为实现上述目的及其他相关目的,本申请的第一方面提供一种USB3.1主机降速桥的协议层包传输序列处理系统,包括:USB主机控制器、USB降速桥、USB PHY子卡及USB设备;

所述USB主机控制器电性连接USB降速桥,USB降速桥12电性连接USB PHY子卡,USBPHY子卡电性连接USB设备;所述USB降速桥设有位于低频时钟域的第一接口以及位于高频时钟域的第二接口;所述第一接口用以连接同样位于低频时钟域的所述USB主机控制器;所述第二接口用以连接同样位于高频时钟域的USB PHY子卡;

所述系统能于若干种传输模式下进行数据传输,其中在批量输入模式下:USB降速桥接收USB主机控制器发出的用以向USB设备请求返回数据包的ack包;根据ack包中用以代表突发长度的预设字段进行判断,并在判断突发长度较长时通过更改所述预设字段的值来降低突发长度。

于本申请的第一方面的一些实施例中,在所述批量输入模式下降低突发长度的过程包括:USB降速桥判断接收到的ack包中nump字段是否大于1;若大于1,则将nump字段改为1并在重新进行循环冗余校验计算后将ack包转发给USB设备以待其反馈;若不大于1,则不修改nump字段并将ack包转发给USB设备以待其反馈。

于本申请的第一方面的一些实施例中,USB降速桥在接收到USB设备的反馈后做如下处理:若USB设备的反馈不是数据包,则USB降速桥将USB设备的反馈转发给USB主机控制器,并重复从USB主机控制器接收ack包的流程;若USB设备的反馈是数据包,则USB降速桥将数据包转发给USB主机控制器,还将先前发送给USB设备的ack包中的retry字段设置为1,并在重新进行循环冗余校验计算后将retry字段为1的ack包发送给USB设备以待其反馈;USB降速桥在收到USB设备的反馈后持续向USB设备发送retry字段为1的ack包,直至USB降速桥收到来自USB主机控制器对该数据包的反馈。

于本申请的第一方面的一些实施例中,所述系统的传输模式还包括批量输出模式,在所述批量输出模式下:在USB主机控制器发送数据包时,USB降速桥将该数据包转发给USB设备,并根据该数据包的DPH字段,拼凑出一个retry字段为1且nump字段为1的ack包,重复重传该数据包并等待USB设备的反馈,直至USB降速桥收到USB设备的反馈之后将该数据包转发给USB主机控制器。

于本申请的第一方面的一些实施例中,所述系统的传输模式还包括控制传输模式,所述控制传输模式包括Setup阶段、Data阶段和Status阶段。

于本申请的第一方面的一些实施例中,在所述Setup阶段的控制传输模式包括:在USB主机控制器发送数据包时,USB降速桥将该数据包转发给USB设备,并根据该数据包的DPH字段,拼凑出一个retry字段为1且nump字段为1的ack包,重复重传该数据包并等待USB设备的反馈,直至USB降速桥收到USB设备的反馈之后将该数据包转发给USB主机控制器。

于本申请的第一方面的一些实施例中,在Data阶段和Status阶段的控制传输模式包括:若为数据输入,则USB降速桥接收USB主机控制器发出的用以向USB设备请求返回数据包的ack包;根据ack包中用以代表突发长度的预设字段进行判断,并在判断突发长度较长时通过更改所述预设字段的值来降低突发长度;若为数据输出,则在USB主机控制器发送数据包时,USB降速桥将该数据包转发给USB设备,并根据该数据包的DPH字段,拼凑出一个retry字段为1且nump字段为1的ack包,重复重传该数据包并等待USB设备的反馈,直至USB降速桥收到USB设备的反馈之后将该数据包转发给USB主机控制器。

于本申请的第一方面的一些实施例中,所述系统的传输模式还包括中断传输模式;其中:在中断输入阶段,USB降速桥接收USB主机控制器发出的用以向USB设备请求返回数据包的ack包;根据ack包中用以代表突发长度的预设字段进行判断,并在判断突发长度较长时通过更改所述预设字段的值来降低突发长度;在中断输出阶段,在USB主机控制器发送数据包时,USB降速桥将该数据包转发给USB设备,并根据该数据包的DPH字段,拼凑出一个retry字段为1且nump字段为1的ack包,重复重传该数据包并等待USB设备的反馈,直至USB降速桥收到USB设备的反馈之后将该数据包转发给USB主机控制器。

于本申请的第一方面的一些实施例中,所述系统的传输模式还包括同步传输模式;在所述同步传输模式下,USB降速桥在接收到USB主机控制器发送的包时,将其转发给USB设备;当USB降速桥接收到USB设备发送的包时,将其转发给USB主机控制器。

为实现上述目的及其他相关目的,本申请的第二方面提供一种USB3.1主机降速桥的协议层包传输序列处理方法,应用于USB降速桥,所述方法包括:在批量输入模式下:接收USB主机控制器发出的用以向USB设备请求返回数据包的ack包;根据ack包中用以代表突发长度的预设字段进行判断,并在判断突发长度较长时通过更改所述预设字段的值来降低突发长度。

为实现上述目的及其他相关目的,本申请的第三方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述USB3.1主机降速桥的协议层包传输序列处理方法。

如上所述,本申请的USB3.1主机降速桥的协议层包传输序列处理系统、方法及介质,具有以下有益效果:本发明为USB3.1的降速测试提供一种USB3.1/USB3.0协议层包处理可行的方案,降低硬件系统的复杂度,适配难度,降低资源消耗并提供故障排除(debug)功能。

附图说明

图1显示为本申请一实施例中的一种USB3.1主机降速桥的协议层包传输序列处理系统的结构示意图。

图2显示为本申请一实施例中的控制传输(Control)的传输示意图。

图3显示为本申请一实施例中的一种USB3.1主机降速桥的协议层包传输序列处理方法的流程示意图。

具体实施方式

以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。

需要说明的是,在下述描述中,参考附图,附图描述了本申请的若干实施例。应当理解,还可使用其他实施例,并且可以在不背离本申请的精神和范围的情况下进行机械组成、结构、电气以及操作上的改变。下面的详细描述不应该被认为是限制性的,并且本申请的实施例的范围仅由公布的专利的权利要求书所限定。这里使用的术语仅是为了描述特定实施例,而并非旨在限制本申请。空间相关的术语,例如“上”、“下”、“左”、“右”、“下面”、“下方”、“下部”、“上方”、“上部”等,可在文中使用以便于说明图中所示的一个元件或特征与另一元件或特征的关系。

在本申请中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”、“固持”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。

再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A、B和C”。仅当元件、功能或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。

为解决现有USB3.1主机降速桥的局限性,针对USB3.1协议层收发包序列的特点,本发明提出USB3.1主机降速桥的协议层包传输序列处理方法、系统、终端及介质,其可兼容USB3.0,用于解决降速桥的跨频率协议层包传输问题,可极大降低主机降速桥中缓存的使用,具有错误上报机制,且在无需修改USB主机控制器参数和驱动软件的情况下依然可以正常工作。大部分逻辑均可FPGA实现,降低了系统的复杂度。

为了使本发明的目的、技术方案及优点更加清楚明白,通过下述实施例并结合附图,对本发明实施例中的技术方案的进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定发明。

在对本发明进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释:

<1>突发传输(Burst传输):是指在同一行中相邻的存储单元连续进行数据传输的方式,只要指定起始地址和突发长度,控制器就会依次自动对后面相同数量的存储单元进行读/写操作,而不需要控制器连续提供列地址。

<2>USB3.1:USB3.1 Gen2是最新的USB规范,数据传输速度提升可至10Gbps,与USB3.0技术相比,使用更高效的数据编码系统,并提供一倍以上的有效数据吞吐率,且完全向下兼容现有的USB连接器与线缆。

<3>USB PHY子卡:用于实现并行转串行的功能,将PIPE接口(或者UTMI接口)的并行数据转换成串行数据,再通过差分数据线输出到芯片外部。

<4>ACK事务包:确认事务包;确认事务包用于两个目的,分别是对于IN端点,由主机发送该事务所包,用来从设备请求数据,以及对主机之前接收到的数据包进行确认;对于OUT端点,由设备发送该事务包,用来对主机之前发送的数据包进行接收确认,以及通知主机在接收到这个包后设备还有多少个数据包缓冲区可用。

<5>NUMP(Number of Packets):该字段用于指示接收方可以接受多少个数据包缓冲区。NUMP字段的值应该小于或等于端点伴侣描述符(Endpoint Companion Descriptor)的Burst size字段所指定的端点所能支持的最大突发大小(maximum burst size)。

<6>Retry Data Packet(rty)字段:用于告知主机或者设备没有接收到数据包或者接收到的数据包被损坏,并且请求数据发送方重新发送由指定的序列号开始的一个或多个数据包。

本发明实施例提供USB3.1主机降速桥的协议层包传输序列处理方法、USB3.1主机降速桥的协议层包传输序列处理方法的系统、以及存储用于实现USB3.1主机降速桥的协议层包传输序列处理方法的可执行程序的存储介质。就USB3.1主机降速桥的协议层包传输序列处理方法的实施而言,本发明实施例将对USB3.1主机降速桥的协议层包传输序列处理的示例性实施场景进行说明。

如图1所示,展示了本发明实施例中的一种USB3.1主机降速桥的协议层包传输序列处理系统的结构示意图。该降速桥本质上是一个为了实现USB 3.1controller在硬件加速平台上测试而实现的一个USB连接器,该连接器一侧设置为高频接口,另一侧设置为低频接口。由于极大的频差,该连接器需要实现对USB协议层的特定处理。本实施例中的USB3.1主机降速桥的协议层包传输序列处理系统主要包括:USB主机控制器11、USB降速桥12、USBPHY子卡13及USB设备14。USB主机控制器11电性连接USB降速桥12,USB降速桥12电性连接USB PHY子卡13,USB PHY子卡13电性连接USB设备14。

具体而言,USB降速桥12位于USB主机控制器11和USB PHY子卡13子卡之间。USB主机控制器11与USB降速桥12的第一接口处于低频时钟域,所述第一接口是指USB降速桥上设置的用于与USB主机控制器11典型连接的通信接口。USB降速桥12的第二接口、USB PHY子卡13及USB设备14处于高频时钟域,所述第二接口是指USB降速桥上设置的用于与USB PHY子卡13连接的通信接口。也即,USB降速桥12的第一接口处于低频时钟域,负责与USB主机控制器11之间的通信。USB降速桥12的第二接口处于高频时钟域,负责与USB设备14之间的通信。

较为优选地,所述USB降速桥12的第一接口和第二接口选用PIPE(PhysicalInterface for PCI Express)接口。PIPE接口是指PCIE物理层接口,其定义了物理层中的媒介层(Media Access Layer,MAC)和物理编码子层(Physical Coding Sub-layer,PCS)之间的统一接口,旨在提供一种统一的行业标准。其中,媒介层(Media Access Layer,MAC)和物理编码子层(Physical Coding Sub-layer,PCS)都属于PCIe中的物理层逻辑子层部分。

上文,针对本发明实施例提供的一种USB3.1主机降速桥的协议层包传输序列处理系统的结构进行了相应的解释。下文,将针对USB3.1主机降速桥的协议层包传输序列处理系统在批量输入(bulk in)、批量输出(bulk out)、控制传输(control)、中断传输(interrupt in/out)、同步传输(isochronous)等传输模式一一进行说明。

应理解的是,批量输入(bulk in)和批量输出(bulk out)适用于传输大批量数据,例如传输文件到闪存设备、扫描仪或者打印机等,批量输入(bulk in)是指将数据从USB设备传输到USB主机控制器,批量输出(bulk out)是指将数据从USB主机控制器传输到USB设备。

在USB批量输入(Bulk in)模式下:

USB降速桥12接收USB主机控制器11发出的用以向USB设备14请求返回数据包的ack包;根据ack包中用以代表突发长度的预设字段进行判断,以在判断突发长度较长时通过更改所述预设字段的值来降低突发长度。

在一些示例中,在所述批量输入模式下降低突发长度的过程包括:USB降速桥判断接收到的ack包中nump字段是否大于1;若nump字段>1,则将nump字段改为1并在重新进行循环冗余校验计算后将ack包转发给USB设备以待其反馈;若nump字段≤1,则不修改nump字段并将ack包转发给USB设备以待其反馈。

应理解的是,ack(acknowledge character)是指确认字符,用于表示接收到的字符无错误;ack包是任何确认接收到一条消息或一系列数据包的TCP数据包,是TCP握手的一部分。突发(Burst)是指在同一行中相邻的存储单元连续进行数据传输的方式,连续传输的周期数就是突发长度(Burst Lengths,BL)。

所述循环冗余计算(Cyclic Redundancy Check,CRC)是一种根据网上数据包或计算机文件等数据产生简短固定位数校验码的一种散列函数,主要用来检测或校验数据传输或者保存后可能出现的错误。生成的数字在传输或者存储之前计算出来并且附加到数据后面,然后接收方进行校验确定数据是否发生变化。

示例性地,在USB领域中有两种生成多项式(generator polynomials)的方式:一种是针对令牌包(token)的x5+x2+1,另一种是针对数据包的x16+x15+x2+1,由于余数要永远比除数小一阶,因此令牌包(token)的CRC是5bit组合,数据包的CRC是16bit组合。

两种CRC计算过程一样,具体如下:

步骤一、创建被除数:D(x)=xdF(x)+xkL(x)。

其中,D(x)是待创建的被除数多项式,d表示生成多项式即除数多项式的阶数(令牌包为5,数据包为16),F(x)为待检验的数据流,L(x)是系数为全1的(d-1)阶多项式。

步骤二、用生成多项式除创建得到的被除数以得到余数。

例如对于CRC5的校验,D(x)是一个16bit二进制,生成多项式G(x)为x5+x2+1,可表示成100101,是一个6bit二进制,除法步骤如下:

首先,D(x)的高6位于G(x)异或计算,得到一个新的D’(x);

其次,D’(x)左移一位,移掉MSB位,但右边不进位,即此时剩余15bit二进制,称为D”(x);

最后,D”(x)的高6位再与G(x)异或运算,然后再左移,重复前两步骤,知道D(x)的LSB位(最低位)也参与异或运算,此时得到一个(d-1)阶多项式的余数R(x)。

步骤三、对计算得到的余数按位取反。

举例来说,将得到的(d-1)bit二进制余数按位取反即可得到最终的CRC结果。

在一些示例中,USB降速桥12在接收到USB设备14的反馈后做如下处理:

若USB设备14的反馈不是数据包,则USB降速桥12将USB设备14的反馈转发给USB主机控制器11,并重复从USB主机控制器11接收ack包的流程。

若USB设备14的反馈是数据包,则USB降速桥12将数据包转发给USB主机控制器,还将先前发送给USB设备14的ack包中的retry字段设置为1并在重新进行循环冗余校验计算后将retry字段为1的ack包发送给USB设备14以待其反馈;USB降速桥12在收到USB设备14的反馈后持续向USB设备14发送retry字段为1的ack包,直至USB降速桥12收到来自USB主机控制器11对该数据包的反馈。

需说明的是,retry字段是重传字段,retry字段设置为1表示需要重传。Nump(number of packet)字段表示还可以接受多少个包;Nump字段>1表示对端可以连续地发送Nump(>1)个包,Nump字段==1表示对端在收到下一次发包请求之前只能发送一个包,Nump字段==0表示对端不能再发包。在本专利中,通过修改Nump字段,减少对端burst长度,从而减小USB降速桥内部需要的buffer大小。

值得说明的是,本发明实施例通过USB降速桥不断向USB设备发送重置retry字段的ack包的方式,使得USB设备在等待USB主机控制器对数据包进行反馈的过程中并不限制,这样可有效防止USB设备再等待响应速率较慢的USB主机控制器反馈时发生超时的现象。

另需强调的是,本发明在批量输入阶段的技术手段,可减少USB降速桥使用过多的缓冲(buffer)存储USB设备返回的数据包,进而避免消耗过多的资源,在USB降速桥内部仅通过修改nump字段,从协议层关闭了USB突发(burst)的功能。

在USB批量输出(Bulk out)模式下:

在USB主机控制器11发送数据包时,USB降速桥12将该数据包转发给USB设备14,并根据该数据包的DPH(data packet header,任何一个data包都由DPH和data组成)中deviceaddress,endpoint number和sequence number字段,将其放入ack包中相应的字段,拼凑出一个retry字段为1且nump字段为1的ack包,重复重传该数据包并等待USB设备的反馈,直至USB降速桥收到USB设备的反馈之后将该数据包转发给USB主机控制器11。

值得说明的是,由于USB具有突发(burst)的特性,当USB主机控制器向外发data包时,对同一个端点最多可以连续发16个1KB的data包。因此通常对每一个端点需要保留16KB的buffer用以缓存这些包,但这将会消耗极大的资源。在本发明中,则是对每一个端点只使用1KB的缓存,并利用一种高效且简洁的方法处理协议层的包。

在控制传输(Control)模式下:

控制传输一般被用于USB枚举,控制传输包含三个阶段:Setup阶段、Data阶段和Status阶段,例如图2所展示的控制传输示意图。Setup阶段由一个Setup事务组成。Data阶段由若干个IN事务或者OUT事务组成,为可选阶段。Status阶段只有一个IN事务或者OUT事务,若是控制传输写入则以IN事务结束且必须使用DATA1,若是控制传输读取,则以OUT事务结束且必须使用DATA1。

Setup阶段的处理方式与上文中的USB批量输出模式的处理方式相同,也即在Setup阶段中:在USB主机控制器11发送数据包时,USB降速桥12将该数据包转发给USB设备14,并根据该数据包的DPH字段,拼凑出一个retry字段为1且nump字段为1的ack包,重复重传该数据包并等待USB设备的反馈,直至USB降速桥收到USB设备的反馈之后将该数据包转发给USB主机控制器11。

Data阶段和Status阶段,若是输入(in传输)则与USB批量输入模式的处理方式相同;若是输出(out传输)则与USB批量输出模式的处理方式相同;具体如下所示:

若为Data输入或Status输入,则USB降速桥12接收USB主机控制器11发出的用以向USB设备14请求返回数据包的ack包;根据ack包中的nump字段进行判断;若nump字段>1,则将ack包中的nump字段改为1并重新进行循环冗余校验计算,并将所述ack包转发给USB设备14以待其反馈;若nump字段≤1,则不修改ack包中的nump字段。

若为Data输出或Status输出,则在USB主机控制器11发送数据包时,USB降速桥12将该数据包转发给USB设备14,并根据该数据包的DPH字段,拼凑出一个retry字段为1且nump字段为1的ack包,重复重传该数据包并等待USB设备的反馈,直至USB降速桥收到USB设备的反馈之后将该数据包转发给USB主机控制器11。

在中断传输(interrupt in/out)模式下:

若为中断输入,则与USB批量输入模式的处理方式相同;若为中断输出,则与USB批量输出模式的处理方式相同;具体如下所示:

若为中断输入(interrupt in),则USB降速桥12接收USB主机控制器11发出的用以向USB设备14请求返回数据包的ack包;根据ack包中的nump字段进行判断;若nump字段>1,则将ack包中的nump字段改为1并重新进行循环冗余校验计算,并将所述ack包转发给USB设备14以待其反馈;若nump字段≤1,则不修改ack包中的nump字段。

若为中断输出(interrupt out),则在USB主机控制器11发送数据包时,USB降速桥12将该数据包转发给USB设备14,并根据该数据包的DPH字段,拼凑出一个retry字段为1且nump字段为1的ack包,重复重传该数据包并等待USB设备的反馈,直至USB降速桥收到USB设备的反馈之后将该数据包转发给USB主机控制器11。

在同步传输(isochronous)模式下:

USB降速桥12在接收到USB主机控制器11发送的包时,将其转发给USB设备14;当USB降速桥12接收到USB设备14发送的包时,将其转发给USB主机控制器11。

值得说明的是,由于在同步传输(isochronous)模式下,同步传输在协议层面上没有握手机制,无法像批量传输(Bulk传输)一样通过修改nump字段来减少突发长度(burstlength),因此在同步传输(isochronous)模式下所支持的同步端点(isochronous)需要具有极大的间隔(interval)和较小的突发长度(burst length)。

如图3所示,展示了本发明一实施例中的一种USB3.1主机降速桥的协议层包传输序列处理方法的流程示意图。本发明实施例中的方法应用于上问实施例中的USB降速桥;所述方法具体包括在批量输入模式下执行如下各个步骤:

步骤S31:接收USB主机控制器发出的用以向USB设备请求返回数据包的ack包。

步骤S32:根据ack包中用以代表突发长度的预设字段进行判断,并在判断突发长度较长时通过更改所述预设字段的值来降低突发长度。

在一些示例中,在所述批量输入模式下降低突发长度的过程包括:USB降速桥判断接收到的ack包中nump字段是否大于1;若大于1,则将nump字段改为1并在重新进行循环冗余校验计算后将ack包转发给USB设备以待其反馈;若不大于1,则不修改nump字段并将ack包转发给USB设备以待其反馈。

进一步地,在接收到USB设备的反馈后做如下处理:

若USB设备的反馈不是数据包,则USB降速桥将USB设备的反馈转发给USB主机控制器,并重复从USB主机控制器接收ack包的流程;

若USB设备的反馈是数据包,则USB降速桥将数据包转发给USB主机控制器,还将先前发送给USB设备的ack包中的retry字段设置为1,并在重新进行循环冗余校验计算后将retry字段为1的ack包发送给USB设备以待其反馈;USB降速桥在收到USB设备的反馈后持续向USB设备发送retry字段为1的ack包,直至USB降速桥收到来自USB主机控制器对该数据包的反馈。

在一些示例中,所述方法还包括在批量输出执行模式下执行如下步骤:在USB主机控制器发送数据包时,USB降速桥将该数据包转发给USB设备,并根据该数据包的DPH字段,拼凑出一个retry字段为1且nump字段为1的ack包,重复重传该数据包并等待USB设备的反馈,直至USB降速桥收到USB设备的反馈之后将该数据包转发给USB主机控制器。

在一些示例中,所述方法还包括在传输模式的Setup阶段执行如下步骤:在USB主机控制器发送数据包时,USB降速桥将该数据包转发给USB设备,并根据该数据包的DPH字段,拼凑出一个retry字段为1且nump字段为1的ack包,重复重传该数据包并等待USB设备的反馈,直至USB降速桥收到USB设备的反馈之后将该数据包转发给USB主机控制器。

在一些示例中,所述方法还包括在传输模式的Data阶段和Status阶段执行如下步骤:若为数据输入,则USB降速桥接收USB主机控制器发出的用以向USB设备请求返回数据包的ack包;根据ack包中用以代表突发长度的预设字段进行判断,并在判断突发长度较长时通过更改所述预设字段的值来降低突发长度;若为数据输出,则在USB主机控制器发送数据包时,USB降速桥将该数据包转发给USB设备,并根据该数据包的DPH字段,拼凑出一个retry字段为1且nump字段为1的ack包,重复重传该数据包并等待USB设备的反馈,直至USB降速桥收到USB设备的反馈之后将该数据包转发给USB主机控制器。

在一些示例中,所述方法还包括在中断传输模式下执行如下步骤:在中断输入阶段,USB降速桥接收USB主机控制器发出的用以向USB设备请求返回数据包的ack包;根据ack包中用以代表突发长度的预设字段进行判断,并在判断突发长度较长时通过更改所述预设字段的值来降低突发长度;在中断输出阶段,在USB主机控制器发送数据包时,USB降速桥将该数据包转发给USB设备,并根据该数据包的DPH字段,拼凑出一个retry字段为1且nump字段为1的ack包,重复重传该数据包并等待USB设备的反馈,直至USB降速桥收到USB设备的反馈之后将该数据包转发给USB主机控制器。

在一些示例中,所述方法还包括在同步传输模式下执行如下步骤:在接收到USB主机控制器发送的包时,将其转发给USB设备;当USB降速桥接收到USB设备发送的包时,将其转发给USB主机控制器。

需说明的是,本发明实施例提供的处理方法与上文实施例中的处理系统,在实施过程及原理方面相类似,故不再赘述。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

于本申请提供的实施例中,所述计算机可读写存储介质可以包括只读存储器、随机存取存储器、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁存储设备、闪存、U盘、移动硬盘、或者能够用于存储具有指令或数据结构形式的期望的程序代码并能够由计算机进行存取的任何其它介质。另外,任何连接都可以适当地称为计算机可读介质。例如,如果指令是使用同轴电缆、光纤光缆、双绞线、数字订户线(DSL)或者诸如红外线、无线电和微波之类的无线技术,从网站、服务器或其它远程源发送的,则所述同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线电和微波之类的无线技术包括在所述介质的定义中。然而,应当理解的是,计算机可读写存储介质和数据存储介质不包括连接、载波、信号或者其它暂时性介质,而是旨在针对于非暂时性、有形的存储介质。如申请中所使用的磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中,磁盘通常磁性地复制数据,而光盘则用激光来光学地复制数据。

综上所述,本申请提供USB3.1主机降速桥的协议层包传输序列处理系统、方法及介质,本发明为USB3.1的降速测试提供一种USB3.1/USB3.0协议层包处理可行的方案,降低硬件系统的复杂度,适配难度,降低资源消耗并提供故障排除(debug)功能。所以,本申请有效克服了现有技术中的种种缺点而具高度产业利用价值。

上述实施例仅例示性说明本申请的原理及其功效,而非用于限制本申请。任何熟悉此技术的人士皆可在不违背本申请的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本申请所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本申请的权利要求所涵盖。

技术分类

06120116561938