发明内容
有鉴于此,本发明提供了一种ZigBee网络控制系统及其网络诱导延时计算方法,无需时钟同步即可实现网络诱导延时的计算,可有效降低网络负担。
本发明提供了一种ZigBee网络控制系统网络诱导延时计算方法,所述方法包括:
在所述ZigBee网络控制系统中某回路的第k(k≥2且为正整数)轮询周期内:
记录所述回路中传感器节点SN开始向所述回路中的个人局域网协调器PANCo发送数据帧的开始时刻t1,i(k)和所述PANCo接收完毕所述SN发送的数据帧的时刻t2,i(k);
提取保存的所述回路在第k-1轮询周期的所述SN上传数据至所述PANCo的网络诱导延时τsp(k-1)和所述SN与所述PANCo之间时间差△τsp(k-1);
根据式:τsp(k)=τsp(k-1)+((t2,i(k)-t1,i(k))-△τsp(k-1)),计算所述回路在所述第轮询周期内所述SN上传数据到PANCo的网络诱导延时τsp(k)。
进一步,在记录所述t1,i(k)和t2,i(k)之后,所述方法还包括:根据式:△τsp(k)=t2,i(k)-t1,i(k),计算所述回路在第k轮询周期内所述SN与所述PANCo之间的时间差△τsp(k);
在计算所述τsp(k)和△τsp(k)之后,所述方法还包括:保存所述τsp(k)和△τsp(k)。
进一步,所述方法还包括:
在所述回路的第k轮询周期内:
提取保存的所述回路在第k-1轮询周期内的所述SN向所述PANCo发送数据帧的开始时刻t1,i(k-1);
根据式:τbd(k)=t1,i(k)-t1,i(k-1)-T,计算所述回路在第k轮询周期内其它回路对本回路的影响延时τbd(k),其中T为轮询周期;
保存所述t1,i(k)。
进一步,所述方法还包括:
在所述回路的第k轮询周期内:
记录所述C/AN向所述PANCo发送数据请求帧的起始时刻t1,j(k),所述C/AN接收完毕所述PANCo根据所述数据请求帧向所述C/AN返回数据帧的时刻t3,j(k);
根据式:τpc(k)=t3,j(k)-t1,j(k),计算所述C/AN接收所述PANCo转发数据的网络诱导延时τpc(k)。
进一步,所述方法还包括:
在所述回路的第k轮询周期内:
记录所述PANCo向SN发送确认帧的起始时刻t3,i(k)、所述PANCo接收到C/AN发起的数据请求帧的时刻t2,j(k);
根据式:τpd(k)=t2,j(k)-t3,i(k),计算PANCo准备转发数据所需的处理时间τpd(k)。
进一步,所述方法还包括:
在所述回路的第k轮询周期内:
计算所述C/AN控制算法运算处理的时间τcd(k)和被控对象的自身延时τp(k);
根据式:τ(k)=τsp(k)+τpd(k)+τpc(k)+τbd(k)+τcd(k)+τp(k),计算所述回路在所述第k轮询周期的总延时τ(k)。
进一步,所述方法还包括:
在所述回路的第1轮询周期内:
记录所述SN向所述PANCo发送数据帧的起始时刻t1,i(1)、所述PANCo接收完毕来自所述SN的数据帧的时刻t2,i(1)、所述PANCo根据所述SN的数据帧向所述SN发送确认帧的起始时刻t3,i(1)、和所述SN接收完毕来自所述SN的确认帧的时刻t4,i(1);
根据式:τsp(1)=[(t4,i(1)-t1,i(1))-(t3,i(1)-t2,i(1))]·γ或τmc(1)=通信报文包大小×通信速率,计算得到τsp(1),其中,γ是数据帧长度与确认帧和数据帧长度之和的比值;
根据式:△τsp(1)=t2,i(1)-t1,i(1),计算得到△τsp(1);
保存t1,i(1)、τsp(1)和△τsp(1)。
本发明还提供了一种ZigBee网络控制系统,包括:属于同一回路的PANCo、SN、A/CN,在所述回路的第k(k≥2且为正整数)轮询周期内:
所述SN,用于记录向PANCo发送数据帧的开始时刻t1,i(k);
所述PANCo,用于接收所述SN发送的数据帧,并记录接收完毕所述SN发送的数据帧的时刻t2,i(k);
所述PANCo,用于根据式:τsp(k)=τsp(k-1)+((t2,i(k)-t1,i(k))-△τsp(k-1)),计算所述回路在第k轮询周期内的所述SN上传数据到所述PANCo的网络诱导延时τsp(k),其中τsp(k-1)和△τsp(k-1)分别为所述回路在第k-1轮询周期内所述SN上传数据到所述PANCo的网络诱导延时、所述SN与所述PANCo之间时间差△τsp(k)。
进一步,所述PANCo,还用于根据式:△τsp(k)=t2,i(k)-t1,i(k),计算所述回路在所述第k轮询周期内所述SN与PANCo之间的时间差△τsp(k);
以及,用于保存τsp(k)和△τsp(k)。
进一步,所述PANCo,还用于根据式:τbd(k)=t1,i(k)-t1,i(k-1)-T,计算其它回路对本回路的影响延时τbd(k),其中t1,i(k-1)所述回路在第k-1询周期内所述SN开始向所述PANCo发送数据帧的时刻;
保存t1,i(k)。
本发明的有益效果:
本发明实施例采用异步差分的方式计算SN上传数据到PANCo的网络诱导延时,无需时钟同步即可实现网络诱导延时的计算,可有效降低网络负担。。
具体实施方式
请参考图1,是本发明提供的ZigBee网络控制系统的实施例的结构示意图。如图1所示,该ZigBee网络控制系统包括:一PANCo(Personal Area Network Cordinator,个人局域网协调器)101,若干SN(Sensor Node,传感器节点)102、若干C/AN(Controller/ActuatorNode,控制器/执行器节点)103,被控对象104,以及连接PANCo101和SN102、C/AN103之间的无线网络105,其中控制器分布在各个执行器节点上。
在图1中,该ZigBee网络控制系统的实时延时包括:SN上传数据到PANCo的网络诱导延时τsp(k)、PANCo准备转发数据所需的处理时间τpd(k)、C/AN接收到PANCo转发数据的网络诱导延时τpc(k)、C/AN控制算法运算处理的时间τcd(k)、被控对象自身的延时τp(k)和系统其它测控回路延时对当前回路影响τbd(k)。其中,τpd(k)、τcd(k)和τp(k)可直接计算得到,在星型或者网状结构中,PANCo节点是协调器,SN和C/AN是终端节点或者路由节点,因此,τpc(k)可在C/AN节点计算得到,若要利用实时延时进行全网精确时钟同步,则需要通过C/AN节点向PANCo节点发送确认帧时,将τpc(k)发送给PANCo节点;但τsp(k)却难以直接在PANCo节点直接得到,需要在第一个轮询周期事先确定一个初值,在第二个轮询周期时,将初值发送给PANCo,再采用异步差分的方法滚动计算得到;其它测控回路延时对当前回路影响τbd(k)也可在异步差分方法中计算得到,这一过程后续会详细说明。
在介绍计算ZigBee网络控制系统的网络诱导延时之前,首先对该ZigBee网络控制系统中各节点的通信流程进行说明。
具体的,如图2所示,ZigBee网络控制系统中各节点的通信流程包括:
步骤S201、SN主动向PANCo发送数据帧。
步骤S202、PANCo收到来自SN的数据帧后,向SN发送确认帧。
步骤S203、C/AN向PANCo发送数据请求。
步骤S204、PANCo向C/AN返回确认帧。
步骤S205、PANCo向C/AN发送数据帧。
步骤S206、C/AN向PANCo返回确认帧。
下面对本发明提供的ZigBee网络控制系统中网络诱导延时计算方法进行详细说明。
请参考图3,是本发明提供的ZigBee网络控制系统中网络诱导延时计算方法的实施例的流程示意图。其包括:
步骤S301、在控制回路的第一个轮询周期内,确定该回路中PANCo与SN之间的网络诱导延时初值τsp(1),PANCo与SN之间的时间差初值△τsp(1)以及SN节点向PANCo节点发起通信的起始时刻初值t1,i(1)并保存。
此处,t1,i(1)中括号中的1表示在第一个轮询周期,脚标中的i表示SN节点编号i=1,2,...M且其中M为正整数,且是SN的最大编号。
步骤S302、在控制回路的第二个轮询周期,采用异步差分方法计算本次轮询周期内的该回路网络诱导延时τ,并用该轮询周期内的τsp(2)、△τsp(2)以及t1,i(2)来更新相应的初值并保存,便于在下一个轮询周期内计算整个回路的网络诱导延时。
步骤S303、在后续的任一轮询周期,采用异步差分方法,利用前一个轮询周期内得到的τsp(k-1)、△τsp(k-1)以及t1,i(k-1),滚动计算本轮询周期内该控制回路的网络诱导延时τ,并更新为下一个轮询周期内τsp(k)、△τsp(k)以及t1,i(k)。
下面分别对这三个步骤进行说明。
如图4所示,是步骤S301的实施例的流程示意图,其包括:
步骤S401、第一个轮询周期时,SN按照表一将数据帧发送给PANCo。
表一
步骤S402、PANCo在收到SN的数据帧后,记录接收完数据帧的时刻t2,i(1)。
步骤S403、PANCo按照表二将t2,i(1)和发送确认帧的时刻t3,i(1),附加到确认帧中,下发给SN。
表二
步骤S404、SN记录收到确认帧的时刻t4,i(1)。
步骤S405、SN根据式:τsp(1)=[(t4,i(1)-t1,i(1))-(t3,i(1)-t2,i(1))]·γ,或者,τsp(1)=通信报文包大小×通信速率,计算SN上传数据到PANCo的网络诱导延时τsp(1)。
此处,γ的取值代表数据帧长度与数据帧和确认帧长度之和的比值;ZigBee网络通信中的周期性数据通常都呈现出短帧、小包、数据频发的特征,因此,可将请求报文和应答报文视为相同的最小通信包,则式(1)中γ可取值为;如果SN上传数据量较多,导致数据帧长度大于PANCo节点下发的确认帧长度,则在SN可根据数据帧长度与确认帧长度,直接计算γ值。
此处,ZigBee网络控制系统的分布包括:星型结构和网状结构,而星型结构由于不存在路由转发,因此上述两式均可以用于计算τsp(1),而网状结构由于存在路由转发,因此采用τsp(1)=[(t4,i(1)-t1,i(1))-(t3,i(1)-t2,i(1))]·γ计算τsp(1),并且γ为。
SN根据式:△τsp(1)=t2,i(1)-t1,i(1),计算SN与PANCo之间的时间差初值△τsp(1)。
步骤S406、SN保存τsp(1)、△τsp(1)和t1,i(1),便于下一个周期用于滚动计算。
如图5所示,是步骤S302的实施例的流程示意图,其包括:
步骤S501、第2个轮询周期时,SN按照表三所示,将向PANCo发送数据帧的起始时刻t1,i(2)、以及t1,i(1)、τsp(1)和△τsp(1)附加到数据帧中发送给PANCo。
表三
步骤S502、PANCo收到SN节点的数据帧完毕后,记录接收完毕的时刻t2,i(2)。
步骤S503、PANCo接收完毕数据帧后,向SN发送确认帧,并记下发送确认帧的时刻t3,i(2)。
步骤S504、PANCo采用式:计算得到SN和PANCo节点之间的网络诱导延时τsp(2)。
PANCo采用式:△τsp(2)=t2,i(2)-t1,i(2),计算得到本次PANCo与SN之间时间差△τsp(2)。
PANCo采用式:τbd(2)=t1,i(2)-t1,i(1)-T,计算前端其它回路的延时对本回路的延时影响τbd(2),其中T为轮询周期。
步骤S505、在PANCo节点,将t1,i(2)、△τsp(2)和τsp(2)保存下来,以便下个周期用于滚动计算。
步骤S506、C/AN向PANCo发起数据请求,并记下此时时刻t1,j(2)。
此处,t1,j(2)作为第二个轮询周期内,第j个C/AN节点向PANCo节点发起数据请求的起始时刻初值,其中,括号中的2表示在第二个轮询周期,脚标中的j表示C/AN节点编号j=1,2,...N且为正整数,N是C/AN节点的最大编号。
步骤S507、PANCo接收数据请求,记下此时时刻t2,j(2),并采用式:τpd(2)=t2,j(2)-t3,i(2),计算得到PANCo准备转发数据所需的处理时间τpd(2)。
步骤S508、若PANCo有数据要下发至C/AN,则PANCo按表四将τsp(2)、τbd(2)和τpd(2)附加到确认帧中,发送给C/AN。
表四
步骤S509、PANCo发送确认帧完毕后,再向C/AN节点发送数据帧。
步骤S510、C/AN接收到该数据帧后,记下此时时刻t3,j(2)。
步骤S511、C/AN接收完毕数据帧后,再向PANCo发送确认帧。
步骤S512、C/AN根据式:τpc(2)=t3,j(2)-t1,j(2),计算C/AN接收到PANCo转发数据的网络诱导延时τpc(2)。
步骤S513、C/AN根据式:τ(2)=τsp(2)+τpd(2)+τpc(2)+τbd(2)+τcd(2)+τp(2),计算得到本次轮询周期内的该回路的网络诱导延时。
如图6所示,是步骤S303的实施例的流程示意图,需要说明的是,在第2轮询周期结束时,可以首先判断系统是否继续运行,如果继续运行,则参照下述的方式处理,实际中在每次轮询周期结束时时均应进行如此判断。具体的,步骤S303包括:
步骤S601、第k个轮询周期时,SN按照表五所示,将向PANCo节点发送数据帧的起始时刻t1,i(k)发送给PANCo。
表五
注:此处与第二个轮询周期不同,由于从第二个轮询周期,计算得到的△τsp(k)和τsp(k),其中k=2,3,4,...,就已经保存在PANCo中,所以不需要再将△τsp(k)和τsp(k)附加到数据帧中上发到PANCo中。
步骤S602、PANCo在正确接收到数据帧后,将其收完毕数据帧的时刻t2,i(k)记录下来。
步骤S603、PANCo接收完毕数据帧后,向SN节点发送确认帧,并记下发送确认帧的时刻t3,i(k)。
步骤S604、PANCo采用式:
τsp(k)=τsp(k-1)+△τsp=τsp(k-1)+((t2,i(k)-t1,i(k))-△τsp(k-1)),计算SN和PANCo之间的网络诱导延时τsp(k)。
PANCo采用式:△τsp(k)=t2,i(k)-t1,i(k),计算得到本次PANCo与SN这两个异步节点之间时间差△τsp(k)。
在PANCo采用式:τbd(k)=t1,i(k)-t1,i(k-1)-T,计算前端其它回路的延时对本回路的延时影响τbd(k),其中T为轮询周期。
步骤S605,在PANCo将△τsp(k)、τsp(k)和t1,i(k)保存下来,以便下个周期用于滚动计算。
步骤S606、C/AN向PANCo发起数据请求,并记下此时时刻t1,j(k)。
步骤S607、PANCO记下收到数据请求的时刻t2,j(k),并采用式:τpd(k)=t2,j(k)-t3,i(k),计算得到PANCo准备转发数据所需的处理时间τpd(k)。
步骤S608、若PANCo有数据要下发至C/AN节点,则PANCo节点按表六将τsp(k)、τbd(k)和τpd(k)附加到确认帧中,发送给C/AN。
表六
步骤S609、PANCo发送确认帧完毕后,再向C/AN节点发送数据帧。
步骤S610、C/AN节点接收到该数据帧完毕后,记下此时时刻t3,j(k)。
步骤S611、C/AN节点接收完毕数据帧后,再向PANCo发送确认帧。
步骤S612、在C/AN节点根据式:τpc(k)=t1,j(k)-t3,j(k),计算C/AN接收到PANCo转发数据的网络诱导延时τpc(k)。
步骤S613、在C/AN采用式:τ(k)=τsp(k)+τpd(k)+τpc(k)+τbd(k)+τcd(k)+τp(k),计算得到本次轮询周期内的该回路的网络诱导延时。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。