一种传输数据的方法及装置与流程

文档序号:13425950阅读:213来源:国知局
一种传输数据的方法及装置与流程

本申请涉及通信技术领域,特别是涉及一种传输数据的方法及装置。



背景技术:

随着通信技术的发展,lora(longrang,长程)技术的应用越来越广泛。lora技术一种长距离、低功耗、低速率应用下使用的无线调制技术。

在lora通信系统中,终端设备可以通过网关设备与服务器进行通信,网关设备和服务器之间可以采用loragwmp(gatewaymessageprotocol,网关信息协议)协议进行通信,依照该协议,网关设备与服务器之间的通信过程可以为:网关设备接收终端设备发送的上行数据,然后向服务器发送携带有上行数据的终端上行消息(比如push_data),服务器接收到终端上行消息后,向网关设备发送响应消息(比如push_ack),以使网关设备获知上行数据发送成功;lora通信系统中,服务器会根据终端上行消息判断是否需要向该终端发送下行数据,如果需要,则向网关设备发送携带有下行数据的终端下行消息(比如pull_resp),网关接收到终端下行消息后,向服务器发送响应消息(比如tx_ack),以使服务器获知该终端下行消息发送成功;如果不需要,则不进行处理。

然而,现有技术中,网关设备与服务器之间的报文交互比较繁杂,导致报文交互的时间过长,传输数据的效率较低。



技术实现要素:

本申请实施例的目的在于提供一种传输数据的方法及装置,以实现简化网关设备与服务器之间的报文交互,缩短报文交互的时间,提高传输数据的效率的技术效果。具体技术方案如下:

第一方面,提供了一种传输数据的方法,所述方法应用于lora通信系统中的网关设备,所述方法包括:

接收终端设备发送的上行数据;

向服务器发送携带有所述上行数据的终端上行消息;

如果在预设时长内,接收到所述服务器发送的终端下行消息,且所述终端下行消息中携带有所述上行数据对应的下行数据,则将所述下行数据发送给所述终端设备。

第二方面,提供了一种传输数据的方法,所述方法应用于lora通信系统中的服务器,所述方法包括:

接收网关设备发送的携带有上行数据的终端上行消息;

当存在所述上行数据对应的下行数据时,向所述网关设备发送携带有所述下行数据的终端下行消息。

第三方面,提供了一种传输数据的装置,所述装置应用于lora通信系统中的网关设备,所述装置包括:

接收模块,用于接收终端设备发送的上行数据;

第一发送模块,用于向服务器发送携带有所述上行数据的终端上行消息;

第二发送模块,用于如果在预设时长内,接收到所述服务器发送的终端下行消息,且所述终端下行消息中携带有所述上行数据对应的下行数据,则将所述下行数据发送给所述终端设备。

第四方面,提供了一种传输数据的装置,所述装置应用于lora通信系统中的服务器,所述装置包括:

接收模块,用于接收网关设备发送的携带有上行数据的终端上行消息;

第一发送模块,用于当存在所述上行数据对应的下行数据时,向所述网关设备发送携带有所述下行数据的终端下行消息。

第五方面,提供了一种网关设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现第一方面提供的方法步骤。

第六方面,提供了一种服务器,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现第二方面提供的方法步骤。

本申请实施例提供的传输数据的方法,可以应用于lora通信系统中的网关设备,网关设备可以接收终端设备发送的上行数据,然后向服务器发送携带有上行数据的终端上行消息,如果在预设时长内,接收到服务器发送的终端下行消息,且终端下行消息中携带有上行数据对应的下行数据,则将下行数据发送给终端设备。基于本方案,服务器和网关设备无需发送响应报文,可以在保证通信的可靠性的同时,简化网关设备与服务器之间的报文交互,缩短了报文交互的时间,提高了传输数据的效率。当然,实施本申请的任一产品或方法必不一定需要同时达到以上的所有优点。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种lora通信系统框架图;

图2为本发明实施例提供的一种传输数据的方法流程图;

图3为本发明实施例提供的一种传输数据的方法流程图;

图4为本发明实施例提供的一种传输数据的装置结构示意图;

图5为本发明实施例提供的一种传输数据的装置结构示意图;

图6为本发明实施例提供的一种网关设备的结构示意图;

