通用串行总线传输控制方法及主机设备的制作方法

上传人:ting****789 文档编号:310067913 上传时间:2022-06-14 格式:DOCX 页数:6 大小:22.06KB
返回 下载 相关 举报
通用串行总线传输控制方法及主机设备的制作方法_第1页
第1页 / 共6页
亲,该文档总共6页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《通用串行总线传输控制方法及主机设备的制作方法》由会员分享,可在线阅读,更多相关《通用串行总线传输控制方法及主机设备的制作方法(6页珍藏版)》请在金锄头文库上搜索。

1、通用串行总线传输控制方法及主机设备的制作方法专利名称:通用串行总线传输控制方法及主机设备的制作方法技术领域:本发明涉及通信技术,尤其涉及一种通用串行总线传输控制方法及主机设备。背景技术:通用串行总线(Universal Serial Bus,简称为USB)是一个外部总线标准,USB接口技术直接即插即用和热插拔功能。目前,USB数据传输类型主要包括批量传输(BulkTransfer)、控制传输(Control Transfer)、中断传输(InterruptTransfer)和同步传输(Isochronous Transfer)。其中,批量传输是一种可靠的单向传输,但延迟没有保证,它尽量利用可以

2、利用的带宽来完成传输,适合数据量比较大的传输。USB主机设备(以下简称主机设备)与USB设备相互配合完成USB数据的传输。主机设备主要包括主机控制驱动、USB内核以及客户端软件,USB内核被中央处理器(Central Processing Unit,简称为CPU)调度执行。主机控制驱动包括主机控制器(HostController,简称为HC)和主机控制器驱动程序(Host Control Driver,简称为HCD)。主机控制器主要包括硬件收发单元、微处理器以及寄存器单元。USB内核主要负责完成基本的USB协议层功能,会因为操作系统的不同而不同。主机控制驱动主要在USB内核的控制下与USB设备

3、进行数据收发处理。具体的,主机控制器的硬件收发单元查询USB设备,当发现USB设备有数据需要发送时,从USB总线上接收USB设备发送的数据;主机控制器的微处理器通过对交易该数据的端点对应的传输类型进行判断,将属于不同传输类型下的数据分别送往主机控制器的不同的硬件先进先出(First In FirstOut,简称为FIFO)缓存器中;当主机控制器的微处理器处理完从USB总线上收到的数据后,根据主机控制器中的寄存器的设置,如果使能了中断寄存器,则置位中断寄存器产生软件中断,触发CPU根据软件中断对接收到的数据进行处理;否则,仅置位对应的状态寄存器,表明接收到数据;CPU收到软件中断后,调用挂接给该

4、软件中断的中断服务程序,例如HCD-IRQ ;在中断服务程序中,获取挂接给对应端点的USB请求块(USB Request Block,简称为URB),再调用该URB上的回调(callback)函数,将相应FIFO存储器中的数据送至数据平面进行处理,同时重新使能对应的URB,以供下次数据传输使用。在上述接收数据过程中,主机设备以软件中断方式调用中断服务程序将数据传输至数据平面,如果软件中断不能被及时响应,例如在多任务操作系统环境下,同时存在多个任务并发的现象,CPU可能会被其他任务抢占导致软件中断不能及时响应,使得接收到的数据得不到及时处理,影响对数据的处理效率。发明内容本发明提供一种通用串行总

5、线传输控制方法及主机设备,用以提高基于USB的数据的处理效率。第一方面提供一种通用串行总线USB传输控制方法,包括主机设备的中央处理器CPU根据预设的查询周期,周期性的查询USB传输端点下的USB请求块URB对应的硬件先进先出FIFO存储器;其中,所述CPU周期性查询所述USB传输端点下的URB对应的硬件FIFO存储器的优先级高于所述CPU以软件中断方式查询所述USB传输端点下的URB对应的硬件FIFO存储器的优先级;当查询到所述USB传输端点下的URB对应的硬件FIFO存储器中有数据时,所述CPU将所述USB传输端点下的URB对应的硬件FIFO存储器中的至少一个第一数据一次性传输给所述主机设

