CN111277580B - 节点数据发送方法、接收方法以及传输方法 - Google Patents
节点数据发送方法、接收方法以及传输方法 Download PDFInfo
- Publication number
- CN111277580B CN111277580B CN202010039403.2A CN202010039403A CN111277580B CN 111277580 B CN111277580 B CN 111277580B CN 202010039403 A CN202010039403 A CN 202010039403A CN 111277580 B CN111277580 B CN 111277580B
- Authority
- CN
- China
- Prior art keywords
- data
- node
- transmission mode
- heartbeat
- data transmission
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请提供了一种节点数据发送方法、接收方法以及传输方法。获取有效数据;获取与数据接收方传输信息用的数据传输方式;获取预置的用于进行数据封装的数据生成协议,所述数据生成协议由用于进行封装的数据包长度部分、起始标志部分、错误标志部分及属性部分组成;根据所述数据传输方式,采用数据生成协议对所述有效数据进行封装,从而形成适于数据传输方式传输的至少包括属性信息以及有效数据的待发送数据;将待发送数据通过所述数据传输方式发送给数据接收方。本申请的节点数据发送方法能够兼容多种不同接口,兼容不同组件。
Description
技术领域
本申请涉及数据传输技术领域,特别涉及一种节点数据发送方法、节点数据接收方法以及节点数据传输方法。
背景技术
随着现代技术的进步,无人***(无人飞行器、无地面移动机器人等)越来越体系出巨大的应用价值。而由于单一无人***所具有的局限性,多无人***相互协作变得愈发重要。而无人***相互协作的一个关键技术环节就是其数据的相互传输。而根据当前无人***所具有的一般性***框架可以看出,其具有以下显著的特定:
1.***内布置有大量不同类型的传感器、计算单元、驱动执行器等组件。
如惯性传感器、温度传感器、压力传感器、位移传感器、视觉传感器、单片机、单板机、PC机、伺服电机、舵机、液压作动器等等。
2.不同组件所具有的通讯接口不同。
如异步串口、同步串口、I2C、CAN、以太网等
3.不同组件所具有的运算、存储能力不同。
如低性能嵌入式处理单元只具有数KByte内存和数MHz处理性能、高性能嵌入式处理单元可以具有数GByte内存和几百MHz甚至2GHz处理性能,而***中的x86***甚至可具有数百GB内存和几十核心的处理器。
4.***中传输的数据具有不同的频率、延迟、数据量、可靠性、单播多播要求。
如一般状态数据普遍具有:频率高、延迟低、数据量中、可靠性低、多播的特性要求。
关键状态数据普遍具有:频率低、可靠性高、多播的特性要求。
一般参数数据普遍具有:频率中、延迟低、可靠性低、单播的特性要求。
关键参数数据普遍具有:频率低、可靠性高、单播的特性要求。
而现有技术中没有为无人***数据特性考虑的、为无人***应用优化的、可将多种不同接口、多种不同传输方式统一的数据传输方法。
因此,希望有一种技术方案来克服或至少减轻现有技术的至少一个上述缺陷。
申请内容
本申请目的在于提供一种节点数据发送方法来克服或至少减轻现有技术的至少一个上述缺陷。
为实现上述目的,本申请提供一种节点数据发送方法,用于无人***,所述节点数据发送方法包括:获取有效数据;获取与数据接收方传输信息用的数据传输方式;获取预置的用于进行数据封装的数据生成协议,所述数据生成协议由用于进行封装的数据包长度部分、起始标志部分、错误标志部分及属性部分组成;其中,根据所述数据包长度部分以及数据传输方式能够生成数据包长度信息;根据所述起始标志部分以及数据传输方式能够生成起始标志信息;根据所述错误标志部分以及数据传输方式能够生成错误标志信息;根据所述数据部分以及数据传输方式能够生成属性信息;根据所述数据传输方式,采用数据生成协议对所述有效数据进行封装,从而形成适于数据传输方式传输的至少包括属性信息以及有效数据的待发送数据;将待发送数据通过所述数据传输方式发送给数据接收方。
可选地,所述获取与数据接收方传输信息用的数据传输方式包括:获取设备清单;获取数据接收方提供的设备ID以及接口信息;根据设备ID以及接口信息获取数据传输方式。
可选地,所述数据传输方式包括TCP传输方式、UDP传输方式、UART传输方式以及CAN传输方式。
可选地,所述根据所述数据传输方式,采用数据生成协议对所述有效数据进行封装,从而形成适于数据传输方式传输的至少包括属性信息以及有效数据的待发送数据包括:当所述数据传输方式为TCP传输方式时,采用数据生成协议对所述有效数据进行封装,从而形成适于TCP传输方式传输的待发送数据,所述待发送数据包括有效数据、数据包长度信息、起始标志信息及属性信息;当所述数据传输方式为UDP传输方式时,采用数据生成协议对所述有效数据进行封装,从而形成适于UDP传输方式传输的待发送数据,所述待发送数据包括有效数据及属性信息;当所述数据传输方式为UART传输方式时,采用数据生成协议对所述有效数据进行封装,从而形成适于UART传输方式传输的待发送数据,所述待发送数据包括有效数据、数据包长度信息、起始标志信息、错误标志信息及属性信息;当所述传输方式为CAN传输方式时,采用数据生成协议对所述有效数据进行封装,从而形成适于CAN传输方式传输的待发送数据,所述待发送数据包括有效数据、起始标志信息及属性信息。
可选地,所述起始标志信息包括起始符信息;所述数据包长度信息包括包长度信息;所述属性信息包括来源ID信息、来源组件ID信息、目标ID信息、目标组件ID信息、包类型信息;所述错误标志信息包括校验码信息。
可选地,所述属性信息中的各个信息通过跨字节连续排列的方式进行排列。
本申请还提供了一种节点数据接收方法,用于无人***,所述节点数据接收方法包括:获取与数据发送方传输信息用的数据传输方式;根据所述数据传输方式接收数据发送方发送的待发送数据;获取预置的用于进行数据封装的数据生成协议,所述数据生成协议由用于进行封装的数据包长度部分、起始标志部分、错误标志部分及属性部分组成;其中,根据所述数据包长度部分以及数据传输方式能够生成数据包长度信息;根据所述起始标志部分以及数据传输方式能够生成起始标志信息;根据所述错误标志部分以及数据传输方式能够生成错误标志信息;根据所述数据部分以及数据传输方式能够生成属性信息;根据所述数据传输方式对所述待发送数据进行解析,从而获得有效数据。
本申请还提供了一种节点数据传输方法,用于无人***,所述无人***包括多个节点,各个节点之间通过没有回环的方式连接;所述节点数据传输方法包括:任意一个节点生成心跳数据包,并通过如上所述的节点数据发送方法选择性发送给与其连接的节点;每个收到所述心跳数据包的节点通过所述心跳数据包根据预设规则更新自身的设备连接清单以及选择性对所述心跳数据包进行转发;任意一个更新自身的设备连接清单的节点或生成所述心跳数据包的节点能够通过如上所述的节点数据发送方法将待发送数据选择性发送给与其连接的节点;每个接收到待发送数据的节点通过如权利要求7所述的节点数据接收方法接收所述有效数据。
可选地,所述每个收到所述心跳数据包的节点通过所述心跳数据包根据预设规则更新自身的设备连接清单以及选择性对所述心跳数据包进行转发包括:判断接收到的心跳数据包中的设备ID是否在该节点的设备连接清单中,若否,则在所述设备连接清单中添加发送该心跳数据包的节点的数据内容;若是,则判断所述心跳数据包中的TTL值与该节点的设备连接清单中的TTL值的关系,若所述心跳数据包中的TTL值大于该节点的设备连接清单中的TTL值,则更新所述设备连接清单并将该心跳数据包进行转发;若所述心跳数据包中的TTL值等于该节点的设备连接清单中的TTL值,则更新所述设备连接清单。
可选地,所述任意一个更新自身的设备连接清单的节点或生成所述心跳数据包的节点能够通过如上所述的节点数据发送方法将待发送数据选择性发送给与其连接的节点包括:当与其连接的节点同时具有能够进行多播方式发送的数据传输方式以及能够进行点对点方式发送的数据传输方式时,判断需要发送的发送方式;若发送方式为广播方式,则采用能够进行多播方式发送的数据传输方式进行发送;若发送方式为点对点传播方式,则采用能够进行点对点方式发送的数据传输方式进行发送。
本申请的节点数据发送方法具有如下优点:
1、能够兼容多种不同接口,兼容不同组件。
2、实现复杂度低,对低性能单元友好。
3、对低频数据有良好的可靠性(延迟要求不严格),对高频数据有较低的延迟(可靠性要求不严格)。
4、可高效传输较小的数据包,即数据编码效率高,带宽利用率高。
5、可实现传输较大的数据包,保证对一定可变长度数据传输的支持。
6、支持单播与多播,即可实现点对点通讯亦可实现点对多点通讯。
7、自发现,组件可以自动发现其他组件并自动生成网络路径表。
附图说明
图1是本申请一实施例的节点数据发送方法的流程示意图。
图2是本申请一实施例中的节点数据接收方法的流程示意图。
图3本申请一实施例的节点数据传输方法的流程示意图。
图4采用图3所示的节点数据传输方法的网络拓扑图。
具体实施方式
为使本申请实施的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行更加详细的描述。在附图中,自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。所描述的实施例是本申请一部分实施例,而不是全部的实施例。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。下面结合附图对本申请的实施例进行详细说明。
需要说明的是,在本发明的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
图1是本申请一实施例的节点数据发送方法的流程示意图。图2是本申请一实施例中的节点数据接收方法的流程示意图。图3本申请一实施例的节点数据传输方法的流程示意图。
如图1所示的节点数据发送方法包括:
步骤101:获取有效数据;
步骤102:获取与数据接收方传输信息用的数据传输方式;
步骤103:获取预置的用于进行数据封装的数据生成协议,所述数据生成协议由用于进行封装的数据包长度部分、起始标志部分、错误标志部分及属性部分组成;其中,根据所述数据包长度部分以及数据传输方式能够生成数据包长度信息;根据所述起始标志部分以及数据传输方式能够生成起始标志信息;根据所述错误标志部分以及数据传输方式能够生成错误标志信息;根据所述数据部分以及数据传输方式能够生成属性信息;
步骤104:根据所述数据传输方式,采用数据生成协议对所述有效数据进行封装,从而形成适于数据传输方式传输的至少包括属性信息以及有效数据的待发送数据;
步骤105:将待发送数据通过所述数据传输方式发送给数据接收方。
本申请的数据生成协议仅仅包括上述的五个部分,因此,相对于其他协议,项目较少,从而节省了空间。
在本实施例中,起始标志信息包括起始符信息;数据包长度信息包括包长度信息;属性信息包括来源ID信息、来源组件ID信息、目标ID信息、目标组件ID信息、包类型信息;错误标志信息包括校验码信息。
在本实施例中,起始标志部分由如下构成:
起始标志部分用于在流式传输的接口中识别数据包起始位置,共2Byte(字节)。
在本实施例中,数据包长度部分由如下构成:
数据包长度部分用于表示数据包长度,根据此值的范围,限制了数据包的长度范围为1~256Byte。
在本实施例中,错误标志部分由如下构成:
字段 | 名称 | 长度 | 范围 | 说明 |
CRC16(CC) | 校验码 | 2Byte | 校验码 |
错误标志部分用于在部分无数据传输错误保障的接口中进行数据错误识别。使用的编码算法为CRC16,对PA、PK部分进行计算。
在本实施例中,属性部分由如下构成:
属性部分为包属性,按Bit跨Byte连续排列,共3Byte。标记了数据包的各项属性,其中设备ID用于区分不同设备,组件ID用于区分不同的设备类型。一个设备可以具有多个物理/逻辑组件。相同的组件ID代表相同的组件功能。采用这种方式,可是使得结构排列紧凑,节省空间。
约定EID代表设备ID指代SID/TID,且TID=0时代表所有设备,SID=0时代表未知设备。CID代表组件ID指代SCID/TCID,且TCID=0代表所有组件,SCID=0代表未知组件。TCID、SCID不可同时为0。
PT代表数据包后面定义的Package中数据组织方式不同,用于兼容更多的数据组织方法。
在本实施例中,有效数据由如下构成:
字段 | 名称 | 长度 | 范围 | 说明 |
DataID(DID) | 数据ID | 1Byte | 数据ID | |
Data(DT) | 数据 | 0~255Byte | 数据 |
上述的数据组织形式是在PT=0时的数据组织模式,在PT等于其他值时,可以根据自身需要另外设置。
有效数据信息中Data承载的数据由具体应用情况定义,并使用DID进行区别。但需要注意不同的CID具有不同的DID定义表,即不同的功能组件其数据定义表不同。且当TCID不为0时以TCID决定用于分辨DID的CID,当TCID为0时由SCID决定用于分辨DID的CID。
在本实施例中,获取与数据接收方传输信息用的数据传输方式包括:
获取设备清单;
获取数据接收方提供的设备ID以及接口信息;
根据设备ID以及接口信息获取数据传输方式。
在一个实施例中,通过心跳数据包的方式获取上述的数据接收方提供的设备ID以及接口信息。
在本实施例中,数据传输方式包括TCP传输方式、UDP传输方式、UART传输方式以及CAN传输方式;
数据传输协议包括:TCP传输协议、UDP传输协议、UART传输协议以及CAN传输协议。
在实际使用时,采用如下规则进行传输:
数据部分 | TCP | UDP | UART | CAN |
ST(起始标志信息) | √ | √ | ||
PL(数据包长度信息) | √ | √ | √ | |
PA(属性信息) | √ | √ | √ | √ |
PK(有效数据信息) | √ | √ | √ | √ |
CC(错误标志信息) | √ |
在本实施例中,根据数据传输方式,采用数据生成协议对有效数据进行封装,从而形成适于数据传输方式传输的至少包括属性信息以及有效数据的待发送数据包括:
当传输方式为TCP传输方式时,采用数据生成协议对有效数据进行封装,从而形成适于TCP传输方式传输的待发送数据,待发送数据包括有效数据、数据包长度信息、起始标志信息及属性信息。
具体地,在TCP接口中传输时,因为TCP为流式传输,为了识别起始位置及长度因此包含ST和PL,因为TCP已对数据进行校验故不包含CC。PA、PK为核心被承载数据在所有接口中一定包含。这4部分数据依次压入TCP数据流中进行传输。
当传输方式为UDP传输方式时,采用数据生成协议对有效数据进行封装,从而形成适于TCP传输方式传输的待发送数据,待发送数据包括有效数据及属性信息。
具体地,在UDP中进行传输时,因为UDP为包式传输,无需识别起始位置和长度因此无需包含ST、PL,且UDP已经对包进行校验故亦无需包含CC。因此只包含PA、PK。这两部分依次放入同一缓存后,在同一包中使用UDP发出。
当传输方式为UART传输方式时,采用数据生成协议对有效数据进行封装,从而形成适于TCP传输方式传输的待发送数据,待发送数据包括有效数据、数据包长度信息、起始标志信息、错误标志信息及属性信息。
具体地,在UART传输时,因此UART为流式传输,且无校验保证,故包含ST、PL、PA、PK、CC这5个部分,并依次顺序按字节码发送。
当传输方式为CAN传输方式时,采用数据生成协议对有效数据进行封装,从而形成适于TCP传输方式传输的待发送数据,待发送数据包括有效数据、起始标志信息及属性信息。
具体地,在CAN接口传输时,因为CAN帧的特性与以上其他接口有较大不同,且其数据长度最大只有8Byte。故需要进行分包传输。下面为部分数据在CAN帧中的组织形式。
帧ID,采用扩展形式即29Bit。按下表依次储存各项。
CAN帧Data项采用数据包形式(即不使用远程帧形式)。每包最多储存8Byte数据,具体长度由帧DLC项决定。
数据在传输时由于PK最大长度为256Byte,PK数据依次放入最多32个CAN帧的Data部分中。而所属同一个PK的各个CAN帧,其中DS项从大到小依次减小数值1,最后一个包减至0,代表包传输结束。由PK的长度除以8向上取整-1决定DS的起始值(最大31符合DS的取值范围)。
本申请的节点数据发送方法实现了对工业与无人***领域最常用接口的支持,且后续可继续扩展,可跨不同接口实现数据传输。
分析数据组织形式在最差情况下承载一个数据包需要额外8Byte,提供了较高的包传输编码效率,对小数据包支持良好,实现了小包的高效传输。
最大支持256Byte长数据的传输很好的扩展了CAN总线的长包传输能力。可实现对一般性无人***长包的有效传输。
设计的数据结构形式简单,便于实现,对处理性能及储存空间要求低,对低性能单元友好。
本申请还提供了一种节点数据接收方法,用于无人***,节点数据接收方法包括:
步骤201:获取与数据发送方传输信息用的数据传输方式;
步骤202:根据数据传输方式接收数据发送方发送的待发送数据;
步骤203:获取预置的用于进行数据封装的数据生成协议,数据生成协议由用于进行封装的数据包长度部分、起始标志部分、错误标志部分及属性部分组成;其中,根据数据包长度部分以及数据传输方式能够生成数据包长度信息;根据起始标志部分以及数据传输方式能够生成起始标志信息;根据错误标志部分以及数据传输方式能够生成错误标志信息;根据数据部分以及数据传输方式能够生成属性信息;
步骤204:根据数据传输方式对待发送数据进行解析,从而获得有效数据。
在本实施例中,数据生成协议与上述的节点数据发送方法中的数据生成协议相同,在此不在赘述。
本申请还提供了一种节点数据传输方法,用于无人***,无人***包括多个节点,各个节点之间通过没有回环的方式连接,且没有任意一个节点连接所有节点;节点数据传输方法包括:
步骤301:任意一个节点生成心跳数据包,并通过如上所述的节点数据发送方法选择性发送给与其连接的节点;可以理解的是,在此时,心跳数据包即为有效数据。
步骤302:每个收到心跳数据包的节点通过上述的节点数据接收方法接收心跳数据包,并通过心跳数据包根据预设规则更新自身的设备连接清单以及选择性对心跳数据包进行转发。可以理解的是,当选择性对心跳数据包进行转发时,可以采用本申请的上述的节点数据发送方法也可以采用其他发送方法进行发送。同样的,其他接收转发的节点也可以采用上述的节点数据接收方法进行接收或者采用其他接收方法进行接收。
步骤303:任意一个更新自身的设备连接清单的节点或生成心跳数据包的节点能够通过如上所述的节点数据发送方法将待发送数据选择性发送给与其连接的节点;具体地,任意一个节点在需要时,都可以生成或者通过其他方式获得有效数据(例如通过U盘等方式传递的有效数据),并通过如上所述的节点数据发送方法将有效数据封装成待发送数据选择性发送给与其连接的节点。
步骤304:每个接收到待发送数据的节点通过如上所述的节点数据接收方法接收有效数据。
本申请的无人***通常为无人飞行器、移动机器人等组成的局域网络。
在本实施例中,心跳数据包定义在PackageType=0的BasePackage协议下。
心跳数据包包括如下内容:
在本实施例中,设备连接清单包括如下内容:
在本实施例中,每个收到心跳数据包的节点通过心跳数据包根据预设规则更新自身的设备连接清单以及选择性对心跳数据包进行转发包括:
判断接收到的心跳数据包中的设备ID是否在该节点的设备连接清单中,若否,则在设备连接清单中添加发送该心跳数据包的节点的数据内容;
若是,则判断心跳数据包中的TTL值与该节点的设备连接清单中的TTL值的关系,若心跳数据包中的TTL值大于该节点的设备连接清单中的TTL值,则更新设备连接清单并将该心跳数据包进行转发;若心跳数据包中的TTL值等于该节点的设备连接清单中的TTL值,则更新设备连接清单;若心跳数据包中的TTL值小于该节点的设备连接清单中的TTL值,则不进行任何操作。
另外,每个节点会定期判断设备连接清单中的任意一个与其连接的节点在最后一次更新后的设备连接清单中的***时刻的值与该节点的***的***时刻的值之差是否大于预设值,若大于预设值,则在设备连接清单中删除此节点的信息。
可以理解的是,该预设值可以根据自身需要设定,例如,设置为60秒、360秒或者其他值。
在本实施例中,任意一个更新自身的设备连接清单的节点或生成所述心跳数据包的节点能够通过如上所述的节点数据发送方法将待发送数据选择性发送给与其连接的节点包括:
当与其连接的节点同时具有能够进行多播方式发送的数据传输方式以及能够进行点对点方式发送的数据传输方式时,判断需要发送的发送方式;
若发送方式为广播方式,则采用能够进行多播方式发送的数据传输方式进行发送;
若发送方式为点对点传播方式,则采用能够进行点对点方式发送的数据传输方式进行发送。
为了方便理解,下面以举例的方式对本申请进行进一步阐述,可以理解的是,该举例并不构成对本申请的任何限制。
参见图4,图4示出了一种采用本申请的无人***,无人***包括多个节点,各个节点之间通过没有回环的方式连接,且没有任意一个节点连接所有节点。
在图4所示的实施例中,无人***包括第一节点1、第二节点2、第三节点6、第四节点7、第一节点组3、第二节点组4、第三节点组5,其中,第一节点组3包括三个节点、第二节点组4包括三个节点、第三节点组5包括三个节点。
上述的各个节点之间通过没有回环的方式连接,其中,第一节点1通过CAN总线与第一节点组3连接,通过复合TCP/UDP的方式与第三节点组5连接,通过UART的方式与第三节点6连接;
第二节点2通过CAN总线与第二节点组4连接,通过复合TCP/UDP的方式与第三节点组5连接,通过UART的方式与第四节点7连接。
假设,由第二节点1生成一个心跳数据包,并通过上述的节点数据发送方法发送给与其连接的节点,即发送给第一节点组3、第三节点组5以及第三节点6;
每个收到心跳数据包的节点通过心跳数据包根据预设规则更新自身的设备连接清单以及选择性对心跳数据包进行转发,即第一节点组3、第三节点组5以及第三节点6根据上述的心跳数据包根据预设规则更新自身的设备连接清单。
在预设规则下,若心跳数据包中的TTL值大于该节点的设备连接清单中的TTL值,则更新设备连接清单并将该心跳数据包进行转发;举例来说,若第三节点组5中的一个或者多个节点复合心跳数据包中的TTL值大于该节点的设备连接清单中的TTL值,则可以进行转发,可以理解的是,本申请的任何节点都不具有回环,因此,不会向给该节点发送心跳数据包的节点转发,举例来说,第三节点组5中的一个或者多个节点还与第二节点连接,因此,当TTL值大于时,还会向第二节点转发,而第二节点更新后,如果TTL值大于第二节点的设备连接清单时,还会继续转发。在此不再赘述。
当通过心跳数据包更新完整个网络后,每个节点分别以约定的周期发送心跳数据包,使其他设备可以对各自达到发现。
当需要传输数据时,任意一个更新自身的设备连接清单的节点或生成心跳数据包的节点获取有效数据;
在本举例中,设定第一节点1获取有效数据,可以理解的是,该有效数据可以是通过其他节点或者其他方式获取的,也可以是第一节点自己生成的。
通过上述的节点数据发送方法生成待发送数据并选择性发送给与其连接的节点,例如,选择性发送给第一节点组3中的各个节点、第三节点组5中的各个节点以及第三节点6。
每个接收到待发送数据的节点通过如上所述的节点数据接收方法接收有效数据。
下面以第一节点为例,阐述下上述的节点数据发送方法。
按照上述的举例,第一节点选择性发送给第一节点组3中的各个节点、第三节点组5中的各个节点以及第三节点6。
步骤101:第一节点获取有效数据;
步骤102:获取与数据接收方传输信息用的数据传输方式,在本实施例中,通过心跳数据包的方式,已经获取了第一节点组3中的各个节点、第三节点组5中的各个节点以及第三节点6的数据传输方式,即与第一节点组3采用CAN总线的数据传输方式,与第三节点组5采用TCP/UDP的数据传输方式,与第三节点6采用UART的数据传输方式;
步骤103:获取预置的用于进行数据封装的数据生成协议;
步骤104:根据数据传输方式,采用数据生成协议对有效数据进行封装,从而形成适于传输方式传输的至少包括属性信息以及有效数据的待发送数据;即,
对于第一节点组3中的各个节点,生成包括数据包长度信息、属性信息以及有效数据的待发送数据;
由于第三节点组5采用TCP/UDP的连接方式,因此,需要判断是广播方式还是点对点传播方式,若是广播方式,则采用UDP方式发送,若是点对点传播方式,则采用TCP方式发送,假设为广播方式,则对于第三节点组5中的各个节点,生成包括属性信息以及有效数据的待发送数据。
对于第三节点6,生成包括数据包长度信息、起始标志信息、属性信息、错误标志信息以及有效数据的待发送数据。
将待发送数据通过数据传输协议发送给数据接收方。即,对于第一节点组3中的各个节点,采用CAN总线的数据传输方式发送。
对于第三节点组5采用UDP的数据传输方式发送。
对于第三节点6采用UART的数据传输方式发送。
下面以第三节点6为例,阐述下上述的节点数据接收方法。
按照上述的举例,第三节点6接收到第一节点发送的待发送数据。
步骤1:获取与数据发送方传输信息用的数据传输方式;在本实施例中,同样通过心跳数据包获取上述信息。
根据所述数据传输方式接收数据发送方发送的待发送数据;即通过UART的数据传输协议接收待发送数据。
获取预置的用于进行数据封装的数据生成协议;该数据生成协议为上述的数据生成协议,在此不再赘述。
根据数据传输方式对待发送数据进行解析,从而获得有效数据。
本申请虽然以较佳实施例公开如上,但其实并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此,本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动,媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数据多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
此外,显然“包括”一词不排除其他单元或步骤。装置权利要求中陈述的多个单元、模块或装置也可以由一个单元或总装置通过软件或硬件来实现。第一、第二等词语用来标识名称,而不标识任何特定的顺序。
附图中的流程图和框图,图示了按照本申请各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,模块、程序段、或代码的一部分包括一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地标识的方框实际上可以基本并行地执行,他们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或总流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,处理器是本申请的上述装置/终端设备的控制中心,利用各种接口和线路连接整个本申请的上述装置/终端设备的各个部分。
存储器可用于存储计算机程序和/或模块,处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现装置/终端设备的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本申请的装置/终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
最后需要指出的是:以上实施例仅用以说明本发明的技术方案,而非对其限制。尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (3)
1.一种节点数据传输方法,用于无人***,所述无人***包括多个节点,各个节点之间通过没有回环的方式连接;其特征在于,所述节点数据传输方法包括:
任意一个节点生成心跳数据包,并通过节点数据发送方法选择性发送给与其连接的节点,其中,所述通过节点数据发送方法包括:
获取有效数据;
获取与数据接收方传输信息用的数据传输方式;
获取预置的用于进行数据封装的数据生成协议,所述数据生成协议由用于进行封装的数据包长度部分、起始标志部分、错误标志部分及属性部分组成;其中,根据所述数据包长度部分以及数据传输方式能够生成数据包长度信息;根据所述起始标志部分以及数据传输方式能够生成起始标志信息;根据所述错误标志部分以及数据传输方式能够生成错误标志信息;根据所述属性部分以及数据传输方式能够生成属性信息;
根据所述数据传输方式,采用数据生成协议对所述有效数据进行封装,从而形成适于数据传输方式传输的至少包括属性信息以及有效数据的待发送数据;
将待发送数据通过所述数据传输方式发送给数据接收方;
每个收到所述心跳数据包的节点通过所述心跳数据包根据预设规则更新自身的设备连接清单以及选择性对所述心跳数据包进行转发;
任意一个更新自身的设备连接清单的节点或生成所述心跳数据包的节点能够通过所述节点数据发送方法将待发送数据选择性发送给与其连接的节点;
每个接收到待发送数据的节点通过节点数据接收方法接收所述有效数据;其中,所述节点数据接收方法包括:
获取与数据发送方传输信息用的数据传输方式;
根据所述数据传输方式接收数据发送方发送的待发送数据;
获取预置的用于进行数据封装的数据生成协议,所述数据生成协议由用于进行封装的数据包长度部分、起始标志部分、错误标志部分及属性部分组成;其中,根据所述数据包长度部分以及数据传输方式能够生成数据包长度信息;根据所述起始标志部分以及数据传输方式能够生成起始标志信息;根据所述错误标志部分以及数据传输方式能够生成错误标志信息;根据所述属性部分以及数据传输方式能够生成属性信息;
根据所述数据传输方式对所述待发送数据进行解析,从而获得有效数据。
2.如权利 要求1所述的节点数据传输方法,其特征在于,所述每个收到所述心跳数据包的节点通过所述心跳数据包根据预设规则更新自身的设备连接清单以及选择性对所述心跳数据包进行转发包括:
判断接收到的心跳数据包中的设备ID是否在该节点的设备连接清单中,若否,则在所述设备连接清单中添加发送该心跳数据包的节点的数据内容;
若是,则判断所述心跳数据包中的TTL值与该节点的设备连接清单中的TTL值的关系,若所述心跳数据包中的TTL值大于该节点的设备连接清单中的TTL值,则更新所述设备连接清单并将该心跳数据包进行转发;若所述心跳数据包中的TTL值等于该节点的设备连接清单中的TTL值,则更新所述设备连接清单。
3.如权利要求1所述的节点数据传输方法,其特征在于,所述任意一个节点生成心跳数据包,并通过节点数据发送方法选择性发送给与其连接的节点包括:
当与其连接的节点同时具有能够进行多播方式发送的数据传输方式以及能够进行点对点方式发送的数据传输方式时,判断需要发送的发送方式;
若发送方式为广播方式,则采用能够进行多播方式发送的数据传输方式进行发送;
若发送方式为点对点传播方式,则采用能够进行点对点方式发送的数据传输方式进行发送。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010039403.2A CN111277580B (zh) | 2020-01-15 | 2020-01-15 | 节点数据发送方法、接收方法以及传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010039403.2A CN111277580B (zh) | 2020-01-15 | 2020-01-15 | 节点数据发送方法、接收方法以及传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111277580A CN111277580A (zh) | 2020-06-12 |
CN111277580B true CN111277580B (zh) | 2021-06-25 |
Family
ID=71001677
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010039403.2A Active CN111277580B (zh) | 2020-01-15 | 2020-01-15 | 节点数据发送方法、接收方法以及传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111277580B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112910658B (zh) * | 2021-02-02 | 2022-07-12 | 刘玉 | 一种数据包传输方法和提供tcp代理服务的方法、装置 |
CN113589724B (zh) * | 2021-07-26 | 2022-11-15 | 广州医软智能科技有限公司 | 一种按键处理方法和电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101753528A (zh) * | 2008-12-22 | 2010-06-23 | 成都市华为赛门铁克科技有限公司 | 一种固态硬盘通信的方法、装置和*** |
CN103347077A (zh) * | 2013-07-03 | 2013-10-09 | 曙光信息产业(北京)有限公司 | 分布式文件***的数据传输方法和装置 |
CN106686351A (zh) * | 2016-12-20 | 2017-05-17 | 银江股份有限公司 | 一种混合协议数据统一化输出的视频传输方法 |
CN109684246A (zh) * | 2018-12-19 | 2019-04-26 | 东莞博力威电池有限公司 | 不同接口协议的设备之间进行数据传输的方法及*** |
-
2020
- 2020-01-15 CN CN202010039403.2A patent/CN111277580B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101753528A (zh) * | 2008-12-22 | 2010-06-23 | 成都市华为赛门铁克科技有限公司 | 一种固态硬盘通信的方法、装置和*** |
CN103347077A (zh) * | 2013-07-03 | 2013-10-09 | 曙光信息产业(北京)有限公司 | 分布式文件***的数据传输方法和装置 |
CN106686351A (zh) * | 2016-12-20 | 2017-05-17 | 银江股份有限公司 | 一种混合协议数据统一化输出的视频传输方法 |
CN109684246A (zh) * | 2018-12-19 | 2019-04-26 | 东莞博力威电池有限公司 | 不同接口协议的设备之间进行数据传输的方法及*** |
Non-Patent Citations (3)
Title |
---|
Omnidirectional vision applied to unmanned aerial;Mondragón IF 等;《Robot Auton Syst》;20100212;全文 * |
一种小型无人机动态磁罗盘校准方法评估;管沁朴 等;《机器人技术与应用》;20180131;全文 * |
基于数字地图技术的无人机测控软件设计与开发;杨小会;《中国优秀硕士学位论文全文数据库 工程科技Ⅱ辑》;20140715;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111277580A (zh) | 2020-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022078509A1 (zh) | IPv6报文的扩展头封装方法及装置 | |
CN109391560B (zh) | 网络拥塞的通告方法、代理节点及计算机设备 | |
US11012255B2 (en) | Electronic control unit, frame generating method, and non-transitory computer-readable recording medium storing a program | |
US9325812B2 (en) | Method and apparatus for compressing nested protocol packet header | |
US20170244792A1 (en) | Power-Line Carrier Terminal Control Apparatus, System, and Method | |
US10791051B2 (en) | System and method to bypass the forwarding information base (FIB) for interest packet forwarding in an information-centric networking (ICN) environment | |
US20210160353A1 (en) | Data sending method and device, data receiving method and device, and system | |
CN111277580B (zh) | 节点数据发送方法、接收方法以及传输方法 | |
EP3813318B1 (en) | Packet transmission method, communication device, and system | |
CN109936492B (zh) | 一种通过隧道传输报文的方法、装置和*** | |
EP4131870A1 (en) | Service processing method and apparatus, and device and storage medium | |
CN110545229B (zh) | 一种vxlan轴心组网模式下的报文发送方法、装置 | |
KR102536276B1 (ko) | 메시지 생성 방법 및 장치, 및 메시지 처리 방법 및 장치 | |
US11134129B2 (en) | System for determining whether to forward packet based on bit string within the packet | |
CN104754521B (zh) | 一种报文转发方法、无线接入点、无线控制器和*** | |
WO2017041534A1 (zh) | 一种电力线网络通信的方法及装置、计算机存储介质 | |
CN107925516A (zh) | 数据传输方法和装置 | |
CN106789440B (zh) | 一种ip包包头检测方法及装置 | |
US11962673B2 (en) | Packet tunneling and decapsulation with split-horizon attributes | |
CN114979090A (zh) | IPv6数据包处理方法、装置、计算机设备和存储介质 | |
CN113497767A (zh) | 传输数据的方法、装置、计算设备及存储介质 | |
CN116133159B (zh) | Gtp数据包的处理方法、装置、计算机设备和存储介质 | |
CN111865884A (zh) | 一种报文处理方法、装置及设备 | |
WO2022033496A1 (zh) | 一种报文发送方法、报文处理方法及设备 | |
CN112350957B (zh) | 一种网络报文发送的方法、装置和网络处理器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |