一种USB数据传输方法、装置及系统与流程

文档序号:23350247发布日期:2020-12-18 16:55阅读:117来源:国知局
一种USB数据传输方法、装置及系统与流程

本申请涉及usb领域,尤其涉及一种usb数据传输方法、装置及系统。



背景技术:

usb,是英文universalserialbus(通用串行总线)的缩写,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。随着usb技术的发展,usb传输速率需求日益提高,目前的usb3.2gen1的传输速率理论上可达到500m/s,而usb3.2gen2的传输速率理论上可达到1.25gb/s,usb3.2gen2x2的理论传输速率甚至达到了2.5gb/s。

虽然目前usb理论传输速率很高,当实际上仍存在影响usb传输速率的因素,使得实际使用时usb传输速率远小于理论传输速率。例如,现有的嵌入式usb结构中,dsp处理器与arm处理器之间通过共享内存进行通信,由于dsp处理器使用的是物理内存,需要arm处理器对这部分内存进行映射,而且不能使用缓存,否则会出现数据不同步的问题。arm处理器上层应用数据同样的需要拷贝到内核内存,在内核内存再次分配用于dma传送的物理空间,导致usb的实际传输速率受到影响,目前实测usb3.2gen1的实际传输速率最大只有65mb/s。



技术实现要素:

为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种usb数据传输方法、装置及系统。

第一方面,本申请提供了一种usb数据传输装置,包括:应用微处理器和usb控制器,所述应用微处理器用于获取待传输数据的数据标识,根据所述数据标识查询得到所述待传输数据在物理内存中的数据物理地址,并将所述数据物理地址发送至所述usb控制器;

所述usb控制器用于根据所述数据物理地址从所述物理内存中查询得到所述待传输数据并进行传送。

可选的,所述usb控制器包括dma控制器,

所述usb控制器用于启动所述dma控制器,并将所述数据物理地址发送到所述dma控制器;

所述dma控制器用于根据所述数据物理地址从所述物理内存中查询得到所述待传输数据并进行传送。

第二方面,本申请提供了一种usb数据传输系统,包括arm处理器和物理内存,所述arm处理器包括应用微处理器和usb控制器,

所述应用微处理器用于获取待传输数据的数据标识,根据所述数据标识查询得到所述待传输数据在物理内存中的数据物理地址,并将所述数据物理地址发送至所述usb控制器;

所述usb控制器用于根据所述数据物理地址从所述物理内存中查询得到所述待传输数据并进行传送。

可选的,所述usb控制器包括dma控制器,

所述usb控制器用于启动所述dma控制器,并将所述数据物理地址发送到所述dma控制器;

所述dma控制器用于根据所述数据物理地址从所述物理内存中查询得到所述待传输数据并进行传送。

可选的,所述系统还包括dsp处理器,

所述应用微处理器用于为待存储数据分配所述数据物理地址,将所述数据物理地址发送到所述dsp处理器,所述待存储数据为所述待传输数据;

所述dsp处理器用于根据所述数据物理地址将所述待存储数据存储到所述物理内存中。

可选的,所述dsp处理器用于为所述数据标识分配标识物理地址,将所述标识物理地址发送至所述应用微处理器;

所述应用微处理器用于根据所述标识物理地址获取所述数据标识,将所述数据物理地址和所述数据标识在物理内存中关联存储。

可选的,所述系统还包括以下至少一种usb接口:usb3.2gen1、usb3.2gen2或usb3.2gen2x2,

所述usb控制器通过所述usb接口传送所述待传输数据。

第三方面,本申请提供了一种usb数据传输方法,所述方法包括:

获取待传输数据的数据标识;

根据所述数据标识查询得到所述待传输数据在物理内存中的数据物理地址;

根据所述数据物理地址从所述物理内存中查询得到所述待传输数据;

传送所述待传输数据。

可选的,所述方法还包括:

为待存储数据分配所述数据物理地址,将所述数据物理地址发送到dsp处理器,所述待存储数据为所述待传输数据,由所述dsp处理器根据所述数据物理地址将所述待存储数据存储到所述物理内存中。

可选的,所述方法还包括:

获取所述dsp处理器为所述数据标识分配的标识物理地址;

根据所述标识物理地址获取所述数据标识,将所述数据物理地址和所述数据标识在物理内存中关联存储。

本申请实施例提供的上述技术方案与现有技术相比具有如下优点:

应用微处理器和usb控制器之间,通过在物理内存中拷贝待传输数据的物理地址来实现数据传输,这样,在物理内存中,无需对待传输数据进行多次拷贝。由于物理地址的数据大小一般要远小于待传输数据的大小,使用本实施例的方法进行数据传输,将大大提高usb数据的实际传输速度。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种usb数据传输装置10的框图;

图2为本申请实施例提供的一种usb数据传输系统的框图;

图3为本申请实施例提供的一种usb数据传输方法的流程图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

为避免在物理内存中对待传输数据多次拷贝而造成usb传输速率受限的问题,本申请的技术方案,利用装置间共用物理内存的特性,基于待传输数据在物理内存中的物理地址进行数据传输,即在物理内存中多次拷贝的仅为该待传输数据的物理地址,而非待传输数据本身,在向外传输时,通过该物理地址进行数据传送。

图1为本申请实施例提供的一种usb数据传输装置10的框图,如图1所示,该装置10包括应用微处理器11和usb控制器12,应用微处理器11用于获取待传输数据的数据标识,根据数据标识查询得到待传输数据在物理内存中的数据物理地址,并将数据物理地址发送至usb控制器12;

