基于C8051F020的气象数据传输系统研究

2022-05-01 08:35:02 | 浏览次数:

zoޛ)j馐ӝEm9/4QtO/4QtO3P5Owӎ6^wM9Mx7	|ǭz薈申请中断,因此需要很少的CPU干预。且两个串行口不“共享”定时器、中断或端口I/O等资源,所以可以使用任何一个或全部同时使用。其中UART0 是一个具有帧错误检测和地址识别硬件的增强型串行口,对串口的控制和访问是通过特殊功能寄存器即串行控制寄存器(SCON0)和串行数据缓冲器(SBUF0)来实现的。按照北斗气象数据传输系统功能需求,所设计的传输系统需要与气象仪和北斗模块进行串行通信,由于目前大部分的自动气象站都具有串行数据输出端口[15],只是在跳线、接口上存在差异,而北斗模块也提供RS-232C接口,因此单片机与气象仪和北斗之间的串行通信硬件设计简单,直接将经过转接/跳线的气息仪三线串口与单片机的UART0连接,北斗的三线串口与单片机的UART1连接。

3 软件设计

软件设计部分包括接收气象数据和北斗转发数据两部分,程序主要采用查询方式实现,主要包括时钟初始化、I/O口配置、串口初始化、接收气象数据和北斗转发数据程序模块。数据传输实时检测是保证北斗数据传输的核心内容,也是数据传输实时性和及时性最根本的保证,因此软件设计部分还考虑到通信实时性要求,建立数据传输实时检测机制,包括网络参数获取、回执机制、超时机制、数据重传机制和校验机制,以保障北斗转发数据的正确性。

3.1 初始化

初始化程序主要是对C8051F020进行I/O配置和时钟振荡频率配置两部分。C8051F020有一个内部振荡器和一个外部振荡器驱动电路,每个驱动电路都能产生系统时钟。本设计中在XTAL1/XTAL2 引脚外接一个外部谐振器、并行方式的晶体,由于复位后从内部振荡器启动,必须禁止内部振荡器,并在振荡器控制寄存器(OSCICN)配置其振荡频C8051F020的数字交叉开关可以将内部的系统资源映射到端口I/O引脚,通过设置交叉开关控制寄存器。通过配置XBR0和XBR2两个寄存器将内部资源UART0和UART1配置到相应I/O引脚上,由于每个端口引脚的输出方式都可被配置为漏极开路或推挽方式,可通过配置P0MDOUT寄存器进行完成输出方式设定。具体的配置可参考C8051F020的数据手册。

3.2 气象数据接收程序

气象数据接收程序流程图如图2(a)所示。完成串行初始化配置后,使能串口接收准备接收气象仪发送的数据,交叉开关配置的气象仪接收数据引脚P0.0上将出现串口接收数据,每接收一个数据,RI0都由低电平变成高电平等待用户处理数据,直至接收到数据的结束符。接收的气象数据分为两类,一个是整点数据一个是分钟数据,接收完的数据必须要设置相应的标志以方便数据处理。

3.3 北斗转发气象数据程序

如图2(b)所示,当接收完气象仪发送的数据,北斗主控制模块首先发送自检状况命令给北斗接收终端模块,获取北斗卫星网络参数,包括在线状况、信号强弱等。主控制模块根据当时所获取的网络参数来决定是否发送数据。如果信道通畅,则及时发送数据,否则进入数据等候重发队列,并设置网络网络故障指示灯以提示用户进行网络检查,采取重启、调整北斗天线方向等操作,重新检测网络等待网络良好后后重新传输。另外,考虑部分气象采集器捕获的气象数据可能没有经纬度、时间等信息,在传输数据之前,北斗主控制模块还将发出定位、获取时间的命令,根据获取的回执提取相应的定位和时间信息与气象数据整合成完整的数据帧,网络参数获取参数配置和定位信息获取命令可参见北斗模块的用户手册。

