背景技术
以太网交换机通常由中央处理单元(CPU,Central Processing Unit)、存储器、媒体访问控制(MAC,Media Access Control)器和物理(PHY)控制器组成。其中,随机存取存储器(RAM,Random Access Memory)、电可擦可编程只读存储器(EEPROM,Electrically Erasable ProgrammableRead-Only Memory)和闪存(Flash)均可以作为以太网交换机的存储器。通用EEPROM器件一般应用于无管理型以太网交换机,通用Flash器件一般应用于管理型以太网交换机,RAM适用于随机动态存储,通常做为管理型以太网交换机的内存使用。
以太网交换机正常启动过程通常是:硬件上电后,首先需要通过固定的内存指针跳转,读取存储在Flash固定区域的远程引导(BootRom)程序进行硬件初始化,例如初始化中央处理单元(CPU,Central Processing Unit)和存储器,然后通过BootRom程序加载Flash固定区域的应用(APP)程序到RAM中,启动网管系统,最后通过BootRom程序读取Flash中的配置(CFG)文件,根据CFG文件的参数来设置网管系统,完成整个启动过程。
以太网交换机的BootRom程序容量通常包含硬件检测、硬件初始化、工程模式和BootRom菜单等几个功能模块的代码。其中硬件检测指以太网交换机上电后,设备硬件器件进行自我检测;硬件初始化指向设备总线控制器发出初始化指令,使设备硬件器件开始正常工作;工程模式用于生产厂商对设备进行出厂测试和烧录设备基本信息,如MAC地址和电子标签等;BootRom菜单主要向用户提供设备在未加载APP程序的状态下,进行软件升级、密码修改、恢复出厂默认配置文件等操作。
图1给出了以太网交换机的Flash空间分布,如图1所示,其中:
BootRom程序空间:用于保存BootRom程序运行代码。BootRom程序升级通常不向普通用户开放,所以以太网交换机软件升级一般不允许更新Flash特定区域中的BootRom程序。
BootRom配置文件空间:用于保存设备出厂时烧录的以太网交换机基本信息,如MAC地址、电子标签等等。
APP程序空间:用于保存设备运行时网管系统的APP文件。
CFG文件空间:用于保存设备网管系统各项参数配置的文件,设备恢复出厂默认设置的配置文件也保存在这个部分。
软件升级是指软件开发者在编写应用程序时,由于前期考虑不全面或者程序功能不完善,在应用程序发行后,通过对程序的修改或者加入新的功能后,以补丁形式发布,用户通过一些方法将这些补丁更新后,即完成软件升级。
以太网交换机软件升级实际上就是通过一些方法来更新保存在存储器中固定区域中的APP程序文件。现有以太网交换机软件升级的方法主要包括两种:
第一种方法是将Flash中的APP程序空间划分两个或者多个独立区域。以划分两个独立区域为例,将两个区域分别称为APP A和APP B,APP A和APP B中的程序文件相互独立。以太网交换机在启动过程中,首先加载APPA中的程序文件启动,进入网管系统后,用户通过简单文件传输协议(TFTP,Trivial File Transfer Protocol)、文件传输协议(FTP,File Transfer Protocol)、Xmodem协议或者超文本传输协议(HTTP,Hyper-Text Transfer Protocol)等方法,将APP B中的程序文件进行覆盖式更新,然后在交换机下一次启动时,选择加载APP B中的程序文件启动,实现软件升级。
使用第一种方法进行软件升级时,如果在升级过程中出现升级失败,导致APP B中的程序文件损坏,那么在交换机下一次启动时,设备仍然选择加载APP A中的程序文件启动,进入网管系统后,对APP B中的程序文件重新进行覆盖式更新。
第二种方法是Flash中的APP程序空间只存放1份APP程序文件。以太网交换机在启动过程中,用户通过预先设定的方法选择进入BootRom菜单界面,根据BootRom菜单提供的应用程序,例如TFTP或者Xmodem等应用程序,对Flash中的APP程序文件进行覆盖式更新。用户也可以在交换机正常启动完成后,登陆在RAM中运行的网管程序,通过TFTP、FTP或者HTTP等方法将Flash中的APP程序文件进行覆盖式更新,实现软件升级。
使用第二种方法进行软件升级时,如果出现软件升级失败导致APP程序文件损坏。在交换机下一次启动时,设备必须选择进入Bootrom菜单界面,人为通过TFTP或者Xmodem等应用程序将Flash中的APP程序文件重新进行覆盖式更新。
现有以太网交换机自动升级和配置同步的方法主要是在升级服务器和以太网交换机客户端预先安装并运行特定的网管协议,例如简单网络管理协议(SNMP,Simple Network Management Protocol)。客户端启动并进入网管系统后,首先需要向网管服务器进行注册,网络管理员在网管服务器通过专用网管程序下发配置策略,实现客户端自动升级和配置同步。
第一种软件升级方法需要在Flash中划分多块独立的区域来存放多份APP程序文件,这种互为备份的方法极大地浪费了Flash的存储空间。
第二种软件升级方法虽然采用独立存储的方法提高了Flash存储空间的利用率,但是可靠性不高。当升级过程遭遇意外时,容易造成APP程序文件损坏,引起交换机无法正常启动。此时,用户必须选择进入Bootrom菜单进行升级操作,增加了设备的维护成本。
此外,现有的以太网交换机软件自动升级和配置同步方法,均需要交换机客户端进入网管系统后才能实现相关功能,实现较为繁琐。
发明内容
本发明提供嵌入式以太网设备升级软件的方法及嵌入式以太网设备,以在节省存储空间的同时,提高升级可靠性。
本发明的技术方案是这样实现的:
一种嵌入式以太网设备升级软件的方法,该方法包括:
预先在升级服务器上指定不同设备类型对应的远程引导程序文件和应用程序文件;
嵌入式以太网设备硬件上电后,加载硬件驱动,通过该驱动向升级服务器申请IP地址,并从升级服务器获取升级信息,当根据升级信息,发现需要进行应用程序升级时,根据自身的设备类型从升级服务器下载远程引导程序文件,并加载该远程引导程序文件进行嵌入式以太网设备硬件自检和硬件初始化,初始化完成后,根据自身的设备类型从升级服务器下载应用程序文件,通过远程引导程序加载该应用程序文件,运行网管系统,并读取配置文件进行参数配置,完成设备启动过程。
当所述嵌入式以太网设备采用的存储器为闪存时,
所述根据自身的设备类型从升级服务器下载应用程序文件之后进一步包括:以该下载的应用程序文件对闪存中的应用程序空间进行覆盖式更新;
且所述通过远程引导程序加载该应用程序文件为:通过远程引导程序加载闪存中的更新后的应用程序文件。
所述根据自身的设备类型从升级服务器下载应用程序文件之后、以该下载的应用程序文件对闪存中的应用程序空间进行覆盖式更新之前进一步包括:对该应用程序文件进行完整性和合法性校验,若校验通过,则执行所述以该下载的应用程序文件对闪存中的应用程序空间进行覆盖式更新的动作。
预先在升级服务器上为特定设备类型指定配置文件;
所述嵌入式以太网设备从升级服务器获取升级信息之后进一步包括:嵌入式以太网设备根据升级信息,发现需要进行配置同步;
所述硬件初始化完成后进一步包括:嵌入式以太网设备根据自身的设备类型,从升级服务器将配置文件下载到RAM中,对该配置文件进行完整性和合法性校验,校验通过,以该下载的配置文件对自身存储器中的配置文件空间进行覆盖式更新,通过远程引导程序从配置文件空间中读取该更新的配置文件进行参数配置。
所述嵌入式以太网设备采用的存储器为闪存或电可擦可编程只读存储器EEPROM。
当所述嵌入式以太网设备采用的存储器为闪存时,所述方法进一步包括:
当嵌入式以太网设备申请IP地址失败,或者,获取不到正确的升级信息,或者,发现不需要进行应用程序文件升级,或者,下载远程引导程序文件失败时,嵌入式以太网设备加载自身存储器中的原有远程引导程序文件进行嵌入式以太网设备硬件自检和硬件初始化,初始化完成后,通过远程引导程序加载自身存储器中原有的应用程序文件和原有的配置文件,完成设备启动过程。
当所述嵌入式以太网设备采用的存储器为EEPROM时,所述方法进一步包括:
当嵌入式以太网设备申请IP地址失败,或者,获取不到正确的升级信息,或者,发现升级信息中不包含远程引导程序文件或应用程序文件,或者,下载远程引导程序文件或应用程序文件失败时,嵌入式以太网设备根据MAC控制器中的默认设置作为无管理型嵌入式以太网设备使用。
一种嵌入式以太网设备,包括:
升级信息获取模块:当硬件上电后,通过硬件驱动向升级服务器申请IP地址,并从升级服务器获取升级信息;当根据升级信息,发现需要进行应用程序升级时,向升级处理模块发送程序文件下载指令;
升级处理模块:当接收到程序文件下载指令时,根据本设备的设备类型从升级服务器下载远程引导程序文件,加载下载的远程引导程序文件进行嵌入式以太网设备硬件自检和硬件初始化,初始化完成后,根据本设备的设备类型从升级服务器下载应用程序文件,通过远程引导程序加载该应用程序文件,运行网管系统,并读取配置文件进行参数配置,完成设备启动过程。
所述嵌入式以太网设备采用的存储器为闪存,
所述升级处理模块进一步用于,当应用程序文件下载完毕后,以RAM中的应用程序文件对闪存中的应用程序空间进行覆盖式更新,且通过远程引导程序加载闪存中的更新后的应用程序文件。
所述升级处理模块进一步用于,当从升级服务器将应用程序文件下载到RAM中后,对该应用程序文件进行完整性和合法性校验,若校验通过,则执行所述以RAM中的应用程序文件对闪存中的应用程序空间进行覆盖式更新的动作。
所述升级信息获取模块进一步用于,根据升级信息,发现需要进行配置同步;
所述升级处理模块进一步用于,硬件初始化完成后,根据本设备的设备类型,从升级服务器将配置文件下载到RAM中,对该配置文件进行完整性和合法性校验,校验通过,以该下载的配置文件对本设备存储器中的配置文件空间进行覆盖式更新,通过远程引导程序从配置文件空间中读取该更新的配置文件进行参数配置。
当所述嵌入式以太网设备采用的存储器为闪存时,
所述升级信息获取模块进一步用于,当申请IP地址失败,或者,获取不到正确的升级信息,或者,发现不需要进行应用程序文件升级,则向升级处理模块发送不升级指令;
所述升级处理模块进一步用于,当接收到不升级指令,或者,下载远程引导程序文件失败时,加载本设备存储器中的原有远程引导程序文件进行嵌入式以太网设备硬件自检和硬件初始化,初始化完成后,通过远程引导程序加载本设备存储器中原有的应用程序文件和原有的配置文件,完成设备启动过程。
当所述嵌入式以太网设备采用的存储器为EEPROM时,
所述升级信息获取模块进一步用于,当申请IP地址失败,或者,获取不到正确的升级信息,或者,发现升级信息中不包含远程引导程序文件或应用程序文件,则向升级处理模块发送不升级指令;
所述升级处理模块进一步用于,当接收到不升级指令,或者,下载远程引导程序文件或应用程序文件失败时,根据MAC控制器中的默认设置将本设备作为无管理型嵌入式以太网设备使用。
与现有技术相比,本发明中,只需存放一份APP程序文件,节省了存储空间;且,本发明的软件升级过程出现失败后,重新自动启动进入升级过程即可,不需要人为干涉,能够自动恢复;且可实现局域网内不同类型的嵌入式以太网设备在启动过程中自动、批量的软件升级,提高设备维护效率;降低了软件维护成本。
具体实施方式
首先需要说明的是,本发明适用于所有嵌入式以太网设备,以下以以太网交换机为例,结合附图及具体实施例对本发明作进一步详细的说明。
本发明针对以太网交换机使用的存储器的不同,给出相应的软件升级方法。
第一种以太网交换机采用Flash,Flash空间分布如图2所示,其中,硬件驱动需要为以太网交换机提供底层数据报协议(UDP,User DatagramProtocol)及以太网(Ethernet)的通信能力、DHCP客户端(Client)和TFTPClient能力。
图3给出了本发明实施例一提供的以太网交换机升级软件的方法流程图,如图3所示,其具体步骤如下:
步骤301:网络管理员预先在升级服务器上配置升级服务器名称,指定不同设备型号对应的BootRom程序文件和APP程序文件。
网络管理员也可以选择设备厂商提供的整合式软件升级包,该包中已经预先指定了不同设备型号对应的BootRom程序文件和APP程序文件。
网络管理员可以根据实际需求,为部分或全部设备型号指定对应的CFG文件。
本发明实施例中的升级服务器需要提供动态主机配置协议(DHCP,Dynamic Host Configuration Protocol)服务器(server)服务和TFTP server服务。
步骤302:以太网交换机客户端硬件上电后,通过固定的内存指针跳转,加载保存在Flash固定区域的硬件驱动。
本发明实施例中的硬件驱动需要为以太网交换机提供底层UDP及Ethernet的通信能力、DHCP Client和TFTP Client能力。
步骤303:硬件驱动加载完毕,以太网交换机客户端通过DHCP向升级服务器申请IP地址,并采用该IP地址利用DHCP扩展协议从升级服务器获取升级信息。
本步骤中的升级信息包括:BootRom程序文件名称和APP程序文件名称,若网络管理员在升级服务器上为该设备型号指定了CFG文件,则还可以进一步包括CFG文件名称。
以太网交换机客户端利用DHCP扩展协议从升级服务器获取升级信息的具体过程可如下:
01:客户端通过DHCP选项(Option)12字段向升级服务器通告本以太网交换机的设备型号(Host Name)。
02:升级服务器根据该设备型号,查找对应的BootRom程序文件和APP程序文件,通过DHCP Option 54字段向客户端通告本升级服务器的TFTP服务器名称(Server Name),通过DHCP Option 67字段的Boot File Name向客户端通告BootRom程序文件名称和APP程序文件名称。
若根据设备型号查找到了CFG文件,则也将CFG文件名称通过DHCPOption 67字段的Boot File Name通告给客户端。
本步骤中,为了提高报文传输的安全性,升级服务器通过DHCP字段向以太网交换机客户端传输TFTP Server Name和Boot File Name时,可以预先对DHCP Option 54和Option 67字段内容进行加密,客户端收到DHCP报文后,对加密字段进行解密。加密算法可以是报文摘要5(MD5,Message-Digest5)算法。
步骤304:以太网交换机客户端分析升级信息,根据分析结果发现需要进行APP程序升级,同时需要进行配置同步。
以太网交换机客户端可通过如下过程判断是否需要进行APP程序升级:
01:以太网交换机客户端将升级服务器通告的TFTP Server Name与本客户端预置的升级服务器名称对比,若两者相同,则确定该升级服务器合法,执行步骤02;否则,认为该升级服务器非法,选择其它升级服务器。
本步骤主要是为了处理局域网内存在多个升级服务器或者存在非法升级服务器的情况。用户可以根据实际需求,修改以太网交换机客户端上预置的升级服务器名称,或者修改升级服务器上配置的升级服务器名称。以太网交换机客户端可以选择不预置升级服务器名称,即不对服务器合法性进行判断。
02:以太网交换机客户端将升级服务器通告的APP程序文件名称与自身Flash内的APP程序文件名称对比,判断是否需要进行APP程序文件升级。
客户端判断是否需要进行APP程序文件升级的具体过程如下:
以太网交换机客户端从升级服务器通告的DHCP Option 67字段来获取Boot File name,由于升级服务器提供的升级文件名称和CFG文件名称遵循一定的命名规则,命名规则可以是:客户端设备型号+升级文件类型+升级版本号,因此,客户端首先判断升级服务器提供的升级文件名称中的客户端设备型号是否与本交换机的设备型号相同,若相同,则进一步判断升级服务器提供的升级文件名称中的升级文件类型是否包含APP程序文件,若包含,则判断升级服务器提供的升级文件名称中的APP程序文件的升级版本号是否高于自身Flash中的APP程序文件的版本号,若高于,则认为需要进行APP程序文件升级;否则,认为不需要进行APP程序文件升级。
以太网交换机客户端根据本交换机是否存在CFG文件,判断是否需要进行配置同步。具体地,客户端判断升级服务器通告的DHCP Option 67字段中是否包含CFG文件名称,若是,则认为需要进行配置同步;否则,认为不需要进行配置同步。
步骤305:以太网交换机客户端根据自身的设备型号,通过TFTP从升级服务器将对应的BootRom程序文件下载到RAM的第一区域中,并加载BootRom程序文件自动进行以太网交换机硬件自检和硬件初始化,并读取位于Flash上的BootRom配置文件,配置设备MAC地址和电子标签等。
步骤306:硬件初始化完成后,以太网交换机客户端根据自身的设备型号,通过TFTP从升级服务器将对应的APP程序文件下载到RAM的第二区域中,然后对该APP程序文件进行完整性和合法性校验。
对APP程序文件进行完整性校验的具体过程如下:
在编译APP程序文件时,产品开发者使用编译程序对整个APP程序文件内容进行循环冗余校验码(CRC,Cyclic Redundancy Check)校验,将校验值放置在APP程序文件结尾处;当TFTP传输完成后,BootRom程序对下载的APP程序文件内容进行CRC校验,然后将校验值与APP程序文件结尾处的CRC值进行比较,若二者相同,则认为下载的APP程序文件完整;否则,则认为下载的APP程序文件不完整,需要重传。
对APP程序文件进行合法性校验的具体过程如下:
在编译APP程序文件时,产品开发者在APP程序文件头部加入设备型号;当TFTP传输完成后,BootRom程序将下载的APP程序文件头部的设备类型标识与本交换机的设备型号进行比较,若二者相同,则认为下载的APP程序文件合法;否则,认为下载的APP程序文件不合法,需要重传。
步骤307:以太网交换机客户端根据自身设备型号,通过TFTP从升级服务器将对应的CFG文件下载到RAM的第三区域中,然后对该CFG文件进行完整性和合法性校验。
步骤308:以太网交换机客户端对APP程序文件和CFG文件的完整性和合法性校验通过,使用该下载的APP程序文件和CFG文件对Flash中的APP程序空间和CFG文件空间进行覆盖式更新。
步骤309:以太网交换机客户端通过BootRom程序加载Flash中已经更新的APP程序文件,然后读取Flash中已经更新的CFG文件,运行网管系统并进行参数配置,完成整个启动过程。
另外,在本发明实施例中,在以下几种情况下,以太网交换机客户端都选择读取本交换机Flash中的原有BootRom程序进行硬件初始化,然后通过BootRom程序加载Flash中的原有APP程序文件,读取Flash中的原有CFG文件,运行网管系统并进行配置同步,完成后续整个启动过程:
情况一、在步骤303中,当以太网交换机客户端通过DHCP向升级服务器申请IP地址失败时;
情况二、在步骤303中,当以太网交换机客户端利用DHCP扩展协议从升级服务器获取不到正确的升级信息时;
情况三、在步骤304中,当以太网交换机客户端根据对升级信息的分析结果,发现不需要进行APP程序升级时;
情况四、在步骤305中,当以太网交换机客户端从升级服务器下载BootRom程序文件失败时。
这里,可以预置BootRom程序文件的最大下载次数,当下载次数等于最大下载次数,仍下载失败时,则放弃继续下载。
另外,本发明实施例中,以太网交换机客户端可以预置APP程序文件的最大下载次数,步骤306中,当下载次数等于最大下载次数,仍下载失败时,则放弃继续下载,当然也无需进行对下载的APP程序文件进行完整性和合法性校验的动作了,在步骤308中,也无需对Flash中的APP程序空间进行覆盖式更新了,同时,在步骤309中,需要加载Flash中的原有APP程序文件。
本发明实施例中,以太网交换机客户端可以预置CFG文件的最大下载次数,步骤307中,当下载次数等于最大下载次数,仍下载失败时,则放弃继续下载,当然也无需进行对下载的CFG文件进行完整性和合法性校验的动作了,在步骤308中,也无需对Flash中的CFG文件空间进行覆盖式更新了,同时,在步骤309中,需要读取Flash中的原有CFG文件。
对于图3所示实施例,当APP程序下载失败或覆盖式更新失败时,则BootRom程序加载Flash中的原有APP程序文件即可;当不需要进行配置同步或对CFG文件的覆盖式更新失败时,BootRom程序只需读取Flash中的原有CFG文件即可。本发明实施例中,可以预置APP程序文件和CFG文件的最大更新次数,步骤308中,当更新次数等于最大更新次数,仍更新失败时,则放弃继续更新。
第二种以太网交换机采用EEPROM,EEPROM空间分布如图4所示,其中,硬件驱动需要为以太网交换机提供底层UDP及Ethernet的通信能力、DHCP Client和TFTP Client能力。
图5给出了本发明应用示例二提供的以太网交换机升级软件的方法流程图,如图5所示,其具体步骤如下:
步骤501:网络管理员预先在升级服务器上配置升级服务器名称,指定不同设备型号对应的BootRom程序文件和APP程序文件。
网络管理员也可以选择设备厂商提供的整合式软件升级包,该包中已经预先指定了不同设备型号对应的BootRom程序文件和APP程序文件。
网络管理员可以根据实际需求,为部分或全部设备型号指定对应的CFG文件。
本发明实施例中的升级服务器需要提供DHCP server和TFTP server服务。
步骤502:以太网交换机客户端硬件上电后,通过固定的内存指针跳转,加载保存在EEPROM固定区域的硬件驱动到RAM中运行。
步骤503:以太网交换机客户端通过DHCP向升级服务器申请IP地址,并利用DHCP扩展协议从升级服务器获取升级信息。
步骤504:以太网交换机客户端根据升级信息,发现需要进行APP程序升级,同时需要进行配置同步。
步骤505:以太网交换机客户端通过TFTP从升级服务器下载BootRom程序文件到RAM第一区域中运行,并加载EEPROM中的BootRom配置文件,进行硬件初始化,初始化完成后通过TFTP从升级服务器下载APP程序文件到RAM第二区域,并对该APP程序文件进行完整性和合法性校验。
步骤506:以太网交换机客户端通过TFTP从升级服务器下载CFG文件到RAM第三区域,并对该CFG文件进行完整性和合法性校验。
步骤507:以太网交换机客户端对APP程序文件和CFG文件的完整性和合法性校验通过,通过BootRom程序加载RAM第二区域中的APP程序文件,运行网管系统。
步骤508:以太网交换机客户端使用下载的CFG文件对EEPROM中的CFG文件区域进行覆盖式更新,然后通过BootRom程序读取EEPROM中已经更新的CFG文件,按照读取的文件的参数来设置交换机MAC控制器和PHY控制器的值完成启动过程。
需要说明的是,该第二种以太网交换机在局域网中运行时,如果没有升级服务器,将无法正常加载BootRom程序文件和APP程序文件,此时只能根据MAC控制器中的默认设置,作为单纯的网桥设备即无管理型以太网交换机使用。
另外,在如下情况下,该第二种以太网交换机也只能根据MAC控制器中的默认设置,作为单纯的网桥设备即无管理型以太网交换机使用:
情况一、在步骤503中,当以太网交换机客户端通过DHCP向升级服务器申请IP地址失败时;
情况二、在步骤503中,当以太网交换机客户端利用DHCP扩展协议从升级服务器获取不到正确的升级信息时;
情况三、在步骤504中,当以太网交换机客户端根据对升级信息的分析结果,发现升级信息中不包含BootRom程序文件或APP程序文件时;
情况四、在步骤505中,当以太网交换机客户端从升级服务器下载BootRom程序文件或APP程序文件失败时。
这里,可以预置BootRom程序文件、APP程序文件的最大下载次数,当下载次数等于最大下载次数,仍下载失败时,则放弃继续下载。
本发明实施例中,以太网交换机客户端可以预置CFG文件的最大下载次数,当下载次数等于最大下载次数,仍下载失败时,则放弃继续下载,同时,在步骤508中,需要读取EEPROM中的原有CFG文件。
本发明实施例中,以太网交换机客户端可以预置CFG文件的最大更新次数,当更新次数等于最大更新次数,仍更新失败时,则放弃继续更新,同时,在步骤508中,需要读取EEPROM中的原有CFG文件。
需要指出的是,图5所示实施例针对的是APP程序文件需要进行升级,同时需要进行配置同步的情况。在实际应用中,当不需要进行配置同步时,在设备启动过程中,BootRom程序只需读取EEPROM中的原有CFG文件即可。
从以上所示实施例可以看出,以太网交换机是在启动时进行软件升级和配置同步的,这样若软件升级失败,则重启交换机就可自动重新进行软件升级和配置同步过程,无需人工参与。
在实际应用中,可能有的以太网交换机不需要进行软件自动升级,考虑到这种情况,用户可以选择预先登陆该交换机的网管系统或者BootRom菜单中,将软件自动升级功能关闭即可。关闭软件自动升级功能的方法可以是在交换机上增加指针跳转,使交换机启动时直接读取存储在Flash中的BootRom程序。
本发明实施例针对的应用场景是:在设备启动时进行软件升级。当在设备运行过程中需要进行软件升级时,此时,可采用现有的第二种方法。
本发明中的升级服务器可以是计算机,也可以是嵌入式以太网设备。
图6为本发明实施例提供的嵌入式以太网设备的组成示意图,该设备的硬件驱动为设备提供底层UDP及Ethernet的通信能力、DHCP Client和TFTPClient能力,如图6所示,其主要包括:升级信息获取模块61和升级处理模块62,其中:
升级信息获取模块61:当硬件上电后,通过固定的内存指针跳转,加载保存在本设备的固定区域的硬件驱动,硬件驱动加载完毕,通过DHCP向升级服务器申请IP地址,并采用该IP地址利用DHCP扩展协议从升级服务器获取升级信息;当根据升级信息,发现需要进行APP程序升级时,向升级处理模块62发送程序文件下载指令。
升级处理模块62:当接收到程序文件下载指令时,根据本设备的设备类型,通过TFTP从升级服务器下载BootRom程序文件到RAM的第一区域中,加载下载的BootRom程序文件进行设备硬件自检和硬件初始化,并读取位于Flash上的BootRom配置文件,配置设备MAC地址和电子标签等,初始化完成后,根据本设备的设备类型从升级服务器下载APP程序文件到RAM的第二区域中,对该APP程序文件进行完整性和合法性校验,且,在校验通过时,通过下载的BootRom程序加载下载的APP程序文件,运行网管系统,并读取CFG文件进行参数配置,完成设备启动过程。
当嵌入式以太网设备采用的存储器为Flash时,升级处理模块62进一步用于,当APP程序文件下载完毕后,以RAM中的APP程序文件对Flash中的APP程序空间进行覆盖式更新,且在对APP程序文件的完整性和合法性校验通过时,通过BootRom程序加载Flash中的更新后的APP程序文件。
升级信息获取模块61进一步用于,当根据升级信息,发现需要进行配置同步时,向升级处理模块62发送CFG文件下载指令;
且,升级处理模块62进一步用于,硬件初始化完成后,根据本设备的设备类型,通过TFTP从升级服务器将CFG文件下载到RAM的第三区域中,对该CFG文件进行完整性和合法性校验,校验通过,以该下载的CFG文件对本设备存储器中的CFG文件空间进行覆盖式更新,通过BootRom程序从CFG文件空间中读取该更新的CFG文件进行参数配置。
当以太网设备采用的存储器为Flash时,升级信息获取模块61进一步用于,当申请IP地址失败,或者,获取不到正确的升级信息,或者,发现不需要进行APP程序文件升级时,向升级处理模块62发送不升级指令;
升级处理模块62进一步用于,当接收到不升级指令,或者,下载BootRom程序文件失败时,加载本设备存储器中的原有BootRom程序文件进行以太网设备硬件自检和硬件初始化,初始化完成后,通过BootRom程序加载本设备存储器中原有的APP程序文件和原有的CFG文件,完成设备启动过程。
当以太网设备采用的存储器为EEPROM时,升级信息获取模块61进一步用于,当申请IP地址失败,或者,获取不到正确的升级信息,或者,发现升级信息中不包含BootRom程序文件或APP程序文件时,向升级处理模块62发送不升级指令;
升级处理模块62进一步用于,当接收到不升级指令,或者,下载BootRom程序文件或APP程序文件失败时,根据MAC控制器中的默认设置将本设备作为无管理型以太网设备使用。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。