一种主机与USB设备之间进行数据传输的方法及相应的USB设备技术

技术编号:2853125 阅读:258 留言:0更新日期:2012-04-11 18:40
为了防止USB数据传输过程中由于主机与USB设备时钟不一致产生的缓冲器上溢或下溢问题,本发明专利技术提供了一种USB数据传输方法,通过实时的对缓冲器占有率水平进行检测并与预先设定的存储限定标记相比较而放弃或增加采样值。本发明专利技术还提供了一种USB设备,该设备包括一检测模块用来检测缓冲器占有率水平,并通过一控制模块增加或丢弃采样数据,从而避免发生缓冲器的上溢或下溢。

【技术实现步骤摘要】

本专利技术涉及数据传输领域,特别涉及基于USB协议的数据传输。
技术介绍
通用串行总线(Universal Serial Bus)是新一代的外围设备接口,这种接口的传输速率比个人计算机所使用的并行端口或是串行端口的速度都快了许多。一条通用串行总线最多可以连接127个设备,如光盘驱动器、扫描仪、打印机等等。这些设备通过相同的接口连接到主机(host)例如个人计算机上,从而简化了作为主机的个人计算机连接接口类型。如图1所示,在利用USB总线进行数据传输过程中,主机发送数据或接收数据的时钟和USB设备接收或发送数据的时钟总会存在一定的误差,因此设备内部的缓冲器就可能会出现没有数据可以输出(下溢underflow)或者数据量超出缓冲器存储最大空间限制(上溢overflow)的现象。在数据传送过程中,一般有两种情况,一种是数据输入(in),表示数据流向主机;一种是数据输出(out),表示数据流出主机。对于这两种情况,都要考虑主机与设备时钟不对称所带来的问题。下面以数据输入(in)为例进行介绍。如图2所示,在5ms以后缓冲器占有率还在持续升高,而且很快就达到了所述缓冲器的存储上限。这样在主机自所述缓冲器中读出数据并使缓冲器的占有率再次下降之前,就会有一部分来自于设备的数据因为不能被写入所述缓冲器而被丢弃。如图3所示,在5ms以后缓冲器占有率还是持续下降,并且很快所述缓冲器中的数据就被读空,这样在USB设备向缓冲器写入数据并使缓冲器的占有率再次上升之前,就会没有可以数据可以传输给主机。无论在视频还是音频应用中采用USB数据传输,缓冲器的上溢或是下溢都会导致图像或者声音的间断或者不必要的干扰。
技术实现思路
本专利技术的目的是避免在数据传输过程中USB设备中发生缓冲器的上溢或下溢。为实现上述专利技术目的,本专利技术记载了如下的技术方案一种在主机与USB设备之间进行数据传输的方法包括检测USB设备中的缓冲器数据占有率的操作;对所述缓冲器数据占有率的情况进行判断的操作;根据判断结果进行增加采样数据或者丢弃采样数据的操作。其中,若所述缓冲器数据占有率低于预先设定好的存储下限标记,进行所述增加采样数据的操作;若缓冲器数据占有率高于预先设定好的存储上限标记,进行所述丢弃采样数据的操作。优选的,当缓冲器占有率高于预先设定好的存储上限标记时,记录缓冲器输出数据次数的操作;及当所述缓冲器输出数据次数达到预先设定好的一个计数值一时,进行所述丢弃采样数据的操作。若所述缓冲器数据占有率低于预先设定好的存储下限标记,开始记录缓冲器输出数据次数的操作;当所述缓冲器输出数据次数达到预先设定好的一个计数值二时,进行所述增加采样数据的操作。所述增加采样数据的操作可以是插值操作,特别是线性插值操作。本专利技术还记载了一种USB设备,包括一控制模块以及缓冲器,以及对所述缓冲器的数据占有率进行检测的检测模块,该检测模块将检测结果发送给所述控制模块,所述控制模块根据检测结果增加采样数据或者丢弃采样数据。其中,所述USB设备还包括一插值器,所述控制模块通过对该插值器的控制增加采样数据。所述插值器是可以是线性插值器。在所述USB设备的所述检测模块内部存储有预先设定好的上限和下限标记值;若所述检测模块得到的检测结果为缓冲器占有率低于所述下限标记,所述控制模块增加采样数据;若所述检测模块得到的检测结果为缓冲器占有率高于所述上限标记,所述控制模块丢弃采样数据。另外,若所述检测模块得到的检测结果为缓冲器占有率高于所述上限标记,则所述计数器开始计数;当所述计数器计数到一设定好的记数值一时,检测模块发送检测结果给控制模块,控制模块丢弃采样数据。所述USB设备还包括一计数器;若所述检测模块得到的检测结果为缓冲器占有率低于所述下限标记,则所述计数器开始计数;当所述计数器计数到一设定好的记数值二时,检测模块发送检测结果给控制模块,控制模块增加采样数据。另外,所述上限标记、下限标记、计数值一以及计数值二都是可配置的。本专利技术所记载技术方案有效的避免了由于主机和USB设备时钟不对称的所带来的缓冲器上/下溢问题,并且在保证了数据的顺利传输。附图说明图1是现有技术USB系统结构图;图2是USB设备发生缓冲器上溢的情况示意图;图3是USB设备发生缓冲器下溢的情况示意图;图4是本专利技术USB数据传输方法的一个优选实施例的流程图;图5是本专利技术USB设备防止缓冲器上溢的情况示意图;图6是本专利技术USB设备防止缓冲器下溢的情况示意图;图7是本专利技术USB设备的结构图;图8是本专利技术USB设备的另一结构图。具体实施例方式本专利技术为实现前述的专利技术目的,提供了一种新的USB数据传输方法。在数据传输过程中,一般有两种情况,一种是数据输入(in),表示数据流向主机;一种是数据输出(out),表示数据流出主机。对于这两种情况,都要考虑主机与设备时钟不对称所带来的问题。下面以数据输入(in)为例进行介绍,数据输出(out)的情况与输入(in)类似。图4所示为本专利技术所述USB数据传输方法的一个优选实施例。在数据传输的某一时刻,对于USB设备中的缓冲器的数据占有率进行检测。如果该占有率高于一个预先设定好的存储上限标记值,那么就开始计数,当计数值等于一预先设定好的计数值一时,就丢弃将要写入所述缓冲器的采样数据,并再次检测所述缓冲器的数据占有率。如果此时该数据占有率没有降低到某一水平,例如缓冲器最大存储空间的50%,则重新开始计数,当计数到所述计数值一时再次丢弃一个采样数据。这样操作直到数据占有率降低到所需要的水平。在数据传输的某一时刻,对于USB设备中的缓冲器的数据占有率进行检测。如果该占有率低于一个预先设定好的存储下限标记值,同样的也就开始计数,当计数值等于一预先设定好的计数值二时,就增加一个采样数据并将其输送给主机,并再次检测所述缓冲器的数据占有率。如果此时该数据占有率没有提高到某一水平,例如缓冲器最大存储空间的50%,则重新开始计数,当计数到所述计数值二时再次增加一个采样数据并输送给主机。这样操作直到数据占有率提高到所需要的水平。其中,增加采样数据的操作可以通过插值操作来实现,比如线形插值操作或者二次插值操作。所述上限标记值、下限标记值是可以配置的,可以根据USB设备以及主机的数据传送和读取速度来设定。同样的,计数值一、二也是可以配置的,同样可以根据USB设备以及主机的数据传送和读取速度,以及系统可以接受的丢弃或增加采样数据的程度而设定。图5中显示的是在采用了本专利技术所记载的数据传输方法后,在5ms以后当缓冲器中的数据要继续增加时,缓冲器的占有率就会被限制在上限标记的水平附近,并且通过丢弃采样数据的操作使存储器的占有率下降到某一水平。图6显示的是在采用了本专利技术所记载的数据传输方法后,在5ms以后当缓冲器中的数据要继续减少时,缓冲器的占有率就会被被限制在下限标记的水平附近,并且通过增加采样数据的操作使存储器的占有率提高到某一水平。本专利技术还提供了一种新的USB设备如图7所示。所述USB设备S包括一个检测模块T,该检测模块T中储存着所述缓冲器B占有率的上限标记和下限标记的值。缓冲器B的数据占有率水平会被实时的输送到所述检测模块T,经过T比较,如果所述缓冲器B的数据占有率水平高于所述上限标记,例如缓冲器最大存储空间的80%,那么检测模块T本文档来自技高网
...

