Zigbee基本通信实验.docx

上传人:b****6 文档编号:5173088 上传时间:2022-12-13 格式:DOCX 页数:26 大小:205.45KB
下载 相关 举报
Zigbee基本通信实验.docx_第1页
第1页 / 共26页
Zigbee基本通信实验.docx_第2页
第2页 / 共26页
Zigbee基本通信实验.docx_第3页
第3页 / 共26页
Zigbee基本通信实验.docx_第4页
第4页 / 共26页
Zigbee基本通信实验.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

Zigbee基本通信实验.docx

《Zigbee基本通信实验.docx》由会员分享,可在线阅读,更多相关《Zigbee基本通信实验.docx(26页珍藏版)》请在冰豆网上搜索。

Zigbee基本通信实验.docx

Zigbee基本通信实验

1.

Zigbee基本通信实验

1.1实验目的

Ø了解实Zigbee的原理及在软件上如何方便使用;

Ø掌握在WindowsCE6.0下进行UART编程的方法。

1.2实验设备

Ø硬件:

EduKit-IV嵌入式教学实验平台、Mini270核心子板、Zigbee模块、PC机;

Ø软件:

Windows2000/NT/XP以及Windows平台下的VS2005开发环境。

1.3实验内容

Ø利用MicrosoftVisualStudio2005编写一个可运行于EduKit-IV型实验箱WindowsCE6.0操作系统上的应用程序;

Ø学习和掌握EduKit-IV教学实验平台中通过UART与Zigbee模块通信,实现对Zigbee模块的配置和对等网模式下的通信。

1.4实验原理

1.4.1Zigbee起源

无线网络系统源自美国军方的“电子尘埃(eMote)”技术,是目前国内、外研究的热点技术之一。

该系统基于IEEE802.15.4规范的无线技术,工作在2.4GHz或868/928MHz,用于个人区域网和对等网状网络。

ZigBee是一种新兴的近距离、低复杂度、低功耗、低数据速率、低成本的无线网络技术。

它是一种介于红外无线技术和蓝牙之间的技术提案。

主要用于近距离无线连接。

它依据802.15.4标准。

在数千个微小的传感器之间相互协调实现通信。

这些传感器只需要很少的能量,以接力的方式通过无线电波将数据从一个传感器传到另一个传感器,所以它们的通信效率非常高。

相对于现有的各种无线通信技术,无线ZigBee网络技术将是近距离通信最低功耗和成本的技术。

这一技术目前正向工业、民用方向推广和发展,市场前景广阔。

包括国家863计划等项目都在进行相关的研究工作。

因此,本文介绍的基于ZigBee技术的嵌入式无线网络平台,这一无线网络平台可应用于工业控制、信息家电、安保系统、环境监测、港务运输、煤矿安全、农业自动化和医疗监护设备等许多行业和设备。

具有广泛的适应性。

并能弥补其他无线通信技术的不足,保证其安全性,降低服务成本。

1.4.2ZigBee网络配置

1.网络设备组成。

ZigBee网络设备主要包括网络协调器、全功能设备和精简功能设备3类。

●网络协调器:

包含所有的网络消息,是3种设备类型中最复杂的一种,存储容量最大、计算能力最强。

功能是发送网络信标、建立一个网络、管理网络节点、存储网络节点信息、寻找一对节点间的路由消息、不断地接收信息。

●全功能设备:

全功能设备(Full-FunctionDevice,FFD)可以担任网络协调者,形成网络,让其他的FFD或精简功能装置(RFD)联结。

FFD具备控制器的功能,可提供信息双向传输。

其设备特性有:

附带由标准指定的全部IEEE802.15.4功能和所有特征;更强的存储能力和计算能力可使其在空闲时起网络路由器作用;也能用作终端设备。

●精简功能设备:

精简功能设备(Reduced-FunctionDevice,RFD)只能传送信息给FFD或从FFD接收信息,其设备特性有:

附带有限的功能来控制成本和复杂性;在网络中通常用作终端设备;RFD由于省掉了内存和其他电路,降低了ZigBee部件的成本,而简单的8位处理器和小协议栈也有助于降低成本。

2.网络节点类型。

从网络配置上,ZigBee网络中有3种类型的节点:

ZigBee协调点、ZigBee路由节点和ZigBee终端节点。

