文献标识码:A
文章编号: 0258-7998(2011)03-0022-04
数据采集技术是获取信息的主要手段和方法,它是以传感器技术、测试技术、电子技术和计算机技术等为基础的一门综合应用技术。常用的数据采集多采用传感器,经过一定的数据变换与计算机通过串口或USB接口相连,由计算机读取传感器数值。随着相关基础技术的发展,以嵌入式计算机为核心的数据采集系统逐步形成,并占据了测控领域的统治地位[1]。振动量是测控应用中常要采集的一类数据,如机器的运行状态、动物的运动量等,都可以通过振动量反应出来。在实际应用中,有线检测往往出现布线困难、扩展性移植性差等问题,因此,无线检测系统逐渐进入了工程人员视野,最值得期待的便是ZigBee无线网络的应用。ZigBee技术主要应用在短距离小范围内以及数据传输速率不高(20~250 kb/s)的各种电子设备之间,其典型的传输数据类型有周期性数据(如传感器)、间歇性数据(如照明控制)和重复低反应时间数据(如鼠标)[2]。可以看出,ZigBee无线网络应用于数据采集具有其先天优势。
1 系统基本构架
无线振动数据采集系统如图1所示,左边为无线传感器网络,右边为数据采集终端。采集终端为一台嵌入式计算机,负责接收传感器数据并进行相关处理;外接一个ZigBee网络的协调器节点,完成对无线网络的管理。在传感器网络一端,各个传感器均接有一个ZigBee节点,其中大部分功能属于终端节点,在网络需要的情况下,可将部分终端节点配置为路由节点使用,以支持不同的网络拓扑结构。
2 硬件设计
系统硬件设计包括三种模块:ARM9处理器及其外围支持电路为一块完整的工业控制核心板;ZigBee网络节点的各功能节点采用独立的模块,模块上集成了射频收发器及控制单片机;传感器电路需自行设计,将制作成的电路板加接到ZigBee节点即可。
2.1 ARM9处理器及其外围电路
为了缩短系统的开发周期,设计中采用了成都某公司EM916x工业控制核心模块。该核心模块使用了一片AT91SAM9260的32位CPU,内存有32 MB和64 MB可选,板载有32 MB的Flash,用户可使用其中的一半,并且还集成了标准的MiniSD卡插槽,即插即用,为终端数据的存储提供了便利。在通信接口方面,EM9160配置了一路以太网接口,可用至多6路的标准UART串口,两路USB主控接口等[3]。
EM916x模块紧凑的集成设计,丰富的接口资源大大减少了设计数据采集终端的工作量,用户几乎不用做更多的外围电路设计,只需将要使用的接口按要求引出到标准接头即可。
2.2 ZigBee无线开发套件
本设计选择了成都某公司的C51RF系列ZigBee无线开发系统套件。该套件提供ZigBee开发所需的全套软硬件,包括ZigBee2006协议栈,完全满足IEEE802.15.4标准和ZigBee技术标准。套件使用无线单片机CC2430,是一个真正的SoC解决方案,它内部结合了一个高性能2.4 GHz直接序列扩频(DSSS)射频收发器核心和一个工业级小巧高效的增强型8051控制器。CC2430具有性能高、功耗低、收发灵敏度高和抗干扰性强等特点,尤其是在休眠模式下,器件的功耗尚不到1 μA,以之构建无线传感器网络能够在电池供电的情况下大大延长传感器的使用时限[4]。
2.3 传感器电路
常用的振动传感器分为压电/驻极体/电磁型、弹簧型、机械接触型等。CLA-3微型传感器是一种采用新型高灵敏度传感膜设计的全向振动传感器。CLA-3的灵敏度可调,抗干扰性好,输出为准数字信号,对于信号的后期处理相对比较简单。使用时必须采用刚性连接,如使用粘结胶固定,以减小振源与传感器之间的衰减[5]。图2为本设计中使用的检测电路,经过调理的振动传感器信号输出为方波,对方波进行计数即可获得振动数据。
2.4 硬件集成
集成后得到无线采集系统的硬件框图如图3所示。EM916x核心板与CC2430通过RS232串口相连,在核心板一端,除DEBUG串口外均可使用,而CC2430自带两个USART口,可使用其中任何一个;CAL-3传感器与CC2430的连接相对简单,只需将CAL-3应用电路的信号输出端接入CC2430的一个数字I/O口,在程序中以中断的方式读取该I/O口的计数即可。
ZigBee以独立的工作节点为依托,通过无线通信组成星状、树状或网状网络,每个节点都拥有一个唯一的64 bit IEEE地址,而其功能并不完全相同。从组网通信上来说,半功能设备RFD(Reduced Function Device)只是其功能的一个子集;全功能设备FFD(Full Function Device)则与所控制的子节点通信、汇集数据和发布控制,或起到通信路由的作用。无论采用哪种拓扑网络,每个网络都只能有唯一的协调器,它由全功能设备构成,相当于一台服务器,负责对整个网络的管理。FFD可作协调器、路由器以及终端节点使用,RFD只能用作终端节点。
本设计中无线传感网络采用图3所示的树状拓扑结构,与EM916x工控板相连的属于FFD设备,作为网络的协调器。而振动传感器端既可以接RFD设备作为终端节点,也可以接FFD设备。与FFD设备相接的传感器作为终端节点使用的同时,还具备路由功能,并能接收终端节点的入网请求,它类似于一台有线网络的路由器,通过中继转发及路由选择,可大大扩展无线网络的覆盖范围,提高通信稳定性以及网络容量。
3 软件设计
EM916x核心板预装了Win CE实时多任务操作系统,支持包括MFC在内的各种典型的Windows应用程序框架,可以方便地使用Embedded Visual C++开发各种应用程序。CC2430开发套件自带了完整的ZigBee协议栈,使用IAR集成开发环境对协议栈工程文件进行管理,可以查看并修改整个协议栈的任意层源代码。因此,软件设计分为两部分:Win CE下的应用程序设计和ZigBee协议栈的添加与修改。
3.1 Win CE应用程序设计
应用程序驻留在EM916x核心板中,主要功能是负责打开连接协调器的串口,设置串口通信参数;初始化ZigBee无线网络,查询并返回网络状况,如是否建立成功、各种节点的状态及数目等;监视串口接收协调器发来的数据帧;解码数据帧读取传感器数值,并由EM916x核心板的调试串口打印出来。应用程序流程如图4(a)所示。
3.2 ZigBee协议栈修改
ZigBee协议栈完成了无线网络初始化的绝大部分功能,代码修改应谨慎对待。使用IAR集成开发工具打开ZigBee2006协议栈工程,找到ZMain工程目录。打开后可以看到这是协议栈的主函数目录,包括入口函数和硬件配置文件,在这里便可以添加自定的应用函数。
无线网络中三种节点的功能各不相同。协调器负责初始化无线网络,等待子节点的入网,并接收子节点的数据帧,通过串口发送到主机,程序流程如图4(b)所示。路由器与终端节点添加的应用函数功能相同,首先搜寻ZigBee网络,并向网络中的协调器或路由器申请加入网络;初始化定时计数器,允许中断,对振动传感器的输入方波进行计数,定时向父节点(即允许其入网的节点)发送计数值,图4(c)为路由节点和终端节点的程序流程图。路由器与终端节点只要在下载前选择编译即可。
4 系统仿真
仿真软件使用Lab View编写,仿真界面如图5所示。左侧用于选择ZigBee网络协调器与核心板相连接的串口号、波特率及控制按钮;右上部显示的是终端节点采集到的振动数值,包括节点发送数值时间、节点编号、当前发送振动计数值及上一次发送的计数值。右下方为某个终端节点在一定时段内振动计数的波形图,节点选择在左下方的“奶牛编号”(原项目名称)。图5所显示的是将传感器套挂在奶牛脖子上实地采集到的振动数据。
通过现场实验证明,利用ZigBee无线网络构建的数据采集系统具有非常好的准确性与实时性,而在拥有多个路由节点的网络中,ZigBee网络能够得到非常大的延伸。通过实验也发现了一个问题:当终端节点与地面的距离太近,大约小于30 cm时,节点与协调器之间的通信可靠性及通信距离大为降低,越接近地面,可靠通信距离就越短。后期采用的解决办法是增大无线信号的发射功率,此时通信距离有所改观,但这并不是一个好办法,发射功率的增大意味着节点的电池寿命将缩短。
ZigBee是一种新兴的短距离、低速率、低功耗无线网络技术,其应用领域愈来愈广泛,如数字家庭中的自动抄表系统、室内无线定位及动物远程监控等。本文中无线振动数据采集系统的传感器如果设计成诸如自动抄表器、无线定位引擎等,便可应用于各种不同的场合。
参考文献
[1] 李念强,魏长智,潘建军,等.数据采集技术与系统设计[M].北京:机械工业出版社,2009.
[2] 李文仲,段朝玉.ZigBee2006无线网络与无线定位实战[M].北京:北京航空航天大学出版社,2008.
[3] EM916x工控主板数据手册.http://www.emtronix.com/.
[4] ZigBee无线片上系统CC2430/CC2431中文使用说明手册. http://www.c51rf.com.
[5] CLA-3全向振动传感器简介与应用.http://wenku.baidu. com/.
[6] 范逸之,廖锦棋.Visual Basic硬件设计与开发——数据采集卡控制[M].北京:清华大学出版社,2004.
[7] 周林,殷侠.数据采集与分析技术[M].西安:西安电子科技大学出版社,2005.
[8] [美]Edgar H.Callaway,Jr.无线传感器网络:体系结构与协议[M].王永斌,屈晓旭译.北京:电子工业出版社,2007.