WSNJN5139实验预作报告.docx
《WSNJN5139实验预作报告.docx》由会员分享,可在线阅读,更多相关《WSNJN5139实验预作报告.docx(106页珍藏版)》请在冰点文库上搜索。
WSNJN5139实验预作报告
无线传感器网络实验
预作报告
(基于JN5139)
指导教师:
邓佳宾蒋吉娟
授课班级:
物联网141-142
实验1开发环境的建立
一.实验目的和要求:
1.掌握实验工具软件的安装方法
2.熟悉Codeblocks软件环境并掌握其使用方法
3.掌握用Flashprogrammer下载程序的过程
二.实验环境及相关情况
1.硬件环境:
PC机一台、JN5139节点及节点电源、USB转串口线
2.软件环境:
开发平台:
JN-SW-4031-SDK-Toolchain-v1.0.exe
协议栈库:
JN-SW-4030-SDK-Libraries-v1.0.exe
产品测试库:
JN-SW-4022-Production-Test-API-1v12.exe
USB转串口线驱动
串口调试助手
三.实验原理
(一)需要安装的软件
为建立软件开发环境,需要安装以下文件:
1.开发平台:
JN-SW-4031-SDK-Toolchain-v1.0.exe
可选组件包括:
cygwin
Codeblocks
Flashprogrammer
JenieCompilerTools
2.协议栈库:
JN-SW-4030-SDK-Libraries-v1.0.exe
可选组件包括:
IEEE802.15.4
Zigbeestack1v11
Jenie
AT-Jenie
3.产品测试库:
JN-SW-4022-Production-Test-API-1v12.exe
(二)平台中各组件说明
1.开发平台
开发平台中,包括多个组件,说明如下:
(1)Codeblocks:
这个软件是Jennic所提供的代码编辑和编译环境,这个软件和基于cygwin的gcc编译器进行连接完成代码的编译工作。
Codeblocks是一款开源的C/C++开发工具,Jennic基于这个工具对其进行扩展形成了自己的开发平台,集编辑、编译、FLASH编程于一体。
(2)Flashprogrammer:
这个程序是用来将编译好的代码下载到节点板中的工具,安装完最新的平台后,桌面上会有该工具的连接图标。
2.协议栈库:
协议栈库中包括多个组件,说明如下:
(1)IEEE802.15.4 协议栈
如果基于底层IEEE802.15.4进行开发,需要安装该协议栈。
(2)Zigbeestack1v11
如果基于Zigbee的开发,需要安装该协议栈,Zigbee可以实现星型网络,树状网络以及MESH网络。
(3)Jenie
如果基于Jennic的私有协议栈Jennet进行开发,则需要安装该库文件。
(4)AT-Jenie
如果基于AT-Jenie进行应用开发,则可以选择安装AT-Jenie。
(三)开发工具软件的安装过程
1.安装开发平台:
JN-SW-4031-SDK-Toolchain.exe
文件存放在光盘ZigBee\jn5139\Software文件夹中,双击该exe文件进行安装,将会弹出如图1-1所示的对话框,单击Next>按钮至下一步,将会弹出如图1-2所示的“使用许可协议”对话框。
图1-1安装对话框
图1-2“使用许可协议”对话框
单击IAgree按钮,将会弹出如图1-3所示的“工具链安装”对话框。
图1-3“工具链安装”对话框
白框内的组件都需要安装,均已勾选,单击Next>按钮进行下一步,选择文件安装路径。
建议你应当按照默认的路径安装,因为这样在软件使用时就不用进行另外的设置了。
图1-4文件安装位置选择
单击Next>按钮,进行下一步安装,弹出如图1-5的“选择开始菜单文件夹”窗口。
图1-5选择开始菜单文件夹
按照默认名称安装,单击Install>按钮,将会看到如下图1-6所示的正在安装软件的窗口。
图1-6正在安装软件的窗口
软件安装完成后,将会看到图1-7所示的安装软件完成的窗口。
图1-7安装软件完成的窗口
单击Next>按钮,将会看到如图1-8所示的安装完成窗口。
图1-8安装完成窗口
2.安装协议栈库文件:
JN-SW-4030-SDK-Libraries.exe
文件存放在C:
\ZigBee-文件\Zigbee\JN5139\Software文件夹中,双击该exe文件进行安装,将会弹出如图1-9所示的对话框。
图1-9协议栈库文件安装
单击Next>按钮至下一步,进行下一步安装,将会弹出如图1-10所示的“使用许可协议”对话框。
图1-10协议栈库文件安装-使用许可协议
单击IAgree>按钮会弹出如图1-11所示的“协议库安装”对话框。
图1-11协议栈库文件安装
按照默认设置,白框内的组件都需要安装,单击Next>按钮进行下一步安装,弹出如图1-12的“选择安装路径”窗口。
建议你按照默认的路径进行安装,这样使用过程中就无需另外设置。
图1-12协议栈库文件安装
单击Next>按钮进行下一步,弹出如图1-13的“选择开始菜单文件夹”窗口。
图1-13协议栈库文件安装
按照默认的名称进行安装,单击Install按钮,弹出如图1-14所示的“文件安装”窗口。
可看到文件安装进行情况。
图1-14协议栈库安装
软件安装完成后,将自动弹出图1-15所示的软件安装完成的窗口。
图1-15协议栈库安装完成
3.安装产品测试库软件:
JN-SW-4022-SDK-Production-Test-API-1V12.exe
文件存放在光盘Zigbee\JN5139\Software文件夹中双击该exe文件,进行安装,将会弹出如图1-16所示“选择安装位置”的对话框。
建议你按照默认的位置进行安装,尽量不要修改,这样使用时无需另外设置。
图1-16产品测试库软件安装
单击Install按钮,弹出如图1-17所示的“文件安装”窗口。
可看到文件安装进行情况。
图1-17产品测试库软件安装
软件安装完成后,将自动点亮Close按钮,提示“关闭”。
四、实验步骤
1.按照实验原理中软件的安装过程安装好相应的软件,建立好软件环境。
2.移植一个示例程序到集成开发环境中。
第一步:
将示例程序拷到C:
\Jennic\cygwin\Jennic\SDK\Application子目录中。
在这个文件夹的Codeblocksproject子目录中,对每个设备都有一个.cbp文件,称作应用的CodeBlock项目(project)文件,项目文件的后缀为.cbp(CodeBlockProject)。
第二步:
运行Code:
:
blocks
打开Codeblocks,路径为:
开始\所有程序\Jennic\JennicCodeblock,出现如图1-18所示的窗口。
如图1-18
单击File菜单项,弹出下拉菜单,如图1-19所示,在下拉菜单中,选择Open(打开),弹出如图1-20所示的OpenFile(打开文件)小窗口。
图1-19
图1-20
小窗口中选出所要的.cbp文件,然后点击“打开”按钮。
在Code:
:
Blocks主窗口左侧的Projects(工程拦)中,显示所选工程文件,在左下角的文件列表区显示它们各自的下一层文件:
.c源文件与.h头文件,双击.c源文件,可在主窗口中显示其源代码。
如图1-21所示。
图1--21
第三步编译工程文件,生成二进制文件.bin
在工具拦Buildtarget处选编译模式为Release(发布)模式。
右键单击工程名在下拉菜单中点击ReBuild(重建),则在右下方Message(信息)窗口,出现一系列编译和链接信息,如编译无问题,则在最后一行显示“0errors0warnning”,在编译操作全部完成之后,在C盘的Release子目录中,会有二进制文件Release\WSN_Coordinator.bin。
Release子目录为:
C:
\Jennic\cygwin\Jennic\SDK\Application\JN–AP-1015-Zigbee-WSN\JN5139Build\Release。
第四步下载的二进制文件到目标设备。
生成了Jennic节点能运行的.bin文件之后,就要通过JennicFlashProgrammer将两个.bin文件分别写入到不同的传感器板的Flash中。
1)将节点的串口用串口线与计算机的串口相连,将拨动开SW4搬向NORM一侧,将拨动开关SW5置于中间位置。
2)运行FlashProgrammer,打开FlashProgrammer,路径为:
开始\所有程序\Jennic\JennicFlashProgrammer,出现如图1-22所示的对话框。
最上面ProgramFile选项区域为目标文件的路径和名称,单击Browse(浏览)选择目标.bin文件:
C:
\Jennic\cygwin\Jennic\SDK\Application\JN-AP-1015-Zigbee-WSN\JN5139Build\Release\WSN_Router.Bin。
图1-22FlashProgramme对话框
3)给节点上电(将拨动开关SW5由中间位置搬向PWR或VBAT侧)。
在Configuration选项区域选所使用的串口(COM端口)。
注意:
只有在打开FlashProgrammer软件后,再给节点上电,节点才能进入编程状态。
单击Refresh按钮,若在FlashProgramme对话框相应位置显示出节点器件的型号、Flash(闪存)的型号以及MAC地址,则说明PC串口和节点的Flash(闪存)可以正常通信,且节点处于编程状态。
4)单击右下角的Program按钮,开始下载,将程序写入Flash(闪存),同时弹出Programming(编程)窗口,可以看到下载进展。
如图1-23所示。
图1-23所示
整个下载(将程序写入Flash)成功之后,会出现如图1-24所示的“程序成功写入Flash”的小窗口。
图1-24“程序成功写入Flash”窗口
5)程序成功写入节点板Flash之后,然后关掉FlashProgrammer软件,将拨动开SW4搬向PROGM一侧,就可以运行程序了。
实验2GPIO实验
一.实验目的和要求
1.掌握CodeBlocs的使用方法;
2.初步掌握JN5139GPIO端口的操作方法;
3.熟悉GPIO的相关API函数的调用方法;
3.进一步熟悉软件开发包的集成开发环境及使用方法。
二.实验环境及相关情况
1.硬件环境:
PC机1台、JN5139节点1个、节点电源1个、USB转串口线1条
2.软件环境:
Code:
Block、JnnicFlashProgrammer
三.实验原理
I/O口是无线传感器网络JN5139模块与外设之间信息交换和控制的通道,该模块有21个通用的I/O口(其中部分和通用异步收发器UART复用,(注意:
对于高功率模块DI02/SPISEL3以及DI03/SPISEL2不能使用),每个通道都是双向I/O口,可以执行程序控制I/O口的输出(“0”或“1”),也可以执行程序读取I/O口的数值(“0”或“1”)。
硬件连接图如图2-1所示用串口线连接计算机与网络节点。
图2-1图2-2
本实验中,为了驱动LED亮灭,需要将相应的I/O口设为输出模式,并使相应的I/O口输出“0”或“1”来切换LED灯的亮灭状态,亮灭之间插入一定的延时,以确保肉眼能看到闪烁效果。
实验参考流程图如图2-2所示。
四、实验步骤
(1)将程序Jennic_IO文件夹拷贝到C:
\Jennic\Cygwin\Jennic\SDK\Application路径下。
(2)启动Code:
:
Blocks
打开Code:
:
Blocks软件(路径为桌面开始\所有程序\Jennic\JennicCodeBlocks)如图2-3所示。
图2-3Code:
:
Blocks主界面
(3)打开文件
在File下拉菜单中,选Open,打开“OpenFile”窗口,如图2-4所示。
图2-4“OpenFile”窗口
在该窗口的查找范围拦选Jennic_IO,在白地的显示拦内,显示有关文件,如图2-5,点击Jennic_IO.cbp,在Codeblocks主窗口将出现如图2-5所示的变化:
在主窗口Mangment(管理区)Project(工程拦)的Workspace(工作空间)中,显示1个工程文件Jennic_IO和它的下一层文件Sourse与Headers,这些文件都可层层展开,如果到达某一项时不可以再展开,它就是可编译的。
在主窗口的左下角,打开的OpenFileList文件列表区,出现1个.C源文件:
Sourse\Jennic_IO.C,在窗口右边的代码编译区移植入Sourse\Jennic_IO.C的源代码,供编译和阅读。
图2-5打开文件后的主界面
(4)编译工程文件,生成二进制文件.bin
为了把程序写入传感器板,必须将程序变为二进制文件,这项工作由编译操作来完成。
编译Sourse\Jennic_IO.C,选择编译模式为Release模式,在工具拦Buildtarget处选编译模式为Release模式,点击菜单项Build,在下拉菜单中点击ReBuild(重建),则在右下方的Message窗口,出现一系列编译和链接信息,如编译无问题,则在最后一行显示:
0errors0warnning。
在编译操作全部完成之后,在C盘的Release子目录中,会有下述1个二进制文件:
Release\Jennic_IO.Bin。
Release子目录中可在下列路径找出:
C:
\Jennic\cygwin\Jennic\SDK\Application\JN5139_Build\Release
(5)目标程序下载
生成了Jennic节点能运行的.bin文件之后,就要通过JennicFlashProgrammer将bin文件写入到传感器板的Flash中。
1)将节点的串口用串口线与计算机的串口相连,将工作选择(下载/运行)拨动开关SW4置于NORM(下载)一侧。
供电选择(外5VPWR/电池BAT)拨动开关SW5置于中间位置,不给节点送电。
2)运行FlashProgrammer打开FlashProgrammer,路径为:
开始\所有程序\Jennic\Jennic\FlashProgrammer,出现如图2-6所示的对话框,最上面ProgramFile选项区域为目标文件的路径和名称,单击Browse(浏览)选择目标.bin文件:
C:
\Jennic\cygwin\Jennic\SDK\Application\JN5139_Build\Release\Jennic_IO.C.bin
3)给节点上电(将开关SW5由中间位置搬向PWR)。
在Configuration选项区域选所使用的串口(COM端口)
图2-6FlashProgramme对话框
注意:
只有在打开FlashProgrammer软件后,再给节点上电,节点才能进入编程状态。
单击Refresh(更新)按钮,若可读出节点器件的型号、Flash(闪存)的型号以及MAC地址,则说明PC串口和节点的Flash(闪存)可以正常通信,且节点处于编程状态。
4)单击右下角的Program按钮,开始下载,将程序写入Flash(闪存),同时弹出Programming(编程)窗口,可以看到下载进展过程,下载完成之后,弹出Verifying(证实)窗口。
整个下载(将程序写入Flash)成功之后,会出现如图2-7所示的“程序成功写入Flash”的小窗口。
图2-7“程序成功写入Flash”窗口
5)程序运行:
程序成功写入节点板Flash之后,,然后关掉FlashProgrammer软件,将SW4扳向NORM一侧,就可以运行程序了。
可以观察到电源灯亮,LED1灯亮,LED2闪亮。
注:
在运行与编程模式时,盒内跳线帽应接出厂时的位置,不必改动。
实验3定时器实验
(1)
一.实验目的和要求:
1.了解JN5139通用定时器的功能;
2.掌握定时器API函数的使用方法;
3.如何用定时器产生PWM输出以及使用TickTimer中断改变PWM的占空比;
4.掌握如何使用Timer0捕获、计数模式,使用Timer0产生中断
5.进一步熟习软件开发包的集成环境与使用方法。
二.实验环境及相关情况:
1.硬件环境:
PC机1台、JN5139节点1个、节点电源1个、USB转串口线1条
2.软件环境:
Code:
Block、JnnicFlashProgrammer
三.实验原理:
定时是无线传感器网络JN5139模块主要功能之一,用于定时中断,产生PWM(脉宽调制)脉冲计数。
JN5139模块共有2个可编辑定时器/计数器,Timer0和Timer1,3个系统定时器TickTimer、两个WakeTimer。
本实验包括4个项目:
(1)定时器产生PWM输出
脉冲宽度调制的波形常用“占空比”(S/M)表示在一个周期内高低电平持续时间的比值。
Timer1.c和Timer2.c程序介绍如何使用定时器产生PWM输出。
在产生方式上可以采用两种模式:
PWM和△-∑PWM两种方式输出PWM波形。
△-∑PWM的输出波形比普通的PWM输出的波形平滑。
Timer2.c除了具有Timer1.c中的功能外,还有TickTimer的设置。
TickTimer比较寄存器装载的比较值为160000,每10ms产生一次中断,当比较寄存器的值与计数器的值匹配时,TickTimer产生中断并重新运行,每次中断触发后,PWM的高电平持续实践增加0X200个时钟周期,可以通过设置UART以及打印函数观察输出值。
也可以通过示波器观察波形的占空比的变化。
实验现象:
通过连接万用表和示波器到开发板的第11引脚和第14引脚观察PWM输出。
(2)定时器的捕获应用
Timer3.c和Timer4.c介绍如何使用Timer0捕获Timer1产生PWM信号。
在捕获模式下,定时器计算时钟周期数,直到检测到H-L及L-H电平转换。
通过连接开发板上的40针外扩口的第10引脚(Timer0的捕获输入)和第14引脚(Timer1的PWM输出),完成定时器的捕获测试。
本实验要注意预分频器的使用,预分频器的作用是将16MHz的时钟进行分频,这样时钟被分频后的周期延长,便于进行较宽的PWM输出或更大间隔的定时中断,但是在捕获模式下不要设置预分频器。
Timer3.c实验中Timer0为捕获定时器,没有预分频,技术频率为16MHz。
Timer1作为PWM发生器,周期接近4.1ms,M/S比为1:
3,可以通过示波器观察输出PWM波形的占空比,定时器捕获返回两个计数值,其差值即脉宽计数值。
Timer4.c的工作过程与Timer3.c类似,所不同的是,捕获完成,Timer0产生中断。
四、实验用硬件与硬件连接
实验硬件的连接关系如图3-1所示。
图3-1
五、实验步骤:
1.将实验程序内的“实验3Timer1”文件夹拷贝到C:
\Jennic\Cygwin\Jennic\SDK\Application路径下。
2.启动Code:
:
Blocks,打开Code:
:
Blocks主界面,如图3-2所示,但Mangment、OpenFileList和代码编译区均无内容。
图3-2Code:
:
Blocks主界面
在Code:
:
Blocks主界面的File下拉菜单中,选Open,打开“Openfile”窗口。
在“Openfile”窗口的查找范围拦选JN5139_Timer1在白地的显示拦内,显示有关文件,点击JN5139_Timer1.cbp,在Codeblocks主窗口的Mangment(管理区)Project(工程拦)的Workspace(工作空间)中,显示1个工程文件JN5139_Timer1和它的下一层文件Sourse与Headers。
在主窗口的左下角,打开的OpenFileList文件列表区,出现1个.C源文件:
Sourse\JN5139_Timer1.C。
在窗口右边的代码编译区移植入Sourse\JN5139_Timer1.C的源代码,供编译和阅读。
如图3-3所示。
图3-3Code:
:
Blocks主界面(打开文件后)
(3)编译工程文件,生成二进制文件.bin,这项工作由编译操作来完成。
注意:
在工具拦Buildtarget处选编译模式为Release(发布)模式
点击菜单项Build,在下拉菜单中点击ReBuild(重建),则在右下方Message(信息)窗口,出现一系列编译和链接信息。
如果编译无问题,则在最后一行显示:
0errors0warnning
(4)目标程序下载
生成了Jennic节点能运行的.bin文件之后,就要通过JennicFlashProgrammer将bin文件写入到传感器板的Flash中。
首先将节点的串口用串口线与计算机的串口相连。
然后运行FlashProgrammer,出现如图3-4所示的对话框,最上面ProgramFile选项区域为目标文件的路径和名称,单击Browse(浏览)弹出Choseafile窗口,选择目标.bin文件,点击查找范围下拉菜单,在下拉菜单中,点击Jennic。
然后按下列路径找出JN5139_Timer1.bin文件。
C:
\Jennic\cygwin\Jennic\SDK\Application\Jennic_IO\JN5139_Build\Release\JN5139_Timer1.bin。
图3-4FlashProgramme对话框
然后给节点上电(将开关SW5由中间位置搬向PWR)。
在Configuration选项区域选所使用的串口(COM端口)注意:
只有在打开FlashProgrammer软件后,再给节点上电,节点才能进入编程状态。
单击Refresh(更新)按钮,若可读出节点器件的型号、Flash的型号以及MAC地址,则说明PC串口和节点的Flash可以正常通信,且节点处于编程状态。
单击右下角的Program按钮开始下载,将程序写入Flash,同时弹出Programming(编程)窗口,可以看到下载进展过程,下载完成之后会出现“程序成功写入Flash”的小窗口。
(3)程序成功写入节点板Flash之后,然后关掉FlashProgrammer窗口,这样将通过连接万用表和示波器到开发板的第11引脚和第14引脚观察PWM输出。
(4)将上述步骤中Timer1.c改为Timer2.c,重复以上步骤,通过示波器观察波形,通过串口调试助手观察PWM输出的高电平的时钟周期值。
(5)将上述步骤中Timer1.c改为Timer3.c,重复以上步骤,通过示波器观察波形。
(6)将上述步骤中Timer1.c改为Timer4.c,重复以上步骤,通过示波器观察波形。
实验4