物联网实验报告记录Word下载.docx
《物联网实验报告记录Word下载.docx》由会员分享,可在线阅读,更多相关《物联网实验报告记录Word下载.docx(15页珍藏版)》请在冰豆网上搜索。
将1个标签放于仪器天线之上,给系统上电,打开系统软件PracticeSystem.exe,正确
设置串口,设置操作同防碰撞实验部分的设置操作。
运行“寻卡”command,得到正常标签的UID。
操作如图3.1所示:
2、读取单个BLOCK数据
确认系统已经得到了单个标签的UID,在“ISO15693命令”处,运行“读取单个数据
块”command,即可得到确定UID标签的相应Block里面的数据。
操作如图3.2所示:
查看“响应数据”里面的“数据显示栏”处和信息栏里的数据,上图为放置1个标签(卡
片)时读写器读到这个标签存储器内地址为0里面存储的数据。
可以在BlkAdd处更改地址,选择读取需要地址的数据
3、写单个BLOK数据
确认系统已经得到了单个标签的UID,在“ISO15693命令”处选择写入单个数据块,
在BlkAdd处输入想要写入数据的存储器地址数值,再在BlkBit处输入需要写入存储器内这
个地址的数据,运行“写入单个数据块”command,即可把需要的数据写入到当前标签指定
地址的Block存储器里。
操作如图3.3所示
查看“响应数据”里面的“Status”处的信息。
上图为放置1个标签(卡片)时读写器向标
签的存储器00位置写入12341234这4个字节数据的响应。
写入数据后,可以再通过“读取单个数据块”command读取相应地址的数据,与刚才
写入的数据比较来验证是否写入正确。
详细操作可以参考北京泰格瑞德科技有限公司的RFID教学系列基本使用说明和
RFID_ReaderPC软件命令使用说明相关文档。
实验二RFID防撞系统实验
熟悉和学习ISO/IEC18000-3,ISO15693标准规范第三部分协议的第8节
Anticollision内容,理解它的原理、流程和软件实现方法。
通过使用带anticollison处理过程的指令和不带anticollison处理过程的指令读
取多个标签,以及使用不带anticollison处理过程的指令读取单个标签,比较其
指令和读取的结果。
分析实验数据,总结防冲撞机理,掌握指令产生的作用。
ISO15693标准规范第三部分第8节。
四、所需仪器
1、设置
供电电源、多张电子标签。
加电运行系统,在系统的天线范围内放置多个标签。
打开系统软件PracticeSystem.exe,
正确设置串口,操作如图4.1所示:
选择确定当前使用的串口,操作如图4.2所示:
按“Confirm”确认后,然后按“Connect”连接串口。
连接正确时信息栏显示如图4.3所示:
2、操作
(1)Anticollision操作
在系统软件下,“测试命令”处,选择运行“测试防冲突”,“发送使用防冲突算法的寻
卡命令”动作。
操作如图4.4所示:
查看“响应数据”里面的“数据显示栏”处和信息栏里的数据,上图为放置3个标签(卡
片)时“Anticollision”命令读到的数据响应。
注意“Commanddata”里面的“数据显示栏”处的数据。
(2)Non-Anticollision操作
保持多张标签数量不变,在系统软件下,“ISO15693命令”处,选择运行
“Non-Anticollision”动作。
操作如图4.5所示:
片)时“Non-Anticollision”命令读到的数据响应。
注意此时“Commanddata”里面的“数据显示栏”处的数据。
在系统的射频磁场内保留一张电子标签,拿出多余的标签,在系统软件下,“ISO
15693命令”处,再次选择运行“Non-Anticollision”动作。
操作如图4.6所示:
注意此时“Commanddata”里面的“数据显示栏”处的数据。
把这个数据和
“Non-Anticollision”操作多个标签时以及“Anticollision”操作时“Commanddata”里
面的“数据显示栏”处的数据比较,结合ISO/IEC15693标准协议,分析实现现象和结
果,体会实验过程,加深对RFID防冲撞的理解。
实验三CC2530LED组件实验
掌握CC2530芯片LED对应的GPIO引脚,并且熟练掌握LED的使用。
二、实验设备
1.实验箱中的基站
2.烧录线一根
三、准备知识
熟读文件/opt/atos/tos/lib/antc5/common/atosled.h的内容。
在这个代码文件中
详细定义了各个LED对应的引脚,已经定义了各个LED的点灯和灭灯的操作。
四、实验原理
目前节点上有红、蓝、黄3个LED灯,其中,红灯是工作指示灯,蓝灯和
黄灯主要用于程序调试。
现在对LED灯的操作有三种:
点亮、关闭、闪烁(由
亮变暗或者由暗变亮),相对应的命令分别为:
LED_BLUE_ON、
LED_BLUE_OFF、LED_BLUE_TOGGLE、LED_YELLOW_ON、
LED_YELLOW_OFF、LED_YELLOW_TOGGLE。
在CC2530芯片中蓝灯对应
P1.2,黄灯对应P1.3,对P1.2的操作会反映在蓝灯上,将P1.2置高,蓝灯就会
亮,否则蓝灯就会灭掉。
下面是CC2530中LED部分的原理图。
1.将基站同电脑用烧录线连接好,打开基站的开关,同时将基站的烧录开关拨
上去
2.打开Cygwin开发环境
3.在Cygwin界面中执行cdapps/Demos/Basic/Led,进入到LED实验目录下,如下图。
4.在LED实验目录下执行makeantc5install进行编译和烧录,烧录成功如下图。
5.可以看到实验现象为黄灯和蓝灯交替闪烁。
六、实验注意事项
要达到LED等闪烁的效果,在每次LED等状态改变之后要有一定时间的延
时,否则状态切换太快超出人眼的反应时间就看不到闪烁的效果了。
七、流程图
八、参考程序
以下代码为主要部分代码,详细代码请参考该实验的源程序,源程序的目录如下:
$(安装目录)\cygwin\opt\atos\apps\Demos\Basic\Led
moduleLedM
{
usesinterfaceBoot;
}
implementation
/*LED灯演示*/
taskvoidDemoLed()
/**目前节点上提供两个LED灯
LED_BLUE->
蓝灯
LED_YELLOW->
黄灯
*/
inti,j;
while
(1)
for(i=0;
i<
1000;
i++)
for(j=0;
j<
500;
j++);
LED_BLUE_OFF;
/*熄灭蓝色LED灯*/
LED_YELLOW_ON;
/*点亮黄色LED灯*/
LED_BLUE_ON;
LED_YELLOW_OFF;
/**启动事件处理函数,在LED.nc已经关联到MainC.Boot接口
系统启动后会调用此函数
eventvoidBoot.booted()
postDemoLed();
九、实验总结
该实验完成了对CC2530芯片的LED进行控制,实际上是对CC2530芯片的
GPIO的控制。
掌握芯片LED控制之后,在复杂的程序中可以用LED作为一种
很好的调试手段。
实验四CC2530定时器组件实验
1.了解CC2530芯片的定时器
2.学会使用CC2530芯片的定时器
查看CC2530的芯片手册中定时器部分的文档,对定时器有一定的了解。
同
时要能够理解定时器中断的概念。
可以找一些其它平台的关于定时器的代码进行
阅读。
CC2530芯片包含四个定时器(Timer1、Timer2、Timer3、Timer4)和一个
休眠定时器(SleepTimer)。
Timer1是16位的定时器,支持典型的定时/计数功能以及PWM功能,该定
时器共有三个捕捉/比较通道,每个通道使用一个单独的I/O引脚。
Timer1的时
钟频率是由系统时钟分频得到,首先由寄存器中的CLKON.TICKSPD分频,系
统时钟是32MHz的情况下,CLKON.TICKSPD可以将该时钟频率分频到32MHz
(TICKSPD为000)、16MHz(TICKSPD为001)、8MHz(TICKSPD为010)、
4MHz(TICKSPD为011)、2MHz(TICKSPD为100)、1MHz(TICKSPD为101)、
0.5MHz(TICKSPD为110)、0.25MHz(TICKSPD为111);
分频后的时钟频率
可以被T1CTL.DIV分频,分频数为1、8、32、128。
因此,在32MHz的系统频
率下,Timer1的最小时钟频率为1953.125Hz,最大时钟频率为32MHz。
详见
CC2530.pdf第99页。
Timer2主要用于为802.15.4标准中的CSMA/CA算法提供定时。
该定时器
即使在节点处于低功耗状态下仍然运行。
Timer3和Timer4是两个8位的定时器,主要用于提供定时/计数功能。
SleepTimer主要将节点从超低功耗工作状态唤醒。
TinyOS系统下,定时器组件一般为通用组件(genericcomponents),通用组
件类似于C++中的类,可以通过new来实例化最多255个定时器,类似于类实
例化的对象。
在Antc5下,定时器通用组件为TimerMilliC,是Timer1提供的,
此外,Timer1还提供了Alarm32khzC等组件。
定时器向上层提供的接口分为Timer和Alarm两种,使用Timer接口需要指
定定时器的精度,分为TMilli(毫秒)、T32kHz(32KHz)、TMicro(微秒)三种;
使用Alarm接口既要指定定时精度,还要指定定时器的位宽。
3.在Cygwin界面中执行cdapps/Demos/Basic/Timer,进入到定时器实验目录下。
4.在定时器代码目录下执行makeantc5install,进行编译和烧录。
5.实验现象为蓝灯1秒闪一次,黄灯3秒闪一次。
在开启一个定时器的时候有两种方式,一种启动方式是只超时一次,另外一
种是循环超时。
所以在开启的时候要根据具体的需求选择具体的启动方式。
$(安装目录)\cygwin\opt\atos\apps\Demos\Basic\Timer
#defineDBG_LEV5
moduleTimerLedM
/*Timer为系统接口TMilli指明了定时器的精度为毫秒*/
usesinterfaceTimer<
TMilli>
asTimer1;
/*as关键字为接口别名*/
asTimer2;
/**任务:
切换黄色LED灯*/
taskvoidToggleLedYellow()
LED_YELLOW_TOGGLE;
/**启动事件处理函数,在TimerLed.nc已经关联到MainC.Boot接口
/**定时器1:
持续工作,每隔1s触发一次*/
callTimer1.startPeriodic(1000);
/**定时器2:
持续工作,每隔3s触发一次*/
callTimer2.startPeriodic(5000);
/**定时器1的事件处理函数*/
eventvoidTimer1.fired()
/**事件处理中直接切换蓝色LED灯*/
ADBG(5,"
ledbluetoggle.\r\n"
);
LED_BLUE_TOGGLE;
/**定时器2的事件处理函数*/
eventvoidTimer2.fired()
ledyellowtoggle.\r\n"
postToggleLedYellow();
该实验完成了对CC2530芯片的定时器的使用,通过LED来表现定时器的工
作过程。
在这个实验中用的定时器的精度为毫秒。
在这个实验中只使用了定时器
的几个最重要的功能,还有好多接口都没有使用,比如
timer.stop(),timer.isRunning()等,我们可以在课后自己动手尝试使用这些接口的功
能。