无线通信技术综合训练报告.docx
- 文档编号:11075493
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:72
- 大小:5.24MB
无线通信技术综合训练报告.docx
《无线通信技术综合训练报告.docx》由会员分享,可在线阅读,更多相关《无线通信技术综合训练报告.docx(72页珍藏版)》请在冰豆网上搜索。
无线通信技术综合训练报告
无线通信技术综合训练报告
无线通信技术综合训练报告
学院名称:
电信学院
专业:
通信工程
班级:
姓名:
学号:
指导老师:
2013年11月
训练一新建一个简单的工程项目
一、实验内容
本实验要求闪烁开发板上的用户指示灯LED1
二、实验原理
由开发板原理图可知,对于主节点,定义LED1为CC2530的P1.0口控制,对于从节点,定义LED1为CC2530的P1.1口控制。
相应控制口为高电平时,LED点亮,为低电平时,LED熄灭。
IAREmbeddedWordbench主要完成系统的软件开发和调试。
它提供一整套的程序编写,维护,编译,调试环境,将汇编语言和C语言程序编译成HEX可执行输出文件,并能将程序下载到目标CC2530上运行调试。
用户系统的软件部分可以由IAR建立的工程文件管理,工程文件一般包含以下几种文件:
1.源程序文件:
C语言或汇编语言文(*.C或*.ASM)
2.头文件(*.H)
3.库文件(*.LIB,*OBJ);
三、基本实验步骤
第一步:
连接实验设备,将USB的电缆线接到PC机USB端口上,实验板电源指示灯亮。
第二步:
启动IAR开发环境,打开“开始”菜单->“程序”->IARSystem->IAREmbeddedWordbenchfor80517.60->IAREmbeddedWordbench
第三步:
创建工程
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位口,端口0~2,定义为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的取值范围是0~65535。
能运行,因为取的数要先减去65535。
2.基本实验2中“Keyvalue=0”语句的作用是什么?
如果删除对实验结果有什么影响
答:
相应按键值清零,默认为I/O口删除后对程序没什么影响。
3.本实验对CC2530的哪些寄存器进行了操作?
都是必要的吗?
答:
P0和P1端口寄存器。
都是必要的。
4.设计性实验中如何使LED有多种不同的闪烁方式?
答:
改变闪烁频率,改变调用延时时间。
七、存在问题和解决方法
1.灯的按键控制要按记下才能灭掉
初步估计是按键不灵,进行各种添加和修改程序都没有可见的用处
训练三系统主时钟源的选择实验
一、实验内容
通过本实验的学习,熟悉CC2530芯片内部系统时钟或主时钟的配置和使用方法。
通过配置开发板上CC2530芯片的主时钟频率,从而改变指示灯闪烁的频率
二、实验原理
1.振荡器
设备中有两个高频振荡器:
32MHZ晶体振荡器;16MHZRC振荡器。
两个低频振荡器:
32KHZ晶体振荡器;32KHZRC振荡器。
32KHZ晶体振荡器被设计为工作在32.768KHZ,并为要求精确时间的系统提供一个稳定的时钟信号。
2.系统时钟
系统时钟由选定的系统时钟源32MHZ晶体振荡器或者16MHZRC振荡器而来。
CLKCONCMD.OSC位选择系统时钟源。
请注意,使用RF收发器,必须选择32MHZ晶体振荡器且必须稳定。
3.32KHZ晶振
设备里有2个32KHZ振荡器作为32KHZ时钟的时钟源:
32KHZ晶体振荡器;
32KHZRC振荡器。
默认情况下,复位后,32KHZRC振荡器启用且被选为32KHZ时钟源。
可以随时设置寄存器CLKCONCMD.OSC32K,但是在16MHZRC振荡器作为系统时钟源之前都不起作用。
4.振荡器和时钟寄存器
在PMO功耗模式下,可配置32MHZ晶体振荡器或者16MHZRC振荡器作为系统时钟,设置系统时钟需要操作两个寄存器:
SLEEPCMD和CLKCONCMD.
三、基本实验步骤
按照实验一的实验步骤,连接实验设备,启动IAR开发环境,创建一个新工程,将程序添加到工程程序文件中,仔细分析程序功能,画出程序流程图,设置工程选项,然后编译,软硬件仿真,下载,观察实验现象。
4、设计性实验程序流程与分析
流程图分析:
程序开始后先进行初始化,初始化模块包括LED和按键初始化。
然后设置控制变量X并调用按键扫描函数,按键扫描值为按键扫描返回值。
判断按键值是否为1,等于1的时候将变量X取反并判断其值是否为0,等于0的时候设置系统时钟为16MHZ,此时指示灯1闪烁并延时,否则设置系统时钟为32MHZ,此时指示灯1闪烁延时并返回按键扫描函数。
当按键值为2时,此时指示灯2闪烁,否则返回按键扫描函数。
图3-1实验流程图
五、实验结果与分析
基础实验中开发板上指示灯闪烁频率不一样,实现指示灯自动更新闪烁频率要求。
分析:
当系统时钟为16MHZ时,LED2闪烁;系统时钟切换为32MHZ时,LED1闪烁。
两者所选的时钟信号不同,所以闪烁频率不同,32MHZ的系统时钟比16MHZ的时钟频率高,故LED1闪烁更快。
设计性实验中按下K1时,LED1闪烁频率加倍,再按下K1时,LED1闪烁频率减半;按下K2时,LED2闪烁频率加倍,再按下K2时,LED2闪烁频率减半;如此重复循环。
实现设计性实验要求。
分析:
设计实验只需在基础实验的基础上加两个按键扫描判断即可,由于两次按键需要实现的功能不同,故需要进行两次判断,所以在一次循环中进行两次检测,这样就可以实现两种不同的状态了。
它的核心还是在于修改系统时钟。
综上均符合实验要求,说明程序设计正确。
六、实验思考题
1.为什么指示灯闪烁的频率不一样?
答:
因为所选的振荡源不一样,使用不同的时钟源,执行指令周期不一样,延时时间不一样,所以指示灯的闪烁频率也不一样。
2.不同系统时钟是如何转换的?
切换过程中需要注意什么?
答:
默认情况下,复位后,32KHZRC振荡器启用且被选为32KHZ时钟源。
可以随时设置寄存器位CLKCONCMD.OSC32K,但是在16MHZRC振荡器作为系统时钟源之前都不起作用。
当系统时钟从原来的16MHZRC振荡器变为32MHZ晶体振荡器,如果选择了32KHZRC振荡器,就开始校准32KHZRC振荡器。
校准期间,使用分频的32MHZ晶体振荡器。
校准的结果是32KHZRC振荡器运行在32.753KHZ。
32KHZRC振荡器校准最多可能需要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:
USARTxUART控制;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-8LCD相应功能的原型函数。
主节点开发板与OCM12864-8LCD串口SPI接口电路。
7.图像取模
使用抓图工具抓取一幅图像,在图像处理软件中将其处理成像素为128*64大小的图像,保存为.bmp文件格式。
三、基本实验步骤
1.主节点显示不同的图形文字
按照实验一的实验步骤,连接实验设备,启动IAR开发环境,创建一个新工程,将下列程序(给出了main函数代码,其它代码参照前面的实验)添加到工程程序文件中,仔细分析程序功能,画出程序流程图,设置工程选项,然后编译、软硬件仿真、下载,观察实验现象。
2.从节点显示不同的文字界面
按照上述实验步骤,连接实验设备,启动IAR开发环境,创建一个新工程,将下列程序(给出了main函数代码,其它代码参照前面的实验)添加到工程程序文件中,仔细分析程序功能,画出程序流程图,设置工程选项,然后编译、软硬件仿真、下载,观察实验现象。
四、设计性实验程序流程与分析
图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(GlintFlag[0]==0)”语句,结果怎样?
答:
如果去掉这个判断,那么在后面执行GlintFlag[0]=0,GlintFlag[1]=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输入。
在后面的描述中这些端口引脚将被称为AIN0—AIN7引脚。
输入引脚AIN0—AIN7连接到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=Vinp—Vinn,其中Vinn=0V)。
当输入信号等于选择的电压基准VREF时,达到最大值。
7.ADC基准电压
模数转换的正基准电压是可选的,可以是一个内部产生的电压、AVDD5引脚上的电压、应用在AIN7输入引脚的外部电压,或应用在AIN6—AIN7输入上的差分电压。
8.ADC转换时间
ADC只能运行在32MHz晶体振荡器,用户不能使用划分的系统时钟。
4MHz的实际ADC采样频率是通过固定的内部分频器产生的。
执行一个转换所需的时间取决于选择的抽取率。
在一般情况下,转换时间由下式给定:
Tconv=(抽取率+16)×025μs。
9.ADC中断
当通过写ADCCON3而触发的一个单次转换完成时,ADC将产生一个中断。
而当完成一个序列转换时不会产生中断。
10.ADCDMA触发
每完成一个序列转换,ADC都将产生一个DMA触发。
当完成一个单个转换时,不产生DMA触发。
对于ADCCON2.SCH中头8位可能的设置所定义的8个通道AIN0—AIN7,每一个通道都有一个DMA触发。
当通道转换里一个新的采样准备好时,DMA触发有效。
另外还有一个DMA触发ADC_CHALL,当ADC转换序列的任何一个通道的新数据准备好时,ADC_CHALL有效。
11.ADC寄存器
三、基本实验步骤
1.主节点采集片内温度
按照实验一的实验步骤,连接实验设备,启动IAR开发环境,创建一个新工程,将下列程序(给出了main函数代码,其它代码参照实验三)添加到工程程序文件中,仔细分析程序功能,画出程序流程图,设置工程选项,然后编译、软硬件仿真、下载,观察实验现象。
2.从节点采集片内温度
按照实验一的实验步骤,连接实验设备,启动IAR开发环境,创建一个新工程,将下列程序(给出了main函数代码,其它代码参照实验三)添加到工程程序文件中,仔细分析程序功能,画出程序流程图,设置工程选项,然后编译、软硬件仿真、下载,观察实验现象。
四、设计性实验程序流程与分析
图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.如
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 无线通信 技术 综合 训练 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)