无线数据采集模块实验报告

时间:2019-05-14 14:43:42下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《无线数据采集模块实验报告》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《无线数据采集模块实验报告》。

第一篇:无线数据采集模块实验报告

无线数据采集模块

实验报告

姓名:张兆伟

班级:13 班

学号:2015042130 日期:2016年8月25日

无线数据采集模块实验报告

一、实验背景

数据是指用来描述客观事物的数字、字母和符号等等。数据传输在人类活动中的重要性是不言而喻的。它是计算机与外部物理世界连接的桥梁。数据采集,或称数据获取,既利用一种装置,从系统外部采集数据输入到系统内部。

随着计算机、通信和网络技术的飞速发展,无线传感器网络应运而生。传感测试技术正朝着多功能化、微型化、智能化、网络化、无线化的方向发展。工业无线网络是从新兴的无线传感器网络发展而来的,具有低成本、低能耗、高度灵活性、扩展性强等特点,已经成为继现场总线技术后的又一个研究热点。无线数据采集既要在复杂,恶劣的现场环境下将物理量完整的进行采集,更要将采集到的数据传给远端的主控室。其主要应用领域包括:工业遥控、遥测;石油钻井张力无线监测;短距离无线数据传输;安防设备无线监控;无线RS485、无线PLC;城市管网压力、温度监测;电力线无线报警等。

二、实验过程

无线数据采集既要在复杂,恶劣的现场环境下将物理量完整的进行采集,更要讲采集到的数据传给远端的主控室。DTD110系列无线数传模组广泛应用于无线数传领域,典型应用包括遥控、遥感、遥测系统中的数据采集、检测、报警、过程控制等环节。

DTD110系列无线PLC有4路开关量的传输,4路模拟量的传输,距离100米~3000米均可。即可以实现点对点通信,也可以实现点对多点通信,不需要编写程序,不需要布线,一般电工就可以调试使用。对于工业现场的遥测遥控实施简单、方便、便宜。

1、适用范围

无线数据采集模块具有数据采集、控制、GPRS无线远程通信等功能。采用低功耗设计。该产品可接入各种串口仪表、各种模拟信号输出的变送器、各种脉冲信号输出的雨量计、水表等。广泛用于水务、环保、气象、市政、环境、地质、农业、公安等行业远程监控系统。特别适用于太阳能供电方式的现场应用,可大大降低太阳能供电成本。

2、无线数据采集的特征:

多种配置应用方案,可以满足用户不同的需要;4个开关输入通道,4个开关OC门输出通道;4个模拟量输入通道,4个模拟量输出通道;可以直接代替有线的PLC设备;一体化设计,结构紧凑;多种产品规格适应于不同的传输距离;射频输出功率10mW、500mW、1000mW;GFSK调制,高效前向纠错信道编码技术;软件无线电技术保证高抗干扰能力和低误码率;ISM 频段433MHz,无需申请频点;工业标准设计,能工作于各种恶劣环境;直流9~24V供电,电流小于800mA。

3、主要功能

1)远程通信:GPRS网络和短消息双通道传输数据,支持专线、VPN专网多种组网方式。

2)通讯协议:支持UDP、TCP 协议,支持多中心数据通信。

3)模拟量输入:可采集4-20mA、0-5V等多种电流、电压信号输出模拟量。

4)开关量输入:可采集干接点、有源接点开关量输出信号,可定时采集以降低能耗。

5)脉冲量输入:可采集干接点脉冲信号,用于采集脉冲发讯水表。6)智能仪表接入:提供2路RS232/485串口,可以采集各种智能仪表,如流量计、照相机等。

7)开关量输出:提供三极管集电极信号输出。

8)电源输出:可定时为变送器供电,输出电压:同输入电源电压。9)远程控制:接受远程指令,实现控制。

10)数据显示:可支持2×8中文汉字液晶显示,配有4个数字键盘。

11)数据查询:可本机按键查询,同时支持就地串口查询,远程查询。

12)远程通信:支持RS232/485总线、GPRS、SMS等多种通信。

13)配套软件:配套提供参数设置软件。

4、主要特点

1)工作电流低:GPRS实时在线,平均工作电流<10mA。

2)数据存储容量大:本机循环存储监测数据,掉电不丢失,存储容量:4M。

3)维护方便:支持远程参数设置,远程软件升级。

4)体积小:外型尺寸145×100×65mm

5、技术指标

1)硬件配置:GPRS/GSM无线通信接口、4路AI、4路DI、6路PI、3路DO、2路串口、中文液晶显示和无显示可选、1个4按键键盘可选。

2)采集精度:模拟量采集精度:0.5%,脉冲计数误差:0.01%

3)通信协议:支持标准MODBUS协议,可嵌入其它通信协议。

4)通信接口:GPRS/GSM无线通信接口,1路串口用于维护,2路串口采集仪表,232/485可选。

5)通信速率:300~19200 bit/s

6)工作环境:温度:-25~+70℃、湿度:≤95%、无腐蚀气体、无导电尘埃、无爆炸环境。

7)安装方式:一般采用导轨式安装,特殊场合,可将控制器固定在安装底板上。

8)供电电源:10~28VDC

6、系统功能

系统主要分三层,第一层为服务器,第二层为过渡层,由 Zigbee 协调器和 Zigbee节点构成,第三层为任务层,由 54 个监测单元和 1 个显示单元构成。系统的主要功能为:服务器有选择地查询 54 个监测单元的数据,然后根据需要将某个监测单元的数据发送到显示单元上,让其显示,中间的传输全部由 Zigbee 组网无线通讯。

其服务器主要功能:

1)开辟多个线程,每个线程主动轮询各个节点;与每个节点的通讯必须“有问 必答”,具有超时控制机制; 2)具有广播,组播配置参数功能;

3)对每个节点可以实时监测重量,温度,湿度参数。并且以曲线形式显示; 4)实时采集每个节点的参数并显示;

5)服务器采用 Windows 7 操作系统,开发工具为 C#和 SQL 数据库,最终生成安装文件。

三、实验结果

直观看到显示单元上面显示的值,什么都不选时,数码管上显示 0000,当输入节点编号,并双击鼠标选中温度、湿度或者重量时,点击确定后,数码管

会立即显示具体数值,并且给显示单元发送显示命令。

四、认识与体会

数据采集是整个工厂自动化的最前端,测试精度、速度与实现该功能的成本是几个重要因素,数据采集也正朝着这几个方向发展。高速、实时数据采集在运动控制、医疗设备、快速生产过程和变电站自动化等领域都有非常重要的应用。这些行业中,对高速数据采集的需求远远超过目前实际可以实现的程度。用户的需求促进了技术的发展和新产品的出现,随着工业发达国家和新兴崛起国家为提高其产品在全球市场的竞争力,他们更进一步希望降低包括能源消耗、原材料消耗和劳务成本。对于发达国家来讲,其劳务成本远远高于新兴崛起国家,因此特别重视促进创新和技术进步,采用新的技术手段。正是在这样竞争日益激烈的大背景下,无线数据采集技术在工业中的推广应用则受到了特殊的重视。

第二篇:地震数据采集实验报告参考材料

实验一 地震数据采集实验

红色字体部分根据具体实验参数自行修改

一 实验目的和要求

通过实验了解地震数据的采集方法和观测系统的设计方法。二 实验内容

1、了解地震数据的采集方法。

2、地震观测系统的设计。

3、实验观测结果的分析。三 实验仪器设备

Summit或Geopen数字地震仪、100hz地震检波器12串、锤击震源1个、地震采集站2个(Summit为6个)。四 实验原理

参考课本和上课老师讲的内容,自己总结。五 实验步骤

1、画出合适的观测系统(单边激发,每炮12道接收,每炮向前滚动1道,共12炮,道间距为1m),合理设置仪器参数。

2、将检波器、采集站、击发锤、炮线和仪器连接,检查仪器的相关参数。

