[0037] 一种无线单信道通信网络避免冲突的通信方法,具体步骤如下:
[0038] 步骤一、如图1所示,建立单信道通信网络,在该通信网络中包括网关节点和多个终端节点。网关节点与服务器通信。各终端节点均与网关节点通信。网关节点和各终端节点中均存储有网络节点编号优先队列。网关节点中还存储有就绪队列和紧急队列。
[0039] 所述的就绪队列的作用是网关通过查询就绪队列的方式来分配信道的使用权。网络节点编号优先队列中记载该通信网络下所有终端节点的主机编号。
[0040] 如图2所示,终端节点共有五种状态:(1)就绪态:当终端节点产生数据并需要在网络中传输时,将进入该状态。(2)通信态:当终端节点获得网络信道的使用权时,将进入通信状态,在该状态中,终端节点可自由的使用通信信道发送数据。(3)阻塞态:终端节点在等待网关通知时,将进入阻塞态,一般情况下,当网关收回终端节点的信道使用权后,终端节点将进入阻塞态,等待网关的释放信号。(4)睡眠态:当终端节点没有新的数据产生或被网关移出网络时,将进入睡眠态。(5)紧急态:当终端节点发生突发事件,需要及时通知网络时,会进入紧急态。五种状态在特定的情况下发生转换,每个终端节点在同一时间只能处于五种状态中的一种,其状态转移图如图2所示。
[0041] 终端节点具有如下功能特性:(1)终端节点具有快速的外部中断处理能力,当接收到网络消息时,能及时做出反应;(2)终端节点在通信过程中可处于就绪状态、通信状态、阻塞态、紧急状态和睡眠态的其中一种状态;(3)终端节点具有数据缓存能力,在终端节点具备数据缓存的能力。网关节点具有如下功能特性:(1)网关节点具有可迁移特性,即网络中的所有终端节点都可以通过仲裁方法被选举为网关节点;(2)网关节点具备仲裁能力,在终端节点发送数据结束后,裁决该终端节点发送数据的有效性;(3)网关节点具备存储能力,通过查询缓存列表方式分配信道的使用权。
[0042] 步骤二、如图4所示,本发明提出的通信策略的通信周期依照预备时间段、节点通信时间段、网络管理时间段、网络空闲时间段的顺序依次循环运行。
[0043] 2‑1.列表登记时间段
[0044] 网关节点采用广播的方式通知所有终端节点准备登记主机编号到就绪队列;网关节点根据网络节点编号优先队列中登记的顺序依次访问所有终端节点,并将处于就绪态的终端节点登记到就绪队列中。
[0045] 2‑2.节点通信时间段
[0046] 特殊情况下,需要紧急通信的终端节点向网关节点发送紧急通信请求,网关节点将该终端节点登记到紧急队列中,紧急队列的优先级高于就绪队列,被紧急队列登记的终端节点将优先拥有信道使用权。特殊情况包括终端节点受到高优先级的指令。
[0047] 若紧急队列中有终端节点编号,则网关节点按照紧急队列中各个终端节点的顺序依次访问终端节点,并向被访问的终端节点分配信道使用权,具有信道使用权的终端节点被激活。然后,被激活的终端节点使用信道向服务器或其他终端节点发送消息。被访问过的终端节点从紧急队列中移除,并进入阻塞态。利用这种方式,及时响应网络的紧急事件,提高网络实时性。
[0048] 若紧急队列为空,且就绪队列中有终端节点编号,则网关节点按照就绪队列中各个终端节点的顺序依次访问终端节点,并向被访问的终端节点分配信道的使用权,具有信道使用权的终端节点被激活,使用信道向服务器或其他终端节点发送消息。网关节点根据激活终端节点的通信内容动态的调整就绪队列中各终端节点的顺序,使得需要频繁通信的终端节点能够最大效率的利用网络资源。
[0049] 被访问过的终端节点从就绪队列中移除,并进入阻塞态,等待网关节点广播释放阻塞信号,方可再次被就绪队列登记。在紧急队列和就绪队列均为空时,结束节点通信时间段,进入网络管理时间段。
[0050] 以下对节点通信时间段中网络运行的过程进行具体的举例说明:如图4所示,假设网关节点经过预备阶段统计了处于就绪态的终端节点编号包含1,2,5,6,…,N,在节点通信时间段,由于紧急队列为空,所以网关节点首先访问处于队首,编号为1的终端节点,并对其开放信道,此时终端节点1具备了在网络中发送数据的能力,终端节点1使用完信道后将退出就绪队列,进入阻塞态。此时终端节点m需要发送紧急事件,在终端节点1缓存区的数据发送完之后将告知网关。此时,紧急队列不为空。所以,网关节点将把信道使用权交付于终端节点m。在终端节点m使用完信道后,告知网关需要调整终端节点5,6的优先级顺序,并进入阻塞态。于是,在下一阶段中,网关调整了终端节点5,6的顺序,并将信道使用权交给了位于队首的终端节点2。之后,网关继续将信道使用权交给队首的终端节点,终端节点发送完数据后,退出就绪队列,进入阻塞态,以此反复,直至列表为空后,进入下一通信周期阶段。
[0051] 2‑3.网络管理时间段
[0052] 网关节点以广播的形式通知所有终端节点进行状态转换;所有终端节点解除阻塞态;若终端节点无新的数据产生,则终端节点进入睡眠态;若终端节点的缓存区中有待发送的数据,则终端节点进入就绪态。
[0053] 倘若有新的终端节点加入通信网络,则新的终端节点在该阶段向网关节点发送启动帧,该新终端节点的启动帧通过网关节点验证后,网关节点以广播的方式通知网络下的所有终端节点,将新终端节点的编号加入用于存储终端节点编号的网络节点编号优先队列。通过这种方式实现新终端节点的激活。
[0054] 倘若网络中的网关节点发生了故障,网络下的各个终端节点将在网络管理时间段利用选举规则,推选出新的网关节点来管理通信网络。所述的网关节点具有可迁移的特性,本发明将这类网关称为虚拟网关。所述的可迁移是指:在当前的网关由于发生故障,无法继续维护网络通信的正常运行的情况下,终端节点在通信周期的网络管理时间段,利用选举规则,重新挑选出合适的终端节点来担任网络网关的职责。这要求每个终端节点都要满足网络网关的所具备的特性。所述的选举规则具体如下:如图(3)所示,所述的网关选举规则规定为终端节点编号优先;将出现故障的网关节点的主机编号从网络节点编号优先队列中删除。之后,若一个终端节点的主机编号与网络节点编号优先队列中的顶部编号一致,则该终端节点自动担任网关节点的责任;其他所有终端节点以网络节点编号优先队列中的顶部编号值作为自身的网关。
[0055] 之后,进入网络空闲时间段。
[0056] 2‑4.网络空闲时间段
[0057] 网关节点需要实时监控网络中的各个终端节点状态;倘若,所有终端节点都处于睡眠态,则将在一直保持网络空闲时间段,以降低整个网络的能量消耗。倘若,有某些终端节点因为缓存区中有待发送的数据而处于就绪态,则通信网络立即退出网络空闲时间段,重新进入到列表登记时间段。重复步骤2‑1至2‑4,以此反复循环。
[0058] 由于通信双方在传输数据时必须遵循的规则与约定。因此,本发明提出了一套合理且有效的通信协议。本发明所述的通信协议是指在通信网络下,终端节点与终端节点之间,终端节点与网关节点之间以及网关与网关之间进行数据交互必须要遵守的一系列约定。该通信协议规定的一帧数据包含的内容为:帧头(4bit)、帧类型(4bit)、源点(8bit)、终点(8bit)、有效负载长度(0~255bit)、校验位(8bit)、帧尾(4bit)。该通信协议包括数据传输的编解码方式、数据帧类型、数据帧的紧急程度、终端节点优先级编号、数据帧的起止标志、数据帧来源与取向、有效数据负载占比和差错控制方法。
[0059] 该通信协议中的编解码方式采用二进制不归零码(non‑return‑to‑zero line code,NRZ)来实现编解码,所述的二进制不归零码是指采用美国信息交换标准代码(ASCII)来表示字符,这种二进制的讯号代码,在这种传输方式中,1和0都分别由不同的电子显著状态来表现,除此之外,没有中性状态、亦没有其他种状态。这种编码方式简单实用且频带利用率高。
[0060] 该通信协议中的数据帧类型是指在终端节点在通信网络中相互通信时,根据不同类型的传输消息规定不同类型的数据帧。这样有利于提高频带利用率。本发明包括的数据帧类型有、消息帧、紧急帧、启动帧、同步帧、广播帧、状态帧、列表调整帧以及应答帧。其中,消息帧是指用于通信双方进行有效数据传输的帧类型。紧急帧是指终端节点向网关节点发送信道抢占消息的帧类型,在每个终端节点交还信道使用权给网关节点的时隙,允许终端节点发送紧急帧给网关节点,网关节点会根据紧急程度,将其将入紧急队列,在下个时隙中,该终端节点优先使用信道。启动帧是指终端节点发送入网或退网请求的帧类型。同步帧是网关节点与终端节点进行时钟同步的帧类型。广播帧是指网关节点对所有终端节点同时发送消息的帧类型。状态帧是指终端节点在网络中发送自身状态的帧类型。应答帧是指接收方回应发送方确认消息的帧类型。列表调整帧是指终端节点要求调整就绪队列顺序的帧类型,在通信过程中,终端节点可通过列表调整帧调整网关内存中就绪队列的顺序,由此使得就绪队列中终端节点顺序可动态的调整,以此提高网络的通信效率。
[0061] 终端节点的主机编号是指每个网络终端节点都有一个独一无二地址来表征,且该地址能表示各终端节点之间的优先关系。规定终端节点优先级编号的优点在于,首先可以方便区分网络中终端节点,有利于网关管理终端节点。其次,可以明确在数据帧提取出消息的来源与取向,便于信息的分析与过滤。最后,可在网关选举方法中发挥作用。
[0062] 在频繁的传输数据的网络中,需要有标志位来辨别每一帧数据的帧头与帧尾,这样网络终端节点才能正确的从信道中提出消息。因此,本发明所述的通信协议定义数据帧的起止标志是有必要的。
[0063] 本发明提出的通信网络包含众多的终端节点,因此,每一帧数据都要明确它的来源与去处,这样才能保证数据帧准确的到达目的地址。本发明根据终端节点的主机编号在数据帧中填写数据的来源与去处。
[0064] 本发明为了提高通信网络的可靠性,提出了有效的差错控制方法。一方面,本发明利用循环冗余校验码(Cyclic Redundancy Check,CRC)来检验数据帧在信道噪声的衰落后的正确性。所述的RCR一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误。它是利用除法及余数的原理来侦测错误。倘若,侦测出数据有误,则本发明采用停‑等协议来处理错误。另一方面,当作为发送方的终端节点发送的消息未得到作为接收方的终端节点的响应时,本发明采用有限时间等待法来避免通信停滞。该方法可总结为,由于接收终端节点发生故障,发送终端节点无法得到接收终端节点的响应,因此需要在通信协议中规定有限的等待时间,若在有限的等待时间内仍然没有得到接收方的响应,则认为消息丢失,网关节点回收作为发送方的终端节点的信道使用权。利用上述的方法可以减少网络的误操作。
[0065] 有效数据负载占比的多少是检验通信协议优劣的重要指标。有效数据负载占比是指在一帧数据中除去冗余项后有效数据的占比。本发明采用可变长度的有效数据位来设计,即发送方在协议中规定有效数据长度,并按该长度填充数据位。利用这种方式,一方面有利于灵活设计发送数据类型,另一方面有利于平衡有效数据负载占比。
[0066] 综上所述,本发明提出了单信道下多终端节点通信网络的冲突避免方法,包括终端节点状态设计,网关出错处理,网络通信周期组成、登记,查询和调整就绪队列以及通信协议设计。实施原理可总结为:在通信网络中的众多终端节点包含就绪态、通信态、紧急态、阻塞态和睡眠态,这些状态在一定条件下可以相互转换。网关节点控制通信周期,在登记就绪队列时间段,网关登记有需要使用信道的终端节点。在节点通信时间段,网关通过就绪队列为对应编号的终端节点开发信道,并动态调整就绪队列的顺序,网络终端节点该时间段利用通信协议实现数据的传输与共享。在网络管理时间段中,若网关发生故障,则启动网关选举方法。若终端节点发生故障,则网关将终端节点上报并将故障终端节点移除。若有新的终端节点需要加入网络,则网关为其分配编号并通知网络下的所有有效终端节点。在网络空闲时间段,若无终端节点需要信道,则保持低功耗状态,若有终端节点需要使用信道,则结束本次通信周期,进入下一次通信周期。重复以上过程,就可以实现无线单信道网络中终端节点之间的数据传输与共享。