一种节省内存的方法及装置制造方法

文档序号:7771747阅读:105来源:国知局
一种节省内存的方法及装置制造方法
【专利摘要】本发明适用于蓝牙【技术领域】,提供了一种节省内存的方法及装置,所述方法包括下述步骤:当传输层收到数据包且能够发送时,传输层将数据包读取至电梯式缓冲包中,然后上传;当数据包上传至Profile层时,产生响应包并将相应包直接写入到电梯式缓冲包;电梯式缓冲包下降,并下传至传输层进行发送。本发明通过将多个缓冲块精简到一个缓冲块,对一个缓冲块采用升降式电梯式缓冲的方式进行数据的发送,从而节省内存降低功耗和成本。
【专利说明】一种节省内存的方法及装置

【技术领域】
[0001]本发明属于蓝牙【技术领域】,尤其涉及一种节省内存的方法及装置。

【背景技术】
[0002]蓝牙技术已有十多年的历史,本身就以绿色节能、低成本为设计理念,大量用于手机、无线耳机等领域。近来蓝牙协议4.0的发布,其中低功耗规范试图将蓝牙推广至更广泛的低成本应用领域,如仪表监控等。蓝牙设备的产品在其它质量不变的情况下,减小内存的占用无疑可降低产品成本,以及降低产品的功耗。同时蓝牙4.0规范中低功耗的出现,给内存占用更少的蓝牙库带来更多商机。为了降低蓝牙协议栈的内存,从头对蓝牙协议栈进行全新的实现的人并不多,通常只是在原有的协议上进行修改,这样可降低开发风险。然而对协议的修改并不能有效的降低蓝牙产品的成本和功耗。


【发明内容】

[0003]本发明实施例的目的在于提供一种节省内存的方法及装置,旨在提供一种节省内存的方法,通过将多个缓冲块精简到一个缓冲块,对一个缓冲块采用升降式电梯式缓冲的方式进行数据的发送,从而节省内存降低功耗和成本。
[0004]本发明实施例是这样实现的,一种节省内存的方法,所述方法包括下述步骤:
[0005]当传输层收到数据包且能够发送时,传输层将数据包读取至电梯式缓冲包中,然后上传;
[0006]当数据包上传至Profile层时,产生响应包并将相应包直接写入到电梯式缓冲包;
[0007]电梯式缓冲包下降,并下传至传输层进行发送。
[0008]进一步的,所述当传输层收到数据包且能够发送时,传输层将数据包读取至电梯式缓冲包中,然后上传的步骤包括:
[0009]当传输层收到数据包时,判断是否能够发送数据;
[0010]当传输层收到数据包且能够发送时,传输层将数据包读取至电梯式缓冲包中,然后上传。
[0011]进一步的,所述当数据包上传至Profile层时,产生响应包并将相应包直接写入到电梯式缓冲包的具体步骤包括:
[0012]当数据包上传至Profile层时,Profile层取出数据并进行分析;
[0013]Profile层产生响应包并将相应包直接写入到电梯式缓冲包中。
[0014]进一步的,所述电梯式缓冲包下降,并下传至传输层进行发送的具体步骤包括:
[0015]电梯式缓冲包下降,并在下降过程中为缓冲包加上包头;
[0016]缓冲包下传至传输层并进行发送。
[0017]本发明实施例的另一目的在于提供一种节省内存的装置,所述装置包括:
[0018]数据接收单元,用于当传输层收到数据包且能够发送时,传输层将数据包读取至电梯式缓冲包中,然后上传;
[0019]数据响应单元,用于当数据包上传至Profile层时,产生响应包并将相应包直接写入到电梯式缓冲包;
[0020]数据发送单元,用于电梯式缓冲包下降,并下传至传输层进行发送。
[0021]进一步的,所述数据接收单元包括:
[0022]判断单元,用于当传输层收到数据包时,判断是否能够发送数据;
[0023]上传单元,用于当传输层收到数据包且能够发送时,传输层将数据包读取至电梯式缓冲包中,然后上传。
[0024]进一步的,所述数据响应单元包括:
[0025]分析单元,用于当数据包上传至Profile层时,Profile层取出数据并进行分析;
[0026]写入单元,用于Profile层产生响应包并将相应包直接写入到电梯式缓冲包中。
[0027]进一步的,所述数据发送单元包括:
[0028]下降单元,用于电梯式缓冲包下降,并在下降过程中为缓冲包加上包头;
[0029]发送单元,用于缓冲包下传至传输层并进行发送。
[0030]本发明实施例通过一种节省内存的方法及装置,采用升降式电梯缓冲,通过升降式电梯缓冲的方式实现只采用一个缓冲块来进行数据的发送,在升降式电梯上升时,各层取得所需的信息最后到达Profile层,Profile层取得数据并写入响应数据后下降至传输层进行发送,通过采用升降式电梯缓冲的方式只需一个缓冲块即可进行数据的发送,显著地节省了内存,同时由于采用一个缓冲块,在各层进行处理时可以有效的降低各层的函数调用,最终实现降低功耗提升整体性能。

