我想做一个zigbee节点的监测节点,zigbee节点部分是有现成的模块还是按照自己的电路图进行制版??

trackbacks-0
接触网是铁路运行必不可少的高压输电线。接触网在使用中,断线会造成重大事故,如行车中断、人员伤亡等。在日常维护中,除了测量磨耗这个方案,别的方案都无法及时找到断线隐患。随着近几年接触网技术装备的投入使用,因几何参数超标造成的故障已得到改善,而断线故障却一直无法得到解决。当线索张力为0或者接近于0,则表示已经断线。根据断线的原因及物理特性,若对接触网的温湿度及线索张力进行实时检测,那么就能事先判断断线的可能性,及时采取措施。
    传统的电气设备在线监测系统所采用的连接方式为有线的RS485连接,该方式不止会让现场作业时布线困难,而且施工周期长,成本高,不易于维护。ZigBee无线通信功耗低、成本低、安全性高、实时性强,相比来说,更适用于接触网电气设备在线监测。为此,本文设计了应用通信技术进行接触网在线监测的系统。
1 系统设计
1.1系统总体方案
接触网在线监测系统包括ZigeBee采集数据、接收数据以及上位机监控管理系统。接触网模块包含了一些传感器,所采集的数据包括线索张力、温度和湿度。传感器节点主要负责根据上位机监控管理系统的指令采集数据,部分节点还具备路由功能,可转发其它节点的数据;接收数据模块即ZigBee数传网络中的网关节点——协调器,主要负责发起网络,收集网络中传感器节点所采集到的数据,最终数据的采集和传输是通过多跳的方式实现的。通过串行通信端口可以将协调器节点的数据发送给监控管理系统。监控管理系统主要完成向协调器节点发送采集命令,将接收到的接触网数据进行存储、显示、整理归纳,一旦数据与预设值相差太大立刻报警,对整个网络工作状态进行控制。
    在铁路沿线上,以2km为单位,设计一个小型的块网络,一般接触网支柱与支柱间的距离不超过65m,可将传感器节点安置在接触网支柱上面,即以每个支柱为一个节点,监测接触网状态。这样每个小型的ZigBee无线模块网络就大约有31个节点,各以一个协调器节点为中心进行组网。由于行车时段与空闲时段对接触网参数会有影响,所以采集的数据分为行车时数据和空闲时数据。
1.2系统硬件设计
外围器件主要有两大模块:串口通信模块和射频传输模块。
LED指示灯用来指示网络的连接状态和数据传输,键盘是用在对网络的配置。ZigBee数传模块采用2.4GHz免授权的ISM频带,共有16个信道。射频传输模块包括:匹配网络和滤波网络。系统硬件框图见图1。
圈1 系统硬件框图
1.3系统软件设计
1.3.1帧结构的定义在本网络中,任何通信数据都是利用帧的格式来组织的。根据IEEE802.15.4协议,系统定义了两种帧类型:命令帧和数据帧。命令帧只由一个帧头组成,数据帧由帧头和用户数据组成。
数据帧和命令帧中的起始标志位和结束标志位都取相同的数7EH,为保证协调器和主控制设备之间数据传输的透明,需对信息字段中出现的标志字节进行转义处理,转义定义如:7EH=7DH+01H。具体如表1所示:
表1 帧格式定义表
1.3.2 ZigBee数据采集和接收模块
网络中数据通信可以分为直接通信和间接通信。间接通信是指节点之间通过端点绑定建立一种通信表,该通信方式不用清楚目标节点的网络地址,Z-Stack自动从绑定表中查找目标设备的网络地址。直接通信采用网络短地址作为参数调用适当的APl发送数据。为了网络能够更加灵活的应用,系统采用直接通信,并且终端设备和采集模块实现透明传输。这样采集模块就完全不必理会终端设备的工作原理,只需要遵守相应的波特率。
终端设备从模块收到数据后,把数据组装成数据帧,然后把帧传给协调器(也就是网络地址Ox0000)。协调器和主控制设备之间的串口通信,则必须遵守系统规定的帧格式。协调器从主控设备收到数据后,先对帧进行识别。如果是命令帧,则根据相应的命令做出应答。如果是数据帧,则提取出网络地址,并把帧发送到相应的节点上。数据传输的流程图如图2所示:
围2 协调器与终端设备的通信机制
1.3.3上位机监控管理系统
上位机监控管理系统是整个接触网在线监测的重要组成部分,采用C语言编制,操作简单,易于管理。可发送数据采集指令、接收数据并显示,对于接触网断线可能性高的地方标以红色并报警,可以通过查询数据库查看历史数据。监控系统报警过程如图3所示。
图3 上位机监控管理系统报警流程
2 系统测试及分析
协调器和主控制设备通过串口线连接,如图4所示。因为两个设备都是工作在3.3V,所以不需要电平的转换直接就可连接。连接好后,给块加上工作电压。等待协调器建立网络成功后,使用主控制设备的触摸屏上的刷新控件进行节点信息的刷新。进入主界面后,在窗口的下拉菜单显示出当前的节点,有Rouler节点和End节点。在触摸屏上选中End节点,就可看到从采集设备传送过来的张力、温度和湿度值。接着选中窗口中的图3上位机监控管理系统报警流程LED控件,将会弹出一个新的窗口,上面有四个控件Ledl、Led2、Led3、Led4。随便选中其中一个控件,就可看到采集模块上的Led灯被点亮。系统测试网络包括1个协调器节点和5个传感器节点,最终数据传输到监控管理系统,界面如图5所示。
图4 协调器和主控制设备的通信
图5 上位机监控管理系统
根据联机调试结果分析,主控制设备和上位机能够非常稳定的接收到采集设备发送的温度和湿度值。系统采用了应答/重发机制,因此网络问数据的通信非常稳定,几乎不会出现数据丢失,除非节点断开网络。
    在测试数据传输的可靠性中,当数据量大时,会出现丢帧的现象。经过分析发现,是由于终端设备为了降低功耗采用了睡眠模式,会周期性的进入休眠状态,这将导致帧的大量堆积从而导致数据的丢失。对于传输速率要求较高的应用,可以采用路由器替换终端设备,但是这样会增加设备的功耗。在一般的应用中,本系统完全满足要求。
本系统屏蔽了复杂的协议,仅通过串口、命令帧和数据帧就可以实现ZigBee数传模块通信。网络采用了网状网络的的拓扑结构。网络在通信时,主要使用直接通信。为了让数据稳定传输,系统采用应答/重发机制。能够有效的判断接触网断线的可能性及具体位置,发出警报。操作简单,系统易于管理维护。采用的块通信成本低、功耗低,可在电气化铁路上推广,为接触网安全提供重要的保障。
   
阅读(...) 评论() &基于Zigbee技术的传感与节点电源模块电路设计
日 14:41 来源:互联网 作者:秩名 (0)
  Zigbee技术作为无线传感器网络(WSN)的核心技术之一它具有如下特点:1) 设备能耗低,电池供电,适用于常规供电方式不可用的野外、田间。2) 通信可靠,网络自组织、自愈合,无需人工干预。各通信节点之间根据确定的路由规则自动找寻、加入网络。当节点脱离、故障、移动时,网络能够自我修复并形成新的拓补结构。3) 成本低廉,设备的复杂度低且网络容量大。Zigbee协议是免费的,TI等公司也已经推出了相关免费协议栈,且其工作在2.4Ghz全球免执照频段,这使其产品化成本极低。4)数据安全。Zigbee支持数据完整性和鉴权工程、AES-128加密算法。新版本的Zigbee Pro支持更高级的安全算法,并能根据应用场景不同灵活配置。
  系统工作原理如下:终端传感节点采集数据后向路由节点发送数据包,路由节点汇总各节点数据包后向协调器节点转发。协调器节点接到数据包后继续向上转发至串口转网口设备。串转网设备将接到的串口数据包重新打包成RJ45数据包经无线路由器转发至现场监控PC。与此同时分布在温室中的无线IP摄像头也将数据通过路由器传至现场监控PC。手持嵌入式网关同时也可以直接接入路由器实时显示环境数据。现场监控PC安装有服务系统,作为Server服务器,远程PC直接通过浏览器和IP地址访问即可实现远程测控。上述主要是传感数据的上行链路,下行链路类似,由上位机发出控制指令,依次经路由器、串转网设备、协调器最终转发至对应控制节点执行控制指令。
  传感控制模块设计
  传感和控制模块是系统实现测控的根本。空气温湿度传感器采用瑞士Sensirion推出的SHT11数字温湿度传感器,IIC接口,湿度值输出分辨率为 14位,温度值输出分辨率为12位,并可编程为12位和8位。电源电压范围为2.4~5.5 V。电流消耗:测量时为550&A,平均为28&A,休眠时为3&A[4, 5]。光照传感器采用光敏探头BPW34S[6],光敏探头经运放处理后到AD输入。传感控制模块中均采用NXP公司IIC总线控制GPIO扩展芯片 PCA9554提供8位并行I/O口。处理器通过IIC直接读取SHT11温湿度数据,通过AD间接读取光照数据。传感模块原理图如图3。
  控制模块主要采用继电器和DA模拟电压输出。继电器模块原理图如图。上位机下达控制指令后,PCA9554驱动相关I/O口使三极管导通或断开驱动继电器闭合或断开。
  DA程控模拟电压输出模块采用TI公司DA芯片DAC5573和缓冲放大运放使用TLV2372。DAC5573最大输出电压为3.0V,经运放TLV2372放大3.3倍后输出约为10V。电压输出模块原理图如图。
  节点电源模块设计
  节点电源模块设计采用的是TI公司TPS63001DRC(3.3V)和TPS63002DRC(5.0V)两款DC/DC电源转换芯片为系统提供稳定的 3.3V和5.0V电压。系统设计成两节干电池或USB供电方式,预留锂电池接口。供电电源之间可无缝切换。电源模块原理图如图。
  该系统将当前热门物联网核心技术之一的Zigbee技术应用于温室监控系统中,实现了温室基本环境因子的采集与控制,并实现了监控的远程可视化操作,可靠性高、抗干扰能力强。设计解决传统温室中线缆纵横交错,布置不便且维护成本高的难题,具有很高的实用意义与推广价值。