3、用击发锤多次敲击地面,产生地震波,由检波器接收并转化为电信号,通过电缆传输到仪器中,进行重复叠加后记录到磁盘上,获得一张地震记录。

4、根据直达波时距曲线为直线、反射波时距曲线近似为双曲线的特点,在地震记录中识别出直达波、反射波和面波。

5、向前移动检波器排列,并重复2、3、4和5步骤。五 实验结果

根据不同类型地震波的特点在下图所示的地震记录中识别直达波、反射波、折射波和面波,并指出直达波、反射波和折射波时距曲线的关系。

六 实验小结体会

第三篇:数据采集计算机控制实验报告(共)

课程名称:

电气装备计算机控制技术

指导老师:

成绩:

实验名称:

数据采集计算机控制

实验类型:

同组学生姓名:

一、实验目的和要求(必填)

二、实验内容和原理(必填)

三、主要仪器设备(必填)

四、操作方法和实验步骤 五、实验数据记录和处理

六、实验结果与分析(必填)

七、讨论、心得

一、实验目的和要求 1.初步了解数据采集卡在电气装备中的应用 2.了解计算机在数据采集和处理方面的应用 3.采用 C++ Builder 对数据采集卡 PCI1202 进行编程,控制实验数据的采集数据预处理以及系统的测量模式 4.理解数据采集系统的硬件原理 5.掌握简单的数据采集软件编写方法 二、实验内容和原理 1.实验内容(1)

通过上位机控制三相异步电机的运行及停车(2)

使用数据采集系统进行各路数据采集对数据采集的结果进行记录好分析 2.实验原理 实验原理图如图所示:

电流传感器2电流传感器1电流传感器3电压传感器3电压传感器2电压传感器1三相调压器AVM3~

数据采集主电路实验接线图DB-16P数字输入DI+DI-DB-16R数字输出JNCCOM+-24VDCC220VAC

C— 主电路接触器的接点

J— 中间继电器的接点

NC— 为数字输出的常开接点

COM— 为数字输出的常开常闭公共点JCCC5~24VDC数字输入开关量信号CJ— 主电路接触器的线圈— 中间继电器的线圈注 注: 220V 三相交流电源经过各种接触器连接到三相异步电动机上,为控制电机的运行,必须控制三相交流电源的接入和断开,接触器即可实现此项功能。因为主接触器通入强电,不能直接进行操作,所以我们通过控制上位机产生的信号,继而控制中间继电器,然后由中间继电器控制主接触器。

电路中并联了三个电压传感器,串联了三个电流传感器,但是在实际过程中,由于电机的运转为空转,所以电机的线电流非常小,由电流传感器测出来的数据并不具有代表性,所以实际实验中我们连接了电压传

感器。

传感器测出来的信号经过数据采集实验箱中的调理电路处理后送入 PCI1202 中,经过 A/D 以及 D/A 转换后在上位机运行界面显示,实现基本的数据采集。采集信号的显示模式等均可通过程序进行改变。

三、主要仪器设备 一台 PC 机、交流电源、电动机、传感器板、PCI1202 控制板、继电器板、导线若干 四、操作方法与实验步骤 1.根据实验内容要求以及实验连接电路图所示,利用实验平台各装置设计硬件连接电路 2.运行 C++ Builder 软件,熟悉该软件的使用方法 3.通过软件平台进行编程、调试(可参照示例程序),实现对硬件电路的控制 4.软件调试成功后通过上位机运行系统,并对实验要求的数据进行采集和记录 五、实验数据记录和处理 1.实验例程 //---------------------------------------------------------------------------#include

#pragma

hdrstop

#include

“Unit2.h” #include

“P1202.h” #include

“P1202u.cpp” //---------------------------------------------------------------------------#pragma

package(smart_init)#pragma

resource “*.dfm” TForm1 *Form1;

Word

TotalBoards;//上面这段程序包含了相关头文件的引用(#include **.h)以及编译预处理(#pragma **)指令,同时定义了Word型变量TotalBoards,用于存储板卡总数

//---------------------------------------------------------------------------__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner){ } //---------------------------------------------------------------------------//form的构造函数,在初始化窗体的时候执行,是最先执行的一个函数

void __fastcall TForm1::FormCreate(TObject *Sender){

Word

RetValue;//定义了一个Word类型的变量RetValue

RetValue = P1202_DriverInit(&TotalBoards);//板卡驱动初始化函数 //向系统要求分配资源,测试是否已经安准成功,并且回传给安装板卡的数量

if(RetValue!= 0)//板卡程序运行成功后返回0,否则报错

{

ShowMessage(“ErrorCode:” + IntToStr(RetValue)

+ “nDriver Initial Error!”);

Button1->Enabled = False;

}

//显示错误代码

eSelect->Text = “0”;//eSelect初始化选择为第一个板卡,第一个板卡定义为0

eTotal->Text

= IntToStr(TotalBoards);//eTotal初始化为板卡数量,此时从整形变量转化为字符型变量

UpDown1->Max

=(Word)(TotalBoards-1);//规定可选择板卡数量最多为板卡总数量减一

UpDown1->Min

= 0;//规定可选择板卡数量最低为0(第一个板卡)

if(TotalBoards < 2)//如果总板卡书小于2,则不能进行选择

{

UpDown1->Enabled = False;

eSelect->Enabled = False;

} } //---------------------------------------------------------------------------//该程序为窗口初始化函数以及P1202的初始化。P1202_DriverInit()这个函数是板卡驱动初始化函数,从来检测办卡的数量,并将值赋给Word变量RetValue,如果RetValue不等于0的时候,就会用ShowMessage函数显示错误信息。其中IntToStr函数的功能是将整形变量转换为字符串显示,同时button1不使能。eSelect用于板卡选择,从0开始一直到最大值减一,0表示第一个板卡。eTotal用于记录一共有多少板卡,值为板卡总数。UpDown1->Max用于记录板卡数量的最大数。UpDown1->Min用于记录板卡数最小值。如果板卡总数小于2,则将eSelect和UpDown1均不使能,不允许选用板卡。

void __fastcall TForm1::Button2Click(TObject *Sender)//描述按钮2(Exit)的关闭功能 {

Close();//关闭窗体 } //---------------------------------------------------------------------------void __fastcall TForm1::Button1Click(TObject *Sender){

Word

Didata;//变量定义

Word

RetValue, DF, DW, AC, Dodata, k;

float DA;

wAdNumber

=(Word)StrToInt(eC0AdNums->Text);

DF

=(Word)StrToInt(eC0DaFreq->Text);

DW

=(Word)StrToInt(eC0DaWave->Text);

AC

=(Word)StrToInt(eC0AdClock->Text);//频率

DA

= StrToFloat(eC0DaAmp->Text);//振幅

XMax->Caption = IntToStr(wAdNumber);//最大量程

RetValue

= P1202_ActiveBoard((Word)StrToInt(eSelect->Text));//调用函数激活板卡,同时将

值返回给RetValue

if(RetValue!= 0)//检验返回值是否错误

{

ShowMessage((AnsiString)“Active Borad Error!”

+ “nErrorCode:” + IntToStr(RetValue));

return;

}

Dodata

=(Word)StrToInt(“0x” + eC0DO->Text);//把变量转换为16进制word类型,并且赋给Dodata

RetValue

= P1202_Do(Dodata);//传送一个16位的值到Digital Output

if(RetValue!= 0)

{

ShowMessage((AnsiString)“Digital Output Error!”

+ “nErrorCode:” + IntToStr(RetValue));

return;

}

RetValue = P1202_Di(&Didata);//从Digital Output里面读取16位数

if(RetValue!= 0)

{

ShowMessage((AnsiString)“Digital Input Error!” + “nErrorCode:” + IntToStr(RetValue));

return;

}

eC0DI->Text = IntToHex(Didata,4);

RetValue = P1202_M_FUN_1(DF, DW, DA, AC, wAdNumber, 0, fAdBuf,-10, 10);//连续平滑的A/D、D/A转换

