采用MC13192的无线传感器网络节点设计方案

zigbee技术是一种新兴的无线通信技术,以低速率、低功耗、短距离而著称,是目前研究的热门技术。本文简要介绍了zigbee技术体系结构与特点,以及基于zigbee技术的无线传感器网络的主要优势;重点介绍了一种采用符合zigbee技术的射频芯片mc13192实现无线传感器网络节点的设计方案,并对系统硬件接口电路与无线通信软件流程作了说明。
关键词 zigbee技术 无线传感器网络节点 mc13192 lpc2138
引言
无线传感器网络是计算机技术、通信技术和传感器网络技术相结合的产物,是互联网领域研究的热点之一。应用于无线传感器网络的技术有许多种(如蓝牙技术、红外技术和超带宽无线通信技术等),推动了无线传感器网络的发展。但是,在家庭控制、医疗护理和工业监测应用中不需要很高的带宽,需要的只是低延迟、低功耗;而如果使用现有的、过于复杂的无线通信技术,将非常耗电,占用过多的计算和通信资源。为满足上述要求,zigbee技术应运而生。zigbee技术是一种具有统一技术标准的短距离无线通信技术,把低功耗、低成本作为重要目标,主要应用于低速传输,可以作为无线传感器网络的通信协议。
传感器节点是组成无线传感器网络的基本单元,是构成无线传感器网络的基础平台。zigbee网络节点通常是一个微型嵌入式系统,完成数据的采集、处理和传送,是决定网络性能的重要因素。本文采用freescale公司的zigbee无线收发射频芯片mc13192和philips公司的32位arm芯片lpc2138,完成了无线传感器网络节点的设计,给出了软、硬件设计方案,并且在硬件基础上进行了结果分析。
1 zigbee技术及其优势
图1 zigbee协议栈结构
zigbee协议标准是由zigbee联盟与ieee 802.15.4的任务小组来共同制定的,其协议栈主要由5层体系组成,结构如图1所示。其中,物理层和mac层标准主要由ieee 802.15.4的任务小组完成;网络层和安全层由zigbee联盟制定;应用层的开发则根据用户的应用需要对其进行开发,用户提供机动、灵活的组网方式。
zigbee技术适合于承载数据流量较小的业务,特别是无线传感器网络,因为它具有以下优点:
功耗低。由于其传输速率低,发射功率仅为1 mw,所以功耗很低;而且采用了休眠模式,因此zigbee设备非常省电。据估算,zigbee设备仅靠两节五号电池就可以维持长达6个月~2年左右的使用时间。
时延短。通信时延和从休眠状态激活的时延都非常短,典型的搜索设备的时延为30 ms,休眠激活的时延为15 ms,活动设备信道接入的时延为15 ms。因此,zigbee技术适用于对时延要求苛刻的无线控制等应用。
网络容量大。一个星型结构的zigbee网络最多可以容纳254个从设备和1个主设备,一个区域内最多可以同时存在100个独立而且互相重叠覆盖的zigbee网络。
安全可靠。采取了碰撞避免策略,避开了发送数据的竞争和冲突;采用完全确认的数据传输模式,每个发送的数据包都必须等待接收方的确认信息;还提供了基于循环冗余校验的数据包完整性检查功能,支持鉴权和认证。
基于以上特点与优势,zigbee技术在无线传感器网络中的应用将有广阔的发展空间。
2 mc13192芯片与lpc2138芯片简介
mc13192是freescale公司推出的符合zigbee标准的射频芯片。其工作频率是2.405~2.480 ghz,该频带划分为16个信道,每个信道占用5 mhz的带宽;采用直接序列扩频的通信技术,数据传输速率为250 kbps。mc13192具有一个优化的数字核心,有助于降低mcu处理功率,缩短执行周期。为了适应低功耗的要求,芯片除了接收、发送和空闲3种工作状态外,还有3种低功耗运行模式: ① 掉电模式,这种模式下芯片电流小于1 μa;② 睡眠模式, 这种模式下电流在3 μa左右;③ 休眠模式,这种模式下下电流约为35 μa。芯片采用可编程功率输出模式,发送功率为0~4 dbm,接收灵敏度可以达到-92 dbm,传输距离30~70 m。
lpc2138芯片是philips公司推出的一个支持实时仿真和嵌入式跟踪的32位arm7微控制器。它具有丰富的片上存储功能,带有512 kb嵌入的高速flash存储器和32 kb片内静态ram;还带有多个串行接口,2个8路10位a/d转换器,1个d/a转换器和47个gpio,以及多达9个边沿或电平触发的外部中断。lpc2138有两种低功耗模式: 空闲模式和掉电模式。较小的封装和极低的功耗使其可以理想地与mc13192结合,作为基于zigbee技术的无线传感器网络节点。
3 无线传感器网络节点设计
传感器节点一般由数据采集单元、数据处理单元、数据传输单元和电源管理单元等功能模块组成,如图2所示。数据采集单元负责采集监视区域的信息并完成数据转换,采集的信息包含温度、湿度、光强度、加速度和大气压力等;数据处理单元负责控制整个节点的处理操作、路由协议、同步定位、功耗管理以及任务管理等;数据传输单元负责与其他节点进行无线通信,交换控制消息和收发采集数据;电源管理单元选通所用到的传感器。
图2 传感器节点组成框图
3.1 节点硬件设计
图3是节点的硬件原理图。电路外围元器件较少,主要包括6个模块: lpc2138 mcu模块、mc13192无线射频模块、电源模块、uart串口模块、jtag接口模块和数据采集i/o模块。lpc2138和mc13192通过spi总线连接。lpc2138的spi接口工作在主机模式,是数据传输的控制方;mc13192设为从机模式。lpc2138通过4线spi接口对mc13192的内部寄存器进行读写操作,从而完成对mc13192的控制以及数据通信。由传感器输出的模拟信号经过10位a/d变换后输入到lpc2138中,lpc2138将传感器采集的信号经过处理后通过mc13192发射出去。对传感器的控制信号可以从mc13192的天线接收进来,通过spi传送到lpc2138上,经过其判断处理后通过gpio口传送到传感器上,以实现对传感器的控制。mc13192芯片指定的晶振频率为16 mhz,考虑到晶振对通信质量的影响,在制作pcb板时应将晶振的位置尽可能地靠近mc13192芯片的xtal1和xtal2引脚。电源电路采用两种方式: 一种是3.6 v干电池;另一种是钮扣电池,可以根据需要选用。
图3 节点硬件原理图
3.2 节点软件设计
按照硬件电路设计思路,软件采用模块化结构程序设计方式。软件模块包括: 数据发送模块、数据接收模块、uart串口模块、lpc2138与mc13192连接的spi模块、中断服务模块。系统软件编程的基本思路: 先对spi端口、mc13192控制端口和lpc2138控制端口进行初始化;使能spi端口、uart端口和a/d;初始化mc13192芯片;开启接收机后,即可运行任务程序,实现接收或发送数据。这里简要给出lpc2138与mc13192之间的spi通信程序。发送和接收程序流程如图4和图5所示。
void spidrvwrite (uint8 u8addr, uint16 u16content) {/*spi写函数*/
uint8 u8tempvalue;
mc13192disableinterrupts();/*禁止mc13192产生中断请求*/
io1clr = mc13192_ce;/*使能mc13192 spi */
sspdr = (uint8)(u8addr & 0x3f);/*写入要访问的6位地址,设置写*/
while((sspsr & 0x01) == 0);/*等待发送栈为空*/
while((sspsr & 0x10) != 0);/*等待状态寄存器空闲*/
u8tempvalue = sspdr;/*清空地址中的内容*/
sspdr = (uint8)(u16content >> 8);/*写高字节*/
while((sspsr & 0x01) == 0);
while((sspsr & 0x10) != 0);
u8tempvalue = sspdr;
sspdr = (uint8)(u16content & 0x00ff);/*写低字节*/
while((sspsr & 0x01) == 0);
while((sspsr & 0x10) != 0);
u8tempvalue = sspdr;
io1set = mc13192_ce;/*禁止mc13192 spi*/
mc13192restoreinterrupts(); /*恢复mc13192中断状态*/
}
uint16 spidrvread (uint8 u8addr) {/*spi读函数*/
uint8 u8tempvalue;
uint16 u16ret;
spiclearrecievestatreg(); /*清状态寄存器*/
spiclearrecievedatareg();/*清接收数据寄存器*/
mc13192disableinterrupts(); /*禁止mc13192产生中断请求*/
io1clr = mc13192_ce;/*使能mc13192 spi */
sspdr = (uint8)((u8addr & 0x3f) | 0x80);/*写入要访问的6位地址,设置读*/
while((sspsr & 0x01) == 0); /*等待发送栈为空*/
while((sspsr & 0x10) != 0);/*等待状态控制器空闲*/
u8tempvalue = sspdr;
sspdr = (uint8)0xff;
while((sspsr & 0x01) == 0);
while((sspsr & 0x10) != 0);
u8tempvalue = sspdr;/*存放高字节数据*/
sspdr = (uint8)0xff;
while((sspsr & 0x01) == 0);
while((sspsr & 0x10) != 0);
u16ret = sspdr;/*存放低字节数据*/
u16ret=u16ret+u8tempvalue*256;/*存放一个完整字*/
io1set = mc13192_ce;/*禁止mc13192 spi*/
mc13192restoreinterrupts();/*恢复mc13192中断状态*/
return u16ret;
}
图4 发送程序流程图5 接收程序流程
3.3 实验结果
图6为硬件节点实物图。该电路板经过仿真调试应用良好,可以实现多个节点间的通信;在实验电路板上设置了一个led,可以通过灯的闪烁来指示信息接收的质量以及接收的成败;能够利用串行接口与计算机进行通信,并且可以通过jtag接口电路进行程序的固化。初步的实验表明: 通信距离基本达到预期目标,在空旷地带以最大功率传输,可以以较小误码率传输60多米。采用1节电压为3.6 v、容量为2 100 mah的干电池供电时,节点连续工作的时间为3~4天。如果使得该节点始终工作在超低功耗的工作状态,则其工作时间可以超过1年,能够满足特定应用场合对电池寿命的要求。
图6 硬件节点实物图
结语
经实验证明,以mc13192和lpc2138为核心构造的无线传感器网络节点,在功耗、传输距离以及无线传输速率等性能上都能满足应用要求。在此方案基础之上,通过移植zigbee协议栈,可以构建zigbee网络的网络层、应用层及安全层,再配以满足特定要求的传感器便可实现具体的应用网络。

中国与美国的AI差距有多大?先进AI研究方面美国领先中国10倍
固态继电器的工作原理及作用
士兰成都半导体复工率达97% 一手抓防疫一手抓生产
TI推出集成型三路输出同步降压转换器
JFET级联实现恒定精确电流源的方法
采用MC13192的无线传感器网络节点设计方案
5G网络和5G频段有什么区别
HTC公布Vive配件价格,售价为99.99美元
OPPO_R11的上市引发OPPO售卖大危机?凡是卖出一台,罚款500元!
日本将应用人工智能技术分析数据来缓解城市交通拥堵
二维码门禁如何实现扫码开门,如何保障出入安全
台阶仪原理与使用指南!请查收
windows server设置FTP域用户隔离步骤浅析
开源发展“加速度” 软通动力子公司鸿湖万联亮相中国国际软件博览会
Model Y车型类似Model3 但续航里程会低于Model3
洲明科技光显一体化解决方案成功入驻巴黎会议宫
翼龙II无人机成功首飞 水平和美军“死神”相当
Intel处理器集成显卡面向休闲、主流游戏
μC/0S-II操作系统移植到TMS320VC33微处理器上的应用
可调稳压电源应用设计总结分析