一种基于ZigBee的城市照明监控系统网关节点设计
储要求的数据采集系统。本设计方案中需要存储大量的单灯节点上传的路灯状态信息,需要通过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总线存储任务。
结语
在苏州科技园的某条道路上对20个景观灯安装了单灯测控节点,组成单灯ZigBee无线传感器网络,而后在道路电控柜中安装了所设计的网关,最后通过监控中心的上位机软件进行了测试。经实际运行,该系统可以很好地达到预期的效果,该网关方案较好地解决了ZigBee无线传感器网络与监控中心之间的数据传输问题。此外,虽然该网关设计方案是以照明监控系统为依托的,但为类似的无线传感器网络的网关设计提供了很好的参考,具有较高的实际应用价值。
- 浅析基于MG2455微处理器Zigbee的汽车无线黑匣子实现(08-29)
- 基于ZigBee的城市照明监控系统网关节点的软硬件设计(01-15)
- 基于RSSI测距的定位算法的研究(01-15)
- 基于GPRS和ZigBee的远程油阀控制系统(01-17)
- 基于ZigBee无线网络的嵌入式智能家居监控系统(03-18)
- 设计实例:森林火灾实时监测与预警系统(03-18)