基于TinyOS的CC1100驱动程序设计
摘 要:在无线传感器网络中,网络整体性能取决于节点上的通信模块。该文根据实际需要,在实现网络基本功能的前提下,选用功耗较小的CC1100芯片作为节点的无线收发单元。在分析CC1100功能特性并介绍嵌入式操作系统TinyOS的基础上,阐述如何使用NesC语言实现基于MSP430F1611平台的CC1100驱动程序。
1 概述
无线传感器网络(Wireless Sensor Network, WSN)是当前信息技术领域的热点研究方向之一,它综合了传感器技术、遥测技术、嵌入式计算技术、分布式信息处理技术和无线通信技术,是一种通过无线通信方式形成的多跳自组织网络系统。无线传感器网络由大量体积小、功耗低、具有无线通信、传感和数据处理功能的传感器节点组成。节点是无线传感器网络的基本单元,它一般由传感器模块(传感器、A/D转换器)、处理器模块(微处理器、存储器)、无线通信模块(无线收发器)和能量供应模块(电池)组成。
本文研发的无线传感器网络节点选用Chipcon公司低功耗低成本单片收发芯片CC1100作为无线通信模块,将其通过SPI串行总线技术与MCU(MSP430F1611)相连。采用加州大学伯克利分校人员专门为无线传感器网络开发的嵌入式操作系统TinyOS作为软件平台。
2 设计需求分析
无线传感器网络由大量资源受限的节点组成。资源受限的特点决定了在选择无线收发芯片以及开发驱动时,必须满足低功耗,并实现收发分组的基本功能。节点对CC1100的主要功能要求如下:发送时把MCU递交过来的数据封装成帧并实现分组发送;接收时完成分组接收后把数据提取出来交给MCU.无线传感器网络中节点发送一个比特所消耗的能量约等于其处理器进行1 000次32位加法运算消耗的能量[1],因此,为了减少分组碰撞,降低因分组重发而消耗的能量,CC1100应实现发送数据之前的信道监听即载波监听功能。为了进一步降低能耗,节点在没有数据发送或接收时应置于休眠状态,并可以按指定方式激活,即具有休眠唤醒功能。具体设计需求如下:
(1)收发分组。这是CC1100需要实现的主要功能,CC1100在发送数据前,要完成数据的分组封装,CC1100无线通信协议的分组格式如下:
其中,前导码是一连串的10101010?,其数量为8n个比特,n的大小由用户编程决定。同步字的内容和数量均可编程确定,长度为数据域的字节数,数据域内容为MCU递交的数据,CRC校验可以编程选择使用,灰色部分均可编程选择。
(2)载波监听。由于无线传感器中节点数量众多,节点密度大,如果不加控制就互相通信,必然会发生分组碰撞。为了减少碰撞机会,提高节点能量效率,本文通过CC1100的电平检测功能实现载波监听。CC1100提供了2种载波监听方式:绝对门限监听和相对门限监听。绝对门限监听是当信道电平超过某个指定数值时通知信道忙,相对门限监听是当信道电平增加量超过指定倍数(如6 dB)时,检测为信道忙。绝对门限监听需要大量信道特性统计来设置绝对门限电平值,相对门限监听方式可以避免上述工作且能适应时变噪声场合。在本文项目中采用相对门限来监听信道,效果很好。
相关文章
- 2023-11-19轴类零件的高精度形状误差检测方法研究
- 2023-12-14浅谈减压阀的结构设计
- 2023-03-09铜氨液流量测量的改进
- 2023-07-20光栅投影轮廓测量的系统标定技术
- 2023-12-10吸收式制冷循环系统的热力学分析
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。