无线通信技术报告 - 图文 下载本文

JIANGSU TEACHERS UNIVERSITY OF TECHNOLOGY

无线通信技术综合训

学院名称:

专 业: 通信工程 班 级: 09东通信2 姓 名: 学 号: 指导老师: 陶为戈 吴全玉

2012年11月

报告

无线通信技术综合训练报告

目 录

训练一 新建一个简单的工程项目 ........................................................ 1 训练二 GPIO实验 .................................................................................. 3 训练三 系统主时钟源的选择实验 ........................................................ 7 训练四 SPI通信与LCD显示实验 ...................................................... 11 训练五 ADC实验 ................................................................................. 15 训练六 UART串行通信实验 ............................................................... 19 训练七 定时器1实验 .......................................................................... 23 训练八 外部中断实验 .......................................................................... 28 训练九 看门狗实验 .............................................................................. 33 训练十 IEEE802.15.4基础理论实验 ................................................... 37 训练十一 多种拓扑结构组网实验 ...................................................... 40 训练十二 基于RFID的基本读写系统实验 ....................................... 45 训练十三 通用传感器实验 .................................................................. 48 训练十四 无线通信系统实验 .............................................................. 50 心得体会 ................................................................................................... 52

无线通信技术综合训练报告

训练一 新建一个简单的工程项目

一、实验内容

1.通过本实验的学习,熟悉如何使用CC2530的软件开发环境IAR Embedded Workbench for 8051来新建一个工程项目。

2.闪烁开发板上的用户指示灯LED1。

二、实验原理

1.对于主节点,定义LED1为CC2530的P1.0口控制,对于从节点,定义LED1为CC2530的P1.1口控制。相应控制口为高电平时,LED点亮,为低电平时,LED熄灭。

开发CC2530应用系统一般需要以下几个调试工具来完成:

①软件集成开发环境(IAR Embedded Workbench):完成系统的软件开发,进行软件和硬件仿真调试,它也是硬件调试的辅助手段;

②带有C2530模块开发板:实现硬件仿真调试与硬件系统的通信,控制和读取硬件系统的状态和数据;

③CCDebugger多功能调试:下载和调试程序。

2.IAR Embedded Workbench主要完成系统的软件开发和调试。它提供了一整套的程序编写、维护、编译、调试环境,能将汇编语言和C语言程序编译成HEX可执行输出文件,并能将程序下载到目标CC2530上运行调试。

三、基本实验步骤

1.连接实验设备,将USB电缆线插到PC机的USB端口上,实验板电源指示灯亮。 2.启动IAR开发环境,打开“开始”菜单->“程序”->IAR Embedded Workbench for 8051 7.60->IAR Embedded Workbench。

3.创建工程:

①创建一个工作区:打开IAR Embedded Workbench,选择File菜单->New->Wordspace,创建一个新工作区,在创建的新工作区中创建工程。

②建立一个新工程:点击Project菜单,选择Greate Neww Project?,在Tool chain 下拉栏中选择8051,Project templates栏中选择“Empty project”,在“文件名”文本框输入文件名,点击保存,选择工程保存的位置,一个空的工程就建好了。

③新建或添加程序文件:单击工具栏或选择菜单File\\New\\File新建一个空文本文件,向文本文件里添加实验程序代码。并将代码保存到新建的工程目录中。在工作区右键点击工程名,点击“Add File”将新建的文件添加到工程中。

④设置工程选项,选中工程名,选择Project菜单下的Option?配置与CC2530相关的选项,设置完毕后点击“OK”命令按钮,这样工程选项的设置就完成了。

4.编译和调试:选择菜单Project\\Rebuild All对工程进行编译,选择菜单Project\\Debug或按快捷键CTRL+D进入调试状态,也可以按工具栏上的调试按钮进入调试。①窗口管理;②进行单步调试;③通过观察窗口观察变量;④断点调试;⑤反汇编调试;⑥监控寄存器;⑦监控存储器;⑧退出调试:选择菜单Debug\\Stop Debugging或点击调试工具栏上的退出按钮退出调试模式。

5.下载:如果选择编译时产生.hex文件,可以选择使用Flash Programmer下载工具将该文件下载到目标板上运行。

第1页,共58页

无线通信技术综合训练报告 训练一 新建一个简单的工程项目

四、实验结果与分析

实验结果:开发板上的指示灯LED1不断地闪烁

结果分析:程序中对P0.1口进行了端口设置,设置成普通I/O口,并作为输出端口,在调用while程序时,当控制口为高电平时,LED1点亮,为低电平时,LED1熄灭,这样不停的使LED1闪灭,从而实现了LED灯的测试。通过实验现象我们可以更加生动地熟悉和了解CC2530的软件开发环境,并掌握了创建工程和管理工程的方法,了解了基本的编译和调试功能。

五、存在问题和解决方法

存在的问题1:对于新建工程项目操作步骤不熟悉,并在操作过程中总是忘记添加新的工程文件。

解决方法:多操作几遍,熟能生巧,通过反复地操作练习,就能很熟练的掌握操作步骤。

存在的问题2:一切都编译好后发现LED1不闪烁。

解决方法:查看程序编写,发现对LED1端口的设置有问题,从节点中,LED1对应的端口是P1.0,而主节点中,LED1对应的端口是P1.1,应当注意分清是从节点还是主节点。

存在的问题3:对于书上所讲的编译和调试步骤不能够较为清楚地了解。 解决方法:通过询问同学和老师,对具体步骤进行操作、分析并掌握和了解。

第2页,共58页

无线通信技术综合训练报告

训练二 GPIO实验

一、实验内容

1.LED指示灯自动闪烁; 2.按键控制LED指示灯亮灭; 3.按键控制LED指示灯闪烁。

二、实验原理

CC2530有21个数字输入/输出引脚,可以配置为通用数字I/O接口,也可以作为外部I/O

接口连接到ADC、定时器或者USART等外部设备。这些I/O口的用途,可以通过一系列寄存器配置,由用户软件加以实现。

三、基本实验步骤(从节点)

(一)基本实验一:指示灯自动闪烁

操作步骤:①连接实验设备,将USB电缆线插到PC机的USB端口上,实验板电源指示灯亮。 ②启动IAR开发环境,打开“开始”菜单->“程序”->IAR Embedded Workbench for 8051 7.60->IAR Embedded Workbench。

③创建工程,并将编写的代码添加到工程中,再进行编译和调试,确定无误后,通过下载器将程序下载到开发板上。观察现象。

(二)基本实验二:按键控制灯亮灭

操作步骤:①连接实验设备,将USB电缆线插到PC机的USB端口上,实验板电源指示灯亮。 ②启动IAR开发环境,打开“开始”菜单->“程序”->IAR Embedded Workbench for 8051 7.60->IAR Embedded Workbench。

③创建工程,并将编写的代码添加到工程中,再进行编译和调试,确定无误后,通过下载器将程序下载到开发板上。观察现象。

四、设计性实验程序流程与分析(从节点)

实验要求:设计一个工程,下载到目标板上,要求按下K1时,LED1 闪烁(视觉能够分辨出),再次按下K1,LED1 熄灭;按下K2时,LED2 闪烁,再次按下 K2,LED2 熄灭;如此重复循环。

1.初始化流程图如下所示:

第3页,共58页

无线通信技术综合训练报告 训练二 GPIO实验 Yes 延时函数 开始 初始化声明 按键初始化,从节点P0.1、P0.7为普通I/O口,输入状态、上/下拉端口输入 LED初始化 按键扫描 No K1是否等于0 延时消抖 Yes K2是否等于0 Yes K1是否等于0 No 延时消抖 扫描值为1 扫描值为0 Yes K2是否等于0 扫描值为2 图2.1初始化流程图

扫描值为0 2.主函数流程图如下所示:

第4页,共58页

无线通信技术综合训练报告 训练二 GPIO实验

LED1闪 LED1灭 Yes 按键1是否等于1 开始 初始化指示当1成立 Yes 扫描值是否等于1 No No Yes 扫描值是否等于2 No 按键2是

LED2扫描值为0 否等于1 按键都没按 LED2 图2.2主函数流程图 五、实验结果与分析

(一)基本实验一实验结果:开发板上的指示灯自动地闪烁。

结果分析:程序中对LED进行初始化设置,从节点LED1、LED2对应的端口分别为P1.1和P1.0,将其设置为普通I/O口,并将端口定义为输出方向,“ON”为点亮,“OFF”为熄灭,调用while函数,使LED1、LED2不停地闪烁。

(二)基本实验二实验结果:按下按键K1,指示灯LED1闪烁,按下按键K2,指示灯LED2闪烁。

结果分析:程序中较之实验1添加了对按键的初始化,通过它来分别控制LED1和LED2,在定义按键时,要对按键进行按键扫描,扫描过程中要通过调用延时程序来进行消抖,防止按键激活失败,调用while函数,当扫描值为1,说明按键1激活,按下K1,就可以使LED1闪烁,当扫描值为2,则说明按键2激活,按下K2,则可以使LED2闪烁。否则返回扫描值为0,则说明按键没被激活。

(三)设计性实验实验结果:按下K1时,LED1 闪烁,再次按下K1,LED1 熄灭;按下K2时,LED2 闪烁,再次按下 K2,LED2 熄灭,如此重复循环。

结果分析:设计性实验同基本实验相似,只要在基本实验2的基础上稍作改动即可,通过对按键初始化使按键分别控制LED1和LED2,在定义按键时,对按键进行按键扫描,扫描过程中要通过调用延时程序来进行消抖,防止按键激活失败,如果K1=0,返回扫描值为1;如果K2=0,则返回扫描值为2,否则返回扫描值为0;调用while函数,当扫描值为1,说明按键1激活,按下K1,就可以使LED1点亮,再按下K1,可以使LED1熄灭;当扫描值为2,则说明按键2激活,按下K2,则可以使LED2点亮,再按下K2,则使LED2熄灭。否则返回扫描

第5页,共58页

无线通信技术综合训练报告 训练二 GPIO实验 值为0,则说明按键没被激活。从而实现设计性试验的要求。

六、实验思考题

1. Delay(uint)中参数uint 取值范围是什么?如果超范围程序能运行吗? 为什么? 答:取值范围是(0~65535),如果超范围程序仍然能够运行。

2.基本实验 2 中“Keyvalue = 0”语句的作用是什么?如果删除对实验结果有什么影响? 答:“Keyvalue = 0”语句的作用是把相应按键清零。删除对实验结果没有影响。 3.本实验对 CC2530的哪些寄存器进行了操作?都是必要的吗?

