当前位置:首页 期刊杂志

航标遥控遥测终端的设计和实现*

时间:2024-07-28

鲁照权,毛 羽,朱 敏,陈 芹

(合肥工业大学 电气与自动化工程学院 优化控制技术研究所,安徽 合肥 230009)

我国航道众多,水运发达,保证航运安全的工作至关重要。航标作为为水上活动提供安全信息的设施,是保证航运安全的重要装置。对航标状态进行有效控制和准确检测,不仅能保证航标装置的正常工作,更能减少航运事故发生率,确保航运安全。

国内外已经对航标遥控遥测系统进行了多年的研究[1-3],也获得了诸多成果,但是由于航标工作环境的特殊性(潮湿、受撞击率高、易受电磁干扰等),在系统稳定性和定位精度等方面仍无法完全满足实际需求[4-5]。本文通过分析航标遥控遥测终端装置的功能需求,给出了基于GPS、GPRS技术及 LPC2136微控制器的终端设计方案,旨在设计出一个稳定可靠的终端装置,提升航标遥控遥测系统的整体性能。实验证明,该终端装置能稳定可靠地运行,具有重要的现实意义和可观的市场价值。

1 终端功能

航标包括岸标和水上浮标。岸标由于位置固定而不需要进行GPS定位,而浮标则需要进行GPS定位以测量其地理位置。本文针对浮标的特点和功能,对其进行设计,实现的主要功能如下:

(1)航标位置检测。通过GPS模块实现,确保航标没有偏离规定区域,以防引发安全事故。

(2)电流检测。蓄电池充放电电流以及LED灯工作电流的检测。

(3)电压检测。蓄电池充放电电压、工作电压及航标灯工作电压的检测。

(4)撞击检测。通过加速度计实现撞击量的检测。航标受到船只猛烈撞击后,可能导致航标及终端工作失常,应及时报警,以便检查维护。

(5)终端与灯器的通信。实现终端对灯器灯质的控制和状态采集。

(6)终端与服务器的通信。依据既定通信规约,当服务器查询到本地终端并要求其提供相应状态信息时,终端及时准确地完成服务器要求。服务器未要求本地终端进行相关操作时,本地终端应能定时发送心跳信息,以告知服务器其在线状态。

2 终端硬件设计

依据航标遥控遥测终端装置的功能需求,设计的终端硬件如图1所示。系统以LPC2136为主控制器,主要占用资源包括I2C接口、A/D转换接口、UART接口、复位电路接口及部分GPIO口[6]。I2C接口挂接LIS302DL加速度计及FM24L256铁电存储芯片,分别用来采集终端撞击数据和终端数据存储。A/D转换接口上包含专用电流检测芯片MAX4071及分压电阻。GPS、GPRS功能模块SIM548C和RS485模块MAX3072通过串口与微控制器相连,以进行相关数据通信。

图1 终端硬件系统框图

整个系统由12 V蓄电池供电。除外接航标灯器由12 V蓄电池直接供电外,终端上还需要4.5 V和3.3 V电源,本设计选用了LM2575和LM1117两款降压稳压芯片以满足系统不同电压需求。终端复位电路选用了MAX708S电源监控芯片。系统电源电压下降到一定值并达一定时间时,向单片机复位引脚发送复位信号,使得终端复位。

当服务器通过GPRS方式向终端发送遥控遥测命令时,终端将依据接收到的命令类型采集各类状态信息或者设定工作模式,并将结果通过GPRS方式反馈到服务器端。整个终端装置要实现的主要功能是终端与服务器的GPRS通信以及终端的GPS精确定位。

选用GPS和GPRS二合一模块 SIM548C[7],通过串口与LPC2136进行通信。终端利用该模块实现定位数据的采集及GPRS数据的通信。该模块的GPS定位精度为10 m,若刷入支持 DGPS的固件,精度能达到 1~5 m,支持NMEA-0813协议;GPRS部分内置TCP协议栈,降低了开发难度。模块整体结构设计紧凑,便于布板和安装。

