一种预认证4G通信模块及其固件升级方法与流程

文档序号:25232223发布日期:2021-05-28 14:40阅读:331来源:国知局
一种预认证4G通信模块及其固件升级方法与流程

本发明涉及通信技术领域,特别涉及一种预认证4g通信模块及其固件升级方法。



背景技术:

随着第四代移动通信技术的普及,相应的4g模组越来越多地被各种终端或设备使用。现有的4g模组作为一个被动的通信器件,需要接受设备端发送过来的at命令才能实现相应的功能,专利号cn205092861u中,公开了现有市场上常用的4g模组,其包括处理器、gsm/gprs模块、射频模块、闪存、ram及多个接口,例如sim卡接口、模拟音频接口、uart接口、gpio接口、lcd接口及键盘接口,对设备端来说开发难度大,而且不同运营商对使用其sim卡的设备有不同的身份认证方法,身份认证流程、拨号号码等均可能有所差异;在4g模组版本升级需要设备端针对上述模组的软硬件特点进行软件定制和控制;在4g模组工作状态的判断上需要设备端选取上述4g模组的合适的接口进行指令的读写;在运营商认证流程自动化、模块鲁棒性与稳定性监控、固件升级功能通用性与易用性等方面还存在着较大的缺陷与不足,同时设计成本与复杂度较高,维护成本较高,也不利于产品的迭代与生命周期规划。

现有实现的4g模组方案缺陷或不足有:一.针对不同的运营商认证、拨号上网的流程,4g模组不能自动化完成,需要设备端进行软件流程定制后控制4g模组使其按照定制流程运行后才能完成运营商认证和拨号上网流程;二.设备端为了维护4g模组的鲁棒性和稳定性,需要适时对其进行升级,而需要针对其设备和4g模组的软硬件特点来设计升级程序,增加了实现的复杂性与设计难度,不能做到通用易用;三.4g模组的网络连接状况、连接功能设置与读取、是否能正常工作等,需要设备端配合,进行软件流程定制,使用设备端来进行读取,当不使用设备端时,不能从4g模组直接操控和读取,无法判断模组是否正常。

本方法创新的发明了一种能够解决以上缺陷与不足的方案,不仅能够自动化完成运营商认证要求实现的相关流程,减少人为操作的失误,提高配置效率,也能够解决现有4g模组相关功能的缺陷与不足,减少对应模块功能后期的设计复杂度与设计难度,提高4g模组的鲁棒性与稳定性。同时,也能够将4g模组的升级功能通用化,减少设备侧的差异性对4g模组升级流程设计的影响与降低设计复杂度。



技术实现要素:

本发明为了解决上述问题一.针对不同的运营商认证、拨号上网的流程,4g模组不能自动化完成、二.需要针对设备端和4g模组的软硬件特点来设计升级程序、不能做到通用易用,提供一种软件功能集成度更高、功能更完整的预认证4g通信模块及其固件升级方法。

为了实现上述发明目的,本发明提供了以下方案:

一种预认证4g通信模块的固件升级方法,包括以下步骤:

s101,创建调度和处理at指令的程序,其逻辑是,从外部接收到at指令以后,判断该指令是否属于mcu内部能处理的指令,是mcu内部能处理的指令则转到mcu内部处理逻辑,如果内部不能处理,则由mcu转发给内置4g模组,由内置4g模组判断是否属于内置4g模组能处理的指令,是内置4g模组能处理的指令则内置4g模组进行处理,如果不是内置4g模组能处理的则忽略该指令;

s102,通过调度和处理at指令的程序发送at指令给内置4g模组完成自动拨号,通过at命令读取拨号上网服务的参数与状态;拨号上网成功后,所述预认证4g通信模块作为4g网卡为设备端提供上网服务;

s103,对外接的设备端提供固定升级接口,拨号上网成功后,接口触发升级时,启动和执行升级程序,对mcu固件和对内置4g模组完成版本检测、获取固件和升级安装。

优选的,本发明所述的一种预认证4g通信模块的固件升级方法中,所述完成自动拨号的步骤是:

s201,进行拨号前内置4g模组modem端初始化设置;

s202,检查at指令模块处于正常工作状态;

s203,检查当前sim卡状态与运营商信息,将modem固件切换为符合该运营商的固件,切换完成后检查固件版本号是否正确判断切换是否成功;

s204,调用at指令初始化上网参数,设置pdptype、连接模式、设置apn参数到mcu、配置拨号号码、拨号模式为自动拨号,开始拨号;

s205,检查拨号状态,查询ip地址;查询到ip地址确认成功上网。