答:首先是对“P0、P1和P2端口功能寄存器”的操作,由于它们默认都是普通I/O口所以不是必要的;接下来是对“P0、P1和P2端口方向选择寄存器”的操作,默认为输入方向,所以对于端口设置为输入时是不必要的,而对于端口设置为输出时是必要的。最后是对“P0、P1和P2端口输入模式选择寄存器”的操作,它规定了端口输入模式是“三态”还是“上拉/下拉”,根据具体设置而定。

4.设计性实验中如何使 LED 有多种不同的闪烁方式?

答:①可以通过延时时间长短不一样来实现LED闪烁快慢的不同。 ②可以通过按键控制不同LED指示灯,闪烁不同频率来实现。

七、存在问题和解决方法

存在的问题1:基本实验1中,LED指示灯闪烁频率太快,视觉无法分辨。

解决方法:通过改变延时时间的长短来实现LED指示灯闪烁的快慢。 存在的问题2:基本实验2中,按键无法控制LED指示灯的亮灭。

解决方法:查看程序,看按键端口、指示灯端口初始化设置是否正确,主从端口是否

区分清楚,按键对应相应的LED指示灯是否正确。

第6页,共58页

无线通信技术综合训练报告

训练三 系统主时钟源的选择实验

一、实验内容

通过配置开发板上CC2530芯片的时钟频率,从而改变指示灯LED闪烁的频率,熟悉CC2530芯片内部系统时钟或主时钟的配置和使用方法。掌握高速晶体振荡器或RC振荡器的配置和使用。

二、实验原理

CC2530有一个内部系统时钟或主时钟。该时钟的振荡源既可以用16MHz RC振荡器,也可以采用32MHz晶体振荡器。时钟的控制可以由特殊功能寄存器 CLKCONCMD来实现。此外,还有一个32kHz时钟源也可以用RC振荡器或者晶体振荡器,也由CLKCONCMD 寄存器控制。寄存器CLKCONSTA是一个只读寄存器,用来获得当前时钟状态。振荡器可以选择高精度的晶体振荡器,也可以选择低功耗的RC振荡器。注意,运行RF收发器,必须使用32MHz晶体振荡器。

三、基本实验步骤(从节点)

基本实验:系统时钟源(主时钟源)的选择指示灯自动更新闪烁频率。

操作步骤:①连接实验设备,将USB电缆线插到PC机的USB端口上,实验板电源指示灯亮。 ②启动IAR开发环境,打开“开始”菜单->“程序”->IAR Embedded Workbench for 8051 7.60->IAR Embedded Workbench。

③创建工程,并将编写的代码添加到工程中,再进行编译和调试,确定无误后,通过下载器将程序下载到开发板上。观察现象。

四、设计性实验程序流程与分析(从节点)

实验要求:设计一个工程,下载到目标板上,要求按下 K1时,LED1、LED2 闪烁频率变慢或变快,按下K2时,LED1、LED2 闪烁频率变快或变慢。

1. 初始化流程图如下所示:

第7页,共58页

无线通信技术综合训练报告 训练三 系统主时钟源的选择实验

图3.1初始化流程图

2.主函数流程图如下所示:

第8页,共58页

存放到临时寄存 命令指令为32M 命令指令为16M Yes 时钟源是否等于32M Yes 时钟源是否等于16M No 系统时钟源选择 指示灯闪烁初始化 指示灯初始化 初始化声明 开始 无线通信技术综合训练报告 训练三 系统主时钟源的选择实验

按键1激活 按下键1 LED1、LED2闪烁 频率为16M LED1、LED2闪烁 频率为32M 再按下按键2 再按下键1 按下按键2 按键2激活 Yes 扫描值是否为2 Yes 扫描值是否为1 No 读取扫描值 定义变量j1、j2、i 开始 LED1、LED2闪烁 频率为16M

LED1、LED2闪烁 频率为32M 图3.2主函数流程图

五、实验结果与分析

(一)基本实验结果:分别选择32MHz晶体振荡器和16MHz RC振荡器作为CC253x系列 片上系统的系统时钟源(主时钟源),发现相同的LED闪烁代码在这两种时钟源下的闪烁频率不同。32MHz频率时LED指示灯闪烁比16MHz频率时指示灯闪烁的更快。

结果分析:由于程序中枚举了不同频率的系统时钟源,如16MHz的RC振荡器和32MHz的晶体振荡器,并定义选择不同的系统时钟源时控制不同的LED指示灯闪烁。调用while函数,当系统时钟源选择26MHzRC振荡器时,LED2闪烁,循环一段时间后,系统时钟源选择32MHz晶体振荡器,则LED1闪烁,如此反复。使我们掌握了CC2530芯片内部系统时钟的选择,掌握了高速晶体振荡器和RC振荡器的配置与使用。

(二)设计性实验结果:按下K1时,LED1、LED2 闪烁频率变慢或变快,按下K2时,LED1、LED2 闪烁频率变快或变慢,如此反复。

结果分析:设计性实验只需在基础实验的基础上进行修改即可。由基本实验已经实现了

第9页,共58页

无线通信技术综合训练报告 训练三 系统主时钟源的选择实验 选择不同系统时钟源时来控制不同的LED指示灯闪烁,设计性实验中需要加上按键控制,结合上一个实验的按键控制LED指示灯闪烁来改进,当扫描值为1,即按键1激活,按下K1来同时控制LED1、LED2,此时选择一种系统时钟源,当扫描值为2时,说明按键2激活,按下K2同时控制LED1、LED2,此时选择另一种系统时钟源,通过系统时钟频率的快慢来改变LED指示灯闪烁的快慢。

六、实验思考题

1. 为什么指示灯闪烁的频率不一样?

答:因为选择了不同的系统时钟源,CC2530设备中有2个高频振荡器和2个低频振荡器,分别是32MHz晶体振荡器、16MHzRC振荡器和32k晶体振荡器、32kRC振荡器。选择不同时钟频率时相应的指示灯闪烁频率也会不一样。

2. 不同系统时钟是如何转换的?切换过程中需要注意什么?

答:通过配置时钟源命令寄存器切换来实现的。应当注意需要等到时钟稳定后再切换查询状态寄存器。

3. 本实验对 CC2530的哪些寄存器进行了操作?都是必要的吗?可以设置比32M更高的频率吗?

答:①首先是对“P0、P1和P2端口功能寄存器”的操作,由于它们默认都是普通I/O口所以不是必要的;接下来是对“P0、P1和P2端口方向选择寄存器”的操作,默认为输入方向,所以对于端口设置为输入时是不必要的,而对于端口设置为输出时是必要的。然后是对“P0、P1和P2端口输入模式选择寄存器”的操作,它规定了端口输入模式是“三态”还是“上拉/下拉”,根据具体设置而定。此外还增加了对“功耗模式控制寄存器”和“时钟控制状态寄存器”的操作。次操作需要根据不同要求而定。

②系统内部时钟最高频率为32M,所以不可以设置比32M更高的频率。 4. 设计性实验中如何使 LED 有多种不同的频率闪烁方式? 答:①可以通过延时时间长短不一样来实现LED闪烁快慢的不同。

②可以通过按键控制不同LED指示灯,闪烁不同频率来实现。

③通过控制主时钟频率(32MHz、16MHz、8MHz……)的不同来切换LED闪烁方式。

七、存在问题和解决方法

存在的问题1:基本实验中,LED指示灯闪烁频率太快,视觉无法分辨。

解决方法:不同于前几个实验是通过改变延时时间的长短来实现LED指示灯闪烁的

快慢,而本实验则是通过选择不同的系统时钟频率来改变LED指示灯闪烁的快慢,指示灯闪烁太快说明系统时钟频率选择太大,可以适当地降低系统时钟频率。

存在的问题2:设计性实验中,按键无法控制LED指示灯的亮灭。

解决方法:查看程序,看按键端口、指示灯端口初始化设置是否正确,主从端口是否

区分清楚,按键对应相应的LED指示灯是否正确。

第10页,共58页

无线通信技术综合训练报告

训练四 SPI通信与LCD显示实验

一、实验内容

1.在CC2530从节点开发板上采用GPIO口软件模拟SPI接口的方式驱动DM12864M,显示汉字、字母、数字等。

2.在CC2530主节点开发板上采用硬件SPI接口的方式驱动OCM12864,显示汉字、字母、数字等。

二、实验原理

USART0 和USART1 是串行通信接口,它们能够分别运行于异步 UART 模式或者同步SPI

模式。两个USART具有同样的功能,可以设置在单独的I/O引脚。本实验学习同步通信的SPI模式,采用SPI通信方式控制LCD显示。

三、基本实验步骤(从节点)

基本实验:从节点显示不同的文字界面。

操作步骤:①连接实验设备,将USB电缆线插到PC机的USB端口上,实验板电源指示灯亮。 ②启动IAR开发环境,打开“开始”菜单->“程序”->IAR Embedded Workbench for 8051 7.60->IAR Embedded Workbench。

③创建工程,并将编写的代码添加到工程中,再进行编译和调试,确定无误后,通过下载器将程序下载到开发板上。观察现象。

四、设计性实验程序流程与分析(从节点)

实验要求:设计一个工程,下载到目标板上,LCD初始界面显示班级、姓名、学号、专业。要求按下K1时,LCD显示数据加1;按下按键SW2,LCD显示数据减1 ,规定初始值显示为 999。

设计性实验流程图如下所示:

第11页,共58页

无线通信技术综合训练报告 训练四 SPI通信与LCD显示实验

进行加1操作后液晶显示 **************** 图4.1设计性实验流程图

第12页,共58页

显示数据加一 “加一后的数据” **************** 按键1是否激活 LED1灭 进行减1操作后液晶显示 **************** 显示数据减一 “减一后的数据” **************** LED2闪烁 按键1是否激活 LED2灭 Yes Keyvalue是否等于1 No Yes Keyvalue是否等于2 液晶初始化显示 **************** 09东通信2 陈芳芳 09811202 通信工程 **************** 延时一段时间后液晶显示 **************** 初始值显示 999 **************** 显示扫描值 初始化指示灯、按键 定义一个16字节变量c=999 开始 LED1闪烁 无线通信技术综合训练报告 训练四 SPI通信与LCD显示实验

五、实验结果与分析

(一)基本实验结果:液晶初始界面显示:“CC2530基本实验 四、LCD实验”等字样,当扫描值为1时,指示灯LED1、LED2显示为“00”时液晶显示“CC2530基本实验 四、LCD实验”字样,若指示灯显示为“01”则液晶显示“江苏技术师范学院 电信学院”字样,若指示灯显示为“10”或“11”液晶显示“TI CC2530F256 LCD12864 Test”字样;当扫描值为2时,指示灯LED1、LED2显示为“00”时液晶显示“CC2530基本实验 四、LCD实验”字样,若指示灯显示为“10”则液晶显示“TI CC2530F256 LCD12864 Test”字样,若指示灯显示为“01”或“11”液晶显示“江苏技术师范学院 电信学院”字样。