if(RetValue!= 0)

{

ShowMessage((AnsiString)“M_Fun_1 Error!”

+ “nErrorCode:” + IntToStr(RetValue));

return;

}

DrawWaveF(-5, 5, fAdBuf, 0, wAdNumber, C0Image);//连续的监视数据

lbC0Log->Items->Clear();

for(k=0;k<=wAdNumber-1;k++)//根据采集的数据画波形

lbC0Log->Items->Add(FloatToStr(fAdBuf[k]));} //说明:这个程序用于说明点击按钮Button1的时候动作——监视、采集数据,并且根据采集到的数据画波形。

//---------------------------------------------------------------------------void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action){

P1202_DriverClose;//关闭板卡

} //说明:这个程序用于关闭板卡 //---------------------------------------------------------------------------

三相电压采集例程 //---------------------------------------------------------------------------#include #pragma hdrstop

#include “Unit2.h” #include “P1202.h” #include “P1202u.cpp” //---------------------------------------------------------------------------#pragma package(smart_init)#pragma resource “*.dfm” TForm1 *Form1;

Word

TotalBoards;//该程序段包含相关头文件的说明与编译预处理指令,同时定义Word变量TotalBoards,用于技术把卡总数 //---------------------------------------------------------------------------__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner){ } //---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender){

Word RetValue;

RetValue = P1202_DriverInit(&TotalBoards);

if(RetValue!= 0)

{

ShowMessage(“ErrorCode:” + IntToStr(RetValue)

+ “nDriver Initial Error!”);

Button1->Enabled = False;

}

eSelect->Text = “0”;

eTotal->Text

= IntToStr(TotalBoards);

UpDown1->Max

=(Word)(TotalBoards-1);

UpDown1->Min

= 0;

if(TotalBoards < 2)

{

UpDown1->Enabled = False;

eSelect->Enabled = False;

} } //改程序为窗口初始胡函数以及P1202的驱动初始化,具体注释参考上一个程序 //---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender){

Close();} //该程序用于说明Button2功能,即关闭窗体 //---------------------------------------------------------------------------void __fastcall TForm1::Button1Click(TObject *Sender){

Word

RetValue, DF, DW, AC, k;

float

DA;

wAdNumber

=(Word)StrToInt(eC0AdNums->Text);

DF

=(Word)StrToInt(eC0DaFreq->Text);

DW

=(Word)StrToInt(eC0DaWave->Text);

AC

=(Word)StrToInt(eC0AdClock->Text);

DA

= StrToFloat(eC0DaAmp->Text);

for(k=0;k<=31;k++)

{

wChannel[k]

= 0;

wConfigCode[k] = 0;

}

wChannel[0]

= 1;

wChannel[1]

= 1;wChannel[2]

= 1;//设定输出到analog output Channel1、Channel2、Channel3

XMax->Caption

= IntToStr(wAdNumber);

XMax2->Caption = XMax->Caption;

XMax3->Caption = XMax->Caption;

RetValue

= P1202_ActiveBoard((Word)StrToInt(eSelect->Text));//激活板卡,并把返回值送给RetValue

if(RetValue!= 0)

{

ShowMessage((AnsiString)“Active Borad Error!” + “nErrorCode:” + IntToStr(RetValue));

return;

}

RetValue = P1202_M_FUN_3(DF, DW, DA, AC, wAdNumber, wChannel, wConfigCode, fAdBuf,-10, 10);//连续平滑的A/D、D/A转换

if(RetValue!=0)

{

ShowMessage((AnsiString)“M_Fun_1 Error!” + “ErrorCode:” + IntToStr(RetValue));

//return;

}

DrawWaveF(-5, 5, fAdBuf, 0, wAdNumber, C0Image0);

DrawWaveF(-5, 5, fAdBuf, wAdNumber, wAdNumber, C0Image1);

DrawWaveF(-5, 5, fAdBuf, wAdNumber * 2, wAdNumber, C0Image2);//连续的监视数据

lbC0Log->Items->Clear();

for(k=0;k<=wAdNumber-1;k++)//根据采集的数据画波形

lbC0Log->Items->Add((AnsiString)“Ch0: ” + FloatToStr(fAdBuf[k]).SubString(1,5)

+ “

Ch1: ” + FloatToStr(fAdBuf[wAdNumber + k]).SubString(1,5)

+ “

Ch2: ” + FloatToStr(fAdBuf[wAdNumber * 2 + k]).SubString(1,5));} //说明:该程序功能用于说明Button1的功能以及实现,动态监视并采集数据,根据采集到的数据绘制波形。

//---------------------------------------------------------------------------void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action){

P1202_DriverClose;} //说明:该程序用于P1202的驱动关闭动作

六、注意事项 1.连线检查无误后方可上电,接线尽量用短线; 2.因为异步电机高压直接启动容易过流报警,所以可将交流输入电压调至160V左右; 3.主接触器线圈工作时需要220V交流电源(三相输出电压U、V、W为可调电压,其下方三个输出电压U’、V’、W’为不可调电压,其任意两相之间线电压均为380V,每一相对地相电压为220V,因此可选择其中一相作为主接触器电源,切不可用两相之间的线电压!)

4.数字隔离端子板配有多个继电器,这些继电器的通断由数码管显示,上位机输入的数字量可以由数码管以对应的二进制格式表示,因此应该弄清实验中使用的端子板继电器对应哪些数字为通,哪些数字为断。

5.实验中未出现过流过压报警时,电机的通断电通过上位机软件实现。

七、实验结果与分析

单相传感器

三相传感器 八、思考与分析 1.三相异步电动机的启动与调速方式有哪几种? 答:启动方式有直接启动(电机直接接额定电压启动)与降压启动(分为定子串电抗降压启动、星形三角形启动、软启动器启动以及自耦变压器启动等);调速方式有变极调速、变频调速与改变电动机转差率调速。

2.A/D 和 D/A 转换的性能指标主要有哪些? 答:主要性能直白哦有位数、量化误差、分辨率、精度、建立时间、转换时间、转换速率、环境指标等 3.电流传感器和电压传感器分别有哪几种接线方式? 电流传感器是串联,电压传感器是并联 4.简述霍尔传感器的基本原理?

答:当主回路有一个电流通过时,在导线上产生的磁场被聚磁环狙击兵感应到霍尔奇奸商,所产生的信号输出用于驱动相应的功率管,并使其导通从而后的一个补仓电流 Is,这一个电流再通过多匝绕组,产生磁场,该磁场与被测电流产生的磁场正好相反,因而补偿了原来的磁场,使霍尔器件的输出逐渐减小。当与Ip 与匝数相乘所产生的磁场磁场相等时,Is 不再增加,这是霍尔器件起到指示零磁通的作用,此时而已通过 Is 来平衡。被测电流的任何变化都会破坏这一平衡。一旦磁场失去平衡,霍尔器件有信号输出。经过功率放大后,立即就有相应的电流通过磁激绕组进行补偿,副边电流 Is 精确反映原边电流。

5.电气装备计算机控制系统主要分为哪几类? 数据采集系统、监督控制系统、直接数字控制系统、分散型控制系统 九、讨论、心得 1.本次实验的实验内容是通过计算机控制来实现对电机运行与停止的控制。本次实验用到的相关器件包括 PC 机、PCI1202 板、电压传感器、中间继电器等器件。

2.本次实验用到的传感器有电压传感器和电流传感器,由于电机运行为空载运行,电流较小,用电流传感器的意义不大,所以这次实验就只用了电压传感器 3.实验器材上有两个交流电压源的插口,上面一排为可调电源,本次实验只需调至 150-170V 左右就可以让电机运行起来,而在控制中间继电器里面的交流电源为 220V 交流电源,需要连接下面的插口才能实现。并且注意实验时不要触碰交流电源插口,非常危险。