usb控制器12用于根据数据物理地址从物理内存中查询得到待传输数据并进行传送。

其中,usb控制器12包括dma控制器121,

usb控制器12用于启动dma控制器121,并将数据物理地址发送到dma控制器121;

dma控制器121用于根据数据物理地址从物理内存中查询得到待传输数据并进行传送。

本实施例中,应用微处理器和usb控制器之间,通过在物理内存中拷贝待传输数据的物理地址来实现数据传输,这样,在物理内存中,无需对待传输数据进行多次拷贝。由于物理地址的数据大小一般要远小于待传输数据的大小,使用本实施例的方法进行数据传输,将大大提高usb数据的实际传输速度。

本实施例中的usb数据传输装置10可以为arm处理器。下面以usb数据传输装置10为arm处理器为例,对包括该装置10的usb数据传输系统进行详细说明。

图2为本申请实施例提供的一种usb数据传输系统的框图,如图2所示,该系统包括:arm处理器10和物理内存20,其中,arm处理器10包括应用微处理器11和usb控制器12。

应用微处理器11用于获取待传输数据的数据标识,根据数据标识查询得到待传输数据在物理内存20中的数据物理地址,并将数据物理地址发送至usb控制器12。usb控制器12用于根据数据物理地址从物理内存20中查询得到待传输数据并进行传送。

其中,usb控制器12包括dma控制器121。usb控制器12用于启动dma控制器121,并将数据物理地址发送到dma控制器121。dma控制器121用于根据数据物理地址从物理内存20中查询得到待传输数据并进行传送。

本实施例的usb数据传输系统,由于物理内存对于该系统中的各个装置来说是共用的,无需在物理内存中多次拷贝待传输数据,仅通过使用数据物理地址定位待传输数据,即dma控制器根据数据物理地址就可传输数据,有效提高usb数据的实际传输速度。

如图2所示,该系统还包括dsp处理器30。其中,应用微处理器11用于为待存储数据分配数据物理地址,将数据物理地址发送到dsp处理器30,该待存储数据为待传输数据。dsp处理器30用于根据数据物理地址将待存储数据存储到物理内存20中。

本实施例中,在存储阶段,应用微处理器为待存储数据(也即传输阶段的待传输数据)分配物理地址,dsp处理器根据该物理地址将待存储数据存储到物理内存中的相应位置。在数据传输阶段,各装置之间仅传输物理地址,在物理内存中不会对该数据多次拷贝。

进一步地,dsp处理器30用于为数据标识分配标识物理地址,将标识物理地址发送至应用微处理器11。应用微处理器11用于根据标识物理地址获取数据标识,将数据物理地址和数据标识在物理内存20中关联存储。

本实施例中,dsp处理器为数据标识分配标识物理地址,应用微处理器可根据标识物理地址查询到该数据标识,并在物理内存中关联存储该数据标识及数据物理地址。这样,后续应用微处理器在获取待传输数据的数据标识时,可以在物理内存中查询到其对应的数据物理地址。

其中,该设备还包括以下至少一种usb接口:usb3.2gen1、usb3.2gen2或usb3.2gen2x2。如图2所示,dma控制器121通过usb3.2gen1接口40传送待传输数据。

图3为本申请实施例提供的一种usb数据传输方法的流程图,如图3所示,该方法应用于上述usb数据传输装置,如arm处理器,包括以下步骤:

步骤s31,获取待传输数据的数据标识。

步骤s32,根据数据标识查询得到待传输数据在物理内存中的数据物理地址。

步骤s33,根据数据物理地址从物理内存中查询得到待传输数据。

步骤s34,传送待传输数据。

在另一实施例中,该方法还包括:

为待存储数据分配数据物理地址,将数据物理地址发送到dsp处理器,待存储数据为待传输数据,由dsp处理器根据数据物理地址将待存储数据存储到物理内存中。

在另一实施例中,该方法还包括:

获取dsp处理器为数据标识分配的标识物理地址;

根据标识物理地址获取数据标识,将数据物理地址和数据标识在物理内存中关联存储。

以下以一个具体实例对本申请的技术方案进行详细说明。

该实例包括两个阶段,对数据d1的存储阶段和传输阶段。该数据d1的标识为id1。

1.存储阶段

1.1应用微处理器11为d1分配物理地址pa1,将pa1发送到dsp处理器30。

1.2dsp处理器30将d1存储到物理内存20的pa1处。

1.3dsp处理器30为id1分配物理地址pa2,将id1存储到物理内存20的pa2处,并将pa2发送到应用微处理器11。

1.4应用微处理器11根据pa2获取到id1,并在物理内存20中关联存储id1和pa1。

2.传输阶段

2.1应用微处理器11获得需要传输数据的id1,查询到id1对应的pa1,将pa1发送到usb控制器12。

2.2usb控制器12启动dma控制器121,将pa1发给dma控制器121。

2.3dma控制器121从物理内存20中的pa1处查到d1并进行传送。

通过上述实例可见,应用微处理器11和usb控制器12之间,通过在物理内存中拷贝d1的物理地址pa1来实现数据传输,这样,在物理内存中,无需对d1进行多次拷贝。由于pa1的数据大小要远小于d1的大小,使用本实施例的方法进行数据传输,将大大提高usb数据的实际传输速度。

需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。

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