本发明涉及家庭网关设备领域,具体涉及一种家庭网关进入安全模式的方法及家庭网关系统。
背景技术:
家庭网关设备在使用运行中若出现软件异常,可能会出现无法通过web升级系统或者Telnet(远程终端协议)等操作方式来恢复设备正常工作的情形。而现在的家庭网关设备在不具备串口针的情况下,即使硬件完好无损,当出现软件异常该设备也无法使用,只有给客户更换新的设备,这样带来了重大的成本浪费。
技术实现要素:
针对现有技术中存在的缺陷,本发明的目的在于提供一种家庭网关进入安全模式的方法,该方法让家庭网关设备在BootLoader阶段进入安全模式下进行系统软件升级来恢复家庭网关设备正常运行,节约维护成本且易操作,易实现。
为达到以上目的,本发明采取的技术方案是:
一种家庭网关进入安全模式的方法,其基于Linux嵌入式操作系统,其特征在于,该方法包括以下步骤:
初始化所述家庭网关的单板参数;
初始化网络设备接口驱动;以及
判断所述家庭网关外设的指示灯按键是否按下,若否,所述Linux嵌入式操作系统启动;若是,对所述Linux嵌入式操作系统的启动进行延时处理,并判断所述家庭网关外设的复位按键是否按下,若所述复位按键未按下,所述Linux嵌入式操作系统启动;若所述复位按键按下,进一步判断所述复位按键是否持续被按至设计时长,若所述复位按键未持续被按至设计时长,所述Linux嵌入式操作系统启动,若所述复位按键持续被按至设计时长,所述家庭网关进入安全模式。
在上述技术方案的基础上,判断所述家庭网关外设的指示灯按键是否按下的步骤包括:
获取指示灯按键在Linux嵌入式操作系统中对应的中断号IRQ1;
根据所述中断号IRQ1读取指示灯按键的GPIO号;
定义所述指示灯按键的GPIO号低有效,判断所述指示灯按键的GPIO号对应的当前电平值IRQ1 value是高还是低,若IRQ1 value为低,则判断所述指示灯按键按下,若IRQ1 value为高,则判断所述指示灯按键未按下。
在上述技术方案的基础上,判断所述家庭网关外设的复位按键是否按下的步骤包括:
获取复位按键在Linux嵌入式操作系统中对应的中断号IRQ2;
根据所述中断号IRQ2读取复位按键的GPIO号;
定义所述复位按键的GPIO号低有效,判断所述复位按键的GPIO号对应的当前电平值IRQ2 value是高还是低,若IRQ2 value为低,则判断所述复位按键按下,若IRQ2 value为高,则判断所述复位按键未按下。
在上述技术方案的基础上,通过多次计数判断所述复位按键是否持续被按至设计时长,若所述设计时长为n秒,判断所述复位按键按下后,进行1秒的延时并计数加1,若到达n次计数,则所述复位按键持续被按至设计时长,若未到达n次计数,则所述复位按键未持续被按至设计时长。
在上述技术方案的基础上,所述设计时长为3秒。
在上述技术方案的基础上,对所述Linux嵌入式操作系统的启动延时为10秒。
与此同时,本发明的目的还在于提供一种家庭网关系统,该家庭网关系统让家庭网关设备在BootLoader阶段进入安全模式下进行系统软件升级来恢复家庭网关设备正常运行,节约维护成本且易操作,易实现。
为达到以上目的,本发明采取的技术方案是:
一种家庭网关系统,其特征在于,包括:判断模块、延时模块和计时模块;
所述判断模块判断家庭网关外设的指示灯按键是否按下,若否,Linux嵌入式操作系统启动;若是,所述延时模块对Linux嵌入式操作系统进行启动延时处理,再由所述判断模块判断家庭网关外设的复位按键是否按下,若所述复位按键未按下,Linux嵌入式操作系统启动;若所述复位按键按下,所述计时模块进一步判断所述复位按键是否持续被按至设计时长,若所述复位按键未持续被按至设计时长,Linux嵌入式操作系统启动,若所述复位按键持续被按至设计时长,所述家庭网关进入安全模式。
在上述技术方案的基础上,所述判断模块包括中断号获取单元、GPIO号读取单元和判断比较单元;所述中断号获取单元用于获取指示灯按键和复位按键分别在Linux嵌入式操作系统中对应的中断号;所述GPIO号读取单元根据指示灯按键和复位按键对应的中断号读取所述指示灯按键和复位按键的GPIO号;所述判断比较单元用于判断所述指示灯按键和复位按键的GPIO号对应的当前电平值是高还是低,来判断所述指示灯按键和复位按键是否按下。
在上述技术方案的基础上,所述计时模块通过多次计数判断所述复位按键是否持续被按至设计时长,若所述设计时长为n秒,判断所述复位按键按下后,进行1秒的延时并计数加1,若到达n次计数,则所述复位按键持续被按至设计时长,若未到达n次计数,则所述复位按键未持续被按至设计时长。
在上述技术方案的基础上,所述设计时长为3秒。
与现有技术相比,本发明的优点在于:
本发明中的方法基于嵌入式linux系统的BootLoader阶段对中断的捕获与响应,较容易实现。此外只需要按下家庭网关设备的外设指示灯按键和复位按键,即可决定是否进入安全模式,操作十分简单。在软件运行异常后只需要进入安全模式进行系统软件升级,即可恢复家庭网关设备正常运行,节约了维护成本。
附图说明
图1为本发明中家庭网关进入安全模式的方法的流程图;
图2为本发明中判断指示灯按键是否按下的流程图;
图3为本发明中判断复位按键是否按下的流程图;
图4为本发明中家庭网关系统的结构框图。
具体实施方式
以下结合附图对本发明作进一步详细说明。
参见图1所示,本发明提供一种家庭网关进入安全模式的方法,其基于Linux嵌入式操作系统,该方法包括以下步骤:
S1.初始化家庭网关的单板参数;
S2.初始化网络设备接口驱动;
在嵌入式操作系统中,BootLoader(启动装载)是在操作系统内核运行之前运行,可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。
由于需要在进入安全模式后还可以访问web页面,因此进入安全模式一定要在BootLoader完成了网络设备以及网络接口的初始化后的阶段。即在本发明完成单板参数设置,和网络接口初始化后,再进行是否需要进入安全模式的判断。
S3.判断家庭网关外设的指示灯按键是否按下,若否,执行步骤S8,若是,执行步骤S4;
参见图2所示,本发明中判断指示灯按键是否按下的步骤包括:
S31.获取指示灯按键在Linux嵌入式操作系统中对应的中断号IRQ1;
IRQ全称为Interrupt Request,即是“中断请求”的意思,IRQ的用于执行硬件中断请求的动作,每个家庭网关设备的外设按键都会注册一个中断号在Linux嵌入式操作系统中。
S32.根据中断号IRQ1读取指示灯按键的GPIO号;
General Purpose Input Output(通用输入/输出)简称为GPIO,每个家庭网关设备的外设按键也会拥有对应的GPIO号,可根据中断号IRQ1读取出外设按键的GPIO号。
S33.定义指示灯按键的GPIO号低有效,判断指示灯按键的GPIO号对应的当前电平值IRQ1 value是高还是低,若IRQ1 value为低,则执行步骤S34,若IRQ1 value为高,则执行步骤S35。
S34.判断指示灯按键按下;
S35.判断指示灯按键未按下。
S4.对Linux嵌入式操作系统的启动进行延时处理;
本发明将Linux嵌入式操作系统的启动进行10s延时,以便用户有足够时间操作复位按键,延时完后点亮所有的指示灯用以提示用户可以准备进行按下复位按键。
S5.判断家庭网关外设的复位按键是否按下,若否,执行步骤S8,若是,执行步骤S6;
参见图3所示,判断家庭网关外设的复位按键是否按下的方法与判断指示灯按键是否按下的方法相似,其步骤包括:
S51.获取复位按键在Linux嵌入式操作系统中对应的中断号IRQ2;
S52.根据中断号IRQ2读取复位按键的GPIO号;
S53.定义复位按键的GPIO号低有效,判断复位按键的GPIO号对应的当前电平值IRQ2 value是高还是低,若IRQ1 value为低,则执行步骤S54,若IRQ2 value为高,则执行步骤S55。
S54.判断复位按键按下;
S55.判断复位按键未按下。
S6.判断复位按键是否持续被按至设计时长,若否,执行步骤S8,若是,执行步骤S7;
本发明中通过多次计数判断复位按键是否持续被按至设计时长,若设计时长为n秒,判断复位按键按下后,进行1秒的延时并计数加1,若到达n次计数,则复位按键持续被按至设计时长,若未到达n次计数,则复位按键未持续被按至设计时长。本发明中,设计时长取值为3秒。
S7.家庭网关进入安全模式,结束;
此时家庭网关设备在安全模式下,即可通过连接以太网口访问web页面来达到维护设备的目的。
S8.Linux嵌入式操作系统启动。
若不需要进入安全模式,则家庭网关设备继续正常的自动启动流程,从Flash中读取镜像文件并将家庭网关设备系统、kernel等依次加载启动。
本发明中的方法基于嵌入式linux系统的BootLoader阶段对中断的捕获与响应,较容易实现。此外只需要按下家庭网关设备的外设指示灯按键和复位按键,即可决定是否进入安全模式,操作十分简单。在软件运行异常后只需要进入安全模式进行系统软件升级,即可恢复家庭网关设备正常运行,节约了维护成本。
参见图4所示,本发明还提供一种家庭网关系统,其包括判断模块、延时模块和计时模块。
判断模块判断家庭网关外设的指示灯按键是否按下,若否,Linux嵌入式操作系统启动。若是,延时模块对Linux嵌入式操作系统进行启动延时处理,再由判断模块判断家庭网关外设的复位按键是否按下,若复位按键未按下,Linux嵌入式操作系统启动。若复位按键按下,计时模块进一步判断复位按键是否持续被按至设计时长,若复位按键未持续被按至设计时长,Linux嵌入式操作系统启动,若复位按键持续被按至设计时长,家庭网关进入安全模式。
具体的,判断模块包括中断号获取单元、GPIO号读取单元和判断比较单元。中断号获取单元用于获取指示灯按键和复位按键分别在Linux嵌入式操作系统中对应的中断号。GPIO号读取单元根据指示灯按键和复位按键对应的中断号读取所述指示灯按键和复位按键的GPIO号。判断比较单元用于判断所述指示灯按键和复位按键的GPIO号对应的当前电平值是高还是低,来判断所述指示灯按键和复位按键是否按下。
计时模块通过多次计数判断复位按键是否持续被按至设计时长,若设计时长为n秒,判断复位按键按下后,进行1秒的延时并计数加1,若到达n次计数,则复位按键持续被按至设计时长,若未到达n次计数,则复位按键未持续被按至设计时长。本发明中,设计时长取值为3秒。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。