4.实验连接线路时尽量用短线。因为是强电实验,连接线路过程中一定要断电连接,用的线路不能是裸露导体的导线,必须是将导体放在绝缘体之内的导线。

5.实验硬件电路中,对于控制电动机的启动并不是一步完成的,因为电动机工作在 380V 线电压的高压电路中,而控制计算机实际工作的电压远小于这个值,两者不能直接连接,应该逐级降压,DB-16P 与数字量开关信号相连,连接在 5-24VDC 的低压电路中,DB-16R 把输出的信号与继电器相连,工作在 24VDC电压下,最终继电器吸合后使电动机线路上的继电器工作,电机才得以转动。

6.异步电机的连接方法为三角-星型启动,可以有效降低启动电压。虽然如此,实验开始时仍然要逐级升压启动,才可以使电机运行平缓。

7.三相传感器的结果中可以看到三相频率基本一致,相位差大约差 120°,符合预期结果。

8.通过本次实验,初步了解数据采集卡在电气装备中的应用;了解计算机在数据采集和处理方面的应用;理解硬件的原理,为之后的实验打下了基础,对 C++ Builder 软件有了一定了解,为编程打下基础。

第四篇:无线传感网实验报告

Central South University

无线传感器网络 实验报告

学院:

班级: 学号: 姓名:

时间: 指导老师:

第一章 基础实验

了解环境

1.1 实验目的

安装 IAR 开发环境。CC2530 工程文件创建及配置。源代码创建,编译及下载。1.2 实验设备及工具

硬件:ZX2530A 型底板及 CC2530 节点板一块,USB 接口仿真器,PC 机

软件:PC 机操作系统 WinXP,IAR 集成开发环境,TI 公司的烧写软件。

1.3 实验内容

1、安装 IAR 集成开发环境

IAR 集成开发环境安装文件所在光盘目录:物联网光盘工具CD-EW8051-7601

2、ZIBGEE 硬件连接

安装完 IAR 和 Smartrf Flash Programmer 之后,按照图所示方式连接各种硬件,将仿真器的 20 芯 JTAG 口连接到 ZX2530A 型 CC2530 节点板上,USB 连接到 PC 机上,RS-232 串口线一端连接 ZX2530A 型 CC2530 节点板,另一端连接 PC 机串口。

3、创建并配置 CC2530 的工程文件 IAR 是一个强大的嵌入式开发平台,支持非常多种类的芯片。IAR 中的每一个 Project,都可以拥有自己的配置,具体包括 Device 类型、堆/栈、Linker、Debugger 等。(1)新建 Workspace 和 Project 首先新建文件夹 ledtest。打开 IAR,选择主菜单 File-> New-> Workspace 建立新的工作区域。

选择 Project-> Create New Project-> Empty Project,点击 OK,把此工程文件保存到文件夹 ledtest 中,命名为:ledtest.ewp(如下图)。

(2)配置 Ledtest 工程

选择菜单 Project->Options...打开如下工程配置对话框

选择项 General Options,配置 Target 如下 Device:CC2530;

(3)Stack/Heap 设置:XDATA stack size:0x1FF

(4)Debugger 设置:

Driver:Texas Instruments(本实验为真机调试,所以选择 TI;若其他程序要使用 IAR仿真器,可选 Simulator)

至此,针对本实验的 IAR 配置基本结束.4、编写程序代码并添加至工程

选择菜单 File->New->File 创建一个文件,选择 File->Save 保存为 main.c 将 main.c 加入到 ledtest 工程,将实验代码输入

然后选择 Project->Rebuild All 编译工程

编译好后,选择 Project->Download and debug 下载并调试程序 下载完后,如果不想调试程序,可点工具栏上的按钮终止调试。

到此,程序已经下载到了 cc2530 芯片的 flash 内,按下 ZX2530A 上的复位按钮可看到程序的运行效果。

LED 实验 2.1 实验目的

通过 I/O 控制小灯闪烁的过程。

在 ZX2530A 型 CC2530 节点板上运行自己的程序。2.2 实验设备及工具

硬件:ZX2530A 型底板及 CC2530 节点板一块,USB 接口仿真器,PC 机

软件:PC 机操作系统 WinXP,IAR 集成开发环境。2.3 实验结果

1.正确连接下载线和 ZX2530A 型 CC2530 节点板,打开 ZX2530A 型 CC2530 节点板电源。

2.在文件夹“基础实验2 LED”下打开工程 led,编译工程,并下载到 CC2530 节点板。3.观察 LED 的闪烁情况。

4.修改延时函数,可以改变 LED 小灯的闪烁间隔时间。

5.重新编译,并下载程序到 CC2530 节点板,观察 LED 的闪烁情况。

答:增加延时就会发现小灯闪烁的频率降低了。

串口实验 3.1 实验目的

本次实验将会学习如果使用串口实现与 PC 机的通讯。(实验中需要 PC 机与开发板之间使用RS232 交叉串口连接线)。

能正确配置 CC2530 的串口。3.2 实验设备及工具

硬件:ZX2530A 型底板及 CC2530 节点板一块,USB 接口仿真器,PC 机,交叉串口线一根。

软件:PC 机操作系统 WinXP,IAR 集成开发环境、串口调试助手。3.3 实验结果

CC2530 能与上位机通过串口正常通信

1.正确连接下载线和 ZX2530A 型 CC2530 节点板,用串口线正确连接上位机和 ZX2530A 型板,使能通过串口交换数据。

2.在文件夹“基础实验5 uart”下打开工程 uart,编译工程,并下载到 CC2530 节点板。

3.通过上位机上的串口调试助手,发送数据到 cc2530,然后检查 cc2530 回送给上位机的数据。

3.4 实验总结

通过这次实验,让我对无线传感器网络有了进一步的了解。在无线的世界,感觉一切都是那么神奇,二一切又是那么理所当然,记得小时候常常想,那些无线好神秘,画面,声音等怎么可以从一方到达另一方而可以完全不接触。虽然今天做的实验都是很小很简单的,比起显示中那些绚丽的感觉没什么值得赞扬的,但对于我来说,这个更有魅力,那些绚丽的我是以仰望的视角来对待,而这次我能深入它的原理去真正接触它,以平视来看待它。

第二章 射频实验

点对点射频通信实验 1 实验目的

在 ZX2530A 型 CC2530 节点板上运行相应实验程序。熟悉通过射频通信的基本方法。练习使用状态机实现收发功能。2 实验内容

接收节点上电后进行初始化,然后通过指令 ISRXON 开启射频接收器,等待接收数据,直到正确接收到数据为止,通过串口打印输出。发送节点上电后和接收节点进行相同的初始化,然后将要发送的数据输出到 TXFIFO 中,再调用指令 ISTXONCCA 通过射频前端发送数据。3 实验设备及工具

硬件:ZX2530A 型 CC2530 节点板 2 块、USB 接口的仿真器,PC 机 Pentium100 以上。

软件:PC 机操作系统 WinXP、IAR 集成开发环境、串口监控程序。4 实验原理

发送节点通过串口接收用户的输入数据然后通过射频模块发送到指定的接收节点,接收节点通过射频模块收到数据后,通过串口发送到 pc 在串口调试助手中显示出来。如果发送节点发送的数据目的地址与接收节点的地址不匹配,接收节点将接收不到数据。以下为发送节点程序流程图:

以下为接收节点流程图: 实验步骤

1.打开光盘“无线射频实验2.点对点通信”双击 p2p.eww 打开本实验工程文件。2.打开 main.c 文件下面对一些定义进行介绍 RF_CHANNEL 此宏定义了无线射频通信时使用的信道,在多个小组同时进行实验是建议每组选择不同时信道。但同一组实验中两个节点需要保证在同一信道,才能正确通信。

PAN_ID 个域网 ID 标示,用来表示不同在网络,在同一实验中,接收和发送节点需要配置为相同的值,否则两个节点将不能正常通信。SEND_ADDR 发送节点的地址 RECV_ADDR 接收节点的地址

