1 概述
自动抄表系统[1]是一种不需要人工到现场就能完成抄录用户电表数据的自动化管理系 统。 ZigBee 技术是近几年兴起的一种面向自动化和无线控制的双向无线通信技术。它具有 [2]近距离、低功耗、低数据速率、低复杂度、低成本的特点,而且网络容量大、时延短、安 全、可靠。正是以上优点使ZigBee 技术为自动抄表系统的发展提供了更好的选择。采用 ZigBee 无线网络协议,利用免费频段进行通讯,协同监测各用户用电情况,动态组网、自 主路由的通讯,都是自动抄表领域的研究热点。
2 zigbee 自动抄表总体设计方案
本系统结构主要分为三层:终端节点、基站、控制中心。系统工作过程如下:该系统把一 些带有ZigBee 协议的芯片模块与传感器集成,然后把此芯片嵌入到终端电表数据采集,把 它作为网络的一个节点。当传感器监测到电表中某些信号发生变化时,它能触发节点芯片产 生中断,从而激活节点芯片,芯片会自动进入数据采集程序,当数据采集结束后,它通过无 线收发模块,把处理好的数据包发送出去。中间的协调器负责网络的管理以及数据的转发, 它可以通过发广播方式进行节点的管理,还可以通过收发模块把多个节点的数据收集处理, 可以通过无线路由中转与PC 联网,这样就可以把电表数据的信息发送到远端进行处理,同 时对设备进行远程控制。
3 硬件设计
以 ARMs3C2410 为控制核心,带有键盘、显示屏、大容量内存及与电脑连接的通讯端 口,它具有两个方向上的对外接口:向上与抄表控制中心的GPRs/GSM 接口、向下与Zigbee 无线网络通讯的接口。抄表控制器还具有显示、打印等功能,用户可以利用基站所带的微型 打印机接口,连接打印机后将接收的用户数据信息进行打印。显示模块则可以提供操作菜单, 方便用户进行数据查询、抄表时间的显示、用电费用查询等功能。其主要组成部分包括嵌入 式MCU(53C2410)、USB 接口、液晶显示器、串口通信口、Flash 程序控制器、SDRAM 静 态存储器、调试端口、复位、键盘等。其中嵌入式微处理器是嵌入式系统硬件的核心。
各部分功能如下:
1.FLASH 闪存用来存放操作系统、系统引导程序和其它在系统掉电后需要保 存的用户数据。
2.SDRAM 主要用来存放执行代码和变量,是系统启动之后主要进行存取操作 的存储器,具有容量大、存取速度快、成本低的特点,因而广泛应用到微机处理 系统中。
3.复位电路可完成系统上电复位和在系统工作时用户按键复位。
4.RS232 串行接口[3]电路用于s3C2410 系统与其他系统的短距离双向串行通信。
5.USB 接口是通用串行总线,分为 USBHOST 和DEVICE 两个接口。用于现场 数据提取。
6.RS485 用于总线与现场仪表接口。
7.LCD 接口:53C2410 内部有LCD 控制器可以支持STN 和TFT 屏,用于显示。
8.JTAG 接口为联合测试行动小组 (JointTestAetionGroup),借助边界扫描的 方式对芯片内部部件进行访问,可对系统进行调试、编程等。
9.GSM/GPRS 模块及相关电路:GSM/GPRS 模块是远程数据传输的载体,完成 抄表集中器GSM 的数据通道是TTL 电平,和ARMS3C2410 的串行口兼容,可直接连 接。对于SIM 卡的安装,可内嵌到GSM 转换电路板上。
10.电源电路为SV 到3.3V 的DC 一DC 转换器,给s3C2410 及其他需要3.3V 电源的 外围电路供电。
H.有源晶振电路为系统提供工作时间,通过片内PLL 电路倍频为50MHZ 作为微处理器的工作时间。
3.1 微处理器模块
微处理器模块[4]负责控制整个节点的数据处理操作、路由协议、功耗管理、任务管理等, 最主要的是需要实现网络安全可靠的通信协议;无线通信模块负责与其他节点进行无线通 信,交换控制消息和收发数据。节点微处理器使用德州仪器(TI)的CC2410,它是用于2.4GHz IEEE802.15.4/ZigBee 的片上系统解决方案。CC2410 内部整合了IEEE 802.15.4 标准的2.4 GHz 的RF 无线电收发机、内存和微控制器。它使用一个八位MCU(8051),既有128KB 的可编程闪存和8KB 的RAM,还包含ADC、定时器、AES-128 协同处理器、看门狗定时 器、掉电检测电路等。微处理器全速工作时(32MHz),在接收和发射模式下,电流损耗约 为27mA。CC2410 的休眠模式及其从休眠模式转换到工作模式的超短时间(在微秒级), 特别适合那些要求电池寿命非常长的应用。CC2410 有21 个可编程的I/O 口引脚,如图6 所 示,P0、P1 口是完全的8 位口,P2 口只有5 个可使用的位。通过软件设定一组SFR 寄存器 的位和字节,可使这些引脚作为通常的I/O 口或作为连接ADC、计时器或USART 部件的外 围设备I/O 口使用。[page]
3.2 电源显示模块
电源模块管理单元节点类型不同有不同的供电方式,在终端设备节点上,电源由两节 1.5V 碱性电池组成,协调器的电源是用USB 供电或者交流电供电。
协调器上有 LCD,可以用来显示收发的命令和节点状态。按键可以用来控制绑定以及 发送命令。在协调器上还有RS-232 串口,与监控主机通讯。如图3 所示。
4 软件设计
软件设计可分为三层:底层硬件驱动程序,协议栈程序,用户应用程序。程序采用模块 化分层结构,不同层之间留出调用接口,采用直接调用程序的方式完成各层之间的通信。
4.1 CC241O 底层硬件驱动程序设计
(1)OLED 显示模块驱动
在 OLED 驱动程序initoled.c 中,首先初始化串行1/0 接口,完成控制OLED 模块的CC241O 的相应端口的配置,再对SSD13O3 控制寄存器进行设置,包括行 列显示控制、起始行等属性的配置,然后调用Smbsend 函数把配置信息发送到 OLED 模块,最后调用清屏函数,流程图如图5 所示。
[page]
(2)键盘驱动
键盘驱动程序initKey.。流程图如图6 所示。
图 6 键盘模块初始化流程图
4.2 zigBee 协议栈的使用
要建立一个单独的任务,必须先将 osalTaskAdd()函数所需要的参数条件定义好,这些 参数分别是初始化函数wxLesexamPle--Init,任务处理函数wXLesexamPle--event_foop 和任 务优先级。任务初始化函数的功能是将该任务需要完成的功能的功能部件初始化,在每一个 任务的初始化函数中,必须完成的功能是要得到设置任务的任务ID。任务处理函数是对任 务发生后的事件进行处理,一般包括网络状态的判断(判断设备的类型,是协调器还是路由 器或者是终端设备)和接收到信息后的处理。任务优先级[5]则是按照1 一256 排列,优先级 高的排在前面。
所以协议栈的使用流程是:
4.3zigBee 用户应用程序
根据节点功能的不同,需要设计相应的用户应用程序。如果程序是在协调器上运行,那 么LRW 队 NCOORD 俐ATOR 预定义必须在头文件中定义;如果程序是在路由节点上运行, 那么LRW 队 NROUTER 预定义必须在头文件中定义;如果这两个预定义都没有定义则程序 在RFD 节点上运行。下面本系统中使用的电表采集节点和协调器节点上的用户应用程序的 架构。
(1)协调器节点
对协调器节点来说[6],程序是在它接收到远程控制中心的指令后从组建网络开始的,协 调器节点再向其通信范围内的电表采集节点发送唤醒指令,同时等待新节点的入网请求。系 统启动后,首先初始化所有的硬件和软件,并设定网络参数,然后初始化协议栈,网络建立 成功后即进入中断的循环检测和处理过程。UARTI 是由远程控制中心下达指令引起的中断, 协调器节点通过uARTI 和GPRs 连接,远程控制中心通过GPRS 下达的指令的到来就会引 起UARTI 终端事件的发生。协调器节点对接到的指令进行解析后执行相应的命令。定时器 中断主要用来向远程控制中心发送ZigBee 网络采集到的电表数据,向电表采集节点发送采 集数据指令及更新路由表。
(2)电表采集节点
电表采集节点在程序启动后[7],也是会首先初始化所有硬件和软件,初始化协议栈,并 试图加入网络,如果加入网络不成功,则进入休眠状态,由一个定时器定时唤醒电表采集节 点重新加入网络。如果加入网络成功,则按照其收到的终端类型进行相应的处理。网络中电 表采集节点通过发送KVP 帧与协调器进行数据交互,协调器主要发送采集电量指令和对时 指令到电表采集节点,电表采集节点再根据数据的属性进行相应处理。程序流程图如8 所示。[page]
图 8 电表采集节点程序处理流程图
5 小结
根据自动抄表系统的特性和需求和ZigBee 技术的不断发展,本文研究并设计了基于 ZigBee 技术的自动抄表系统。ZigBee 作为一个成本低、功耗低、组网容易的无线通信技术, 是目前最适合应用于自动抄表系统的短距离无线通信技术。无线传感器网络技术是未来一个重要的研究方向,结合具体的应用情况,研究相关组网技术,路由算法,完成无线传感器网 络各种拓扑结构的构建。
参考文献:
[1]. PC datasheet http://www.dzsc.com/datasheet/PC+_2043275.html.
[2]. DEVICE datasheet http://www.dzsc.com/datasheet/DEVICE+_1397784.html.
[3]. TTL datasheet http://www.dzsc.com/datasheet/TTL+_1174409.html.
[4]. RS-232 datasheet http://www.dzsc.com/datasheet/RS-232+_584855.html.
上一篇:嵌入式Web访问时的内存丢失问题
下一篇:基于Linux的USB从设备驱动研究
推荐阅读最新更新时间:2024-03-16 13:20