【专利附图】

【附图说明】
[0031]图1是本发明第一实施例提供的一种节省内存的方法的实现流程图;
[0032]图2是本发明第二实施例提供的一种节省内存的方法的实现流程图;
[0033]图3是本发明第三实施例提供的一种节省内存的装置的结构图;
[0034]图4是本发明第四实施例提供的一种节省内存的装置的结构图;
[0035]图5是本发明第四实施例提供的数据上传示意图;以及
[0036]图6是本发明第四实施例提供的数据下传示意图。

【具体实施方式】
[0037]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0038]以下结合具体实施例对本发明的具体实现进行详细描述:
[0039]实施例一:
[0040]图1示出了本发明第一实施例提供的一种节省内存的方法的实现流程,详述如下:
[0041]S101,当传输层收到数据包且能够发送时,传输层将数据包读取至电梯式缓冲包中,然后上传。
[0042]传输层接收到一个数据包,当传输层能够进行发送时,传输层将接收到的数据包读取至升降式电梯的电梯缓冲包中,然后升降式电梯开始上升,上传至蓝牙传输协议的顶层。
[0043]S102,当数据包上传至Profile层时,产生响应包并将相应包直接写入到电梯式缓冲包。
[0044]当数据包上传至Profile层时,Profile层是蓝牙协议的顶层,此时Profile层读取数据包中的信息,Profile层产生响应并在电梯式缓冲包数据中写入要发送的数据。
[0045]S103,电梯式缓冲包下降,并下传至传输层进行发送。
[0046]电梯式缓冲包开始下降,并最终下降至传输层进行发送。
[0047]本发明实施例通过上述方式,一种节省内存的方法,对一个缓冲块采用升降式电梯式缓冲的方式接收数据,当接收到数据以后能够发送时将数据传输至顶层,顶层产生响应并写入要发送的数据,再下降至传输层进行发送,实现只通过一个缓冲块发送数据,从而节省内存降低功耗和成本。
[0048]实施例二:
[0049]图2示出了本发明第二实施例提供的一种节省内存的方法的实现流程,详述如下:
[0050]S201,当传输层收到数据包时,判断是否能够发送数据。
[0051]当传输层接收到一个数据包以后,判断此时传输层是否能够发送数据,由于在采用电梯式缓冲的方式进行数据发送时,升降式电梯只有一个缓冲块,还需考虑升降式电梯的运行时机,如收到数据时不能立即上升,要判断是否可以发送,如果不能发送则升降式电梯搬运的数据就没有了意义,同时对于流控和分片还需判断是否可以进行不间断的发送,最终判断得出是否能够进行发送数据。
[0052]S202,当传输层收到数据包且能够发送时,传输层将数据包读取至电梯式缓冲包中,然后上传。
[0053]当传输层收到的数据包判断结果为能够进行发送时,传输层将数据包读取只电梯式缓冲包中,升降式电梯开始上升。
[0054]S203,当数据包上传至Profile层时,Profile层取出数据并进行分析。
[0055]数据包开始上传,数据包首先到达HCI (Host Contoroller Interface)主机控制器接口层,数据包在上传过程中需要在各层读取出数据包的包头,其中在HCI层取出电梯式缓冲数据包中数据包的H头,根据H头得出发送到哪一个L2CAP (Logical Link Controland Adaptat1n Protocol)逻辑链路控制及适配协议层,之后发送到L2CAP, L2CAP取出数据包的L头再得出放到哪一个Profile, Profile为蓝牙的顶层,当数据包上传至Profile层时,P1fiIe层取出数据包中的相关数据,这里以AVDTP信令与相应为例进行说明,AVDTP取出相关数据,分析得到是远端设备发来的一个信令。
[0056]S204, Profile层产生响应包并将相应包直接写入到电梯式缓冲包中。
[0057]当Profile层根据分析得出是远端发送来的一个信令,此时产生一个响应包,Profile层将相应包写入到电梯式缓冲数据包中。
[0058]S205,电梯式缓冲包下降,并在下降过程中为缓冲包加上包头。
[0059]当电梯式缓冲数据包中写入相应数据,AVDTP子函数退出,此时电梯开始下降,首先下传至L2CAP层,L2CAP为数据包加上头L,再下传至HCI层,HCI为数据包加上头H,电梯继续下降进行下传。
[0060]S206,缓冲包下传至传输层并进行发送。
[0061]缓冲数据包下传至传输层以后,自动进行发送,具体的可以通过UART (UniversalAsynchronous Receiver/Transmitter)即通用异步收发传输器进行发送。
[0062]其中需要说明的是,当未接收数据却需要发送数据时,由发送层向下层发送请求,下层最终将请求传输至传输层,传输层可以直接执行时即按照普通收发的方式进行发送,当传输层不能立即进行发送时,将请求标记起来,直至请求结束后解除请求的未决状态。
[0063]本发明实施例通过上述方式,一种节省内存的方法,采用升降式电梯缓冲,通过升降式电梯缓冲的方式实现只采用一个缓冲块来进行数据的发送,在升降式电梯上升时,各层取得所需的信息最后到达Profile层,Profile层取得数据并写入响应数据后下降至传输层进行发送,通过采用升降式电梯缓冲的方式只需一个缓冲块即可进行数据的发送,显著地节省了内存,同时由于采用一个缓冲块,在各层进行处理时可以有效的降低各层的函数调用,最终实现降低功耗提升整体性能。
[0064]实施例三:
[0065]图3示出了本发明第三实施例提供的一种节省内存的装置的结构图,为了便于说明,仅不出了与本发明实施例相关的部分。
[0066]数据接收单元31,用于当传输层收到数据包且能够发送时,传输层将数据包读取至电梯式缓冲包中,然后上传。
[0067]数据接收单元用于当传输层接收到一个数据包,当传输层能够进行发送时,传输层将接收到的数据包读取至升降式电梯的电梯缓冲包中,然后升降式电梯开始上升,上传至蓝牙传输协议的顶层。
[0068]数据响应单元32,用于当数据包上传至Profile层时,产生响应包并将相应包直接写入到电梯式缓冲包。
[0069]数据响应单元用于当数据包上传至Profile层时,Profile层是蓝牙协议的顶层,此时Profile层读取数据包中的信息,Profile层产生响应并在电梯式缓冲包数据中写入要发送的数据。
[0070]数据发送单元33,用于电梯式缓冲包下降,并下传至传输层进行发送。
[0071]数据发送单元用于当电梯式缓冲包开始下降,并最终下降至传输层进行发送。
[0072]本发明实施例通过上述方式,一种节省内存的装置,对一个缓冲块采用升降式电梯式缓冲的方式接收数据,当接收到数据以后能够发送时将数据传输至顶层,顶层产生响应并写入要发送的数据,再下降至传输层进行发送,实现只通过一个缓冲块发送数据,从而节省内存降低功耗和成本。
[0073]实施例四:
[0074]图4示出了本发明第四实施例提供的一种节省内存的装置的结构图,为了便于说明,仅不出了与本发明实施例相关的部分。
[0075]判断单元41,用于当传输层收到数据包时,判断是否能够发送数据。
[0076]判断单元判断当传输层接收到一个数据包以后,此时传输层是否能够发送数据,升降式电梯只有一个缓冲块,还需考虑升降式电梯的运行时机,如收到数据时不能立即上升,要判断是否可以发送,,同时对于流控和分片还需判断是否可以进行不间断的发送,最终判断得出是否能够进行发送数据。
[0077]上传单元42,用于当传输层收到数据包且能够发送时,传输层将数据包读取至电梯式缓冲包中,然后上传。
[0078]上传单元用于当传输层收到的数据包判断结果为能够进行发送时,传输层将数据包读取只电梯式缓冲包中,升降式电梯开始上升。
[0079]分析单元43,用于当数据包上传至Profile层时,Profile层取出数据并进行分析。
[0080]分析单元用于对数据包中的数据进行分析,数据包开始上传,数据包上传的示意图如图5所述,数据包中的数据,具体可以为数据A首先到达HCI (Host ContorollerInterface)主机控制器接口层,在HCI层取出电梯式缓冲数据包中数据包的H头,根据H头得出发送到哪一个L2CAP(Logical Link Control and Adaptat1n Protocol)逻辑链路控制及适配协议层,之后发送到L2CAP,L2CAP取出数据包的L头再得出放到哪一个Profile,Profile为蓝牙的顶层,当数据包上传至Profile层时,Profile层取出数据包中的相关数据,这里以AVDTP信令与相应为例进行说明,AVDTP取出相关数据,分析得到是远端设备发来的一个信令。
[0081]写入单元44,用于Profile层产生响应包并将相应包直接写入到电梯式缓冲包中。
[0082]写入单元用于当Profile层根据分析得出是远端发送来的一个信令,此时产生一个响应包,Profile层将相应包写入到电梯式缓冲数据包中。
[0083]下降单元45,用于电梯式缓冲包下降,并在下降过程中为缓冲包加上包头。
[0084]下降单元用于当电梯式缓冲数据包中写入相应数据,AVDTP子函数退出,此时电梯开始下降,下降的示意图如图6所示,首先下传至L2CAP层,L2CAP为数据包加上头L,再下传至HCI层,HCI为数据包加上头H,电梯继续下降进行下传。
[0085]发送单元46,用于缓冲包下传至传输层并进行发送。
[0086]缓冲数据包下传至传输层以后,自动进行发送,具体的可以通过UART (UniversalAsynchronous Receiver/Transmitter)即通用异步收发传输器进行发送。
[0087]本发明实施例通过上述方式,一种节省内存的装置,采用升降式电梯缓冲,通过升降式电梯缓冲的方式实现只采用一个缓冲块来进行数据的发送,在升降式电梯上升时,各层取得所需的信息最后到达Profile层,Profile层取得数据并写入响应数据后下降至传输层进行发送,通过采用升降式电梯缓冲的方式只需一个缓冲块即可进行数据的发送,显著地节省了内存,同时由于采用一个缓冲块,在各层进行处理时分别是一层的子函数的调用,这样可以有效的降低各层的函数调用,同时由于只在能够发送的时候才接收数据,充分降低了暂存状态的内存开销,最终实现降低功耗提升整体性能。
[0088]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,所述的存储介质,如R0M/RAM、磁盘、光盘等。
[0089]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种节省内存的方法,其特征在于,所述方法包括下述步骤: 当传输层收到数据包且能够发送时,传输层将数据包读取至电梯式缓冲包中,然后上传; 当数据包上传至Profile层时,产生响应包并将相应包直接写入到电梯式缓冲包; 电梯式缓冲包下降,并下传至传输层进行发送。
2.如权利要求1所述的方法,其特征在于,所述当传输层收到数据包且能够发送时,传输层将数据包读取至电梯式缓冲包中,然后上传的步骤包括: 当传输层收到数据包时,判断是否能够发送数据; 当传输层收到数据包且能够发送时,传输层将数据包读取至电梯式缓冲包中,然后上传。
3.如权利要求1所述的方法,其特征在于,所述当数据包上传至Profile层时,产生响应包并将相应包直接写入到电梯式缓冲包的具体步骤包括: 当数据包上传至Profile层时,Profile层取出数据并进行分析; Profile层产生响应包并将相应包直接写入到电梯式缓冲包中。
4.如权利要求1所述的方法,其特征在于,所述电梯式缓冲包下降,并下传至传输层进行发送的具体步骤包括: 电梯式缓冲包下降,并在下降过程中为缓冲包加上包头; 缓冲包下传至传输层并进行发送。
5.一种节省内存的装置,其特征在于,所述装置包括: 数据接收单元,用于当传输层收到数据包且能够发送时,传输层将数据包读取至电梯式缓冲包中,然后上传; 数据响应单元,用于当数据包上传至Profile层时,产生响应包并将相应包直接写入到电梯式缓冲包; 数据发送单元,用于电梯式缓冲包下降,并下传至传输层进行发送。
6.如权利要求5所述的装置,其特征在于,所述数据接收单元包括: 判断单元,用于当传输层收到数据包时,判断是否能够发送数据; 上传单元,用于当传输层收到数据包且能够发送时,传输层将数据包读取至电梯式缓冲包中,然后上传。
7.如权利要求5所述的装置,其特征在于,所述数据响应单元包括: 分析单元,用于当数据包上传至Profile层时,Profile层取出数据并进行分析; 写入单元,用于Profile层产生响应包并将相应包直接写入到电梯式缓冲包中。
8.如权利要求5所述的装置,其特征在于,所述数据发送单元包括: 下降单元,用于电梯式缓冲包下降,并在下降过程中为缓冲包加上包头; 发送单元,用于缓冲包下传至传输层并进行发送。
【文档编号】H04L29/08GK104519074SQ201310444949
【公开日】2015年4月15日 申请日期:2013年9月26日 优先权日:2013年9月26日
【发明者】李晓辉, 胡胜发 申请人:安凯(广州)微电子技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1