一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于NB-IoT系统的低成本低功耗数据处理方法与流程

2022-02-22 22:23:08 来源:中国专利 TAG:
一种基于NB-IoT系统的低成本低功耗数据处理方法与流程

本发明属于物联网技术领域,涉及一种基于NB-IoT系统的低成本低功耗数据处理方法。

背景技术

NB-IoT(Narrow Band Internet of Things)是指窄带物联网技术。NB-IOT聚焦于低成本、低功耗、广覆盖(LPWA)、物联网(IoT)市场,是一种可在全球范围内广泛应用的新兴技术。NB-IoT技术具有覆盖更广、时延要求较低、同一小区内接入终端个数更多的特点,最为重要的是具有低功耗、低成本的优点。

NB-IoT的终端广泛应用于环境监测、烟感、远程抄表、农业、畜牧业等节能要求较高且使用数量巨大的行业领域,因此成本就成为NB-IoT终端能否更好推广普及的一个核心要素。超大规模的产量使得NB-IoT终端的竞争更加激烈,“价格战”将长期维持且愈演愈烈。

NB-IoT技术采用eDRX(Extended Disconinuous Reception,扩展非连续接收)以及PSM(Plower Save Mode,省电模式)等节能技术,使终端的电池寿命可以延长至5~10年。因此低功耗也是NB-IoT终端能否推广普及的一个核心要素。

目前传统的NB-IoT终端,数据包在NB-IoT芯片系统内传输时,都会在不同程度上存在数据拷贝的问题。目前业界常见的数据传输方案,流程如图1所示:

步骤1,AP收到用户数据,根据数据长度申请IP包的内存空间,经过TCP/IP处理,完整TCP/IP头构造和用户数据填充,组成IP数据。这一步骤中用户数据会进行第一次内存拷贝。

步骤2,IP数据地址从AP传到CP后,通常NAS(非接入层,Non-Access Stratum)会将数据拷贝到CP的缓存区中,然后将数据地址发送给PDCP。有些业界方案中,这一步骤是从AP直接传输到PDCP的缓存区里。这一步骤中会进行第二次内存拷贝。

步骤3,预申请PDCP数据的长度,对IP数据进行头压缩、加密后,添加PDCP头信息,将处理后数据填充到PDCP数据中,然后将PDCP数据的地址发送给RLC。这一步骤中会进行第三次内存拷贝。

步骤4,RLC根据上行授权的大小申请RLC MAC的数据的内存空间,填充RLC头信息,根据分段信息完成RLC数据的组包处理,将RLC数据的地址发送给MAC。这一步骤中会进行第四次内存拷贝。

步骤5,MAC将MAC头填写到预留的空间内,完成MAC数据的组包;然后将MAC数据地址发送给基带(Baseband)侧PHY进行处理。

步骤6,PHY收到MAC数据后,将数据到拷贝物理层的HRAQ buffer中。这一步骤中会进行第五次内存拷贝。

步骤7,基带RF对数据进行编码、加扰、调制、映射等操作后,将基带信号发送出去。

通过上述步骤的简单介绍,能清楚的看到传统的数据处理方案中,一个数据的发送过程中共计需要进行5次内存拷贝。数据拷贝会频繁进行内存申请、拷贝、释放,既增加了芯片内存需求,还增加了芯片的处理负载,增加了成本和功耗。



技术实现要素:

为解决上述问题,本发明公开了一种基于NB-IoT系统的低成本低功耗数据处理方法和装置。采用本发明方案,从NB-IoT芯片接收外设数据到NB-IoT的PHY(Physical,物理层)将数据加扰发送出去的过程中,不存在数据的多次内存拷贝及数据副本,真正意义上实现数据包在NB-IoT芯片系统内传输时的零拷贝,既减少系统内存峰值大小、又减少了芯片处理负载。

为了达到上述目的,本发明提供如下技术方案:

一种基于NB-IoT系统的低功耗数据处理方法,包括如下步骤:

步骤1,外设接收到用户数据后,根据数据空间预处理方法,申请足够大小的一块内存用来存放用户数据,将数据地址传输给AP;

步骤2,AP接收到数据后,在紧挨着用户数据的前面添加TCP/IP头,完成IP包组包,然后将存放数据的内存起始地址、偏移量信息传输给通信处理器CP侧的非接入层NAS,随后通过以下方式中的一种传输给PDCP:

NAS透传数据的内存起始地址和偏移量信息给PDCP;

或AP直接发送数据的内存起始地址、偏移量信息传输给CP侧的PDCP;

步骤3,PDCP收到数据的起始地址和偏移量之后,紧挨着IP数据前面添加PDCP头信息后,进行加密,加密完成后,更新偏移量;将数据的内存起始地址和偏移量发送至RLC;

步骤4,RLC收到PDCP发送的数据内存起始地址和偏移量,根据上行授权的大小,对待发送的PDCP数据进行预分段和预组包处理,生成RLC数据描述符,并在RLC数据描述符的前面预留MAC数据描述符空间;然后将RLC数据描述符发送给MAC;

步骤5,MAC收到RLC数据描述符信息后,在RLC数据描述符的前面预留空间里添加MAC头描述符,组成MAC PDU描述符,然后将MAC PDU描述符发送给PHY;

步骤6,PHY收到MAC PDU描述符后,按照先横向处理再纵向处理的处理原则,还原MAC PDU;

步骤7,RF将待发送的数据经过处理后发送出去。

进一步的,所述步骤1中,存放用户数据的内存中,预留空间放在前面,用户数据放在内存靠后的位置。

进一步的,所述步骤1中,数据空间预处理方法如下:当有长度L1的用户数据发送时,先判断是否需要经过COAP协议处理,如果需要,根据COAP消息格式,预先计算经过COAP处理后需要增加的长度L2;如果不需要COAP协议处理,L2长度为0;然后继续进行TCP/IP预处理,结合IP协议版本、协议类型、包含L1 L2的数据长度等,预算经过TCP/IP处理后需要额外增加的数据长度L3;然后继续进行PDCP预处理,结合PDCP实体的配置,预算长度为L1 L2 L3的数据经过PDCP完成组包、加密、完保、ROHC头压缩后需要增加的额外长度L4;再加上预留空间长度L5;最终计算出来传输用户数据需要申请的内存空间长度为:L=L1 L2 L3 L4 L5;根据上述信息预算出用户数据在内存空间的具体位置。

进一步的,所述步骤3中,PDCP收到数据的起始地址和偏移量之后先完成IP头压缩。

进一步的,所述步骤4中,RLC PDU描述符生成过程包括:RLC根据上行授权的长度,生成RLC头部单元、控制单元、可携带的RLC SDU长度;然后再根据可携带的RLC SDU长度,从PDCP数据中获取待发送数据的起始地址,和待发送的数据长度;然后生成RLC PDU描述符。

进一步的,所述步骤6中先横向处理再纵向处理的处理原则为:根据MAC PDU描述符里的MAC头描述符和RLC PDU描述符依次还原MAC头信息、RLC头信息、RLC SDU的数据长度、数据地址信息;如果有多个RLC PDU描述符,依次重复执行还原RLC PDU的头部信元、RLC SDU的长度、SDU数据的搬移过程;然后在HARQ buffer的空间内根据MAC头信息、RLC头信息、数据长度、数据指针信息,先完成RLC SDU、RLC PDU数据的组包,然后再完成MAC PDU数据的组包,生成最终的待发送的MAC PDU数据。

进一步的,所述步骤7中处理包括:编码、加扰、调制、映射。

与现有技术相比,本发明具有如下优点和有益效果:

1.本发明在处理用户数据时,只需要一次内存申请和一次用户数据的拷贝处理,明显减少了内存拷贝的处理次数,让用户数据在处理过程不存在因为相互拷贝而产生冗余的数据副本,大大降低了芯片内存的峰值,减少了芯片的内存需求。因而可以在芯片选型时,选择较小处理能力的CPU,降低芯片成本。

2.由于在大量数据传输中会明显减少了内存申请、内存拷贝等操作,降低了CPU的工作负载,进而降低了系统功耗。

3.本发明方案通过共享内存(share memory),使得AP(应用处理器,applicationprocessor)和CP(通信处理器,communication processor)无论是否共核,均能申请、操作、释放该共享内存。采用本发明的数据处理方法,可以将数据从AP无副本地传输到CP,然后由CP发送出去。

附图说明

图1为NB-IoT现有数据处理方法流程图。

图2为本发明的基于NB-IoT系统的低成本低功耗数据处理方法流程图。

图3为本发明中按照数据空间预处理方法申请的内存空间示意图。

图4为本发明中数据空间预处理方法示意图。

