功率电感生产厂家
联系我们
热门搜索
点击排行
推荐阅读
猜猜你喜欢的
技术知识 您所在的位置: 首页 > 技术知识

ZigBee的msstatePAN协议栈移植

来源:    作者:    发布时间:2016-04-10 17:34:00    浏览量:

对象。
移植是将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是协凋器连接的串口调试助手的显示信息。

  • 基于SVM不对称六相永磁电机控制系统的设计方案 1.前言永磁同步电动机(PMSM)因其高功率密度、高转矩和免维修等原因,广泛应用于高效驱动领域。六相永磁同步电动机发展了三相永磁同步电动机的结构,多应用于船舶电动推进等领域,它相对于普通永磁同步电动

  • 带自动关断市电和调节充电时间的充电电路设计该电路的核心器件采用一块交流固态继电器与一块可编程定时器IC,加上外围恒流源充电电路组成,适用五号镍氢电池。电原理如下图所示,整机由定时控制电路和恒流源充电电路两部分组成:由交流固态继电器SPLLlO

  • 稳定驱动白光LED的电流稳定驱动白光LED的电流对白光LED驱动IC而言是最重要的技术特性。因锂离子电池的输出电压会随着消耗情况在3.2~4.1V之间变动,白光LED的正向电压UF大约会在3.0~3.8V范围内变动,故如何针

  •