●ZigBee协调点:

ZigBee协调点在IEEE802.15.4中也称为PAN(PersonalAreaNetwork)协调点(ZigBeeCoordinator,ZC),在无线传感器网络中可以作为汇聚节点。

ZigBee协调点必须是FFD,一个ZigBee网络只有一个ZigBee协调点,它往往比网络中其他节点的功能更强大,是整个网络的主控节点。

它负责发起建立新的网络、设定网络参数、管理网络中的节点以及存储网络中节点信息等,网络形成后也可以执行路由器的功能。

ZigBee协调点是3种类型ZigBee节点最为复杂的一种,一般由交流电源持续供电。

●ZigBee路由节点:

ZigBee路由节点(ZigBeeRouter,ZR)也必须是FFD。

ZigBee路由节点可以参与路由发现、消息转发,通过连接别的节点来扩展网络的覆盖范围等。

此外,ZigBee路由节点还可以在它的个人操作空间(POS,PersonalOperatingSpace)中充当普通协调点(IEEE802.15.4称为协调点)。

普通协调点与ZigBee协调点不同,它仍然受ZigBee协调点的控制。

●ZigBee终端节点:

ZigBee终端节点(ZigBeeEndDevice,ZE)可以是FFD或者RFD,它通过ZigBee协凋点或者ZigBee路由节点连接到网络,但不允许其他任何节点通过它加入网络,ZigBee终端节点能够以非常低的功率运行。

3.网络工作模式。

ZigBee网络的工作模式可以分为信标(Beacon)和非信标(Non-beacon)2种模式,信标模式实现了网络中所有设备的同步工作和同步休眠,以达到最大限度的功耗节省,而非信标模式则只允许ZE进行周期性休眠,ZC和所有ZR设备必须长期处于工作状态。

信标模式下,ZC负责以一定的间隔时间(一般在15ms~4min)向网络广播信标帧,2个信标帧发送之间有16个相同的时槽,这些时槽分为网络休眠区和网络活动区2个部分,消息只能在网络活动区的各时槽内发送。

非信标模式下,ZigBee标准采用父节点为ZE子节点缓存数据,ZE主动向其父节点提取数据的机制,实现ZE的周期性(周期可设置)休眠。

网络中所有父节点需为自己的ZE子节点缓存数据帧,所有ZE子节点的大多数时间都处于休眠模式,周期性的醒来与父节点握手以确认自己仍处于网络中,其从休眠模式转入数据传输模式一般只需要15ms。

1.4.3ZigBee的网络拓扑结构

ZigBee主要采用了3种组网方式:

星型网、网状网和簇状网。

其中网络协调器相当于本试验中的中心节点,全功能设备相当于本试验中的路由节点,精简功能设备相当于本试验中的终端节点。

●如图1所示在星型网中,一个功能强大的主器件位于网络的中心,作为网络协调者,其它的主器件或从器件分布在其覆盖范围内。

由于网络协调者定义了整个网络的时分复用和多址接人方式,因此星型网的控制和同步都比较简单,通常用在设备薯莨比较少的场合。

图1星型网

●如图2所示,网状网是由主器件连接在一起形成的,网状网络拓扑结构的网络具有强大的功能,网络可以通过“多级跳”的方式来通信;该拓扑结构还可以组成极为复杂的网络;网络还具备自组织、自愈功能;

图2网状网

●星型网和网状网相结合则形成了簇状网,如图3所示。

各个子网内部都以星型网连接。

其主器件又以对等的方式连接在一起。

信息流首先传到同一个子网内的主节点。

通过网关节点达到更高层的子网,随后继续上传,直至到达中心采集设备。

中心采集设备与普通的WPAN设备相比具有更强的处理能力。

簇状网可以用于覆盖范围较大的区域,

图3簇状网

在上述网络拓扑结构中,网络的形成和维护通过设备间的通信自动实现,不需要人32干预网络的建立、扩展或者减小。

ZigBee网络中的所有设备都被动态分配到IEEE地址。

1.4.4SZ05-ZBEE嵌入式无线通信模块介绍

顺舟科技SZ05系列嵌入式无线通信模块,集成了符合ZIGBEE协议标准的射频收发器和微处理器,它具有通讯距离远、抗干扰能力强、组网灵活、性能可靠稳定等优点和特性;可实现点对点、一点对多点、多点对多点之间的设备间数据的透明传输;可组成星型、树型和蜂窝型网状网络结构。

