本申请涉及数据传输技术领域,具体而言,涉及一种基于数据单元的lorawan网关节点数据交互方法。
背景技术:
lorawan是为lora远距离通信网络设计的一套通讯协议和系统架构。lora通信系统通常包含终端、基站、网络服务器、应用服务器这四个部分。基站和终端之间采用星型网络拓扑,由于lora的长距离特性,它们之间得以使用单跳传输。终端节点可以同时发给多个基站,基站则对网络服务器和终端之间的lorawan协议数据做转发处理,将lorawan数据分别承载在了lora射频传输和tcp/ip上。lora自组网是基于lora/lorawan技术的无线接入产品,在具体应用时,需要对lora终端节点进行鉴权、连接管理、以及对lora网关进行配置,也需要对数据进行加密和解密。但是,目前终端节点和网关进行数据交互时多种传感器的数据采用非特定格式组合,不同的数据类型及数据精度导致的数据包结构混乱而复杂,不便解译。所以需要提供一种方案以优化数据结构,减少传输包大小并保证数据完整性,使数据传输与解析更加稳定,从而实现降低传输功耗。
技术实现要素:
本申请的目的在于提供一种基于数据单元的lorawan网关节点数据交互方法,用以实现减少传输包大小并保证数据完整性,使数据传输与解析更加稳定,从而实现降低传输功耗的技术效果。
本申请实施例提供了一种基于数据单元的lorawan网关节点数据交互方法,包括第一终端节点根据传感器的第一通道号、数据长度、第一数据类型和待传输的第一数据构建上行数据单元;其中,所述上行数据单元的结构为“第一通道号+数据长度+第一数据类型+第一数据”;
所述第一终端节点对所述上行数据单元添加头尾验证后进行base64编码获得对应的第一数据包,并通过外层lorawan协议将所述第一数据包发送给网关;
所述网关对所述第一数据包进行base64解码后进行头尾验证;
若头尾验证通过,则所述网关根据所述第一数据向对应的第二终端节点发送控制指令;否则丢弃所述第一数据。
进一步地,所述网关根据所述第一数据向对应的第二终端节点发送控制指令的步骤包括:
获取第二终端节点的第二通道号、第二数据类型和待传输的第二数据;
根据所述第二通道号、所述第二数据类型和所述第二数据构建下行数据单元;所述下行数据单元的结构为“第二通道号+第二数据类型+第二数据”;
对所述下行数据单元添加头尾验证后进行base64编码获得控制指令对应的第二数据包,并通过外层lorawan协议将所述第二数据包发送给第二终端节点。
进一步地,所述第二通道号与所述第二数据类型占用一个固定字节。
进一步地,所述方法还包括:若所述数据单元为多个,则将所述数据单元进行追加后再添加头尾验证,进行base64编码。
进一步地,所述上行数据单元中所述第一通道号和数据长度占用一个固定字节;所述第一数据类型占用一个固定字节。
进一步地,所述方法还包括:根据数据类型构建通道数据类型表;根据所述通道数据类型表对数据类型进行转换;
所述通道数据类型表包括通用通道数据类型表和专用通道数据类型表;所述通用通道数据类型表包括终端节点的通道类型、数据类型号、数据类型号对应的转换值、数据分辨率、数据大小;所述专用通道数据类型表包括传感器采集周期和终端节点相应时间的通道类型、数据类型号、数据类型号对应的转换值、数据分辨率、数据大小。
进一步地,所述通道号的转换值为16进制转换值。
本申请能够实现的有益效果是:本申请针对lorawan数据帧中的payload部分的数据结构体进行改进,优化了数据结构,减小了传输包大小,降低了两者间传输数据量,使数据传输与解析更加稳定,从而降低传输的功耗。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种基于数据单元的lorawan网关节点数据交互方法流程图;
图2为本申请实施例提供的一种数据单元组合流程示意图;
图3为本申请实施例提供的一种数据单元解析流程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参看图1、图2和图3,图1为本申请实施例提供的一种基于数据单元的lorawan网关节点数据交互方法流程图;图2为本申请实施例提供的一种数据单元组合流程示意图;图3为本申请实施例提供的一种数据单元解析流程示意图。
经申请人研究发现,现有的lorawan中终端节点和网关进行数据交互时多种传感器的数据采用非特定格式组合,不同的数据类型及数据精度导致的数据包结构混乱而复杂,不便解译。所以,本申请提供一种基于数据单元的lorawan网关节点数据交互方法以优化终端节点和网关进行交互时的数据结构,减小了传输包大小,降低了两者间传输数据量,使数据传输与解析更加稳定,从而降低传输的功耗。如图1所示,其具体步骤包括:
步骤s101,第一终端节点根据传感器的第一通道号、数据长度、第一数据类型和待传输的第一数据构建上行数据单元;其中,所述上行数据单元的结构为“第一通道号+数据长度+第一数据类型+第一数据”。
如图2所示,在构建上行数据单元时,终端节点先获取传感器的通道号、数据长度、数据类型和待传输的数据等信息,然后根据数据类型和通用通道数据类型表获取该数据类型对应的转换值;其中,通用通道数据类型表的构建方式如表1所示,数据类型号对应的转换值可以为16进制转化值。通用通道数据类型表包括终端节点的通道类型、数据类型号(lpp)、数据类型号对应的转换值、数据分辨率、数据大小。
表1通用通道数据类型表
进一步地,为了方便控制传感器的采集周期和终端节点的响应时长进行控制,在进行数据传输时还可以设置专用数据通道并构建对应的专用通道数据类型表,网关在下发对应控制指令时,可以先根据该专用通道数据类型表先将控制指令转化为16进制的转换值后再通过专用通道进行传输;具体如表2所示。专用通道数据类型表包括传感器采集周期和终端节点相应时间的通道类型、数据类型号、数据类型号对应的转换值、数据分辨率、数据大小。
表2专用通道数据类型表
步骤s102,所述第一终端节点对所述上行数据单元添加头尾验证后进行base64编码获得对应的第一数据包,并通过外层lorawan协议将所述第一数据包发送给网关。
如图2所示,在一种实施方式中,当上行数据单元构建完毕后,就可以添加头尾验证(例如添加头尾验证aa、bb)后进行base64编码获得对应的数据包。
需要说明的是,如果存在多个数据单元,则可以先对数据单元进行任意追加后再添加头尾验证;其中,追加方式为“数据单元1&数据单元2&...&数据单元n”。
步骤s103,所述网关对所述第一数据包进行base64解码后进行头尾验证。
如图2所示,当网关接收到终端节点发送的数据包后,先进行base64解码,然后进行头尾验证,验证头尾aa、bb。
步骤s104,若头尾验证通过,则所述网关根据所述第一数据向对应的第二终端节点发送控制指令;否则丢弃所述第一数据。
如图2所示,若验证头尾合格,则网关继续根据数据类型对应的通用通道数据类型表对数据包的内容进行转换,得到对应的数据值。若验证头尾不合格,则丢弃该数据。
为了更好理解本申请提供的方法,本申请还提供以下几个实施例(实施例中payload为lorawan的数据帧中真正发送的数据)进行说明:
实施例一
上行(uplink):通道一的空气温湿度传感器向网关传输数据。
加特定头尾(aa、bb)和base64编码后传输内容为:qhjlaraszgd/uw。
实施例二
(下行)downlink:网关下发控制指令关闭第三通道的电磁阀并开启第四通道的电磁阀10min。
加特定头尾(aa、bb)和base64编码后传输内容为:qjaaqqecwls。
实施例三
(下行)downlink:专用通道设置响应时间为1min。
加特定头尾(aa、bb)和base64编码后传输内容为:qgaapls。
综上所述,本申请实施例提供一种基于数据单元的lorawan网关节点数据交互方法,包括:第一终端节点根据传感器的第一通道号、数据长度、第一数据类型和待传输的第一数据构建上行数据单元;其中,上行数据单元的结构为“第一通道号+数据长度+第一数据类型+第一数据”;第一终端节点对上行数据单元添加头尾验证后进行base64编码获得对应的第一数据包,并通过外层lorawan协议将第一数据包发送给网关;网关对第一数据包进行base64解码后进行头尾验证;若头尾验证通过,则网关根据第一数据向对应的第二终端节点发送控制指令;否则丢弃第一数据。通过上述方式,优化了数据结构,减小了传输包大小,降低了两者间传输数据量,使数据传输与解析更加稳定,从而降低传输的功耗。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。