CN110505641B - 利用全双工UART通信提高ZigBee主从通信轮询效率的方法及其协调器 - Google Patents
利用全双工UART通信提高ZigBee主从通信轮询效率的方法及其协调器 Download PDFInfo
- Publication number
- CN110505641B CN110505641B CN201910805638.5A CN201910805638A CN110505641B CN 110505641 B CN110505641 B CN 110505641B CN 201910805638 A CN201910805638 A CN 201910805638A CN 110505641 B CN110505641 B CN 110505641B
- Authority
- CN
- China
- Prior art keywords
- coordinator
- communication
- microcontroller
- communication module
- data
- 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
- H04L5/00—Arrangements affording multiple use of the transmission path
- H04L5/14—Two-way operation using the same type of signal, i.e. duplex
- H04L5/1438—Negotiation of transmission parameters prior to communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W24/00—Supervisory, monitoring or testing arrangements
- H04W24/02—Arrangements for optimising operational condition
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/06—Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
- H04W28/065—Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information using assembly or disassembly of packets
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Quality & Reliability (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明提供的一种利用全双工UART通信提高ZigBee主从通信轮询效率的方法,包括:在ZigBee主从通信网络中,协调器的微控制器与ZigBee通信模块采用全双工UART通信连接,具体地,协调器的微控制器在接收到校验后的当前节点通信响应帧数据中的第1个字节的数据后,无需等待微控制器将当前节点的通信影响帧数据接收完毕,即可开始对下一底层节点进行通信轮询,利用全双工UART通信的方法,减少主站对通信报文的处理时间等,提高ZigBee主从通信中主站轮询从站的效率。
Description
技术领域
本发明涉及通信领域,尤其涉及一种利用全双工UART通信提高ZigBee主从通信轮询效率的方法及其协调器。
背景技术
日常生活和工业应用中,各种总线技术、局域网技术等有线网络的使用,深深影响到人们的生活,不仅带来更多便利,还对社会发展也起到了极大的推动作用。有线网络速度快,数据流量大,可靠性强,对于设定位置相对固定的情况而言,无疑是十分理想的选择,实际应用中也达到了比较满意的效果。但随着物联网技术、射频技术等的发展,无线通信功能的实现也逐渐变得容易,同时也解决了有线网络布线繁杂、线路故障难以检查、设备重新布局就要重新布线,且不能随便移动设备等不足。然而无线通信的通信带宽往往是有限的,通信过程中的通信时序、通信报文长度、设备解析报文时间等事务的处理速度,对整个无线通信网络的质量与通信效率有着十分重大的影响。因此减少通信设备处理通信报文的时间,设计合理的通信方案等,对提高通信实时性是十分重要的。
目前,常见的无线通信拓扑结构图如图2所示,其主要由一个主站和多个从站构成,主站与无线收发数据模块采用串口方式相连,各从站也与无线收发数据模块采用串口方式相连,主站与从站通过该无线收发数据模块完成数据交互。主站与从站方式采用主从通信,主站向从站发起请求,从站接收到主站的请求后,再向主站回复响应,该种通信方式的特点在于,无线通信网络中在同一时间段内,仅一条通信报文在空中传输,避免了多条通信报文同时在空中传输产生报文冲突的发生。对于主站接收并解析从第i个从站传来的通信报文,若采用将通信报文全部接收完毕后再解析的方法,则主站向第i个从站的下一个从站发送通信报文的等待时间就会增加,其增加的长度主要取决于通信报文长度与主站解析数据的处理时间等,因此会使得在通信实时性上、主站轮询效率上存在不足。
发明内容
有鉴于此,本发明的目的是提供一种利用全双工UART通信提高ZigBee主从通信轮询效率的方法,主站微控制器与主站ZigBee通信模块之间采用全双工URAT通信方式,主站微控制器在接收到通过主站ZigBee通信校验后的当前节点的通信响应帧的第1字节数据后,开始向下一从站发送通信请求帧,减少主站对通信报文的处理时间等,提高主站轮询各节点的效率。
本发明提供的一种利用全双工UART通信提高ZigBee主从通信轮询效率的方法,包括步骤:
S1:协调器设定底层节点的通信轮询队列;其中,协调器与底层节点之间采用主从轮询机制;协调器作为主站向底层节点发起通信请求帧,被请求访问的底层节点作为从站接收通信请求帧并向协调器返回通信响应帧;所述协调器包括:协调器的ZigBee通信模块和协调器的微控制器;协调器ZigBee通信模块与协调器的微控制器采用全双工UART通信;
S2:协调器的微控制器向协调器的ZigBee通信模块发送修改当前节点的网络目的地址的通信请求帧;
S3:协调器的ZigBee通信模块接收到修改当前节点的网络目的地址的通信请求帧后修改当前节点的网络目的地址,向协调器的微控制器返回当前节点的网络目的地址的修改结果;
S4:协调器的微控制器向协调器的ZigBee通信模块发送当前节点的请求报文应用数据;
S5:协调器的ZigBee通信模块收到当前节点的请求报文应用数据后,封装并向当前节点的ZigBee通信模块发送通信请求帧;
S6:当前节点的ZigBee通信模块向当前节点的微控制器发送通信请求帧数据,然后执行通信请求帧中请求的任务,执行任务完成后,当前节点的微控制器将执行结果发送给当前节点的ZigBee通信模块;当前节点的ZigBee通信模块封装并向协调器的ZigBee通信模块发送通信响应帧;
S7:协调器的ZigBee通信模块判断是否接收到当前节点发出的通信响应帧;若是,进入步骤S8;若否,则返回步骤S7;
S8:协调器的ZigBee通信模块判断当前节点发出的通信响应帧是否已经接收完毕,若是,则进入步骤S9;若否,则返回步骤S8;
S9:协调器的ZigBee通信模块对接收到的当前节点发出的通信响应帧进行CRC校验,然后将校验后的数据持续发送给协调器的微控制器后,微控制器根据通信响应帧执行相应的任务;其中,协调器ZigBee通信模块与协调器的微控制器采用全双工UART通信;
S10:协调器的微控制器在接收到校验后的数据中的第1个字节的数据后,将通信轮询队列中位于当前节点下一个位置的节点作为新的当前节点,返回步骤S2;
S11:重复步骤S2至S10,直到完成对通信轮询队列的轮询。
进一步,所述步骤S4具体包括:
协调器的微控制器向协调器的ZigBee通信模块发送请求报文应用数据时,进入串口发送中断发送数据,完成数据发送;
协调器的微控制器向协调器的ZigBee通信模块发送请求报文应用数据后,退回到串口接收中断。
进一步,协调器的微控制器向协调器的ZigBee通信模块发送请求报文应用数据时,进入串口发送中断发送数据,完成数据发送,具体包括:
协调器的微控制器获取向当前节点发送的通信请求帧的数据地址与长度;主站判断发送寄存器是否为空,当判断结果为是时,则协调器的微控制器向协调器的ZigBee通信模块发送通信请求帧中的数据,发送数据计数器累加,数据指针指向下一个数据的地址;当判断结果为否时,则等待。
进一步,协调器的微控制器向协调器的ZigBee通信模块发送请求报文应用数据后,退回到串口接收中断,具体包括:协调器的微控制器根据串口发送完成中断标志位,判断向当前节点发送的通信请求帧数据是否已全部发送完毕,当判断结果为是时,协调器的微控制器退回到进入发送中断时的串口接收中断,完成剩余数据的接收。
进一步,所述步骤S7中协调器的ZigBee通信模块判断是否接收到当前节点发出的通信响应帧,具体包括:
协调器的ZigBee通信模块根据串口接收中断标志位,判断是否接收到当前节点通信响应帧,当判断为是时,则将串口接收缓存区的数据读取至临时变量,接收数据计数器累加。
相应地,本发明还提供一种利用全双工UART通信提高ZigBee主从通信轮询效率的协调器,其特征在于:包括协调器的ZigBee通信模块和协调器的微控制器;
所述协调器的ZigBee通信模块与底层节点的ZigBee通信模块通信连接,用于获取底层节点的网络目的地址,封装并向底层节点发送通信请求帧,接收底层节点的通信响应帧,对接收的通信响应帧进行CRC验证;
所述协调器的ZigBee通信模块通过全双工UART通信方式与所述协调器的微控制器通信,用于接收协调器的微控制器发送的修改当前节点的网络目的地址的通信请求帧,修改当前节点的网络目的地址,并向协调器的微控制器返回修改结果,向协调器的微控制器发送校验后的底层节点发出的通信响应帧,接收协调器的微控制器发送的底层节点的请求报文应用数据;
所述协调器的微控制器,用于设定底层节点的通信轮询队列,向协调器的ZigBee通信模块发送修改当前节点的网络目的地址的通信请求帧,接收协调器的ZigBee通信模块发送的底层节点的网络目的地址,接收协调器的ZigBee通信模块发送的校验后的底层节点发出的通信响应帧,并根据通信响应帧执行相应的任务,向协调器的ZigBee通信模块发送底层节点的请求报文应用数据。
进一步,协调器采用如下方法提高ZigBee主从通信轮询效率:
S1:协调器设定底层节点的通信轮询队列;其中,协调器与底层节点之间采用主从轮询机制;协调器作为主站向底层节点发起通信请求帧,被请求访问的底层节点作为从站接收通信请求帧并向协调器返回通信响应帧;
S2:协调器的微控制器向协调器的ZigBee通信模块发送修改当前节点的网络目的地址的通信请求帧;
S3:协调器的ZigBee通信模块接收到修改当前节点的网络目的地址的通信请求帧后修改当前节点的网络目的地址,向协调器的微控制器返回当前节点的网络目的地址的修改结果;
S4:协调器的微控制器向协调器的ZigBee通信模块发送当前节点的请求报文应用数据;
S5:协调器的ZigBee通信模块收到当前节点的请求报文应用数据后,封装并向当前节点的ZigBee通信模块发送通信请求帧;
S6:当前节点的ZigBee通信模块向当前节点的微控制器发送通信请求帧数据,然后执行通信请求帧中请求的任务,执行任务完成后,当前节点的微控制器将执行结果发送给当前节点的ZigBee通信模块;当前节点的ZigBee通信模块封装并向协调器的ZigBee通信模块发送通信响应帧;
S7:协调器的ZigBee通信模块判断是否接收到当前节点发出的通信响应帧;若是,进入步骤S8;若否,则返回步骤S7;
S8:协调器的ZigBee通信模块判断当前节点发出的通信响应帧是否已经接收完毕,若是,则进入步骤S9;若否,则返回步骤S8;
S9:协调器的ZigBee通信模块对接收到的当前节点发出的通信响应帧进行CRC校验,然后将校验后的数据持续发送给协调器的微控制器后,微控制器根据通信响应帧执行相应的任务;
S10:协调器的微控制器在接收到校验后的数据中的第1个字节的数据后,将通信轮询队列中位于当前节点下一个位置的节点作为新的当前节点,返回步骤S2;
S11:重复步骤S2至S10,直到完成对通信轮询队列的轮询。
进一步,所述步骤S4具体包括:
协调器的微控制器向协调器的ZigBee通信模块发送请求报文应用数据时,进入串口发送中断发送数据,完成数据发送;
协调器的微控制器向协调器的ZigBee通信模块发送请求报文应用数据后,退回到串口接收中断。
进一步,协调器的微控制器向协调器的ZigBee通信模块发送请求报文应用数据时,进入串口发送中断发送数据,完成数据发送,具体包括:
协调器的微控制器获取向当前节点发送的通信请求帧的数据地址与长度;主站判断发送寄存器是否为空,当判断结果为是时,则协调器的微控制器向协调器的ZigBee通信模块发送通信请求帧中的数据,发送数据计数器累加,数据指针指向下一个数据的地址;当判断结果为否时,则等待;
协调器的微控制器向协调器的ZigBee通信模块发送请求报文应用数据后,退回到串口接收中断,具体包括:协调器的微控制器根据串口发送完成中断标志位,判断向当前节点发送的通信请求帧数据是否已全部发送完毕,当判断结果为是时,协调器的微控制器退回到进入发送中断时的串口接收中断,完成剩余数据的接收。
进一步,所述步骤S7中协调器的ZigBee通信模块判断是否接收到当前节点发出的通信响应帧,具体包括:
协调器的ZigBee通信模块根据串口接收中断标志位,判断是否接收到当前节点通信响应帧,当判断为是时,则将串口接收缓存区的数据读取至临时变量,接收数据计数器累加。
本发明的有益效果:本发明中主站微控制器与主站ZigBee通信模块之间采用全双工URAT通信方式,主站微控制器在接收到通过主站ZigBee通信校验后的当前节点的通信响应帧的第1字节数据后,开始向下一从站发送通信请求帧,减少主站对通信报文的处理时间等,提高主站轮询各节点的效率。
附图说明
下面结合附图和实施例对本发明作进一步描述:
图1为本发明的流程图;
图2为传统无线通信的网络拓扑图;
图3为本发明协调器与节点的示意图。
具体实施方式
以下结合说明书附图对本发明作出详细的阐述,如图1和图3所示,本发明提供的一种利用全双工UART通信提高ZigBee主从通信轮询效率的方法,包括步骤:
S1:协调器设定底层节点的通信轮询队列;其中,协调器与底层节点之间采用主从轮询机制;协调器作为主站向底层节点发起通信请求帧,被请求访问的底层节点作为从站接收通信请求帧并向协调器返回通信响应帧;所述协调器包括:协调器的ZigBee通信模块和协调器的微控制器;协调器ZigBee通信模块与协调器的微控制器采用全双工UART通信;需要强调的是未被协调器选择访问的底层节点不能发出通信响应帧,底层节点不能主动发起通信。
S2:协调器的微控制器向协调器的ZigBee通信模块发送修改当前节点的网络目的地址的通信请求帧;
S3:协调器的ZigBee通信模块接收到修改当前节点的网络目的地址的通信请求帧后修改当前节点的网络目的地址,向协调器的微控制器返回当前节点的网络目的地址的修改结果;
S4:协调器的微控制器向协调器的ZigBee通信模块发送当前节点的请求报文应用数据;
S5:协调器的ZigBee通信模块收到当前节点的请求报文应用数据后,封装并向当前节点的ZigBee通信模块发送通信请求帧;本申请不保护封装格式,在此不对其做限定。
S6:当前节点的ZigBee通信模块向当前节点的微控制器发送通信请求帧数据,然后执行通信请求帧中请求的任务,执行任务完成后,当前节点的微控制器将执行结果发送给当前节点的ZigBee通信模块;当前节点的ZigBee通信模块封装并向协调器的ZigBee通信模块发送通信响应帧;
S7:协调器的ZigBee通信模块判断是否接收到当前节点发出的通信响应帧;若是,进入步骤S8;若否,则返回步骤S7;
S8:协调器的ZigBee通信模块判断当前节点发出的通信响应帧是否已经接收完毕,若是,则进入步骤S9;若否,则返回步骤S8;
S9:协调器的ZigBee通信模块对接收到的当前节点发出的通信响应帧进行CRC校验,然后将校验后的数据持续发送给协调器的微控制器后,微控制器根据通信响应帧执行相应的任务;其中,协调器ZigBee通信模块与协调器的微控制器采用全双工UART通信;
S10:协调器的微控制器在接收到校验后的数据中的第1个字节的数据后,将通信轮询队列中位于当前节点下一个位置的节点作为新的当前节点,返回步骤S2;
S11:重复步骤S2至S10,直到完成对通信轮询队列的轮询。通过上述方法,主站微控制器与主站ZigBee通信模块之间采用全双工URAT通信方式,主站微控制器在接收到通过主站ZigBee通信校验后的当前节点的通信响应帧的第1字节数据后,开始向下一从站发送通信请求帧,减少主站对通信报文的处理时间等,提高主站轮询各节点的效率。图3中,1表示协调器,11表示协调器的微控制器,12表示协调器的ZigBee通信模块,11与12之间的双向箭头表示协调器的微控制器与协调器的ZigBee通信模块通过全双工的UART通信,2表示底层节点,省略号表示有若干底层节点,21表示底层节点的ZigBee通信模块,22表示底层节点的微控制器,21与22之间表示底层节点的ZigBee通信模块与底层节点的微控制器通信模块通过全双工的UART通信;12与21之间的虚线表示底层节点的ZigBee通信模块与协调器的ZigBee通信模块之间的ZigBee通信信道。
进一步,所述步骤S4具体包括:
协调器的微控制器向协调器的ZigBee通信模块发送请求报文应用数据时,进入串口发送中断发送数据,完成数据发送;
协调器的微控制器向协调器的ZigBee通信模块发送请求报文应用数据后,退回到串口接收中断。通过这样的方法,避免协调器的微控制器长时间被接收通信响应报文的任务占用,提高了主站执行任务的效率。
进一步,协调器的微控制器向协调器的ZigBee通信模块发送请求报文应用数据时,进入串口发送中断发送数据,完成数据发送,具体包括:
协调器的微控制器获取向当前节点发送的通信请求帧的数据地址与长度;主站判断发送寄存器是否为空,当判断结果为是时,则协调器的微控制器向协调器的ZigBee通信模块发送通信请求帧中的数据,发送数据计数器累加,数据指针指向下一个数据的地址;当判断结果为否时,则等待。通过该方法,实现协调器的微控制器进入串口发送中断发送数据,完成数据发送,提高了协调器的微控制器与ZigBee通信模块之间的通信效率。
进一步,协调器的微控制器向协调器的ZigBee通信模块发送请求报文应用数据后,退回到串口接收中断,具体包括:协调器的微控制器根据串口发送完成中断标志位,判断向当前节点发送的通信请求帧数据是否已全部发送完毕,当判断结果为是时,协调器的微控制器退回到进入发送中断时的串口接收中断,完成剩余数据的接收。
进一步,所述步骤S7中协调器的ZigBee通信模块判断是否接收到当前节点发出的通信响应帧,具体包括:
协调器的ZigBee通信模块根据串口接收中断标志位,判断是否接收到当前节点通信响应帧,当判断为是时,则将串口接收缓存区的数据读取至临时变量,接收数据计数器累加。
相应地,本发明还提供一种利用全双工UART通信提高ZigBee主从通信轮询效率的协调器,包括协调器的ZigBee通信模块和协调器的微控制器;
所述协调器的ZigBee通信模块与底层节点的ZigBee通信模块通信连接,用于获取底层节点的网络目的地址,封装并向底层节点发送通信请求帧,接收底层节点的通信响应帧,对接收的通信响应帧进行CRC验证;
所述协调器的ZigBee通信模块通过全双工UART通信方式与所述协调器的微控制器通信,用于接收协调器的微控制器发送的修改当前节点的网络目的地址的通信请求帧,修改当前节点的网络目的地址,并向协调器的微控制器返回修改结果,向协调器的微控制器发送校验后的底层节点发出的通信响应帧,接收协调器的微控制器发送的底层节点的请求报文应用数据;
所述协调器的微控制器,用于设定底层节点的通信轮询队列,向协调器的ZigBee通信模块发送修改当前节点的网络目的地址的通信请求帧,接收协调器的ZigBee通信模块发送的底层节点的网络目的地址,接收协调器的ZigBee通信模块发送的校验后的底层节点发出的通信响应帧,并根据通信响应帧执行相应的任务,向协调器的ZigBee通信模块发送底层节点的请求报文应用数据。通过这样的协调器,主站微控制器与主站ZigBee通信模块之间采用全双工URAT通信方式,主站微控制器在接收到通过主站ZigBee通信校验后的当前节点的通信响应帧的第1字节数据后,开始向下一从站发送通信请求帧,减少主站对通信报文的处理时间等,提高主站轮询各节点的效率
进一步,协调器采用如下方法提高ZigBee主从通信轮询效率:
S1:协调器设定底层节点的通信轮询队列;其中,协调器与底层节点之间采用主从轮询机制;协调器作为主站向底层节点发起通信请求帧,被请求访问的底层节点作为从站接收通信请求帧并向协调器返回通信响应帧;
S2:协调器的微控制器向协调器的ZigBee通信模块发送修改当前节点的网络目的地址的通信请求帧;
S3:协调器的ZigBee通信模块接收到修改当前节点的网络目的地址的通信请求帧后修改当前节点的网络目的地址,向协调器的微控制器返回当前节点的网络目的地址的修改结果;
S4:协调器的微控制器向协调器的ZigBee通信模块发送当前节点的请求报文应用数据;
S5:协调器的ZigBee通信模块收到当前节点的请求报文应用数据后,封装并向当前节点的ZigBee通信模块发送通信请求帧;
S6:当前节点的ZigBee通信模块向当前节点的微控制器发送通信请求帧数据,然后执行通信请求帧中请求的任务,执行任务完成后,当前节点的微控制器将执行结果发送给当前节点的ZigBee通信模块;当前节点的ZigBee通信模块封装并向协调器的ZigBee通信模块发送通信响应帧;
S7:协调器的ZigBee通信模块判断是否接收到当前节点发出的通信响应帧;若是,进入步骤S8;若否,则返回步骤S7;
S8:协调器的ZigBee通信模块判断当前节点发出的通信响应帧是否已经接收完毕,若是,则进入步骤S9;若否,则返回步骤S8;
S9:协调器的ZigBee通信模块对接收到的当前节点发出的通信响应帧进行CRC校验,然后将校验后的数据持续发送给协调器的微控制器后,微控制器根据通信响应帧执行相应的任务;
S10:协调器的微控制器在接收到校验后的数据中的第1个字节的数据后,将通信轮询队列中位于当前节点下一个位置的节点作为新的当前节点,返回步骤S2;
S11:重复步骤S2至S10,直到完成对通信轮询队列的轮询。
进一步,所述步骤S4具体包括:
协调器的微控制器向协调器的ZigBee通信模块发送请求报文应用数据时,进入串口发送中断发送数据,完成数据发送;
协调器的微控制器向协调器的ZigBee通信模块发送请求报文应用数据后,退回到串口接收中断。
进一步,协调器的微控制器向协调器的ZigBee通信模块发送请求报文应用数据时,进入串口发送中断发送数据,完成数据发送,具体包括:
协调器的微控制器获取向当前节点发送的通信请求帧的数据地址与长度;主站判断发送寄存器是否为空,当判断结果为是时,则协调器的微控制器向协调器的ZigBee通信模块发送通信请求帧中的数据,发送数据计数器累加,数据指针指向下一个数据的地址;当判断结果为否时,则等待;
协调器的微控制器向协调器的ZigBee通信模块发送请求报文应用数据后,退回到串口接收中断,具体包括:协调器的微控制器根据串口发送完成中断标志位,判断向当前节点发送的通信请求帧数据是否已全部发送完毕,当判断结果为是时,协调器的微控制器退回到进入发送中断时的串口接收中断,完成剩余数据的接收。
进一步,所述步骤S7中协调器的ZigBee通信模块判断是否接收到当前节点发出的通信响应帧,具体包括:
协调器的ZigBee通信模块根据串口接收中断标志位,判断是否接收到当前节点通信响应帧,当判断为是时,则将串口接收缓存区的数据读取至临时变量,接收数据计数器累加。
本实施例中,UART为115200bps全双工通信,协调器的ZigBee通信模块为250Kbps通信。假设步骤S2中协调器的微控制器向协调器的ZigBee通信模块发送修改当前节点的网络目的地址的通信请求帧为6个字节,步骤S3中向协调器的微控制器返回当前节点的网络目的地址的修改结果的通信帧为5个字节,步骤S4中协调器的微控制器向协调器的ZigBee通信模块发送当前节点的请求报文应用数据为4个字节,则步骤S5中协调器的ZigBee通信模块组帧后向底层节点的ZigBee通信模块发出的通信请求帧的结构为:报头+报尾+数据,其中,通信请求帧中的报头+报尾一共46个字节,数据一共4个字节,通信请求帧一共50个字节。
底层节点的微控制器发送给底层节点的ZigBee通信模块的应答数据为10个字节,步骤S6中底层节点的ZigBee通信模块组帧后向协调器的ZigBee通信模块发送通信相应帧,通信响应帧的结构为:报头+报尾+数据,其中,通信响应帧中的报头+报尾一共46个字节,数据一共10个字节,通信响应帧一共56个字节。
假设步骤S2中,协调器的微控制器发出修改协调器的ZigBee通信模块的目的网络目的地址通信(当前节点的网络目的地址的通信请求帧)后,协调器的ZigBee通信模块会延迟3ms。
在上述假设的基础上,对传统无线拓扑结构的通信时间分析如下:
(一)协调器的微控制器向协调器的ZigBee通信模块发送修改当前节点的网络目的地址的通信请求帧的时间t1为:
其中,6表示6个字节按11520bps通信。
(二)协调器的微控制器发出修改协调器的ZigBee通信模块的目的网络目的地址通信(当前节点的网络目的地址的通信请求帧)后,协调器的ZigBee通信模块会延迟3ms,即t2=3ms。
(三)协调器的ZigBee通信模块向协调器的微控制器返回当前节点的网络目的地址的修改结果的时间t3为:
其中,5表示5个字节按115200bps通信。
(四)协调器的微控制器向协调器的ZigBee通信模块发送当前节点的请求报文应用数据的时间t4为:
(五)协调器的ZigBee通信模块向当前节点的ZigBee通信模块发送通信请求帧的时间t5为:
其中,2.368ms为CSMA/CA的时间,0.192ms为发送通信请求帧的应答时间,0.352ms为确认当前节点的ZigBee通信模块收到通信响应帧的时间。
(六)当前节点的ZigBee通信模块向当前节点的微控制器发送通信请求帧数据的时间t6为:
(七)当前节点的微控制器执行通信请求帧中请求的任务,执行任务完成后,当前节点的微控制器将执行结果发送给当前节点的ZigBee通信模块的时间t7为:
(八)当前节点的ZigBee通信模块封装并向协调器的ZigBee通信模块发送通信响应帧的时间t8为:
(九)协调器的ZigBee通信模块将校验后的数据持续发送给协调器的微控制器的时间t9为:
至此,协调器轮询完一个底层节点,开始轮询下一个节点。故在传统无线通信拓扑结构中,协调器对一个底层节点(例如:路由器或者终端节点)的通信时间T1为
若网络系统中共有100个底层节点,则系统的轮询周期为:
T=100T≈340.35s(10)
总
为了保证通信的确定性,从步骤(一)至步骤(九)的通信方式都不适合进行改动。本文方法从协调器对当前节点(路由器或者终端节点等)通信的步骤(九)至协调器对下一节点通信的(一)入手,来改进传统无线通信拓扑结构的通信方法,节省通信时间,提高通信效率。
本文方法中,在协调器与当前节点的通信过程中,完成步骤(一)至(八)后,当前节点的数据(通信响应帧)成功被协调器的ZigBee通信模块接收,此时,协调器与当前节点的ZigBee通信信道被释放空闲。具体地,在协调器与当前节点的通信过程中步骤(九)开始,协调器的ZigBee通信模块开始向协调器的微控制器发送数据。由于协调器的ZigBee通信模块与协调器的微控制器之间采用全双工的UART通信,当协调器的微控制器接收到协调器的ZigBee通信模块发送的校验后的数据中的第1个字节的数据,即可判定当前节点的通信响应帧已经被协调器接收完毕,协调器与节点之间的ZigBee通信信道已经被释放空闲。此时,协调器可以对下一个节点发送通信请求帧,而不需要协调器的微控制器将校验后的数据接收完毕后才开始对请求帧。例如:协调器的ZigBee通信模块向协调器的微控制器发送的校验后的数据为15字节,由于协调器的ZigBee通信模块与协调器的微控制器是全双工通信,本文方法中协调器的微控制器在接收到第1个字节的校验后的数据后即启动对下一个节点的通信请求,那么就节约了14个字节的传输时间。如果通信轮询队列中有100个底层节点,那么相对于传统通信方法,本文方法节约了100×△t的时间,其中,△t为协调器的ZigBee通信模块向协调器的微控制器传输14个字节的时间。
回到本文步骤(一)至(九)的假设,利用本文方法,消耗的通信总时间为:
其中,相对于传统的通信方式,本文方法节约的时间为
综上述,本文方法中微控制器与主站ZigBee通信模块之间采用全双工URAT通信方式,主站微控制器在接收到通过主站ZigBee通信校验后的当前节点的通信响应帧的第1字节数据后,开始向下一从站发送通信请求帧,减少主站对通信报文的处理时间等,提高主站轮询各节点的效率。
Claims (4)
1.一种利用全双工UART通信提高ZigBee主从通信轮询效率的方法,其特征在于:包括步骤:
S1:协调器设定底层节点的通信轮询队列;其中,协调器与底层节点之间采用主从轮询机制;协调器作为主站向底层节点发起通信请求帧,被请求访问的底层节点作为从站接收通信请求帧并向协调器返回通信响应帧;所述协调器包括:协调器的ZigBee通信模块和协调器的微控制器;协调器ZigBee通信模块与协调器的微控制器采用全双工UART通信;
S2:协调器的微控制器向协调器的ZigBee通信模块发送修改当前节点的网络目的地址的通信请求帧;
S3:协调器的ZigBee通信模块接收到修改当前节点的网络目的地址的通信请求帧后修改当前节点的网络目的地址,向协调器的微控制器返回当前节点的网络目的地址的修改结果;
S4:协调器的微控制器向协调器的ZigBee通信模块发送当前节点的请求报文应用数据;所述步骤S4具体包括:
协调器的微控制器向协调器的ZigBee通信模块发送请求报文应用数据时,进入串口发送中断发送数据,完成数据发送;
协调器的微控制器向协调器的ZigBee通信模块发送请求报文应用数据后,退回到串口接收中断;
协调器的微控制器向协调器的ZigBee通信模块发送请求报文应用数据时,进入串口发送中断发送数据,完成数据发送,具体包括:
协调器的微控制器获取向当前节点发送的通信请求帧的数据地址与长度;主站判断发送寄存器是否为空,当判断结果为是时,则协调器的微控制器向协调器的ZigBee通信模块发送通信请求帧中的数据,发送数据计数器累加,数据指针指向下一个数据的地址;当判断结果为否时,则等待;
S5:协调器的ZigBee通信模块收到当前节点的请求报文应用数据后,封装并向当前节点的ZigBee通信模块发送通信请求帧;
S6:当前节点的ZigBee通信模块向当前节点的微控制器发送通信请求帧数据,然后执行通信请求帧中请求的任务,执行任务完成后,当前节点的微控制器将执行结果发送给当前节点的ZigBee通信模块;当前节点的ZigBee通信模块封装并向协调器的ZigBee通信模块发送通信响应帧;
S7:协调器的ZigBee通信模块判断是否接收到当前节点发出的通信响应帧;若是,进入步骤S8;若否,则返回步骤S7;
协调器的ZigBee通信模块判断是否接收到当前节点发出的通信响应帧具体包括:协调器的ZigBee通信模块根据串口接收中断标志位,判断是否接收到当前节点通信响应帧,当判断为是时,则将串口接收缓存区的数据读取至临时变量,接收数据计数器累加;
S8:协调器的ZigBee通信模块判断当前节点发出的通信响应帧是否已经接收完毕,若是,则进入步骤S9;若否,则返回步骤S8;
S9:协调器的ZigBee通信模块对接收到的当前节点发出的通信响应帧进行CRC校验,然后将校验后的数据持续发送给协调器的微控制器后,微控制器根据通信响应帧执行相应的任务;
S10:协调器的微控制器在接收到校验后的数据中的第1个字节的数据后,将通信轮询队列中位于当前节点下一个位置的节点作为新的当前节点,返回步骤S2;
S11:重复步骤S2至S10,直到完成对通信轮询队列的轮询。
2.根据权利要求1所述利用全双工UART通信提高ZigBee主从通信轮询效率的方法,其特征在于:协调器的微控制器向协调器的ZigBee通信模块发送请求报文应用数据后,退回到串口接收中断,具体包括:协调器的微控制器根据串口发送完成中断标志位,判断向当前节点发送的通信请求帧数据是否已全部发送完毕,当判断结果为是时,协调器的微控制器退回到进入发送中断时的串口接收中断,完成剩余数据的接收。
3.一种利用全双工UART通信提高ZigBee主从通信轮询效率的协调器,其特征在于:包括协调器的ZigBee通信模块和协调器的微控制器;
所述协调器的ZigBee通信模块与底层节点的ZigBee通信模块通信连接,用于获取底层节点的网络目的地址,封装并向底层节点发送通信请求帧,接收底层节点的通信响应帧,对接收的通信响应帧进行CRC验证;
所述协调器的ZigBee通信模块通过全双工UART通信方式与所述协调器的微控制器通信,用于接收协调器的微控制器发送的修改当前节点的网络目的地址的通信请求帧,修改当前节点的网络目的地址,并向协调器的微控制器返回修改结果,向协调器的微控制器发送校验后的底层节点发出的通信响应帧,接收协调器的微控制器发送的底层节点的请求报文应用数据;
所述协调器的微控制器,用于设定底层节点的通信轮询队列,向协调器的ZigBee通信模块发送修改当前节点的网络目的地址的通信请求帧,接收协调器的ZigBee通信模块发送的底层节点的网络目的地址,接收协调器的ZigBee通信模块发送的校验后的底层节点发出的通信响应帧,并根据通信响应帧执行相应的任务,向协调器的ZigBee通信模块发送底层节点的请求报文应用数据。
4.根据权利要求3所述利用全双工UART通信提高ZigBee主从通信轮询效率的协调器,其特征在于:协调器采用如下方法提高ZigBee主从通信轮询效率:
S1:协调器设定底层节点的通信轮询队列;其中,协调器与底层节点之间采用主从轮询机制;协调器作为主站向底层节点发起通信请求帧,被请求访问的底层节点作为从站接收通信请求帧并向协调器返回通信响应帧;
S2:协调器的微控制器向协调器的ZigBee通信模块发送修改当前节点的网络目的地址的通信请求帧;
S3:协调器的ZigBee通信模块接收到修改当前节点的网络目的地址的通信请求帧后修改当前节点的网络目的地址,向协调器的微控制器返回当前节点的网络目的地址的修改结果;
S4:协调器的微控制器向协调器的ZigBee通信模块发送当前节点的请求报文应用数据;所述步骤S4具体包括:
协调器的微控制器向协调器的ZigBee通信模块发送请求报文应用数据时,进入串口发送中断发送数据,完成数据发送;
协调器的微控制器向协调器的ZigBee通信模块发送请求报文应用数据后,退回到串口接收中断;
协调器的微控制器向协调器的ZigBee通信模块发送请求报文应用数据时,进入串口发送中断发送数据,完成数据发送,具体包括:
协调器的微控制器获取向当前节点发送的通信请求帧的数据地址与长度;主站判断发送寄存器是否为空,当判断结果为是时,则协调器的微控制器向协调器的ZigBee通信模块发送通信请求帧中的数据,发送数据计数器累加,数据指针指向下一个数据的地址;当判断结果为否时,则等待;
协调器的微控制器向协调器的ZigBee通信模块发送请求报文应用数据后,退回到串口接收中断,具体包括:协调器的微控制器根据串口发送完成中断标志位,判断向当前节点发送的通信请求帧数据是否已全部发送完毕,当判断结果为是时,协调器的微控制器退回到进入发送中断时的串口接收中断,完成剩余数据的接收;
S5:协调器的ZigBee通信模块收到当前节点的请求报文应用数据后,封装并向当前节点的ZigBee通信模块发送通信请求帧;
S6:当前节点的ZigBee通信模块向当前节点的微控制器发送通信请求帧数据,然后执行通信请求帧中请求的任务,执行任务完成后,当前节点的微控制器将执行结果发送给当前节点的ZigBee通信模块;当前节点的ZigBee通信模块封装并向协调器的ZigBee通信模块发送通信响应帧;
S7:协调器的ZigBee通信模块判断是否接收到当前节点发出的通信响应帧;若是,进入步骤S8;若否,则返回步骤S7;
协调器的ZigBee通信模块判断是否接收到当前节点发出的通信响应帧具体包括:协调器的ZigBee通信模块根据串口接收中断标志位,判断是否接收到当前节点通信响应帧,当判断为是时,则将串口接收缓存区的数据读取至临时变量,接收数据计数器累加;
S8:协调器的ZigBee通信模块判断当前节点发出的通信响应帧是否已经接收完毕,若是,则进入步骤S9;若否,则返回步骤S8;
S9:协调器的ZigBee通信模块对接收到的当前节点发出的通信响应帧进行CRC校验,然后将校验后的数据持续发送给协调器的微控制器后,微控制器根据通信响应帧执行相应的任务;
S10:协调器的微控制器在接收到校验后的数据中的第1个字节的数据后,将通信轮询队列中位于当前节点下一个位置的节点作为新的当前节点,返回步骤S2;
S11:重复步骤S2至S10,直到完成对通信轮询队列的轮询。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910804762 | 2019-08-28 | ||
CN201910804762X | 2019-08-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110505641A CN110505641A (zh) | 2019-11-26 |
CN110505641B true CN110505641B (zh) | 2021-07-20 |
Family
ID=68590245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910805638.5A Active CN110505641B (zh) | 2019-08-28 | 2019-08-29 | 利用全双工UART通信提高ZigBee主从通信轮询效率的方法及其协调器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110505641B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101119254A (zh) * | 2007-08-20 | 2008-02-06 | 电子科技大学 | 基于跨层设计的无线传感器网络节能方法 |
US7409485B1 (en) * | 2005-10-27 | 2008-08-05 | Cisco Technology, Inc. | Optimized data transfer for a data bus |
WO2009105053A2 (en) * | 2006-12-20 | 2009-08-27 | Thomson Licensing | Improving throughput in a lan by managing tcp acks |
CN102857397A (zh) * | 2012-10-09 | 2013-01-02 | 南京国电南自电网自动化有限公司 | 一种多主异步双工差分总线及通讯方法 |
CN103067201A (zh) * | 2012-12-25 | 2013-04-24 | 安徽鑫龙电器股份有限公司 | 一种多协议通讯管理机 |
CN103442370A (zh) * | 2013-08-27 | 2013-12-11 | 西安嵌牛电子科技有限公司 | ZigBee组网系统及组网方法 |
CN104202363A (zh) * | 2014-08-15 | 2014-12-10 | 杭州电子科技大学 | 一种基于物联网的agv无线网集中协调器 |
CN105391536A (zh) * | 2015-10-28 | 2016-03-09 | 浪潮(北京)电子信息产业有限公司 | 一种客户端和服务端进行通信的方法及装置 |
CN106597933A (zh) * | 2016-12-05 | 2017-04-26 | 成都瑞科电气有限公司 | 一种基于紫蜂技术的开关柜无线测温系统 |
CN106900112A (zh) * | 2017-03-03 | 2017-06-27 | 中州大学 | 基于ZigBee网络的烟草卷接包车间照明控制方法 |
CN107393266A (zh) * | 2017-06-13 | 2017-11-24 | 上海电力学院 | 一种光伏电站无线远程数据传输系统 |
-
2019
- 2019-08-29 CN CN201910805638.5A patent/CN110505641B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7409485B1 (en) * | 2005-10-27 | 2008-08-05 | Cisco Technology, Inc. | Optimized data transfer for a data bus |
WO2009105053A2 (en) * | 2006-12-20 | 2009-08-27 | Thomson Licensing | Improving throughput in a lan by managing tcp acks |
CN101119254A (zh) * | 2007-08-20 | 2008-02-06 | 电子科技大学 | 基于跨层设计的无线传感器网络节能方法 |
CN102857397A (zh) * | 2012-10-09 | 2013-01-02 | 南京国电南自电网自动化有限公司 | 一种多主异步双工差分总线及通讯方法 |
CN103067201A (zh) * | 2012-12-25 | 2013-04-24 | 安徽鑫龙电器股份有限公司 | 一种多协议通讯管理机 |
CN103442370A (zh) * | 2013-08-27 | 2013-12-11 | 西安嵌牛电子科技有限公司 | ZigBee组网系统及组网方法 |
CN104202363A (zh) * | 2014-08-15 | 2014-12-10 | 杭州电子科技大学 | 一种基于物联网的agv无线网集中协调器 |
CN105391536A (zh) * | 2015-10-28 | 2016-03-09 | 浪潮(北京)电子信息产业有限公司 | 一种客户端和服务端进行通信的方法及装置 |
CN106597933A (zh) * | 2016-12-05 | 2017-04-26 | 成都瑞科电气有限公司 | 一种基于紫蜂技术的开关柜无线测温系统 |
CN106900112A (zh) * | 2017-03-03 | 2017-06-27 | 中州大学 | 基于ZigBee网络的烟草卷接包车间照明控制方法 |
CN107393266A (zh) * | 2017-06-13 | 2017-11-24 | 上海电力学院 | 一种光伏电站无线远程数据传输系统 |
Non-Patent Citations (2)
Title |
---|
《蓝牙-ZigBee数据服务系统设计与实现》;曹壮;《中国优秀硕士学位论文全文数据库信息科技辑》;20111215;全文 * |
Debjani Basu,Dipak K. Kole, Hafizur Rahaman.《Implementation of AES Algorithm in UART Module for Secured Data Transfer》.《2012 International Conference on Advances in Computing and Communications》.2012, * |
Also Published As
Publication number | Publication date |
---|---|
CN110505641A (zh) | 2019-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109600187B (zh) | 一种时间触发统一网络传输端系统的调度方法及装置 | |
US20040038684A1 (en) | Wireless communication system, wireless communication device and method, and computer program | |
CN110083088B (zh) | 信号控制转换装置以及信号控制转换方法 | |
US7313104B1 (en) | Wireless computer system with latency masking | |
WO2011157026A1 (zh) | 音频传输的实现方法及移动终端 | |
CN108966046B (zh) | 一种基于fpga的两种通信接口融合mac控制器 | |
CN113452591B (zh) | 基于can总线连续数据帧的回路控制方法及装置 | |
CN102082773B (zh) | 一种基于反应堆保护系统列间安全通讯网络协议的通信方法 | |
CN109922537B (zh) | 无线模块及其实现方法 | |
CN115766860A (zh) | 数据传输方法、tsn节点和计算机可读存储介质 | |
CN112565349A (zh) | 一种基于中央油烟机的无线通信方法及相关设备 | |
JPH09186739A (ja) | パケット通信システムおよびパケット通信制御方法 | |
CN110505641B (zh) | 利用全双工UART通信提高ZigBee主从通信轮询效率的方法及其协调器 | |
CN114040368A (zh) | 一种基于ble蓝牙的数据传输方法、系统及蓝牙模块 | |
CN114095901A (zh) | 通信数据处理方法及装置 | |
CN101345749B (zh) | 基于rts/cts机制的多跳无线网络拥塞控制方法 | |
CN102970737A (zh) | 一种基于相长干涉的无线网络传输的冲突解决方法与系统 | |
CN100556044C (zh) | 面向无线工业控制网的协议控制方法 | |
WO2023207628A1 (zh) | 一种报文传输方法以及报文转发设备 | |
WO2014127633A1 (zh) | Lldp报文传输方法及dcb设备 | |
CN102195763B (zh) | 水声传感器网络长延迟情况下的mac协议实现方法 | |
CN104378778B (zh) | 物联网中主从站之间进行通信的方法、系统及转换网关 | |
CN114422614A (zh) | 控制多链路设备发送数据的方法、装置、设备及存储介质 | |
CN202513948U (zh) | 以太网至profibus-dp的主从式协议转换网关 | |
CN112363963A (zh) | 一种基于Powerlink总线的数据传输方法及装置 |
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 |