通用串行总线装置及其数据传输方法与流程

文档序号:22124566发布日期:2020-09-04 17:02阅读:136来源:国知局
通用串行总线装置及其数据传输方法与流程

本发明涉及通用串行总线(universalserialbus,usb),尤其涉及通用串行总线装置及其数据传输方法。



背景技术:

在通用串行总线的实际操作中,通常采用聚集(aggregation)的方式来将装置(device)中的数据经由usb传输到主机(host),以减少数据搬移的次数,进而降低主机的处理器(例如中央处理器、微控制单元或微控制器等)的负担并提升单位时间的传输量。装置必须等待主机启动传输才能开始传输数据。

图1显示根据现有的传输机制的一次的usb传输(usbtransfer)的内容。主机于时间点t0启动传输,装置开始依序传输封包p1、封包p2、封包p3、...,直到累积的传输量达到预设数据量dth(也即封包p1、p2、p3、…、pn的数据总和大于等于预设数据量dth)后在时间点te结束数据传输。主机接收完毕封包p1~pn后才对所有n个封包进行处理,换言之,一次的usb传输包含封包p1~pn。预设数据量dth可以略小于主机的系统资源储存上限。就传输的顺序而言,封包p2为封包p1的下一个封包,封包p3为封包p2的下一个封包,以此类推。

图1的机制的缺点在于,几乎每个封包都有传输延迟。举例来说,封包p3在时间点t3便已传输完毕,但主机却等到时间点te才处理全部的封包,所以封包p3至少有时间tl3(tl3=te-t3)的传输延迟。当封包p3为时间上较重要(必须尽早传送至主机)的封包时,这样的传输机制可能会影响使用者体验,或降低主机的效能。



技术实现要素:

鉴于先前技术的不足,本发明的一目的在于提供一种usb装置及usb装置的数据传输方法,以缩短重要封包的传输延迟。

本发明披露一种usb装置。该usb装置耦接一主机,并传送至少一封包至该主机。该usb装置包含一存储器、一usb控制器以及一传输管理电路。该存储器储存这些封包。该usb控制器用来将这些封包传送至该主机。该传输管理电路耦接于该存储器与该usb控制器之间,用来自该存储器依序读取这些封包并依序传输这些封包至该usb控制器,并执行以下操作:当该存储器的储存内容不符合一继续传输封包的条件时,结束数据传输;或是当一最后传输的封包符合一预设条件且该最后传输的封包的一下一个封包不符合该预设条件时,结束数据传输。

本发明还披露一种数据传输方法,应用于一usb装置,该usb装置耦接一主机并通过一usb控制器传送至少一封包至该主机。该数据传输方法包含:自一存储器依序读取这些封包并依序传输这些封包至该usb控制器;以及当该存储器的储存内容不符合一继续传输封包的条件时,结束数据传输。

本发明还披露一种数据传输方法,应用于一usb装置,该usb装置耦接一主机并通过一usb控制器传送至少一封包至该主机。该数据传输方法包含:自一存储器依序读取这些封包并依序传输这些封包至该usb控制器;以及当一最后传输的封包符合一预设条件且该最后传输的封包的一下一个封包不符合该预设条件时,结束数据传输。

本发明的usb装置及usb装置的数据传输方法能够适时地提早结束数据传输。相比于传统技术,本发明可以缩短须及时处理的封包的传输延迟,以提升使用者体验及主机效能。

有关本发明的特征、实际操作与效果,配合图式作实施例详细说明如下。

附图说明

[图1]显示根据现有的传输机制的一次的usb传输的内容;

[图2]为依据本发明一实施例的电子设备的功能方框图;

[图3]为本发明数据传输方法的一实施例的流程图;以及

[图4]为本发明的usb数据传输机制的一个示例。

具体实施方式

以下说明内容的技术用语是参照本技术领域的习惯用语,如本说明书对部分用语有加以说明或定义,该部分用语的解释是以本说明书的说明或定义为准。

