本文摘要:摘要:传统地面无线通信网络在地理环境恶劣的海岛、沙漠、高山等人烟稀少地区存在覆盖盲区,且易受到地质灾害等因素的影响。北斗卫星通信系统在北斗卫星覆盖范围内具有全天候无盲区短报文通信功能,利用北斗卫星短报文通信功能和RS485-ModBus协议,设计采用
摘要:传统地面无线通信网络在地理环境恶劣的海岛、沙漠、高山等人烟稀少地区存在覆盖盲区,且易受到地质灾害等因素的影响。北斗卫星通信系统在北斗卫星覆盖范围内具有全天候无盲区短报文通信功能,利用北斗卫星短报文通信功能和RS485-ModBus协议,设计采用太阳能和蓄电池供电的无人气象站,与北斗/GSM通信服务网关搭配使用,在终端用户侧实现了通过短信发送特定字符获取相应的气象数据的功能,能够适应对高山、沙漠、海岛等无人区域气象数据进行实时观测采集的需要。
关键词:北斗;短报文通信;RS485标准;ModBus协议;无人气象站;数据采集
0引言
气象预报对当今人们合理调控生产生活起到重要作用,正确的气象预报依赖于长期、准确、实时的气象观测数据。从20世纪90年代后期开始,我国大力加强地面气象观测业务能力建设,已初步建立了与国民经济建设发展相适应的观测网。但是在沙漠、高山、海岛等环境条件恶劣、人烟稀少的地区,交通、供电、通信等基础设施薄弱,给人工值守和依赖地面通信网络的气象观测站点带来了巨大的建设和运行成本,然而获取完整翔实的水文气象资料是开展相关科研工作和气象服务决策的重要基础。
气象方向论文范例:气象不确定下的船舶避台路径优化
近几十年来,随着电子信息和计算机技术的发展,逐渐出现了无人值守、无需经常维护的自动无人气象站,解决了传统气象站中,部分气象站人力成本高、难以维护和数据采集困难的问题。自动气象站的应用和普及,可以很大程度地增加气象数据采集时空密度,有效地提高气象观测效果以及可靠性,满足观测可比性等方面的要求,减少气象观测站的运营费用[1]。
自动气象观测站按照通信方式可以分为两类,即有线遥测气象站和无线遥测气象站[2]。有线遥测气象站是传统的气象监测方式,感应部分和接收处理部分相隔几十米或者几千米,其间用有线通信电路传输。传感器将数据通过数据线传输到PC机上。这种方式适合于有人值守区。无线遥测气象站大部分采用物联网模式,通过GPRS数据传输方式,将数据上传至网络平台,凡是有网络的地方,都可以随时登录平台,查看气象站现场数据,且有短信预警提示的功能。这种又被称为无人气象站。在公共移动通信网尚未完全覆盖的人烟稀少地区,使用GPRS体制工作的气象站因网络覆盖盲区的问题,难以满足气象传输要求。
因此,有必要使用可靠、无网络覆盖盲区的北斗短报文通信技术作为气象站的信息通路[3],以提高气象站的适用性和可靠性。针对以上现状,本文设计了基于北斗的无人值守气象站。使用太阳能蓄电池作为电源,气象站传感器和主控单元之间使用RS485-ModBus协议,利用北斗系统的短报文通信功能与北斗/GSM通信服务网关结合使用,在终端用户侧可实现随时通过手机发送特定字符获取远端水文气象数据服务[4],技术人员也可以远程随时查询气象水文站的工作状态,便于及时进行故障处置。
1总体功能设计
无人气象站承担在恶劣环境下的气象观测任务,因此设备应具有以下指标:(1)通信质量稳定、无通信盲区、丢包少、可以实现双向通信、接收用户指令;(2)设备应该具有宽电压输入、供电设备输出电压稳定;(3)通信延迟小、通信带宽大、传感器设备工作可靠;(4)两种帧协议的接收解析与封装发送[5]。依据要求通信质量必须稳定,而GPRS/GSM存在通信盲区及信号不稳定等因素,采用北斗卫星通信的数据传输模式,保证数据可靠上传。
北斗卫星通信系统覆盖范围广,没有通信盲区,信息加密传输安全。“北斗三号”区域短报文通信服务,服务容量提高1000万次/h以上,单次通信能力[6]1000汉字(14000bit),短报文通信传输时延[7]约3.8s。本设计中报文长度不会超过200个汉字,数据采集间隔在分钟级,因此,“北斗三号”区域短报文服务完全可以满足重点服务区内数据传输对通信容量和实时性的要求。由于户外供电不便,设计上采用太阳能蓄电池供电方式,保证在阴雨天气下,系统连续工作3天以上。
2系统硬件设计
2.1硬件组成
系统硬件主要由北斗模块及天线、气象传感器、单片机模块和太阳能电源四部分组成。综合卫星报文处理速度和接口资源的考虑,本设计采用基于Cortex-M4内核的微控制器STM32F429IGT6作为主控芯片,进行通信协议解析与封装、数据传输与控制,利用USART串口和RS485接口实现主控单元与各个模块的数据传输,底板电源使用MP2482DN电源管理芯片,支持6~12V直流电压输入,低压差线性稳压器1086-3.3控制电路输入电压为3.3V,3.3V过流保护防止底板电流过大。为了防止使用过程中静电以及瞬时大电流对芯片的影响,在重要芯片、接口、复位电路等部位采用TVS管和ESD管保护。北斗板卡用于与远端的各种水文气象自动观测设备进行短报文通信。
本设计采用海聊科技的T2北斗短报文板卡,此板卡兼容北斗用户终端通用数据接口2.1和4.0协议,集RNSS,RDSS为一体,具有全天候的定位导航和双向报文通信功能,工作温度-40~85℃,平均故障间隔≥5000h,成功率≥99%,模块待机功率约为0.65W,发射瞬态功率约为15W,支持7~18V直流供电,使用三级民用北斗卡,通信频次60s。气象站要求传感器可靠性好、使用寿命长、精度高、传输信号稳定。本设计采用PR-300BYH-M型系列气象传感器。数据传输采用标准ModBus-RTU通信协议、RS485标准,通信距离最大可达2000m,可以实现温湿度、大气压力、光照度的测量。
考虑到无人气象站在户外工作,因此使用太阳能电池板作为气象站的电源。阳光充足的条件下保持设备运行并给蓄电池充电,蓄电池充电时间8~16h。在无光状态下使用蓄 电池内的电能,蓄电池最大输出可达到12V/5A,功率60W,可以满足使用要求,电池容量20A·h。RD0538T1模块发射瞬间功率小于15W,待机功率小于0.65W,发射瞬间持续时间小于0.3s。
若每分钟发射一条报文,则模块平均功率为(15/60)×0.3+0.65=0.725W,气象站百叶窗的功率为0.8W,主控单元功率小于1W,则在无光状态下,气象站可以连续运行(12×20)/(0.725+0.8+1)=95h,实现了无人气象站不断电运行。整个供电系统通过太阳能控制电路来控制蓄电池的充放电,主要功能是在夜间电池板电压输出为0时,防止电池中的电能回流到电池板中,此外它在防止过度充电方面同样发挥着关键作用。使用FP5139芯片和Π型滤波电路,控制北斗端电压为恒定值,防止电压变化过大而损坏RD芯片。
2.2系统硬件连接关系
传感器的RS485A/B与单片机的RS485A/B分别对应连接,主控底板中RS485接口部分采用SP3485E芯片,两线制RS485是一种半双工方式,所以需要切换收发状态,用PB8引脚的高低电平来控制接收和发送。当PB8输出低电平的时候,控制主控单元RS485接口为接收状态,当PB8为高电平的时候,控制主控单元RS485接口为发送状态。单片机内部连接RS485的引脚分别是PD5,PD6,PD5是发送引脚,PD6是接收引脚。
3软件设计
3.1功能分析
(1)主控单元作为主机与气象站传感器进行通信,使用ModBus-RTU协议可以获取温湿度、大气压力、光照度等信息。
(2)RDSS数据帧的接收解析与封装发送。用户向气象站北斗端发送查询命令,无人气象站北斗天线接收到的信号经过模块内部的处理,转换成串口数据并输出到主控单元。原始串口数据经过帧协议解析后,得到用户数据。识别提取其中的特定命令后,主控单元做出响应通过RS485总线查询对应寄存器的数据。再封装成协议帧输出到串口,气象站北斗端将得到的串口数据经过内部信号处理后,通过天线发射出去,完成整个工作过程。
3.2系统软件模块设计
3.2.1总体设计方案
总体设计程序分为初始化部分、控制传感器部分、控制北斗部分。初始化部分主要进行北斗、RS485通信使用的USART外设、引脚的初始化、系统时钟的使能以及北斗模块的自检。这一部分的软件编写围绕各种寄存器的操作以及北斗短报文协议来展开。初始化成功之后输入目标的北斗号码,为了提高程序的效率,在主函数中设置两层嵌套循环,第一层循环是判断北斗信号强度,直到满足通信条件为止,第二层循环是主要的接收和发送代码、数据处理代码等。
进入到第二层后,不会返回第一层。一二层之间入口是判断北斗接收置位情况。对北斗报文进行解析与遍历,判断是否存在特定的字符。程序分支执行北斗定位申请和ModBus问询帧发送函数,处理从机发送过来的应答帧后,提取寄存器中气象数据以及DWR语句中的经纬度、时间等信息,经过字符串的拼接整合与转换格式,通过北斗发送函数,最后回到判断北斗接收置位处。
3.2.2单片机控制传感器部分
STM32控制气象站百叶窗,初始化RS485通信使用的USART外设及相关引脚。编写控制SP3485E芯片进行收发数据的函数,根据ModBus通信协议编写收发的数据帧。ModBus协议是基于RS485物理层来实现的,在RS485通信中信号频率越高,越容易产生反射波干扰。通常传输速率在1200~19200b/s之间选取。
通信距离1km以内,从通信效率、节点数、通信距离[8]等综合考虑可选用4800b/s;通信距离1km以上时,应考虑通过增加中继模块或降低速率的方法提高数据传输可靠性。综合可靠性和有效性,本文采用9600b/s作为RS485接口的速率。STM32作为主机实现ModBus协议的核心在于对数据帧结束的判断。ModBus协议没有停止位,规定当数据之间间隔大于3.5个字节的时间时,代表一个数据帧发送或者接收的完成。
那么延迟时间大于(1/9600)×8×3.5≈2.92ms时,即代表一个数据帧的结束,考虑到硬件的延迟,定义时间大于4ms时数据帧结束。因此,初始化定时器的时间为4ms,开始处于关闭状态。串口接收中断函数中设置定时器使能和清0代码,定时器溢出中断函数中设置定时器使能和接收完成置位代码。在进行串口初始化后,使RS485常态处于接收态,中断函数接收到第一个字节后,开启计时器,在不发生溢出的情况下,每接收一个字节都将定时器清0。当定时器发生溢出中断时,表明时间间隔大于4ms,即一帧接收完成,ModBus接收标志位置位,关闭定时器用于下一次帧停止的判断。
4测试过程
首先是验证单片机发送的北斗报文格式是否正确以及验证气象站工作是否正常,采用232转USB线连接到上位机串口7上,模拟单片机接收到北斗报文过程和数据回传的过程。串口7(模拟用户北斗端)发送北斗报文数据‘$BDTXR,0247716,1,2,A4424331323350*34\r\n’。其中含有特定字符‘P’,用于获取大气压力值。
单片机与气象站之间通信正常,得到大气压力的值是97.7Pa。串口7(北斗)收到报文数据段B4F3C6F8D1B9C1A6CAC73A39372E37205061,经过gb2312解码之后得到字符串:大气压力是97.7Pa,与串口4显示的传感器的数值相同。第二阶段,连接好设备之后,将北斗天线朝南无遮挡放置,进行调试,输入气象数据接收端的北斗卡号,进行北斗强度测试,若强度大于等于3,可以实现通信。利用北斗海聊公司的北斗短报文入网服务,实现只有1台北斗设备情况下报文的发送和接收(经过上百条实际测试该平台夏季对于长春地区在16:00以后发送成功率较高)。
5结语
本文根据现有的水文气象观测数据传输的现实需求和北斗发展现状论述了基于北斗的无人值守气象站的设计,通过串口调试和仿真测试,实现了气象数据的发送和北斗报文的接收。设计的无人气象站能够稳定、安全可靠地传输信息,具有不受距离、地域限制,通信费用低,节省人力的优点,特别适合在偏远等普通信号无法覆盖的地区的气象观测,与目前建成的基于GPRS网络的自动气象站互为补充,对于掌握我国全域气象数据具有重要意义。
参考文献:
[1]马婧舒.基于嵌入式技术的自动气象信息系统设计与实现[D].济南:山东大学,2018.
[2]孟宪伟,范晓东.北斗卫星通信在自动气象站数据传输中的应用[J].卫星应用,2014,5(3):32-34.
[3]傅家亮.北斗卫星下的海洋水文实时监测系统分析[J].通讯世界,2019,26(1):280-281.
[4]孙琦,傅军,贺伟,等.无人水文气象观测设备北斗/GSM互联服务网关设计[J].工业控制计算机,2020,33(6):70-72.
[5]柯秋立,苏凯雄.北斗通信终端软件的设计与实现[J].微型机与应用,2017,36(10):15-17.
[6]中国卫星导航系统管理办公室.北斗卫星导航系统发展报告(4.0版)中文版[R].北京:[s.n.],2019:7-8.
作者:孙琦,傅军
转载请注明来自发表学术论文网:http://www.fbxslw.com/dzlw/26845.html