结果分析:由于DM12864M可以混合显示汉字、英文字母或数字,所以只要在相应的显示程序中打印出来即可,调用while函数,函数中定义闪烁标志[0]为1说明LED1点亮,为0则LED1熄灭,闪烁标志[1]为1说明LED2闪烁,为0则LED2熄灭,并通过LED1、LED2的亮灭来显示不同的界面,当扫描值为1时,指示灯LED1、LED2显示为“00”时液晶显示“CC2530基本实验 四、LCD实验”字样,若指示灯显示为“01”则液晶显示“江苏技术师范学院 电信学院”字样,若指示灯显示为“10”或“11”液晶显示“TI CC2530F256 LCD12864 Test”字样;当扫描值为2时,指示灯LED1、LED2显示为“00”时液晶显示“CC2530基本实验 四、LCD实验”字样,若指示灯显示为“10”则液晶显示“TI CC2530F256 LCD12864 Test”字样,若指示灯显示为“01”或“11”液晶显示“江苏技术师范学院 电信学院”字样。从而实现了SPI通信与LCD显示之间的完美结合。使我们熟悉并掌握了DM12864MLCD驱动程序的编写以及应用函数调用方法。

(二)设计性实验结果:LCD初始界面显示“09东通信2 陈芳芳 09811202 通信工程”的界面,延时一段时间后,界面显示“初始值显示 999”的字样。要求按下K1时,LCD界面显示“显示数据加一 并显示加一后的数据” ;按下按键 SW2 ,LCD界面显示“显示数据减一 并显示减一后的数据”。

结果分析:设计性实验与基本实验相同,根据具体要求改变液晶显示,通过按键来控制LCD显示,类似于前面几个实验中通过按键来控制LED,只不过,此实验需加上数据计算语句,从而实现数据的增加或减少,此设计性实验实现了计数器的功能。

六、实验思考题

1.基本实验程序中“//LED1 = OFF;”语句将双斜杠去掉有何影响?问什么?

答:不去掉时,现象是“按下K1,LED1改变一下状态”,而去掉双斜杠,现象是“不闪烁时LED1灭”,因为双斜杠在这里起到注释的作用,加上双斜杠则此语句就被屏蔽掉。 2.基本实验中去除“if(GlintFlag[0] == 0) ”语句,结果怎样?

答:不去掉此语句,现象是“LED1或LED2或两个都闪,延时4000 ”,而去掉此语句,现象是“仅LED1闪或仅LED2闪,若同时闪烁,延时周期则为两者相加(4000+4000),闪烁变慢”。

3.使用DM12864M 混合显示汉字、英文字母或数字时需要注意哪些问题? 答:①汉字显示为双字节显示,应根据程序要求,不得超过取值范围。 ②注意每个汉字对应的位置,不得多于取值范围。 4.如何在OCM12864-8 上指定区域显示汉字?

答:①使用抓图工具抓取一幅图像,在图像处理软件中将其处理成像素为128*64 大小的图像,保存为.bmp 文件格式。运行字模软件ZIMO221.EXE,使用基本操作-> 打开图标工具打开上述图像文件,点击“取模方式” ,选择“C51格式”,出现如图3-4-6所示点阵代码提取界面,将点阵生成区的十六进制代码复制到LcdControl.c某个图像数组中,调用Display_Picture(uint8 *picX) 函数即可显示该图像。 ②可以在程序中加入“0~9、A~F”的调用函数。

第13页,共58页

无线通信技术综合训练报告 训练四 SPI通信与LCD显示实验

七、存在问题和解决方法

存在的问题1:液晶显示界面出现乱码。

解决方法:查看程序中显示函数中,显示汉字、英文或数字是否超出了取值范围。

存在的问题2:按键无法实现数据的加减。

解决方法:检查程序中,按键端口设置与相应的LCD显示是否一一对应,对应的端口

值对否有误。

第14页,共58页

无线通信技术综合训练报告

训练五 ADC实验

一、实验内容

1.在CC2530节点开发板上,使用AD进行片内温度单次采集,将采集的电压值转换为温度值并显示在LCD上;

2.在CC2530节点开发板上,使用ADC进行电源电压单次采集,将采集的电压值显示在LCD上。

二、实验原理

ADC支持多达14 位模数转换,有效位数(ENOB)多达12位。ADC包含一个具有多达8个独 立配置通道的模拟多路转换器,一个参考电压发生器,并且通过DMA将转换结果写入存储器。具有多种运行模式。本实验学习ADC的一般设置和运行,由CPU 存取的ADC控制和状态寄存器的使用方法。

三、基本实验步骤(从节点)

基本实验:从节点采集片内温度。

操作步骤:①连接实验设备,将USB电缆线插到PC机的USB端口上,实验板电源指示灯亮。 ②启动IAR开发环境,打开“开始”菜单->“程序”->IAR Embedded Workbench for 8051 7.60->IAR Embedded Workbench。

③创建工程,并将编写的代码添加到工程中,再进行编译和调试,确定无误后,通过下载器将程序下载到开发板上。观察现象。

四、设计性实验程序流程与分析(从节点)

实验要求:设计一个工程,下载到目标板上。将A/D的源设为1/3电源电压,并LCD显示 1/3 电源电压、电源电压。

设计性实验流程图如下所示:

第15页,共58页

无线通信技术综合训练报告 训练五 ADC实验

连接温度传感器、使能温度传感器、提取端口电压、循环八次相加 断开温度传感器、使能温度传感器无效、取端口电压平均值、计算1/3电压、电源电压并输断开温度传感器、使能温度传感器无效、取端口温度平均值 输出内部温度 提取分辨率为12的端口温度,循环四次相加 AD端口初始化、avgTemp = 0、volt=0、连接温度传感器、使能温度传感器 屏幕初始化显示 **************** CC2530 基本实验 五、ADC实验 **************** 延时一段时间液晶显示 CC2530 ADC Test 内部温度: ℃ 1/3 电压: V 电源电压: V 初始化Led、Lcd 选择32M系统时钟频率 定义变量i、avgTemp、volt、voltagevalue、temperature 开始 出 图5.1设计性实验流程图

第16页,共58页

无线通信技术综合训练报告 训练五 ADC实验

五、实验结果与分析

(一)基本实验结果:LCD液晶显示界面显示出片内温度。

结果分析:首先连接温度传感器,使能温度传感器,四次循环取出分辨率为12的端口温度进行相加,然后断开温度传感器,使能温度传感器无效,取平均值即可得到端口温度,根据公式temperature=(avgTemp-(1480-4.5*25))/4.5,即可算出片内温度并输出。

(二)设计性实验结果:将A/D的源设为1/3 电源电压,LCD液晶显示界面显示内部温度、1/3 电源电压以及电源电压。

结果分析:同基本实验,首先连接温度传感器,使能温度传感器,四次循环取出分辨率为12的端口温度进行相加,然后断开温度传感器,使能温度传感器无效,取平均值即可得到端口温度,根据公式temperature=(avgTemp-(1480-4.5*25))/4.5,即可算出片内温度并输出。再连接温度传感器,使能温度传感器,8次循环取端口电压,断开温度传感器,使能温度传感器无效,去端口电压平均值,通过公式voltagevalue=(1.15/8191)*volt计算出1/3电压并输出,而电源电压为voltagevalue =voltagevalue*3,计算并输出。由于各种原因可能导致实验出现误差,所以采用多次测量取平均值的方法来较少误差。此实验主要实现的是模数之间的转换,由于ADC支持多达14 位模数转换,有效位数(ENOB )多达 12 位。ADC包含一个具有多达8 个独立配置通道的模拟多路转换器,一个参考电压发生器,并且通过DMA将转换结果写入存储器。具有多种运行模式。通过实验操作使我们掌握了ADC的一般设置和运行,由CPU 存取的ADC控制和状态寄存器的使用方法。

六、实验思考题

1.如果采用电压采集识别按键,则如何实现? 答:具体的采集方法如图所示: ①

R3

P0.0 R1

P0.1 R2

第17页,共58页

无线通信技术综合训练报告 训练五 ADC实验

R3

R1

2.如何将片内温度传感器 A/D 转换的结果转换成温度?

答:CC2530内部基准参考电压1.15V。25℃时,14bit采集结果为1480,温度系数4.5/ ℃,即 temperature=(avgTemp-(1480-4.5*25))/4.5。 3.如何实现显示采集数据?

答:将数据转换为一位一位ASCⅡ显示。 4.如何选取参考电压?

答:使用看门狗寄存器来采集参考电压。 5.差分输入是什么意思?能否作为比较器使用?

答:差分输如的意思是将两路信号在输入中求差。可以作为比较器使用,将两者求差,结果大于0,则说明前者大于后者,相反,如果结果小于0则说明前者小于后者。 6.如果CC2530需要采集一个模拟传感器的数据,实现过程中需要注意哪些问题? 答:应当注意模拟传感器检测结果电压的范围不能超过选择的参考电压。

七、存在问题和解决方法

存在问题1:实验结果显示值没有变化。

解决办法:改变显示结果的小数位,使其更精确。 存在问题2:实验结果出现负数。

解决方法:查看程序,看计算公式是否正确,端口设置是否正确

第18页,共58页

无线通信技术综合训练报告

训练六 UART串行通信实验

一、实验内容

1.在CC2530节点开发板上,UART串口发送数据;

2.在CC2530节点开发板上,UART串口接收PC数据控制LED等设备对象。 3.在CC2530节点开发板上,UART串口接收PC数据并回传。

二、实验原理

如实验四所述,USART0和USART1是串行通信接口,它们能够分别运行于异步UART模式或 者同步SPI模式。两个USART具有同样的功能,可以设置在单独的I/O引脚。本实验学习异步通信UART模式,采用查询方式发送数据,终端方式接收数据。

三、基本实验步骤(从节点)

基本实验:异步串口0接收数据。

操作步骤:①连接实验设备,将USB电缆线插到PC机的USB端口上,实验板电源指示灯亮。 ②启动IAR开发环境,打开“开始”菜单->“程序”->IAR Embedded Workbench for 8051 7.60->IAR Embedded Workbench。

③创建工程,并将编写的代码添加到工程中,再进行编译和调试,确定无误后,通过下载器将程序下载到开发板上。观察现象。

四、设计性实验程序流程与分析(从节点)

