物联网实验报告.docx

上传人:b****8 文档编号:29443472 上传时间:2023-07-23 格式:DOCX 页数:18 大小:3.75MB
下载 相关 举报
物联网实验报告.docx_第1页
第1页 / 共18页
物联网实验报告.docx_第2页
第2页 / 共18页
物联网实验报告.docx_第3页
第3页 / 共18页
物联网实验报告.docx_第4页
第4页 / 共18页
物联网实验报告.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

物联网实验报告.docx

《物联网实验报告.docx》由会员分享,可在线阅读,更多相关《物联网实验报告.docx(18页珍藏版)》请在冰豆网上搜索。

物联网实验报告.docx

物联网实验报告

物联网实验报告

 

学院:

班级:

学号:

指导教师:

2013/12/8

 

 

实验一RFID的读与写

一、实验目的

熟悉和学习ISO/IEC18000-3,ISO15693标准规第三局部协议和指令容

中的读取和写入标签数据操作局部容。

二、实验容

通过发送不同的根本指令,观察返回的数据,了解指令的作用。

三、根本原理

ISO15693标准规第三局部。

四、所需仪器

供电电源、电子标签。

五、实验步骤

1、读取UID

将1个标签放于仪器天线之上,给系统上电,翻开系统软件PracticeSystem.exe,正确

设置串口,设置操作同防碰撞实验局部的设置操作。

运行“寻卡〞mand,得到正常标签的UID。

操作如图3.1所示:

2、读取单个BLOCK数据

确认系统已经得到了单个标签的UID,在“ISO15693命令〞处,运行“读取单个数据

块〞mand,即可得到确定UID标签的相应Block里面的数据。

操作如图3.2所示:

查看“响应数据〞里面的“数据显示栏〞处和信息栏里的数据,上图为放置1个标签〔卡

片〕时读写器读到这个标签存储器地址为0里面存储的数据。

可以在BlkAdd处更改地址,选择读取需要地址的数据

3、写单个BLOK数据

确认系统已经得到了单个标签的UID,在“ISO15693命令〞处选择写入单个数据块,

在BlkAdd处输入想要写入数据的存储器地址数值,再在BlkBit处输入需要写入存储器这

个地址的数据,运行“写入单个数据块〞mand,即可把需要的数据写入到当前标签指定

地址的Block存储器里。

操作如图3.3所示

查看“响应数据〞里面的“Status〞处的信息。

上图为放置1个标签〔卡片〕时读写器向标

签的存储器00位置写入12341234这4个字节数据的响应。

写入数据后,可以再通过“读取单个数据块〞mand读取相应地址的数据,与刚刚

写入的数据比拟来验证是否写入正确。

详细操作可以参考泰格瑞德科技的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〞命令读到的数据响应。

注意“manddata〞里面的“数据显示栏〞处的数据。

(2)Non-Anticollision操作

保持多标签数量不变,在系统软件下,“ISO15693命令〞处,选择运行

“Non-Anticollision〞动作。

操作如图4.5所示:

查看“响应数据〞里面的“数据显示栏〞处和信息栏里的数据,上图为放置3个标签〔卡

片〕时“Non-Anticollision〞命令读到的数据响应。

注意此时“manddata〞里面的“数据显示栏〞处的数据。

在系统的射频磁场保存一电子标签,拿出多余的标签,在系统软件下,“ISO

15693命令〞处,再次选择运行“Non-Anticollision〞动作。

操作如图4.6所示:

查看“响应数据〞里面的“数据显示栏〞处和信息栏里的数据,上图为放置1个标签〔卡

片〕时“Non-Anticollision〞命令读到的数据响应。

注意此时“manddata〞里面的“数据显示栏〞处的数据。

把这个数据和

“Non-Anticollision〞操作多个标签时以及“Anticollision〞操作时“manddata〞里

面的“数据显示栏〞处的数据比拟,结合ISO/IEC15693标准协议,分析实现现象和结

