基于ZigBee的城市照明监控系统
在苏州科技园的某条道路上对20个景观灯安装了单灯测控节点,组成单灯ZigBee无线传感器网络,而后在道路电控柜中安装了所设计的网关,最后通过监控中心的上位机软件进行了测试。
经实际运行,该系统可以很好地达到预期的效果,该网关方案较好地解决了ZigBee无线传感器网络与监控中心之间的数据传输问题。此外,虽然该网关设计方案是以照明监控系统为依托的,但为类似的无线传感器网络的网关设计提供了很好的参考,具有较高的实际应用价值。
路灯和景观灯是城市夜晚一道亮丽的风景线,也是城市中必需的公用照明设施。城市照明监控系统是一种监测与控制的集成系统。一套高效的城市照明监控系统可以节省大量的人力物力。但目前,我国城市照明监控技术还比较落后,存在很多问题。
主要表现在目前的城市照明灯光大多采用分散手控和时控的方式,即在路灯配电箱中安装定时器,按预定的时间自行开/关灯,当季节变化时需要人工干预来调整开关时间;而有些景观灯开关通常是人工手动控制方法,即根据开关灯时间表由值班人员手动进行开、关灯操作。现行的城市照明监控系统既不能及时调整开/关灯的时间,又无法及时反映照明设施的运行情况,并且故障率高、维修困难。
基于ZigBee的城市照明监控系统可以很好地解决这些问题,它采用了GPRS和ZigBee技术,不但可以采用电感降功率和电子整流器无级变功率等方法来节省路灯的用电量,还可以实时检测并控制照明设施状态。本文主要阐述照明监控系统中网关节点的软硬件设计方案。
1 照明监控系统架构
基于ZigBee技术的城市照明监控系统采用“监控中心—网关节点—单灯测控节点”的三层结构,通过GPRS的技术将监控中心的城市照明控制系统软件和网关节点联系起来,而网关节点又通过ZigBee路灯网络将路灯的数据信息发送到相关的路灯节点。城市照明监控系统的架构如图1所示。
图1 城市照明监控系统架构
图1中的路灯节点1至N通过网络协议实现了路灯通信的网络结构,每个网关节点作为该条道路的主控节点。通过GPRS通信技术和ZigBee技术的结合,可以将路灯的状态信息发送到中心服务器,并存入数据库中。监控中心通过对服务器的数据库进行操作就可以实现对路灯状态的监测和控制。
2 网关节点硬件设计
2.1 网关节点硬件架构
本设计的网关节点主要由主控芯片MCF52223、GPRS通信模块、宏电H7710 DTU、ZigBee通信模块MC13213[6]、EEPROM模块AT24C256、液晶显示模块、按键以及应用程序等组成。网关节点的体系结构如图2所示。
图2 网关节点体系结构
2.2 主控芯片
主控芯片采用了Freescale公司生产的Codefire系列32位单片机MCF52223。该芯片不仅拥有UART、I2C、SPI、USB接口,还有A/D转换接口、定时器接口等。它具有稳定性好、可靠性高、接口丰富等优点,可大大简化外围硬件电路设计,降低设计成本与复杂度。它主要用来采集和处理从路灯节点上传的状态信息,并通过接收监控中心发送的监控命令对ZigBee网络路灯节点进行监控操作。
2.3 GPRS模块
GPRS模块采用宏电的H7710 DTU模块,它是基于GPRS移动通信数据通信网路的终端产品。可为用户提供高速、永远在线、透明数据传输的虚拟专用数据通信网络。同时拥有RS232/422/485及TTL电平接口,适用于环境恶劣的各种工业监控、交通管理、气象等应用场合,易于集成。
H7710 DTU属智能性数据通信终端,安装设置完成后,接入用户数据源即可使用。正常运行时无需用户介入,且H7710正常运行时,无需日常维护。在许多嵌入式应用环境下通常只需通过数据中心发送检测和维护信息来确认终端是否正常运行。用户只需将数据送入H7710 DTU的串口,或者通过串口接收H7710 DTU传输来的命令帧进行解析。
本设计方案中H7710 DTU通过UART1与MCF52223芯片进行通信,H7710 DTU与MCF52223的接口电路如图3所示。MAX3232是H7710DTU的外围电路连接芯片。其中,TXD1为MCF52223的UART1发送数据引脚,RXD1为UART1接收数据引脚,DIN为串行数据输入端引脚。
图3 H7710 DTU与MCF52223接口电路
2.4 ZigBee通信模块
ZigBee通信模块采用Freescale公司生产的2.4 GHz射频芯片MC13213。它采用Freescale公司的低电压、低功耗HCS08核心,并带有嵌入式闪存、10位模/数转换器、低压中断和键盘中断等功能。MC13213支持专用点到点,简单星形以及MASH网络,采用Figure 8 Wireless Zstack的符合ZigBee标准的网络。MC13213最小系统电路如图4所示。
图4 MC13213最小系统电路
为了增加ZigBee的通信距离,在已有MC13211内部集成的射频模块的基础上增加了功率放大器、低噪声放大器、射频收发开关等IC。最终经实测,ZigBee模块的通信距离可以达到500 m左右,完全可以满足本设计方案中照明监控的要求。此外,ZigBee通信模块与主控芯片MCF52223之间亦是通过串口进行通信,本设计方案中采用的是MCF52223的UART0。
2.5 EEPROM模块
AT24C256是Atmel公司生产的256 Kb串行电可擦的可编程只读存储器。它采用8引脚双排式封装,具有结构紧凑、存储容量大等特点,特别适用于具有大容量数据存储要求的数据采集系统。本设计方案中需要存储大量的单灯节点上传的路灯状态信息,需要通过I2C总线与AT24C256进行通信,将路灯状态信息存储于其中。
2.6 液晶屏显示模块
液晶屏采用带中文字库的LCD12864液晶显示屏,它包括4位/8位并行、2线或3线串行的多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块。其显示分辨率为128×64,内置8 192个16×16点汉字和128个16×8点ASCII字符集。利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4行16×16点阵的汉字,也可完成图形显示,工作时低电压低功耗。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多。
图5 液晶显示主控界面
本设计方案液晶显示的主控界面如图5所示。可使用上下键选择菜单,使用OK键确认。
3 网关节点软件设计
3.1 基本任务实现
MCF52223主要实现接收ZigBee无线传感网络主控节点传输的数据,然后通过GPRS发送到中心服务器。同时对于中心服务器发送的一些控制命令进行处理,并通过串口传输到无线传感网络主控节点中。此外还包括一些LCD显示、按键、I2C总线的操作。MCF52223主控程序流程如图6所示。
3.2 μC/OSII系统移植
μC/OSII作为一个源代码公开的操作系统,在具体应用中稳定可靠,可扩展性强,功能强大,并且支持uIP、 TCP/IP协议栈、μC/GUI等。μC/OSII内核属于抢占式,最多可以处理64个任务,每个任务相对独立,都有超时函数,时间用完后交出MCU使用权。μC/OSII系统架构如图7所示。
为了使所设计的网关程序实时性更强、运行稳定性更高、扩展性更强,将μC/OSII操作系统移植到MCF52223上。其移植步骤如下:
① 设置与处理器及编译器相关的代码(OS_CPU.H)。OS_CPU.H包括了用#define定义的与处理器相关的常量、宏和类型定义。不同的编译器会使用不同的字节长度来表示同一数据类型,所以要定义一系列数据类型以确保移植的正确性。
② 处理器相关部分汇编实现OS_CPU_A.ASM函数的修改。要求用户编写4个汇编语言函数:OSStartHighRdy()、OSCtxSw()、OSIntCtxSw()、OSTickISR()。
③ 用C语言实现与处理器任务相关的函数OS_CPU_C.C。μC/OS_II的移植要求用户编写6个简单的C函数:OSTaskStkInit()、OSTaskCreateHook()、OSTaskDelHook()、OSTaskSwHook()、OSTaskStatHook()、OSTimeTickHook()。
图6 MCF52223主控程序流程
图7 μC/OSII系统架构
当μC/OSII系统移植完成后,添加网关节点实现的基本任务,包括网关与GPRS模块通信任务;网关与ZigBee模块通信任务;液晶屏显示任务;按键任务;I2C总线存储任务。