SZ05系列无线通信模块数据接口为TTL电平收发接口。

可以实现数据的广播方式发送、按照目标地址发送模式,除可实现一般的点对点数据通信功能外,还可实现多点之间的数据通讯,串口通信使用方法简单便利,可以大大简短模块的嵌入匹配时间进程。

SZ05系列无线通信模块分为中心协调器、路由器和终端节点,这三类设备具备不同的网络功能,中心协调器是网络的中心节点,负责网络的发起组织、网络维护和管理功能;路由器负责数据的路由中继转发,终端节点只进行本节点数据的发送和接收。

中心协调器、路由器和终端节点这三种类型的设备在硬件结构上完全一致,只是设备嵌入软件不同,只需通过跳线设置或软件配置即可实现不同的设备功能。

表1描述了模块左侧引脚相应标识

表1模块左侧引脚说明

引脚号

标识

功能

备注

1

GND

电源地

2

+5V

电源正5V

输入

3

RX1/TTL

TTL电平输入

TTL电平输入

4

TX1/TTL

TTL电平输出

接用户系统输入RX

5

SGND

串口RS232信号地

信号地

6

TX2/RS232

串口RS232输出

接用户232输入

7

RX2/RS232

串口RS232输入

接用户232输出

8

系统保留

悬空

9

RESET

系统复位

低电平复位

表2描述了模块右侧引脚相应标识

表2模块右侧引脚说明

引脚号

标识

功能

备注

1

DATA

串口数据收发指示

低电平点亮,数据收发即闪烁

2

RUN

系统运行指示

低电平点亮,间隔1秒闪烁

3

NET

网络指示

低电平点亮,中心节点建网成功点亮,从节点入网后点亮。

4

ALARM

系统告警指示

低电平点亮

5

SLEEP

低功耗

低电平进入低功耗,高电平或悬空正常运行。

9

CONFIG

配置接口

低电平有效,或加跳线帽,进入系统配置状态。

1.4.5Zigbee模块配置

SZ05-ZBEE无线通信模块复位后,CONFIG引脚进入低电平状态3秒,系统进入配置状态;高电平或悬空状态则进入工作状态。

配置接口是用于对本产品的某些参数进行配置的接口,串口信号为RS232配置如表3所示:

表3配置模式时串口参数配置

串口参数

配置值

串口波特率

38400

串口校验

NONE

数据位

8

停止位

1

设备配置选项如下所示:

1.通信信道CHANNEL设置如表4所示。

表4通信信道参数配置

CHANNEL选项

配置说明

4

2.425GHZ

9

2.450GHZ

E

2.475GHZ

F

2.480GHZ

G

AUTO模式,自动选择最佳信道。

2.网络类NET_TYPE设置如表5所示。

表5网络类型参数配置

NET_TYPE选项

网络选项

配置说明

备注

MESH

网状网

主从网络,网络中心必须有唯一的中心节点。

在同一个网络中,网络类型必须设置相同。

STAR

星型网

PEER

对等网

非主从网,无中心节点。

3.设备类型NODE_TYPE设置如表6所示。

表6设备类型参数配置

NODE_TYPE选项

设备类型

配置说明

PAN_Coord

中心节点

ROUTER

中继路由

兼有终端设备功能

END_DEVICE

终端设备

4.网络号NET_ID设置如表7所示。

表7网络号参数配置

NET_ID选项选项

ID范围

配置说明

NET_ID

00-FF

同个网络中ID必须相同

5.数据发送模式TX_TYPE设置如表8所示。

表8数据发送模式参数配置

TX_TYPE选项

网络选项

配置说明

备注

BROADCAST

广播模式

无需目标地址。

目标地址为2字节的MAC地址,加在数据包前即可。

MASTER—SLAVE

主从模式

中心节点必需目标地址,非中心节点无需目标地址。

POINT—POINT

点对点

必需目标地址。

6.设备地址MAC_ADDR设置如表9所示。

表9设备地址参数配置

MAC_ADDR选项选项

ID范围

配置说明

备注

MAC_ADDR

0000-FFFF

中心节点为0000

同个网络不能有相同地址节点

7.数据类型DATA_TYPE设置如表10所示。