NODE_TYPE 节点类型:0 接收节点,1:发送节点,在进行实验时一个节点定义为发送节点用来发送数据,一个定义为接收节点用来接收数据。

3.修改 NODE_TYPE 的值为 0,并编译下载到节点板。此节以下称为接收节点。

4.修改 NODE_TYPE 的值为 1,并编译下载到另外一个节点板。此节点板以下称为发送节点。

5.将接收节点的串口与 pc 的串口相连,并在 pc 端打开串口调试助手,配置波特率为 115200。

6.先将接收节点上电,然后将发送节点上电。7.从串口调试助手观察接收节点收到的数据。

8.修改发送数据的内容,然后编译并下载程序到发送节点,然后从串口调试助手观察收到的数据。9.修改接收节点的地址,然后重新编译并下载程序到接收节点,然后从发送节点发送数据观察接收节点能否正确接收数据。6 实验数据分析及结论

发送节点将数据发送出去后,接收节点接收到数据,并通过串口调试助手打印输出。发送数据的最大长度为 125(加上发送的据长度和校验,实际发送的数据长度为 128 字节)。7 实验心得

这次实验在原来的短距离无线通信中有所涉猎,所以应该这个对于我们来说还是很简单的,所以很快就做完实验了,就和几个同学好好研究了一下它的原理和一些它的展望,感觉这个学科以后有很大的发展前途,作为一个物联网的学生,对无线射频技术应该得很了解,指望它吃饭呢。这次实验也很简单,但是还是可以解除它的最底层的东西可以更加激发我们的兴趣。第三章 ZStack组网实验

多点自组织组网实验 1 实验目的

理解 zigbee 协议及相关知识。

在 ZX2530A 型 CC2530 节点板上实现自组织的组网。在 ZStack 协议栈中实现单播通信。2 实验内容

先启动协调器节点,协调器节点上电后进行组网操作,再启动路由节点和终端节点,路由节点和终端节点上电后进行入网操作,成功入网后周期的将自己的短地址,父节点的短地址,自己的节点 ID 封装成数据包发送给协调器节点,协调器节点接收到数据包后通过串口传给 PC,从 PC 上的串口监控程序查看组网情况。发送数据格式为(16 进制): FF 源节点(16bit)父节点(16bit)节点编号 ID(8bit)例如 FF 4B 00 00 00 01,表示 01 号节点的网络地址为 004B,发送数据到父节点,其网络地址为 00 00(协调器)。3 实验设备及工具

硬件:DZ2530 型 CC2530 节点板、USB 接口的仿真器,PC 机 Pentium100 以上。

软件:PC 机操作系统 WinXP、IAR 集成开发环境、ZTOOL 程序。4 实验原理

程序执行的流程图如图 5-4 所示,在进行一系列的初始化操作后程序就进入事件轮询状态。

对于终端节点,若没有事件发生且定义了编译选项 POWER_SAVING,则节点进入休眠状态。

协调器是 Zigbee 三种设备中最重要的一种。它负责网络的建立,包括信道选择,确定唯一的PAN 地址并把信息向网络中广播,为加入网络的路由器和终端设备分配地址,维护路由表等。Z-Stack 中打开编译选项 ZDO_COORDINATOR,也就是在 IAR 开发环境中选择协调器,然后编译出的文件就能启动协调器。具体工作流程是:操作系统初始化函数 osal_start_system 调用ZDAppInit 初 始 化 函 数,ZDAppInit 调 用 ZDOInitDevice 函 数,ZDOInitDevice 调 用

ZDApp_NetworkInit 函数,在此函数中设置 ZDO_NETWORK_INIT 事件,在 ZDApp_event_loop 任务中对其进行处理。由 第 一 步 先 调 用 ZDO_StartDevice 启动网络中的设备,再调用NLME_NetworkFormationRequest 函数进行组网,这一部分涉及网络层细节,无法看到源代 码,在库中处理。ZDO_NetworkFormationConfirmCB 和 nwk_Status 函数有申请结果的处理。如果成功则 ZDO_NetworkFormationConfirmCB 先执行,不成功则 nwk_Status 先执行。接着,在ZDO_NetworkFormationConfirmCB 函数中会设置 ZDO_NETWORK_START 事件。由于第三步,ZDApp_event_loop 任务中会处理 ZDO_NETWORK_START 事件,调用 ZDApp_NetworkStartEvt 函数,此函数会返回申请的结果。如果不成功能量阈值会按ENERGY_SCAN_INCREMENT 增加,并将App_event_loop 任务中的事件 ID 置为 ZDO_NETWORK_INIT 然后跳回第二步执行;如果成功则设置 ZDO_STATE_CHANGE_EVT 事件让 ZDApp_event_loop 任务处理。对 于 终 端 或 路 由 节 点,调 用 ZDO_StartDevice 后 将 调 用 函 数 NLME_NetworkDiscoveryRequest 进行信道扫描启动发现网络的过程,这一部分涉及网络层 细节,无法看到源代码,在库中处理,NLME_NetworkDiscoveryRequest函数执行的结果将会返回到函数ZDO_NetworkDiscoveryConfirmCB 中,该 函 数 将 会 返 回 选 择 的 网 络,并 设 置 事 件ZDO_NWK_DISC_CNF,在 ZDApp_ProcessOSALMsg 中对该事件进行处理,调用 NLME_JoinRequest加入指定的网络,若加入失败,则重新初始化网络,若加入成功则调用 ZDApp_ProcessNetworkJoin函数设置 ZDO_STATE_CHANGE_EVT,在对该事件的处理过程 中将调用ZDO_UpdateNwkStatus函数,此函数会向用户自定义任务发送事件 ZDO_STATE_CHANGE。本实验在 Zstack 的事例代码 simpleApp 修改而来。首先介绍任务初始化的概念,由于自定义任务需要确定对应的端点和簇等信息,并且将这些信息在 AF 层中注册,所以每个任务都要初始化然后才会进入 OSAL 系统循环。在 Z-Stack 流程图中,上层的初始 化集中在 OSAL 初始化(osal_init_system)函数中。包括了存储空间、定时器、电源管理和 各任务初始化。其中用户任务初始化的流程如下:

用户任务初始化流程图

任务 ID(taskID)的分配是 OSAL 要求的,为后续调用事件函数、定时器函数提供了参数。网络状态在启动的时候需要指定,之后才能触发 ZDO_STATE_CHANGE 事件,确定设备的类型。目的地址分配包括寻址方式,端点号和地址的指定,本实验中数据的发送使用单播方式。之后设置应 用 对 象 的 属 性,这 是 非 常 关 键 的。由 于 涉 及 很 多 参 数,Z-Stack 专 门 设 计 SimpleDescriptionFormat_t 这一结构来方便设置,其中的成员如下: EndPoint,该节点应用的端点,值在 1-240 之间,用来接收数据。AppProfId,该域是确定这个端点支持的应用 profile 标识符,从 Zigbee 联盟获取具体的 标识符。AppNumInClusters,指示这个端点所支持的输入簇的数目。pAppInClusterList,指向输入簇标识符列表的指针。AppNumOutClusters,指示这个端点所支持的输出簇的数目。pAppOutClusterList,指向输出簇标识符列表的指针。