【技术保护点】
一种在主机与USB设备之间进行数据传输的方法,其特征在于该方法包括:检测USB设备中的缓冲器数据占有率的操作;对所述缓冲器数据占有率的情况进行判断的操作;根据判断结果进行增加采样数据或者丢弃采样数据的操作。

【技术特征摘要】
1.一种在主机与USB设备之间进行数据传输的方法,其特征在于该方法包括检测USB设备中的缓冲器数据占有率的操作;对所述缓冲器数据占有率的情况进行判断的操作;根据判断结果进行增加采样数据或者丢弃采样数据的操作。2.如权利要求1所述的数据传输方法,其特征在于若缓冲器数据占有率高于预先设定好的存储上限标记,进行所述丢弃采样数据的操作;若所述缓冲器数据占有率低于预先设定好的存储下限标记,进行所述增加采样数据的操作。3.如权利要求2所述的数据传输方法,其特征在于当缓冲器占有率高于预先设定好的存储上限标记时,记录缓冲器输出数据次数的操作;及当所述缓冲器输出数据次数达到预先设定好的一个计数值一时,进行所述丢弃采样数据的操作;若所述缓冲器数据占有率低于预先设定好的存储下限标记,开始记录缓冲器输出数据次数的操作;当所述缓冲器输出数据次数达到预先设定好的一个计数值二时,进行所述增加采样数据的操作。4.如权利要求1所述的数据传输方法,其特征在于所述增加采样数据的操作是插值操作。5.如权利要求4所述的数据传输方法,其特征在于所述插值操作是线性插值操作。6.如权利要求2或3所述的数据传输方法,其特征在于所述上限标记、下限标记,计数值一以及计数值二都是可以配置的。7.一种USB设备,包括一控制模块以及缓冲器,其特征在于该USB设备还包括对...

【专利技术属性】
技术研发人员:张倩朱小琳
申请(专利权)人:北京中星微电子有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1