6、备的应用层处理模块,以供所述应用层处理模块对所述至少一个第一数据进行处理。第二方面提供一种主机设备,包括查询模块、传输模块和应用层处理模块;所述查询模块,用于根据预设的查询周期,周期性的查询通用串行总线USB传输端点下的USB请求块URB对应的硬件先进先出FIFO存储器;其中,所述查询模块周期性查询所述USB传输端点下的URB对应的硬件FIFO存储器的优先级高于所述查询模块以软件中断方式查询所述USB传输端点下的URB对应的硬件FIFO存储器的优先级;所述传输模块,用于在所述查询模块查询到所述USB传输端点下的URB对应的硬件FIFO存储器中有数据时,将所述USB传输端点下的URB对应的硬件F

7、IFO存储器中的至少一个第一数据一次性传输给所述主机设备的应用层处理模块,以供所述应用层处理模块对所述至少一个第一数据进行处理。本发明提供的通用串行总线USB传输控制方法及主机设备,通过设置优先级高于软件中断的周期性查询方式,CPU周期性的去查询USB传输端点下的URB对应的硬件FIFO存储器,将USB传输端点下的URB对应的硬件FIFO存储器中的数据发送给主机设备的应用层处理模块,由应用层处理模块对数据进行处理,这种传输控制方式将USB传输端点从中断传输方式中剥离出来,改用优先级较高的周期性查询方式,克服了因软件中断方式优先级较低导致CPU被其他任务抢占,无法及时对接收到的数据进行处理的问题

8、,提高了对数据进行处理的效率;另外,由于采用了周期性查询方式,CPU不用像现有软件中断处理方式那样一次仅处理一个数据,CPU可以在一次查询过程中将USB传输端点下至少一个数据一次性处理完,有利于降低CPU的占用率,进一步提高对数据的处理效率。为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的一种USB传输控制方法的流程图;图2为本发明实施例提供的另一种USB传输控制方

9、法的流程图;图3为本发明实施例提供的又一种USB传输控制方法的流程图;图4为本发明实施例提供的一种主机设备的结构示意图;图5为本发明实施例提供的另一种主机设备的结构示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图1为本发明实施例提供的一种USB传输控制方法的流程图。如图1所示,本实施例的方法包括步骤101、主机设备的CP

10、U根据预设的查询周期,周期性的查询USB传输端点下的USB请求块(USB Request Block,简称为URB)对应的硬件FIFO存储器,其中,CPU周期性查询USB传输端点下的URB对应的硬件FIFO存储器的优先级高于CPU以软件中断方式查询该USB传输端点下的URB对应的硬件FIFO存储器的优先级。步骤102、当查询到USB传输端点下的URB对应的硬件FIFO存储器中有数据时,CPU将USB传输端点下的URB对应的硬件FIFO存储器中的至少一个第一数据一次性传输给主机设备的应用层处理模块,以供应用层处理模块对第一数据进行处理。在本实施例中,USB传输端点主要是指同一类型的传输端点,例如

11、可以是支持批量传输的传输端点,USB传输端点实际上是一个传输单兀。一个USB传输端点下有多个URB,每个URB对应至少一个硬件FIFO存储器。则一个USB传输端点可以有多个硬件FIFO存储器,每个硬件FIFO存储器用于存储主机设备的硬件收发单元从USB总线上接收到的来自于USB设备的数据。可选的,一个硬件FIFO存储器最大可以为一页内存。考虑到效率的影响,优选的,每个USB传输端点下可以有16个硬件FIFO存储器,但不限于此。在本实施例中,为了克服现有技术中因软件中断处理方式的优先级较低导致软件中断服务程序不能被及时响应,例如在多任务操作系统环境下,同时存在多个任务并发的现象,CPU可能会被其

