关 闭

新闻中心

EEPW首页>工控自动化>设计应用> 基于nRF905的无线传感器网络节点的设计与实现

基于nRF905的无线传感器网络节点的设计与实现

作者: 时间:2010-09-27 来源:网络 收藏

无线传感器网络是计算机技术、传感器技术和网络通信技术相结合的产物。它由大量随机分布的、具有实时感知、无线通信和自组织能力的传感器节点组成[1]。随着无线技术的高速发展,无线传感器网络越来越多地走进人们的视野中。与有线技术相比,无线技术具有成本低、体积小、省去复杂的布线等优点。但是由于现有的无线传感器节点大都采用电池供电,放置地点随机变动,随时可能出现节点中断的情况,通信能力十分有限,需要经常性的人工维护。因此,无线传感器网络节点要具有自组织、中断自我修复的功能,需要设计合适的通信协议和路由算法,以提高系统通信的可靠性。为此,本文采用无线射频芯片nRF905和STC12系列单片机设计了一种无线传感器节点,并且在典型自组织网络的通信协议-动态源路由协议DSR(Dynamic Source Routing)[2-4]的基础上,针对路由维护算法做出改进,设计出一种易于实现且实用性高的通信协议,实现了自组织和多跳传输数据的无线通信系统。
1 节点硬件设计
节点分为协调器节点和普通节点,普通节点带有传感器,负责采集需要的数据并组成网络,协调器节点负责整个网络的控制和数据的汇总、分析、处理等。图1为协调器和普通节点的结构图。

本文引用地址://m.amcfsurvey.com/article/162822.htm

1.1 MCU
STC12LE5410AD单片机是单时钟/机器周期(1T)的兼容8051内核单片机,是高速、低功耗的新一代8051单片机,指令代码完全兼容传统8051,而速度快8~12倍,内部集成硬件高速SPI(Serial Peripheral Interface)接口、2 KB EEPROM、A/D转换模块和MAX810专用复位电路。工作电压2.4~3.8 V,因此可用电池工作,并可长时间工作。器件在少于6 μs的时间内可以从低功耗模式迅速唤醒。STC12LE5410AD的超小封装、高度集成、精简外部电路可设计出更小的节点,超低的价格可以大规模铺设传感器节点。STC12LE5410AD单片机的这些特征,非常适合应用在无线传感器网络中。
1.2 射频收发器件nRF905[5]
nRF905由挪威Nordic公司生产,是一个为433/868/915 MHz-ISM(工业、科学、医疗)频段设计的单片无线收发芯片,32脚QFN封装,工作电压为1.9~3.6 V,最大发射功率为10 dBm。该收发芯片由频率合成器、接收解调器、功率放大器、晶体振荡器和调制器组成,片内自动完成曼彻斯特编码/解码。nRF905有两种活动(TX/RX)模式和两种节电模式。活动模式之间转换时间小于550 μs,活动模式与节电模式之间的转换时间小于650 μs。
nRF905通过SPI与微控制器通信,自动处理字头和循环冗余码校验(CRC)。当进行数据发送时,只需将配置寄存器信息、所要发送的数据和接收地址送给nRF905,它就会自动完成数据打包(加字头和CRC校验码)和发送。接收数据时,nRF905自动检测载波并进行地址匹配,接收到正确数据后自动移去字头、地址和CRC校验码,再通过SPI将数据传送到微控制器。
1.3 硬件连接设置
STC单片机通过内部集成的硬件高速串行外设接口SPI与nRF905连接,最快可达3 Mb/s,比软件模拟SPI方式快30倍左右,大大减少了程序执行时间,提高了网络的吞吐率。同时在设计协调器节点与PC上位机软件通信程序时,利用STC单片机1T时钟的优势,设置串口波特率使用的定时器12倍速方式,使串口波特率提高至115 200 b/s,提高了协调器节点的反应速度,减少了等待时间,提高了系统的吞吐率。
2 节点软件设计
本系统的软件设计分为协调器节点Connector软件和普通节点Node软件的设计,其中协调器节点作为整个网络系统的主节点,起着控制全网络的作用,通过PC机的上位机软件,可以对协调器进行接收和发送命令及数据,从而实现对整个系统网络的控制。而每个普通节点也预留通信接口,可以在需要的时候与其他设备相连接。
由于本系统实现自组织网络的需要,在物理层中为每个节点(包括协调器和普通节点)定义了相同的物理地址,实现全网的广播功能。在网络层为每个节点分配唯一的网络地址,通过软件判断接收数据的目的节点是否是本机。
图2为节点自组织流程图。当网络中增加一个新节点,新节点上电初始化后,首先会向协调器发送路由请求RREQ请求加入网络,并打开定时器;协调器收到RREQ后,记录新节点信息,并通过反路由发送应答信号ACK至源节点;如果新节点在设定的时间内收到ACK信号,表示加入网络成功,并且记录本节点至协调器的路由信息;如果在设定的时间内没有收到ACK信号,那么重新发送路由请求RREQ至协调器,如此循环直至收到ACK信号。如果重发次数达到设定的上线,仍没有收到ACK信号,则进行全网广播RREQ,并打开定时器,等待返回RREP命令;在设定时间后进行重新广播RREQ,直到到达重发上限。新节点收到RREP表示加入网络成功,同时保存RREP命令帧中的路由信息。


上一页 1 2 3 下一页

关键词:编解码器

评论


相关推荐

技术专区

关闭