基于CyFi的无线传感器网络组建与通信设计

2009-10-26 13:35:19来源: 单片机与嵌入式系统

  实现无线传感器网络的相关协议层出不穷,如红外、蓝牙、ZigBee、Wi-Fi等。但是目前这些协议都存在种种问题,例如红外技术遇到障碍物就失灵,蓝牙比较耗电,ZigBee协议比较复杂等等。针对这些问题,Cypress公司推出了CyFi低功耗无线解决方案,同时还推出了针对新手的PSoC FirstTouch入门套件CY3271以及其他扩展套件。本文使用此套件组建CyFi无线传感器网络,并在PC机上通过USB接口实现节点的绑定及数据的采集。

  1 CyFi简介

  Cypress公司先前推出的WirelessUSB技术已被广泛应用于无线鼠标、键盘、游戏手柄等产品中。在此基础之上,Cypress公司又推出了针对嵌入式控制领域的一款低成本、低功耗、高可靠性的无线射频解决方案——CyFi。CyFi的市场定位使其具有可靠、简化、低功耗、多信道等特点。

  ①可靠。通过使用直接序列扩频(DSSS)调制技术,CyFi能够使传输的数据从可能的错误中恢复回来,从而提供出色的连接可靠性。对于来自同样工作在非常拥挤的2.4 GHz频段的Wi—Fi、蓝牙、ZigBee等其他无线技术的干扰,CyFi的跳频技术能以预设的频段间隔自动搜索干净的信道进行通信,如图1所示。同时,CyFi的链接管理功能可以根据网络环境将发射功率、传输速率自动调整到保证可靠链接的最优配置上。DSSS调制、跳频技术和成熟的链接管理算法使得CyFi成为2.4 GHz频段的高可靠性无线解决方案。

CyFi的跳频技术能以预设的频段间隔自动搜索干净的信道进行通信

  ②简化。CyFi提供的轻量级星型协议栈CYFISNP尺寸非常小,应用于Hub仅占用8 KB,而应用于节点仅为6 KB,如图2所示。CYFISNP协议栈可直接在PSoCDesigner中使用,其所提供的用户模块使开发者只需简单的拖放即可实现创新的无线设计,用户无需自行编写任何通信协议或编码,与PSoC可编程片上系统的结合使其在研发过程的任何阶段都可进行重新编程。

  ③低功耗。为了实现低功耗,CyFi尽量工作在睡眠模式。这意味着在干扰较弱的情况下,CyFi将以尽可能快的速度(1 Mbps)传输,以缩短传输时间;而在干扰较强的情况下,将启用DSSS调制技术并提高RF发射功率以250 kbps的速率传输,从而减少重传的可能。当节点与Hub的距离较近时,节点也能降低发射功率从而减小功耗。这种有效的电源管理机制使得采用CyFi的典型传感器应用只靠2节AA电池就可使用4年之久。

  ④多信道。由于CyFi仅占用1 MHz的带宽,故可用信道多达80个,而ZigBee等仅能使用16个5 MHz的信道。

协议栈大小比较

  2 CY3271简介

  CY3271是Cypress公司针对新手推出的一款带CyFi的低成本USB接口套件,包括PSoC集成开发环境PSoCDesigner、用于数据采集的感应控制软件SCD、带RF功能的PC桥FTPC、多功能板FTMF、支持长距离无线应用并带功率放大器的RF扩展板FTRF,以及2个电池板。其中,PC桥FTPC作为CyFi的Hub设备使用;RF扩展板FTRF作为CyFi的节点设备使用,同时带有一个超低功耗的温度传感器;而多功能板FTMF中带有CapSense触摸传感器、接近式传感器、温度传感器、光传感器和红、黄、蓝3个LED灯。本文中仅以CapSense触摸传感器为例。

  3 硬件结构

  由于CyFi使用的是星型广播式网络协议,所有消息需要经过中心Hub,故实现节点A到节点B数据通信的过程如下:节点A通过I2C协议采集多功能板A的CapSense触摸滑块的位置、3个LED灯的亮灭情况等数据,并与目标节点B的ID号一起通过RF发送出去;Hub检测到网络中有消息后,再根据消息中的目标节点ID将消息转发出去,同时将数据保存到缓存中等待PC机读取;节点B接收到消息之后根据消息中的数据,同样通过I2C协议控制多功能板B上的3个LED灯的亮灭。其中Hub所在设备FTPC有2个PSoC内核:主内核实现USB—I2C转换和各个板卡(包括从内核)的编程功能;从内核实现Hub功能,同时通过I2C与主内核连接。系统功能框图如图3所示。

系统功能框图

  4 软件设计

  4.1 PSoC软件设计

  CY3271套件的光盘中提供了各个PSoC的设计样例,本文中PSoC部分的设计就是在这些样例的基础上修改而成的。为了实现上述功能,需要在节点A发送的消息中添加目的节点B的ID信息,以便Hub将接收到的消息再转发出去。每个CyFi收发器有2种ID;一种为6字节的Radio ID,此ID在收发器出厂时烧入,不可更改且全球唯一;另一种为1字节的Node ID,此ID在节点绑定时确定,可以事先指定也可以由Hub动态分配。由于Ra-dio ID较复杂,开发人员在开发过程中可以忽略RadioID,而只关注Node ID。

  对于多功能板A可直接使用光盘上的MF_CS_SLIDE样例,不需要修改。对于节点A使用的RF_12C_BRIDGE样例,主函数中需修改调用CyFiSNP_BindStart()函数时的参数,如下:

程序

  其中,采集并发送消息的函数sendNewTxMsg()中发送的消息类型必须修改为CYFISNP_API_TYPE_CONF_BCDR,且应在调用的loadTxData()函数中添加如下一句以添加节点B的ID信息:

  txApiPkt.payload[I2C_PAYLOAD_MAX]=DEV_ID_RX;

  对于Hub使用的RF_HUB样例,首先需要将用户模块CYFISNP的Device ID assignment属性设置为Preas-signed Device ID,以便节点A、B使用指定的ID绑定成功。重新编译后,在ServeSNPPackets()函数中接收到CYFISNP_API_TYPE_CONF_BCDR类型的消息之后,添加如下代码:

程序

程序

  对于节点B使用的RF_I2C_BRIDGE样例,其主函数同样需要修改CYFISNP_BindStart()函数的参数,同时还需暂存接收到的消息。核心代码如下:

程序

[1] [2]

关键字:无线传感器网络  CyFi  CY3271

编辑:金海 引用地址:http://www.eeworld.com.cn/mndz/2009/1026/article_1813.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
无线传感器网络
CyFi
CY3271

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved