一种基于通信模块的ppp状态监控及自动重连的方法和装置的制造方法

文档序号:9814370阅读:780来源:国知局
一种基于通信模块的ppp状态监控及自动重连的方法和装置的制造方法
【技术领域】
[0001]本发明属于无线通信技术领域,尤其涉及一种基于通信模块的PPP状态监控及自动重连的方法和装置。
【背景技术】
[0002]PPP(点到点协议)是为在同等单元之间传输数据包这样的简单链路设计的链路层协议。这种链路提供全双工操作,并按照顺序传递数据包。设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。
[0003]在传统2G/3G模块应用中,通常需要外挂一个MCU和memory。物理上通过串口或者USB接口通信,外部M⑶通过发送AT指令到2G/3G模块,达到控制模块进行PPP拨号上网的目的。
[0004]在数据传输中,由于信号不稳定,资源紧张或者长时间在网等原因,会造成PPP断网。在传统应用中,模块断网后只会通过硬件电平指示或者简单地上报目前的状态,并不会主动重新连接PPP,甚至有时候网络单方面主动断开了 PPP,模块对于此种应用场景并不会马上响应,那么将导致MCU发送数据失败。这时需要MCU利用有限的方式判断模块PPP状态并且采取措施重新连接。传统的MCU进行PPP拨号流程如图1所示。
[0005]结合这些情况,我们很容易看到现有技术存在以下缺点:
[0006]I )PPP断开后只能靠M⑶重新拨号上网;
[0007]2)模块自身缺乏对应的机制维护PPP状态;
[0008]3 )M⑶单靠简单的状态变量无法准确判断模块PPP的运行情况。

【发明内容】

[0009]本发明提供一种基于通信模块的PPP状态监控及自动重连的方法和装置,旨在解决现有通信模块无法准确判断PPP运行情况,且在PPP断开不能自动重连的问题。
[0010]为实现以上目的,本发明提供一种基于通信模块的PPP状态监控及自动重连的方法,包含以下步骤:
[0011 ]添加AT指令,打开PPP监控及重连机制;
[0012]建立PPP监控及重连TASK;
[0013]在TASK中定时查询PPP状态,获取有效的IP地址和DNS地址,并且进行PING测试网络情况,如果检测到IP地址失效或者网络不通,则重连ppp。
[0014]进一步的,所述添加AT指令,打开PPP监控及重连机制包含:添加AT指令,通过全局变量或者NV变量记录当前是否打开PPP监控及重连机制,如果未打开,则打开PPP监控及重连机制。
[0015]进一步的,所述建立PPP监控及重连TASK包含:设定对应的任务优先级,设置需要处理的相关信号量,根据不同的信号量对应不同的处理函数。
[0016]进一步的,还包含步骤:在PPP拨上号或者断开时,有相应的信号量通知TASK,如果PPP断开,则调用对应PPP拨号函数重新拨号,并且将拨号成功重新获取的IP地址主动上报MCU0
[0017]以及,为实现以上目的,本发明还提供一种基于通信模块的PPP状态监控及自动重连的装置,包含:
[0018]命令单元,用于添加AT指令,打开PPP监控及重连机制;
[0019]任务单元,用于建立PPP监控及重连TASK;
[0020]执行单元,用于定时查询PPP状态,获取有效的IP地址和DNS地址,并且进行PING测试网络情况,如果检测到IP地址失效或者网络不通,则重连PPP。
[0021 ] 进一步的,所述命令单元进一步设置为:添加AT指令,通过全局变量或者NV变量记录当前是否打开PPP监控及重连机制,如果未打开,则打开PPP监控及重连机制。
[0022]进一步的,所述任务单元还包含:设定对应的任务优先级,设置需要处理的相关信号量,根据不同的信号量对应不同的处理函数。
[0023]进一步的,还包含上报单元,用于在PPP拨上号或者断开时,有相应的信号量通知TASK,如果PPP断开,则调用对应PPP拨号函数重新拨号,并且将拨号成功重新获取的IP地址主动上报MCU。
[0024]本发明提供的基于通信模块的PPP状态监控及自动重连的方法和装置,具有的有益效果为:
[0025]I)模块自适应能力强,性能稳定;
[0026]2)减少MCU与模块的耦合程度,模块工作独立性强;
[0027]3)减少M⑶的代码量,降低编程难度。
【附图说明】
[0028]图1为传统的M⑶控制通信模块进行PPP拨号示意图;
[0029]图2为本发明实施例一提供的一种基于通信模块的PPP状态监控及自动重连的方法实现流程示意图;
[0030]图3为本发明实施例二提供的一种基于通信模块的PPP状态监控及自动重连的装置结构示意图;
[0031 ]图4为本发明M⑶控制通信模块进行PPP拨号示意图;
【具体实施方式】
[0032]下面结合附图和具体实施例对本发明作进一步详细的描述,应当理解,实施例不对本发明构成限制。
[0033]实施例一
[0034]参考图2所示,本发明实施例一提供一种基于通信模块的PPP状态监控及自动重连的方法,包含以下步骤:
[0035]SlOl,添加AT指令,打开PPP监控及重连机制;
[0036I 具体的,通过全局变量或者NV变量记录当前PPP监控及重连机制是否打开,如果所述PPP监控及重连机制未打开,在所述通信模块的操作系统添加一条AT指令,打开PPP监控及重连机制。例如,AT指令为AT+PPPMONITOR,设定当AT+PPPM0NIT0R = I时,打开PPP状态监控及重连功能,AT+PPPM0NIT0R = 0时,则关闭此功能。在通信模块的系统中对应的AT指令处理函数中,记录下此值,供系统运行时判断状态时使用。MCU通过发送此条AT指令便可控制模块PPP拨号的工作模式。
[0037]所述通信模块为执行网络通讯的无线通信模块,例如2G\3G\4G模块。
[0038]S102,建立PPP监控及重连TASK;
[0039]具体的,在通信模块的系统中新建一个TASK,所述TASK主要为PPP监控及重连机制提供实现环境,并设定对应的任务优先级,设置需要处理的相关信号量,根据不同的信号量对应不同的处理函数。例如在通信模块系统中建立一个名为PPPM0NIT0R的TASK,设定允许接收的信号量,如PPPM0NIT0R_CMD_SIG,TASK收到此信号量,可以根据信号量中所带的指令做出相应的动作,如可以根据PPP建立或者断开时产生的指令PPP_UP_CMD或PPP_D0WN_CMD进行跨任务函数调度,若发现PPP已经断开,那么可以调用相关函数重新连接PPP。
[0040]S103,在TASK中定时查询PPP状态,获取有效的IP地址和DNS地址,并且进行PING测试网络情况,如果检测到IP地址失效或者网络不通,则重连PPP。
[0041]具体的,所述定时查询PPP状态的机制可以被打开或关闭,所述定时查询PPP状态的机制通过一定时时钟实现,打开定时查询PPP状态机制,设定每隔一秒或者其他时间查询PPP状态,获取有效的IP地址和DNS地址,并且进行PING测试网络情况,如果检测到IP地址失效或者网络不通,则重连ppp;在PPP拨上号或者断开的时候,都会有相应的信号量通知到TASK,如果发现PPP已经断开,则调用对应PPP拨号函数重新拨号,并且在拨号成功后将重新获取的IP地址主动上报给MCU,重连失败的话将重试,直到达到设定的最大重连次数,然后停止重连。例如当指示PPP监控机制开关的变量为I并且接收到PPP建立的消息之后,便可开启PPP监控定时器PPPMON
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1