12、他任务抢占而导致软件中断服务程序不能被及时响应,使得接收到的数据得不到及时处理,影响对数据的处理效率的问题,通过预先设置优先级较高的周期性查询方式,该周期性查询方式的优先级至少高于软件中断处理方式的优先级,CPU周期性的去查询USB传输端点下的URB对应的硬件FIFO存储器,当查询到USB传输端点下的URB对应的硬件FIFO存储器中有数据时,CPU将该USB传输端点下的URB对应的硬件FIFO存储器中的至少一个数据传输至主机设备的应用层处理模块,由应用层处理模块对所述至少一个数据进行处理。为便于区分,将URB对应的硬件FIFO存储器中的数据称为第一数据。其中,主机设备可以定义一个高精度的定时器

13、,使用该定时器对查询周期进行计时,当该定时器计时到达查询周期对应的定时时长时,定时器重新对该定时时长进行计时,而CPU查询USB传输端点下的URB对应的硬件FIFO存储器。在本实施例中,将CPU对USB传输端点下的URB对应的硬件FIFO存储器的查询从中断传输中剥离出来,改用优先级较高的周期性查询的方式,克服了因软件中断处理方式优先级较低导致CPU被其他任务抢占,无法及时对接收到的数据进行处理的问题,提高了对数据进行处理的效率。进一步,由于本实施例CPU采用的是周期性查询方式,而不是软件中断处理方式,因此CPU可以不再受软件中断处理方式的限制一次仅处理一个数据,可以同时对USB传输端点下的UR

14、B对应的硬件FIFO存储器中的一个或多个数据进行处理,即CPU次可以将一个或多个第一数据传输至应用层处理模块,由于CPU 次可以将多个第一数据传输至主机设备的应用层处理模块,减少了 CPU参与处理USB传输端点下的URB对应的硬件FIFO存储器中数据的次数,有利于降低CPU的占用率,进一步提高对数据的处理效率。在此说明,CPU对USB传输端点下的URB对应的硬件FIFO存储器中数据进行处理的过程主要是CPU将USB传输端点下的URB对应的硬件FIFO存储器中数据从硬件FIFO存储器中拷贝到主机设备的其他内存中的过程,是一个搬运过程,实质上并不对对这些数据做具体的处理。所述其他内存主要是指主机设

15、备内部供应用层处理模块使用的内存,是一种软件内存。对这些数据的具体处理是由应用层处理模块负责完成的,应用层处理模块对数据的处理会因为具体应用的不同而不同,本实施例对该处理过程不做限定。其中,硬件FIFO存储器在应用层处理模块对该硬件FIFO存储器中的数据进行处理的过程中不能被重新使用,只有在应用层处理模块对该硬件FIFO存储器中的数据处理完成之后,该硬件FIFO存储器才可以重新使用。其中,在主机设备上有另外的寄存器用于表示该FIFO存储器中的数据是否被应用层处理模块进行处理。进一步,在现有软件中断处理方式中,对于传输数据较频繁的情况,例如USB2.0和USB3. 0协议,其交易周期为125微秒

16、(us),软件中断的调度频率达不到这一要求,这样就会出现硬件收上来的数据全部屯在硬件FIFO存储器中,甚至出现硬件FIFO存储器溢出导致数据丢失的现象。而在本实施例中,CPU周期性的查询FIFO存储器,其优先级较高,且CPU在查询到FIFO存储器有数据时,可以一次性将所有数据传输至应用层处理模块,其处理速度和效率都有提高,在很大程度上降低了 FIFO存储器溢出的概率,降低了数据丢失的概率。图2为本发明实施例提供的另一种USB传输控制方法的流程图。如图2所示,本实施例的方法包括步骤201、主机设备的CPU配置USB传输端点对应的查询方式指示,该查询方式指示用于指示对该USB传输端点下的URB对应的硬件FIFO存储器的查询方式为周期性查询,并设置CPU周期性查询USB传输端点下的URB对应的硬件FIFO存储器的优先级高于CPU以软件中断方式查询该USB传输端点下的URB对应的硬件FIFO存储器的优先级。步骤202、主机设备的CPU根据预设的查询周期,周期性的查询USB传输端点下的USB请求块URB对应的硬件FIFO存储器。步骤202可参见

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号