由于SIM548C模块的GPRS部分含有1个正常工作用串口及1个调试用串口,并且GPS部分含有2个适合不同协议的串口,共4个串口,再加上与灯器连接的RS485接口也需占用1个串口资源,因此需要对微控制器的串口进行扩展。本系统中选用CD4052双四选一多路选择开关对LPC2136的串口1进行扩展。串口1正常情况下与SIM548C模块支NMEA-0813协议[8]的串口相连,以便实时读取GPS数据。微控制器的串口0直接与GPRS正常工作的串口相连,随时侦听来自服务器端的遥控遥测命令。若侦听到灯器设定命令时,通过CD4052可将UART1口切换到RS485接口,实现终端与灯器的通信。如果是状态信息采集命令,则直接进行相应状态信息的采集,将采集数据打包并通过GPRS方式发送到服务器。SIM548C硬件连接电路如图2所示。

图2 SIM548C硬件连接示意

3 终端软件

3.1 主程序设计

终端上电后,首先对系统进行初始化操作,实现单片机端口及各功能模块的初始化。然后,终端登录服务器进行注册,一旦终端成功登录到服务器,便处于命令待接收状态,查询串口是否有来自服务器的指令。若长时间没有收到指令,终端将定时发送心跳数据到服务器,以保证终端时刻在线。终端接收到遥控指令时,将按照指令要求对终端工作模式或者灯器的工作参数进行设置;接收到遥测指令时,终端将采集航标相应状态信息量上报;指令无法正确解析时,将进行报错。终端主程序流程图如图3所示。

图3 终端主程序流程图

3.2 GPRS连接子程序

终端通过GPRS和短消息(SMS)两种方式与服务器通信。正常情况下,终端以GPRS方式登录服务器及实现数据传输。当周边环境信号较差时,可能无法通过GPRS方式与服务器通信,这时将切换到短消息方式。如果通过短消息方式也无法实现与远程服务器的通信,终端将自动复位,重新启动。登录过程如图4所示。

终端连接GPRS网络所用到的AT指令及操作顺序如下[9]:

(1)AT,测试模块对输入是否有响应;

(2)AT+CCID,测试 SIM 卡是否准备好;

(3)AT+CSQ=? ,测试是否有信号;

(4)AT+CGCLASS=”B”,设置模块工作在B类GPRS网络;

(5)AT +CGDCONT =1,”IP”,”CMNET”,设置GPRS接入网关为移动梦网;

(6)AT+CGATT=1, 激 活 GPRS网络;

(7)AT +CIPSTART = ”TCP”,”IP”,”PORT”, 启 动 TCP 连 接 ,其中,IP表示IP地址,PORT表示端口号。

上述指令都得到正确响应 (即能从串口返回信息中读取到“OK”字符)之后即可以通过AT+CIPSEND指令发送相应数据。

3.3 GPS数据处理子程序

终端上电后,直接通过扩展的UART1口接收NMEA-0813版本格式的GPS定位数据。NMEA-0813格式的GPS定位信息有多种语句,都是由帧头、帧尾和帧数据 构 成 。 帧 头 类 型 包 括 “$GPGGA”、“$GPGSA”和“GPRMC”等。同时,每条语句以回车和换行符作为帧尾。鉴于终端需要得到的信息为经纬度和时间等基本信息,因此在本终端设计中只对基本信息语句“GPRMC”进行处理,其处理过程如图5所示。

程序中开辟了GPS_BUF0和GPS_BUF12个缓存空。首先通过串口接收一条NMEA-0813版本格式的语句,并将其存入GPS_BUF0中,进而判断该语句是否为所需的GPRMC语句,如果不是则清空 GPS_BUF0,重新接收数据;如果是则存入GPS_BUF1中,并根据GPRMC语句的格式提取时间和经纬度信息。GPRMC语句格式如下:

$GPRMC,1,2,3,4,5,6,7,8,9,10,11,12*hh <CR><LF>

图5 GPS数据处理子程序流程图