实验要求:设计一个工程,下载到目标板上。CC2530芯片接收 PC机发送的数据,LCD显示并回传给PC。

设计性实验流程图如下所示:

第19页,共58页

无线通信技术综合训练报告 训练六 UART串行通信实验 接收字符<4 Yes 数据存放temp 图6.1 设计性实验流程图

第20页,共58页

Temp清零 No 10:LED1灭 11:LED1亮 20:LED2灭 21:LED2亮 30:Fan停 31:Fan动 40:LED灭 41:LED亮 50:FM停 51:FM响 No Rtflag置1 接收内容清零 Yes Rtflag是否等于1 Yes Rtflag是否等于2 输出串口发送数据 **************** 数据显示:XXX **************** 液晶屏幕显示 **************** CC2530基本实验 六、UART实验 **************** 延迟一段时间屏幕显示 **************** 六、UART实验 串口接收数据 **************** 延迟一段时间屏幕显示 控制数据格式: XY# X:设备号 1:LED1 2:LED2 3:风扇 4:LED 5:蜂鸣器 初始化串口、串口发送字符串,输入“江苏技术师范学院电气信息工程学院” 选择32M系统时钟频率 初始化Led、Lcd、Fan、FM 开始 无线通信技术综合训练报告 训练六 UART串行通信实验 中断函数流程图:

是否有中断 Yes 中断处理 No 中断

图6.2 中断函数流程图 五、实验结果与分析:

(一)基本实验结果:串口接收PC机传来的数据“江苏技术师范学院电气信息工程学院”,且在串口输入“10”LED1熄灭,输入“11”LED1点亮,输入“20”LED2熄灭,输入“21”LED2点亮。

结果分析:初始化显示过后,调用while函数,当接收数据小于两个时,现将接收数据寄放到数据缓冲区中以便之后调用接收了3个字符时,RT标志位等于2,表明数据接收完毕。将RT标志位置1,准备接收新的指令,并将接收内容清零。在调用中断服务子程序时,只要执行中断,硬件就会自动清零。

(二)设计性实验结果:芯片能够接收PC机发送来的数据,并在LCD显示出来,再返回个PC。同时,不同的字符格式对应了不同的设备,如:在串口助手中写入“31”则在LCD显示“数据显示:31”并回传给PC,此外从节点开发板上的风扇也会转起来。

结果分析:同基本实验,基本实验实现的是串口接收PC机传来的数据,只需在此基础上加入将传来的数据再回传给PC机以及在LCD上显示的程序。在初始化显示过后,调用while函数,当接收数据小于4时,现将接收数据寄放到数据缓冲区中以便之后调用接收了4个字符时,RT标志位等于2,表明数据接收完毕。可以调用串口发送函数,将接收到的数据再回传给PC,调用LCD显示函数,将接收到的数据在LCD上显示出来。将temp清零,准备接收新的指令,在调中断服务子程序时,只要执行中断,硬件就会自动清零。设置控制数据格式与相应的设备号对应,即“10”LED1灭,“11”LED1亮,“20”LED2灭,“21”LED2亮,由于风扇低电平有效,所以“30”风扇转,“31”风扇停,“40”LED灭,“41”LED亮,蜂鸣器也是低电平有效,所以“50”蜂鸣器响,“51”蜂鸣器停。

六、实验思考题

1.同步通信与异步通信主要区别是什么?

答:同步通信收发双方时钟同步,而异步通信收发双方不具有同步时钟,但有预定的数据传输速率。

2.异步通信具体数据格式包括哪些?

答:它是以字符为单位进行传输的,字符之间没有固定的时间间隔要求,而每个字符中的各位则以固定的时间传送。收、发双方取得同步的方法是采用在字符格式中设置起始位和停止位。在一个有效字符正式发送前,发送器先发送一个起始位,然后发送

第21页,共58页

无线通信技术综合训练报告 训练六 UART串行通信实验 有效字符位,在字符结束时再发送一个停止位,起始位至停止位构成一帧。 3.如何实现串口数据透明回传?

答:即不带任何数据格式,收到什么数据回传什么数据。 4.程序查询与中断各自有何特点,如何根据应用场合选取?

答:①遇到程序查询直接按要求顺序执行查询函数中的语句,无需跳出当前执行语句,而遇到中断则需跳出当前执行的语句去执行中断,中断处理完成后在返回刚刚的语句继续执行程序;②中断方式不占用CPU资源,定时时间到会自动进入中断程序,准确度高,查询方式需要一直占用CPU资源(需要一直扫描标志位),定时时间到后需要程序查询到才能判断时间到,稍微有点误差。

七、存在问题和解决方法

存在的问题1:蜂鸣器、风扇运行不起来。

解决方法:检查蜂鸣器和风扇的端口设置是否正确,再确定与之对应的设备号是否一致。

存在的问题2:接收到的数据无法回传给PC。

解决方法:查看程序中串口发送字符串函数编写是否正确,可以参照基本实验主节点

异步串口发送数据的程序代码进行修改。

存在的问题3:无法发送/接收的汉字。

解决方法:每个汉字占用两个字节,要想发送和接收较多的汉字,字符串长度应≥4,

所以修改字符串长度即可。

第22页,共58页

无线通信技术综合训练报告

训练七 定时器1实验

一、实验内容

1.在CC2530节点开发板上,定时器1自由重装模式、溢出查询控制LED闪烁; 2.在CC2530节点开发板上,定时器1工作于正计数/倒计数模式,产生0.1s定时,按键控制秒表启动、停止、复位,LCD显示秒表信息;

3.在CC2530节点开发板上,启用定时器1,产生1s定时,按键控制或PC串口校准时间,时钟信息LCD显示并能串口发送给PC;

4.在CC2530节点开发板上,定时器1输入捕获模式/输出比较模式控制LED闪烁。

二、实验原理

定时器1 是一个支持典型定时器/计数器功能(比如输入捕获、输出比较和PWM功能)的独立16位定时器。它有5个独立的捕获/比较通道。每个通道使用一个I/O引脚。该定时器用于范围广泛的控制和测量应用,5个通道具备正计数/倒计数模式,将允许例如电机控制应用的实现。本实验学习定时器1工作模式、溢出查询或中断响应。

三、基本实验步骤(从节点)

(一)基本实验一:秒表

操作步骤:①连接实验设备,将USB电缆线插到PC机的USB端口上,实验板电源指示灯亮。 ②启动IAR开发环境,打开“开始”菜单->“程序”->IAR Embedded Workbench for 8051 7.60->IAR Embedded Workbench。

③创建工程,并将编写的代码添加到工程中,再进行编译和调试,确定无误后,通过下载器将程序下载到开发板上。观察现象。

(二)基本实验二:定时器1输入捕获模式控制LED闪烁。

操作步骤:①连接实验设备,将USB电缆线插到PC机的USB端口上,实验板电源指示灯亮。 ②启动IAR开发环境,打开“开始”菜单->“程序”->IAR Embedded Workbench for 8051 7.60->IAR Embedded Workbench。

③创建工程,并将编写的代码添加到工程中,再进行编译和调试,确定无误后,通过下载器将程序下载到开发板上。观察现象。

四、设计性实验程序流程与分析(从节点)

设计性实验流程图如下所示:

第23页,共58页

无线通信技术综合训练报告 训练七 定时器1实验

第24页,共58页

数据缓冲区字符加1 调用数据发送函数 液晶显示 XX :XX :XX Yes 发送字符<8 Temp=0 No Yes 液晶初始化显示 **************** CC2530 基本实验 七、定时器1实验 **************** 延时一段时间液晶显示 **************** 七、定时器1实验 **************** 延时一段时间液晶显示 **************** 按K2启动秒表 初始化定时器1、总中断打开 No 初始化串口发送函数 选择32M系统时钟源 初始化led、key、lcd、UART0 定义变量i 开始 Temp!=0 无线通信技术综合训练报告 训练七 定时器1实验

进入运行状态 使能定时器1的中断 配置128分频,正计 数/倒计数器工作模 式 LED2点亮 液晶显示“按K2停 止秒表”

进入停止状态 停止定时器1 清零计数器 禁止计数器清零 LED1、LED2熄灭 液晶显示“按K2复位秒表” 进入开始状态 秒时钟清零 液晶显示“按K2启动秒表” 总中断置1 Yes 状态是否为停止状态 No Yes 状态是否为运行状态 No Yes 状态是否为开始状态 K1控制校时、校分 No Yes Keyvalue是否为2 Yes No 读取扫描值 Keyvalue是否为1 图7.1设计性实验流程图

五、实验结果与分析

(一)基本实验一结果:液晶初始化显示过后,按下K2启动秒表,液晶显示开始进行秒表计时,再按下K2停止秒表,再按K2,复位秒表,如此循环。

结果分析:枚举初始状态、初始化按键扫描、定时器1中断、时间更新函数,调用定时器1中断服务程序,并响应定时器1中断服务函数,清定时器1,当time._s<9时,time._s进行加一运算,当time._s>9,向time.s进一,当time.s<59时,time._s和time.s同时进行加一运算,同时LED1闪烁,当time.s>59,向time.m进一,如此循环往复实现秒表的计时功能。调用while函数,读取扫描值,若扫描值为2且当前状态为“开始”状态,则进入“运行”状态,并且使能定时器1的中断,配置128分频,正计数/倒计数工作模式,并开始启动,点亮LED2,秒表开始计时,等待按下K2停止秒表,若当前状态为“运行”状态,则进入“停止”状态,

第25页,共58页

无线通信技术综合训练报告 训练七 定时器1实验 停止定时器1,清零计数器,禁止定时器1的中断,熄灭LED1、LED2,等待按下K2复位秒表,若当前状态为“停止”状态,则进入“开始”状态,秒表各位显示清零,等待按下K2启动秒表。不同于以往实验,以前实验是通过调用延时函数来实现中断的,而本实验则通过定时器1来实现中断功能。

(二)基本实验二结果:按下K1,捕获LED1闪烁的频率,再按下K1,又捕获到LED1的不同闪烁频率,即在33秒钟之内不同时刻按下按键,可以捕获不同值作为不同的延时。

结果分析:调用定时器1中断服务程序,并响应定时器1中断服务函数,用按键控制LED闪烁来模拟开发板内部定时器1输入捕获控制LED闪烁,实现不同时刻按下按键捕获LED闪烁不同频率值作为不同的延时中断。

(三)设计性实验结果:在CC2530从节点开发板上实现电子钟功能,LCD显示时、分、秒,时间按键校准,时钟信息LCD显示并能串口发送给PC。

