机场智能驱鸟系统中的网关设计

2020-04-07 10:15刘玉芬1郭志雄1陈裕通刘志刚
计算机测量与控制 2020年3期
关键词:煤气数据包串口

刘玉芬1,郭志雄1,陈裕通,刘志刚

(1.华南理工大学广州学院 电气工程学院,广州 510800;2.广州民航职业技术学院 航空港管理学院,广州 510403)

0 引言

鸟类的飞行大约起始于一亿五千万年前,而人类的飞行则大约是在100年前。显而易见的是,人类因鸟类能在天空中展翅飞翔而激起了对飞行的渴望,并最终实现了飞行的愿望。然而需要与鸟类共享一片天空,这就必然会发生矛盾——鸟击(或称鸟撞)。

2017年中国民用航空局公布了近6年的鸟撞数据,根据这些数据可以得到如图1所示的趋势图。从图1可知,2007~2016年的鸟撞事故征候次数虽然相对保持在一个较低的水平,但在平稳中亦有增长,而鸟撞的次数则在不断地增加且增长的速度更是呈现逐年递增的趋势。

图1 2007~2016年鸟击及鸟击事故症候数量

鸟撞具有必然性、危害性、普遍性以及规律性等特点,必须寻找有效的办法来遏制此类事件的发生。当前机场上所使用的驱鸟方法如表1所示,其基本都是在对鸟类各生物特性进行研究后所提出的方法,因此具有一定的局限性。这些方法在引进初期确实会有一定的效果,但时间长了其使用效果就会大大地降低,以致机场内的鸟撞事件逐年上升。

表1 机场常用驱鸟方法

近年,航空安全的问题已引起了人们的高度重视,在2017年8月更是召开了首届航空保障设备发展论坛,将机场驱鸟设备的效果不佳问题作为一个重要研究专题。从现有的研究成果来看,国内外学者所提出的改进驱鸟效果的方法主要分为两类,即设备改进法与设备联动法。其中设备联动法由于机场地理环境的特性,导致设备联动的范围受到限制,怎么实现远程数据的传输与控制是亟待解决的问题。本文结合现有驱鸟设备与机场地理环境的特性提出以STM32(ST意法半导体公司推出的32位MCU微控制器)为核心处理器,融合Zigbee技术与GPRS(General Packet Radio Service,通用分组无线业务)技术网络最终实现数据交换和远距离传输和控制。

1 系统设计和网关功能

驱鸟联动系统主要由传感器节点、路由节点、网关以及监控中心四部分组成,如图2所示。各传感器节点通过Zigbee短距离无线通信技术构成自组网络,监控中心与无线网关之间则通过GPRS进行设备状态信息及控制命令的传递。每个传感器节点通过燃气压力传感器、微动开关、限位开关以及电池电量检测电路等器件自动地采集设备信息,并结合预设的上下限值进行分析,判断是否需要对设备进行维护。对于使用了太阳能电池进行供电的设备,其电池电压被随时监控,一旦电量过低就会由节点发出报警信号并强制节点进入睡眠状态直到电池电量充满为止。网关用于连接GPRS网络与Zigbee无线网络,负责传感器节点与路由节点的管理。

图2 系统总体组成框图

本系统根据某空军机场场务部的需求,提出了采用物联网技术、图像识别技术、计算机技术及嵌入式技术等设计的驱鸟联动系统方案,系统结构图如图3所示。系统采用了Zigbee网络与短波网络交互的方式进行组网,以实现有效覆盖整个机场区域的目的。在网络的覆盖区域内,只需要将煤气炮、钛雷炮、二踢脚、拦鸟网、摄像头及语音驱鸟器等驱鸟设备接入网络,即可实现鸟情状况、设备状态的信息查询以及相关控制命令的发送等功能。

图3 驱鸟联动系统拓扑图

用于捕捉鸟情的设备采用了4G(第四代移动通信及其技术)无线视频监控的方案,以保证图像清晰、实时、高速的传输。手持机与一般的手机不同,其装载了能够接入Zigbee无线传感网的相关模块,不仅保证了和接入Zigbee 网络中的煤气炮、拦鸟网、钛雷炮、二踢脚以及语音驱鸟器等设备进行通信,还可以保证驱鸟工作的及时开展。网关通过移动通信网络与主站进行通信,从而实现上位机与底层驱鸟设备的远程通信,完成控制命令的解析、发送、下发与处理等工作。同时,拦鸟网、煤气炮、二踢脚、钛雷炮与及语音驱鸟器等设备的工作状态感知数据也会通过网关反馈到上位机,为上位机监控各个设备的工作状态提供数据。

2 Zigbee-GPRS网关设计