数据通过北斗模块传输出去后,受遇到网络信号突然变化、数据丢包乱序、数据收集中心日常维护或者其主机运行速度变慢而未及时响应数据等多种因素的影响,数据都不可能传输至中心站造成数据丢失。因此,需要在北斗主控制模块和数据收集中心站之间建立一种数据传输握手确认协议,即每帧数据/命令发送出去后,由主控制模块都将读取北斗返回的通信回执,判断通信是否成功,如果成功指示灯正常,否则指示灯示警提醒用户需要重发或者丢弃该帧数据。需要重新发送数据时,需要记录需要重传的数据,将加入到数据重传队列,并开启重传定时器。当重传定时器的时间片到达时,则首先获取网络参数,若信道通畅,发送数据后,采集核心模块与中心占进行握手确认。如此循环,直至数据全部传输完毕。

4 系统测试与分析

为验证本数据传输系统的可靠性,进行了20组基于北斗模块的通信实验,以PC串行终端模拟气象仪以不同的波特率、不同的数据格式、不同的发送频率进行测试,北斗通信发送端采用一代一体化小型终端,接收端采用手持机,将两种通信设备在距离3公里的实验室进行了测试。实验表明,在通信速率正常的情况下(1次/1分钟),通信成功率率为98%,在北斗卫星通信频度未到、信号强度弱时也能及时进行故障提示。

5 结束语

本文介绍了基于C8051F020的气象数据通信端口硬件电路设计和软件设计,利用单片机自带的两个串行口较好的解决传统基于51单片机的气象数据通信系统串行口不够用的问题,并充分利用北斗通信模块已有的回执机制和软件获取网络通信状态确保数据传输的实时性,为现有偏远地区无人气象站加装北斗通信模块提供参考思路。

参考文献:

[1] 张永恒,张建忠, 薛建军, 等. 论重大突发事件应急决策气象服务[J]. 防灾科技学院学报,2015,17(2):82-90.

[2] 刘春明, 张少刚,张少博. 极端环境下自动气象站数据远程传输方案设计[J].气象科技,2009,37(4): 469-471.

[3] 赵明,张小丽,刘佳,等.VSAT卫星通讯在气象应急服务系统中的应用[J].气象与环境科学,2010,(9:213-217.

[4] 费全海.卫星通信在青海气象观测数据传输中的应用[J].青海科技,2011(4):80-83.

[5] 祝龙双,施永新.卫星宽带在应急通信和灾害备份中的应用[J].卫星与网络,2008(7):28-33.

[6] 姚作新. 基于北斗卫星短信通信方式的无人值守自动气象站网[J].气象科技,2012,40(3):342-346.

[7] 张尚悦,郝立杰,刘晓光,等. 基于“北斗”信道的气象传真图传送研究[J].航海技术,2012(1):99-105

[8] 甘志强,陆土金,李大君,等. 北斗卫星通信在南海海洋气象观中的应用[J].气象水文海洋仪器, 2015(1):65-68.

[9] 毛炳文. 基于北斗卫星导航定位系统的气象水文信息系统[J].科学时代,2013(6):89-91.

[10] 张继光, 罗林艳, 高炉东. 北斗卫星通信在省级气象数据收集中的应用[J].安徽农业科学,2015(11):45-48.

[11] C8051f020数据手册[E].新华龙电子有限公司.

[12] 陈刚,黄宏智.遥测自动气象站及人工EN风数据的远距离传输[J].气象水文海洋仪器,2011(2):74-76.

[13] 苏禹宾, 谭龙. 自动气象站的实时数据传输控制策略[J].气象水文海洋仪器,2009(3):55-57.

[14] 北斗模块数据手册[Z].北京广嘉公司.

[15] 周晓倩,马孝义,陈磊,等.一种气象数据监测系统的设计[J].电子技术应用与设计,2014,40(5):135-139.

推荐访问: 数据传输 气象 研究 系统 C8051F020