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

技术编号:8532806 阅读:209 留言:0更新日期:2013-04-04 15:48
本发明专利技术提供一种通用串行总线传输控制方法及主机设备。方法包括:CPU根据预设的查询周期,周期性的查询USB传输端点下的URB对应的硬件FIFO存储器;其中,周期性查询USB传输端点下的URB对应的硬件FIFO存储器的优先级高于以软件中断方式查询USB传输端点下的URB对应的硬件FIFO存储器的优先级;当查询到USB传输端点下的URB对应的硬件FIFO存储器中有数据时,CPU将USB传输端点下的URB对应的硬件FIFO存储器中的至少一个第一数据一次性传输给应用层处理模块,以供应用层处理模块对至少一个第一数据进行处理。采用本发明专利技术技术方案可以提高基于USB的数据的处理效率。

【技术实现步骤摘要】

本专利技术涉及通信技术,尤其涉及一种通用串行总线传输控制方法及主机设备
技术介绍
通用串行总线(Universal Serial Bus,简称为USB)是一个外部总线标准,USB接口技术直接即插即用和热插拔功能。目前,USB数据传输类型主要包括批量传输(BulkTransfer)、控制传输(Control Transfer)、中断传输(InterruptTransfer)和同步传输(Isochronous Transfer)。其中,批量传输是一种可靠的单向传输,但延迟没有保证,它尽量利用可以利用的带宽来完成传输,适合数据量比较大的传输。USB主机设备(以下简称主机设备)与USB设备相互配合完成USB数据的传输。主机设备主要包括主机控制驱动、USB内核以及客户端软件,USB内核被中央处理器(Central Processing Unit,简称为CPU)调度执行。主机控制驱动包括主机控制器(HostController,简称为HC)和主机控制器驱动程序(Host Control Driver,简称为HCD)。主机控制器主要包括硬件收发单元、微处理器以及寄存器单元。USB内核主要负责完成基本的USB协议层功能,会因为操作系统的不同而不同。主机控制驱动主要在USB内核的控制下与USB设备进行数据收发处理。具体的,主机控制器的硬件收发单元查询USB设备,当发现USB设备有数据需要发送时,从USB总线上接收USB设备发送的数据;主机控制器的微处理器通过对交易该数据的端点对应的传输类型进行判断,将属于不同传输类型下的数据分别送往主机控制器的不同的硬件先进先出(First In FirstOut,简称为FIFO)缓存器中;当主机控制器的微处理器处理完从USB总线上收到的数据后,根据主机控制器中的寄存器的设置,如果使能了中断寄存器,则置位中断寄存器产生软件中断,触发CPU根据软件中断对接收到的数据进行处理;否则,仅置位对应的状态寄存器,表明接收到数据;CPU收到软件中断后,调用挂接给该软件中断的中断服务程序,例如HCD->IRQ ;在中断服务程序中,获取挂接给对应端点的USB请求块(USB Request Block,简称为URB),再调用该URB上的回调(callback)函数,将相应FIFO存储器中的数据送至数据平面进行处理,同时重新使能对应的URB,以供下次数据传输使用。在上述接收数据过程中,主机设备以软件中断方式调用中断服务程序将数据传输至数据平面,如果软件中断不能被及时响应,例如在多任务操作系统环境下,同时存在多个任务并发的现象,CPU可能会被其他任务抢占导致软件中断不能及时响应,使得接收到的数据得不到及时处理,影响对数据的处理效率。
技术实现思路
本专利技术提供一种通用串行总线传输控制方法及主机设备,用以提高基于USB的数据的处理效率。第一方面提供一种通用串行总线USB传输控制方法,包括主机设备的中央处理器CPU根据预设的查询周期,周期性的查询USB传输端点下的USB请求块URB对应的硬件先进先出FIFO存储器;其中,所述CPU周期性查询所述USB传输端点下的URB对应的硬件FIFO存储器的优先级高于所述CPU以软件中断方式查询所述USB传输端点下的URB对应的硬件FIFO存储器的优先级;当查询到所述USB传输端点下的URB对应的硬件FIFO存储器中有数据时,所述CPU将所述USB传输端点下的URB对应的硬件FIFO存储器中的至少一个第一数据一次性传输给所述主机设备的应用层处理模块,以供所述应用层处理模块对所述至少一个第一数据进行处理。第二方面提供一种主机设备,包括查询模块、传输模块和应用层处理模块;所述查询模块,用于根据预设的查询周期,周期性的查询通用串行总线USB传输端点下的USB请求块URB对应的硬件先进先出FIFO存储器;其中,所述查询模块周期性查询所述USB传输端点下的URB对应的硬件FIFO存储器的优先级高于所述查询模块以软件中断方式查询所述USB传输端点下的URB对应的硬件FIFO存储器的优先级;所述传输模块,用于在所述查询模块查询到所述USB传输端点下的URB对应的硬件FIFO存储器中有数据时,将所述USB传输端点下的URB对应的硬件FIFO存储器中的至少一个第一数据一次性传输给所述主机设备的应用层处理模块,以供所述应用层处理模块对所述至少一个第一数据进行处理。本专利技术提供的通用串行总线USB传输控制方法及主机设备,通过设置优先级高于软件中断的周期性查询方式,CPU周期性的去查询USB传输端点下的URB对应的硬件FIFO存储器,将USB传输端点下的URB对应的硬件FIFO存储器中的数据发送给主机设备的应用层处理模块,由应用层处理模块对数据进行处理,这种传输控制方式将USB传输端点从中断传输方式中剥离出来,改用优先级较高的周期性查询方式,克服了因软件中断方式优先级较低导致CPU被其他任务抢占,无法及时对接收到的数据进行处理的问题,提高了对数据进行处理的效率;另外,由于采用了周期性查询方式,CPU不用像现有软件中断处理方式那样一次仅处理一个数据,CPU可以在一次查询过程中将USB传输端点下至少一个数据一次性处理完,有利于降低CPU的占用率,进一步提高对数据的处理效率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种USB传输控制方法的流程图;图2为本专利技术实施例提供的另一种USB传输控制方法的流程图;图3为本专利技术实施例提供的又一种USB传输控制方法的流程图;图4为本专利技术实施例提供的一种主机设备的结构示意图;图5为本专利技术实施例提供的另一种主机设备的结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。图1为本专利技术实施例提供的一种USB传输控制方法的流程图。如图1所示,本实施例的方法包括步骤101、主机设备的CPU根据预设的查询周期,周期性的查询USB传输端点下的USB请求块(USB Request Block,简称为URB)对应的硬件FIFO存储器,其中,CPU周期性查询USB传输端点下的URB对应的硬件FIFO存储器的优先级高于CPU以软件中断方式查询该USB传输端点下的URB对应的硬件FIFO存储器的优先级。步骤102、当查询到USB传输端点下的URB对应的硬件FIFO存储器中有数据时,CPU将USB传输端点下的URB对应的硬件FIFO存储器中的至少一个第一数据一次性传输给主机设备的应用层处理模块,以供应用层处理模块对第一数据进行处理。在本实施例中,USB传输端点主要是指同一类型的传输端点,例如可以是支持批量传输的传输端点,USB传输端点实际上是一个传输单兀。一个USB传输端点本文档来自技高网
...

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