优选的,本发明所述的一种预认证4g通信模块的固件升级方法中,启动和执行升级程序的具体步骤为:

s301,外接的设备端触发,开始升级程序;

s302,检查内置4g模组是否工作正常,如果内置4g模组工作异常,则执行步骤s305;如果内置4g模组工作正常,则执行s303;

s303,通过usb接口获取所述mcu升级固件,采用usb线刷的方式升级mcu,执行升级程序,升级完成后等待20秒,检查mcu是否升级成功,如果升级失败,则执行s305;如果升级成功,则执行s304;

s304,进入内置4g模组固件升级阶段,通过at指令检查内置4g模组的固件版本是否是最新,如果是最新的,则执行s305;如果检测到不是最新的固件,接下来会从预置好的一个ftp服务器上去下载最新的4g固件到内存中,下载完成后进行固件的安装,待固件安装完成后,检测是否固件升级成功,如果升级成功,则检测升级后的固件版本是否是最新的版本,如果是最新的版本,则完成升级,如果不是最新版本,则恢复到旧的固件版本,并执行s305;如果升级失败,则执行s305;

s305,结束升级。

优选的,本发明所述的一种预认证4g通信模块的固件升级方法,内部提供心跳检测和监控服务,发现异常时进行重联,步骤如下:

s401,设置心跳检测服务器的ip地址,设置心跳超时的时间为x秒,记录网络心跳是否超时的计时器初始化;开始监测程序;

s402,检查当前所述计时器是否超时,达到设置的时间x秒;如果没有超时,则进行步骤s405,如果当前已经超时,则执行s403;

s403,检测与心跳服务器是否能ping通,如果可以ping通,则进行心跳检测超时的计时器清零,然后执行s402;如果不能ping通,则先延时x秒,再切换下一个心跳服务器ip地址进行s403步骤的检测;如果所有可用心跳服务器都无法ping通则执行步骤s404;

s404,上报相应的事件,控制所述内置4g模组重新拨号,进行网络重联,然后延时x秒,再执行步骤s402;

s405,延时x秒,然后执行s402;

优选的,本发明所述的一种预认证4g通信模块的固件升级方法中,可用心跳服务器的总数设置为4个。

优选的,本发明所述的一种预认证4g通信模块的固件升级方法中,通过usb读取所述预认证4g通信模块的网络状态、信号强度,对联网状态进行实时同步,步骤为,所述预认证4g通信模块通过所述usb接口连接到pc机或设备端后,在pc机或设备端打开命令行界面,发送at指令查询sim卡的imsi、固件版本、网络注册状态、监控信号强度、质量、网络类型、rndis网络连接状态、ip地址。

一种预认证4g通信模块,包括一个内置4g模组,该内置4g模组至少支持1路usb,所述预认证4g通信模块还包括一个mcu,所述mcu至少支持2路usb,mcu和所述内置4g模组集成在一个pcb上,mcu的第一usb和内置4g模组通过usb总线连接,互相收发数据和指令;mcu的第二usb作为所述预认证4g通信模块与外部设备端连接的usb接口,与设备端互相收发数据和指令;

所述mcu搭载了一个嵌入式操作系统,mcu基于该操作系统的软件程序实现上述的预认证4g通信模块的固件升级方法。

优选的,所述mcu采用armcortex-m7内核,该嵌入式操作系统为linux系统。

与现有技术相比,本发明的有益效果:

1.将原本需要设备端进行程序定制来控制4g模组拨号上网的步骤用mcu内部集成软件的方法实现,插上不同的激活了的运营商sim卡,所述预认证4g通信模块能够自动切换到适合运营商的固件,适配该运营商的认证方法,自动进行拨号后成功上网,期间不需要设备端的设置与干预,使其更易使用;将原本需要设备端针对其设备和4g组的软硬件特点进行设计来控制4g模组升级的步骤,通过对外接设备端提供固定升级接口,mcu内部集成软件的方法,只需要设备端进行简单触发,mcu分别对本身固件和内置4g模组固件独立地升级,高效地解决了对应模块的后续维护的问题,将升级的流程与设备端隔离,设备端不用在设计上过多考虑预认证模块,简单化设计流程,与降低了设计的复杂度。

2.通过所述预认证4g通信模块的usb接口,可连接到pc机,在pc机上打开命令行,发送at指令,能够实时获取与设置预认证4g通信模块的相关功能,比如监控预认证4g通信模块现在的网络连接、信号强度、重启内置4g模组或mcu、查看和设置相关上网协议的参数等,而不再需要通过设备端的操作系统或命令去操作预认证4g通信模块,直接通过usb接口就可以用pc机操作预认证4g通信模块。