果,体会实验过程,加深对RFID防冲撞的理解。

 

实验三CC2530LED组件实验

一、实验目的

掌握CC2530芯片LED对应的GPIO引脚,并且熟练掌握LED的使用。

二、实验设备

1.实验箱中的基站

2.烧录线一根

三、准备知识

熟读文件/opt/atos/tos/lib/antc5/mon/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灯*/

for(i=0;i<1000;i++)

for(j=0;j<500;j++);

LED_BLUE_ON;/*熄灭蓝色LED灯*/

LED_YELLOW_OFF;/*点亮黄色LED灯*/

}

}

/**启动事件处理函数,在LED.nc已经关联到MainC.Boot接口

系统启动后会调用此函数

*/

eventvoidBoot.booted()

{

postDemoLed();

}

}

九、实验总结

该实验完成了对CC2530芯片的LED进展控制,实际上是对CC2530芯片的

GPIO的控制。

掌握芯片LED控制之后,在复杂的程序中可以用LED作为一种

很好的调试手段。

实验四CC2530定时器组件实验

一、实验目的

1.了解CC2530芯片的定时器

2.学会使用CC2530芯片的定时器

二、实验设备

1.实验箱中的基站

2.烧录线一根

三、准备知识

查看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系统下,定时器组件一般为通用组件〔genericponents〕,通用组

件类似于C++中的类,可以通过new来实例化最多255个定时器,类似于类实

例化的对象。

在Antc5下,定时器通用组件为TimerMilliC,是Timer1提供的,

此外,Timer1还提供了Alarm32khzC等组件。

定时器向上层提供的接口分为Timer和Alarm两种,使用Timer接口需要指

定定时器的精度,分为TMilli〔毫秒〕、T32kHz〔32KHz〕、TMicro〔微秒〕三种;

使用Alarm接口既要指定定时精度,还要指定定时器的位宽。

五、实验步骤

1.将基站同电脑用烧录线连接好,翻开基站的开关,同时将基站的烧录开关拨

上去

2.翻开Cygwin开发环境

3.在Cygwin界面中执行cdapps/Demos/Basic/Timer,进入到定时器实验目录下。

4.在定时器代码目录下执行makeantc5install,进展编译和烧录。

5.实验现象为蓝灯1秒闪一次,黄灯3秒闪一次。

六、实验考前须知

在开启一个定时器的时候有两种方式,一种启动方式是只超时一次,另外一

种是循环超时。

所以在开启的时候要根据具体的需求选择具体的启动方式。

七、流程图

八、参考程序

以下代码为主要局部代码,详细代码请参考该实验的源程序,源程序的目录如下:

$(安装目录)\cygwin\opt\atos\apps\Demos\Basic\Timer

#defineDBG_LEV5

moduleTimerLedM

{

usesinterfaceBoot;

/*Timer为系统接口TMilli指明了定时器的精度为毫秒*/

usesinterfaceTimerasTimer1;/*as关键字为接口别名*/

usesinterfaceTimerasTimer2;

}

implementation

{

/**任务:

切换黄色LED灯*/

taskvoidToggleLedYellow()

{

LED_YELLOW_TOGGLE;

}

/**启动事件处理函数,在TimerLed.nc已经关联到MainC.Boot接口

系统启动后会调用此函数

*/

eventvoidBoot.booted()

{

/**定时器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()

{

ADBG(5,"ledyellowtoggle.\r\n");

postToggleLedYellow();

}

}

九、实验总结

该实验完成了对CC2530芯片的定时器的使用,通过LED来表现定时器的工

作过程。

在这个实验中用的定时器的精度为毫秒。

在这个实验中只使用了定时器

的几个最重要的功能,还有好多接口都没有使用,比方

timer.stop(),timer.isRunning()等,我们可以在课后自己动手尝试使用这些接口的功

能。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1