发明内容
本发明的目的在于提供一种无线数据收发方法及其系统,可以减少终端设备在无线上网时的功耗。
为解决上述技术问题,本发明的实施方式提供了一种无线数据接收方法,包括以下步骤:
处理器中的直接存储器访问DMA将来自无线模块的数据写入存储器;
当满足预定条件时,DMA向处理器的内核发起中断;
处理器的内核读取存储器中的数据并进行处理。
本发明的实施方式还提供了一种无线数据发送方法,包括以下步骤:
无线模块中的DMA将来自处理器的数据写入存储器;
当满足预定条件时,DMA向无线模块的处理核心发起中断;
无线模块的处理核心读取存储器中的数据并进行无线发送处理。
本发明的实施方式还提供了一种无线数据接收系统,包括:
无线模块,用于无线信号接收;
存储器,用于存贮数据;
处理器,其中包括DMA和内核;
DMA用于将来自无线模块的数据写入存储器,并在满足预定条件时向处理器的内核发起中断;
处理器的内核用于读取存储器中的数据并进行处理。
本发明的实施方式还提供了一种无线数据发送系统,包括:
处理器,用于产生待发送的数据;
存储器,用于存贮数据;
无线模块,其中包括DMA和处理核心;
DMA用于将来自处理器的数据写入存储器,并当满足预定条件时,向无线模块的处理核心发起中断;
无线模块的处理核心用于读取存储器中的数据并进行无线发送处理。
本发明的实施方式还提供了一种无线数据接收方法,包括以下步骤:
缓存模块从无线模块读取该无线模块所接收到的数据,并缓存这些数据;
当满足预定条件时,缓存模块向处理器发起中断;
处理器从缓存模块读取数据并进行处理。
本发明的实施方式还提供了一种无线数据发送方法,包括以下步骤:
缓存模块从处理器获取待发送的数据,并缓存这些数据;
当满足预定条件时,缓存模块向无线模块发起中断;
无线模块从缓存模块读取数据,并进行发送处理。
本发明的实施方式还提供了一种无线数据接收系统,包括:
无线模块,用于无线信号接收;
缓存模块,用于从无线模块读取该无线模块所接收到的数据,并缓存这些数据,当满足预定条件时,缓存模块向处理器发起中断;
处理器,用于从缓存模块读取数据并进行处理。
本发明的实施方式还提供了一种无线数据发送系统,包括:
处理器,用于产生待发送的数据;
缓存模块,用于从处理器获取待发送的数据,并缓存这些数据,当满足预定条件时,缓存模块向无线模块发起中断;
无线模块,用于从缓存模块读取数据,并进行发送处理。
本发明实施方式与现有技术相比,主要区别及其效果在于:
处理器中的DMA将从无线模块收到的数据缓存在存储器,通过中断让处理器间歇性地对数据进行处理,有效解决了终端设备在无线上网时因无线传输速率不均匀及外部总线速率偏慢导致的系统功耗浪费问题,降低了处理器的功耗,延长了终端设备的待机时间。
无线模块中的DMA持续处于工作状态,将来自处理器的待发送数据缓存到存储器,再通过中断唤醒睡眠中的无线模块处理核心进行集中处理。DMA只是无线模块中的一小部分电路,其功耗只占无线模块总功耗的一小部分,以DMA的持续工作,换取无线模块的主体部分和处理器的睡眠机会,在总体上可以大大降低系统功耗。
通过一个低复杂度的硬件缓存芯片对无线模块所收到的数据进行缓存,再通过中断唤醒处理器对已缓存的数据进行集中处理,可以节省系统总体的功耗。
在处理器和无线模块之间增加一个低复杂度的硬件缓存模块,缓存待发送的数据,通过中断唤醒睡眠中的无线模块,集中发送已缓存的数据。因为缓存模块的功耗远低于处理器和无线模块,以缓存模块的持续工作换取处理器和无线模块睡眠的机会,可以大大节省无线数据发送过程中系统的总体功耗。
进一步地,被缓存的数据量达到一定门限时才以中断唤醒睡眠中的处理器内核,可以保证处理器每次有足够的数据可以处理,减少了等待时间,提高了处理效率。
在定时器超时时通过中断唤醒睡眠中的处理器内核,可以防止无线传输速率过低时延迟时间过长,保证已收到的数据可以被及时处理。
进一步地,处理器的内核处理完存储器中缓存的数据后,及时进入睡眠状态,直到DMA通过中断唤醒,可以大大减少处理器的能耗。
DMA一直处于工作状态,处理器的内核大部分时间处于睡眠状态,因为内核是处理器中最主要的部分,功耗远大于DMA,所以整体上来说功耗被大大降低了。
具体实施方式
在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。
本发明第一实施方式涉及一种无线数据接收方法,其流程如图1所示。
在步骤101中,无线模块接收无线信号。
本发明各实施方式中的无线模块可以采用各种适用于终端的无线技术,如无线保真(Wireless Fidelity,简称“WiFi”)、通用分组无线业务(General Packet Radio Service,简称“GPRS”)、宽带码分多址(Wideband Code Division Multiple Access,简称“WCDMA”)、时分同步码分多址(Time Division Synchronous Code Division Multiple Access,简称“TD-SCDMA”)、高速数据接入(High Speed Packet Access,简称“HSPA”)、微波接入全球互通(Worldwide Interoperability for Microwave Access,简称“WiMAX”)等等。
此后进入步骤102,处理器中的直接存储器访问(Direct Memory Access,简称“DMA”)将来自无线模块的数据写入存储器。
处理器可以是各式各样的,例如微控制单元(Micro Controller Unit,简称“MCU”)、中央处理器(Central Processing Unit,简称“CPU”)、数字信号处理器(Digital Signal Processor,简称“DSP”)等等。
本实施方式中,处理器可以包括DMA和内核,当然也可以有其它的部分,如IO(输入输出)端口等。
DMA是一种高速数据传输操作,是把输入输出信道上传输的信息直接送到存储器存入,或直接从存储器取出。
内核是处理器最重要的部分,实现逻辑运算和数据计算功能。
本发明的各实施方式中,存储器可以是各种类型的,例如随机存取存储器(Random Access Memory,简称“RAM”)、闪存(FLASH)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称“EPROM”)等。
本发明的各实施方式中,存储器并非指整个物理存储器,而是与DMA配合执行缓存功能的一块存贮区域。
此后进入步骤103,DMA判断是否满足预定条件,如果是则进入步骤104,否则等待直至预定条件满足。
本实施方式中,预定条件可以是以下之一:
存储器中的数据量达到预定门限。
存储器中有数据且定时器超时。
存储器中的数据量达到预定门限,或者,存储器中有数据且定时器超时。
被缓存的数据量达到一定门限时才以中断唤醒睡眠中的处理器内核,可以保证处理器每次有足够的数据可以处理,减少了等待时间,提高了处理效率。
在定时器超时时通过中断唤醒睡眠中的处理器内核,可以防止无线传输速率过低时延迟时间过长,保证已收到的数据可以被及时处理。可以理解,定时器可以是周期性的,也可以是在新收到数据时启动一个一次性的定时器。
在步骤104中,当满足预定条件时,DMA向处理器的内核发起中断。
如果处理器内核正处于睡眠状态,则DMA通过中断唤醒睡眠状态中的处理器内核。
睡眠状态也可以被称为低功耗状态,即处理器内核在睡眠状态下暂时停止工作,直到被唤醒。
如果DMA发起中断时,处理器因处理其它的任务而处于工作状态,则可以省去唤醒的步骤。
此后进入步骤105,处理器的内核读取存储器中的数据并进行处理。
处理器的内核处理完存储器中的数据后,进入睡眠状态。当然,处理器在处理完存储器中的数据后,如果有其它的任务要处理,也可以继续处理其它的任务,完成当前所有的任务后再进入睡眠状态。
处理器的内核处理完存储器中缓存的数据后,及时进入睡眠状态,直到DMA通过中断唤醒,可以大大减少处理器的能耗。
处理器的内核从存储器读取了数据后,将已读数据从存储器清除,或标志为已读,这样下次就不会重复读已读过的数据了。
由于处理器内核从存储器读取数据的速度要远远高于数据从无线模块传输给DMA的速度,因此,功耗节约成为可能。另外,当无线模块从无线网络上获取数据的速率比较低时,处理器会有更多的时间进行睡眠,功耗可以得到进一步节省。
DMA一直处于工作状态,处理器的内核大部分时间处于睡眠状态,因为内核是处理器中最主要的部分,功耗远大于DMA,所以整体上来说功耗被大大降低了。
本发明第二实施方式涉及一种无线数据发送方法。其流程如图2所示。
在步骤201中,处理器产生需要发送的数据。
此后进入步骤202,无线模块中的DMA将来自处理器的数据写入存储器。
本实施方式中,无线模块包括DMA和处理核心,处理核心用于无线数据的收发处理,至少包括射频处理,也可以包括基带处理。
处理器将数据输出给处理器后,如果没有其它的任务就可以进入睡眠状态。在DMA写数据的同时,如果没有其它的收发任务,无线模块中的处理核心可以进入睡眠状态。
此后进入步骤203,DMA判断预定条件是否满足,如果满足则进入步骤204,否则等待直至预定条件满足。
本实施方式中,预定条件可以是以下之一:
存储器中的数据量达到预定门限。
存储器中有数据且定时器超时。
存储器中的数据量达到预定门限,或者,存储器中有数据且定时器超时。
被缓存的数据量达到一定门限时才以中断唤醒睡眠中的无线模块处理核心,可以保证无线模块处理核心每次有足够的数据可以发送,减少了等待时间,提高了发送效率。
在定时器超时时通过中断唤醒睡眠中的无线模块处理核心,可以防止数据量很少时(例如只有一个确认包的情况)延迟时间过长,保证要发送的数据可以被及时处理。可以理解,定时器可以是周期性的,也可以是在有新的数据要发送时启动一个一次性的定时器。
在步骤204中,当满足预定条件时,DMA向无线模块的处理核心发起中断。
此后进入步骤205,无线模块的处理核心读取存储器中的数据并进行无线发送处理。数据发完后,如果没有其它的无线收发任务,无线模块的处理核心可以进入睡眠状态。
无线模块中的DMA持续处于工作状态,将来自处理器的待发送数据缓存到存储器,再通过中断唤醒睡眠中的无线模块处理核心进行集中处理。DMA只是无线模块中的一小部分电路,其功耗只占无线模块总功耗的一小部分,以DMA的持续工作,换取无线模块的主体部分和处理器的睡眠机会,在总体上可以大大降低系统功耗。
本发明的各方法实施方式均可以以软件、硬件、固件等方式实现。不管本发明是以软件、硬件、还是固件方式实现,指令代码都可以存储在任何类型的计算机可访问的存储器中(例如永久的或者可修改的,易失性的或者非易失性的,固态的或者非固态的,固定的或者可更换的介质等等)。同样,存储器可以例如是可编程阵列逻辑(Programmable Array Logic,简称“PAL”)、随机存取存储器(Random Access Memory,简称“RAM”)、可编程只读存储器(Programmable Read Only Memory,简称“PROM”)、只读存储器(Read-Only Memory,简称“ROM”)、电可擦除可编程只读存储器(Electrically Erasable Programmable ROM,简称“EEPROM”)、磁盘、光盘、数字通用光盘(Digital Versatile Disc,简称“DVD”)等等。
本发明第三实施方式涉及一种无线数据接收和发送系统,该系统的结构如图3所示。
该系统包括:无线模块、处理器和存储器。其中处理器中进一步包括DMA和内核,无线模块进一步包括DMA和处理核心。
存储器用于存贮数据。
在无线数据接收时:
处理器用于产生待发送的数据。
无线模块中的DMA用于将来自处理器的数据写入存储器,并当满足预定条件时,向无线模块的处理核心发起中断。
无线模块的处理核心用于读取存储器中的数据并进行无线发送处理。
在无线数据发时:
无线模块用于无线信号接收。
处理器中的DMA用于将来自无线模块的数据写入存储器,并在满足预定条件时向处理器的内核发起中断。
处理器的内核用于读取存储器中的数据并进行处理。
第一和第二实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第一和第二实施方式互相配合实施。第一和第二实施方式中提到的相关技术细节(如发送或接收时预定条件的设置,睡眠和唤醒的时机等)在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一和第二实施方式中。
本发明第四实施方式涉及一种无线数据接收方法,其流程如图4所示。
在步骤401中,无线模块从空中接口接收无线信号。
此后进入步骤402,缓存模块从无线模块读取该无线模块所接收到的数据,并缓存这些数据。缓存模块在硬件上可以用一个或多个芯片搭建,因为功能简单,所以这些芯片的复杂度远远低于处理器的复杂度,功耗也远低于处理器。
此后进入步骤403,缓存模块判断是否满足预定条件,如果满足就进入步骤404,否则等待直至预定条件满足。
本实施方式中,预定条件可以是以下之一:
缓存模块中的数据量达到预定门限。
缓存模块中有数据且定时器超时。
缓存模块中的数据量达到预定门限,或者,缓存模块中有数据且定时器超时。
被缓存的数据量达到一定门限时才以中断唤醒睡眠中的处理器内核,可以保证处理器每次有足够的数据可以处理,减少了等待时间,提高了处理效率。
在定时器超时时通过中断唤醒睡眠中的处理器内核,可以防止无线传输速率过低时延迟时间过长,保证已收到的数据可以被及时处理。可以理解,定时器可以是周期性的,也可以是在新收到数据时启动一个一次性的定时器。
在步骤404中,当满足预定条件时,缓存模块向处理器发起中断。
如果处理器正处于睡眠状态,则缓存模块通过中断唤醒睡眠状态中的处理器。
如果缓存模块发起中断时,处理器因处理其它的任务而处于工作状态,则可以省去唤醒的步骤。
此后进入步骤405,处理器从缓存模块读取数据并进行处理。
处理器处理完缓存模块中的数据后,进入睡眠状态。当然,处理器在处理完缓存模块中的数据后,如果有其它的任务要处理,也可以继续处理其它的任务,完成当前所有的任务后再进入睡眠状态。
处理器处理完缓存模块中缓存的数据后,及时进入睡眠状态,直到缓存模块通过中断唤醒,可以大大减少处理器的能耗。
处理器从缓存模块读取了数据后,缓存模块清除已被读取的数据。
通过一个低复杂度的硬件缓存芯片对无线模块所收到的数据进行缓存,再通过中断唤醒处理器对已缓存的数据进行集中处理,可以节省系统总体的功耗。
本发明第五实施方式涉及一种无线数据发送方法,其流程如图5所示。
在步骤501中,处理器产生待发送数据。
此后进入步骤502,缓存模块从处理器获取待发送的数据,并缓存这些数据。
此后进入步骤503,缓存模块判断是否满足预定条件,如果满足则进入步骤504,否则等待直至预定条件满足。
本实施方式中,预定条件可以是以下之一:
缓存模块中的数据量达到预定门限。
缓存模块中有数据且定时器超时。
缓存模块中的数据量达到预定门限,或者,缓存模块中有数据且定时器超时。
被缓存的数据量达到一定门限时才以中断唤醒睡眠中的无线模块,可以保证无线模块每次有足够的数据可以发送,减少了等待时间,提高了发送效率。
在定时器超时时通过中断唤醒睡眠中的无线模块,可以防止数据量很少时(例如只是一个确认包)延迟时间过长,保证要发送的数据可以被及时处理。可以理解,定时器可以是周期性的,也可以是在有新的数据要发送时启动一个一次性的定时器。
在步骤504中,当满足预定条件时,缓存模块向无线模块发起中断。
此后进入步骤505,无线模块从缓存模块读取数据,并进行发送处理。数据发完后,如果没有其它的无线收发任务,无线模块可以进入睡眠状态。
在处理器和无线模块之间增加一个低复杂度的硬件缓存模块,缓存待发送的数据,通过中断唤醒睡眠中的无线模块,集中发送已缓存的数据。因为缓存模块的功耗远低于处理器和无线模块,以缓存模块的持续工作换取处理器和无线模块睡眠的机会,可以大大节省无线数据发送过程中系统的总体功耗。
本发明第六实施方式涉及一种无线数据接收和发送系统。该系统的结构如图6所示,包括无线模块、缓存模块和处理器。
在接收过程中:
无线模块用于无线信号接收。
缓存模块用于从无线模块读取该无线模块所接收到的数据,并缓存这些数据,当满足预定条件时向处理器发起中断。
处理器用于从缓存模块读取数据并进行处理。
在发送过程中:
处理器用于产生待发送的数据。
缓存模块用于从处理器获取待发送的数据,并缓存这些数据,当满足预定条件时向无线模块发起中断。
无线模块用于从缓存模块读取数据,并进行发送处理。
第四和第五实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第四和第五实施方式互相配合实施。第四和第五实施方式中提到的相关技术细节(如发送或接收时预定条件的设置,睡眠和唤醒的时机等)在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第四和第五实施方式中。
虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。