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,直到完成对通信轮询队列的轮询。