3.mcu创建心跳检测与监控服务,进行心跳检测与联网状态的实时同步,监控联网状态,出现异常时mcu采取措施进行恢复,保证预认证4g通信模块的稳定性。整个过程不需要设备端的参与,隔离了错误或风险从设备端扩散到预认证4g通信模块,反之亦然。

附图说明:

图1为本发明所述硬件模块结构图;

图2为本发明所述软件模块框架图;

图3为本发明所述at指令服务模块软件功能交互图;

图4为本发明所述心跳检测与监控模块工作流程图;

图5为本发明所述mcu固件升级与内置4g模组固件升级流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图、实施例及具体实施方式对本发明作进一步的详细描述。但不应将此理解为本发明上述主题的范围仅限于以下的实施例,此处描述的实施例仅用于解释本发明,凡基于本发明内容所实现的技术均属于本发明的范围。

实施例1

一种预认证4g通信模块的固件升级方法,如图2所示,开机后内核启动开启rndis功能提供虚拟网卡接口cdcacmat端口,并初始化下述各软件功能模块:

at指令服务模块:创建调度和处理at指令的程序,其逻辑是,通过usb接口从外部接收到设备端发来的at指令以后,判断该指令是否属于mcu内部能处理的指令,是mcu内部能处理的指令则转到mcu内部处理逻辑,如果内部不能处理,则由mcu转发给内置4g模组,由内置4g模组判断是否属于内置4g模组能处理的指令,是内置4g模组能处理的指令则内置4g模组进行处理,如果不是内置4g模组能处理的则忽略该指令;

自动拨号服务模块:通过调度和处理at指令的程序发送at指令给内置4g模组完成自动拨号,通过at命令读取拨号上网服务的参数与状态;拨号上网成功后,所述预认证4g通信模块作为4g网卡为设备端提供上网服务;

固件升级模块:对外接设备端提供固定升级接口,拨号上网成功后,接口触发升级时,启动和执行升级程序对mcu固件和对内置4g模组完成版本检测、获取固件和升级安装;

还包括内部提供心跳检测和监控模块:提供心跳检测和监控服务,发现异常时进行重联。

还可包括其他功能模块,实现其他定制功能。

所述完成自动拨号的步骤是:

s201,进行拨号前内置4g模组modem端初始化设置;

s202,检查at指令模块处于正常工作状态;

s203,检查当前sim卡状态与运营商信息,将modem固件切换为符合该运营商的固件,切换完成后检查固件版本号是否正确判断切换是否成功;

s204,调用at指令初始化上网参数,设置pdptype、连接模式、设置apn参数到mcu、配置拨号号码、拨号模式为自动拨号,开始拨号;

s205,检查拨号状态,查询ip地址;查询到ip地址确认成功上网。

上述过程中的at指令服务模块的软件功能交互过程如图3所示。

拨号上网成功后,通过外接设备端简单触发,触发方式可以是在设备端上通过命令行或者界面发送指令的方式,启动和执行升级程序,如图5所示,具体步骤如下:

s301,外接设备端触发,开始升级程序;

s302,检查内置4g模组是否工作正常,如果内置4g模组工作异常,则执行步骤s305;如果内置4g模组工作正常,则执行s303;

s303,通过usb接口获取所述mcu升级固件,采用已有技术usb线刷的方式升级mcu,执行升级程序,升级完成后等待20秒,检查mcu是否升级成功,如果升级失败,则执行s305;如果升级成功,则执行s304;

s304,进入内置4g模组固件升级阶段,通过指令at+cgmr检查内置4g模组的固件版本是否是最新,如果是最新的,则执行s305;如果检测到不是最新的固件,接下来会从预置好的一个ftp服务器上去下载最新的4g固件到内存中,下载完成后,开始进行固件的升级,待固件升级完成后,检测是否固件升级成功,如果升级成功,则检测升级后的固件版本是否是最新的版本,如果是最新的版本,则完成升级,如果不是最新版本,则恢复到旧的固件版本,并执行s305;如果升级失败,则执行s305;

s305,结束升级。

本实施例的方法与普通4g模组的方法相比不同之处在于,普通4g模组需要设备端进行程序定制来控制4g模组拨号上网,本方法不需要设备端介入,能自动切换到符合运营商的模式拨号上网;普通4g模组需要设备端针对其设备和4g组的软硬件特点进行设计来控制4g模组升级,本方法不需要设备端进行复杂的设计和控制,仅需要通过固定升级接口的简单触发,所述预认证4g通信模块内部的mcu完全控制升级过程。相比较而言更易使用,设计的复杂度降低。