图5为本发明中MAC数据描述符和RLC数据描述符示意图。

图6为本发明中RLC数据描述符的生成示意图。

图7为本发明中MAC数据描述符的生成示意图。

图8为本发明中PHY根据MAC数据描述符还原数据的示意图。

具体实施方式

以下将结合具体实施例对本发明提供的技术方案进行详细说明,应理解下述具体实施方式仅用于说明本发明而不用于限制本发明的范围。另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本发明的数据包以常见的IP数据为例进行说明,但不限于IP类型的数据(Non-IP数据也可适用)。本发明提供的基于NB-IoT系统的低功耗数据处理方法,其流程如图2所示,包括如下步骤:

步骤1,外设接收到用户数据后,调用AP(应用处理器,application processor)提供的接口函数,根据数据空间预处理方法,结合用户数据长度、预留IP长度、预留PDCP长度、预留处理空间长度等,申请足够大小的一块内存用来存放用户数据。这里需要注意用户数据的在内存空间中的存放位置是根据空间预处理方法给出的位置来存放,并将预留空间放在前面,将用户数据放在内存靠后的位置,将数据地址传输给AP。内存空间结构如图3所示。

数据空间预处理方法:从收到用户数据后,为了防止用户数据多余拷贝,需要通过空间预处理方法来评估出传输用户需要申请的内存空间大小、数据在内存空间的存放位置等。其原理如图4所示,当有长度L1的用户数据发送时,先判断是否需要经过COAP协议处理(ConstrainedApplication Protocol,紧凑型应用协议,物联网世界的类web协议),如果需要,根据COAP消息格式,预先计算经过COAP处理后需要增加的长度L2;如果不需要COAP协议处理,L2长度为0。然后继续进行TCP/IP预处理,结合IP协议版本、协议类型、数据长度(L1 L2)等,预算经过TCP/IP处理后需要额外增加的数据长度L3。然后继续进行PDCP预处理,结合PDCP实体的配置,预算数据(长度为L1 L2 L3)经过PDCP完成组包、加密、完保、ROHC头压缩后需要增加的额外长度L4。再加上一点预留空间长度L5。最终计算出来传输用户数据需要申请的内存空间长度为:L=L1 L2 L3 L4 L5。并根据上述信息预算出用户数据在内存空间的具体位置,以确保后面的数据处理过程中用户数据位置是固定的,不用拷贝和移动。

步骤2,AP接收到数据后,在紧挨着用户数据的前面添加TCP/IP头,完成IP包组包,然后将存放数据的内存起始地址、偏移量等信息传输给CP(通信处理器,communication processor)侧的NAS(非接入层,Non-Access Stratum),NAS透传数据的内存起始地址和偏移量信息给PDCP(分组数据汇聚协议Packet Data Convergence Protocol),或AP直接发送数据的内存起始地址、偏移量等信息传输给CP侧的PDCP。

步骤3,PDCP收到数据的起始地址和偏移量之后,完成IP头压缩(可选,IP头压缩能够减少IP包的大小,从而可以少传输一些IP头信息,多传一些用户有效数据。),然后紧挨着IP数据前面添加PDCP头信息,然后进行加密,加密完成后,更新偏移量。将数据的内存起始地址和偏移量发送无线链路控制层RLC(Radio Link Control)。

后续步骤中将会生成数据描述符,主要用到的描述符有MAC PDU描述符、RLC PDU描述符、RLC SDU描述符。RLC SDU描述符由RLC SDU长度、RLC SDU(address)、RLC NEXT SDU NODE组成,RLC SDU长度表示本次能够发送的PDCP数据长度,RLC SDU(address)是指向本次RLC SDU能够发送的PDCP数据的地址,RLC NEXT SDU NODE指向下一个RLC SDU描述符。RLC PDU描述符由RLC头长度、RLC头内容、RLC DATANODE、RLC NEXT PDU NODE组成,RLC DATANODE指向本RLC PDU描述符中的第一个RLC SDU描述符,RLC NEXT PDU NODE指向下一个RLC PDU描述符。MAC PDU描述符由MAC头长度、MAC头内容、MAC数据组成,MAC数据即指后面的RLC PDU的描述符信息。其结构设计原理如图5所示。数据处理过程中,需要先生成RLC PDU(Protocol Data Unit,协议数据单元)描述符,然后再继续处理,生成MAC PDU描述符。具体的:

步骤4,RLC收到PDCP发送的数据内存起始地址和偏移量,如图3所示;获取到PDCP PDU信息,如图5所示,根据网络分配的上行授权的大小,对待发送的PDCP数据进行预分段和预组包处理,先生成RLC PDU描述符,并在RLC PDU描述符的前面预留存放MAC数据描述符的MAC头长度和MAC头内容的空间。RLC PDU描述符包括了RLC的头信息、RLC SDU(无线链路控制层的业务数据单元,Radio LinkControl Service Data Unit)长度、RLC SDU数据地址等信息。然后将RLC PDU描述符发送给MAC。当有多个通道通道的时候,上行授权也足够的话,就会有多个RLC PDU(MAC SDU)同时放在一个MAC PDU中发送,这表示同一个逻辑通道上要发送的PDCP数据块有多个时,为了避免拷贝,通过RLC SDU的描述符将要发送的PDCP的数据关联起来。图5中即展示了一个1个MAC PDU中有2个RLC PDU的情况。

RLC PDU描述符生成过程如图6所示,RLC根据上行授权的长度,RLC需要携带RLC头信息,待发送的PDCP数据的长度,生成RLC头部长度、RLC头部内容,然后再根据可携带的RLC SDU长度,生成RLC SDU描述符,RLC SDU描述符中包含RLC SDU长度、RLC SDU DATA地址和RLC NEXT SDU NODE,RLC SDU长度是发送的PDCP数据的长度或RLC授权的长度(PDCP数据长度>RLC授权长度时,先发送RLC授权长度的数据),RLC SDU地址是待发的PDCP数据的地址。如果有多个PDCPPDU待发且上行授权足够,会继续生成RLC SDU描述符,将RLC NEXT SDU NODE指向后面生成的RLC SDU描述符。直到PDCP PDU发送完成或上行授权用完为止。这样就完成了RLC PDU描述符的生成。注意存放RLC PDU描述符的前面需要预留MAC描述符空间。图6中,PDCPPDU长度比较长,之前授权只发送了address1到address2之间的数据。这次发送的时候,从address2开始发送,因为授权长度只有RLC SDU长度2的大小,还是无法将剩余的PDCP全部发送,所以本次只能先发送address2到address3之间的数据。

步骤5,MAC收到RLC PDU描述符信息后,在RLC PDU描述符的前面预留空间里添加MAC头描述符,组成MAC PDU描述符。然后将MAC PDU描述符(主要包含了MAC头描述符和RLC PDU描述符)发送给PHY。

MAC PDU描述符生成过程如图7所示,根据MAC实体配置信息,将MAC头信息填充到RLC PDU描述前面的预留空间内,生成MAC PDU描述符。

步骤6,PHY收到MAC PDU描述符后,按照先横向处理再纵向处理的处理原则,还原MAC PDU,处理原理如图8所示。具体的,根据MAC PDU描述符里的MAC头描述符和RLC PDU描述符依次还原MAC头信息、RLC头信息、RLC SDU的数据长度、SDU数据地址等信息,如果有多个RLC PDU描述符,会依次重复执行还原RLC PDU的头部信元、RLC SDU的长度、SDU数据地址的过程。然后在HARQ buffer的空间内根据MAC头信息、RLC头信息、数据长度、数据指针等信息,先完成RLC SDU、RLC PDU数据的组包,然后再完成MAC PDU数据的组包,生成最终的待发送的MAC PDU数据。

步骤7,RF将待发送的数据经过编码、加扰、调制、映射等发送出去。

上述步骤中通过引入数据空间预处理和数据描述符信息,从AP收到用户数据一直到RF将数据发送出去,整个过程中仅使用最初申请的同一块内存,包括IP组包、头压缩、加密、拆分组包等所有操作均在相同的内存中进行,避免频繁申请和大量的数据拷贝。既降低了CPU的处理负载,又减少了芯片内存的需求。由上面的实施示例不难看出本发明中只需要一次内存申请和一次用户数据的拷贝处理,明显减少了内存拷贝的处理次数,降低CPU处理的负载;同时因为不存在数据副本,还大大降低了芯片内存的峰值,减少了芯片的内存需求。因此本方案和现有的方案比,除了明显的成本优势外,还有明显的功耗优势。

本发明方案所公开的技术手段不仅限于上述实施方式所公开的技术手段,还包括由以上技术特征任意组合所组成的技术方案。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献