物联网实验报告.docx

上传人:scccc 文档编号:12353076 上传时间:2021-12-03 格式:DOCX 页数:18 大小:17.21KB
返回 下载 相关 举报
物联网实验报告.docx_第1页
第1页 / 共18页
物联网实验报告.docx_第2页
第2页 / 共18页
物联网实验报告.docx_第3页
第3页 / 共18页
物联网实验报告.docx_第4页
第4页 / 共18页
物联网实验报告.docx_第5页
第5页 / 共18页
亲,该文档总共18页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

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

1、物联网实验报告 物联网试验报告 学院: 班级: 学号: 姓名: 指导老师: 2021/12/8 名目 试验一 RFID的读与写. 2 一、试验目的 . 2 二、试验内容 . 3 三、基本原理 . 3 四、所需仪器 . 3 五、试验步骤 . 3 试验二 RFID 防撞系统试验 . 5 一、试验目的 . 5 二、试验内容 . 5 三、基本原理 . 5 试验三 CC2530 LED 组件试验 . 9 一、试验目的 . 9 二、试验设备 . 9 三、预备学问 . 9 四、试验原理 . 9 五、试验步骤 . 9 六、试验留意事项 . 11 八、参考程序 . 12 九、试验总结 . 12 试验四 CC25

2、30 定时器组件试验. 13 一、试验目的 . 13 二、试验设备 . 13 三、预备学问 . 13 四、试验原理 . 13 五、试验步骤 . 13 八、参考程序 . 14 九、试验总结 . 15 试验一 RFID的读与写 一、试验目的 熟识和学近平 ISO/IEC 18000-3,ISO15693 标准规范第三部分协议和指令内容 中的读取和写入标签数据操作部分内容。 二、试验内容 通过发送不同的基本指令,观看返回的数据,了解指令的作用。 三、基本原理 ISO15693 标准规范第三部分。 四、所需仪器 供电电源、电子标签。 五、试验步骤 1、读取UID 将 1 个标签放于仪器天线之上,给系统

3、上电,打开系统软件PracticeSystem.exe,正确 设置串口,设置操作同防碰撞试验部分的设置操作。 运行“寻卡”command,得到正常标签的UID。操作如图3.1 所示: 2、读取单个BLOCK 数据 确认系统已经得到了单个标签的 UID,在“ISO 15693 指令”处,运行“读取单个数据 块”command,即可得到确定UID 标签的相应Block 里面的数据。操作如图3.2 所示: 查看“响应数据”里面的“数据显示栏”处和信息栏里的数据,上图为放置1 个标签(卡 片)时读写器读到这个标签存储器内地址为0 里面存储的数据。 可以在 BlkAdd 处更改地址,选择读取需要地址的数

4、据 3、写单个BLOK 数据 确认系统已经得到了单个标签的 UID,在“ISO 15693 指令”处选择写入单个数据块, 在BlkAdd 处输入想要写入数据的存储器地址数值,再在BlkBit 处输入需要写入存储器内这 个地址的数据,运行“写入单个数据块”command,即可把需要的数据写入到当前标签指定 地址的Block 存储器里。操作如图3.3 所示 查看“响应数据”里面的“Status”处的信息。上图为放置1 个标签(卡片)时读写器向标 签的存储器00 位置写入12 34 12 34 这4 个字节数据的响应。 写入数据后,可以再通过“读取单个数据块” command 读取相应地址的数据,与

5、刚才 写入的数据比较来验证是否写入正确。 具体操作可以参考北京泰格瑞德科技有限公司的RFID 教学系列基本用法说明和 RFID_Reader PC 软件指令用法说明相关文档。 试验二 RFID 防撞系统试验 一、试验目的 熟识和学. ISO/IEC 18000-3,ISO15693 标准规范第三部分协议的第8 节 Anticollision 内容,理解它的原理、流程和软件实现方法。 二、试验内容 通过用法带 anticollison 处理过程的指令和不带anticollison 处理过程的指令读 取多个标签,以及用法不带anticollison 处理过程的指令读取单个标签,比较其 指令和读取的

6、结果。分析试验数据,总结防冲撞机理,把握指令产生的作用。 三、基本原理 ISO15693 标准规范第三部分第8 节。 四、 所需仪器 1、设置 供电电源、多张电子标签。 加电运行系统,在系统的天线范围内放置多个标签。打开系统软件 PracticeSystem.exe, 正确设置串口,操作如图4.1 所示: 选择确定当前用法的串口,操作如图4.2 所示: 按“Confirm”确认后,然后按“Connect”连接串口。连接正确时信息栏显示如图4.3 所示: 2、操作 (1) Anticollision 操作 在系统软件下,“测试指令”处,选择运行“测试防冲突”,“发送用法防冲突算法的寻 卡指令”动

7、作。操作如图4.4 所示: 查看“响应数据”里面的“数据显示栏”处和信息栏里的数据,上图为放置3 个标签(卡 片)时“Anticollision”指令读到的数据响应。 留意“Command data”里面的“数据显示栏”处的数据。 (2) Non-Anticollision 操作 保 持 多 张 标签数量不变, 在系统软件下,“ ISO 15693 指令” 处, 选择运行 “Non-Anticollision”动作。操作如图4.5 所示: 查看“响应数据”里面的“数据显示栏”处和信息栏里的数据,上图为放置3 个标签(卡 片)时“Non-Anticollision”指令读到的数据响应。 留意此时

