APP下载

GSM的无线网网关设计

2014-09-06,,

机械与电子 2014年10期
关键词:队列日志网关

,,

(1.西安航天自动化股份有限公司,陕西 西安 710065;2.罗克韦尔自动化(中国)有限公司,陕西 西安 710075)

GSM的无线网网关设计

李墨翰1,张建奇1,党洪涛2

(1.西安航天自动化股份有限公司,陕西 西安 710065;2.罗克韦尔自动化(中国)有限公司,陕西 西安 710075)

针对智能家居、环境监测等的实际要求,设计了一种远距离通讯的无线传感器网网关。硬件上使用了CC2530外接CC2591为无线传感网络端,GPRS模块M35为移动网络通信端,ATmega128A单片机作为协议转换单元。利用AT指令集、Z-Stack协议栈等软件,完成了从移动网络到无线传感网络的数据传输。通过网关可实现移动手持设备到无线传感网络各个终端的查询、控制以及报警等功能。

GSM;ZigBee;单片机;网关;短信

0 引言

随着物联网技术的兴起,无线技术开始越来越受到人们的重视,ZigBee是一种新兴的近距离、低复杂度、低功耗、低数据速率和低成本的无线网络技术,主要用于近距离无线连接。而GSM网络通信的成熟技术,使数据能够跨越地域限制地传输到远程用户监控端。基于GSM网络的工业物联网网关设备,将近距离的ZigBee无线通信技术与远距离GSM无线通信技术有机结合,实现了小范围的分散数据点到远距离控制中心或移动设备的控制监视功能,能够广泛应用在农业物联网[1]、智能家居[2]等场合。本网关具有结构简单、工作稳定可靠、功耗低和成本低等特点[3],符合物联网发展方向。

1 网关的总体设计

GSM无线网网关能够智能管理ZigBee无线终端,将终端上的传感器信息或报警信息通过GSM网,以发短信的方式,发送到远程控制中心或者移动设备上,还可以通过短信的方式接收指令,并对ZigBee无线终端进行控制或管理。GSM的无线网系统如图1所示。

图1 系统结构

2 网关的硬件设计

GSM无线网网关硬件主要由ZigBee模块、主控模块、GSM通信模块、时钟模块、存储模块以及供电模块构成。

ZigBee模块核心采用TI公司的CC2530及CC2591来构成,网关中的ZigBee模块在无线网中扮演协调器角色[4],实现了无线网络的组网管理以及数据采集的工作[5]。

主控模块使用了Atmel公司的8位单片机ATmega128A;GSM通信模块使用集成模块M35,通过UART接口和单片机通信;时钟模块使用DS1302芯片外加纽扣电池,保证了系统时钟不会因掉电而丢失,通过模拟I2C接口和单片机通信;存储模块使用了1GB的SD卡,通过SPI接口和单片机相连。电源模块使用了NI的LM25575芯片,将24 V的输入电压转换成5V,供系统使用。

3 系统软件设计

软件分为4个部分:GSM网短信收发控制部分,ZigBee无线网络管理,时钟及日志,网络数据收发处理部分。

3.1 数据收发处理

一个GSM网关组成的网络可以存在多个终端节点,并且每个终端节点会以一定的频率向网关传递数据信息。因此,网关的ZigBee协调器,需要以较高的频率及速率处理来自每个终端节点的数据,并且判断其是否需要发送短信。

当协调器接收到终端节点的数据后,数据不经任何处理就传送给ATmega128单片机,由ATmega128单片机对数据进行分析处理。这样,协调器只负责ZigBee无线网络的组网和维护工作,从而提高了协调器对无线数据的响应速度。

GSM无线网关软件采用前后台设计的方法,其中,前台程序,即中断处理程序将接收到的ZigBee模块透传数据,以及短信命令,进行处理后把结果提交到后台;后台程序,即程序的主循环部分,负责接收由前台程序传送的消息,并且作进一步的处理。

在发短信时,为了避免GSM模块发送短信速度较慢带来的消息覆盖问题,设计中采了多缓冲区机制。为前台传递的短信等待、日志消息和短信命令3种类型的消息,建立了各自独立的消息队列,这样可以保证消息的发送不会被覆盖耽误,从而确保了系统的可靠性与稳定性。消息队列采用FIFO的方式。

在收到用户的短信时,命令会发送到无线终端网络的指定终端,并且根据反馈信息短信回复给用户。短信命令队列每一条消息都有2种状态,即待下发和已下发,程序会对已下发的命令进行定时扫描,当回复超时时会给用户发送报错短信。

根据以上设计,主循环程序中只要不断检测3个队列的长度是否不为零,即表示队列中有需要发短信,需要记录日志的消息或者需要发送给ZigBee无线终端网络的命令。在GSM网关程序主循环中不断检测队列长度,当队列长度不为零时,取出队列元素进行相应操作,提高了系统的可用性。

GSM网关主循环程序中3个队列处理过程类似,其中处理短信队列的流程如图2所示。

3.2 短信收发