结果分析:基本实验一已经实现了秒表计时的功能,所以结合实验六UART串行通信实验来实验开发板与PC机之间的串口数据发送功能。要求LCD显示时分秒,所以在基本实验一的基础上修改,当time.s<59时,time.s进行加一运算,当time.s>59,向time.m进一,当time.m<59时,time.s和time.m同时进行加一运算,同时LED1闪烁,当time.m>59,向time.h进一,如此循环往复实现电子钟的计时功能。定义按键1来进行校准,当按下K1分为加一,当分位到59时向时位进一,按下K1,时位加一。实现电子钟计时功能,调用while函数,读取扫描值,若扫描值为2且当前状态为“开始”状态,则进入“运行”状态,并且使能定时器1的中断,配置128分频,正计数/倒计数工作模式,并开始启动,点亮LED2,秒表开始计时,等待按下K2停止秒表,若当前状态为“运行”状态,则进入“停止”状态,停止定时器1,清零计数器,禁止定时器1的中断,熄灭LED1、LED2,等待按下K2复位秒表,若当前状态为“停止”状态,则进入“开始”状态,秒表各位显示清零,等待按下K2启动秒表。最后调用串口数据发送和返回函数,在串口中输入时间,使LCD显示所输入内容并能够向PC发送显示内容,设计性实验采用的是异步串口0中断服务程序,并响应串口0中断服务函数。

六、实验思考题

1.本实验对CC2530 的哪些定时器相关寄存器进行了操作?定时中断配置的基本步骤是什么?

答:(一)本实验定时器相关寄存器进行操作的包括:T1CNTH(定时器1计数高位寄存器)、T1CNTL(定时器1计数低位寄存器)、T1CTL(定时器1控制寄存器)、T1STAT(定时器1状态寄存器)、T1CCTLn(定时器1通道n捕获/比较控制寄存器)、T1CCnH(定时器1通道n捕获/比较值高位寄存器)、T1STAT(定时器1通道n捕获/比较值低位寄存器),TIMIF(定时器1/3/4中断屏蔽/标志寄存器)。

(二)定时中断配置的基本步骤:首先为定时器分配一个中断向量,当计数器达到最终计数值,或输入捕获事件、输出比较事件发生时,将产生一个中断请求,定时时间到会自动进入中断,如果有其它未决中断,在产生一个新的中断请求之前,必须通过软件清除相应的中断标志。此外,如果相应的中断标志置位,使能一个中断屏蔽位将产生一个新的中断请求。 2.如何实现闹钟、年月日、星期显示功能?

答:要实现闹钟功能只需在基础实验的基础上加入定时中断,中断内容为LED灯闪烁或是蜂鸣器响,只要定时时间一到自动进入中断请求;年月日、星期的显示类似秒表显示,只是计算时间公式有所不同。

3.输入捕获与输出比较可以应用在哪些场合?

答:当定时器需要捕获一个外部时间发生的时间时可以使用,输入捕获,而对于通道0来说这两种模式是不可用的。

4.如何用定时器产生方波信号输出?

第26页,共58页

无线通信技术综合训练报告 训练七 定时器1实验 答:关键是在相应的寄存器控制器写入对应的数据,状态,比如输出状态,数据位1V,0V,1V,0V....如此循环

七、存在问题和解决方法

存在的问题1:LCD液晶显示出现乱码。

解决方法:查看程序中关于显示部分的程序代码是否正确,设置字节是否有超过所要求的范围。

存在的问题2:秒表显示结果不正确。

解决方法:检查秒表显示与计算部分程序是否有误。

第27页,共58页

无线通信技术综合训练报告

训练八 外部中断实验

一、实验内容

1.在CC2530节点开发板上,启用通用I/O中断配置,由查询控制LED闪烁; 2.在CC2530节点开发板上,启用通用I/O中断配置,由中断控制LED闪烁。

二、实验原理

CPU有18个中断源。每个中断源有它自己的、位于一系列特殊功能寄存器中的中断请求标志。每个中断通过相应的标志请求可以单独使能或禁止。通用I/O引脚设置为输入后,可以用于产生通用I/O中断(外部中断)。

三、基本实验步骤(从节点)

基本实验:外部中断基本实验。

操作步骤:①连接实验设备,将USB电缆线插到PC机的USB端口上,实验板电源指示灯亮。 ②启动IAR开发环境,打开“开始”菜单->“程序”->IAR Embedded Workbench for 8051 7.60->IAR Embedded Workbench。

③创建工程,并将编写的代码添加到工程中,再进行编译和调试,确定无误后,通过下载器将程序下载到开发板上。观察现象。

四、设计性实验程序流程与分析(从节点)

设计性实验主函数流程图如下所示:

空语句 第28页,共58页

图8.1设计性实验主函数流程图

初始化定时器1 外部中断使能 总中断打开 液晶初始化显示 **************** CC2530基本实验 八、外部中断实验 **************** 选择32M系统时钟源 初始化Led、Lcd 开始 无线通信技术综合训练报告 训练八 外部中断实验 P0.7口中断服务程序流程图如下所示:

图8.2 P0.7口中断服务程序流程图

P0.1口中断服务程序流程图如下所示:

第29页,共58页 输出停止状态 关闭定时器1 熄灭LED1、LED2 POIFG置1 端口0中断置0 输出运行状态 T1中断清零 启动定时器1 Yes 状态是否为运行状态 No Yes 状态是否为停止状态 No 等待K2按键放掉 延时消抖 总中断打开 Yes P0.7是否为1 No 总中断关掉 响应中断服务响应函数 调用P0口中断服务程序 无线通信技术综合训练报告 训练八 外部中断实验

图8.3 P0.1口中断服务程序流程图

定时器1中断服务函数流程图如下所示:

输出停止状态 关闭定时器1 熄灭LED1、LED2 POIFG置1 端口0中断置0 输出运行状态 T1中断清零 启动定时器1 Yes 状态是否为运行状态 No Yes 状态是否为停止状态 No 等待K1按键放掉 延时消抖 总中断打开 Yes P0.1是否为1 No 总中断关掉 响应中断服务响应函数 调用P0口中断服务程序

第30页,共58页

无线通信技术综合训练报告 训练八 外部中断实验

定时器1清零 LED1灭 Yes 是否为定时器1 No Yes No K2激活 按下K2 K1激活 按下K1 Keyvalue是否为2 Yes Keyvalue是否为1 No 定时器1中断服务函数 T1口外部中断服务响应函数 是否为定时器1 LED1闪 定时器1清零 LED2闪 LED2闪 图8.4定时器1中断服务函数流程图

五、实验结果与分析

(一)基本实验结果:按下K1,LED1闪烁、LED一直亮,再按下

结果分析:初始化LED、选取32MHzx系统时钟源,初始化定时器1、外部中断使能,总中断打开,执行空语句。调用P0口中断服务子程序,并响应中断服务函数,总中断关掉,给中断,按下K1,等待按键放掉,进行延时消抖,若当前状态为“停止”状态,则进入“运行”状态,T1中断清除,设置128分频、正计数/倒计数工作模式,并开始启动,点亮LED2,若当前状态为“运行”状态,则进入“停止”状态,关闭定时器1,LED1、LED2熄灭,端口0中断状态标志寄存器置1,中断标志4寄存器置0,总中断打开。调用定时器1中断服务函数,判断是不是定时器1的标志,若是则将定时器1的标志清掉,并使LED1闪烁。由此对相关寄存器的配置产生外部中断并响应中断处理完成对基本实验的验证。

(二)设计性实验结果:CC2530从节点开发板按键K1(P0.1 )、K2(P0.7 )分别控制启动/ 停止LED1、LED2 闪烁。

结果分析:基本实验中已经实现了K1控制LED1闪烁,所以只需在此基础上加上对K2(P0.7)的设置即可,调用P0口中断服务子程序,并响应中断服务函数,总中断关掉,给中断,按下K1,(K2)等待按键放掉,进行延时消抖,若当前状态为“停止”状态,则进入“运行”状态,T1中断清除,设置128分频、正计数/倒计数工作模式,并开始启动,若当前

第31页,共58页

无线通信技术综合训练报告 训练八 外部中断实验 状态为“运行”状态,则进入“停止”状态,关闭定时器1,LED1、LED2熄灭,端口0中断状态标志寄存器置1,中断标志4寄存器置0,总中断打开。调用定时器1中断服务函数,按键扫描,返回值若为1,说明按键1激活,按下K1,判断是不是定时器1的标志,若是则将定时器1的标志清掉,并使LED1闪烁,否则熄灭LED1,从而实现K1控制启动/停止LED1闪烁,同理回值若为2,说明按键2激活,按下K2,判断是不是定时器1的标志,若是则将定时器1的标志清掉,并使LED2闪烁,否则熄灭LED2,从而实现K2控制启动/停止LED2闪烁,

六、实验思考题

1.本实验对CC2530的哪些定时器相关寄存器进行了操作?这些寄存器的功能分别是什么? 答:进行操作的中断标志特殊功能寄存器包括TCON 、S0CON、S1CON、IRCON、IRCON2 ,其中TCON为中断标志寄存器,当有中断进来时中断标志位置1,S0CON为中断标志2寄存器,用于加密设置,IRCON为中断标志4寄存器,作为定时器功能来使用,IRCON2为中断标志5寄存器,作为看门狗定时器功能来使用。 2.如何理解中断的概念?

答:①遇到中断则需跳出当前执行的语句去执行中断,中断处理完成后在返回刚刚的语句继续执行程序;②中断方式不占用CPU资源,定时时间到会自动进入中断程序,准确度高,熟读快。

3.外部中断配置的基本步骤是什么?

答:基本步骤:首先进行中断屏蔽设置,使能相应的特殊功能寄存器,清除中断标志,设置寄存器IEN0、IEN1或IEN2中对应的各中断使能位为1,设置IEN0中的EA位为1来使能全局中断,再进行中断处理,设置相应中断的优先级。

4.除了本实验通用I/O外部中断源,其它中断源还有哪些?

答:CPU有18个中断源,除了本实验通用I/O外部中断源,其它中断源还有RFERR、RF、DMA、ADC、T1、URX0、T2、URX1、T3、ENC、T4、ST、P0INT、P2INT、UTX0、UTX1、P1INT、WDT。

5.如何配置中断优先级?

答:中断组合成为6个中断优先组,每组的优先级通过设置寄存器IP1和IP0实现。为了给中断(也就是它所在的中断优先组)赋值优先级,需要设置IP1和IP0的对应位,如下表所示: IP1_x 0 0 1 1 IP0_x 0 1 0 1 优先级 0-最低 1 2 3-最高 七、存在问题和解决方法