表10数据类型参数配置

DATA_TYPE选项

数据类型

配置说明

ASCII

ASCII码

只在按目标地址发送情况下设置,在广播发送情况下无须设置。

HEX

16进制

8.数据位DATA_BIT设置如表11所示。

表11数据位参数配置

DATA_TYPE选项

数据类型

配置说明

7+1+1

7位数据+1位校验+1位停止

需要跟数据校验设置结合起来选择。

8+0+1

7位数据+无校验+1位停止

8+1+1

8位数据+1位校验+1位停止

9.波特率设置。

10.数据校验DATA_PARITY设置如表12所示。

表12数据校验参数配置

DATA_PARIT选项

设备类型

配置说明

NONE

无校验

选择匹配的校验类型。

EVEN

偶校验

ODD

奇校验

11.串口超时TIME_OUT设置。

12.数据源地址SRC_ADDR设置如表13所示。

表13数据源地址是否输出参数配置

SRC_ADR选项

数据源地址

配置说明

NOTOUTPUT

不输出源地址

根据应用需要选择是否输出数据包源地址。

HEX

16进制输出

ASCII

ASCII输出

●16进制方式输出源地址格式:

2字节源地址+有效数据;

●ASCII方式输出源地址格式:

4字节源地址+有效数据。

1.4.6数据发送格式说明

1.数据发送模式如表14所示。

表14数据发送模式表

模块类型

发送模式

目标节点

发送模式

中心节点

广播

网内所有非中心节点

数据直接发送

主从或点对点

目标地址的节点

目标地址+数据

非中心节点

广播

网内所有非中心节点

数据直接发送

主从

中心节点

数据直接发送

点对点

目标地址的节点

目标地址+数据

2.数据发送帧格式如表15所示。

表15数据发送帧格式

发送模式

数据编码

数据帧格式

数据直接发送

不需要做任何变动

目标地址+数据

16进制目标地址

2字节目标地址+数据

ASCII目标地址

4字节目标地址+数据

1.4.7硬件连接

图4Zigbee与Min270之间的硬件连接

其中引脚11和10分别连到主板的地和电源;引脚12和13分别连接到主板ExternB1区的TXD和RXD;引脚9和18分别连接到主板ExternB1区的SP1TXD和SP1RXD。

1.5实验步骤

1)准备实验环境。

将mini270核心子板插到主板接口槽上,将实验平台上电运行。

2)按照基于《Xscale270嵌入式WindowsCE开发实验与实践》中所讲的将对应驱动ZGB添加到系统映像NK.bin中。

将此映像烧写到Min270中。

3)将两个Zigbee模块分别插到两个试验箱的ExternB区,打开主板电源,等待WindowsCE6.0系统运行起来。

启动后,将Embest_Zigbee.exe(通过编译Embest_Zigbee.exe应用程序工程得到)通过SD卡拷贝到已经运行了WindowsCE6.0的EduKit-IV实验平台中运行(也可以通过同步软件ActiveSync将程序直接传送到实验平台)。

双击运行,出现如下图界面:

图5Embest_Zigbee应用程序初始界面

4)单击上图中的Open按钮,来打开对应串口驱动。

若打开成功出现如图6所示界面。

图6打开串口驱动成功后的界面

5)在单击Configure按钮进入配置界面,如图7所示。

界面左边为默认配置选项,可以改变成自己希望的配置。

图7Zigbee模块配置参数输入界面

6)在单击Apply按钮来提交配置参数,等待配置完成,如图8所示。

配置完成后进入如图9所示界面。

图8Zigbee模块配置等待界面

图9Zigbee模块配置完成界面

7)依次配置网内的每个Zigbee模块,配置完成后,各模块之间就可以相互通信了。

此出将各Zigbee模块都设置成对等网的终端设备。

如下演示地址分别为0001和为0002的两个Zigbee模块之间的通信。

8)首先地址为0001的Zigbee模块给地址为0002的Zigbee模块发送3344。

方法为在发送文本框中输入00023344,然后单击Send按钮,也就将数据发送出去了。

如图10所示。

图10Zigbee模块发送数据界面

9)在地址0001向0002数据后,0002会收到数据,如图11所示。

图11Zigbee模块接收数据界面

10)在对等网模式下,当两个终端节点之间的距离在有效覆盖范围之外时,可以在他们之间加上若干个路由节点,使得他们之间形成一条通路。

之后之两个终端节点就可以通过路由节点转发来相互通信。

1.6参考程序

●串口读数据线程函数:

这个函数负责不断读取试验箱上COM1中的数据。

//串口读线程函数

DWORDCSerial:

:

ReadThreadFunc(LPVOIDlparam)

{

CSerial*ceSeries=(CSerial*)lparam;

DWORDevtMask;

BYTE*readBuf=NULL;

DWORDactualReadLen=0;

DWORDwillReadLen;

DWORDdwReadErrors;

COMSTATcmState;

//清空缓冲

ASSERT(ceSeries->m_hComm!

=INVALID_HANDLE_VALUE);

//清空串口

PurgeComm(ceSeries->m_hComm,PURGE_RXCLEAR|PURGE_TXCLEAR);

SetCommMask(ceSeries->m_hComm,EV_RXCHAR|EV_CTS|EV_DSR);

while(TRUE)

{

if(WaitCommEvent(ceSeries->m_hComm,&evtMask,0))

{

SetCommMask(ceSeries->m_hComm,EV_RXCHAR|EV_CTS|EV_DSR);

if(evtMask&EV_RXCHAR)

{

ClearCommError(ceSeries->m_hComm,&dwReadErrors,&cmState);

willReadLen=cmState.cbInQue;

if(willReadLen<=0)

{

continue;

}

readBuf=newBYTE[willReadLen];

ReadFile(ceSeries->m_hComm,readBuf,willReadLen,&actualReadLen,0);

if(actualReadLen>0)

{

((CEmbest_ZigbeeDlg*)(ceSeries->m_pPortOwner))->response(readBuf,actualReadLen);

}

delete[]readBuf;

}

}

if(WaitForSingleObject(ceSeries->m_hReadCloseEvent,500)==WAIT_OBJECT_0)

{

break;

}

}

return0;

}

●Zigbee应用程序对所读到的串口数据的处理函数:

这个函数负责对从串口中读到的数据做进一步处理。

其中cfgmode用来标志是否处于配置模式。

voidCEmbest_ZigbeeDlg:

:

response(BYTE*buf,intbufLen)

{

if(cfgmode==1)SetEvent(CFGEvent);

else

{

buf[bufLen]='\0';

CStringstrShow(buf);

m_ReceiveData=m_ReceiveData+strShow;

GetDlgItem(IDC_EDIT6)->SetWindowText(m_ReceiveData);

}

}

●获取配置参数函数:

这个函数负责将窗体配置界面上的用户输入参数转化为可以直接写到Zigbee模块的数据格式,并检查参数是否合乎要求。

此函数最后有几个判断是用来检查用户输入的参数之间是否有冲突的,若有则提示用户重新输入。

intCEmbest_ZigbeeDlg:

:

getconfig(void)

{

CComboBox*pComboBox;

intselect;

intlength;

inttemp0,temp1,temp2,temp3,temp4;

char*buffer=NULL;

inti;

pComboBox=(CComboBox*)GetDlgItem(IDC_COMBO1);

select=pComboBox->GetCurSel();

switch(select)

{

……

}

pComboBox=(CComboBox*)GetDlgItem(IDC_COMBO2);

select=pComboBox->GetCurSel();

temp1=select;

switch(select)

{

c……

}

pComboBox=(CComboBox*)GetDlgItem(IDC_COMBO3);

select=pComboBox->GetCurSel();

temp0=select;

switch(select)

{

……

}

GetDlgItem(IDC_EDIT1)->GetWindowText(temp__id);

length=temp__id.GetLength();

buffer=(char*)(LPCTSTR)temp__id;

if(length!

=2)

{

……

}

else

{

for(i=0;i<4;i=i+2)

{if(!

(((buffer[i]>='0')&&(buffer[i]<='9'))||((buffer[i]>='a')&&(buffer[i]<='f'))||((buffer[i]>='A')&&(buffer[i]<='F'))))

{

……;

}

}

}

pComboBox=(CComboBox*)GetDlgItem(IDC_COMBO5);

select=pComboBox->GetCurSel();

temp2=select;

switch(select)

{

……

}

GetDlgItem(IDC_EDIT2)->GetWindowText(temp_cfg.mac

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

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1