基于ARM9的家居无线通信系统设计与实现(4)_毕业论文

毕业论文移动版

毕业论文 > 计算机论文 >

基于ARM9的家居无线通信系统设计与实现(4)


4.1 ZigBee通信模块的实现
4.1.1 网络拓扑结构
ZigBee主要采用了3种组网方式:星型网、网状网和簇状网。本系统采用行型网络拓扑结构。在星型网中,一个功能强大的主器件位于网络的中心,作为网络协调者,其它的主器件或从器件分布在其覆盖范围内。由于网络协调者定义了整个网络的时分复用和多址接人方式,因此星型网的控制和同步都比较简单,通常用在设备数量比较少的场合。
4.1.2 ZigBee模块通信实验的主要步骤
(1)准备实验环境。将mini270核心子板插到主板接口槽上,将实验平台上电运行。
(2)将对应驱动ZGB添加到系统映像NK.bin中。将此映像烧写到Min270中。
(3)将两个Zigbee模块分别插到两个试验箱的Extern B区,打开主板电源,等待Windows CE 6.0系统运行起来。启动后,将Embest_Zigbee.exe(通过编译Embest_Zigbee.exe应用程序工程得到)通过SD卡拷贝到已经运行了Windows CE 6.0的EduKit-IV实验平台中运行(也可以通过同步软件ActiveSync将程序直接传送到实验平台)。双击运行。
在单击Configure按钮进入配置界面,如图7所示。界面左边为默认配置选项,可以改变成自己希望的配置。
 
图4  Zigbee模块配置参数输入界面
7)依次配置网内的每个Zigbee模块,配置完成后,各模块之间就可以相互通信了。此出将各Zigbee模块都设置成对等网的终端设备。如下演示地址分别为0001和为0002的两个Zigbee模块之间的通信。
8)首先地址为0001的Zigbee模块给地址为0002的Zigbee模块发送3344。方法为在发送文本框中输入00023344,然后单击Send按钮,也就将数据发送出去了。如图所示。
 
图5  Zigbee模块发送数据界面
9)在地址0001向0002数据后,0002会收到数据,如图11所示。
 
图优尔  Zigbee模块接收数据界面
4.2 GPRS通信模块的实现
本小节通过GSM/GPRS模块用AT指令发送和接受短消息。
GPRS的TCP/IP数据包有固定的格式,用户必须按照GPRS的TCP/IP数据包有固格式发送和解析数据包。GPRS在TCP/IP通信时数据帧格式为:“AT%IPSEND=“DATA””,其中,“%IPSEND=”是启动TCP/IP发送命令字符串,双引号里面的DATA是用户发送的数据GPRS接收端接收IP数据包格式为:“%IPDATA:<LEN>,“DATA””,其中,“%IPDATA:”为接收数据帧包头,LEN为接收到用户发送过来的字节数,一共占用两个字节,DATA是用户发送过来的数据。[8]
(1)配置串口
设置串口为每秒位数设为115200,数据位为8,关闭奇偶校验,数据流控制采用硬件方式,停止位为1。[9]
WinCE 的串口驱动不支持重叠,如果这样收和发就要分开. 要接收串口数据就必须创建一个线程专门用于接收数据. 串口的配置不需要设置很多参数,默认的配置大部分是不需要修改的. 一般改动就是波特率、位数、奇偶校检等几项. 超时值是需要改动的. ReadInterval Timeout 是指两个字符传送之间的超时时间. 一次写操作的超时时间等于Write Total TimeoutMultiplier 乘以要发送的字符数加上Write Total TimeoutConstant ,单位是毫秒. 读操作的超时和写类似,所以设置超时是一个关键,设置太小可能丢失数据。[10]
(2)发送数据
发送数据的流程设计如图所示:
     
 
图7 发送数据流程图
主要代码如下:
hwndSText = GetDlgItem(hWnd , ID_SENDTEXT) ;
GetDlgText = (hwndSText ,szText ,dim( szText) ) ;
WriteFile (hSerial , / / 句柄
szText , / / 数据缓冲区地址
lstrlen(szText ) 3 sizeof (TCHAR) , / / 数据大小
&cBytes , / / 返回发送出去的字节数 (责任编辑:qin)