CN100365609C - 一种主机与usb设备之间进行数据传输的方法及相应的usb设备 - Google Patents
一种主机与usb设备之间进行数据传输的方法及相应的usb设备 Download PDFInfo
- Publication number
- CN100365609C CN100365609C CNB2005101304842A CN200510130484A CN100365609C CN 100365609 C CN100365609 C CN 100365609C CN B2005101304842 A CNB2005101304842 A CN B2005101304842A CN 200510130484 A CN200510130484 A CN 200510130484A CN 100365609 C CN100365609 C CN 100365609C
- Authority
- CN
- China
- Prior art keywords
- data
- impact damper
- occupation rate
- usb device
- sampled data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 25
- 238000000034 method Methods 0.000 title claims abstract description 20
- 230000000875 corresponding effect Effects 0.000 title 1
- 238000001514 detection method Methods 0.000 claims description 30
- 238000005096 rolling process Methods 0.000 claims description 4
- 238000005070 sampling Methods 0.000 abstract 2
- 238000010586 diagram Methods 0.000 description 5
- 241001269238 Data Species 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
Images
Landscapes
- Communication Control (AREA)
Abstract
为了防止USB数据传输过程中由于主机与USB设备时钟不一致产生的缓冲器上溢或下溢问题,本发明提供了一种USB数据传输方法,通过实时的对缓冲器占有率水平进行检测并与预先设定的存储限定标记相比较而放弃或增加采样值。本发明还提供了一种USB设备,该设备包括一检测模块用来检测缓冲器占有率水平,并通过一控制模块增加或丢弃采样数据,从而避免发生缓冲器的上溢或下溢。
Description
技术领域
本发明涉及数据传输领域,特别涉及基于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发送信号到控制模块C,C便放弃下一个要写入所述缓冲器的数据。优选的来说,如图8所示,所述USB设备还包括一个计数器O。当所述检测模块T得知所述缓冲器B的占有率已经超过上限标记时,检测模块T在发送信号给控制模块C的同时还发送启动信号给所述计数器O,计数器O开始计数。当计数器O的计数值达到某一预先设定好的计数值一时,计数器O发送命令到控制模块C,则C便放弃下一个要写入所述缓冲器B的数据。这时,计数器O归零并开始重新计数,当再次计数到所述计数值一时,控制模块C再次放弃一个将要写入缓冲器B的数据。这样的操作一直重复直到检测模块T检测到所述缓冲器B的占有率已经降低到远低于缓冲器最大容量的水平,例如50%,才停止丢弃数据。
如图7所示,在缓冲器B的数据占有率水平被实时的输送到所述检测模块T后,经过T的比较,如果所述缓冲器B的数据占有率水平低于所述下限标记,例如缓冲器B最大存储空间的20%,那么检测模块T发送信号到控制模块C,C便增加一个新的采样数据并输送给主机H。优选的来说,如图8所示,所述USB设备还包括一个计数器O和插值器I。当所述检测模块T得知所述缓冲器B的占有率已经低于下限标记时,检测模块T在发送信号到控制模块C的同时还发送启动信号给所述计数器O,计数器O开始计数。当计数器O的计数值达到某一预先设定好的计数值二时,计数器O发送命令到控制模块C,则C便命令插值器I产生新的数据并输送给主机H。这时,计数器O归零并开始重新计数,当O再次计数到所述计数值二时,控制模块C再次命令插值器I产生新的采样数据并输送给主机H。这样的操作一直重复,直到检测模块T检测到所述缓冲器B的占有率已经提升到一定的容量水平,例如缓冲器最大存储空间的50%,才停止***数据。优选的,所述插值器I可以是线性插值器,通过从缓冲器中读出前一个采样数据和后一个采样数据,并对这两项采样数据取算术平均值得到一个新的数据输出给主机H。当然,I也可以是其它插值器如二次插值器。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种在主机与USB设备之间进行数据传输的方法,其特征在于该方法包括:
检测USB设备中的缓冲器数据占有率的操作;
对所述缓冲器数据占有率的情况进行判断的操作;
根据判断结果进行增加采样数据或者丢弃采样数据的操作;
若缓冲器数据占有率高于预先设定好的存储上限标记,进行所述丢弃采样数据的操作;
若所述缓冲器数据占有率低于预先设定好的存储下限标记,进行所述增加采样数据的操作;
当缓冲器占有率高于预先设定好的存储上限标记时,记录缓冲器输出数据次数的操作;及当所述缓冲器输出数据次数达到预先设定好的一个计数值一时,进行所述丢弃采样数据的操作;
若所述缓冲器数据占有率低于预先设定好的存储下限标记,开始记录缓冲器输出数据次数的操作;当所述缓冲器输出数据次数达到预先设定好的一个计数值二时,进行所述增加采样数据的操作。
2.如权利要求1所述的数据传输方法,其特征在于所述增加采样数据的操作是插值操作。
3.如权利要求2所述的数据传输方法,其特征在于所述插值操作是线性插值操作。
4.如权利要求1所述的数据传输方法,其特征在于所述上限标记、下限标记,计数值一以及计数值二都是可以配置的。
5.一种USB设备,包括一控制模块以及缓冲器,其特征在于该USB设备还包括对所述缓冲器的数据占有率进行检测的检测模块,该检测模块将检测结果发送给所述控制模块,所述控制模块根据检测结果增加采样数据或者丢弃采样数据;
所述USB设备还包括一插值器,所述控制模块通过对该插值器的控制增加采样数据;
所述插值器是线性插值器;
在所述检测模块内部存储有预先设定好的上限和下限标记值;
若所述检测模块得到的检测结果为缓冲器占有率低于所述下限标记,所述控制模块增加采样数据;
若所述检测模块得到的检测结果为缓冲器占有率高于所述上限标记,所述控制模块丢弃采样数据;
该设备还包括一计数器;
若所述检测模块得到的检测结果为缓冲器占有率高于所述上限标记,则所述计数器开始计数;当所述计数器计数到一设定好的记数值一时,检测模块发送检测结果给控制模块,控制模块丢弃采样数据;
若所述检测模块得到的检测结果为缓冲器占有率低于所述下限标记,则所述计数器开始计数;当所述计数器计数到一设定好的记数值二时,检测模块发送检测结果给控制模块,控制模块增加采样数据。
6.如权利要求5所述的USB设备,其特征在于所述上限标记、下限标记、计数值一以及计数值二都是可配置的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005101304842A CN100365609C (zh) | 2005-12-13 | 2005-12-13 | 一种主机与usb设备之间进行数据传输的方法及相应的usb设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005101304842A CN100365609C (zh) | 2005-12-13 | 2005-12-13 | 一种主机与usb设备之间进行数据传输的方法及相应的usb设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1776656A CN1776656A (zh) | 2006-05-24 |
CN100365609C true CN100365609C (zh) | 2008-01-30 |
Family
ID=36766165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005101304842A Expired - Fee Related CN100365609C (zh) | 2005-12-13 | 2005-12-13 | 一种主机与usb设备之间进行数据传输的方法及相应的usb设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100365609C (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105335324B (zh) * | 2015-12-04 | 2018-09-14 | 上海兆芯集成电路有限公司 | 用于高速串行总线的接收器和接收数据的方法 |
CN114510362A (zh) * | 2022-02-18 | 2022-05-17 | 歌尔股份有限公司 | 数据缓存处理方法、装置、设备以及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW413763B (en) * | 1999-03-16 | 2000-12-01 | Winbond Electronics Corp | Data conversion device and data flow control method in between USB host and network end |
US6678243B2 (en) * | 1997-11-14 | 2004-01-13 | Ess Technology, Inc. | Variable codec frame length |
CN1574784A (zh) * | 2003-06-11 | 2005-02-02 | 三星电子株式会社 | 控制缓冲存储器分配与数据流的收发网络控制器及方法 |
CN1625052A (zh) * | 2003-12-04 | 2005-06-08 | 雅马哈株式会社 | 异步信号输入设备和采样频率转换设备 |
US20050235089A1 (en) * | 2004-04-02 | 2005-10-20 | Fred Cheng | Method and apparatus for universal serial bus (USB) physical layer |
-
2005
- 2005-12-13 CN CNB2005101304842A patent/CN100365609C/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6678243B2 (en) * | 1997-11-14 | 2004-01-13 | Ess Technology, Inc. | Variable codec frame length |
TW413763B (en) * | 1999-03-16 | 2000-12-01 | Winbond Electronics Corp | Data conversion device and data flow control method in between USB host and network end |
CN1574784A (zh) * | 2003-06-11 | 2005-02-02 | 三星电子株式会社 | 控制缓冲存储器分配与数据流的收发网络控制器及方法 |
CN1625052A (zh) * | 2003-12-04 | 2005-06-08 | 雅马哈株式会社 | 异步信号输入设备和采样频率转换设备 |
US20050235089A1 (en) * | 2004-04-02 | 2005-10-20 | Fred Cheng | Method and apparatus for universal serial bus (USB) physical layer |
Also Published As
Publication number | Publication date |
---|---|
CN1776656A (zh) | 2006-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220123969A1 (en) | Burst-tolerant decision feedback equalization | |
JP2009540681A5 (zh) | ||
KR101688051B1 (ko) | 에러 검출 코드를 이용한 데이터 처리 장치, 데이터 처리 방법, 데이터 스큐 보상 방법 및 데이터 처리 장치를 포함하는 반도체 장치 | |
CN102007539B (zh) | 用于具有单元间干扰的闪存的序列检测 | |
CN110162489B (zh) | 存储器控制器及该存储器控制器的操作方法 | |
CN1278933A (zh) | 采用crc用于芯片上存储器中数据完整性的方法和装置 | |
US10884920B2 (en) | Metadata-based operations for use with solid state devices | |
TWI408931B (zh) | 資料通訊裝置、及通訊控制方法、以及程式産品 | |
CN100365609C (zh) | 一种主机与usb设备之间进行数据传输的方法及相应的usb设备 | |
US20070300006A1 (en) | Multi-interface conversion device | |
US20050033875A1 (en) | System and method for selectively affecting data flow to or from a memory device | |
CN101052938B (zh) | 低等待时间的数据分组的接收和处理 | |
US20120317380A1 (en) | Device and method for a half-rate clock elasticity fifo | |
CN107153412B (zh) | 一种具有发送fifo的can总线控制器电路 | |
CN101246465A (zh) | 通用串行总线芯片 | |
CN104182360A (zh) | 多核环境的跟踪日志输出处理方法及*** | |
KR101696136B1 (ko) | 통신 시스템에서 송신기 등화를 구성하기 위한 기술 | |
CN104050124A (zh) | 应用于通用串行总线***的数据传输电路及数据传输方法 | |
CN101246742B (zh) | 电子装置与其数据传输方法 | |
TWI782694B (zh) | 時序調整電路、時序不對稱消除方法及接收電路 | |
CN101894005A (zh) | 高速接口向低速接口的异步fifo传输方法 | |
TWI243304B (en) | Method and system for optimized first-in-first-out full condition control | |
US9311045B2 (en) | Elastic buffer module and elastic buffering method for transmission interface | |
CN1945719B (zh) | 信息记录设备、摄像装置和信息记录控制方法 | |
CN108898036B (zh) | 一种数据读写控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080130 Termination date: 20111213 |