图7为本发明实施例提供的一种服务器的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本发明实施例提供了一种传输数据的方法,该方法可以应用于lora(longrang,长程)通信系统中。lora通信系统是基于lora技术进行通信的通信系统,lora通信系统是一种长距离、低功耗、低速率的无线通信系统。如图1所示,为本实施例提供的lora通信系统框架图,包括网关设备、服务器和终端设备。其中,lora通信系统中的终端设备可以为智能电表、智能水表或智能锁等,相应的,服务器可以为智能电表的后台服务器或智能锁的后台服务器。为了满足lora通信系统中终端设备的低功耗需求,在lora通信系统中,服务器通常会在接收到终端上行消息后,才向终端设备发送下行数据。本发明实施例提供的传输数据的方法,可以由lora通信系统中的网关设备和服务器共同实现,通过该方法,网关设备可以通过重传机制保证通信的可靠性,而且,服务器和网关设备无需发送响应报文,可以在保证通信的可靠性的同时,简化网关设备与服务器之间的报文交互,缩短了报文交互的时间,提高了传输数据的效率。

如图2所示,该方法的处理过程可以包括以下步骤:

步骤201,网关设备接收终端设备发送的上行数据。

在实施中,终端设备可以预先与网关设备建立连接。例如,终端设备可以选择需要接入的网关设备,然后可以向该网关设备发送接入请求,比如join_request,网关设备接收到该接入请求后,可以对该终端设备进行接入处理,然后向该终端设备发送接入成功消息,比如join_accept,以通知该终端设备接入成功。当终端设备需要向后台的服务器发送数据(即上行数据)时,该终端设备可以向网关设备发送该上行数据,网关设备则会接收到该上行数据,并对该上行数据进行缓存,以便将该上行数据发送给服务器。

步骤202,网关设备向服务器发送携带有上行数据的终端上行消息。

在实施中,网关设备还可以预先与服务器设备建立连接。例如,网关设备可以向服务器发送连接请求,比如pull_data,服务器接收到该连接请求后,可以针对该网关设备进行连接处理,然后向该网关设备发送连接响应消息,比如pull_ack,以通知该网关设备连接成功。网关设备与服务器建立连接后,可以周期性的向服务器发送保活报文,服务器接收到该保活报文后,会向网关设备回复保活响应报文,如果网关设备在预设保活时长内未收到服务器发送的保活响应报文,则会再次发送保活报文;如果发送的保活报文的数目达到预设数目阈值,且仍未收到服务器发送的保活响应报文,则可以判定与服务器断开,然后可以重新与该服务器建立连接。其中,pull_data也可作为保活报文;pull_ack也可作为保活响应报文。另外,预设数目阈值和保活报文的发送周期可以由技术人员进行设置,例如,保活报文的发送周期为10s,预设数目阈值为3,则网关设备每10s发送一次pull_data,如果连续3次发送pull_data后,都未接收到服务器发送的pull_ack,则判定与服务器断开连接。

当网关设备接收终端设备发送的上行数据后,网关设备可以向服务器发送携带有上行数据的终端上行消息,比如push_data。网关设备向服务器发送终端上行消息的同时,还可以启动本地的定时器,从而开始进行计时。

步骤203,服务器接收网关设备发送的携带有上行数据的终端上行消息。

在实施中,服务器可以接收网关设备发送的终端上行消息,该终端上行消息中携带有上行数据。服务器可以对该终端上行消息进行解析,获取上行数据,并可以对该上行数据进行存储,以便进行根据该上行数据进行相应的处理。

步骤204,当存在上行数据对应的下行数据时,服务器向网关设备发送携带有下行数据的终端下行消息。

在实施中,服务器接收到终端上行消息后,会向网关设备发送终端下行消息(比如push_response)。这样,服务器在接收到终端上行消息后,直接回复终端下行消息,无需发送响应消息(比如push_ack),从而减少了需要交互的报文,提高了传输数据的效率。

具体的,服务器可以对接收到的终端上行消息进行解析,获取其携带的上行数据,然后可以根据该上行数据,判断是否存在上行数据对应的下行数据,也即,判断需要向终端设备发送下行数据。如果该上行数据指示服务器发送下行数据,则服务器可以根据该上行数据获取相应的下行数据,并可以将该下行数据携带在终端下行消息中,将该终端下行消息发送给网关设备,以使该网关设备将该下行数据转发给终端设备。例如,终端设备为智能锁,终端上行消息携带有智能锁的状态信息,且该状态信息为工作状态,则服务器可以确定需要向该智能锁下发的控制指令,将该控制指令携带在终端下行消息中发送给网关设备;或者,上行数据指示请求某数据,则服务器获取相应的数据,将该数据携带在终端下行消息中发送给网关设备。

如果服务器判定不存在上行数据对应的下行数据,则会向网关设备发送携带的数据内容为空的终端下行消息。例如,终端设备为智能电表,终端上行消息携带智能电表的用电信息,则服务器会对该智能电表的用电信息进行存储,不发送下行数据。

步骤205,如果在预设时长内,网关设备接收到服务器发送的终端下行消息,且终端下行消息中携带有上行数据对应的下行数据,则将下行数据发送给终端设备。