本发明的披露内容包含usb装置及usb装置的数据传输方法。由于本发明的usb装置所包含的部分元件单独而言可能为已知元件,因此在不影响该装置发明的充分披露及可实施性的前提下,以下说明对于已知元件的细节将予以省略。此外,本发明的usb装置的数据传输方法的部分或全部流程可以是软件及/或固件的形式,并且可通过本发明的usb装置或其等效装置来执行,在不影响该方法发明的充分披露及可实施性的前提下,以下方法发明的说明将着重于步骤内容而非硬件。

图2为依据本发明一实施例的电子设备的功能方框图。电子设备10(例如是伺服器、桌上型电脑、笔记本电脑、平板电脑、手持装置等)包含主机100及usb装置200,主机100及usb装置200通过usb传输媒介300(例如usb传输线或是usb接口传输电路)传送数据。在一些实施例中,usb装置200耦接主机100的usb下行端口(usbdownstreamport)。主机100包含中央处理器120(centralprocessingunit,cpu)、存储器140及usb控制器160。主机100利用usb控制器160通过usb传输媒介300从usb装置200接收至少一封包,并且将收到的封包存入存储器140。usb装置200以聚集的方式传送封包给主机100。当usb控制器160得知usb装置200结束传输时(例如收到usb装置200传来的短封包(shortpacket)或等效的信息),usb控制器160以中断信号si通知中央处理器120已完成一次传输,中央处理器120便可从存储器140读取封包并且处理这些封包。

usb装置200包含存储器220、传输管理电路240以及usb控制器260。存储器220储存由电子设备10外部传输给电子设备10的封包(例如网络封包,则usb装置200可以是usb网络接口控制器(networkinterfacecontroller,nic))。传输管理电路240耦接于存储器220与usb控制器260之间,用来从存储器220依序读取封包并依序传输封包至usb控制器260。传输管理电路240包含寄存器241、读取电路242、数据缓冲器244、检测计算单元246以及状态数据缓冲器248。传输管理电路240可以是一个包含多个逻辑门或逻辑电路的动态聚集状态机(dynamicaggregationstatemachine),例如以直接存储器访问(directmemoryaccess,dma)实际操作。

图3为本发明数据传输方法的一实施例的流程图。以下的说明请参阅图2及图3。当主机100启动传输时,传输管理电路240开始大量传输(bulk-intransfer)操作。首先,读取电路242从存储器220读取封包(步骤s310)。在一些实施例中,存储器220是先进先出(firstinfirstout,fifo)存储器,读取电路242依照封包被存入存储器220的顺序依序读取封包。读取封包后,读取电路242将封包存入数据缓冲器244;随后usb控制器260从数据缓冲器244取得封包,并根据usb的标准封装封包,再将封包通过usb传输媒介300传输至主机100(步骤s320)。检测计算单元246用来计算该次传输的传输量(transfersize)(也即从主机100启动传输开始,读取电路242从存储器220所读取的总数据量)(步骤s330),并判断传输量是否大于等于预设数据量dth(步骤s340)。

检测计算单元246还检测存储器220中目前储存的封包数及/或封包大小,以及判断封包是否符合预设条件。在一些实施例中,符合预设条件的封包可以被认定为重要的封包(具有高优先权的封包),其传输延迟越小越好。此预设条件可以储存在寄存器241中。在一些实施例中,使用者可以通过主机100上所执行的软件来设定预设条件。主机100执行usb装置200的驱动程序来将预设条件通过usb控制器260写入传输管理电路240的寄存器241中。举例来说,预设条件可以是封包的来源端口号(sourceportnumber)是否位于预设范围内(例如用户数据报协议(userdatagramprotocol,udp)的5000~5500)。在一个实施例中,如果封包的来源端口号位于预设范围内,则该封包被认定为重要的封包。