8、“Command data”里面的“数据显示栏”处的数据。 在系统的射频磁场内保留一张电子标签,拿出多余的标签,在系统软件下,“ISO 15693 指令”处,再次选择运行“Non-Anticollision”动作。操作如图4.6 所示: 查看“响应数据”里面的“数据显示栏”处和信息栏里的数据,上图为放置1 个标签(卡 片)时“Non-Anticollision”指令读到的数据响应。 注 意 此 时 “Command data ” 里面的“ 数据显示栏” 处的数据。把这个数据和 “Non-Anticollision”操作多个标签时以及“Anticollision”操作时“Command data

9、”里 面的“数据显示栏”处的数据比较,结合ISO/IEC 15693 标准协议,分析实现现象和结 果,体会试验过程,加深对RFID 防冲撞的理解。 试验三 CC2530 LED 组件试验 一、试验目的 把握CC2530 芯片LED 对应的GPIO 引脚,并且娴熟把握LED 的用法。 二、试验设备 1. 试验箱中的基站 2. 烧录线一根 三、预备学问 熟读文件/opt/atos/tos/lib/antc5/common/atosled.h 的内容。在这个代码文件中 具体定义了各个LED 对应的引脚,已经定义了各个LED 的点灯和灭灯的操作。 四、试验原理 目前节点上有红、蓝、黄3 个LED 灯,

10、其中,红灯是工作指示灯,蓝灯和 黄灯主要用于程序调试。现在对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. 将基站同电脑用烧录线连接好,打开基站的开关,同时将

11、基站的烧录开关拨 上去 2. 打开Cygwin 开发环境 3. 在Cygwin 界面中执行cd apps/Demos/Basic/Led,进入到LED 试验名目下,如下图。 4. 在LED 试验名目下执行make antc5 install 进行编译和烧录,烧录胜利如下图。 5. 可以看到试验现象为黄灯和蓝灯交替闪耀。 六、试验留意事项 要达到LED 等闪耀的效果,在每次LED 等状态转变之后要有肯定时间的延 时,否则状态切换太快超出人眼的反应时间就看不到闪耀的效果了。 七、流程图 八、参考程序 以下代码为主要部分代码,具体代码请参考该试验的源程序,源程序的名目如下: $(安装名目)cygwi

12、nopt atosappsDemosBasicLed module LedM uses 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;j5

13、00;j+); 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 芯

14、片的定时器 2. 学会用法CC2530 芯片的定时器 二、试验设备 1. 试验箱中的基站 2. 烧录线一根 三、预备学问 查看CC2530 的芯片手册中定时器部分的文档,对定时器有肯定的了解。同 时要能够理解定时器中断的概念。可以找一些其它平台的关于定时器的代码进行 阅读。 四、试验原理 CC2530 芯片包含四个定时器(Timer1、Timer2、Timer3、Timer4)和一个 休眠定时器(Sleep Timer)。 Timer1 是16 位的定时器,支持典型的定时/计数功能以及PWM 功能,该定 时器共有三个捕捉/比较通道,每个通道用法一个单独的I/O 引脚。Timer1 的时 钟频率

15、是由系统时钟分频得到,首先由寄存器中的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 的系统频 率下,Ti

16、mer1 的最小时钟频率为1953.125Hz,最大时钟频率为32MHz。详见 CC2530.pdf 第99 页。 Timer2 主要用于为802.15.4 标准中的CSMA/CA 算法供应定时。该定时器 即使在节点处于低功耗状态下仍旧运行。 Timer3 和Timer4 是两个8 位的定时器,主要用于供应定时/计数功能。 Sleep Timer 主要将节点从超低功耗工作状态唤醒。 TinyOS 系统下,定时器组件一般为通用组件(generic components),通用组 件类似于C+中的类,可以通过new 来实例化最多255 个定时器,类似于类实 例化的对象。在Antc5 下,定时器通用

17、组件为TimerMilliC, 是Timer1 供应的, 此外,Timer1 还供应了Alarm32khzC 等组件。 定时器向上层供应的接口分为Timer 和Alarm 两种,用法Timer 接口需要指 定定时器的精度,分为TMilli(毫秒)、T32kHz(32KHz)、TMicro(微秒)三种; 用法Alarm 接口既要指定定时精度,还要指定定时器的位宽。 五、试验步骤 1. 将基站同电脑用烧录线连接好,打开基站的开关,同时将基站的烧录开关拨 上去 2. 打开Cygwin 开发环境 3. 在Cygwin 界面中执行cd apps/Demos/Basic/ Timer,进入到定时器试验名目

18、下。 4. 在定时器代码名目下执行make antc5 install,进行编译和烧录。 5. 试验现象为蓝灯1 秒闪一次,黄灯3 秒闪一次。 六、试验留意事项 在开启一个定时器的时候有两种方式,一种启动方式是只超时一次,另外一 种是循环超时。所以在开启的时候要依据具体的需求选择具体的启动方式。 七、流程图 八、参考程序 以下代码为主要部分代码,具体代码请参考该试验的源程序,源程序的名目如下: $(安装名目)cygwinopt atosappsDemosBasicTimer #define DBG_LEV 5 module TimerLedM uses interface Boot; /* T

19、imer 为系统接口TMilli 指明白定时器的精度为毫秒*/ uses interface TimerTMilli as Timer1; /* as 关键字为接口别名*/ uses interface TimerTMilli as Timer2; implementation /* 任务: 切换黄色LED 灯*/ task void ToggleLedYellow() LED_YELLOW_TOGGLE; /* 启动大事处理函数,在TimerLed.nc 已经关联到MainC.Boot 接口 系统启动后会调用此函数 */ event void Boot.booted() /* 定时器1: 持

20、续工作,每隔1s 触发一次*/ call Timer1.startPeriodic(1000); /* 定时器2: 持续工作,每隔3s 触发一次*/ call Timer2.startPeriodic(5000); /* 定时器1 的大事处理函数*/ event 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()等,我们可以在课后自己动手尝试用法这些接口的功 能。

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1