论ZigBee的测距系统实验设计

论ZigBee的测距系统实验设计

摘要:设计了一个基于ZigBee的测距系统实验项目。采用JN5168-001-M03模块搭建硬件平台,依托于ZigBee网络实现节点间信号飞行时间TOF的测量,PC端上位机计算并显示距离测量结果。从物联网的感知层硬件到应用层软件,锻炼学生的物联网系统设计与实现的能力,综合提升学生的创新实践能力。

关键词:ZigBee;测距;物联网;综合实验

随着物联网、无线传感器网络等技术的逐步发展,越来越多的工程实际问题都需要运用到相关知识。从近年来电子信息类学科竞赛也可以看出,不仅是相关技术更频繁地出现在赛题之中,而且物联网类大赛也越来越受到师生的重视。因此,在新工科教育的背景下,十分必要在实验教学过程中加强相关技术的实践训练,与时俱进地提高学生的工程实践能力[1-3]。本文设计了一个基于ZigBee的测距系统实验项目,该实验项目涉及到ZigBee网络节点的硬件制作、节点间基于ZigBee的测距通信交互设计、节点的嵌入式软件实现、PC端上位机实现等知识技能,是一个综合设计型的实验项目,既能锻炼学生的物联网系统设计与实现能力,也能提升学生的创新实践能力。

1系统架构

本实验项目的系统框架如图1所示。系统由基于ZigBee的无线传感器网络和PC端距离计算平台组成。无线传感器网络节点分为基站、移动标签和锚节点三种角色,三者的硬件电路相同,通过加载不同的程序实现不同的功能。基站首先创建一个基于ZigBee的无线网络,移动标签和锚节点加入该网络后会各被分配一个用于网络内部通信的短地址。移动标签主动向锚节点发起测距,并根据信号发送和接收时刻计算出信号在两节点间的飞行时间(TOF,TimeofFlight),然后将TOF发送给基站,基站通过串口将TOF发送给距离计算平台。距离计算平台利用TOF测量值计算出节点间的距离,并实时刷新显示测距结果。

2节点硬件设计

本设计选用JN5168-001-M03模块进行节点的硬件电路设计,该模块内部是超低功耗的高性能无线微控制器JN5168。JN5168自带了用于TOF测距的飞行时间引擎,通过较为简单的配置和调用,即可实现两个节点之间的距离测量。节点的硬件结构框图如图2所示。为了方便节点的携带和部署,节点采用电池供电和USB供电两种供电方式,不同角色的节点可自由选择合适的供电方式。采用FT232RL芯片实现JN5168微控制器与PC端的串口通信以及程序下载。在FT_Prog软件中修改FT232RL的EEPROM,将CBUS2和CBUS3引脚的功能变成I/OMODE,将JN5168的RESETN和SPIMISO引脚分别接到FT232RL的CBUS2和CBUS3引脚上,RESETN引脚同时连接一个复位电路,复位信号与MISO信号协作能够使得JN5168能够进入编程模式,然后PC端就可以通过FlashProgtammer对JN5168进行程序下载。此外,设计了LED和按键方便学生实验交互。节点的电路实现采用转接板和底板结合的模式。在转接板上将JN5168-001-M03模块可能被用于其他功能的引脚都引到底板上,为学生实验的扩展设计提供了硬件基础,同时转接板的可插拔特性使得JN5168-001-M03模块的课堂重复利用率更高,节约实验耗材资源。学生需要在万用板上实现底板电路,能够锻炼学生的电子制作和电路实现能力。

3软件程序设计

3.1嵌入式程序设计

嵌入式端的程序设计按设备角色分为三部分[4]。如图3(a)所示,基站负责创建ZigBee网络和向PC端转发距离测量结果。如图3(b)和3(c)所示,标签节点和锚节点加入网络并获得16位短地址之后,即可开始测距。图3(b)和3(c)中给出的参考测距方案是标签节点主动向锚节点发送测距请求,锚节点接收到测距请求后与标签节点完成测距交互,标签节点负责将其与锚节点之间的信号飞行时间测量值转换成距离测量值,并将距离测量结果发送给基站。学生在实验过程中可以参考图3中的测距方案设计嵌入式端的程序,也可以从效率和稳定性的角度出发设计其他测距方案。其中具体的基于TOF的测距算法,学生可以选用双程测距(TwoWayRanging,TWR)算法、对称双边双程测距(SymmetricDouble-SidedTwoWayRanging,SDS-TWR)算法、单边非对称双程测距(Single-SidedAsymmetricTwoWayRanging,SSA-TWR)算法[5-6]或者创新性地提出某种优化算法,并且在本系统中实现并测试该优化算法的性能。

3.2距离计算平台程序设计

PC端的距离计算平台的主程序流程图如图4所示。距离计算平台通过串口成功接收来自基站的数据帧后,根据协议解析数据帧,并存储原始的TOF测量值,然后将TOF测量值转换成距离测量值。学生在搭建起了基于ZigBee的测距系统的硬件平台和软件平台之后,即可制定测试方案初步测试系统的测距性能,在实验测试中得到大量的测距数据,通过对这些数据进行整理和分析,选用滤波、曲线拟合等算法[7-8]对原始距离测量结果进行处理,最终将能够有效减小测距误差的算法反过来运用到距离计算平台中,使得最终实时刷新显示在UI上的测距结果更加准确。

4系统方案测试

为测试本实验系统方案的可行性,在实验室外的长走廊上进行了测距实验。采用定点测距的方式,将锚节点的位置固定,用市面上的标准卷尺标定出与锚节点相距5m、10m、15m、20m、25m、30m的位置点,依次在这些位置点放置标签节点,每个距离点测试200次。将每个位置点的200次距离测量结果求平均值,统计在表1中,可以看出,本实验设计方案能够实现基于ZigBee的测距功能,且测距绝对误差能够小于3m。

5结论

本文设计了基于ZigBee的测距系统实验项目。该实验项目涵盖了硬件制作、软件编程、实验测试、结果分析等任务要求,通过一整套较为完整的物联网系统设计与实现流程提高学生的综合实践能力和解决实际复杂工程问题的能力,适用于物联网、无线传感器网络、电子系统综合设计等实验课程。多样的测距方案、测距算法和误差修正算法,学生可以查找资料研究和探索各方案和算法的特点,灵活地选择系统的设计方案,为培养学生的自主学习能力和创新实践能力提供了很好的平台。

作者:陈旻哲 邬洪波 徐静雅 谢雨婷 熊诚 单位:武汉大学电子信息学院 华为技术有限公司武汉研究所 武汉大学信息中心 华中师范大学信息化办公室