当前位置:首页 > 电源 > 数字电源
[导读]在无线传感器网络节点上移植了msstatePAN协议栈,并用2个节点完成组网,实现了网络协调器和设备节点的数据互传,验证了无线传感器网络节点硬件设计的合理性和协议栈移植的正确性。

无线传感器网络(Wireless Sensor Networks,WSN)是由多个节点组成的面向任务的无线自组织网络,一般不需要很高的信道带宽,但应具有较低的传输延时和极低的功率消耗,使用户能在有限的电池寿命内完成任务。IEEE 802.15.4/ZigBee标准把低功耗、低成本作为主要目标,为无线传感器网络提供了一种互连互通的平台。因此将ZigBee技术与无线传感器网络技术结合起来研究具有现实意义。


1 ZigBee技术的体系结构
    在ZigBee技术中,其体系结构通常由层来量化它的各个简化标准。每一层负责完成所规定的任务,并且向上层提供服务。各层之间的接口通过所定义的逻辑链路来提供服务。ZigBee技术的体系结构主要由物理(PHY)层、媒体接入控制(MAC)层、网络/安全层以及应用框架层构成,其各层的分布如图1所示。

2 ZigBee技术的网络拓扑结构
    ZigBee技术网络有2种拓扑结构:星型拓扑结构和对等拓扑结构,如图2所示。其中定义了两种设备:全功能设备(Full Funetion Device,FFD)和精简功能设备(Re—dueed Function Device,RFD)。与RFD相比,FFD在硬件功能上比较完备。在通信能力方面,FFD可以与所有其他的FFD或RFD通信,而RFD只能和与其关联的FFD进行通信。与RFD相关联的FFD设备称为该RFD的“协调器(Coordinator)”。在整个网络中,有一个FFD充当网络协调器(PAN Coordinator)。除直接参与应用外,网络协调器还需要完成成员身份管理、链路状态信息管理以及分组转发等任务。
    本文移植协议栈拓扑结构是对等拓扑网络中的一种——树簇网络。在树簇网络中大部分没备为FFD,RFD只能作为树枝末尾处的叶节点,这主要是由于RFD一次只能连接一个FFD。任何一个FFD都可以作为主协调器,并为其他从设备或主设备提供同步服务。在整个PAN中,只要该设备相对于PAN巾其他设备具有更多资源,这样的设备都可以成为该PAN的主协调器。
    在建立一个PAN时,首先,PAN主协调器将其自身设置为一个簇标识符(CID)为O的簇头(CLH)。然后,选择一个没有使用的PAN标识符,并向邻近的其他设备以广播的方式发送信标帧,从而形成第一簇网络。接收到信标帧的候选设备可以在簇头中请求加入该网络,如果PAN主协调器允许该设备加入,该设备就将主协调器作为它的父节点加到它的邻近表中,成为该网络的一个从设备;同样,其他设备都按照同样的方式,请求加入到网络中。如果候选设备不能加入到该网络中,那么它将寻找其他的父节点。在树簇网络中,最简单的网络结构是只有一个簇的网络,但是多数网络结构由多个相邻的网络构成。一旦第一簇网络满足预定的应用或网络需求,PAN主协调器将会指定一个从设备为另一个簇的簇头,使得该从设备成为一个主协调器。随后其他的从设备将逐个加入,形成一个多簇网络,如图3所示。

   

3 无线传感器网络的节点结构
    本文移植的目标板是自行设计的无线传感器网络节点模块。其中,处理器模块采用Atreel公司的AT—megal28L,无线通信模块采用TI公司的CC2420,电源模块使用NCPl402芯片将2节电池进行DC—DC变换后得到,传感器模块采用DSl8820。
    CC2420利用SFD、FIFO、FIFOP和CCA四个引脚表示收发数据的状态。ATmegal28L通过CC2420的SPI接口(CSn、SO、SI、SCK)与CC2420交换数据、发送命令,利用RSTn引脚复位芯片;并且利用VREG_EN引脚使能CC2420的电压调整器,使其产生CC2420所需要的1.8 V电压,从而使CC2420进入正常工作的状态。CC2420通过单极天线或PCB天线进行通信。节点总体框图如图4所示。

4 zigBee协议栈的移植
4.1 msstatePAN协议栈的移植

    msstatePAN协议栈是由密西西比大学的R.Reese教授为广大无线技术爱好者开发的精简版ZigBee协议栈,基于标准C语言编写,基本具备了ZigBee协议标准所规定的功能,最新版本为V0.2.6,该版本支持多种开发平台,包括PICDEM Z、CC2430评估板、MSP430+CC2420(Tmote)以及WIN32虚拟平台。由于该协议栈的上述特点以及源代码的开放性,本文选择它作为学习和移植的