存在的问题1:按键与指示灯显示不正确。 解决方法:检查按键与指示灯端口设置是否正确。 存在的问题2:LED闪烁时间与要求不同。 解决方法:检查定时器时间设置部分是否有误。

第32页,共58页

无线通信技术综合训练报告

训练九 看门狗实验

一、实验内容

1.在CC2530节点开发板上,让看门狗定时器工作在看门狗模式,超时间为1s(在到达1s之前没有喂狗就产生复位)。程序首先控制LED闪烁,然后进入喂狗循环;按下按键模拟出现意外而终止喂狗,超时后看门狗定时器启动复位系统。

2.在CC2530节点开发板上,让看门狗工作在定时器模式,采集查询和中断两种工作方式,定时时间为0.25s,时间到切换LED亮灭状态。

二、实验原理

在CPU 可能受到软件扰乱的情况下,看门狗定时器(WDT)可被用来作为一种恢复的手段。当软件在指定的时间间隔里不能清除WDT时,WDT就会复位系统。看门狗可以用于那些会受到电气噪声、电源故障、静电放电影响的应用,或者需要高可靠性的应用。如果一个应用不需要看门狗功能,可以将看门狗定时器配置为一个间隔定时器,用于在指定的时间间隔产生中断。

三、基本实验步骤(从节点)

基本实验:看门狗基本实验。

操作步骤:①连接实验设备,将USB电缆线插到PC机的USB端口上,实验板电源指示灯亮。 ②启动IAR开发环境,打开“开始”菜单->“程序”->IAR Embedded Workbench for 8051 7.60->IAR Embedded Workbench。

③创建工程,并将编写的代码添加到工程中,再进行编译和调试,确定无误后,通过下载器将程序下载到开发板上。观察现象。

四、设计性实验程序流程与分析(从节点)

设计性实验一(中断服务工作方式)主函数流程图如下

看门狗定时器中断使能置1 总中断打开 图9.1设计性实验主函数流程图

第33页,共58页 空语句 选择外部32k晶振作为看门狗定时器时钟 开始 初始化Led 选择32M系统时钟源 初始化看门狗 无线通信技术综合训练报告 训练九 看门狗实验

设计性实验一(中断服务工作方式)中断服务子程序流程图如下所示:

图9.2 设计性实验中断服务子程序流程图

设计性实验二(查询服务工作方式)主函数流程图如下所示:

WDTIF清零 LED1闪烁 关总中断 Yes 看门狗定时器中断标志是否为1 No 总中断关掉 响应中断服务程序 调用看门狗定时器中断 第34页,共58页

无线通信技术综合训练报告 训练九 看门狗实验

开始 初始化Led 选择32M系统时钟源 选择外部32k晶振作为看门狗定时器时钟 熄灭LED1、LED2 初始化看门狗函数 调用查询中断函数 Yes 看门狗定时器中断标志是否挂起 No 清除中断标志 LED1闪烁 图9.3 设计性实验查询中断工作模式流程图

五、实验结果与分析

(一)基本实验结果:按复位键后,LED1闪烁8次,按下按键模拟中断,中断过后,LED1继续闪烁。