本实验 profile 标识符采用默认设置,输入输出簇设置为相同 MY_PROFILE_ID,设 置完成后,调用 afRegister 函数将应用信息在 AF 层中注册,使设备知晓该应用的存在,初 始化完毕。一旦初始化完成,在进入 OSAL 轮询后 zb_HandleOsalEvent 一有事件被触发,就会得到及时的处理。事件号是一个以宏定义描述的数字。系统事件(SYS_EVENT_MSG)是强制的,其中包括了几个子事件的处理。ZDO_CB_MSG 事件是处理 ZDO 的响应,KEY_CHANGE 事件 处理按键(针对 TI 官方的开发板),AF_DATA_CONFIRM_CMD 则是作为发送一个数据包 后的确认,AF_INCOMING_MSG_CMD是接收到一个数据包会产生的事件,协调器在收到 该事件后调用函数 p2p_test_MessageMSGCB,将接收到的数据通过 HalUARTWrite 向串口 打印输出。ZDO_STATE_CHANGE 和网络状态的改变相关在此事件中若为终端或路由节点 则发送用户自定义的数据帧:FF 源节点短地址(16bit,调用 NLME_GetShortAddr()获得)、父节点短地址(16bit,调用 NLME_GetCoordShortAddr())、节点编号 ID(8bit,为长地址的最低字节,调用 NLME_GetExtAddr()获得,在启动节点前应先用 RFProgrammer 将非 0XFFFFFFFFFFFFFFFF 的长地址写到 CC2530 芯片存放长地址的寄存器中),协调器不做任何处理,只是等待数据的到来。终端和路由节点在用户自定义的事件 MY_REPORT_EVT中 发 送 数 据 并 启 动 定 时 器 来 触 发 下 一 次 的 MY_REPORT_EVT 事件,实现周期性的发送数据(发送数据的周期由宏定义 REPORT_DELAY 确定)。5 实验步骤

1.打开工程文件夹协议栈实验2.多点自组网ProjectszstackSamplesSimpleAppCC2530DB下的工程文件 SimpleApp.eww。2.选择工程

编译,生成协调器代码,并下载到 ZX2530A 开发板。此节点为协调器节点。3.选择工程

编译,生成终端节点代码,并下载到 ZX2530 开发板。此节点为终端节点。4.选择工程

编译,生成路由器节点代码,并下载到 ZX2530 开发板,此节点为路由器节点。5.用串口线将协调器节点与 pc 连接起来,在 pc 端打开 ZTOOL 程序。(ZTOOL 程序在 zstack 安装后自动安装)6.开启 ZX2530A 型 CC2530 节点板电源。7.在 ZTOOL 程序中观察组网结果。6 实验数据分析及结论

由接收数据的 DebugString 可以看出图中有两个节点加入了网了,其中一个节点的 DEVID 是21,网络地址:4f07,父节点地址是 0 即协调器。另外一个节点的 DEVID 是 11,网络地址:A6F7,父节点地址是 4f07 即上一节点。实验中可以试着改变不同节点的位置,然后通过 ZTOOL 看看组网结果有什么不同。7 实验心得

这次实验感觉比原来的更有趣,可以在手机上看到无线连接的组网,所以和同学们很有兴趣,虽然只有几个分支,但是几个的通信还是可以清晰可见的。同时也让我们看到了大型android手机的模样,以前都是看成品,这次看的是半成品,感觉很有意思。在组网的过程中,遇到了一些问题,刚开始不知道如何解决,就问同学和老师,有的是线的问题,由于实验器材本身的问题,导致一些松动之类的,但最后实验总算是顺利的完成了。在这感谢帮助我的同学和老师。第四章 传感器网络综合实验

Zigbee 节点控制程序设计 1.1 协调器节点工程

SimpleCoordinator 即协调器工程,如下图

协调器的应用功能代码实现文件是 SimpleCoordinator.c 在工程文件夹 App 目录下具体实现可参考源码。按下键盘上的 F7 即个编译协调器工程,编译好之后可将代码下载到协调器节点板。1.2 人体红外传感器节点工程

SimpleInfrared 即人体红外传感器工程,如下图

人体红外传感器节点应用控制代码可参考工程目录 App 下 SimpleInfrared.c 1.3 超声波距离传感器节点工程 SimpleDistanceSensor 即超声波距离传感器工程,如下图

超声波距离传感器节点实现代码可参考工程目录 App 下

SimpleDistanceSensor.c。超声波测距驱动代码请参考 ys-srf05.c 文件。

1.4 湿度传感器节点工程

SimpleHumiditySensor 即湿度传感器节点工程,如下图

湿度传感器应用控制代码可参考工程目录 App 下SimpleHumiditySensor.c 文件,其湿度的测量驱动可参考温湿度传感器驱动 dht11.c 文件

平台控制操作 2.1 启动程序

1)安装好程序后,打开 android 应用程序面板,找到图标 点击进入程序。

2)直接点击登录按钮,进入到系统主界面。第一次进入是系统会自动连接到 zigbee 网关然后去搜索 zigbee 网络,默认的 zigbee 网关地址为本机 IP 地址,即 127.0.0.1。

3)如果你的 zigbee 网关地址不是本机,则需要修改默认网关地址。通过按下系统‘菜单’按键,会出现如下菜单,选择‘设置’菜单,可以设置默认的 zigbee 网关。如下图:

4)设置好网关后,下次启动程序就不用再次设置了。2.2 搜索网络

如果 zigbee 网关设置好,通过菜单选择‘搜索网络’就可以搜索 zigbee 网络了,正常情况下至少会有一个协调器节点,如果程序提示搜索不到网络,请检查你的网络连接和协调器是否正确连接。如果 zigbee 网络上还有其它节点,可以在网络 TOP 图上一起显示出来。如下,是一个zigbee 网络 TOP 图:

图中共有 7 个节点,其中最上面那个是协调器节点,其它为传感器节点,其中地址为 58229的灯光设备带有路由功能,属路由器节点,它下面有两个子节点,分别为人体传感器和温度传感器。2.3 传感器节点操作

通过搜索到的 zigbee 网络 TOP 图,可以了解整个 zigbee 网络的节点分布情况。通过点击屏幕上相应节点的图标可以进入相关节点的控制和监控操作。

下图为温度传感器的监控界面:

其它界面读者可以自行实验,并且去了解。

实验心得

四次实验完成了,虽然不能说自己学到了很多吧,至少对这里面的一些操作有了一定的了解,本科生本来就是为了让我们扩充视角,知道更多的东西。无线传感网络真的感觉很神奇,也很有发展前景,这些高尖端的技术,现在存在一些瓶颈,如果能够突破,对物联天下这个目标将前进了一大步,如果能够把传感器节点造的更节能,更低廉,更小巧,将会实现全球各个地方的实时数据采集,就可以得到更多的信息,为以后生产生活带来巨大的改变。在收集的数据肯定是海量的,将需要其他学科的支撑,一起结合起来,实现真的物物相联。

第五篇:无线课程设计实验报告

扩频实验报告

学 院: 电子信息工程学院

专 业: 通信工程 组员: 12211008 吕兴孝 12211010 牟文婷 12211096 郑羲 12211004 冯顺 任课教师: 姚冬萍 1实验四 扩频实验

一、实验目标

在本实验中你要基于labview+usrp平台实现一个扩频通信系统,你需要在对扩频技术有一定了解的基础上编写程序,完成所有要求的实验任务。在这一过程中会让你对扩频技术有更直接和感性的认识,并进一步掌握在labview+usrp平台上实现通信系统的技巧。

二、实验环境与准备

软件环境:labview 2012(或以上版本);

硬件环境:一套usrp和一台计算机;

实验基础:了解labview编程环境和usrp的基本操作;

知识基础:了解扩频通信的基本原理。

三、实验介绍

1、扩频通信技术简介

扩频通信技术是一种十分重要的抗干扰通信技术,可以大大提高通信系统的抗干扰性能,在电磁环境越来越恶劣的情况下,扩频技术在诸多通信领域都有了十分广泛的应用。

扩频技术简单来讲就是将信息扩展到非常宽的带宽上——确切地说,是比数据速率大得多的带宽。在扩频系统中,发端用一种特定的调制方法将原始信号的带宽加以扩展,得到扩频信号;然后在收端对接收到的扩频信号进行解扩处理,把它恢复为原始的窄带信号。