实施例2

如图4所示,本实施例在实施例1的基础上,实现心跳检测和检测服务功能,以保证模块可以保持联网状态。心跳检测和监控服务的启动方式,可以按需求配置为在系统启动后,或者配置为按要求触发启动;具体步骤如下:

s401,mcu程序设置4个心跳检测服务器的ip地址,设置心跳超时的时间为x秒,记录网络心跳是否超时的计时器初始化;开始监测程序;

s402,检查当前所述计时器是否超时,达到设置的时间x秒;如果没有超时,则进行步骤s405,如果当前已经超时,则执行s403;

s403,检测与心跳服务器是否能ping通,如果可以ping通,则进行心跳检测超时的计时器清零,然后执行s402;如果不能ping通,则先延时x秒,再切换下一个心跳服务器ip地址进行s403步骤的检测;如果所有4个可用心跳服务器都无法ping通则执行步骤s404;

s404,上报相应的事件,控制内置4g模组重新拨号,进行网络重联,然后延时x秒,再执行步骤s402;

s405,延时x秒,然后执行s402;

本发明中,心跳服务器的个数没有限制,设计4个心跳服务器地址主要是从以往的经验得出的一个经验值。在考虑到用户体验,以及等待时间上来讲,4个是相对合理的一个折中,因此本实施例可用心跳服务器的总数设置为4个。

本实施例的方法与普通4g模组的方法的不同之处在于,普通4g模组作为一个被动的通信器件,自身无法完成心跳检测,必须要设备端或者其他主控芯片控制、与其配合完成心跳检测,监控联网状态;本方法因内部多封装了一个mcu,mcu控制内置4g模组完成心跳检测,不需要设备端的参与。

实施例3

本实施例实现命令行界面查询读取4g模组的网络状态,信号强度,对联网状态进行实时同步的方法,具体步骤为,所述预认证4g通信模块通过所述usb接口连接到pc机后,在pc机上打开命令行界面,发送at指令查询sim卡的imsi、固件版本、网络注册状态、监控信号强度、质量、网络类型、rndis网络连接状态、ip地址,另外,所述预认证4g通信模块内部的mcu中设置了软件程序,通过与内置4g模组连接的usb总线分别发送上述各at指令给内置4g模组,进行联网状态的查询。

本实施例的方法与普通4g模组的方法的不同之处在于,普通4g模组的工作状态的读取,需要设备端配合,进行软件流程定制,使用设备端来进行读取,当不使用设备端时,不能从4g模组直接操控和读取,本方法可以用usb接口与pc机直接连接,pc机上可以直接读取模块工作状态,同时也支持mcu中通过mcu与内置4g模组之间的usb总线进行联网状态的同步,即所述预认证4g通信模块内部完成模块工作状态的监控。

实施例4

本实施例与实施例1、2、3的方法互相配合,提供了一种预认证4g通信模块,如图1所示,包括一个内置4g模组,该内置4g模组至少支持1路usb,所述预认证4g通信模块还包括一个mcu,所述mcu至少支持2路usb,mcu和所述内置4g模组集成在一个pcb上,mcu的第一usb和内置4g模组通过usb总线连接,互相收发数据和指令;mcu的第二usb作为所述预认证4g通信模块与外部设备端连接的usb接口,与设备端互相收发数据和指令;

该内置4g模组采用市场上已有的4g模组方案,插了sim卡的情况下,开机后能自动尝试注册到运营商基站,并返回ip地址,返回ip地址后表示注册成功,需要通过指令控制其拨号,拨号上网成功后可作为4g无线网卡为设备端提供上网功能;且模组内支持3gpp(3rdgenerationpartnershipproject,第三代合作伙伴计划)协议定义的或者自定义的at命令。

所述mcu搭载了一个嵌入式操作系统,该嵌入式操作系统为linux系统。mcu基于该操作系统的软件程序实现上述实施例1、2、3所述的方法。

所述mcu采用armcortex-m7内核,也可以是可以超过m7性能指标的任何型号。

本实施例的预认证4g通信模块与普通4g模组的不同之处在于,在普通4g模组的基础上,多封装了一个mcu,mcu中实现了实施例1、2、3中的方法,将原本需要设备端完成的工作(针对不同运营商和不同设备端的软硬件特点而做的设计工作),放到了mcu中完成,简化设备端的设计,便于使用。

本发明所提到的设备端指的是所有能够作为主机、通过usb总线发送at指令来控制所述预认证4g通信模块的设备中的一种,例如可以是支持usb的工业控制器、其他嵌入式设备等。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1