结果分析:在CPU可能受到软件扰乱的情况下,看门狗定时器(WDT)可被用来作为一种恢复的手段。当软件在指定的时间间隔里不能清除WDT时,WDT就会复位系统。在CC2530从节点开发板上,让看门狗定时器工作在看门狗模式,超时间为1s(在到达1s之前没有喂狗就产生复位。程序首先控制LED闪烁,然后进入喂狗循环;按下按键模拟出现意外而终止喂狗,超时后看门狗定时器复位系统。初始化LED,选择外部32k晶振作为看门狗定时器时钟,初始化LCD显示,循环8次闪烁LED1,延时一段时间后LED1、LED2熄灭,初始化看门狗,调用while函数,进行喂狗,模拟意外发生,按键没按,扫描值为1,跳出,回到while(1),喂狗,按键按下,扫描值不为0,空语句一直执行,不能喂狗,1s钟时间到,系统重启。

第35页,共58页

无线通信技术综合训练报告 训练九 看门狗实验

(二)设计性实验一(中断服务工作方式)结果:LED1一直闪。

结果分析:初始化LED,选择32M系统时钟源,初始化看门狗,中断使能2寄存器打开,打开总中断,调用空语句。调用看门狗中断服务函数并响应,总中断关闭,判断是否为看门狗定时器中断,将中断标志置位清掉,使LED1闪烁,打开总中断。中断方式的特点是遇到中断则需跳出当前执行的语句去执行中断,中断处理完成后在返回刚刚的语句继续执行程序而且中断方式不占用CPU资源,定时时间到会自动进入中断程序,准确度高,熟读快。

(三)设计性实验二(查询服务)结果:LED1一直闪烁。

结果分析:初始化LED,选择32M系统时钟源,熄灭LED1、LED,初始化看门狗,调用查询服务子函数,判断是否为看门狗定时器,并将其清掉,闪烁LED1。不同于中断服务函数,需要跳出程序另行执行中断,处理完中断后在回到程序中继续执行函数。而查询服务函数只需顺序执行相应查询服务中断请求函数,无需跳出程序执行。

六、实验思考题

1.本实验对CC2530的哪些定时器相关寄存器进行了操作?这些寄存器的功能分别是什么? 答:主要对WDT设置为一个看门狗定时器或配置为通用定时器,还有WDCTL寄存器,即看门狗定时器控制寄存器,主要通过它来控制WDT模块的操作。 2.看门狗工作原理?

答:在CPU 可能受到软件扰乱的情况下,看门狗定时器(WDT)可被用来作为一种恢复的手段。当软件在指定的时间间隔里不能清除WDT时,WDT就会复位系统。让看门狗定时器工作在看门狗模式,超时间为1s(在到达1s之前没有喂狗就产生复位)。程序首先控制LED 闪烁,然后进入喂狗循环;按下按键模拟出现意外而终止喂狗,超时后看门狗定时器复位系统。

3.看门狗定时中断配置的基本步骤是什么?

答:首先要在要在看门狗模式下启动WDT,WDCTL.MODE[1:0]位必须置为10。看门狗定时器计数器从 0 开始递增。如果计数器达到选定的定时器间隔值,看门狗中断打开,看门狗定时器接回产生一个复位信号给系统,再进行相应定时器模式、看门狗定时器寄存器相应端口的设置。

4.看门狗应用场合有哪些?

答:看门狗可以用于那些会受到电气噪声、电源故障、静电放电影响的应用,或者需要高可靠性的应用。

七、存在问题和解决方法

存在的问题1:LED1闪烁时间与要求不相符。

解决方法:检查程序中中断或查询服务中断函数定时设置是否正确,端口是否对应。 存在的问题2:对于看门狗工作原理了解不是很清楚。

解决方法:通过实验中不同的中断设置如中断服务、查询服务函数的调用,观察结果,从而与基本实验作比较,深化对看门狗原理的了解。

第36页,共58页

无线通信技术综合训练报告

训练十 IEEE802.15.4基础理论实验

一、实验内容

通过软件演示IEEE802.15.4物理层组包、数据包接收和地址译码、应答ACK帧、CSMA-CA等内容。掌握IEEE802.15.4标准的帧格式以及物理层组包的正确流程和地址译码过程,掌握ACK帧格式以及如何正确回复ACK帧,理解CSMA-CA机制。

二、实验原理

IEEE802.15.4通信协议是短距离无线通信的IEEE标准,是通信协议物理层与MAC层的一个具体实现,规定了在个域网(PAN)中设备之间的无线通信协议和接口。该标准采用载波侦听多点接入-冲突避免(CSMA-CA)的媒体接入方式,形成星形和点对点的拓扑结构。

三、实验内容与步骤 1.物理层组包实验:

①打开IEEE802.15.4基础理论演示软件,点击“物理层组包”按钮,显示实验界面。②点击“开始组包”按钮,软件开始演示物理层组包过程。

2.数据接收和地址译码实验:

①打开IEEE802.15.4基础知识实验演示软件,点击上面一排按钮中的“数据接收和地址译码”,其中有一个短地址为0x0000的主节点和五个从节点,软件演示主节点给从节点发送数据,从节点进行数据接收和地址译码的过程。

②选择目的短地址并输入传输数据(十六进制),点击“开始传输”,软件开始演示数据接收和地址译码过程。点击“结束”,则演示过程结束。其中可选择的目的短地址有8个,0xFFFF为广播地址,短地址选为0xFFFF时,所有节点接收数据成功。

③短地址选为0x0001至0x0005时,则对应地址的节点接收数据成功,其他节点丢失或转发数据。

④若短地址选为0x0006和0x0007时,则所有节点丢弃或转发数据。

3.应答ACK帧实验:

①打开IEEE802.15.4基础知识实验演示软件,点击上面一排按钮中的“ACK”帧。

②点击“开始组包”,软件开始演示ACK帧的组包过程。

③点击“一次接收成功”,软件开始演示数据一次发送成功后返回ACK帧的过程,右边的信息提示框显示出提示信息。点击“清除”将数据清空。

④点击“重传后成功接收”,软件开始演示数据重传一次发送成功后返回ACK帧的过程,右边的信息提示框显示出提示信息。点击“清除”可将数据清空。

⑤点击“发送失败”,软件开始演示数据重传超过最大次数(4次)发送失败不返回ACK的过程,右边的信息提示框显示出提示信息。点击“清除”可将数据清空。

4.CSMA-CA实验:

①打开IEEE802.15.4基础知识实验演示软件,点击上面一排按钮中的“CSMA-CA”。 ②点击添加从节点,按提示设置要传输的帧数和帧长度,选择演示显示速度。

第37页,共58页

无线通信技术综合训练报告 训练十 IEEE802.15.4基础理论实验

③点击“开始”,所选节点开始利用CSMA-CA协议竞争时隙传输数据。当有节点退避计数器减为0且不碰撞时,此节点开始占用时隙传输数据。

④当有两个或三个节点同时退避计数器同时减为0时,则发生碰撞,并扩大退避窗口,重新随机设置退避计数器。

⑤点击“暂停”,可暂停所有计数器和数据的传输,点击“停止”,可按提示选择是否清除所有数据。数据传输完毕时,可按提示清空所有数据。

四、实验结果与分析

实验结果如下图所示:

图1.物理层组包实验结果 图2.数据接收和地址译码实验结果

图3.应答ACK帧实验结果 图4.CSMA-CA实验结果

结果分析:

1.物理层组包实验结果分析:

在Zigbee设备之间进行数据传输时,传输的数据由应用层生成,经数据处理后,发

送个MAC层作为MAC层的数据载荷(MSDU),并在MSDU前面加上一个MAC层帧头MHR,在其结尾后面加上一个MAC层帧尾MFR。其中,MHR包括帧控制、序列码以及寻址信息,MFR为16bitFCS码,这样,由MHR、MSDU和MFR共同构成了MAC层数据帧(MPDU)。

MAC的数据帧作为物理层载荷(PSDU)发送到物理层。在PSDU前面,加上一个同步

包头SHR和一个物理层包头PHR。其中,SHR包括前同步码序列和SDF;PHR包含PSDU的长度信息。前同步码序列和数据SFD能够使接收设备与发送设备达到符号同步。SHR、PHR和PSDU共同构成了物理层的数据包(PPDU)。

2.数据接收和地址译码实验结果分析:

在MAC子层中设备地址有两种格式:16为的短地址和64位的扩展地址。在物联网实

验平台中,主节点的Zigbee模块的短地址被定义为0x0000,第一个从节点的Zigbee模块的短地址被定义为0x0001,这个地址也是从节点的起始短地址,增加多个从节点时,短地址将自动被分配,每个短地址都比上一个增加0x0001。0xFFFF代表的是广播传输方式。

当从节点接收到主节点或其他节点发送过来的数据时,首先将目的PAN标识符取出

进行分析,如果是自己的地址或是广播地址信息,则将该帧中的数据接收;若不是,则将该

第38页,共58页

无线通信技术综合训练报告 训练十 IEEE802.15.4基础理论实验 帧转发或丢弃。

3.应答ACK帧实验结果分析:

在通信接收设备中,为保证通信的可靠性,通常要求接收设备在接收到正确的帧信

息之后,向发送设备返回一个确认信息,已向发送设备表示已经收到相应的信息。接收设备将接收到的信息经PHY层和MAC层后,由MAC层经纠错解码后,恢复发送端的数据,如没有检查出数据的错误,则由MAC层生成一个确认帧,发送回发送端,MAC层的确认帧是由一个MHR和一个MFR构成的,其中,MHR包括MAC帧控制字段和数据序列码字段;MFR由16FCS构成。MHR和MFR共同构成了MAC层的确认帧(MPDU)。

MODU作为物理层确认帧载荷发送到物理层(PSDU)。在PSDU前面加上SHR和PHR。其

中,SHR包括前同步码序列和SFD字段;PHR包含PSDU长度的信息。SHR、PHR以及PSDU共同构成了物理层的确认包(PPDU)。

在有应答的发送信息方式中,发送设备在发出物理层数据包后,要等待一段时间来

确认帧,如没有收到确认帧信息,则认为发送信息失败,并且重新发送这个数据包。在经过几次重新发送该数据包后,如仍没有收到确认帧,发送设备将向应用层返回发送数据包的状态,由应用层决定发送终止或者重新再发送该数据包。

4.CSMA-CA实验结果分析:

CSMA-CA的基础是载波侦听。载波侦听(CS)由物理载波检测(Physical CS)和虚

载波检测(VirtualCS)两部分组成。物理载波检测在物理层完成,物理层对接收天线接收的有效信号进行检测,若探测到这样的有效信号,物理载波检测认为信道忙;虚载波检测在MAC子层完成,这一过程体现在网络分配矢量更新之中,NAV中存放的是介质信道使用情况的预测信息,这些预测信息是根据MAC帧中Duration(持续时间字段)声明的传输时间来确定的。NAV可以看做一个以某个固定速率递减的计数器,当值为0时,虚载波检测认为信道空闲;不为0时,认为信道忙。载波检测(CS)最后的状态指示是在对物理载波检测和虚载波检测综合后产生的,只要有一个指示为“忙”,则载波检测(CS)指示为“忙”;只有当两种方式都指示为信道“空闲”时,载波检测(CS)才指示信道空闲,这时才能发送数据。如果信道繁忙,CSMA-CA协议将执行退避算法,然后重新检测信道,这样可以避免各工作站间共享介质时可能造成的碰撞。

五、实验思考题

1.简要叙述IEEE802.15.4的物理层组包过程:

答:物理层组包过程为:在Zigbee设备之间进行数据传输时,传输的数据由应用层生成,经数据处理后,发送个MAC层作为MAC层的数据载荷(MSDU),并在MSDU前面加上一个MAC层帧头MHR,在其结尾后面加上一个MAC层帧尾MFR。其中,MHR包括帧控制、序列码以及寻址信息,MFR为16bitFCS码,这样,由MHR、MSDU和MFR共同构成了MAC层数据帧(MPDU)。MAC的数据帧作为物理层载荷(PSDU)发送到物理层。在PSDU前面,加上一个同步包头SHR和一个物理层包头PHR。其中,SHR包括前同步码序列和SDF;PHR包含PSDU的长度信息。前同步码序列和数据SFD能够使接收设备与发送设备达到符号同步。SHR、PHR和PSDU共同构成了物理层的数据包(PPDU)。

2.介绍CSMA-CA技术的主要应用场景和优缺点。

答:如果信道繁忙,可以使用CSMA-CA技术,CSMA-CA协议将执行退避算法,然后重新检测信道,这样可以避免各工作站间共享介质时可能造成的碰撞。缺点:高利用率的网络环境中,工作站在发送帧之前等待时间较长。

第39页,共58页

无线通信技术综合训练报告

训练十一 多种拓扑结构组网实验

一、实验内容

完成物联网的网络组建及网络拓扑结构图的显示,通过对物联网主从节点连接组网的源代码的剖析及在上位机软件中观察网络组建过程和拓扑图的显示,了解通过ZigBee协议完成物联网组建的过程及软件实现方法,以便于进行后续的综合实验和开发工作。

二、实验原理

ZigBee与其他无线通讯相比,其优势之一在于其强大的组网能力。ZigBee网络可以实现星形、链形和树形三种网络拓扑形式。ZigBee网络层的功能主要包括组建网络、加入网络、离开网络、路由建立和数据传输等。在使用分布式地址分配的网络中,Coordinator建立网络后,设置自己的地址为0x0,其他的Router或者End Device加入网络都由自己的父节点来分配网络地址。网络地址的分配与三个参数有关,允许的最大子节点数(MAXCHILDREN),允许的最大路由节点数(MAXROUTER),允许的最大网络深度(MAXDEPTH)。

三、实验内容与步骤 (一)程序烧写:

将物联网主节点与从节点分别于PC相连,打开SmartRF Flash Programmer软件,按照1.4.2介绍的配置和编译下载步骤将“多种拓扑结构组网实验”文件夹中生成的主从节点程序分别下载到主节点和从节点(事先应根据实验组别在程序中设定好不同的信道号或者PAN_ID号)。

(二)实验软件操作:

将主节点用串口线与PC相连,打开物联网实验开发平台配套软件。①配置串口:在串口配置中根据与PC连接的串口编号选择串口,波特率选择为“38400”,选择完后点击“打开串口”(若串口未正确选择,此时会弹出警告对话框,关闭后请重新选择),进而选择“串口显示数据”;②打开主节点:将主节点的开关按钮拨到“开”(若没有反应,则需按下复位键),单击“开始实验”,实验软件会在表格中显示出主节点连入的时间,主节点的MAC地址,同时在“事件”一栏中显示“主节点已创建,等待子节点加入”,串口监控区中会显示出主节点的短地址,MAC地址以及决定网络拓扑结构的允许的最大子节点数

(MAXCHILDREN),允许的最大路由节点数(MAXROUTER),允许的最大网络深度(MAXDEPTH)三个参数,在下面的图形显示区会显示出一个主节点图样,表明此时物联网主节点已完成网络建立过程,等待从节点的加入。③从节点加入网络:将从节点的电池盒电源打开,将开关按钮拨到“开”,上位机会继续在表格中显示出该从节点的连入时间、MAC地址、父节点的MAC地址(此时即为主节点MAC地址),并在事件一栏中显示“子节点已加入,请发送数据”;串口监控区中会显示出该从节点的短地址、MAC地址;在图形 显示区中会显示出新加入的从节点并将其与父节点。表明有一个从节点已加入网络。当两个从节点到主节点的位置距离拉开到一定程度上的时候,开始组建树状网络。④从节点从网络 中断开:将某已加入网络的从节点的开关拨到“关”,实验软件会在表格中显示出从节点断开的时间,断开的从节点的MAC地址及其父节点MAC地址,并在“事件”一栏中显示“无数据交换,节点已断开”,在串口监控区中会显示出该断开节点的短地址和MAC地址,此时图形显示中对应断开节点的图样及与父节点的连线都将消失。修改主节点和从节点程序代

第40页,共58页

无线通信技术综合训练报告 训练十一 多种拓扑结构组网实验 码中的允许的最大路由节点数(MAXROUTER),允许的最大网络深度(MAXDEPTH)三个参数,主节点和从节点的参数设置必须一致,编译后重新烧入对应的节点中,重复上述步骤会显示出不同的拓扑结构图。

四、设计性实验程序流程与分析

设计性实验流程图如下所示: Coordinator流程图:

设置任务ID、协调器激活声明 事件响应处理函数 判断是否为系统消息函数 判断具体事件 启动操作系统某一定时器 处理消息事件 第41页,共58页 输出协调器地址信声明处于激活状态 重启协调网络 启动协调器 关闭定时器 关网络 指示灯闪3次 允许加入为0 允许加入标志置1 Yes 数据是否为0xfe Yes 数据是否为0xff 读取串口对应缓冲数据 No Yes 是否发送完毕 开始 系统初始化定义 关总中断 硬件初始化 进入操作系统 串口响应调用函数 No 无线通信技术综合训练报告 训练十一 多种拓扑结构组网实验 取出数据内容与发送的短地址 进行数据处理 第一个字节为0x71 发现激活节点 丢包数量等于0 发送数据包长度等于1 定义准备发送数据参数 发送数据请求函数 返回一个数据0x72

Router流程图:

判断数据内容 第42页,共58页

收到0x81 判断数据长度是否为11,新节点地址是否为0 允许加入无效 标志为1 布置一个任务 判断丢失次数 新节点放到地址表 指示灯闪2次 将前8个字节放到MAC地址 打印一个回车 将收到的包中地址内容打印出来 将新节点加入链表 向上位机打印新节点MAC地址 打印结束标志 无线通信技术综合训练报告 训练十一 多种拓扑结构组网实验

第43页,共58页

LED闪烁 节点激活 发送数据包长度为1 设备发送数据参数 启动定时器 接收数据是否为0x72 发送数据是否为0x71 数据处理 发送数据个协调器 设置发送地址模式、目标地址、目标端口号、长度 调用发送请求函数 启动一个定时器 ZDO启动设备 节点激活声明 重新入网 接收无线数据包响应事件 标志变0、过2秒再检查 父节点激活标志为0、关LED、停止定时器 节点声明事件 检查父节点状态事件 设置一个新的事件 等待数据发送完成 通过一个串口打印状态改变的字符串 将父节点短地址也发送出去 网络状态改变 发送长度为10 设备事件状态改变 传一个字符串 事件处理函数 父节点标志为1 宏定义 加入标志等于1 开始 发送数据为0x81 无线通信技术综合训练报告 训练十一 多种拓扑结构组网实验

五、实验结果与分析

设计性结果:组建网络并进行聊天 如下图所示:

结果分析:(1)在Coordinator中,当主节点收到上位机发送来的0xFF后,串口响应回调函数执行相应初始化,执行启动协调器命令,启动主节点,通过打印协调器地址信息函数向上位机上报网络参数,并设置参数允许从节点加入。主节点不停向上位机发送“ALIVE”字符串,以告知上位机主节点的工作状态,当网络中有从节点加入时,主节点会收到从节点发来的节点信息64位MAC地址的信息。在主节点的函数处理中,当有消息收到时,主节点收到0x71,表明从节点处于活动状态,主节点向从节点返回0x72以表明活动状态。主节点实时监控从节点状态,及时向上位机上报网络状态。主节点收到上位机发送来的0xFE后,关闭网络。

(2)在Router中,从节点开机,当检测到网络允许加入时,加入网络,并通过发送数据(0x81)将自身网络参数发送给主节点,主节点调用数据处理函数处理收到的信息,从节点定时想主节点发送0x71,以表明自身处于活动状态。从节点定时收到主节点反馈的0x72,以表明主节点处于活动状态,从节点实时监控主节点的状态。

六、实验思考题

1.比较不同的允许最大子节点数(MAXCHILDREN),允许最大路由节点数(MAXROUTER),允许最大网络深度(MAXDEPTH)三个参数下,网络拓扑结构。

答:网络拓扑结构包括三种形式:①星形拓扑,包含一个Coordinator节点和一系列的End Device节点。②链形结构,限制它的分支数始终为1。③树形拓扑结构,包含一个Coordinator以及一系列的Router和End Device节点。

2.为什么节点通断改变接入顺序后,网络拓扑图会发生变化?

答:因为一旦节点通断改变了接入顺序后,节点之间的数据路由路径也就相应的改变了,由于不同的路由路径构成不同的拓扑 网络结构,因此网络拓扑图也会发生变化。

第44页,共58页

无线通信技术综合训练报告

训练十二 基于RFID的基本读写系统实验

一、实验内容

通过串口控制RFID读写器搜索并读取附近的RFID标签,将独到的设备ID通过软件进行显示,并且可以对RFID的频率和功率进行设置,理解RFID技术的读写原理以及读写器和标签的基本使用方法。

二、实验原理

RFID技术的基本工作原理并不复杂:标签进入磁场后,接收阅读器发出的射频信号,凭借感应电流所获得的能量发送出存储在芯片中的产品信息(Passive Tag,无源标签或被动标签),或者主动发送某一频率的信号(Active Tag,有源标签或主动标签);阅读器读取信息并解码后,送至中央信息系统进行和有关数据处理。一套完整的RFID系统,是由阅读器(Reader)与电子标签(TAG)也就是所谓的应答器(Transponder)及应用软件系统三个部分所组成。

三、实验内容与步骤

915M RFID阅读步骤:

(一)打开配套实验程序:

打开配套实验软件,在主程序界面中选择915M RFID阅读,进入915M RFID阅读子页面。 (二)设置系统初始化模块:

首先,选择RFID读写模块所连接的端口号,然后按“打开串口”按钮,串口即可打开,显示串口打开成功界面。如果要关闭串口,点击“关闭串口”按钮即可。下面需要初始化RMU,询问RFID的状态,用户可利用该命令查询RFID是否连接,如果有响应则说明RFID已经连接,而如果在指定时间内没有响应则说明RFID不可达。

(三)设置功率频率参数:

下面需要设置该RFID的频率,共提供四个频率范围供选择,需要选择所希望设定的频率范围,选择好频率后,点击“频率设置”按钮即跳出设置频率成功的提示信息。然后可以进行功率设置,功率范围是10-30dB需要选择一个功率值来进行设置,选择好功率后,点击“功率设置”按钮即跳出功率设置成功的提示信息。频率和功率设置好后就可以检测RFID的标签了,如果没有设置功率和频率的话,该系统将使用默认值。

(四)检测标签:

点击“开始检测”按钮,该RFID就开始检测周围的标签了,软件界面右方将显示标签的读取次数以及标签的ID号。检测时,如需要停止检测的话,点击“停止检测”按钮,系统就会停止检测标签,并且显示检测完毕。

(五)实验结束:

如果还需要继续检测的话,点击“开始检测”按钮,即可进行新一轮的检测。如果要更换串口,点击“关闭串口”按钮,系统就会回到初始状态,此时可以重新选择串口进行实验。如果已经完成所有检测任务,需要退出系统时,点击“退出”按钮就可以退出系统了。 13.56MRFID阅读步骤: (一)打开配套实验程序:

打开配套实验软件,在住程序界面中选择13.56M RFID阅读,进入13.567M RFID阅读子

第45页,共58页

无线通信技术综合训练报告 训练十二 基于RFID的基本读写系统实验 页面。

(二)串口操作:

首先,选择RFID读写模块所连接的端口号,然后按“打开”按钮,串口即可打开,显示串口打开成功界面。如果要关闭串口,点击“关闭”按钮即可。

(三)数据操作:

首先读取数据,选择块号“1”,点击“读”按钮即可。然后可以进行写数据,选择块号,输入数据“12345678”,点击“写”按钮即可。

(四)卡片信息操作:

点击“获取卡片信息”按钮,输入写DSIS的数据“12”,点击“写DSID”按钮,输入写AFI的数据“34”,点击“写AFI”按钮。

(五)实验结束:

如果已经完成检测任务,需要退出实验时,点击“退出”按钮就可以退出实验了,此时会返回到程序主界面,可继续选择其他实验。

2.4G RFID阅读步骤:

(一)打开配套实验程序:

打开配套实验软件,在主程序界面中选择2.4G RFID阅读,进入2.4G RFID阅读,进入2.4G RFID阅读子页面。

(二)设置串口:

选择RFID读写模块所连接的端口号,设置波特率为9600,点击“打开串口”,完成设置,点击“关闭串口”,可重新设置串口。

(三)检测标签:

串口打开后,将RFID标签放在阅读器附近,点击“读取数据”,界面上将显示读到的标签信息。点击“清除数据”将清除保存的信息,点击“清除显示”将清除显示的信息。

(四)实验结束:

点击“退出”,返回主程序界面,如无需继续实验,可在主界面上点击退出,结束整个程序。

四、实验结果与分析

实验结果如下所示:

图1.915M RFID阅读结果 图2.13.56M RFID阅读结果

第46页,共58页

无线通信技术综合训练报告 训练十二 基于RFID的基本读写系统实验

图3.2.4G RFID阅读结果

结果分析:RFID即射频识别,又称电子标签,是一种非接触式的自动识别技术,通过实验的操作了解了射频读写的特点是通过射频信号自动识别目标对象并获取相关数据。不同阅读器所设置的波特率亦不同,915M RFID波特率为57600,13.56M RFID波特率为15200,而2.4G RFID波特率为9600,上位机需要按照规定数据格式往RFID阅读器发送命令并接受RFID阅读器返回的信息。除了阅读器之外必不可少的便是射频标签,它包括有源标签和无源标签,我们所做的实验中只有2.4G RFID所需的位有源标签,有源标签可以主动向外发出无线电信号,并且能够传很远的距离。而无线信号主要是通过读卡器上的天线被读卡器接收并进行解码的,然后通过TTL232接口将信息发送给管理系统或其他监控系统。

五、实验思考题

1.RFID读写的特点?

答:RFID射频识别是一种非接触式的自动识别技术,它通过射频信号自动识别目标对象并获取相关数据,识别工作无须人工干扰,可以工作于各种恶劣环境,可识别高速运动并可同时识别多个标签,操作快捷方便。 2.RFID的各种功能技术的基本思想?

答:RFID技术的基本思想是:标签进入磁场后,接收阅读器发出的射频信号,凭借感应电流所获得的能量发送出存储在芯片中的产品信息,或者主动发送某一频率的信号,阅读器读取信息并解码后,送至中央信息系统进行有关数据处理。

第47页,共58页

无线通信技术综合训练报告

训练十三 通用传感器实验

一、实验内容

使物联网用户熟悉从节点定时采集板载的温度、湿度、光强等传感器实时数据并上传至主节点的过程,并通过配置实验软件的图形化显示观察各种实时数据的变化。

二、实验原理

ZigBee节点在文件Zmain.c中调用初始化函数,任何类型的节点开始工作都需要调用这些初始化函数,并且所有类型的节点都是用这个相同的函数来初始化ZigBee设备。各个节点初始化以后,就启动网络,每一个coordinator有一个唯一固定的64位IEEE MAC地址,但是组网的时候作为网络标识,同时为了使网络的通信更加高效,他还必须分给自己一个16位的网络地址,通常叫做短地址,作为簇首,同时给其他加入网络的节点分配16位短地址。

三、实验内容与步骤

(一)程序烧写:

将物联网主节点与从节点分别与PC相连,打开Smart Programmer软件,将已编译好的主节点程序和从节点程序,按1.4.2节介绍的配置和编译下载步骤将“通用传感器实验”中生成的主从节点程序分别下载到主节点和从节点。

(二)实验软件操作:

将主节点用串口线与PC相连,关闭烧写开关。打开物联网实验开发平台配套软件。 1. 串口配置:

在串口设置中根据与PC连接的串口编号选择串口,波特率设置为“38400”,选择完后点击“打开串口”(若串口未正确选择,此时会弹出警告对话框,关闭后请重新选择)。 2. 主节点加入网络:

将主节点的开关按钮拨到“开”(若没有反应,则需按下复位键)。点击“开始实验”,在上位机应用程序的下端可以看到主节点和网络的一些信息。 3. 从节点加入网络:

打开从节点开关,可以看到从节点加入的信息可以在上位机事件栏中显示,并显示采集到的数据。当有多个从节点加入网络时,可以看到软件程序将收到的数据分别显示。 4. 结束实验:

结束实验,单击“结束实验”可以看到数据显示被清空,在上位机的下端的事件显示中会保留存储的数据以便查询。

四、实验结果与分析

实验结果如下图所示:

第48页,共58页