GSM网关短信模块的硬件主要由上海移远M35GSM模块组成,外加SIM卡插槽,用来安装手机SIM卡。

M35GSM模块支持的协议包括PPP,TCP/IP,UDP,FTP和HTTP等。

GSM网关软件主要通过串口与M35模块进行AT指令的收发[6-7]。

每当前台程序检测到需要短信发送的信息(如报警信息、查询信息和指令回复等)时,便会向短信等待队列和日志队列中插入1条信息。

插入日志队列及短信队列的信息是相同的,但检测日志队列长度的过程与检测短信队列的过程有所区别,基于以下考虑:由于短信需要通过串口向M35模块发送AT指令,相对于写日志的过程而言,写日志是通过SPI高速总线完成的,所以写日志的速度明显会比发送短信的速度要快。因此,本软件在主循环中进行了优化,在处理每一条短信等待队列信息的同时,会处理日志队列长度的一半数据的日志请求,以最大限度地提高系统的响应速度。

短信的发送需要设置短信的字符集格式、编码和接收模式等参数,在设置完毕后,需要向GSM模块写入接收短信的手机号码以及短信内容,短信内容采用Unicde编码,以实现中文短信的发送[8]。

为了最大限度地提高系统的并行响应速度,短信接收软件同样采用前后台方式,即程序不会在短信发送的3~5s之间同步等待,中断接收到短信及短信成功发送报告时,消息数据交由后台程序处理。

3.3 时钟及日志

时钟模块硬件部分采用DS1302芯片实现,和ATmega128通过模拟SPI口的方式通信。

时钟模块软件部分为2步进行:

a.初始化实时时钟,对DS1302的相应寄存器写入现在的时刻。

b.产生日志信息时读取当前时钟值,DS1302读取的时间为字符串。

网关使用SD作为日志信息的存储介质,为了方便使用PC机读写SD卡,网关在SD卡上实现了FAT32文件系统。FatFs是一个为小型嵌入式系统设计的通用FAT文件系统模块。FatFs的编写遵循ANSIC,并且完全与磁盘I/O层分开。因此,它独立于硬件架构,可以被嵌入到低成本的微控制器中。

在使用时,首先,要对FatFs文件系统的底层SPI驱动进行重写,其次,需要根据使用的SD卡类型及标准,编写SD卡初始化及复位代码。系统所采用的SD卡遵循SD2.0标准,因此,根据SD2.0的相关标准定义。SD卡的初始化的代码为:

void SPI_Init(void)