【技术特征摘要】
1.一种通用串行总线USB传输控制方法,其特征在于,包括主机设备的中央处理器CPU根据预设的查询周期,周期性的查询USB传输端点下的USB 请求块URB对应的硬件先进先出FIFO存储器;其中,所述CPU周期性查询所述USB传输端点下的URB对应的硬件FIFO存储器的优先级高于所述CPU以软件中断方式查询所述USB 传输端点下的URB对应的硬件FIFO存储器的优先级;当查询到所述USB传输端点下的URB对应的硬件FIFO存储器中有数据时,所述CPU将所述USB传输端点下的URB对应的硬件FIFO存储器中的至少一个第一数据一次性传输给所述主机设备的应用层处理模块,以供所述应用层处理模块对所述至少一个第一数据进行处理。2.根据权利要求1所述的USB传输控制方法,其特征在于,所述主机设备的中央处理器CPU根据预设的查询周期,周期性的查询USB传输端点下的USB请求块URB对应的硬件先进先出FIFO存储器之前,包括所述CPU配置所述USB传输端点对应的查询方式指示,所述查询方式指示用于指示对所述USB传输端点下的URB对应的硬件FIFO存储器的查询方式为周期性查询。3.根据权利要求1或2所述的USB传输控制方法,其特征在于,还包括所述CPU接收所述应用层处理模块发送的请求从所述USB传输端点发送数据的端点查询请求;所述CPU根据所述端点查询请求,判断所述USB传输端点下的URB对应的硬件FIFO存储器是否挂接在所述主机设备的硬件收发单元上;如果判断结果为否,所述CPU将所述USB传输端点下的URB对应的硬件FIFO存储器挂接到所述硬件收发单元上,并通过所述USB传输端点下的URB对应的硬件FIFO存储器发送第二数据到所述硬件收发单元;如果判断结果为是,所述CPU直接通过所述USB传输端点下的URB对应的硬件FIFO存储器发送所述第二数据到所述硬件收发单元。4.根据权利要求3所述的USB传输控制方法,其特征在于,还包括所述CPU判断所述应用层处理模块的本次发送操作是否结束;如果判断结果为是,所述CPU将所述USB传输端点下的URB对应的硬件FIFO存储器从所述硬件收发单元上摘除。5.—种主机设备,其特征在于,包括查询模块、传输模块和应用层处理模块;所述查询模块,用于根据预设的查询周期,周期性的查询通用串行总线USB传输端点下的USB请求块URB对应的硬件先进先出FI...

【专利技术属性】
技术研发人员:黄磊
申请(专利权)人:福建星网锐捷网络有限公司
类型:发明
国别省市:

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

1