在实施中,网关设备开始计时后,如果在预设时长内,接收到服务器发送的终端下行消息,则可以对该终端下行消息进行解析,判断该终端下行消息中是否携带有下行数据。例如,终端下行消息的预设字段可以用于标识终端下行消息中是否携带有下行数据,网关设备可以通过该预设字段的字符来判断终端下行消息中是否携带有下行数据。如果网关设备判定该终端下行消息中携带有下行数据,则可以将该终端下行消息发送给终端设备;如果网关设备判定该终端下行消息中未携带下行数据,则可以不进行发送处理,并可以丢弃该终端下行消息。

可选的,如果网关设备在预设时长内,未接收到服务器发送的终端下行消息,则对终端上行消息进行重传处理。

在实施中,由于网络故障等原因,会出现终端上行消息发送失败或终端下行消息发送失败的情况,此时,网关设备将接收不到终端下行消息。网关设备开始计时后,如果在预设时长内,网关设备接收到服务器发送的终端下行消息,则说明终端上行消息发送成功,可以关闭定时器,以停止计时;如果达到预设时长时,未接收到服务器发送的终端下行消息,则网关设备向服务器重新发送终端上行消息。例如,如果达到预设时长时,未接收到服务器发送的终端下行消息,则再次向服务器发送终端上行消息,然后开始计时,如果达到预设时长,仍未接收到服务器发送的终端下行消息,则再次向服务器发送终端上行消息,以此类推。这样,可以通过重传机制保证数据传输的可靠性。需要说明的是,上述预设保活时长和预设时长可以相同,也可以不同。

可选的,网关设备中可以设置终端上行消息的重传次数的上限,相应的处理过程可以如下:确定终端上行消息当前的重传次数;如果重传次数小于预设阈值,则执行对终端上行消息进行重传处理步骤;如果重传次数大于预设次数阈值,则向服务器发送连接请求。

在实施中,网关设备中可以针对每个终端上行消息的记录重传次数。具体的,对于任一终端上行消息,重传次数的初始值为0,每当网关设备对该终端上行消息进行一次重传后,网关设备可以将该重传次数的值加1,从而记录该终端上行消息的重传次数。网关设备中还可以存储重传次数的上限(即预设次数阈值),该预设次数阈值可以由技术人员进行设置。当网关设备判定在预设时长内,未接收到服务器发送的终端下行消息,则可以获取该终端上消息当前的重传次数,并对将该重传次数与预设次数阈值进行比较,如果该重传次数小于预设阈值,则可以执行对终端上行消息进行重传处理的步骤;如果该重传次数大于或等于预设次数阈值,则可以判定与服务器断开连接,然后可以向服务器发送连接请求,以重新与该服务器建立连接。

本发明实施例还提供了一种传输数据的方法的示例,如图3所示,以预设次数阈值为4为例,该方法可以包括以下步骤:

步骤301,终端设备向网关设备发送join_request(即接入请求)。

步骤302,网关设备向终端设备发送join_accept(即接入成功消息)。

步骤303,网关设备向服务器发送pull_data(即连接请求)。

步骤304,服务器向网关设备发送pull_ack(即连接响应消息)。

步骤305,网关设备接收终端设备发送的uplink_msg(即携带上行数据的报文)。

步骤306,网关设备向服务器发送push_data(即终端上行消息)。

步骤307,服务器接收网关设备发送的push_data。

步骤308,服务器向网关设备发送push_response(即终端下行消息)。

步骤309,网关设备判断在预设时长内,是否接收到push_response。

如果是,执行步骤310,如果否,执行步骤312.

步骤310,重传push_data。

其中,预设时长为10s,每次重传后,判断预设时长内是否接收到push_response,如果未接收到,则再次重传push_data。

步骤311,当重传次数超过4次时,执行步骤303。

步骤312,判断终端下行消息中是否携带有下行数据。

如果是,执行步骤313,如果否,则不进行处理。

步骤313,向终端设备发送downlink_msg(即携带有下行数据的报文),downlink_msg中携带有下行数据。

需要说明的是,步骤301~302的处理,与步骤303~304的处理过程可以不分先后。

本申请实施例提供的传输数据的方法,可以应用于lora通信系统中的网关设备,网关设备可以接收终端设备发送的上行数据,然后向服务器发送携带有上行数据的终端上行消息,如果在预设时长内,接收到服务器发送的终端下行消息,且终端下行消息中携带有上行数据对应的下行数据,则将下行数据发送给终端设备。基于本方案,服务器和网关设备无需发送响应报文,可以在保证通信的可靠性的同时,简化网关设备与服务器之间的报文交互,缩短了报文交互的时间,提高了传输数据的效率。

基于相同的技术构思,本发明施例还提供了一种传输数据的装置,该装置应用于lora通信系统中的网关设备,如图4所示,该装置包括:

接收模块410,用于接收终端设备发送的上行数据;

第一发送模块420,用于向服务器发送携带有所述上行数据的终端上行消息;

第二发送模块430,用于如果在预设时长内,接收到所述服务器发送的终端下行消息,且所述终端下行消息中携带有所述上行数据对应的下行数据,则将所述下行数据发送给所述终端设备。

可选的,所述装置还包括:

重传模块,用于在预设时长内未接收到所述服务器发送的终端下行消息时,对所述终端上行消息进行重传处理。

可选的,所述装置还包括:

确定模块,用于确定所述终端上行消息当前的重传次数;

第二判断模块,用于如果所述重传次数小于预设次数阈值,则触发所述重传模块执行所述对所述终端上行消息进行重传处理步骤;

第三发送模块,用于如果所述重传次数大于预设次数阈值,则向所述服务器发送连接请求。

基于相同的技术构思,本发明施例还提供了一种传输数据的装置,该装置应用于lora通信系统中的服务器,如图5所示,该装置包括:

接收模块510,用于接收网关设备发送的携带有上行数据的终端上行消息;

第一发送模块520,用于当存在所述上行数据对应的下行数据时,向所述网关设备发送携带有所述下行数据的终端下行消息。

可选的,所述装置还包括:

第二发送模块,用于当不存在所述上行数据对应的下行数据时,向所述网关设备发送携带的数据内容为空的终端下行消息。

本申请实施例提供的传输数据的方法,可以应用于lora通信系统中的网关设备,网关设备可以接收终端设备发送的上行数据,然后向服务器发送携带有上行数据的终端上行消息,如果在预设时长内,接收到服务器发送的终端下行消息,且终端下行消息中携带有上行数据对应的下行数据,则将下行数据发送给终端设备。基于本方案,服务器和网关设备无需发送响应报文,可以在保证通信的可靠性的同时,简化网关设备与服务器之间的报文交互,缩短了报文交互的时间,提高了传输数据的效率。

本发明实施例还提供了一种网关设备,如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,

存储器603,用于存放计算机程序;

处理器601,用于执行存储器603上所存放的程序时,以使该节点设备执行如下步骤,该步骤包括:

接收终端设备发送的上行数据;

向服务器发送携带有所述上行数据的终端上行消息;

如果在预设时长内,接收到所述服务器发送的终端下行消息,且所述终端下行消息中携带有所述上行数据对应的下行数据,则将所述下行数据发送给所述终端设备。

可选的,所述方法还包括:

如果在预设时长内,未接收到所述服务器发送的终端下行消息,则对所述终端上行消息进行重传处理。

可选的,所述对所述终端上行消息进行重传处理之前,还包括:

确定所述终端上行消息当前的重传次数;

如果所述重传次数小于预设次数阈值,则执行所述对所述终端上行消息进行重传处理步骤;

如果所述重传次数大于预设次数阈值,则向所述服务器发送连接请求。

机器可读存储介质可以包括ram(randomaccessmemory,随机存取存储器),也可以包括nvm(non-volatilememory,非易失性存储器),例如至少一个磁盘存储器。另外,机器可读存储介质还可以是至少一个位于远离前述处理器的存储装置。

上述处理器可以是通用处理器,包括cpu(centralprocessingunit,中央处理器)、np(networkprocessor,网络处理器)等;还可以是dsp(digitalsignalprocessing,数字信号处理器)、asic(applicationspecificintegratedcircuit,专用集成电路)、fpga(field-programmablegatearray,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

本发明实施例还提供了一种网关设备,如图7所示,包括处理器701、通信接口702、存储器703和通信总线704,其中,处理器701,通信接口702,存储器703通过通信总线704完成相互间的通信,

存储器703,用于存放计算机程序;

处理器701,用于执行存储器703上所存放的程序时,以使该节点设备执行如下步骤,该步骤包括:

接收网关设备发送的携带有上行数据的终端上行消息;

当存在所述上行数据对应的下行数据时,向所述网关设备发送携带有所述下行数据的终端下行消息。

可选的,所述方法还包括:

当不存在所述上行数据对应的下行数据时,向所述网关设备发送携带的数据内容为空的终端下行消息。

本申请实施例提供的传输数据的方法,可以应用于lora通信系统中的网关设备,网关设备可以接收终端设备发送的上行数据,然后向服务器发送携带有上行数据的终端上行消息,如果在预设时长内,接收到服务器发送的终端下行消息,且终端下行消息中携带有上行数据对应的下行数据,则将下行数据发送给终端设备。基于本方案,服务器和网关设备无需发送响应报文,可以在保证通信的可靠性的同时,简化网关设备与服务器之间的报文交互,缩短了报文交互的时间,提高了传输数据的效率。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1