对象。
    移植是将msstatePAN协议栈在PICDEM Z平台下的代码移植到上面设计的目标板中,采用winavr20070525作为编译器,并通过JTAG接口将程序下载到目标板中。下面介绍一下移植过程。
    (1)编写makefile文件
    winavr 20070525采用GCC编译器,要编写makefile文件以完成程序的编译。指定MCU为ATmegal28,定义CPU工作频率F_CPU为8 000 000 Hz;定义编译后生成的文件类型FORMAT为ihex;将TARGET改为项目主文件的文件名,由于后面测试用ing_pong.c这个文件,此处将TARGET定义为ping_pong;最后定义SRC,在SRC中应包含整个项目中的所有文件,并且各个文件名之间要用空格格开。协议栈为规定当前编译器编译的是协调器代码、IEEE 64位长地址等,要用到LRWPAN_COORDINATOR等宏定义,因此要在makefile文件中加入相应的宏定义代码。
    (2)替换与编译器相关的定义
    本移植用的是GCC编译器,所以要将与PIC编译器相关的代码进行替换,为此修改compiler.h头文件及特定编译器的数据定义。例如对ROM数据类型进行替换,或者直接删除该数据类型。
    (3)移植与硬件平台相关的部分
   
该部分代码涉及的都是最底层的东西,通过对协议栈的透彻理解,总结出要修改的文件有halStack.c、hal.h、halHeepSpace.h、cc2420.c/.h、evboard.c/.h、evbRadio.h、evbConfig.h等。其中halStack.c和evboard.c两个文件改动很大。这两个文件中包括硬件接口定义、串口定义、LED灯定义、硬件系统初始化定义,以及中断处理函数和协议栈时钟函数的实现。首先移植中断处理函数,注意采用下降沿触发中断。其次,移植协议栈时钟,目标板用ATmegal28L的定时器1作为协议栈的运行时钟。由于单片机采用8 MHz晶振,当定时器使用64分频时(At—megal28L定时器1没有128分频),此时定时器计数一次所需要的时间为8μs,而在协议栈中每传输一个符号(symbo1)所需要的时间为16μs,故将定时器计数2次定义为一个symbol时间。所以在设计中,要修改hal—MacTicksToUs函数及SYMBOLS_TO_MACTICKS(x)和MSECS_TO_MACTICKS(x)宏定义。
    (4)对协议栈内部各层进行适当修改
    这部分的移植工作与第3步相比简单些,一些与硬件联系紧密的MAC层和PHY层相关的函数都放在ev—board.c和halStack.c文件中。具体分析如下:
    ①根据自己的需求修改协议栈需要的堆栈,协议中默认为l 024字节,可以根据实际情况做些调整。
    ②debug.c函数中的一些定义在运行时需要大量RAM,如果选择编译的是协调器,则整个协议栈需要RAM存储单元大于6KB,而ATmagal28L内部只有4 KB RAM,为此屏蔽了一些调试显示信息,以达到系统要求。
    ③修改staticbind.h函数,由于该协议栈是静态分配地址,而该函数的作用就是定义其地址,所以该函数在整个协议栈运行中至关重要。首先要考虑其地址是不是和makefile中定义的相吻合,如果不吻合应进行相应修改,否则CC2420地址译码就通不过,以至于无法建立网络。其次,应该确定数据存储是按大端模式还是小端模式,如果弄反了,地址就会不一样。ATmegal28L是小端模式,这和PIC单片机是一致的,因此不需要修改,但要修改函数中的宏定义,让编译器选择相应的程序进行编译,生成正确的地址。
    (5)编译下载
    通过上面的移植,程序应该能正确进行编译以及链接,生成HEX文件;再用AVRStudio4.12软件将程序下载到相应节点中,进行协议栈测试。
4.2 测试方法
    为了测试协议栈移植是否成功,采用2个节点进行实验。其中,一个作为协调器,另一个作为RFD设备节点。在makefile中设定协调器的IEEE地址为Ox001248000001216F,RFD设备的IEEE地址为0x0012480000012170,并使用ping_pong.c文件提供的功能进行测试。
    首先完成网络的建立,协调器调用aplFormNetwork()函数建立一个网络;然后等待RFD设备的加入,RFD设备调用aplJoinNetwork()函数申请加入网络。在网络建立成功后执行ping_pong过程,该过程就像打乒乓球一样,先是协调器发送数据给RFD设备,RFD设备接收到信息后回发给协调器。如此往返.这也是文件名为ping_pong的原因,具体程序流程如图5所示。

    编译、链接ping_pong.c文件时务必注意:如果是协调器,—定要加入宏LRWPAN_COORDINATOR,否则编译的程序为RFD设备的程序。编译完成后,将生成的文件分别下载至各节点,并将节点连接到串口调试助手,按程序要求设置串口调试助手的参数,如波特率、数据位长度等。完成这些设置后,分别打开各节点,首先启动协调器节点,然后再启动RFD设备节点。图6是协凋器连接的串口调试助手的显示信息。

    从图6中可以知道,节点Ox0012480000012170加入到网络,其IEEE的长地址为Ox0012480000012170;协调器分配给该节点的短地址为Oxl699,协调器有一个邻居节点,2个节点之间已经开始数据的传送。由此可见,移植成功。

结 语
    无线传感器网络是一门新兴的技术,目前传感器网络硬件节点价格比较昂贵,软件支持也有不足。如果能移植一个相对成熟的协议栈,将最大限度地降低节点成本。本文就是从这个角度出发,设计出了相应的硬件平台,并成功移植了msstatePAN协议栈,从学习和科研角度考虑具有借鉴意义。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