相关技术文章:
相关资料下载:
上周热点文章排行榜
上周资料下载排行榜
技术交流、我要发言! 发表评论可获取积分! 请遵守相关规定。
创新实用技术专题
NFC与iBeacon作为两大热门技术在移动互联网、O2O、...求zigbee开发板的原理图,谁家的也可以。_百度知道论坛 - ZigBee技术 - ZigBee技术 - 德州仪器在线技术支持社区
发表于1年前
<input type="hidden" id="hGroupID" value="43"
作者:&a href=&.cn/space-uid-568539.html& target=&_blank& class=&xw1&>yichun417&/a>&/p>
&p>作品名称:&span>&基于TI的Zigbee模块的医院输液管理系统&/span>&/p>
&p>一、 项目设计背景及概述&/p>
&p>每个医院输液大厅里面同时都有很多病人在输液,如何保证每个病人每瓶输液快结束时护士能够准时来换药瓶或者拔管,因此就需要一个输液管理系统。&/p>
&p>二、 项目设计原理&br>1、 原理概述&br> 首先每个输液装置自成一个从节点,从节点中包含重力传感器来测量瓶子里面剩余药液的多少(相对值),同时给每种规格的药瓶一个满液初始值和一个空瓶最终值。通过采集重力传感器的输出来算出剩余药液的百分比。通过无线模块传送到服务器端(护士站电脑)进行实时显示。同时每个装置也自带LCD显示实时结果和按键来设置参数。当百分比低于某个值时装置产生报警(蜂鸣器响),同时通过无线模块给服务器端发送报警信号。护士接收到报警信号迅速根据节点号来到病人跟前等待换药或者拔管。由此可以避免医疗事故的发生。&br>预期效果:可以保证每个病人的换药和拔管及时,避免医疗事故的发生。&/p>
&table cellspacing=&0& cellpadding=&0&>
&td class=&t_f& id=&postmessage_1785791&>
&div align=&left&>主节点实物图:&/div>
&table cellspacing=&0& cellpadding=&0&>
&td class=&t_f& id=&postmessage_1785791&>
&div align=&left&>&img id=&aimg_180772& src=&.cn/data/attachment/forum//fueqe11gyf4s1.gif.thumb.jpg& width=&600& height=&524& alt=& &>&/div>
&div align=&left&>&img id=&aimg_180779& src=&.cn/data/attachment/forum//nqcq2c8f72cr.gif.thumb.jpg& alt=& &>&/div>
&div align=&left&>从节点实物图:&/div>
&div align=&left&>&img id=&aimg_180782& src=&.cn/data/attachment/forum//072902dqopicqorqiibfu1.gif.thumb.jpg& alt=& &>&/div>
&div align=&left&>&span>&span style=&color:#0000&>从节点实物图:&/span>&/span>&/div>
&div align=&left&>&img id=&aimg_180774& src=&.cn/data/attachment/forum//072738pis21l1q2ssmls4c.gif.thumb.jpg& alt=& &>&/div>
&div align=&left&>&span>&span style=&color:#0000&>传感器实物图:&/span>&/span>&/div>
&div align=&left&>&img id=&aimg_180778& src=&.cn/data/attachment/forum//072744ndhosb9hhpkll3pl.gif.thumb.jpg& alt=& &>&/div>
&div align=&left&>&span>&span style=&color:#0000&>传感器实物图:&/span>&/span>&/div>
&div align=&left&>&img id=&aimg_180775& src=&.cn/data/attachment/forum//c45e40zkci04a9.gif.thumb.jpg& alt=& &>&/div>
&div align=&left&>&img id=&aimg_180776& src=&.cn/data/attachment/forum//072741yrzyyqzft4rjf44y.gif.thumb.jpg& alt=& &>&/div>
&br>&br>&/td>
&div class=&ptg mbm mtn&>&/div>
&div class=&pattl&>&dl class=&tattl attm&>&dd>
&p class=&mbn&>
&div class=&mbn savephotop&>&a>&img id=&aimg_180777& src=&.cn/data/attachment/forum//sf44557d9dac2.gif.thumb.jpg& alt=&6.GIF& title=&6.GIF&>&/a>&/div>
&/dd>&/dl>&/div>&div style=&clear:&>&/div>" />
资深大牛ZigBee技术应用经验汇总
此问题尚无答案
All Replies
举人1941分
作品名称:&基于TI的Zigbee模块的医院输液管理系统
一、 项目设计背景及概述
每个医院输液大厅里面同时都有很多病人在输液,如何保证每个病人每瓶输液快结束时护士能够准时来换药瓶或者拔管,因此就需要一个输液管理系统。
二、 项目设计原理1、 原理概述 首先每个输液装置自成一个从节点,从节点中包含重力传感器来测量瓶子里面剩余药液的多少(相对值),同时给每种规格的药瓶一个满液初始值和一个空瓶最终值。通过采集重力传感器的输出来算出剩余药液的百分比。通过无线模块传送到服务器端(护士站电脑)进行实时显示。同时每个装置也自带LCD显示实时结果和按键来设置参数。当百分比低于某个值时装置产生报警(蜂鸣器响),同时通过无线模块给服务器端发送报警信号。护士接收到报警信号迅速根据节点号来到病人跟前等待换药或者拔管。由此可以避免医疗事故的发生。预期效果:可以保证每个病人的换药和拔管及时,避免医疗事故的发生。
主节点实物图:
从节点实物图:
从节点实物图:
传感器实物图:
传感器实物图:
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
举人1941分
作品名称:&基于的ZIGBEE无线网络自学经验分享
我是从零开始学,一步一步摸索过来的,这些都是我在第一阶段说设计的东东(这么说的意思是掩盖了我现阶段也在摸着石头过河的尴尬而已),拿出来分享一下吧!先上一组核心板吧,看着还像回事的。&&&接下来展示一下自己与核心板配套的组合,因为是自己做实验担心技术不过关造成不必要的浪费而没有设计电源部分,这一点让我在后面的进展中很后悔&&为了能够带一盏台灯,做了下面一个手工打造了下面的板子&通过实验验证了板载的倒F型天线在可视距离40米内可以正常工作,控制我的台灯还蛮easy的,这部分我就不上图了剩下10块空板,不知道论坛里如何赠送因为不会安卓编程(目标年底前入门),只能在电脑上用C#搞上位机了,想将MODBUS嵌入到zstack中。
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
举人1941分
作品名称:Zigbee无线通知设备()&
最近做了一个使用Zigbee做生产线通知仓库送料设备。功能很简单,就是发送器按键按下,接收器接收到发送器数据后,报警并回应,发送器在接收到回应后,指示灯点亮表示数据发送成功。在这个过程中,遇到最大的问题就是传输距离的问题,因为在厂房内部产线和仓库之间隔了很多机器,又有一层比较厚的水泥墙。造成无线信号在传输的过程中有较大的损耗。所以只要改功率和接受灵敏度了,结果距离还是不够,只好再加一个路由器节点来作为中继了。这样才达到了要求。本来客户要求一个接收器配两个发送器。在所有东西都弄好后,准备到客户那儿去安装,后来不知怎么的,他们突发奇想,要一个接收器配一个发送器,共两套。谁让客户是上帝,没办法,只有改了。真是吐槽无语凝噎啊。说多都是泪啊,去改PANID吧。改完测试,正常工作。需要说明的是,因为交期短,来不及做PCB,只有用之前做的一块PCB了,在这之前,曾做了一块仿PLC的PCB(有点大材小用),并预留了Zigbee模块接口(Zigbee模块是淘宝买的).
控制板和发送器
控制板和接受器
控制板背面
控制板和接受器
控制板和发送器
另外关于给大家介绍:Zigbee 设置信道,PANID,发射功率
现对里几个网络参数的设置以及如何获取总结一下。
信道配置:
Zigbee在3个频段定义了27个物理信道:868MHz频段中定义了1个信道,915MHz频段中定义了2个信道,信道间隔为2MHz,2.4GHz频段上定义了16个信道,信道间隔为5MHz.
中心频率/MHz
信道间隔/MHz
频率上限/MHz
频率下限/MHz
k=1,2,&,10
906+2(k-1)
k=11,12,&,26
2401+5(k-11)
中可以在f8wConfig.cfg里设置信道,相关部分如下:
/* Default channel is Channel 11 - 0x0B */
// Channels are defined in the following:
//&&&&&&&&&0&&&&&&: 868 MHz&&&&&0x
//&&&&&&&&&1 - 10 : 915 MHz&&&&&0x000007FE
//&&&&&&&&11 - 26 : 2.4 GHz&&&&&0x07FFF800
//-DMAX_CHANNELS_868MHZ&&&&&0x
//-DMAX_CHANNELS_915MHZ&&&&&0x000007FE
//-DMAX_CHANNELS_24GHZ&&&&&&0x07FFF800
//-DDEFAULT_CHANLIST=0x&// 26 - 0x1A
//-DDEFAULT_CHANLIST=0x&// 25 - 0x19
//-DDEFAULT_CHANLIST=0x&// 24 - 0x18
//-DDEFAULT_CHANLIST=0x&// 23 - 0x17
//-DDEFAULT_CHANLIST=0x&// 22 - 0x16
//-DDEFAULT_CHANLIST=0x&// 21 - 0x15
//-DDEFAULT_CHANLIST=0x&// 20 - 0x14
//-DDEFAULT_CHANLIST=0x&// 19 - 0x13
//-DDEFAULT_CHANLIST=0x&// 18 - 0x12
//-DDEFAULT_CHANLIST=0x&// 17 - 0x11
//-DDEFAULT_CHANLIST=0x&// 16 - 0x10
//-DDEFAULT_CHANLIST=0x&// 15 - 0x0F
//-DDEFAULT_CHANLIST=0x&// 14 - 0x0E
//-DDEFAULT_CHANLIST=0x&// 13 - 0x0D
//-DDEFAULT_CHANLIST=0x&// 12 - 0x0C
-DDEFAULT_CHANLIST=0x&// 11 - 0x0B&&&&这里默认使用的是编号为11的信道
当建网过程开始后,网络层将请求MAC层对规定的信道或由物理层默认的有效信道进行能量检测扫描,以检测可能的干扰。网络层管理实体对能量扫描的结果以递增的方式排序,丢弃那些能量值超出可允许能量水平的信道,然后再由网络层管理实体执行一次主动扫描,结合检查PAN描述符,对剩下的信道选择一个合适的建立网络。
若要在应用中查看信道,可以这样获得,_NIB.nwkLogicalChannel,读取这个就OK了。(NIB -NWK Information base-.&其中包含一些网络属性 PANID ,NETWORK ADDRESS 等等。其中_nib.nwkpanID是本网的ID标识,_NIB.extendedPANID按照字面意思是外网ID)
在确定信道以后,下一步将是确定PANID,如果ZDAPP_CONFIG_PAN_ID被定义为0xFFFF,那么协调器将根据自身的IEEE地址建立一个随机的PANID(0~0x3FFF),如ZDAPP_CONFIG_PAN_ID没有被定义为0xFFFF,那么网络的PANID将由ZDAPP_CONFIG_PAN_ID确定。
&如果ZDAPP_CONFIG_PAN_ID被定义为0xFFFF,那么协调器将根据自身的IEEE地址建立一个随机的PANID(0~0x3FFF)&这句话怎么理解呢,我经过试验发现,这个随机的PANID并非完全随机,它有规律,与IEEE地址有一定的关系:要么就是IEEE地址的低16位,要么就是一个与IEEE地址低16位非常相似的值。如IEEE地址为0x2211,PANID很有可能就是2211,或相似的值;IEEE地址为0x7777,PANID很有可能就是3777,或其它相似的值;
中相关部分代码如下:
/* Define the default PAN ID.
* Setting this to a value other than 0xFFFF causes
* ZDO_COORD to use this value as its PAN ID and
* Routers and end devices to join PAN with this ID
-DZDAPP_CONFIG_PAN_ID=0xFFFF
若要在应用中查看PANID可以这样获得,_NIB.nwkPanId,读取这个就OK了。
发射功率:
传送范围的大小是和发射功率还有信道环境有关,&传送速率和传送范围之间没有直接联系。所以呢,适当的增大发射功率可增大传送范围。但也是有一定的限制的。具体详见datasheet。
在mac_radio_def.h里有可以设置:
#define MAC_RADIO_CHANNEL_DEFAULT&&&&&&&&&&&&&&&11
#define MAC_RADIO_TX_POWER_DEFAULT&&&&&&&&&&&&&&0x1F
#define MAC_RADIO_TX_POWER_MAX_MINUS_DBM&&&&&&&&25
这些只是举例说明一下,这些参数的意义,以及在里的什么地方修改。还有很多其它的参数,可以查看相关的源文件。
[mac_radio_def.h]
#define MAC_RADIO_SET_CHANNEL(x)&&&&&&&&&&&&st( FSCTRLL = FREQ_2405MHZ + 5 * ((x) - 11); )
#define MAC_RADIO_SET_TX_POWER(x)&&&&&&&&&&&&st( TXCTRLL = )
#define MAC_RADIO_SET_PAN_ID(x)&&&&&&&&&&&&&&st( PANIDL = (x) & 0xFF; PANIDH = (x) && 8; )
[mac_radio.c]
void macRadioInit(void)
/* variable initialization for this module */
reqChannel&&&&= MAC_RADIO_CHANNEL_DEFAULT;
macPhyChannel = MAC_RADIO_CHANNEL_DEFAULT;
reqTxPower&&&&= MAC_RADIO_TX_POWER_DEFAULT;
macPhyTxPower = MAC_RADIO_TX_POWER_DEFAULT;
[mac_low_level.h]
uint8 macRadioRandomByte(void);
void macRadioSetPanCoordinator(uint8 panCoordinator);
void macRadioSetPanID(uint16 panID);
void macRadioSetShortAddr(uint16 shortAddr);
void macRadioSetIEEEAddr(uint8 * pIEEEAddr);
void macRadioSetTxPower(uint8 txPower);
void macRadioSetChannel(uint8 channel);
void macRadioStartScan(uint8 scanType);
void macRadioStopScan(void);
void macRadioEnergyDetectStart(void);
uint8 macRadioEnergyDetectStop(void);
设置发射功率:
设置RF的发送功率寄存器为TXPOWER,全局搜索一下可以看到以下代码
#define MAC_RADIO_SET_PAN_COORDINATOR(b)
st( FRMFILT0 = (FRMFILT0 & ~PAN_COORDINATOR) | (PAN_COORDINATOR * (b!=0)); )
#define MAC_RADIO_SET_CHANNEL(x)
st( FREQCTRL = FREQ_2405MHZ + 5 * ((x) - 11); )
#define MAC_RADIO_SET_TX_POWER(x)
st( TXPOWER = )&/font&
#define MAC_RADIO_SET_PAN_ID(x)
st( PAN_ID0 = (x) & 0xFF; PAN_ID1 = (x) && 8; )
#define MAC_RADIO_SET_SHORT_ADDR(x)
st( SHORT_ADDR0 = (x) & 0xFF; SHORT_ADDR1 = (x) && 8; )
继续跟踪MAC_RADIO_SET_TX_POWER
/**************************************************************************************************
macRadioUpdateTxPower
Update the radio&#39;s transmit power if a new power level has been requested
reqTxPower - file scope variable that holds the last request power level
macPhyTxPower - global variable that holds radio&#39;s set power level
**************************************************************************************************
MAC_INTERNAL_API void macRadioUpdateTxPower(void)
halIntState_
If the requested power setting is different from the actual radio setting,
attempt to udpate to the new power setting.
HAL_ENTER_CRITICAL_SECTION(s);
if (reqTxPower != macPhyTxPower)
Radio power cannot be updated when the radio is physically transmitting.
If there is a possibility radio is transmitting, do not change the power
This function will be called again after the current transmit
completes.
if (!macRxOutgoingAckFlag && !MAC_TX_IS_PHYSICALLY_ACTIVE())
update the shadow value and write
the new value to the radio hardware.
macPhyTxPower = reqTxP
&font color=&#ff0000&&
MAC_RADIO_SET_TX_POWER(macPhyTxPower);&/font&
HAL_EXIT_CRITICAL_SECTION(s);
在这里我们可以看到TXPOWER的设置值实际上应该是reqTxOower,让我看一下reqTxOower在哪里设置吧,继续跟踪可以发现reqTxPower在函数MAC_INTERNAL_API uint8 macRadioSetTxPower(uint8 txPower)中得到更新,一路跟踪下去可以在函数uint8 MAC_MlmeSetReq(uint8 pibAttribute, void *pValue)看到以下代码
case MAC_PHY_TRANSMIT_POWER:
/* Legacy transmit power attribute */
#if !defined HAL_MAC_USE_REGISTER_POWER_VALUES && \
!defined HAL_PA_LNA && !defined HAL_PA_LNA_CC2590
/* Legacy transmit power attribute value for CC2530 alone,
* or runtime selection support build means a negative absolute value.
* However, when used as register power values or
* with HAL_PA_LNAxxx definition (without runtime selection)
* the attribute value is not a negative absolute value. */
macPib.phyTransmitPower = (uint8)(-(int8)macPib.phyTransmitPower);
#endif /* !defined HAL_MAC_USE_REGISTER_POWER_VALUES && ... */
/* pass through to next case -- do not break*/
#endif /* MAC_OBSOLETE_PHY_TRANSMIT_POWER */
case MAC_PHY_TRANSMIT_POWER_SIGNED:
(void)macRadioSetTxPower(macPib.phyTransmitPower);
到这里为止发送功率的设置流程已经明确,但是我找遍的工程也没有找到调用uint8 MAC_MlmeSetReq(uint8 pibAttribute, void *pValue)的地方想来应该是封装在TI提供的LIB文件中了,修改TXPOWER的方法有两种:一、在uint8 macRadioSetTxPower(uint8 txPower)函数中通过修改macPib.phyTransmitPower = (uint8)(-(int8)macPib.phyTransmitPower);的值来修改TXPOWER参数,系统复位后将使用调用该函数设置发送功率。修改macPib.phyTransmitPower = (uint8)(-(int8)macPib.phyTransmitPower);可以通过修改以下结构体中的红色部分来修改
static CODE const macPib_t macPibDefaults =
/* ackWaitDuration */
/* associationPermit */
/* autoRequest */
/* battLifeExt */
/* battLifeExtPeriods */
/* *pMacBeaconPayload */
/* beaconPayloadLength */
MAC_BO_NON_BEACON,
/* beaconOrder */
/* beaconTxTime */
{0, SADDR_MODE_EXT},
/* coordExtendedAddress */
MAC_SHORT_ADDR_NONE,
/* coordShortAddress */
/* gtsPermit */
/* maxCsmaBackoffs */
/* minBe */
/* panId */
/* promiscuousMode */
/* rxOnWhenIdle */
MAC_SHORT_ADDR_NONE,
/* shortAddress */
MAC_SO_NONE,
/* superframeOrder */
/* transactionPersistenceTime */
/* assocciatedPanCoord */
/* maxBe */
/* maxFrameTotalWaitTime */
/* maxFrameRetries */
/* ResponseWaitTime */
/* syncSymbolOffset */
/* timeStampSupported */
/* securityEnabled */
/* Proprietary */
#if defined (HAL_PA_LNA)
/* phyTransmitPower for CC2591 */
#elif defined (HAL_PA_LNA_CC2590)
/* phyTransmitPower for CC2590 */
&span style=&color:#ff0000;&&0,
/* phyTransmitPower without frontend */&/span&
MAC_CHAN_11,
/* logicalChannel */
{0, SADDR_MODE_EXT},
/* extendedAddress */
/* altBe */
MAC_BO_NON_BEACON,
/* deviceBeaconOrder */
该值可以再-22到3之间变化具体可以参考
const uint8 CODE macRadioDefsTxPwrBare[] =
/* tramsmit power level of the first entry */
(uint8)(int8)-22, /* transmit power level of the last entry */
/* characterized as
4.5 dBm in datasheet */
/* characterized as
2.5 dBm in datasheet */
/* characterized as
dBm in datasheet */
/* characterized as
dBm in datasheet */
/* characterized as -0.5 dBm in datasheet */
/* characterized as -1.5 dBm in datasheet */
/* characterized as -3
dBm in datasheet */
/* characterized as -4
dBm in datasheet */
/* characterized as -6
dBm in datasheet */
/* characterized as -8
dBm in datasheet */
/* -10 dBm */
/* characterized as -10
dBm in datasheet */
/* -11 dBm */
/* -12 dBm */
/* characterized as -12
dBm in datasheet */
/* -13 dBm */
/* -14 dBm */
/* characterized as -14
dBm in datasheet */
/* -15 dBm */
/* -16 dBm */
/* characterized as -16
dBm in datasheet */
/* -17 dBm */
/* -18 dBm */
/* characterized as -18
dBm in datasheet */
/* -19 dBm */
/* -20 dBm */
/* characterized as -20
dBm in datasheet */
/* -21 dBm */
/* -22 dBm */
/* characterized as -22
dBm in datasheet */
二、就是使用MT功能
void MT_SysSetTxPower(uint8 *pBuf)
/* A local variable to hold the signed dBm value of TxPower that is being requested. */
uint8 signed_dBm_of_TxPower_
* A local variable to hold the signed dBm value of TxPower that can be set which is closest to
* the requested dBm value of TxPower, but which is also valid according to a complex set of
* compile-time and run-time configuration which is interpreted by the macRadioSetTxPower()
* function.
uint8 signed_dBm_of_TxPower_range_
/* Parse the requested dBm from the RPC message. */
signed_dBm_of_TxPower_requeseted = pBuf[MT_RPC_POS_DAT0];
* MAC_MlmeSetReq() will store an out-of-range dBm parameter value into the NIB. So it is not
* possible to learn the actual dBm value that will be set by invoking MACMlmeGetReq().
* But this actual dBm value is a required return value in the SRSP to this SREQ. Therefore,
* it is necessary to make this redundant pre-call to macRadioSetTxPower() here in order to run
* the code that will properly constrain the requested dBm to a valid range based on both the
* compile-time and the run-time configurations that affect the available valid ranges
* (i.e. MAC_MlmeSetReq() itself will invoke for a second time the macRadioSetTxPower() function).
&font color=&#ff0000&&
signed_dBm_of_TxPower_range_corrected = macRadioSetTxPower(signed_dBm_of_TxPower_requeseted);&/font&
* Call the function to store the requested dBm in the MAC PIB and to set the TxPower as closely
* as possible within the TxPower range that is valid for the compile-time and run-time
* configuration.
(void)MAC_MlmeSetReq(MAC_PHY_TRANSMIT_POWER_SIGNED, &signed_dBm_of_TxPower_requeseted);
/* Build and send back the response that includes the actual dBm TxPower that can be set. */
MT_BuildAndSendZToolResponse(((uint8)MT_RPC_CMD_SRSP | (uint8)MT_RPC_SYS_SYS),
MT_SYS_SET_TX_POWER, 1,
&signed_dBm_of_TxPower_range_corrected);
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
举人1941分
作品名称:基于的zigbee无线信息传输系统的制作
&我记得TI公司出的CC系列的无线芯片性能非常好,而且集成了片上MCU处理器,直接串口输出,只用增加一个usb转串口的芯片就行。
& &我本科的时候玩过这个模块,当时测试的时候,我和一同学分别站在图书馆和校门口,距离大概500米,能收到信号,然后大概可以穿透3面墙。当时吧没见过什么世面,觉得这款碉堡了,最后上了TI官网,发现这只是其中普通的一款,还有等更牛的芯片。刚才搜索了一下,又出现了好多新的芯片,.我以前用的是,当时花了我150人民币买了两个模块。
这款&2.4-GHz&专用ZigBee 芯片。貌似它还可以建立节点,当时我电脑的建立的是主节点,我同学的是另外一个节点。还自带了业界标准的增强型8051 CPU,系统内可编程闪存,8-KB RAM 和许多其它强大的功能。 有四种不同的闪存版本:CC/128/256,分别具有32/64/128/256KB 的闪存。& && &它还具有不同的运行模式,极大的促进了无线低功耗技术的发展。超远距离传输也使得无线应用,智能家居,智能农田成为了可能。说一下测试的过程吧:首先插入厂家赠送的光盘
安装相应的配置模块,下载相应的程序。然后打开我们的串口精灵,我发送循环发送 abcd...。然后我同学电脑就能收到abcd.随着距离的增加,收到abcd的速度会减慢,系统内部在进行自我纠错。距离达到500米后,错误比较多,系统正确发送的包就会速度降低。这款zigbee确实强大,我记得我大二接触的NRF2104之类的无线模块有效距离特别近。&&之后,我们有实验了能穿透多少面墙,1、2面是毫无压力,但是4面以上就有压力了。由于只有2个无线模块,所以传说中的节点就没法实验了。这两个模块,在我本科毕业的时候送给学弟了,不知道,他们是否善待了它两。
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
举人1941分
作品名称:【TI 无线主题征集】+ 基于单元轨道板测量系统的应用
为了适应我国高速铁路建设的要求,板式无砟轨道已经逐渐代替了传统的有砟轨道和既有的无砟轨道。板式无咋轨道在施工时,将轨道板场事先预制生产的轨道板铺设在现场施工好的支撑层上,再用扣件系统将钢轨安装在轨道板上。轨道板的铺设精度将直接影响轨道最终的平顺性,为了确保铺设精度,一般采用轨道板精调系统来完成轨道板的精密铺设:首先在支撑层上沿线路中线每隔6.5m测设基标点,作为坐标基准,利用基标点将轨道板粗铺到位,然后在基标点上架设测量机器人和定向棱镜,启动工控机的轨道板精调软件,测量架设在轨道板1、5、10号承轨台标架上的棱镜,通过软件计算,得出与设计值的偏差,将偏差值显示在工作车的显示器上,调板工作人员根据偏差值,通过调整支架,调整轨道板至规程要求。采用轨道板精调系统,测量调板的控制精度在0.3mm,轨道板调整好后,基本不用调整钢轨。类似的系统还有轨道板测量调板装置(专利号ZL .1)、轨道板精调测量系统以及调整方法(公开号CN A)。其缺点是:系统组成散乱,多个终端显示与工控机和温度传感器等用线缆连接在一起,散布于需调整的轨道板上,使用和运输极为不便,可靠性无法保障。
在高铁轨道办铺板过程中,为了保证铺板的精度,我们必须设计一套测量系统。系统总体结构如下图所示,手簿、全站仪和主支架之间通过无线连接(此无线模块用的是手簿和全站仪相同的模块),而系统中包含有3个测量支架,3个测量支架之间通过ZigBee无线技术连接。
系统工作原理:通过手簿上的测量软件控制全站仪测量轨道板的空间相对于3级基准点的空间坐标来调整轨道板的位置,同时主支架将3个支架上的角度传感器的数据传回到手簿上,经过软件计算后将调整数据发送到主支架,主支架接收到数据后发送到从支架,从而工程人员通过每个支架上的显示屏上的数据来调整轨道板的位置,最后将轨道板调整到合适的位置进行灌封固定。
在无线模块中我们用到了TI的Zigbee模块,系统要求此模块的通讯距离必须保证在20米左右(因为3个支架彼此距离不超过10米,但是数据都是从主支架传送到其他2个从支架,因此必须保证20米左右)。下图红色圈内即为该无线模块。
下面为我们系统产品的相关图片:
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
举人1941分
作品名称:基于的四轴飞行器开发
四轴飞行器现在是个非常火的话题,包括亚马逊都考虑用他们来给客户送包裹,可见其以后发展的前景有多大。 同时,国内也有一些专门做这个的公司,比如大疆等等,都是一些非常专业的公司。我们利用Zigbee模块所设计开发的大都是一些处于学习阶段或者娱乐阶段的产品,仅仅只能够说明一些问题而已。实用的目的还不是很强。其中包括一些非常典型的设计理念和方法,空心杯电机驱动,四轴平衡算法,还有就是包括飞行器前进、后退、转弯和悬停的技巧。目前,国家打算开放1000米以下的空域给民众,到时候会有好多成熟且功能强大的作品问世。或许国家有意让民众来开放低空域应用,给一些重要应用领域开放提供先决条件,对于民用或者军用都会产生很大的推动作用。在此,我们仅以自己开发的一些小产品来展望一些未来世界,可以让工程师的梦想尽快加以实现。&&&&
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
举人1941分
作品名称:基于的WSN节点设计
&&& & 本科毕业设计做的是这个,基于的WSN节点设计。
& & &无线传感器网络(Wireless Sensor Network,简称WSN)就是由部署在监测区域内大量的廉价微型传感器节点组成,通过无线通信方式形成的一个多跳的自组织的网络系统,其目的是协作地感知、采集和处理网络覆盖区域中被感知对象的信息,并发送给观察者。无线传感器网络能够获取客观物理信息,具有十分广阔的应用前景,能应用于军事国防、工农业控制、城市管理、生物医疗、环境检测、抢险救灾、危险区域远程控制等领域。
& & 本设计的无线传感器网络节点的MCU采用了TI公司的射频芯片。是用于ZigBee 应用的一个真正的(SoC)解决方案。它能够以非常低的总的材料成本建立强大的。
& & 根据TI公司提供的参考设计方案,应用Altium Designer Winter 09专业绘图软件绘制了最小系统板、网关电源底板、、节点电源底板的原理图和PCB图,然后对板子进行了焊接和调试。然后在此基础上实现无线传感器网络节点的通信。
& & 在软件部分采用了TI公司提供的协议栈。采用操作系统的思想来构建,采用事件轮循机制,当各层初始化之后,系统进入低功耗模式,当事件发生时,唤醒系统,开始进入中断处理事件,结束后继续进入低功耗模式。如果同时有几个事件发生,判断优先级,逐次处理事件。这种软件构架可以极大地降级系统的功耗。接下来还对Tiny OS操作系统进行了简单的了解与尝试移植。
& & 目前传感器节点能力仍然受限,这些体现在传感器具有的能量、处理能力、存储能力和通信能力等都十分有限,因而在实现各种网络协议和应用系统时,传感器节点的能力要受到以下一些限制:
1、电源能量受限。由于传感器节点的微型化,节点的电池能量有限,而且由于物理限制难以给节点更换电池,所以传感器节点的电池能量限制是整个无线传感器网络设计最关键的约束之一,它直接决定了网络的工作寿命。传感器节点消耗能量的模块包括传感器模块、处理器模块和无线通信模块,其中绝大部分的能量消耗在无线通信模块上,通常1比特信息传输100m距离所需的能量大约相当于执行3000条计算指令所消耗的能量[5];
2、计算和存储能力有限。廉价微型的传感器节点带来了处理器能力弱、存储器容量小的特点,使得其不能进行复杂的计算,而传统的Internet网络上成熟的协议和算法对于无线传感器网络而言开销太大,难以使用,因此必须重新设计简单、有效的协议及算法。如何利用有限的计算和存储资源完成诸多协同任务成为对无线传感器网络设计的挑战;& &
3、通信能力有限。通常,无线通信的能耗E与通信距离d的关系为:E=kdn,其中2&n&4。参数n的取值与很多因素有关:由于传感器节点体积小,发送端和接收端都贴近地面,障碍物多,干扰大,n的取值要偏大;另外,天线质量对信号发射质量的影响也很大。综合考虑这些因素,通常取n为3,即通信能耗与通信距离的3次方成正比,随着通信距离的增加,能耗也会急剧增加。为节能起见,无线传感器网络应采用多条路由的通信传输机制,尽量减少单跳通信的距离。& &由于无线信道自身的物理特性,通常使得它所能提供的网络带宽相对有限信道要小得多。此外,节点能量的变化,周围地势地貌以及自然环境的影响,使得网络的无线通信性能也会经常变化,甚至通信有可能时断时续。因此,如何设计可靠的通信机制以满足网络的通信需求是无线传感器网络所面临的一个重要挑战。
& &无线传感器网络可以分为三个部分:分布于监控区域内的传感器节点、中心汇聚节点、汇聚节点通过有线或无线网络连接到管理节点,其结构类似于图2-1。& && && && && && && && && && && &&&&&& &&&在本设计中采用的是这种结构:有多于两个的传感器节点分布在随机的一块监控区域内,每个传感器的节点由射频发射模块、温湿度传感器模块、电源模块、MCU处理模块组成。每个节点可以采集温湿度值,每个节点之间可以互相自主通信,并且可以接收汇聚节点的命令进行发送、传递和处理功能。汇聚节点主要是接收和发送来自于最近的传感器节点的信息,而且还要求与PC机进行通信,所以就要求有串口转USB,这样就可以通过电脑的串口管理程序来对整个节点的网络进行管理,并且可以显示网络中发送过来的温湿度数值。& &&&&
Zigbee[7]是基于IEEE802.15.4[8]标准的低功耗个域网协议。根据这个协议规定的技术是一种短距离、低功耗的无线通信技术。这一名称来源于蜜蜂的八字舞,由于蜜蜂(bee)是靠飞翔和&嗡嗡&(zig)地抖动翅膀的&舞蹈&来与同伴传递花粉所在方位信息,也就是说蜜蜂依靠这样的方式构成了群体中的通信网络。其特点是近距离、低复杂度、自组织、低功耗、低数据速率、低成本。主要适合用于自动控制和远程控制领域,可以嵌入各种设备。简而言之,ZigBee就是一种便宜的,低功耗的近距离无线组网通讯技术。图2-2给出了ZigBee协议的五层结构。
物理层(PHY)定义了物理无线信道和MAC子层之间的接口,提供物理层数据服务和物理层管理服务。物理层的内容是激活ZigBee;检测当前信道的能量;检测接收链路服务质量信息;定义ZigBee信道接入方式;选择信道频率;负责数据传输和接收。& & 介质接入控制子层(MAC)负责处理所有的物理无线信道访问,并产生网络信号、同步信号;支持PAN连接和分离,提供两个对等MAC实体之间可靠的链路。 MAC层功能为网络协调器产生信标;与信标同步;支持PAN(个域网)链路的建立和断开;为设备的安全性提供支持;信道接入方式采用免冲突载波检测多址接入(CSMA-CA)机制;处理和维护保护时隙(GTS)机制;在两个对等的MAC实体之间提供一个可靠的通信链路[9]。& && &网络层(NWK)是整个ZigBee协议栈的核心部分。网络层主要实现节点加入或离开网络、接收或抛弃其他节点、路由初始化、查找及传送数据、维护信息库等功能。& & ZigBee应用层(APL)框架包括应用支持层(APS)、ZigBee设备对象(ZDO)和制造商所定义的应用对象。应用支持层的功能包括:维持绑定表、在绑定的设备之间传送消息。ZigBee设备对象的功能包括:定义设备在网络中的角色(如ZigBee协调器和终端设备),发起和响应绑定请求,在网络设备之间建立安全机制。ZigBee设备对象还负责发现网络中的设备,并且决定向他们提供何种应用服务。ZigBee应用层除了提供一些必要函数以及为网络层提供合适的服务接口外,一个重要的功能是应用者可在这层定义自己的应用对象。& & 应用程序框架(AF)运行在ZigBee协议栈上的应用程序实际上就是厂商自定义的应用对象,并且遵循规范(profile)运行在端点1~ 240上。在ZigBee应用中,提供2种标准服务类型:键值对(KVP)或报文(MSG)。& &&&ZigBee设备对象(ZDO)的功能包括负责定义网络中设备的角色,如:协调器或者终端设备。还包括对绑定请求的初始化或者响应,在网络设备之间建立安全联系等。实现这些功能,ZDO使用APS层的APSDE-SAP和网络层的NLME-SAP。ZDO是特殊的应用对象,它在端点(entire)0上实现。远程设备通过ZDO请求描述符信息,接收到这些请求时,ZDO会调用配臵对象获取相应描述符值。 是在IEEE 802.15.4标准基础上建立的,是ZigBee的具体实现,定义了协议的MAC和PHY层。采用操作系统的思想来构建,采用事件轮循机制,当各层初始化之后,系统进入低功耗模式,当事件发生时,唤醒系统,开始进入中断处理事件,结束后继续进入低功耗模式。如果同时有几个事件发生,判断优先级,逐次处理事件。这种软件构架可以极大地降级系统的功耗。在ZigBee协议中,协议本身已经定义了大部分内容。在基于协议栈的应用开发中,用户只需要实现应用程序框架即可。从图2-2可以看出应用程序框架中包含了最多240个应用程序对象。如果我们把一个应用程序对象看做为一个任务的话,那么应用程序框架将包含一个支持多任务的资源分配机制。于是OSAL便有了存在的必要性,它正是为了实现这样一个机制而存在的。 &&OSAL就是以实现多任务为核心的系统资源管理机制。所以OSAL与标准的操作系统还是有很大的区别的。简单而言,OSAL实现了类似操作系统的某些功能,但并不能称之为真正意义上的操作系统。
整个的主要工作流程如图2-3,大致分为系统启动,驱动初始化,OSAL初始化和启动,进入任务轮循几个阶段。
Tiny OS操作系统
& &&由于无线传感器网络的特殊性,为解决定位程序代码量大[10]、结构复杂等问题,需要操作系统能够高效地使用传感器节点的有限内存、低功耗处理器、多样传感器、有限的电源,并且能够对各种特定应用提供最大的支持。基于此,UC Berkeley&研究人员专为嵌入式无线传感器网络开发出Tiny OS系统,目前已经成为无线传感器网络事实上的标准平台。
& &Tiny OS具有微型化、支持轻量级并发操作、灵活、低功耗等优点,已经被成千上万的研发人员采用,应用于范围广阔的无线传感器网络中。Tiny OS的设计特点主要体现在一下三个方面:(1)基于组件的编程模型(2)基于事件触发的并发执行模型(3)采用基于主动消息的通信模型[11]。
& &Tiny OS操作系统采用了组件的结构,它是一个基于事件的系统。系统本身提供了一系列的组件供用户调用,其中包括主组件、应用组件、执行组件、感知组件、通信组件和硬件抽象组件,其层次结构如图2-4所示。组件由下到上通常可以分为3类:硬件抽象组件、综合硬件组件和高层软件组件。硬件抽象组件将物理硬件映射到Tiny OS的组件模型;综合硬件组件模拟高级的硬件行为,如感知组件、通信组件等;高层软件组件实现控制、路由以及数据传输等应用层的功能。高层组件向底层组件发出命令,底层组件向高层组件报告事件。Tiny OS的层次结构就如同一个网络协议栈,底层的组件负责接收和发送最原始的数据位,而高层的组件对这些数据进行编码、解码,更高层的组件则负责数据打包、路由选择以及数据传输[12]。
& &是用于ZigBee应用的一个真正的片上系统(SoC)解决方案。它能以非常低的总的材料成本建立强大的网络节点。结合了领先的RF收发器的优良性能,业界标准的增强型8051CPU,系统内可编程闪存,8-KB RAM。具有不同的运行模式使得尤其适应超低功耗要求的系统。CC具有256-KB内存,结合了德州仪器的ZigBee协议栈(Z-StackTM),提供了一个强大和完整的ZigBee解决方案。的内部结构图如图2-5所示。
如图2-5所示,模块大致可以分为三种类型:
1、CPU 和内存相关的模块:一个单周期的8051兼容内核、三种总线结构、内存仲裁器、8-KB RAM、32/64/128/256 KB闪存块;
2、外设、时钟和电源管理相关的模块:具有三种供电模式、IEEE 802.15.4 MAC定时器、通用定时器、AES协处理器、DMA、可配置分辨率的12位ADC。
3、无线电相关的模块:CC253x设备系列提供了一个IEEE 802.15.4兼容无线收发器。RF内核控制模拟无线模块。另外,它提供了MCU 和无线设备之间的一个接口,这使得可以发出命令、读取状态、自动操作和确定无线设备事件的顺序。无线设备还包括一个数据包过滤和地址识别模块,硬件支持CSMA/CA[14],支持精确的RSSI/LQI定位。
结合以上的数据,可以看出是无线传感器网络节点设计的不二选择。
& &巴伦是平衡不平衡转换器的英文音译,原理是按天线理论,偶极天线属平衡型天线,而同轴电缆属不平衡传输现,若将其直接连接,则同轴电缆的外皮就有高频电流流过(按同轴电缆传输原理,高频电流应在电缆内部流动,外皮是屏蔽层,是没有电流的),这样一来,就会影响天线的辐射(可以想象成电缆的屏蔽层也参与了电波的辐射)。
& &因此,就要在天线和电缆之间加入平衡不平衡转换器,把流入电缆屏蔽层外部的电流扼制掉,也就是说把从振子流过电缆屏蔽层外皮的高频电流截断。有两种方法实现巴伦:
& &1、采用分立元件实现,LC巴伦设计的本质就是一个电桥,被称为&格子形式&巴伦,电路中包含两个电容和两个电感,分别产生+90。相移。在工作频率时,满足, , L=Zc/& ,C=1/&*Zc ..如图3-3所示。
采用Johnson technology&公司的的Bulan-LPF芯片2。这款芯片是专为CC253x系列射频芯片所做射频低通滤波器,这简化了计算和选择匹配的电感电容的麻烦。如图3-4是该芯片的连接方式。&
因为设计之前并没有找到这款芯片,所以在制版时我采用了第一种方案,这也是TI官网的方案。根据计算得出实际的L=2nH,C=1pF。如图3-5所示,天线使用的是2.4G单轴陶瓷天线。C11、C12、C15的作用是前后两端隔离低频信号的作用。
& &当打开IAR的时候可以看到如图4-3所示的文件结构图。下面就依次分析每一个文件夹的作用。
APP:应用层目录,这是用户创建各种不同工程的区域,在这个目录中包含了应用层的内容和这个项目的主要内容,在协议栈里面一般是以操作系统的任务实现的。HAL:硬件层目录,包含有与硬件相关的配置和驱动及操作函数。MAC:MAC层目录,包含了MAC层的参数配置文件及其MAC的LIB库的函数接口文件。MT:实现通过串口可控各层,于各层进行直接交互。NWK:网络层目录,含网络层配置参数文件及网络层库的函数接口文件,APS层库的函数接口OSAL:协议栈的操作系统。Profile:AF层目录,包含AF层处理函数文件。Security:安全层目录,安全层处理函数,比如加密函数等。Services:地址处理函数目录,包括着地址模式的定义及地址处理函数。Tools:工程配置目录,包括空间划分及相关配置信息。ZDO:ZDO目录。ZMac:&MAC层目录,包括MAC层参数配置及MAC层LIB库函数回调处理函数。ZMain:主函数目录,包括入口函数及硬件配置文件。Output:输出文件目录,这个EW8051 IDE自动生成的。& &&从上面的描述中可以看出,整个协议栈中,对于ZigBee的功能已经全部体现,在此基础上建立一个项目的方法主要是改动应用层&。
整个协议栈是以一个OS贯穿的,要加入自己的应用,就要添加一个任务,在任务中执行,与协议栈实现无缝连接。
& &1、添加一个任务。在协议栈中的OSAL.c文件中,byteosal_init_system( void )函数的功能是初始化OS、添加任务到OS任务表中。在这个函数中通过调用osalAddTasks()函数来定制项目所需要应用的任务,该函数属于应用层和OS之间的接口函数,一般项目的建立需要根据系统的需要自己编写改函数,并将函数放到应用层。osalAddTasks()函数是通过osalTaskAdd()函数完成任务添加。
& &首先,将支持协议栈功能需要的任务加载到该函数中,
void osalAddTasks( void )
osalTaskAdd (Hal_Init, Hal_ProcessEvent,OSAL_TASK_PRIORITY_LOW);
#if defined( ZMAC_F8W )
osalTaskAdd( macTaskInit, macEventLoop,OSAL_TASK_PRIORITY_HIGH );
#if defined( MT_TASK )
osalTaskAdd( MT_TaskInit, MT_ProcessEvent,OSAL_TASK_PRIORITY_LOW );
osalTaskAdd( nwk_init, nwk_event_loop,OSAL_TASK_PRIORITY_MED );
osalTaskAdd( APS_Init, APS_event_loop,OSAL_TASK_PRIORITY_LOW );
osalTaskAdd( ZDApp_Init, ZDApp_event_loop,OSAL_TASK_PRIORITY_LOW );
& &&这些任务是协议栈运行的先决条件,为了更好的使用协议栈,建议将这些任务都添加到任务列表中。这些函数的参数条件在协议栈中已经定义好,可以直接使用。
& &&从上面加载的函数中可以发现,要建立一个单独的任务,必须先将osalTaskAdd()函数所需要的参数条件定义好,这些参数分别是初始化函数example_Init,任务处理函数example_event_loop和任务优先级。
& & 2、任务初始化函数。任务初始化函数的功能是将该任务需要完成的功能的功能部件初始化,在每一个任务的初始化函数中,必须完成的功能是要得到设置任务的任务ID。
void SampleApp _Init ( uint8 task_id )
&&SampleApp _Init = task_
& &&由于在这个任务中还有其他的功能,所以,对其他功能也需要做一定的初始化,包括对发送数据的设置,按键的设置等。实现的函数为:
void SampleApp_Init ( uint8 task_id )
SampleApp_TaskID = task_ //任务ID
SampleApp_NwkState = DEV_INIT; //网络类型
SampleApp_TransID = 0; // 设置发送数据的方式和目的地址,
SampleApp_All_DstAddr.addrMode =(afAddrMode_t)AddrB//广播到所有的设备
SampleApp_All_DstAddr.endPoint =SAMPLEAPP_ENDPOINT;
SampleApp_All_DstAddr.addr.shortAddr = 0xFFFF;
// 单播到一个设备
SampleApp_Single_DstAddr.addrMode =(afAddrMode_t)afAddrG
SampleApp_Single_DstAddr.endPoint =SAMPLEAPP_ENDPOINT;
// 设置 endpoint description.
SampleApp_epDesc.endPoint = SAMPLEAPP_ENDPOINT;
SampleApp_epDesc.task_id =&SampleApp_TaskID;
SampleApp_epDesc.simpleDesc
= (SimpleDescriptionFormat_t*)&SampleApp_SimpleD
SampleApp_epDesc.latencyReq = noLatencyR
// 登记endpoint description 到 AF
afRegister( &SampleApp_epDesc );
// 登记所有的按键事件
RegisterForKeys( SampleApp_TaskID );
& & 3、任务处理函数。任务处理函数是对任务发生后的事件进行处理,在这个项目中主要完成的功能是通过协调器上的按键发送一个数据,控制路由器的小灯。所以里面就应该设计到按键的事件处理,网络状态的判断(判断设备的类型,是协调器还是路由器或者是终端设备)和接收到信息后的处理。处理函数为:
uint16 SampleApp_ProcessEvent( uint8 task_id,uint16 events )
afIncomingMSGPacket_t *MSG
if ( events & SYS_EVENT_MSG ) //系统信息,
{&&MSGpkt= (afIncomingMSGPacket_t *)osal_msg_receive( SampleApp_TaskID ); //OS发送过来的信息
while ( MSGpkt )
switch ( MSGpkt-&hdr.event )
{ // 按键事件
case KEY_CHANGE: //按键处理函数
SampleApp_HandleKeys( ((keyChange_t*)MSGpkt)-&keys );
// 接收数据事件
case AF_INCOMING_MSG_CMD: //接收数据的处理函数
SampleApp_MessageMSGCB( MSGpkt );
// 网络状态发生变化时间
case ZDO_STATE_CHANGE:
SampleApp_NwkState =(devStates_t)(MSGpkt-&hdr.status); //获取网络状态
if ( (SampleApp_NwkState == DEV_ZB_COORD)//判断网络类型
|| (SampleApp_NwkState == DEV_ROUTER)
|| (SampleApp_NwkState == DEV_END_DEVICE) )
{ // 设备不属于这个网络
} // 释放存储器
osal_msg_deallocate( (uint8 *)MSGpkt ); // Next- 如果有一个空闲的任务
MSGpkt = (afIncomingMSGPacket_t*)osal_msg_receive( SampleApp_TaskID );
} // 返回未处理的任务
return (events ^ SYS_EVENT_MSG);
& & 4、按键子函数。按键子函数的功能是处理所有的按键事件,按键的底层驱动函数在Hal_key.c中,在这里按键需要完成的任务是,当协调器按键1被按下后,以广播的方式发送数据去让路由器小灯闪烁。
void SampleApp_HandleKeys(uint8 keys )
if ( keys & HAL_KEY_SW_1 )
if(SampleApp_NwkState == DEV_ZB_COORD) //如果是协调器
SampleApp_SendFlashMessage(SAMPLEAPP_FLASH_DURATION ); //发送数据
& &5、接收处理函数。接收处理函数的功能有两部分,一是路由器的接收函数,二是协调器的接收处理函数。在这个项目里面,我们将这两种设备的处理函数都固化在了一个函数里面,用串ID来判断他们的设备类型。当路由器接收到数据后,先判断该信息的串ID,然后判断命令,如果命令正确,则小灯闪烁,然后单播发送确认信号给协调器,协调器收到信号后,同样先判断串ID,然后确认命令后小灯闪烁示意。
void SampleApp_MessageMSGCB(afIncomingMSGPacket_t *pkt )
unsigned char Rx_Buf[4];
switch ( pkt-&clusterId )
case SAMPLEAPP_CLUSTERID1:
memcpy(Rx_Buf,pkt-&cmd.Data,3);
if((Rx_Buf[0] == &#39;Y&#39;) && (Rx_Buf[1] ==&#39;E&#39;) && (Rx_Buf[2] == &#39;S&#39;))
HalLedBlink( HAL_LED_4, 4, 50, 250); //小灯闪烁四次
case SAMPLEAPP_CLUSTERID2:
memcpy(Rx_Buf,pkt-&cmd.Data,4);
if((Rx_Buf[0] == &#39;O&#39;) && (Rx_Buf[1] ==&#39;P&#39;) && (Rx_Buf[2] == &#39;E&#39;) && (Rx_Buf[3] == &#39;N&#39;))
HalLedBlink( HAL_LED_4, 4, 50, 250); //小灯闪烁四次
SendData(&YES&,pkt-&srcAddr.addr.shortAddr,3);//以单播的方式回复信号
6、发送函数:广播发送一段数据
void SampleApp_SendFlashMessage( uint8 *buffer )
if ( AF_DataRequest( &SampleApp_All_DstAddr, &SampleApp_epDesc,
SAMPLEAPP_CLUSTERID2,
&SampleApp_TransID,
AF_DISCV_ROUTE,
AF_DEFAULT_RADIUS ) == afStatus_SUCCESS )
//********************************************************************
void SampleApp_SendData(uint8 *buf, uint16 addr, uint8 Leng)
SampleApp_Single_DstAddr.addr.shortAddr =
if ( AF_DataRequest( &SampleApp_Single_DstAddr, //发送的地址和模式
&SampleApp_epDesc, //终端(比如操作系统中任务ID等)
SAMPLEAPP_CLUSTERID1,//发送串ID
&SampleApp_TransID,
AF_DISCV_ROUTE,
// AF_ACK_REQUEST,
AF_DEFAULT_RADIUS ) == afStatus_SUCCESS ) {
发送数据只是调用一个函数,在这里不多做解释。
& &&在完成以上的步骤之后就可以完成任务的添加。用户就可以实现自己的程序功能,但是由于Z_Stack已经把通信协议写好(如图4-4),所以只需要调用函数就可以完成无线传感器网络,这样只能使用却不能了解关于具体底层的信息。所以对于无线传感器网络开发来说的话,Tiny OS则是完全开放源代码的专用于无线传感器网络的操作系统。
& &Tiny OS系统在Windows环境下移植与开发
& &首先,就先来安装cygwin:&从下载一个名为setup.exe的安装程序,打开,选一选安装路径,一路点下一步就会完成安装。装完后,桌面上多出一个cygwin图标,打开即可进行cygwin的命令行,所有操作都在这个命令行中完成[18]。&cygwin默认安装的工具比较少,连gcc4,perl,python,make,rpm都没有,所以去重新打开setup.exe,在select packages页中将gcc4,perl,python,make,rpm,libmpfr4标记为安装。
现在,cygwin环境已经比较完整,接着就该配置tinyos环境了。 TinyOS环境的配置在中有很详细的描述,但是只针对的话可以将配置过程简化很多:
下载nesc和tinyos-tools的cygwin安装包,
放到某个目录下,比如c盘根目录下。然后,在cygwin中切换到该目录,安装这两个包:
cd /cygdrive/c
rpm -ivhnesc-1.3.1-1.cygwin.i386.rpm
rpm -ivhtinyos-tools-1.4.0-3.cygwin.i386.rpm
这样tinyos环境就配置好了。接着就去下载的tinyos移植的源代码tinyv6,开发者把的tinyos移植和一个ipv6协议栈一块发布了,所以甚至可以在上用tinyos跑ipv6。
解压下载的源码包:
tar xvf tinyv6-x.x.tar.bz2
接着执行一个脚本自动设置一些环境变量:
cd tinyv6-x.x
source tinyv6.sh
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
举人1941分
作品名称:基于芯片ZigBee RF4CE 技术遥控行业中的研究与应用
目前市场上的电子产品大部分目前采用的都是红外线遥控(IR)技术. 此技术目前弊端如下:
(1) 遥控器与电器之间的距离不能过远,一般不能超过8米.
(2) 遥控器使用时应对准电器的接收方向,左右偏差角度不能超过25度,否则电器无法准确接收指令.
(3) 遥控器在使用时要避免强光或其它光源的干扰.
(4)&遥控器与电器之间不能存在障碍物,否则红外信号会被阻挡. 所以用户无法把电器设备隐藏在其他有物体遮挡的地方,影响用户客厅美观效果.
(5) 遥控器与电器之间的通讯仅为单向
(6) 不同的电器设备可能需要不同的遥控器,增加了成本,同时给使用带来极大不便.
(7) 因为红外遥控码值固定,不同电器直接的码值可能相同.引起误操作. 因此有时出现用不同的遥控器操作时候,而同时也遥控到其他设备的情况发生.& &
以上红外遥控技术令人头疼的缺陷严重影响了数字化家居的生活品质,基于此, 通过本项目的研究,使新的Zigbee RF4CE技术应用到电子产品中.让产品的遥控操作变得更加的方便快捷,摆脱受到环境干扰与遥控角度距离的限制.让用户得到更好的操作体验.
研究目标与介绍:
本次项目研究的目的是把ZigBee RF4CE的技术推广并应用到各种家用电器设备中,以取代传统红外遥控器,提高各电器设备的易操作性,使用户有更好的操作体验,并为后续物联网做准备
1. Zigbee RF4CE遥控器技术的传输距离和抗干扰性
2. 实现电器设备与遥控器的双向通信
1、& && &本次以TI的芯片平台为基础进行研究开发。
2、& && &RF射频遥控采用芯片来完成RF4CE 的无线遥控功能要求.
3、& && &RF无线射频遥控能提高操作的可靠性;提高信号的传输距离和抗干扰性;使信号传递不受障碍物影响; 消费者将不再需要用遥控器的发射端准确指向电器的接收端.RF遥控距离无障碍物可以达到50米,有障碍物可以达到30米.
4、& && &RF无线遥控器节能省电, 遥控器电池寿命也可显著延长(1~2年)。,也不再需要数个遥控器来操作家中不同的电子设备
RF4CE RF无线遥控的信号工作频段示意图以及基本指标参数如下:
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
举人1941分
作品名称:CC2430@MSP430无线温度采集系统
& & 虽然CC2430是TI比较老的一代zigbee无线产品了,现在应该都是了,是新一代的协议栈,更加有优势。
& & 之前听过有个讲ZigBee协议栈的视频,貌似叫王峰的讲的(FS_zigbee 协议栈指导书.pdf),讲的比较透彻,对学习ZigBee的协议栈还是很有帮助的,这个手册应该现在在网上就可以下载到。通过学习用CC2430和实现了无线温度采集系统,附件是CC2430的最小系统图及底板图,电源采用了TPS78633低压差LDO产生3.3V电压,输入电压为手机锂电池。温度传感器采用了串行IIC接口,通过不同的地址可以级联温度传感器,实现多路温度采集系统。无线模块部分已经做过验证,无线的发送和接收可以使用。无线模块的天线采用了外置天线,隔一道墙传输还是没什么问题的,多几道就会出现网络连接问题,具体的距离没去测试。有想做ZigBee的网友可以玩一玩。
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
榜眼40550分
WOW,教程很详细,支持
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
举人1941分
作品名称:基于物联网的智能学生宿舍
&&& && &&物联网是在现代计算机互联网的基础上,利用RFID、无线数据通信技术,构造一个覆盖万事万物的网络世界,在这个网络中,可以对各个事物进行智能化管理和互动。如今,智能化的理念已经深入人心,许多事物都实现了智能化的控制,但很少有将物联网技术应用于大学生宿舍,然而,学校宿舍用电安全及财产安全一直是社会关注的焦点,所以设计一个基于物联网的智能监控系统来对学生宿舍进行管理是非常必要的。&& &&&本项目是以ARM 嵌入式系统为基础,利用无线传感器技术,RFID以及信号处理与通信技术实现系统的整体架构。该系统将实现对宿舍的门禁,照明,采光和饮水系统进行远程监测与控制,利用RFID对进出人员进行管理,& &&&具体来说就是以zigbee&& 近距离无线通信模块&&构建智能宿舍控制系统,以 嵌入式ARM 作为网关,以实现无线网络的智能学生宿舍控制系统,这里实现的两个功能,RFID技术的楼宇门禁系统,和网络电灯控制系统。&&RFID技术的楼宇门禁系统控制框图&嵌入式无线网关&zigbee门禁 电机控制&射频识别显示模块& 电灯控制节点&
视频展示请点击以下链接:
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
举人1941分
作品名称:基于物联网的智能学生宿舍 (续)&
& & & & &&之前也介绍有关的智能学生宿舍的整体框架,这里把总体更加形象的描述出来。&& && &&这里介绍下因特网访问控制的方法,就是通过网络编程实现的,在一个具有公网IP地址的编写一个网络服务程序,就是将其他客户端的发过来的数据通过该服务器转发给其他连接在此服务器的客户端,这里有两个客户端,一个Android控制应用程序,一个是嵌入式ARM网关数据处理端,接受相应数据发送给zigbee协调器,协调器通过判断数据,将相关控制指令通过其ZigBee无线网络发送给相应的终端节点,这样就可以实现远程访问控制了。下面是Android应用程序控制界面&这是在服务器上运行的服务器程序&& && && &&这是最近所做的最后一个终端节点,智能插座,当用电器件插在此插座上时候,我们可以随时通过网络控制其用电器件的开关状态,在相应的电路出现故障时,我们可以随时通过手机控制他,让其关闭,避免了直接的接触,以保证相应人员的安全。&
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
举人1941分
作品名称:&802.1x 初体验&
这段时间体验了一下TI的802.11和802.15.4,分别是和/,下面是下午阳光不太明媚的时候手机拍的。&是在官网买的小板子,发回国内大概用了一个星期。这期间粗略看了下manual,开始以为是个MCU+MAC+PHY,本来是想看看能不能做自己的协议栈,结果是个SPI通讯的corprocessor,有点小失望,该买之前就看看手册的。这种功能设置的话,不如买MTK的MT7621,更便宜呢。默认开机上电,加入它的ssid网络,网页登陆之后有一个远程控制的喷水DEMO,按一下,一个灯就闪一闪,表示开始喷水了。可是,有发现一个问题,好像只能有一个客户端连接到wifi的ssid网络,两个以上的手机wifi就无法连接,也不知道是本来只能有一个wifi客户端接入还是我没有弄对,如果真是这样,那这款芯片的适用范围就大大的打折扣了。申请的TI官方的样片,给了5颗,刚到手没多久,这段时间想试试做成2层板,加pcb天线,天线虽然有参考,但是抄起来也很麻烦,也还不知道效果,实在不行就花几元小钱买成品的陶瓷天线好了。看了手册,整体来说比较合适做底层开发,MCU+MAC+PHY的形式,MAC有软件层参考,MCU是个带硬件乘除法的cortexm3,里面自带adc,spi,iic等等外设,cortex的环境不用说,能用的资源很多。功耗虽然比msp430高,但是作为一颗SOC比较适合做物联网传感前端,bom和成本都大大减少,官方10k报价也才20来块钱。是买的现成的小板子,除了MCU之外,和差不多,买这个主要是想验证一下低功耗MCU++sensor的搭配和+sensor的搭配,有没有什么优势。/软件层考虑的6lowpan,外面再用个带802.3的单片机做个eage router和IPv6接入。有点小失望,协议栈做在芯片里面,确实为软件层开发节省了大量时间,但是又少了很多扩展能力。另外,如果确认了wifi网络不能够加入2个以上的客户端的话,感觉这个就更失望,丢失了wifi广泛接入的基础。还在研究天线,可能最终还是会用小陶瓷来做,pcb天线太难抄了。配合着freescale的KL02在做个小系统的移植,希望能用把6lowpan协议跑上去。
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
举人1941分
作品名称:基于的智能家居控制系统
整个模拟系统的硬件环境由5块r11公司的 ZigBee模块和一个WiFi模块组成。5个ZigBee采用Mesh网的网络拓扑结构,定义一个协调器,两个路由器,两个终端设备。其中,协调器与Wi&Fi模块相连,实现Wi&Fi网络、ZigBee网络数据的转换与发送;路由器,终端设备各自均带有一个可控LED灯,并假设其为所要控制的应用对象。软件设计方面采用TI公司针对自身生产的CC系列芯片设计的ZStack协议栈。该协议栈符合ZigBee2006和ZigBee2007规范,采用操作系统的思想来构建,采用时间轮循机制,提供多任务处理机制,可自动实现建网,人网,分布式地址分配,消息发送/接收等多种功能。WiFi模块上电之后会建立预设定好了的无线网络,其IP地址为192.168.1.20,端口为8888。采用TCP/IP调试工具实现笔记本与Wi&Fi模块的无线通信。模块在功能方面主要完成协调器的建立以及入网的过程,软件基于ti公司提供的示例程序修改。&相关技术:ZigBee是新近推出的一个低速率、低功耗的无线通信技术。它具有复杂度低、成本少、功耗低的特点,主要适用于自动控制、远程监控等领域。ZigBee联盟在IEEE 802.15.4标准的底层技术基础上(物理层和MAC层协议)定义了网络层和应用层,从而制定了新型的无线通信协议ZigBee。Wi&Fi(Wireless Fidelit)是一个由名为&无线以太网相容联盟&的组织发布的一种基于IEEE802.1 1标准的短距离、高速度的,能够将个人电脑、手持设备等终端以无线方式相互连接的技术口J。其主要工作频段为2.4GHz和5GHz,传播速度从2Mbit/s到6.93Gbit/s不等,据测试,其传播距离在室内为100米左右,而在室外能达到300米。
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
举人1941分
作品:略谈部分TI无线产品应用
最初接触到的TI无线产品是CC2430,当时是为了学习ZigBee,而且网上关于CC2430使用的资料比较多,学习了一段时间后发现自己还是不知所云,原因是资料太杂太乱了,后来硬着头皮看了Zstack协议栈配套的英文使用文档,看了几天后茅塞顿开,惊叹还是官方的资料介绍的比较好,然后就去了TI官网上找到了相关的设计文件,例如硬件设计文件,例如天线参考设计和评估板的PCB文件,这些文件可以加快产品的开发进度;在后面的无线产品使用时,我基本都会参考TI提供的设计文件,然后在根据自己的实际情况设计符合自己所需的产品,下图的核心板模块,当时是参考设计文件做的。&板子在空旷地方做过测试,在误码率低于1%的情况下,传输距离可以到220米,使用的是全向天线。由于是个人DIY的东西,没有大神们的专业仪器测试,所以只能借助TI提供的SmartRF Studio做测试,在分析协议时使用SmartRF& Packet Sniffer,为了方便分析,就做了个USB Dongle,见下图&上图中左边那个用的是芯片,用于分析ZigBee,右边那个用的是,用于分析BLE,下图为使用做的USB Dongle抓到的ZigBee信息截图:&有了这些东西,做无线产品应用就很顺手,从提供的这些参考文件和工具可以看出,使用TI无线产品你能以较低的开发成本就能更快更好的驾驭它。这段时间也参加了论坛的&TI首届低功耗大赛&,在此活动中我使用了CC3000,同样也是先用了参考设计文件修改了一点,打了样回来学习,下图是测试用的板子:&在这个活动中我使用CC3000作为网关中连接物联网的器件,下图是系统结构图:&经过一个月的调试已经基本完成,样板刚打回来,因为太忙还没来得及焊接,先上图&
You have posted to a forum that requires a moderator to approve posts before they are publicly available.}

我要回帖

更多关于 zigbee节点 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信