{

SPI_PORT = (1<< SPI_SS) | (1<

SPI_DDR = (1<< SPI_SS) | (1<

}

FatFs提供了读写接口,用户可以使用这些接口进行相关FAT32命令操作,包括挂载工作区、创建文件和读写文件等[9]。

日志记录主要完成对报警信息的实时本地记录,方便用户作日后查看参考。日志记录需要读取当前时间,并把发送的短信连同时间信息一同写入SD卡的指定文件中,程序流程如图3所示。

图3 写日志流程

FatFs调用接口如下:

f_write(&logfl,buf,strlen(buf),&nwrite);

f_sync(&logfl);

f_write用于写入数据,f_sync用于同步数据,将数据即时刷新到硬件中。

3.4 ZigBee无线网络

ZigBee无线网络共有3种设备类型,分别是协调器、路由器和无线终端节点。协调器负责建立网络以及允许节点加入网络、分配短地址等;路由器负责路由数据,路由器没有定时休眠功能;终端节点只有I/O功能,具备定时休眠能力。

ZigBee无线网络协议通过TI的Z-Satck协议栈来实现,无线网络拓扑采用网状网结构。Z-Stack采用操作系统的思想来构建,使用事件轮询机制,当各层初始化之后,系统进入低功耗模式,当事件发生时,唤醒系统,开始进入中断处理事件,结束后继续进入低功耗模式。如果同时有几个事件发生,判断优先级,逐次处理事件。这种软件构架可以降级系统的功耗。同时只需要编写应用层程序,就可以实现ZigBee无线网络的应用开发,而不需要将过多的精力投入到网络协议的具体细节中[10]。

GSM无线网网关与无线终端通过以下数据结构组织通信数据:

union RfRx_t{

uint8RxBuf[RF_MAX_PAYLOAD_SIZE];//802.15.4标准最大有效数据长度

struct RFRXBUF{

//帧类型。0表示命令帧;1表示数据帧;2表示应答帧

uint8frameType;

//终端节点编号

uint8stationNum;

//终端节点类型

uint8stationType;

//终端节点状态

uint8stationStatus;

//数据类型

uint8dataType;

//有效数据总长度,应答帧数据长度为0

uint8dataLength;

//有效数据缓冲区,低位对齐,最后一字节存储SUM校验码

uint8data[RF_MAX_PAYLOAD_SIZE-6];

}RXDATA;

}RfRx;

系统上电后,将根据程序配置数据,在指定的信道中,建立网络号为PANID的网络,部分源代码如下:

-DDEFAULT_CHANLIST=0X04000000//channel 26

-DZDAPP_CONFIG_PAN_ID=0X0022//PANID:0x0022

此时,当网络中有无线终端节点上电,只要和网关有相同的信道号与网络标识号,无线终端节点就会自动加入到该网络。若加入网络成功,会触发协议栈中的ZDO_STATE_CHANGE消息,通过应用程序在应用层接收到该消息,确认后便可以正式开始无线终端的工作流程。

当无线终端加入网络后,需要先与协调器实施绑定。绑定过程在协议栈应用层实现,无线终端读取自身的拨码值与短地址,按照上述协议数据结构,封装成命令帧发送给协调器,部分源代码如下:

ScrSaddr=NLME_GetShortAddr();//取得短地址

Station_id=get_stationID();//取得站号

BuildMsg(ScrSaddr,Station_id);//封装命令帧

SendData(0x0000,RfTx.TxBuf,2+PACKET_WITHOUT_DATA+1);//向协调器报告

DeviceStatus=WAIT_CMD_CONFIRM;//进入状态机的WAIT_CMD_CONFIRM状态

//开启命令帧应答超时定时器

osal_start_timerEx(App_TaskID,WAIT_CONFIRM_MS_EVT,WAIT_CONFIRM_TIMEOUT);

协调器接收到命令帧,经确认无误后,在本地RAM中记录站号与短地址的对应关系,并回复命令应答帧给相应的无线终端节点。至此,无线终端节点的绑定过程结束。如当协调器有控制数据需要下发时,只需要先查表,根据站号查出对应的短地址,便可发送至目的无线终端节点。

4 结束语

经实际使用检测,GSM无线网网关可以通过短信实现远距离信息传输、控制等功能。网关的发射功率、接受灵敏度、通信距离、误包率和速度满足现场使用需求。系统具有低功耗、方便布置和编程使用简单可靠等优点,随着物联网技术的兴起和发展,在智能家居、农业物联网方面具有良好的应用前景。

[1] 孙丘伟,余 臻.基于GSM的短信报警收发平台设计[J].福州大学学报:自然科学版,2008,36(增刊1):44-48.

[2] 沈兆军,毛 敏.利用GSM短信息业务实现智能家居[J].微计算机信息,2006,22(3):211-213,216.

[3] 宣彩平,王 皓,邹国良.利用GSM无线模块发送短消息[J].计算机应用,2004,24(5):148-150.

[4] 杜焕军,张维勇,刘国田.ZigBee网络的路由协议研究[J].合肥工业大学学报:自然科学版,2008,31(10):1617-1621.

[5] 杨 顺,章 毅,陶 康.基于ZigBee和以太网的无线网关设计[J].计算机系统应用,2010,19(1):194-197.

[6] 邢建春,方虎生,王 平,等.基于GSM通信技术的无线测控系统设计[J].计算机测量与控制,2004,12(4):345-348.

[7] 马士宝,张国玉,孙向阳,等.基于GSM模块的无线报警系统设计[J].长春理工大学学报:自然科学版,2009,32(1):51-53.

[8] 梁湖辉,张 峰,常 冲,等.基于ZigBee的变电站监测报警系统[J].电力系统保护与控制,2010,38(12):121-124.

[9] 张高群.电力系统应用ZigBee技术初步研究[J].电子测量技术,2008,31(11):83-86,106.

[10] 何杏宇,张 浩,彭道刚.ZigBee技术在工业环境监测系统中的应用研究[J].机电一体化,2008,14(7):34-37.

Design of Wireless Gateway for GSM

LIMohan1,ZHANGJianqi1,DANGHongtao2

(1.Xi’an Aerospace Automation Co.,Ltd.,Xi’an 710065,China;2.Rockwell Automation (China),Xi’an 710075,China)

For the practical requirements of the smart home,environmental monitoring,a wireless sensor network gateway,which has long-range communication capability is designed.In hardware designing,CC2530and CC2591work as wireless sensor network terminal,GPRS module M35achieved communication with the mobile network,and ATmega128A is used as network protocol conversion unit.Data transmission between the mobile network and the wireless sensor network is realized by the AT command set and the Z-Stack.The inquiry,controlling and alarm ofthe wireless sensor network terminals can be achieved by the mobile device through the wireless sensor network gateway.

GSM;ZigBee;MCU;gateway;SMS

2014-02-10

TP273.5

A

1001-2257(2014)10-0017-04

李墨翰(1984-),男,陕西西安人,工程师,主要从事电子线路板设计及物联网技术的研究工作;张建奇(1975-),男,陕西西安人,硕士,高级工程师,主要从事物联网与自动控制技术的研究工作;党洪涛(1980-),男,陕西西安人,工程师,主要从事自动控制技术的研究工作。

猜你喜欢

队列日志网关
一名老党员的工作日志
扶贫日志
队列里的小秘密
基于多队列切换的SDN拥塞控制*
在队列里
游学日志
丰田加速驶入自动驾驶队列
LTE Small Cell网关及虚拟网关技术研究
应对气候变化需要打通“网关”
一种实时高效的伺服控制网关设计