回到图3,当步骤s340的判断为是,读取电路242会停止从存储器220读取封包并放至数据缓冲器244。若usb控制器260传送的最后一个usb封包的长度小于usb最大封包长度(可由状态数据缓冲器248获得信息),即可结束本次传输(步骤s380);若usb控制器260传送的最后一个usb封包的长度刚好为usb最大封包长度,检测计算单元246会在状态数据缓冲器248准备一个usb封包长度为0的状态数据,然后usb控制器260会根据此状态数据传送一个长度为0的usb封包到usb控制器160来结束本次传输(步骤s380)。更明确地说,当状态数据缓冲器248存有状态数据,usb控制器260根据状态数据缓冲器248的数据来传送完数据缓冲器244内的封包,并以最后一个usb封包为短封包(长度小于usb规格书所规范最大封包长度)以通知主机100传输结束。当步骤s340的判断为否,检测计算单元246判断是否继续传输封包(也即是否继续聚集封包)(步骤s350)。当步骤s350的判断为否,传输管理电路240立即结束大量传输(步骤s380);当步骤s350的判断为是,则流程进入步骤s360。在一些实施例中,继续传输封包的条件例如是:(1)存储器220中的封包数大于预设值(例如0个);或(2)存储器220中的封包大小大于预设值(例如64字节(byte))。

在步骤s360中,检测计算单元246判断最后传输的封包是否符合预设条件。当步骤s360的判断为否,流程回到步骤s310,读取电路242继续从存储器220读取下一个待传的封包。当步骤s360的判断为是,检测计算单元246判断下一个待传的封包(储存于存储器220中)是否符合预设条件(步骤s370)。当步骤s370的判断为是,读取电路242执行步骤s310,以从存储器220中读取该下一个封包。当步骤s370的判断为否,传输管理电路240立即结束传输(步骤s380)。

以下以图4为例来进一步说明步骤s350~s370的机制。图4显示本发明的usb数据传输机制的一个示例。假设在时间点tn(封包p1~pn已存入数据缓冲器244,但封包p1~pn的数据量总和小于预设数据量dth)存储器220的状态(即储存内容)符合继续传输封包的条件(步骤s350为是),则检测计算单元246在步骤s360中判断最后传输的封包(即封包pn)是否符合预设条件。如果封包pn不是重要的封包(也即封包pn不符合预设条件),则传输管理电路240继续聚集封包(步骤s310)。反之,如果封包pn是重要的封包(也即封包pn符合预设条件),检测计算单元246在步骤s370中从存储器220读取封包pn的下一个封包(尚未传输,也即尚未存入数据缓冲器244),并判断封包pn的下一个封包是否符合预设条件。如果封包pn的下一个封包不是重要的封包(步骤s370为否),则立即结束传输(步骤s380)。反之,如果封包pn的下一个封包是重要的封包(步骤s370为是),则读取电路242继续读取该下一个封包并存入数据缓冲器244(步骤s310)。

由以上的说明可知,本发明的传输机制在以下两种情况可以提早结束数据传输:(1)当存储器220的状态不符合继续传输封包的条件时(无论最后传输的封包pn是否为重要的封包);以及(2)当封包pn为重要的封包且封包pn的下一个封包不是重要的封包时。在这两种情况中,封包p1~pn皆可以提早被中央处理器120处理,也就是说封包p1~pn皆可以减少时间tln=te-tn的传输延迟(n=1,2,…)。换句话说,本发明的数据传输方法可以减少重要的封包的传输延迟,使重要的封包能够尽早被处理。

由于本技术领域具有通常知识者可通过本案的装置发明的披露内容来了解本案的方法发明的实施细节与变化,因此,为避免赘文,在不影响该方法发明的披露要求及可实施性的前提下,重复的说明在此予以省略。请注意,上述图示中,元件的形状、尺寸、比例以及步骤的顺序等仅为示意,是供本技术领域具有通常知识者了解本发明之用,非用以限制本发明。

虽然本发明的实施例如上所述,然而这些实施例并非用来限定本发明,本技术领域具有通常知识者可依据本发明的明示或隐含的内容对本发明的技术特征施以变化,凡此种种变化均可能属于本发明所寻求的专利保护范畴,换言之,本发明的专利保护范围须视本说明书的申请专利范围所界定者为准。

【符号说明】

p1、p2、p3、pn封包

10电子设备

100主机

120中央处理器

140、220存储器

160、260usb控制器

200usb装置

240传输管理电路

241寄存器

242读取电路

244数据缓冲器

246检测计算单元

248状态数据缓冲器

300usb传输媒介

si中断信号

s310~s380步骤。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1