其中,阿拉伯数字依次代表UTC时间、定位状态、纬度、纬度半球、经度、经度半球、地面速率、地面航向、UTC日期、磁偏角、磁偏角方向和模式指示等信息。各信息之间由逗号符分隔,并将逗号符作为标识符,通过依次统计语句中的逗号符,可以提取到所需的时间和经纬度信息。

服务器与终端以及终端与灯器之间的通信包括命令解析及数据打包,完全依据既定的航标遥控系统通信规约。该规约规定了航标遥测遥控系统中,航标灯器(带有标准RS485串口的智能灯器)与航标遥控遥测终端RTU设备之间、终端与监控中心计算机(服务器)之间的数据传输帧格式、数据编码及传输规则。

例如,终端装置接收到一组GPS语句为:

“$GPGGA,042824.000,3150.3194,N,11722.3232,E,1,04,1.4,-56.2,M,0.7,M,,0000*71

$GPGSA,A,3,08,20,17,01,,,,,,,,,1.7,1.4,1.0*3D

$GPGSV,3,1,10,28,65,326,,01,55,038,22,20,41,120,42,11,36,047,*7A

$GPGSV,3,2,10,17,36,297,12,08,36,215,43,07,17,191,,19,06,077,18*76

$GPGSV,3,3,10,32,31,084,25,04,13,227,24*77

$GPRMC,042824.000,A,3150.3194,N,11722.3232,E,0.60,343.50,221011,,,A*6F

$GPVTG,343.50,T,,M,0.60,N,1.1,K,A*0A”

首先将删选出所需要的“$GPRMC,042824.000,A,3150.3194,N,11722.3232,E,0.60,343.50,221011,,,A*6F”这条语句。依据通信规约,这段数据将被打包成“042824N31503194E1172232322210111210”, 除最后 4位表示终端ID号外,其余均是从GPRMC语句中提取出来的时间及经纬度信息。然后,通过GPRS方式将这段数据发送到服务器端,服务器端将发送应答帧到终端以表明数据是否发送成功。

航标遥控遥测终端装置集GPRS、GPS技术于一身,能够实现对航标状态的实时监测,减少了人力物力的重复投资,有效提高了航标管理水平。本文简要阐述了航标遥控遥测终端的功能需求,并提出了一种航标遥控遥测终端硬软件设计方案,着重对GPS和GPRS功能的实现进行了介绍。终端实验板在实验室与远程服务器连接正常,通信稳定,能够实现基本的遥控遥测功能,证明了本方案的可行性。

后期的主要工作是进一步提高终端工作稳定性及定位精确度。例如可以在终端上加入光线传感器,提升判别白天夜晚的灵敏度和准确度;定位精确度虽然受到选取模块精度的影响,但也可以通过提高终端后台数据处理能力及改善终端工作方式加以提高。

[1]EL-MEDANY W M,ALOMARY A,AL-HAKIM R,et al.Implementation of GPRS-based positioning system using PIC microcontroller[C].2010 Second International Conference on ComputationalIntelligence, Communication Systems and Networks(CICSYN),2010:365-368.

[2]郑佳春.基于嵌入式LINUX的航标遥测遥控终端的开发[J].计算机应用与软件,2009(10):98-100.

[3]吴允平,蔡声镇,李汪彪,等.基于单片机的航标终端系统[J].电子测量技术,2006(8):70-72,79.

[4]李木.浅谈航标遥测系统存在的问题[J].航测技术,2009(3):12-14.

[5]李鹏宇.浅议航标遥测遥控现状与发展[J].航测技术,2009(4):24-26.

[6]周立功,张华.深入浅出 ARM7[M].北京:北京航空航天大学出版社,2005.

[7]Shanghai SIMCOM Wireless Solutions Ltd.SIM548C hardware design V1.01[Z].2008.

[8]National Marine Electronics Association.http://www.nmea.org[2012-01-09].

[9]Shanghai SIMCOM Wireless Solutions Ltd.SIM548C AT commands set[Z].2008.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!