无线传感器网络需通过网关与主站进行通信网络的相连,为无线短波网络和无线传感器网络提供数据通信的桥梁。网关的系统结构如图4所示,从图中可知网关通常与汇聚节点放置在同一个设备内。传感器节点或终端节点采集到场内驱鸟设备的信息后便将其发送至汇聚节点进行数据打包与发送,但因汇聚节点无法单独地与外网进行通信,因此网关利用串行通信的方式读取其数据,然后再通过外网发送至主站。考虑到设备终端节点的数据汇聚到网关后,其数据量并不是特别大,因此确定了以STM32为核心处理器并结合CC2530、CC2591以及GPRS模块构建驱鸟智能系统的网关,并设计实现Zigbee端与驱鸟设备间约为400 m的通信距离,发射功率在+20 dBm以上、接受灵敏度约为-90 dBm的性能指标;而GPRS模块则使用SIM900A为主要模块,实现对机场范围内的全覆盖。

图4 WSN网关系统结构

2.1 硬件电路设计

根据对系统功能以及性能的需求分析与研究,本文设计的网关系统结构图如图5所示。该系统由主控器、Zigbee通信模块以及GPRS通信模块组成。其中,GPRS通信模块负责网关与主站的通信,Zigbee通信模块则作为协调器负责与Zigbee相关节点通信,而处理器作为中间桥梁负责GPRS与Zigbee间的数据转换。

图5 Zigbee转GPRS网关模块总体结构图

针对网关各模块的硬件本文作了如下选择:Zigbee无线通信模块采用CC2530+ CC2591方案;MCU(Microcontroller Unit,即主控制器)的核心处理器选用ST公司的STM32F107VCT6;GPRS无线通信模块则使用SIM900A模块。由于STM32F107VCT6属于ARM系列的高性能处理器,具有数据处理能力强、内存容量大、资源丰富等特点,因此选用它作为控制器的核心处理器;此外,选用SIM900A模块的原因则是该模块的板载资源丰富且易于操作。由于SIM900A与CC2530模块都有串口,因此设计中使用了串口将SIM900A、CC2530模块与STM32F107VCT6进行硬件连接,具体方案如图6所示。

图6 网关节点设计方案

SIM900A模块是SIMCOM公司生产的一款工业级GSM/GPRS模块,包含了GSM 基带、GSM射频、存储器、TTL 接口、电源输入接口、电源指示灯、信号指示灯、电源开关、自锁式SIM卡座、天线接口、开机/关机按键以及引出I/O口等,具有较为丰富的资源,其功能模块框图如图7所示。在调试该模块时可通过USB转串口模块将其与计算机进行连接,然后打开串口调试工具即可使用AT命令对其进行操作。

图7 SIM900A功能模块图

2.2 软件设计

SIM900模块与STM32间可通过串口进行通信与控制,在程序设计中主要使用用了C语言程序进行编程,而在操作SIM900模块时系统所调用的函数为sim900a_send_cmd( ),结合AT命令即可对模块进行相关的操作。

void sim900a_sms_send_test(void)

{

……

p=mymalloc(SRAMIN,100); //申请100个字节的内存,用于存放电话号码的unicode字符串

p1=mymalloc(SRAMIN,300);//申请300个字节的内存,用于存放短信的unicode字符串

p2=mymalloc(SRAMIN,100);//申请100个字节的内存 存放:AT+CMGS=p1

while(1){

if(smssendsta){

smssendsta=0;

Show_Str(30+40,70,170,90,"等待发送",16,0);

}

delay_ms(10);

smssendsta=1;

sim900a_unigbk_exchange(phonebuf,p,1); //将电话号码转换为unicode字符串

sim900a_unigbk_exchange((u8*)sim900a_test_msg,p1,1);//将短信内容转换为unicode字符串.

sprintf((char*)p2,"AT+CMGS=”%s”",p);

……

if(sim900a_send_cmd(p2,">",200)==0){

//发送短信命令+电话号码

LED2=0;

u2_printf("%s",p1); //发送短信内容到GSM模块

delay_ms(90); //必须延时,否则 不能发送短信

if(sim900a_send_cmd((u8*)0X1A,"+CMGS:",1000)==0)smssendsta=2;//发送结束符,等待发送完成(最长等待10秒钟,因为短信长了的话,等待时间会长一些)

}

USART2_RX_STA=0;

break;

}

if((timex%20)==0)

LED3=!LED3;//200ms闪烁

timex++;

delay_ms(10);

……

if(USART2_RX_STA&0X8000)sim_at_response(1);//检查从GSM模块接收到的数据

myfree(SRAMIN,p);

myfree(SRAMIN,p1);

myfree(SRAMIN,p2);

……

}

常用的与短信功能相关的AT命令如表2所示。

表2 短信功能AT命令

在收发短信的工作模式上,一般有文本模式和PDU模式两种。文本模式比较简单,PDU模式格式复杂但能够进行灵活的设置。PDU模式将短消息中心信息、编码方案信息和用户数据等进行统一的编码,形成规定格式的 PDU 串,最后以二进制方式来进行收发。

