




已阅读5页,还剩49页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
无线通信技术综合训练报告无线通信技术综合训练报告学院名称: 电信学院 专 业: 通信工程 班 级: 姓 名: 学 号: 指导老师: 2013年11月目 录训练一 新建一个简单的工程项目1训练二 GPIO实验2训练三 系统主时钟源的选择实验5训练四 SPI通信与LCD显示主从板实验8训练五 ADC主从板实验13训练六 UART串行通信实验18训练七 定时器1实验22训练八 外部中断实验29训练九 看门狗实验33训练十 IEEE802.15.4基础理论实验36训练十一 多种拓扑结构组网实验40训练十二 基于RFID的无线读写系统实验44训练十三 通用传感器实验48训练十四 无线通信系统实验50心得体会51训练一 新建一个简单的工程项目一、实验内容本实验要求闪烁开发板上的用户指示灯LED1二、实验原理 由开发板原理图可知,对于主节点,定义LED1为CC2530的P1.0口控制,对于从节点,定义LED1为CC2530的P1.1口控制。相应控制口为高电平时,LED点亮,为低电平时,LED熄灭。IAR Embedded Wordbench主要完成系统的软件开发和调试。它提供一整套的程序编写,维护,编译,调试环境,将汇编语言和C语言程序编译成HEX可执行输出文件,并能将程序下载到目标CC2530上运行调试。用户系统的软件部分可以由IAR建立的工程文件管理,工程文件一般包含以下几种文件:1.源程序文件:C语言或汇编语言文(*.C或*.ASM)2.头文件(*.H) 3.库文件(*.LIB,*OBJ);三、基本实验步骤第一步:连接实验设备,将USB的电缆线接到PC机USB端口上,实验板电源指示灯亮。第二步:启动IAR开发环境,打开“开始”菜单-“程序”-IAR System-IAR Embedded Wordbench for 8051 7.60-IAR Embedded Wordbench第三步:创建工程1.创建一个工作区 2.建立一个新工程 3.新建或添加程序文件4.设置工程选项 5编译和调试 6.下载7.分析实验结果四、实验结果与分析答:实验现象:按下开关K1时,实验板上LED1闪烁。分析:该程序由库函数,主函数和延时函数组成。对于主节点,定义LED1为CC2530的P1.0口控制,对于从节点,定义LED1为CC2530的P1.1口控制。相应控制口为高电平时,LED点亮,为低电平时,LED熄灭。五、存在问题和解决方法1.没有结果的显示答:是因为没有按照步骤来,没能一步一步的进行设置,编译,调试,才导致了一些错误的发生训练二 GPIO实验一、实验内容1.LED指示灯自动闪烁2.按键控制LED指示灯亮灭;3.按键控制LED指示灯闪烁二、实验原理1.I/O口重要特性 21个I/O口引脚都可以用于外部中断源输入口,因此如果需要,外部设备可以通过这些I/O口产生中断。外部中断功能也可以唤醒睡眠模式。2.未使用的I/O引脚 这些引脚也可以配置为通用输出口。为了避免额外的功耗,无聊引脚配置为输入口还是输出口,都不应该直接与VDD或者GND连接。3.外部设备I/O 对于USART和定时器I/O,选择数字I/O引脚上的外部设备I/O功能,需要将对应的寄存器位PxSEL置1.4.通用I/O(GPIO)寄存器 当用作通用I/O口时,引脚可以组成3个8位口,端口02,定义为P0,P1,和P2。每个端口引脚都可以单独设置为通用I/O或外部设备I/O.5实验电路原理 为了驱动LED的亮灭,需要将相应的I/O设置为通用I/O口,且为输出模式,并使接口输出“1”或“0”来切换LED的亮或灭状态。如果需要按键控制,则需要将按键K对应的I/O设置为通用I/O口,且为输入模式,通过读取相应端口寄存器值判断按键的状态。三、基本实验步骤1.指示灯自动闪烁实验按照实验一的实验步骤,连接实验设备,启动IAR开发环境,创建一个新工程,将程序添加到工程程序文件中,仔细分析程序功能,画出程序流程图,设置工程选项,然后编译,软硬件仿真,下载,观察实验现象。2.按键控灯亮灭实验按照实验一的实验步骤,连接实验设备,启动IAR开发环境,创建一个新工程,将程序添加到工程文件中,仔细分析分析程序功能,画出程序流程图,设置工程选项,然后编译,软硬件仿真,下载,观察实验现象。四、设计性实验程序流程与分析图2-1 实验流程图五、实验结果与分析基础实验1中实验板上LED1,LED2自动闪烁,实现指示灯自动闪烁要求。分析:程序中让两个LED灯的状态在while(1)这个死循环中通过不同的延时,反复的调用 ,取反,使LED灯可以不停的闪烁。基础实验2中按下K1时,LED1亮,再次按下K1,LED灭;按下K2时,LED2亮,LED2灭,实现按键控灯亮灭实验要求。分析:程序初始化完毕进入while(1)死循环,然后在循环中进行按键扫描,看是否有按键按下,如果K1按下,则将LED1的状态取反并延时;如果是K2按下,也是将LED2的状态取反并延时。注意设计二者的延时时间不同,这样可以识别出二者的闪烁频率不同。设计性实验中按下K1时,LED1闪烁,再次按下K1,LED1熄灭;按下K2时,LED2闪烁,再次按下K2,LED2熄灭;如此重复循环,实现设计性实验要求。分析:在该设计性实验就是比基础实验2多了一个功能,判断第二次按下,熄灭该灯,只需在基础实验2的基础上加上一个按键扫描并判断是哪个键按下就好了。综上均符合实验要求,说明程序设计正确六、实验思考题1.Delay(uint)中参数uint的取值范围是什么?如果超范围程序能运行吗?为什么?答:uint的取值范围是065535。 能运行,因为取的数要先减去65535。2.基本实验2中“Keyvalue=0”语句的作用是什么?如果删除对实验结果有什么影响答:相应按键值清零,默认为I/O口 删除后对程序没什么影响。3.本实验对CC2530的哪些寄存器进行了操作?都是必要的吗?答:P0和P1端口寄存器。 都是必要的。4.设计性实验中如何使LED有多种不同的闪烁方式?答:改变闪烁频率,改变调用延时时间。七、存在问题和解决方法1.灯的按键控制要按记下才能灭掉初步估计是按键不灵,进行各种添加和修改程序都没有可见的用处训练三 系统主时钟源的选择实验一、实验内容通过本实验的学习,熟悉CC2530芯片内部系统时钟或主时钟的配置和使用方法。通过配置开发板上CC2530芯片的主时钟频率,从而改变指示灯闪烁的频率二、实验原理1.振荡器 设备中有两个高频振荡器:32MHZ晶体振荡器;16MHZ RC振荡器。两个低频振荡器:32KHZ晶体振荡器;32KHZ RC 振荡器。32KHZ晶体振荡器被设计为工作在32.768KHZ,并为要求精确时间的系统提供一个稳定的时钟信号。2.系统时钟 系统时钟由选定的系统时钟源32MHZ晶体振荡器或者16MHZ RC振荡器而来。CLKCONCMD.OSC位选择系统时钟源。请注意,使用RF收发器,必须选择32MHZ晶体振荡器且必须稳定。3.32KHZ晶振 设备里有2个32KHZ振荡器作为32KHZ时钟的时钟源:32KHZ晶体振荡器;32KHZ RC振荡器。 默认情况下,复位后,32KHZ RC振荡器启用且被选为32KHZ时钟源。可以随时设置寄存器CLKCONCMD.OSC32K,但是在16MHZ RC振荡器作为系统时钟源之前都不起作用。4.振荡器和时钟寄存器 在PMO功耗模式下,可配置32MHZ晶体振荡器或者16MHZ RC振荡器作为系统时钟,设置系统时钟需要操作两个寄存器:SLEEPCMD和CLKCONCMD.三、基本实验步骤按照实验一的实验步骤,连接实验设备,启动IAR开发环境,创建一个新工程,将程序添加到工程程序文件中,仔细分析程序功能,画出程序流程图,设置工程选项,然后编译,软硬件仿真,下载,观察实验现象。4、 设计性实验程序流程与分析流程图分析:程序开始后先进行初始化,初始化模块包括LED和按键初始化。然后设置控制变量X并调用按键扫描函数,按键扫描值为按键扫描返回值。判断按键值是否为1,等于1的时候将变量X取反并判断其值是否为0,等于0的时候设置系统时钟为16MHZ,此时指示灯1闪烁并延时,否则设置系统时钟为32MHZ,此时指示灯1闪烁延时并返回按键扫描函数。当按键值为2时,此时指示灯2闪烁,否则返回按键扫描函数。开始LED初始化按键初始化设置控制变量X调用按键扫描函数,按键扫描值为按键扫描函数返回值按键值?=1X(取反)X?=0设置系统时钟为16MHZ指示灯1闪烁 延时设置系统时钟为32MHZ指示灯1闪烁 延时按键值?=2指示灯2闪烁NNYYN图3-1 实验流程图五、实验结果与分析基础实验中开发板上指示灯闪烁频率不一样,实现指示灯自动更新闪烁频率要求。分析:当系统时钟为16MHZ时,LED2闪烁;系统时钟切换为32MHZ时,LED1闪烁。两者所选的时钟信号不同,所以闪烁频率不同,32MHZ的系统时钟比16MHZ的时钟频率高,故LED1闪烁更快。设计性实验中按下K1时,LED1闪烁频率加倍,再按下K1时,LED1闪烁频率减半;按下K2时,LED2闪烁频率加倍,再按下K2时,LED2闪烁频率减半;如此重复循环。实现设计性实验要求。分析:设计实验只需在基础实验的基础上加两个按键扫描判断即可,由于两次按键需要实现的功能不同,故需要进行两次判断,所以在一次循环中进行两次检测,这样就可以实现两种不同的状态了。它的核心还是在于修改系统时钟。综上均符合实验要求,说明程序设计正确。六、实验思考题1.为什么指示灯闪烁的频率不一样?答:因为所选的振荡源不一样,使用不同的时钟源,执行指令周期不一样,延时时间不一样,所以指示灯的闪烁频率也不一样。2.不同系统时钟是如何转换的?切换过程中需要注意什么?答:默认情况下,复位后,32KHZ RC振荡器启用且被选为32KHZ时钟源。可以随时设置寄存器位CLKCONCMD.OSC32K,但是在16MHZ RC 振荡器作为系统时钟源之前都不起作用。当系统时钟从原来的16MHZ RC振荡器变为32MHZ晶体振荡器,如果选择了32KHZ RC振荡器,就开始校准32KHZ RC振荡器。校准期间,使用分频的32MHZ晶体振荡器。校准的结果是32KHZ RC振荡器运行在32.753KHZ。32KHZ RC振荡器校准最多可能需要2ms完成。注意:转换到32KHZ晶体振荡器之后,当从PM3醒来且32KHZ晶体振荡器使能时,振荡器需要长达500ms来稳定在正确的频率。在32KHZ晶体振荡器稳定之前,睡眠定时器,看门狗定时器和时钟丢失探测器都不能使用。3.本实验对CC2530的哪些寄存器进行了操作?都是必要的吗?可以设置比32M更高的频率吗?答:功耗模式寄存器 时钟控制命令寄存器 时钟控制状态寄存器。都是必要的。不可以,最高频率32MHZ。4. 设计性实验中如何使LED有多种不同的频率闪烁方式?答:在程序中选择不同的时钟振荡源,从而控制灯的闪烁频率。七、存在问题和解决方法1.灯闪烁的频率的变话,眼睛识别不出来这样的情况,可能是延时部分出来问题,需要延时的时间长一点,眼睛才能加以识别。2.不按照指令闪烁这样的情况,是在程序中,定义的时候出了问题,定义的时候出现了错误。训练四 SPI通信与LCD显示主从板实验一、实验内容通过本实验的学习,熟悉CC2530芯片SPI接口的配置和使用方法。 1.在CC2530从节点开发板上采用GPIO口软件模拟SPI接口的方式驱动 DM12864M,显示汉字、字母、数字等;2.在CC2530主节点开发板上采用硬件 SPI 接口的方式驱动 OCM12864,显示汉字、字母、数字等。二、实验原理1.SPI 模式 在SPI模式中,USART通过3线接口或者4线接口与外部系统通信。接口包含引脚 MOSI、MISO、SCK和SS_N。2.SSN 从选择引脚 在SPI操作模式,USART 配置为SPI从,使用4线接口,含有作为对 SPI 的输入的从选(SSN)引脚。在SSN的下降沿,SPI从有效,输入引脚 MOSI 接收数据,输出引脚 MISO 输出数据。在 SSN 的上升沿,SPI 从无效且不能接收数据。3.波特率发生器 当运行在UART模式时,内部的波特率发生器设置UART波特率,当运行在SPI模式时,内部的波特率发生器设置SPI主时钟频率。4.SPI 相关寄存器 对于每个USART,有5个寄存器(x是USART的编号,为0或者 1):UxCSR:USARTx 控制和状态; UxUCR:USARTx UART 控制; UxGCR:USARTx 通用控制; UxDBUF:USARTx 收/发数据缓冲器; UxBAUD:USARTx 波特率控制。 5.软件模拟SPI接口 LCD 显示 LCD驱动库文件提供了液晶的驱动方法,文件 LCD_12864_Driver.c 提供了软件模拟 SPI 接口相 应功能的原型函数。LCD驱动程序使用影子内存,可以将一个屏幕的信息存储在影子内存中,使用vLcdReFresh命令函数可以将影子内存中的信息复制到LCD并显示。6.硬件SPI接口LCD显示 文件 LcdControl.c 提供了硬件SPI接口驱动 OCM12864-8 LCD 相应功能的原型函数。主节点开发板与OCM12864-8LCD串口SPI 接口电路。7. 图像取模 使用抓图工具抓取一幅图像,在图像处理软件中将其处理成像素为128*64 大小的图像,保存为.bmp文件格式。三、基本实验步骤1. 主节点显示不同的图形文字 按照实验一的实验步骤,连接实验设备,启动 IAR 开发环境,创建一个新工程,将下列程序(给 出了 main 函数代码,其它代码参照前面的实验)添加到工程程序文件中,仔细分析程序功能,画出 程序流程图,设置工程选项,然后编译、软硬件仿真、下载,观察实验现象。 2. 从节点显示不同的文字界面 按照上述实验步骤,连接实验设备,启动 IAR 开发环境,创建一个新工程,将下列程序(给出 了 main 函数代码,其它代码参照前面的实验)添加到工程程序文件中,仔细分析程序功能,画出程 序流程图,设置工程选项,然后编译、软硬件仿真、下载,观察实验现象。 四、设计性实验程序流程与分析NYYN 图4-1 实验流程图分析:实验先初始化按键,LED灯,LCD。LCD初始界面显示班级、姓名、学号、专业,然后进行按键扫描,看是否有按键按下,如果有,再判断是K1还是K2按下,如果是K1按下,则对应显示LCD 显示数据加1, 如果是K2按下,对应的显示数据减1,LCD初始显示值为999。5、 实验结果与分析 图4-2主板显示基础图 4-3 主板显示基础图 图4-4 从板显示基础图 4-5 从板显示基础图 图4-6 从板显示基础图 4-7 从板显示拓展图图4-8 从板基础拓展图基础实验中开发板上显示江苏理工学院 10东通信2 周玉 10811431 通信工程, 实现开发板上显示不同的图形文字要求。分析:DM12864M是在字库的LCD显示器,可以混合显示汉字、英文字母或数字。所以只要在相应的显示程序中打印出来即可。通过按键扫描,根据按下的按键对应返回的键值来调用响应的显示函数从而控制显示的内容。 设计性实验中LCD初始界面显示10通信2 周玉 10811431 通信工程。初始值显示为 999,按下 K1 时,LCD 显示数据加 1;按下按键 K2,LCD 显示数据减 1,实现设计性实验要求。 综上均符合实验要求,说明程序设计正确。分析:设计实验跟基础实验的原理差不多,显示都是差不多的,唯一的差别就是后面的按键控制数字的加减,数字是不能直接被修改的,所以我们要找到该数字各位对应的ASCII码值,通过地址调用来实现数字的变化。六、实验思考题1.基本实验程序中“/LED1 = OFF;”语句将双斜杠去掉有何影响?问什么?答:去掉之前,灯一直亮着,再按就闪;去掉之后,按一下闪再按一下灭。2.基本实验中去除“if(GlintFlag0 = 0)”语句,结果怎样?答:如果去掉这个判断,那么在后面执行GlintFlag0=0,GlintFlag1=1时,如果立即按下按键可能无效,有延时。3.使用 DM12864M 混合显示汉字、英文字母或数字时需要注意哪些问题?答:汉字要是双字节,而且位置要对好。4. 如何在 OCM12864-8 上指定区域显示汉字?答:把汉字转换成编码,然后再指定区域刷新屏幕。七、存在问题和解决方法1.显示的汉字变成乱码答:因为LCD的电源与CC2530没有相连,会有干扰,用一根杜邦线,将两者的GND相连接,就不会出现乱码了2.LCD灯的亮灭没有主板的好由于接线的原因,LCD的显示总是没有主板的清楚,故把线接好以后,显示就正常了3.在设计实验中,如果数字是三位数,前面会多显示一个零,不能完全达到要求。每次显示前进行一次最高位判断,如果最高位为0,则显示的时候不显示它。 训练五 ADC主从板实验一、实验内容通过本实验的学习,熟悉 CC2530 芯片 ADC 模拟数字转换的配置和使用方法。1.在CC2530节点开发板上,使用ADC进行片内温度单次采样,将采集的电压值转换为温度值并显示在LCD上;2.在CC2530节点开发板上,使用ADC进行电源电压单次采样,将采集的电压值显示在 LCD上。二、实验原理1. ADC 概况 ADC 的主要特征如下:ADC转换位数可选,8 到14位;8个独立的输入通道,单端或差分输入; 参考电压可选为内部、外部单端、外部差分或 AVDD5;中断请求产生;转换结束时 DMA 触发;温度传感器输入;电池电压检测。 2. ADC 输入 P0端口引脚上的信号可以用作ADC输入。在后面的描述中这些端口引脚将被称为 AIN0AIN7 引脚。输入引脚AIN0AIN7连接到ADC。 3. ADC 转换序列 ADC可以执行序列转换,并且将结果移动到存储器(通过 DMA),而不需要任何 CPU 干预。 ADCCON2.SCH寄存器位用于定义来自于ADC输入的ADC转换序列。4. ADC 单次转换 除了上述转换序列,ADC可以通过编程从任何通道执行单次转换。通过写寄存器ADCCON3 来触发一个单次转换。除非一个转换序列正在进行中,否则立即开始转换,在这种情况下,正在进行的序列转换一完成就开始执行单次转换。 5. ADC 运行模式 ADC具有三个控制寄存器:ADCCON1、ADCCON2和ADCCON3。这些寄存器用于配置 ADC 和报告状态。 ADCCON3寄存器控制单次转换的通道号码,基准电压和抽取率。6. ADC 转换结果 数字转换结果以2的补码形式表示。对于单端配置,结果总是为正。这是因为这个结果是 GND 和输入信号的差值,这个输入信号总是为有符号的正(Vconv=VinpVinn,其中 Vinn=0V)。当输入信 号等于选择的电压基准VREF时,达到最大值。7. ADC 基准电压 模数转换的正基准电压是可选的,可以是一个内部产生的电压、AVDD5 引脚上的电压、应用 在 AIN7 输入引脚的外部电压,或应用在 AIN6AIN7 输入上的差分电压。 8. ADC 转换时间 ADC 只能运行在 32MHz 晶体振荡器,用户不能使用划分的系统时钟。4MHz的实际ADC采样频率是通过固定的内部分频器产生的。执行一个转换所需的时间取决于选择的抽取率。在一般情况下,转换时间由下式给定: Tconv=(抽取率+16)025s。9. ADC 中断 当通过写 ADCCON3 而触发的一个单次转换完成时,ADC 将产生一个中断。而当完成一个序 列转换时不会产生中断。 10. ADC DMA 触发 每完成一个序列转换,ADC 都将产生一个 DMA 触发。当完成一个单个转换时,不产生 DMA 触发。对于 ADCCON2.SCH 中头 8 位可能的设置所定义的 8 个通道 AIN0AIN7,每一个通道都有一 个 DMA 触发。当通道转换里一个新的采样准备好时,DMA 触发有效。另外还有一个DMA触发ADC_CHALL,当ADC转换序列的任何一个通道的新数据准备好时,ADC_CHALL 有效。11. ADC 寄存器三、基本实验步骤1. 主节点采集片内温度 按照实验一的实验步骤,连接实验设备,启动 IAR 开发环境,创建一个新工程,将下列程序(给 出了 main 函数代码,其它代码参照实验三)添加到工程程序文件中,仔细分析程序功能,画出程序 流程图,设置工程选项,然后编译、软硬件仿真、下载,观察实验现象。 2. 从节点采集片内温度 按照实验一的实验步骤,连接实验设备,启动 IAR 开发环境,创建一个新工程,将下列程序(给 出了 main 函数代码,其它代码参照实验三)添加到工程程序文件中,仔细分析程序功能,画出程序 流程图,设置工程选项,然后编译、软硬件仿真、下载,观察实验现象。 四、设计性实验程序流程与分析开始系统时钟初始化LED初始化,数模端口初始化串口初始化配置ADC(参考电压1.15V,12位分辨率)启动ADC转换i=0i64转换完成?计算平均温度值i+取1/3电压平均值显示取1/3电压平均值*3显示将温度值通过串口送到PCNN图5-1 实验流程图流程图分析:程序开始首先执行初始化,包括系统初始化,LED初始化,数模端口初始化和串口初始化。然后定义i=0,,判断i是否小于64,如果是则配置ADC(参考电压1.15V,12位分辨率),然后启动ADC转换,如果转换完成,则计算平均温度值,i+循环计算,取1/3电压显示,取1/3电压乘以3显示,最后将温度通过串口0传送到PC上。5、 实验结果与分析 图 5-2 主板基础显示 图5-3 主板基础显示温度 图 5-4 主板拓展显示 图5-5 从板基本显示 图 5-2 从板拓展显示 图5-3 从板基础显示采集基础实验中开发板上显示内部温度22.5摄氏度,实现开发板采集片内温度要求。分析:片内温度通过连接温度传感器,使能温度传感器,通过四次循环取出分辨率为12的端口温度进行相加,然后断开温度传感器,使能温度传感器无效,取平均值即可得到端口温度,根据公式temperature=(avgTemp-(1480-4.5*25)/4.5,得到片内温度并输出显示而来。设计性实验中开发板上显示:内部温度:22.5摄氏度 1/3 电压:1.150V 电源电压:3.449V 实现设计性实验要求分析:这三个值的获得途径:连接温度传感器,使能温度传感器,四次循环取出分辨率为12的端口温度进行相加,然后断开温度传感器,使能温度传感器无效,取平均值即可得到端口温度,根据公式temperature=(avgTemp-(1480-4.5*25)/4.5,得到片内温度并输出显示。再连接温度传感器,使能温度传感器,8次循环取端口电压,断开温度传感器,使能温度传感器无效,去端口电压平均值,根据公式voltagevalue=(1.15/8191)*volt,电源电压为voltagevalue =voltagevalue*3,得到两个电压平均值并输出显示。综上均符合实验要求,所以程序设计运行正确。六、实验思考题1.如果采用电压采集识别按键,则如何实现?答:需要构造按键采集电路。2.如何将片内温度传感器 A/D 转换的结果转换成温度?答:CC2530内部基准电压1.15V。25摄氏度时,12bit采集结果为1480,温度系数4.5/摄氏度, 通过计算得到,若有温度A/D值X,则温度T=(X-(1480-4.5*25)/4.5。3.如何实现显示采集数据?答:将数据转化为一位一位ASCII码。4.如何选取参考电压?答:有寄存器专门配置,结合外部输入电压的高低。(注意:不能超过参考电压)5.差分输入是什么意思?能否作为比较器使用?答:将两路信号求差作为AD信号的输入。能作为比较器使用。6.如果 CC2530 需要采集一个模拟传感器的数据,实现过程中需要注意哪些问题?答:要注意电压范围不能超过参考电压。七、存在问题和解决方法1.基础实验LCD显示的最上面一排CC2530 中的CC总是不能正确显示,总是重复第三位和第四位的内容,显示成252530。答:这是由于上一屏没有够用显示,占了这一屏的字节,造成了对这一屏幕数据的挤压,在显示时才会发生错误,只需将初始界面的符号去掉,在后面单独写这行的时候加上即可,这样就不会造成挤压而使最前面的CC2530前两个字符重复了。训练六 UART串行通信实验一、实验内容通过本实验的学习,熟悉 CC2530 芯片硬件 USART0 串行总线接口 UART 模式的配置和使用方法1. 在 CC2530 节点开发板上,UART 串口发送数据; 2. 在 CC2530 节点开发板上,UART 串口接收 PC 数据控制 LED等设备对象。 3. 在 CC2530 节点开发板上,UART 串口接收 PC 数据并回传。二、实验原理1. UART 模式 UART模式提供异步串行接口.在UART模式中,接口使用2线或者含有 RXD、TXD、可选的RTS和CTS的4线。UART模式提供全双工异步传送,接收器中的位同步不影响发送功能。2. UART 发送 当USART收/发数据缓冲器UxDBUF写入数据时,UART发送启动。该字节发送到输出引脚TXDx。寄存器UxDBUF是双缓冲器。当字节传送开始时,UxCSR.ACTIVE位设置为1,而当字节传送结束时,UxCSR.ACTIVE位清0.3. UART 接收 当1写入UxCSR.RE位时,在UART上数据接收就开始了,然后UART会在输入引脚RXDx中寻找有效起始位,并且设置UxCSR.ACTIVE位为1。当检测出有效起始位时,收到的字节就传入接收寄存器。UxCSR.RX_BYTE 位设置为1。该操作完成时,产生接收中断。同时,UxCSR.ACTIVE位为0。4. UART 硬件流控制 当UxUCR.FLOW设置为1,硬件流控制使能。然后,当接收寄存器空而且接收使能时,RTS输出变低。在CTS输入变低之前,不会发生字节传送。5. UART 字符格式 如果寄存器UxUCR 中的BIT9和PARITY位设置为1,那么奇偶校验产生而且检测使能。6. UART 相关寄存器 对于每个 USART,有5个寄存器(x是USART的编号,为0或者1)UxCSR:USARTx 控制和状态; UxUCR:USARTx UART控制;UxGCR:USARTx 通用控制;UxDBUF:USARTx收/发数据缓冲器;UxBAUD:USARTx 波特率控制。设置UART接口需要操作6个寄存器:PERCFG(外部设备控制寄存器),UXCSR(控制和状态寄存器),UXGCR(通用控制寄存器),UxDBUF(收/发数据缓冲器),UxUCR(UART控制寄存器)。7. UART 硬件接口 本实验使用CC2530的USART0串行总线接口异步UART模式。根据外部设备I/O接脚映射表可以得到与CC2530引脚连接见PDF文档三、基本实验步骤1. 异步串口0发送数据 按照实验一的实验步骤,连接实验设备,启动IAR 开发环境创建一个新工程,将下列程序(给出了主节点部分主要函数及 main 函数代码,其它代码及从节点代码参照前述实验)添加到工程程序文件中,仔细分析程序功能,画出程序流程图,设置工程选项,然后编译、软硬件仿真,下载,观察实验现象。2.异步串口0接收数据 按照实验一的实验步骤,连接实验设备,启动IAR 开发环境创建一个新工程,将下列程序(给出了主节点部分主要函数及 main 函数代码,其它代码及从节点代码参照前述实验)添加到工程程序文件中,仔细分析程序功能,画出程序流程图,设置工程选项,然后编译、软硬件仿真,下载,观察实验现象。四、设计性实验程序流程与分析图6-1 串口接收数据显示回传实验分析:实验先进行LCD,串口的初始化,程序开始执行,首先显示初始界面,串口都接好后,打开串口调试助手,设置好参数,并打开串口,接着在串口调试助手里面发送数据,CC2530接收到数据后在LCD上显示同时回送到PC机上,可以在串口调试助手里看到回送的数据。五、实验结果与分析 图 6-2 实验二 图6-3 实验一的结果 图 6-4 设计 图6-5 实验二 图6-5 设计实验结果:串口调试助手上显示“江苏理工学院电气信息工程学院”,且在串口输入“10”LED1熄灭,输入“11”LED1点亮,输入“20”LED2熄灭,输入“21”LED2点亮。分析:在程序中,while循环里,接收数据小于两个时,先将接收数据寄放到数据缓冲区,RT标志位为2,表明数据接收完毕。将RT标志位置1,准备接收新的指令,并将接收内容清零。USART0是串行通信接口,当USART收/发数据缓冲器UxDBUF写入数据时,UART发送启动。实验结果:实验结果图如图6-4,6-5所示,通过串口调试助手发送消息到LCD上显示,LCD接收显示并通过串口回传给PC机。分析:设计实验事实上就是将发送数据和回传数据结合到了一起,原理和基础实验是一样的,以“判断是否收到#”来结束一段字符的发送。六、实验思考题1.同步通信与异步通信主要区别是什么?答:(1).同步通信要求接收端时钟频率和发送端时钟频率一致,发送端发送连续的比特流;异步通信时不要求接收端时钟和发送端时钟同步,发送端发送完一个字节后,可经过任意长的时间间隔再发送下一个字节。(2).同步通信效率高;异步通信效率较低。(3).同步通信较复杂,双方时钟的允许误差较小;异步通信简单,双方时钟可允许一定误差。(4).同步通信可用于点对多点;异步通信只适用于点对点。2.异步通信具体数据格式包括哪些?答:起始位:起始位必须是持续一个比特时间的逻辑“0”电平,标志传送一个字符的开始。数据位:数据位为5-8位,它紧跟在起始位之后,是被传送字符的有效数据位。传送时先传送字符的低位,后传送字符的高位。数据位究竟是几位,可由硬件或软件来设定。 奇偶位:奇偶校验位仅占一位,用于进行奇或偶校验,也可以不设奇偶位。 停止位:停止位为1位、1.5位或2位,可有软件设定。它一定是逻辑“1”电平,标志着传送一个字符的结束。 空闲位:空闲位表示线路处于空闲状态,此时线路上为逻辑“1”电平。空闲位可以没有,此时异步传送的效率为最高。3.如何实现串口数据透明回传?答:只要传送的第一个字节不是0XFE,0XFD和0XFC,则自动进入数据透明传输方式。Coordinator从串口收到的数据会自动发给所有的节点,某个节点从串口收到的数据会自动发送给Coordinator。任意一个节点与Coordinator之间,类似于电缆直接连接。4.程序查询与中断各自有何特点,如何根据应用场合选取?答:程序查询方式是主机与外设间进行信息交换的最简单方式,输入输出完全通过CPU执行程序来完成。这是一种最简单最经济的输入/输出方式,它只需要很少的硬件,因此大多数机器尤其是在微小型机中,常用程序查询方式来实现低速设备的输入/输出管理。中断方式无需等待查询,外设在做好输入输出准备时,向主机发中断请求,主机接到请求后就暂时中止原来执行的程序,转去执行中断服务程序对外部请求进行处理。七、存在问题和解决方法1.发送汉字时第二次接收会显示乱码。因为汉字占两个字节,而#占一个字节,发送汉字时只需在结尾加一个空格即可。2.串口助手上接收到的字符串上是乱码,经过仔细检查发现是没有将串口助手上的波特率设置为38400。训练七 定时器1实验一、实验内容通过本实验的学习,熟悉 CC2530 芯片定时器 1 相关寄存器的配置和使用方法。1.在 CC2530 节点开发板上,定时器 1 自由重装模式、溢出查询控制 LED 闪烁; 2.在 CC2530 节点开发板上,定时器 1 工作于正计数/倒计数模式,产生 0.1s 定时,按键控制秒表启动、停止、复位,LCD 显示秒表信息; 3.在 CC2530 节点开发板上,启用定时器 1,产生 1s 定时,按键控制或PC 串口校准时间,时钟信息 LCD 显示并能串口发送给 PC;4.在 CC2530 节点开发板上,定时器 1 输入捕获模式/输出比较模式控制LED闪烁。二、实验原理1. 定时器 1(16 位定时器) 定时器 1 具有下列特点: 5个捕获/比较通道; 上升沿、下降沿或任何边沿输入捕获; 设置、清除或切换输出比较; 自由运行、模或正计数/倒计数操作; 1、8、32 或 128 时钟分频; 在每个捕获/比较和最终计数上产生中断请求; DMA 触发功能。 2. 16 位计数器 定时器1包含一个 16 位计数器,该计数器在每个有效时钟边沿递增或递减。有效时钟边沿周期由寄存器位 CLKCONCMD.TICKSPD 定义,它设置全局系统时钟划分,提供了一个从 0.25MHz 到32MHz 的变量时钟 tick 频率(使用 32MHz 晶体振荡器作为时钟源)。这在定时器 1 中由 T1CTL.DIV 给定的分频值进一步划分。这个分频值可以为 1、8、32 或 128。因此当使用 32MHz 晶体振荡器作为系统时钟源时,定时器 1 使用的最低时钟频率为 1953.125Hz,最高时钟频率为 32MHz。当使用 16MHz RC 振荡器作为系统时钟源时,定时器 1 使用的最高时钟频率为 16MHz。3. 定时器 1 操作控制寄存器 T1CTL 通常用来控制定时器 1 操作。状态寄存器 T1STAT 保持中断标志。下面将描述不同的定时操作模式。 4. 自由运行模式 在自由运行操作模式,计数器从 0x0000 开始,并且在每一个有效时钟边沿增加 1。如图 3-7-1 所示,当计数器到达 0xFFFF(溢出)时,计数器载入 0x0000 继续进行递增。当达到最终计数值 0xFFFF,T1STAT.OVFIF 溢出标志置 1;如果定时器1中断屏蔽位 TIMIF.OVFIM 被置位(默认置位),则 IRCON.T1IF 中断标志置 1;如果总中断使能 IEN0.EA 和定时器 1 中断使能 IEN1.T1IE 被设置有效, 将产生一个中断请求。自由运行模式用于产生独立的时间间隔和输出信号频率。 5. 模模式 当定时器运行于模模式,16 位计数器从 0x0000 开始,并且在每一个有效时钟边沿增加 1。当计数器达到保存在寄存器 T1CC0H:T1CC0L 里的最终计数值 T1CC0 时,计数器复位到 0x0000 继续进行递增。如果定时器从一个大于 T1CC0 的值开始,当到达最终计数值(0xFFFF)时,T1STAT.OVFIF 溢出标志置 1;如果定时器 1 中断屏蔽位 TIMIF.OVFIM 被置位(默认置位),则 IRCON.T1IF 中断标志置 1;如果总中断使能 IEN0.EA 和定时器 1 中断使能 IEN1.T1IE 被设置有效,将产生一个中断请求。模模式下,若要周期地产生中断,需要 T1CCTL0 使能通道 0 比较模式及中断使能。模模式可以用在周期不必是 0xFFFF 的应用中。 6. 正计数/倒计数模式在正计数/倒计数定时器模式,如图 3-7-3 所示,计数器反复从 0x0000 开始相加直到达到保存在 T1CC0H:T1CC0L 里的值,然后计数器倒计数直到 0x0000。当要求带有周期的对称输出脉冲,而不是 0xFFFF 时,使用这种定时器模式,因而允许中心对齐 PWM 输出应用的实现。在这种模式下,当计数器值达到 0x0000 时,T1STAT.OVFIF 溢出标志置 1;如果定时器 1 中断屏蔽位 TIMIF.OVFIM 被置位(默认置位),则 IRCON.T1IF 中断标志置 1;如果总中断使能 IEN0.EA 和定时器 1 中断使能 IEN1.T1IE 被设置有效,将产生一个中断请求。7. 通道模式控制 通道模式在每个通道对应的控制和状态寄存器 T1CCTLn 设置。设置包括输入捕获和输出比较模式。8. 输入捕获模式 当一个通道被配置为输入捕获通道,和该通道相连的 I/O 引脚配置为输入。定时器启动后,输入引脚上的上升沿、下降沿或任何边沿都将触发一个捕获,即 16 位计数器的内容捕获到相关的捕获寄存器中。因此,该定时器能捕获一个外部事件发生的时间。9. 输出比较模式 在输出比较模式,和该通道相连的 I/O 引脚配置为输出。定时器启动后,对计数器里的内容和通道比较寄存器 T1CCnH:T1CCnL 的内容进行比较。如果比较寄存器和计数器的内容一样,根据由T1CCTLn.CMP 设置的比较输出模式,进行输出引脚置 1、复位或者切换。写入比较寄存器 T1CCnL是被缓冲的,这样在相应的高位寄存器 T1CCnH 写入之前,写给 T1CCnL 的值将不起作用。在计数器值为 0x00 之前,写入比较寄存器 T1CCnH:T1CCnL 对于输出比较值都不起作用。 10. 定时器 1 中断 为定时器 1 分配了一个中断向量。当下面任何一个定时器事件发生时,将产生一个中断请求: 计数器达到最终计数值(溢出或者在 0 附近); 输入捕获事件; 输出比较事件。 11. 定时器 1 定时相关寄存器定时器 1 定时相关寄存器包括:T1CNTH(定时器 1 计数高位寄存器)、T1CNTL(定时器 1计数低位寄存器)、 T1CTL(定时器 1 控制寄存器)、T1STAT(定时器 1 状态寄存器)、T1CCTLn(定时器1 通道 n 捕获/比较控制寄存器)、T1STAT(定时器1 通道 n 捕获/比较值低位寄存器),TIMIF(定时器 1/3/4 中断屏蔽/标志寄存器)。三、基本实验步骤1. 间隔一段时间 LED 闪烁 按照实验一的实验步骤,连接实验设备,启动 IAR 开发环境,创建一个新工程,将下列程序(给出了主节点部分主要函数及 main 函数代码,其它代码及从节点代码参照前述实验添加到工程程序文件中,仔细分析程序功能,画出程序流程图,设置工程选项,然后编译、软硬件仿真、下载,观察实验现象。 2秒表按照实验一的实验步骤,连接实验设备,启动 IAR 开发环境,创建一个新工程,将下列程序(给出了主节点部分主要函数及 main 函数代码,其它代码及从节点代码参照前述实验)添加到工程程序文件中,仔细分析程序功能,画出程序流程图,设置工程选项,然后编译、软硬件仿真、下载,观察实验现象。 3. 定时器 1 输出比较模式控制 LED 闪烁 按照实验一的实验步骤,连接实验设备,启动 IAR 开发环境,创建一个新工程,将下列程序(给出了主节点部分主要函数及 main 函数代码,其它代码及从节点代码参照前述实验)添加到工程程序文件中,仔细分析程序功能,画出程序流程图,设置工程选项,然后编译、软硬件仿真、下载,观察实验现象。4. 定时器 1 输入比较模式控制 LED 闪烁按照实验一的实验步骤,连接实验设备,启动 IAR 开发环境,创建一个新工程,将下列程序(给出了主节点部分主要函数及 main 函数代码,其它代码及从节点代码参照前述实验)添加到工程程序文件中,仔细分析程序功能,画出程序流程图,设置工程选项,然后编译、软硬件仿真、下载,观 察实验现象。四、设计性实验程序流程与分析图7-1 实验流程图流程图分析:程序先执行初始化部分,包括LED,按键,LCD和串口0初始化,设置系统时钟频率为32MHZ,显示界面00:00:00,初始化定时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 低压实操考试问答题目及答案
- 铁匠考试题及答案
- 天津网约车考试题库及答案
- 2025年高级钳工基本试题及答案
- 2025年高级财务会计综合练习题及答案
- 中国外汇交易管理办法
- 课程审核制度管理办法
- 化纤绿色制造技术-洞察及研究
- 上海疫情应急管理办法
- 儿童玩具偏好分析-洞察及研究
- 危险源登记检查及记录表
- 科研诚信课件
- 2021版特种设备目录
- 中南大学2021年《结构力学(下)》期末考试试卷
- Q∕SY 01747-2020 热力采油过热蒸汽锅炉运行规程
- 高等教育心理学专业知识考试题库与答案
- 1.1地球和地球仪-2022-2023学年新人教版地理七年级上册一课一练(Word版含答案)
- 建筑施工岗位安全风险明白卡
- (完整版)法理学试题库附答案
- 代理记账电话销售技巧PPT课件
- 特钢锻件项目商业计划书范文参考
评论
0/150
提交评论