基于CC2530 的实验平台管理模块设计*
2015-11-28浦炜,郭凯
浦 炜,郭 凯
(常熟理工学院,江苏 常熟 215500)
当前高校对开放实验平台的管理还主要停留在人力上,这种方式不仅浪费人力,增加管理成本,而且实验设备的状态信息也得不到及时反馈。鉴于这种现象,基于物联网技术的实验平台管理模块设计就凸显出其实际应用价值。
ZigBee 是基于IEEE802.15.4 标准的个域网协议,该协议定义了一种近距离、低复杂度、低功耗、低数据速率、低成本的双向无线通信技术[1]。采用基于CC2530 的ZigBee 无线传输技术设计的实验平台管理模块,可实现实验平台管理数据的自动采集、自动控制平台的运行情况。在物联网发展的大势下,实验室的管理和运作将朝着更加自动化和人性化的方向发展。
1 系统总体方案设计
结合高校开放实验教学管理平台的需求,系统总体设计由三个子系统构成,分别为基于嵌入式Web 的远程实验教学监控系统、基于QtE 界面设计的ARM 主控系统以及基于ZigBee 的实验平台管理模块。前两个模块是对实验平台的本地化和远程化的管理,而平台数据的采集和控制由第三模块实现。总体架构如图1。
图1 系统总体架构
1.1 基于ZigBee 的实验平台管理模块
实验平台管理模块作为系统的一部分,其功能由系统需求而定。以下为具体功能:
1)系统上电后,管理模块以ZigBee 无线的方式实现了实验平台与ARM 主控端的连接。如此避免了布线的麻烦,使系统管理起来更方便。
2)学生可以自主选择实验平台,系统通过管理模块开放相应的实验平台供电。
3)学生在实验过程中,如有信息反馈,可通过管理模块上的输入设备(如按键)来发送反馈信息。
4)管理模块可以采集实验平台传感信息,如温度、工作电流等,反馈给本地或远程监控终端。
1.2 无线通信解决方案
由于实验教学管理平台是通过无线方式管理具体实验平台,从成本、构建复杂度等因素考虑,选择了基于ZigBee的无线网络解决方案。
构建ZigBee 无线通信网络的一种典型的方案是CC2530片上系统和ZigBee 协议栈(Z-Stack)[2]。CC2530 是德州仪器推出的一款用于IEEE 802.15.4、ZigBee 应用的片上系统(SoC)解决方案。CC2530 集成了增强工业标准的8051MCU,能够以极低的成本构建强大的网络节点,使用CC2530 可以很大程度的满足设计要求[3,4]。
2 模块硬件设计
模块的硬件包含基于CC2530 的协调器和节点两部分。协调器主要与主控ARM 系统通过串口通讯,实现控制指令的下发和采集数据的上传。协调器与各节点间通过ZigBee无线网络交换数据。节点部分通过驱动电路实现实验平台的供电控制,采集平台工作状态、学生反馈信息等。
2.1 节点模块硬件框图
协调器和节点均由CC2530 作为核心单元,它是基于IEEE 802.15.4、ZigBee 应用的片上系统(SoC)解决方案。CC2530 采用的是增强工业级8051 内核,提供了一个IEEE 802.15.4 兼容无线收发器,RF 内核控制模拟无线模块,提供MCU 和无线设备之间的接口[5]。CC2530 最小系统包括晶振电路、复位电路、天线匹配电路等。
图2 模块硬件框图
2.2 平台供电控制电路
图3 平台供电控制电路
如图3,继电器的作用是开闭实验平台的电源。模块所选继电器由5 V 电压驱动,通过单片机IO 控制继电器。当IO 输出高电平,三极管达到饱和状态,集电极和射极导通。导通后二者之间压差大约为0.2 V,这就使继电器两输入端的电压约为4.8 V,很接近5 V,完全可以满足需要。
2.3 信息采集电路
图4 按键及状态指示灯电路
按键状态采集,学生可通过按键反馈实验平台运行情况的反馈信息,如图4。
温度的采集依靠CC2530 内部集成温度传感器,可通过寄存器操作实现温度采集。
实验平台工作电流状态的采集采用电流检测芯片ACS712 模块,接入CC2530 的AD 通道实现。
3 模块软件功能设计
管理模块分为协调端和节点终端。协调器主要负责建立网络及网络配置;接收上层实验教学管理系统通过串口发过来的指令,包括电源控制指令、状态信息获取指令、传感数据采集指令等;与节点交互数据。
节点终端的功能则是接收协调器指令,对指令进行解析,然后对相关设备进行操作,或将数据返回给上层协调器。
3.1 ZigBee 网络搭建
ZigBee 无线网络有三种拓扑结构:星型网络、网状结构和簇状结构。系统选择星型网络可以满足功能的需要,只需协调器和终端节点就可实现星型网络。在网络中,协调器建立网络之后,就可充当路由器使用,终端节点则作为数据采集终端。通过ZigBee 协议栈,由选择协议栈的配置文件设定设备类型。系统上电后,协调器自动选择一个信道,接着选择一个网络号,建立网络。网络建立后,协调器就可进行数据路由,充当路由器的角色。路由器进行数据的路由,允许节点加入网络,并可辅助其子节点通信[6]。终端节点主要功能是数据采集,不具有网络维护功能。
3.2 协调器程序设计
协调器软件具体实现功能:建立网络,实现数据的收发。首先存储节点端的地址信息,为向终端节点发送数据做准备。同时,协调器接收终端节点发送过来的传感数据和状态信息,然后通过串口将数据传送给上位机。协调器也从串口接收上位机指令,发送给终端节点,实现对终端的控制。
图5 是协调器程序流程图。
图5 协调端程序流程
3.3 终端节点程序设计
终端节点实现功能:加入网络,实现数据的收发。一方面,终端定时采集传感信息发送给协调器(如图7),再由协调器传给上位机。另一方面,终端也接收协调器发来的上位机指令,完成相关操作。
终端节点程序具体的工作是接收由协调端发送过来的指令,然后解析指令,进行设备状态获取、开闭设备、启动或停止传感数据采集等操作。另外,终端还可通过按键向协调端发送反馈信息。
终端程序流程图如图6。
图6 终端节点主程序流程
图7 定时中断服务程序流程
4 模块功能测试
对ZigBee 的实验平台管理模块的测试利用串口指令集来调控模块。模块与ARM 系统依靠串口通信,利用串口指令集进行功能调控,简单可靠。
4.1 串口发送数据格式
上位机串口指令长度设计为6 个字节,具体格式定义为:
设备号用于区分向那个模块发送指令,如设备号为0x01 时,就控制对应设备号的实验平台。需要注意的是,若设备号为0xff,表示控制所有实验平台。这用于区分协调端发送数据是单播模式还是广播模式。
自定义命令则是根据模块的功能设计确定的。以下是部分定义的命令。
测试数据如下:
串口指令为:0xff 0xaa 0xbb 0x02 0x05 0x23,表示获取2 号实验平台的使用状态。
串口指令为:0xff 0xaa 0xbb 0xff 0x05 0x23,表示获取所有实验平台的使用状态。
4.2 串口接收数据格式
串口接收到的数据也要具有一定的数据格式,以便于上位机提取信息。
数据长度定义为9 个字节,具体格式如下:
设备地址是指数据返回终端的网络地址,网络地址是一个16 位数据。
数据类型用来标明返回的是哪一类数据。若数据类型值为字符T,表示数据位温度值;若数据类型值为字符S,表示数据位为设备使用状态值。诸如此类。
测试数据如下:
串口接收数据:0x23 0x23 0x02 0x72 0x33 0x54 0x32 0x33 0x26,表示接收到设备2 的温度为23℃。其中0x54 为字符T 的ASCII 码,温度值以字符的形式显示。
串口接收数据:0x23 0x23 0x02 0x72 0x33 0x53 0x00 0x01 0x26,表示接收到设备2 的使用状态信息。0x53 为字符S 的ASCII 码,数据第八位值为0x01,表示设备正在使用,若为0x00,则表示设备关闭。
5 结束语
基于CC2530 的实验平台管理模块,弥补了传统实验平台无法实时监管的弊端,使高校开放实验平台的管理智能化成为可能,具有现实的应用价值。该管理模块采用CC2530为核心处理器,体现了组网便捷、成本较低、充分结合物联网技术实现无线远程监控,将该模块接入上位机即可实现多功能的、便捷化的监控系统,具有很强的可操作性。
[1]原羿,苏鸿根.基于ZigBee 技术的无线网络应用研究[J].计算机应用与软件,2004,21(6):89-91.
[2]吕西午,刘开华,赵岩.基于ZigBee 的无线监测系统设计与实现[J].计算机工程,2010,36(5):243-244.
[3]杜焕军,张维勇,刘国田.ZigBee 网络的路由协议研究[J].合肥工业大学学报(自然科学版),2008,31(10):1617-1621.
[4]任智,李鹏翔,姚玉坤,等.基于分段的ZigBee 网络按需可扩展地址分配算法[J].通信学报,2012,33(5):131-137.
[5]Texas Instruments.CC2530:A True System-on-Chip Solution for 2.4GHz IEEES02.15.4/ZigBee[OL].(2005-09-14).http://www.ti.com/
[6]王小强,欧阳骏,黄宁淋.ZigBee 无线传感器网络设计与实现[M].北京:化学工业出版社,2012.