由于SIM900A模块已内置了TCP/IP协议,因此网关MCU只需向该模块发送相关的AT指令即可与目标上位机建立TCP/IP连接,实现GPRS网络传输过程。GPRS连接的流程图如图8所示,STM32F107VCT6通过UART1向SIM900A写入AT命令,使SIM900A模块与远端的上位机建立TCP或UDP连接,从而实现数据的远程传输。

图8 GPRS连接建立过程

在使用SIM900A建立GPRS连接后,STM32F107VCT6还需与Zigbee协调器共同完成网关的功能,具体程序流程如图9所示。

图9 MCU程序处理流程图

3 实验测试

由于外场的驱鸟设备与服务器间有一定的连接距离,除了需要实现短距离的传输外还需解决服务器与终端之间的传输。因此除了需要ZigBee无线网络的短距离传输的路由节点外还需要实现远距离传输的网关节点,这直接影响到了整个驱鸟联动系统的网络通信质量与控制的距离,有必要对其进行相关的测试。

3.1 数据通信测试

Texas Instrument Packet Sniffer为Zigbee网络常用的数据包抓取软件,利用该软件可以分析Zigbee网络的数据传递信息。为了测试所设计的路由节点功能本文使用了Packet Sniffer进行数据包抓取实验并得到数据包。每个数据包都由很多段组成,这是与ZigBee协议一一对应的,其数据包格式如图10所示。因为ZigBee协议栈是按照分层结构去实现的,故在显示数据包时使用了不同的颜色。在下位机组建网络的过程中,一旦网络层管理实体确定好一个PANID,便会即刻选择一个0x0000的16位网络地址。而路由节点和终端节点在没有加入网络时使用的是64位物理地址,只有在成功入网后才会给予一个“合法ID号”即16位短地址,其目的就是为了减少资源占用、降低发射功率,提高通信的有效性指标。

图10 ZigBee数据包格式

从Packet Sniffer抓取的数据包可以知道终端节点、路由节点以及网关已建立了正常的通信网络,实现了驱鸟设备间的正常通信。

3.2 设备通信测试

当USB线与下位机连接好后,在主界面通过串口连接功能实现软件上的连接。开启相应的设备后,可在串口打印窗口观察到发送命令数据,这表明串口已正常工作,并且能与下位机通信。当USB与下位机断开连接后,在软件上无法实现软件连接,这符合预期。

3.3 设备控制测试

场内驱鸟设备有煤气炮、钛雷炮、语音驱鸟器、拦鸟网、二踢脚等设备,本文以煤气炮的设备通信作为测试设备。

煤气罐图标直观地显示气罐中的煤气量,分红色、黄色、浅绿色和深绿色四个档,当显示红色时,表示煤气量不足,需要更换煤气罐。煤气量不足时,左侧设备基本信息栏中的气罐压力接近100 kPa,也就是接近大气压。当煤气炮关机时,设备状态为“关闭”,设备图标显示灰色;煤气炮开机时,装备状态为“可控”,装备图标显示黄色。点击“刷新”按键获取煤气炮状态,即气罐压力和蓄电池电压。点击“发射”按键,旁边的指示灯闪烁,表示煤气炮正在发射。发射完成后,开始发射间隔倒计时(15 秒),倒计时结束后,方可再次发射,其控制界面如图11所示。由测试结果可知,路由节点已实现了对终端设备的正常控制。

图11 煤气炮发射控制界面

系统搭建好后,还需对其作出客观性的评估以证实使用该系统后场内驱鸟效果具有一定的提升。设备的评估方法使用的是观测法,即在机场不同功能区安排对应的工作人员蹲点观察记录,对场内常见的38种鸟类的飞行路线进行记录(如图12~13为戴胜与家燕的飞行轨迹示意图),并通过鸟类的飞行路线分析设备的驱赶效果。每一种鸟的观察数量都为100只,根据观察人员绘制的飞行路线及逗留时间判断设备的驱赶效果。从鸟类飞行路线轨迹示意图对比可知,使用该驱鸟联动系统后机场驱鸟的效果具有一定的提升。

图12 戴胜飞行轨迹示意图

图13 家燕飞行轨迹示意图

4 结束语

本文针对机场智能驱鸟系统中传感器网络(Zigbee网络)需要与外网进行数据传输的问题,提出了 “STM32F107VCT6 + CC2530 + CC2591 + SIM900A”的方案,即Zigbee网络与GPRS网络融合组网进行传输。设计的ZigBee-GPRS网关,实现了智能驱鸟系统中驱鸟设备与用户间数据的实时交互与远程控制以及监测的功能。

猜你喜欢
煤气数据包串口
二维隐蔽时间信道构建的研究*
煤气泄漏
基于EM9000工控板高性能双串口通信模型设计与实现
C#串口高效可靠的接收方案设计
MCS—51单片机中的多串口通讯技术的应用
网络数据包的抓取与识别
煤气作业常见隐患
煤气为什么有臭味?
微机串口的测试诊断
基于VC串口通信的实现