1、物联网实验报告物联网实验报告学院: 班级:学号:指导教师:2013/12/8实验一 RFID的读与写一、实验目的熟悉和学习ISO/IEC 18000-3,ISO15693 标准规第三局部协议和指令容中的读取和写入标签数据操作局部容。二、实验容通过发送不同的根本指令,观察返回的数据,了解指令的作用。三、根本原理ISO15693 标准规第三局部。四、所需仪器供电电源、电子标签。五、实验步骤1、读取UID将1 个标签放于仪器天线之上,给系统上电,翻开系统软件PracticeSystem.exe,正确设置串口,设置操作同防碰撞实验局部的设置操作。运行“寻卡mand,得到正常标签的UID。操作如图3.1
2、 所示:2、读取单个BLOCK 数据确认系统已经得到了单个标签的UID,在“ISO 15693 命令处,运行“读取单个数据块mand,即可得到确定UID 标签的相应Block 里面的数据。操作如图3.2 所示:查看“响应数据里面的“数据显示栏处和信息栏里的数据,上图为放置1 个标签卡片时读写器读到这个标签存储器地址为0 里面存储的数据。可以在BlkAdd 处更改地址,选择读取需要地址的数据3、写单个BLOK 数据确认系统已经得到了单个标签的UID,在“ISO 15693 命令处选择写入单个数据块,在BlkAdd 处输入想要写入数据的存储器地址数值,再在BlkBit 处输入需要写入存储器这个地址
3、的数据,运行“写入单个数据块mand,即可把需要的数据写入到当前标签指定地址的Block 存储器里。操作如图3.3 所示查看“响应数据里面的“Status处的信息。上图为放置1 个标签卡片时读写器向标签的存储器00 位置写入12 34 12 34 这4 个字节数据的响应。写入数据后,可以再通过“读取单个数据块mand 读取相应地址的数据,与刚刚写入的数据比拟来验证是否写入正确。详细操作可以参考泰格瑞德科技的RFID 教学系列根本使用说明和RFID_Reader PC 软件命令使用说明相关文档。实验二RFID 防撞系统实验一、实验目的熟悉和学习ISO/IEC 18000-3,ISO15693 标
4、准规第三局部协议的第8 节Anticollision 容,理解它的原理、流程和软件实现方法。二、实验容通过使用带anticollison 处理过程的指令和不带anticollison 处理过程的指令读取多个标签,以及使用不带anticollison 处理过程的指令读取单个标签,比拟其指令和读取的结果。分析实验数据,总结防冲撞机理,掌握指令产生的作用。三、根本原理ISO15693 标准规第三局部第8 节。四、所需仪器1、设置供电电源、多电子标签。加电运行系统,在系统的天线围放置多个标签。翻开系统软件PracticeSystem.exe,正确设置串口,操作如图4.1 所示:选择确定当前使用的串口,
5、操作如图4.2 所示:按“Confirm确认后,然后按“Connect连接串口。连接正确时信息栏显示如图4.3 所示:2、操作(1) Anticollision 操作在系统软件下,“测试命令处,选择运行“测试防冲突,“发送使用防冲突算法的寻卡命令动作。操作如图4.4 所示:查看“响应数据里面的“数据显示栏处和信息栏里的数据,上图为放置3 个标签卡片时“Anticollision命令读到的数据响应。注意“mand data里面的“数据显示栏处的数据。(2) Non-Anticollision 操作保持多标签数量不变,在系统软件下,“ISO 15693 命令处,选择运行“Non-Anticolli
6、sion动作。操作如图4.5 所示:查看“响应数据里面的“数据显示栏处和信息栏里的数据,上图为放置3 个标签卡片时“Non-Anticollision命令读到的数据响应。注意此时“mand data里面的“数据显示栏处的数据。在系统的射频磁场保存一电子标签,拿出多余的标签,在系统软件下,“ISO15693 命令处,再次选择运行“Non-Anticollision动作。操作如图4.6 所示:查看“响应数据里面的“数据显示栏处和信息栏里的数据,上图为放置1 个标签卡片时“Non-Anticollision命令读到的数据响应。注意此时“mand data 里面的“数据显示栏处的数据。把这个数据和“N
7、on-Anticollision操作多个标签时以及“Anticollision操作时“mand data里面的“数据显示栏处的数据比拟,结合ISO/IEC 15693 标准协议,分析实现现象和结果,体会实验过程,加深对RFID 防冲撞的理解。实验三 CC2530 LED 组件实验一、实验目的掌握CC2530 芯片LED 对应的GPIO 引脚,并且熟练掌握LED 的使用。二、实验设备1. 实验箱中的基站2. 烧录线一根三、准备知识熟读文件/opt/atos/tos/lib/antc5/mon/atosled.h 的容。在这个代码文件中详细定义了各个LED 对应的引脚,已经定义了各个LED 的点灯
8、和灭灯的操作。四、实验原理目前节点上有红、蓝、黄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. 将基站
9、同电脑用烧录线连接好,翻开基站的开关,同时将基站的烧录开关拨上去2. 翻开Cygwin 开发环境3. 在Cygwin 界面中执行cd apps/Demos/Basic/Led,进入到LED 实验目录下,如下列图。4. 在LED 实验目录下执行make antc5 install 进展编译和烧录,烧录成功如下列图。5. 可以看到实验现象为黄灯和蓝灯交替闪烁。六、实验考前须知要到达LED 等闪烁的效果,在每次LED 等状态改变之后要有一定时间的延时,否那么状态切换太快超出人眼的反响时间就看不到闪烁的效果了。七、流程图八、参考程序以下代码为主要局部代码,详细代码请参考该实验的源程序,源程序的目录如下
10、:$(安装目录)cygwinopt atosappsDemosBasicLedmodule LedMuses interface Boot;implementation/* LED 灯演示*/task void DemoLed()/* 目前节点上提供两个LED 灯LED_BLUE - 蓝灯LED_YELLOW - 黄灯*/int i,j;while(1)for(i=0;i1000;i+)for(j=0;j500;j+);LED_BLUE_OFF; /* 熄灭蓝色LED 灯*/LED_YELLOW_ON; /* 点亮黄色LED 灯*/for(i=0;i1000;i+)for(j=0;j500;j
11、+);LED_BLUE_ON; /* 熄灭蓝色LED 灯*/LED_YELLOW_OFF; /* 点亮黄色LED 灯*/* 启动事件处理函数,在LED.nc 已经关联到MainC.Boot 接口系统启动后会调用此函数*/event void Boot.booted()post DemoLed();九、实验总结该实验完成了对CC2530 芯片的LED 进展控制,实际上是对CC2530 芯片的GPIO 的控制。掌握芯片LED 控制之后,在复杂的程序中可以用LED 作为一种很好的调试手段。实验四 CC2530 定时器组件实验一、实验目的1. 了解CC2530 芯片的定时器2. 学会使用CC2530
12、芯片的定时器二、实验设备1. 实验箱中的基站2. 烧录线一根三、准备知识查看CC2530 的芯片手册中定时器局部的文档,对定时器有一定的了解。同时要能够理解定时器中断的概念。可以找一些其它平台的关于定时器的代码进展阅读。四、实验原理CC2530 芯片包含四个定时器Timer1、Timer2、Timer3、Timer4和一个休眠定时器Sleep Timer。Timer1 是16 位的定时器,支持典型的定时/计数功能以及PWM 功能,该定时器共有三个捕捉/比拟通道,每个通道使用一个单独的I/O 引脚。Timer1 的时钟频率是由系统时钟分频得到,首先由存放器中的CLKON.TICKSPD 分频,系
13、统时钟是32MHz 的情况下,CLKON.TICKSPD 可以将该时钟频率分频到32MHzTICKSPD 为000、16MHzTICKSPD 为001、8MHzTICKSPD 为010、4MHzTICKSPD 为011、2MHzTICKSPD 为100、1MHzTICKSPD 为101、0.5MHzTICKSPD 为110、0.25MHzTICKSPD 为111;分频后的时钟频率可以被T1CTL.DIV 分频,分频数为1、8、32、128。因此,在32MHz 的系统频率下,Timer1 的最小时钟频率为1953.125Hz,最大时钟频率为32MHz。详见CC2530.pdf 第99 页。Tim
14、er2 主要用于为802.15.4 标准中的CSMA/CA 算法提供定时。该定时器即使在节点处于低功耗状态下仍然运行。Timer3 和Timer4 是两个8 位的定时器,主要用于提供定时/计数功能。Sleep Timer 主要将节点从超低功耗工作状态唤醒。TinyOS 系统下,定时器组件一般为通用组件generic ponents,通用组件类似于C+中的类,可以通过new 来实例化最多255 个定时器,类似于类实例化的对象。在Antc5 下,定时器通用组件为TimerMilliC, 是Timer1 提供的,此外,Timer1 还提供了Alarm32khzC 等组件。定时器向上层提供的接口分为T
15、imer 和Alarm 两种,使用Timer 接口需要指定定时器的精度,分为TMilli毫秒、T32kHz32KHz、TMicro微秒三种;使用Alarm 接口既要指定定时精度,还要指定定时器的位宽。五、实验步骤1. 将基站同电脑用烧录线连接好,翻开基站的开关,同时将基站的烧录开关拨上去2. 翻开Cygwin 开发环境3. 在Cygwin 界面中执行cd apps/Demos/Basic/ Timer,进入到定时器实验目录下。4. 在定时器代码目录下执行make antc5 install,进展编译和烧录。5. 实验现象为蓝灯1 秒闪一次,黄灯3 秒闪一次。六、实验考前须知在开启一个定时器的时
16、候有两种方式,一种启动方式是只超时一次,另外一种是循环超时。所以在开启的时候要根据具体的需求选择具体的启动方式。七、流程图八、参考程序以下代码为主要局部代码,详细代码请参考该实验的源程序,源程序的目录如下:$(安装目录)cygwinopt atosappsDemosBasicTimer#define DBG_LEV 5module TimerLedMuses interface Boot;/* Timer 为系统接口TMilli 指明了定时器的精度为毫秒*/uses interface Timer as Timer1; /* as 关键字为接口别名*/uses interface Timer
17、as Timer2;implementation/* 任务: 切换黄色LED 灯*/task void ToggleLedYellow()LED_YELLOW_TOGGLE;/* 启动事件处理函数,在TimerLed.nc 已经关联到MainC.Boot 接口系统启动后会调用此函数*/event void Boot.booted()/* 定时器1: 持续工作,每隔1s 触发一次*/call Timer1.startPeriodic(1000);/* 定时器2: 持续工作,每隔3s 触发一次*/call Timer2.startPeriodic(5000);/* 定时器1 的事件处理函数*/ev
18、ent void Timer1.fired()/* 事件处理中直接切换蓝色LED 灯*/ADBG(5, led blue toggle.rn);LED_BLUE_TOGGLE;/* 定时器2 的事件处理函数*/event void Timer2.fired()ADBG(5, led yellow toggle.rn);post ToggleLedYellow();九、实验总结该实验完成了对CC2530 芯片的定时器的使用,通过LED 来表现定时器的工作过程。在这个实验中用的定时器的精度为毫秒。在这个实验中只使用了定时器的几个最重要的功能,还有好多接口都没有使用,比方timer.stop(),timer.isRunning()等,我们可以在课后自己动手尝试使用这些接口的功能。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1