扩频系统之所有具有较强的抗干扰能力,是因为接收端在接收到扩频信号后,需要通过相关处理对接收信号进行带宽的压缩,将其恢复成窄带信号。对于干扰信号而言,由于与扩频信号不相关,所以会被扩展到很宽的频带上,使之进入信号带宽内的干扰功率大幅下降,即增加了相关器输出端的信号/干扰比。因此扩频系统对大多数人为干扰都具有很强的抵抗能力。

22、发射端程序简介

本实验包括发射端和接收端两个主程序,其中发射端主程序top_tx的前面板如图1所示。

图1 发射端程序前面板

前面板上部的选项卡控件中可以配置各项参数。在硬件参数部分中可以配置usrp的ip地址、载波频率等参数;在信号参数部分中可以配置调制方式、设配采样速率、成型滤波器等参数;在信道模型参数部分中你可以选择不同的信道模型并设置噪声功率;在右侧你可以设置扩频码的长度。在前面板下方为显示界面,包括发送信号的时域/频域波形以及星座图和眼图。

发射端的程序框图主要由两部分组成。

主程序框图左侧的transmitter子程序完成发射信号的生成、扩频、调制等功能,程序框图如图2所示。

3图2 transmitter的程序框图

3、接收端程序简介

接收端主程序top_rx的前面板如图3所示。

图3 接收端程序前面板

与发射端程序类似,接收端主程序前面板上部为各项参数的输入,例如硬件参数、扩频参数、同步参数等。前面板下部显示生成的图形,包括星座图、眼图、信噪比/误码率曲线等。接收端端的程序框图也主要由两部分组成。

主程序框图右侧的receiver.vi子程序主要完成发射信号的接受、同步、解扩和解调等功能,程序框图如图3所示。4 图3 receiver.vi 的程序框图

matched filter子程序完成匹配滤波;其中rx init子程序是接收机的初始化;

synch子程序使同步模块,完成收发同步;channel estimated子程序完成信道估计;equalize子程序的作用是信道均衡;strip control子程序用来删除控制信息,即训练序列;decode子程序实现信号的解调;de-dsss子程序用来实现解扩;error detect子程序的作用是计算误码率。

接收端主程序框图的其他部分主要用来完成usrp的配置、计算信噪比/误码率曲线以及生成所需的图形。

四、实验任务

1、ds-ss.vi子程序

ds-ss子程序的作用是对信源进行直接扩频(direct sequence spread spectrum)。其原理是利用10个以上的chips来代表原来的0或1,使得原来较高功率、较窄的频谱变成具有较宽频的低功率频谱,这种特性类似于噪声功率谱,因此接收端只有知道正确的扩频码才能进行正确的接收,进而增加了传输的可靠性。它是一种数字调制方法,具体说,就是将信源与一定的pn码(伪随机码、chip)进行同或运算。例如,在发射端用11000100110代替1,用00110010110代替0,这个过程就实现了扩频。上述过程如图4所示。

图4 扩频的实现过程

前面板:

图6 ds-ss前面板 ds-ss程序框图:

图7 ds-ss程序框图

实验步骤:

1、首先产生所需长度的伪随机序列(pn序列): pn序列(pseudo-noise sequence)即伪噪声序列,这类序列具有类似随机噪声的一些统计特性,但和真正的随机信号不同,它可以重复产生和处理,故称作

pn码最见的用途是在扩频系统中用来扩展信号频谱;伪随机噪声序列。此外pn 码也可以用来作为信源信息。

图8 mt generate bits输入输出

其中total bits为生成的伪随机序列的总长度、pn sequence order用来设定pn序列的循环周期(如果pn sequence order设为n,则周期为)、seed in指定pn序列生成器移位寄存器的初始状态(默认为0xd6bf7df2);output bit stream为伪随机序列的输出。

此外mt generate bits函数还有user defined模式,在此模式下函数可以 根据用户自定义的输入序列生成所需长度的循环序列。其输入输出如图9所示:

图9 user defined模式的输入输出 其中user base bit pattern为用户指定的序列,控件会不断循环用户指定的序列output bit stream为生成序列的直到输出序列的长度达到total bits所设定的值。输出。

本例中用到了三个mt generate bits函数,分别用来生成保护序列、同步序列和信息序列。

2、利用产生的序列对信源序列进行扩展:

图10 扩频模块

输入信源bit码、pn扩频码、误差;输出扩频码、误差。

72、de-dsss.vi子程序

de-dsss子程序的作用是在接收端实现对信号的解扩。解扩操作即扩频操作的逆过程。继续使用上面的例子,当你在发射端用11000100110代替1,而用00110010110代替0后,在接收机处只要把收到的序列是11000100110恢复成1,而00110010110恢复成0,这就是解扩。上述过程如图0所示。

图11 解扩的实现过程

前面板:

图12 de-dsss前面板 de-dsss程序框图:

图13 de-dsss程序框图

五、实验步骤:

1、产生所需长度的并与发射端相同伪随机序列(pn序列),同ds-ss;

2、然后利用产生的序列对接收信号进行解扩:

输入:将信源与pn序列通过“数组大小”模块返回其长度,相除得到的商作为搜索深度;输入经信道传输后的扩频码、与发送端同步的扩频序列以及误差。输出得解扩后码序列以及误差。

3、实验验证

在ds-ss子程序中,你可以手动输入一串0/1作为信源序列,并设置好pn序列的长度(设为n)。单独运行ds-ss子程序,观察输出的序列长度是否扩展了n倍,并注意输出序列中pn码是否与相应的0或者1对应。验证成功的话便表明你的ds-ss子程序编写正确。并利用类似的方法验证de-dsss子程序的正确性。

然后验证发射端主程序是否能正确的发射我们想要的扩频信号。首先正确的连接usrp并合理的配置发射端的各项参数,运行程序。

然后你可能会看到如图

9至图所示的发射信号时域波形和频域波形。

图14不扩频的时域信号

图16扩频后的时域信号

图17扩频后的频域信号 图15不扩频的频域信号

10可以看出经过扩频的发射信号与不经过扩频的发射信号相比,在频域上进行

了展宽,在时域上变得更加密集。这与扩频的基本原理相符,说明发射端的设计基本正确。

在接收端,我们需要使得参数能够与发射端匹配,这样才能正常的接收。特

别需要注意capture time、packet length和rx sample rate这几个参数,你首先需要理解它们的意义,这样才能够正确的配置它们。如果你在发射端没有修改默认参数的话,接收端的默认参数恰好能够与发射端匹配。你需要同时运行发射端和接收端程序,在发射端正确运行时观察接收端能否正确接收。程序会计算当前信噪比下的误码率,并逐渐增大信噪比、最终得出一条信噪比/误码率曲线,如图3-4-11所示。你可能需要稍等一段时间才能够看到程序运行完成的结果。在接收端程序运行的同时,你可以进入receiver子程序中的ber detected子程序,在里面观察当前信噪比接收到的数据数和误码数,如图3-4-12所示。

图18误码率曲线 图19运行时的数据显示

然后你可以尝试改变收发端的各项参数,观察不同参数对运行结果的影响。最后你需要按照要求完成实验报告。

六、实验结果 qpsk: 将usrp连接电脑,更改ip地址等参数。频率使用915mhz避免干扰。如下图20: 11 发送端前面板调制参数以及发送星座图发送时域波形如下图21:

发送端眼图和发送端频域波形如下,眼图的尖锐程度和发送频率有关,如图22:

接收端的硬件参数和误码率如下图,如图23:

接收端眼图如图24所示: bpsk: 调制参数如下: 14bpsk:发送端硬件参数

发送端星座图:

接收端眼图:

接收端星座图及误码率曲线(信噪比较低):

五、实验扩展

1、解释接收端同步模块的具体实现方式及其利用的基本原理。

(1)初始同步,或称粗同步、捕获。它主要解决载波频率和码相位的不确定性,保

证解扩后的信号能通过相关器后面的中频滤波器,这是所有问题中最难解决的问题。

(2)跟踪,或称精同步。

接收机对接收到的信号,首先进行搜索,对收到的信号与本地码相位差的大小进行判断,若不满足捕获要求,即收发相位差大于一个码元,则调整时钟再进行搜索。直到使收发相位差小于一个码元时,停止搜索,转入跟踪状态。图3-4-5同步流程图

图3-4-6跟踪流程图

2、扩频通信技术除了有较强的抗干扰能力外,还具有哪些优点?逐一例举出来并简述扩频技术具有这些优点的原因。

(1)易于重复使用频率,提高了无线频谱利用率

无线频谱十分宝贵,虽然从长波到微波都得到了开发利用,仍然满足不了社会

17的需求。在窄带通信中,主要依靠波道划分来防止信道之间发生干扰。为此,世界各国都设立了频率管理机构,用户只能使用申请获准的频率。扩频通信发送功率极低,采用了相关接收技术,且可工作在信道噪声和热噪声背景中,易于在同一地区重复使用同一频率,也可与各种窄道通信共享同一频率资源。所以,在美国及世界绝大多数国家,扩频通信无须申请频率,任何个人与单位都可以无执照使用。

(2)抗干扰性强,误码率低

扩频通信在空间传输时所占用的带宽相对较宽,而接收端又采用相关检测的办法来解扩,使有用宽带信息信号恢复成窄带信号,而把非所需信号扩展成宽带信号,然后通过窄带滤波技术提取有用的信号。这样,对于各种干扰信号,因其在接收端的非相关性,解扩后窄带信号中只有很微弱的成分,信噪比很高,因此抗干扰性强。在商用的通信系统中,扩频通信是唯一能够工作在负信噪比条件下的通信方式。

(3)隐蔽性好,对各种窄带通信系统的干扰很小

由于扩频信号在相对较宽的频带上被扩展了,单位频带内的功率很小,信号湮没在噪声里,一般不容易被发现,而想进一步检测信号的参数如伪随机编码序列就更加困难,因此说其隐蔽性好。再者,由于扩频信号具有很低的功率谱密度,它对使用的各种窄带通信系统的干扰很小。

(4)可以实现码分多址

扩频通信提高了抗干扰性能,但付出了占用频带宽的代价。如果让许多用户共用这一宽频带,则可大大提高频带的利用率。由于在扩频通信中存在扩频码序列的扩频调制,充分利用各种不同码型的扩频码序列之间优良的自相关特性和互相关特性,在接收端利用相关检测技术进行解扩,则在分配给不同用户码型的情况下可以区分不同用户的信号,提取出有用信号。这样一来,在一宽频带上许多对用户可以同时通话而互不干扰。

(5)抗多径干扰

这两种技术在扩频通信中都易于实现。利用扩频码的自相关特性,在接收端从多径信号中提取和分离出最强的有用信号,或把多个路径来的同一码序列的波形相加合成,这相当于梳状滤波器的作用。另外,在采用频率跳变扩频调制方式的扩频系统中,由于用多个频率的信号传送同一个信息,实际上起到了频率分集的作用。

(6)能精确地定时和测距

电磁波在空间的传播速度是固定不变的光速,人们自然会想到如果能够精确测

18量电磁波在两个物体之间的传播时间,也就等于测量两个物体之间的距离。在扩频通信中如果扩展频谱很宽,则意味着所采用的扩频码速率很高,每个码片占用的时间就很短。当发射出去的扩频信号在被测量物体反射回来后,在接收端解调出扩频码序列,然后比较收发两个码序列相位之差,就可以精确测出扩频信号往返的时间差,从而算出两者之间的距离。测量的精度决定于码片的宽度,也就是扩展频谱的宽度。码片越窄,扩展的频谱越宽,精度越高。

(7)适合数字话音和数据传输,以及开展多种通信业务

扩频通信一般都采用数字通信、码分多址技术,适用于计算机网络,适合于数据和图像传输。

(8)安装简便,易于维护

扩频通信设备是高度集成,采用了现代电子科技的尖端技术,因此,十分可靠、小巧,大量运用后成本低,安装便捷,易于推广应用。

3、伪随机序列有许多种,例如m序列、gold序列、m序列等。尝试使用不同的方法来产生伪随机序列,并用其实现对信号的扩频。

(1)m序列是目前广泛应用的一种伪随机序列,m序列每一周期中 1 的个数比 0 的个数多 1 个。状态“0”或“1”连续出现的段称为游程。游程中“0”或“1” m序列的一个周期(p=2^n-1)中,的个数称为游程长度。游程总数为 2^n-1,“0”、“1”

各占一半。2个彼此移位等价的相异m序列,按模2相加所得的序列仍为m序列,并与原m序列等价。

(2)gold序列gold码序列是一种基于m序列的码序列,具有较优良的自相关和互相关特性,产生的序列数多。gold码的自相关性不如m序列,具有三值自相关特性;互相关性比m序列要好,但还没有达到最佳。是由两个码长相等、码时钟速率相同的m序列优选对通过模2相加而构成的。

4、适当的在系统中添加干扰,以验证扩频的良好的抗干扰能力。

强扩频通信系统扩展的频谱越宽,处理增益越高,抗干扰能力就越强。简单

地说,如果信号频谱展宽10倍,那么干扰方面需要在更宽的频带上去进行干扰,分散了干扰功率,从而在总功率不变的条件下,其干扰强度只有原来的1/10。另外,由于接收端采用扩频码序列进行相关检测,空中即使有同类信号进行干扰,如果不能检测出有用信号的码序列,干扰也起不了太大作用,因此抗干扰性能强是扩频通信的最突出的优点。19 20

下载无线数据采集模块实验报告word格式文档
下载无线数据采集模块实验报告.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    温度采集,,实验报告[精选合集]

    课程设计任务书题 题 目基于A0 D590 得温度测控系统设计 系 系( (部 部) 信息科学与电气工程学院专 专业 电气工程及其自动化 班 班 级 电气 092学生姓名刘玉兴 学 学 号 090 81......

    浅析CDMA2000 1X无线数据网络安全

    浅析CDMA2000 1X无线数据网络安全 泰尔网 2006-12-10 14:24:53 来源[中国无线通信] 【关键词】 浅析CDMA2000 1X无线数据网络安全 王骏彪 彭明安 杨瑜 目前,国内各大电......

    构建小型无线局域网实验报告

    构建小型局域网实验报告 实验名称:构建小型局域网实训 实验起止日期: 小组成员: 实验内容: 1. 知识回顾 a) 对比组建微型局域网多种方式的优劣性 i. 有线局域网的缺点 1.在某些......

    无线传感器网络实验报告[推荐阅读]

    桂林电子科技大学实验报告2015 5- - 2016 6 学年第 一 学期开 课 单 位 海洋信息工程学院 适用年级、专业 课 程 名 称 无线传感器网络 主 讲 教 师 王晓莹 课 程 序 号 15......

    无线网络通信实验报告(精选多篇)

    Compilation of reports 20XX 报 告 汇 编 实验报告课程名称:无线网络通信技术 实验项目:无线网络通信技术实验 实验地点:逸夫楼404教室 专业班级:软 1121 班 学号:2011005541......

    半双工调频无线对讲机实验报告

    实验十九 半双工调频无线对讲机 一、实验目的 1、 在模块实验的基础上掌握调频发射机、接收机,整机组成原理,建立调频系统概念。 2、 掌握系统联调的方法,培养解决实际问题的能......

    社保卡申领及数据采集常见问题

    社保卡申领及数据采集试点工作说明 一、申领及采集流程 1、单位通过网上申报系统,下载本单位人员社保卡数据,按照要求填写各个数据项,加盖本单位电子印章后,通过网报系统上传。......

    全站仪数据采集操作步骤(最终定稿)

    NTS--665全站仪操作步骤 一、控制点的坐标测定可采用常规测量模式或程序模式 (常规测量模式:) 1)对中整平仪器, 量仪器高 2)开机选择[测量]模式 设站:选用[测量]---[坐标]---P1翻......