一种升级计算机固件程序的方法

文档序号:6375759阅读:220来源:国知局
专利名称:一种升级计算机固件程序的方法
技术领域
本发明涉及安装计算机固件程序的技术,特别涉及一种升级计算机固件程序的方法。
背景技术
目前计算机系统的各种外插卡越来越多,功能越来越强大,但是这些外插卡必须同计算机系统的配置密切结合起来,才能正常的工作。给不同型号和配置的计算机上的外插卡安装合适的固件程序,是一件非常繁琐和细致的工作,普通操作人员,例如客户服务人员或普通用户很难顺利的将合适的固件程序安装到这些外插卡上。
当用户或客户服务人员需要更改某些外插卡上的固件程序时,其实现过程为步骤1、用户或服务人员获取计算机的型号;步骤2、用户或服务人员获取需要升级固件程序设备的型号;步骤3、用户或服务人员根据计算机型号和需要升级固件程序的设备的型号确定出准确的固件程序版本。
步骤4、用户或服务人员从光盘中或网上下载相应的固件程序版本,将其安装到需要升级固件程序的设备中。
从上述方案可以看出,当用户或客户服务人员需要更改某些外插卡上的固件程序时,将会花费大量的时间处理固件程序同计算机型号、外插卡型号的兼容性上。如果普通用户无法正确配置,那么必定会找到计算机厂家的客户服务人员,客户服务人员一般需要2~3次上门服务才能将问题彻底解决。这样一来,增加了用户使用计算机和外插卡的难度,降低了用户的工作效率,增加了计算机厂商的客户服务成本。

发明内容
有鉴于此,本发明的主要目的在于提供一种升级计算机固件程序的方法,该方法能提高升级计算机固件程序的效率,减小升级计算机固件程序的难度,降低计算机厂商的客户服务成本。
根据上述目的,本发明的具体方案是这样实现的一种升级计算机固件程序的方法,该方法包括A、计算机遍历内存中的基本输入输出系统保存的系统配置信息,查询到计算机主板的配置信息,读取计算机的型号;B、计算机获取需要升级固件程序的设备型号;C、计算机根据计算机型号和需要升级固件程序的设备型号查询到所需要的固件程序版本;D、计算机将该版本的固件程序安装到需要升级固件程序的设备上。
所述的步骤A进一步包括当按照系统管理基本输入输出系统(SMBIOS)规范读取基本输入输出系统保存的系统配置信息时,搜索到计算机内存中的字符串“SM”后,遍历计算机内存中的基本输入输出系统信息块的类型编码,类型编码为2的基本输入输出系统信息块为计算机主板的基本输入输出系统信息块。
所述的步骤A进一步包括当按照桌面管理接口(DMI)规范读取基本输入输出系统保存的系统配置信息时,搜索到计算机内存中的字符串“DMI_”后,遍历计算机内存中的基本输入输出系统信息块的类型编码,类型编码为2的基本输入输出系统信息块为计算机主板的基本输入输出系统信息块。
所述的计算机主板的系统管理输入输出系统信息块保存有计算机生产厂商的名称、计算机产品型号、计算机产品型号版本和计算机产品序列号。
所述的步骤B进一步包括
预先确定需要升级固件程序的设备是否支持固件程序的自动升级,如果支持,获取该设备的型号;否则,不做任何处理。
所述的预先确定需要升级固件程序的设备是否支持固件程序的自动升级过程为在生产计算机时确定需要升级固件程序的设备是否支持固件程序的自动升级,并将该设备的类型写到计算机中。
所述的预先确定需要升级固件程序的设备是否支持固件程序的升级过程为预先在需要升级固件程序的设备中设置一个支持查询该设备是否能够自动升级固件程序的命令,当计算机发送查询该设备是否能够自动升级固件程序的命令时,该设备返回响应给计算机。
所述的获取该设备的型号过程为读取计算机中的周边元件扩展端口寄存器,获得该设备的型号。
所述的获取该设备的型号过程为预先为安装在设备中的固件程序设置一个支持接收查询设备型号的命令,当计算机向该设备中的固件程序发送查询设备型号的命令时,该固件程序从该设备的数据寄存器中将该设备型号返回给计算机。
所述预先为安装在设备中的固件程序设置一个支持接收查询设备型号的命令的过程为在设备安装固件程序时在固件程序中设置支持接收查询设备型号的命令或者给该设备升级含有支持接收查询设备型号的命令的固件程序。
所述的步骤C进一步包括计算机远程连接到网络查询所需要的固件程序版本。
所述的步骤C进一步包括计算机通过本地所安装光盘查询到所需要的固件程序版本。
所述的步骤D进一步包括D1、将该设备设置为升级模式;D2、将该版本的固件程序写入该设备的存储中;
D3、重新启动设备,运行该版本的固件程序。
该方法进一步包括将该版本的固件程序安装到升级固件程序的设备上后,重新启动计算机。
根据上述方案得知,本发明提供的方法自动获取计算机的型号和需要升级固件程序设备的型号,并根据该型号直接通过本地光盘或网络查询到相应的固件程序并且下载,从而完成整个设备的固件程序升级过程。该方法不需要专业人员再人为地为设备升级固件程序,从而提高了升级计算机固件程序的效率,减小了升级计算机固件程序的难度,降低了计算机厂商的客户服务成本。


图1为本发明升级计算机固件程序的流程图。
图2为获取计算机型号的流程图。
图3为本发明获取升级固件程序设备型号的流程图。
图4为本发明安装固件程序的流程图。
具体实施例方式
为了使本发明的目的、技术方案和优点更加清楚明白,以下举实施例并参照附图,对本发明进一步详细说明。
本发明提供的方法使计算机自动根据计算机的型号和需要升级固件程序设备的型号为设备升级计算机的固件程序,其具体过程如图1所示,图1为本发明升级计算机固件程序的流程图步骤100、开始进行自动升级;步骤101、准确的获取计算机型号;步骤102、准确的获取需升级固件程序的设备型号;步骤103、根据计算机型号和需升级固件程序的设备型号,按照用户指定的方式搜索到合适的固件程序版本;
步骤104、根据该固件程序版本给需升级固件程序的设备升级固件程序,完成整个过程。
下面对上述图1中的步骤101~步骤104做详细的说明。
图1中步骤101为准确的获取计算机型号通常在计算机中,都是遵循系统管理基本输入输出系统(SMBIOS)规范或者桌面管理接口(DMI)规范将计算机的型号在基本输入输出系统(BIOS)启动过程中写到计算机系统的一段内存中去,本发明可以遵循SMBIOS规范或者DMI规范提供的方法获取并解析出这段内存的内容,得到计算机的型号。
SMBIOS规范中规定了很多种类的计算机系统管理信息块,它们以链表的形式组织,其中一个信息块为计算机主板(BaseBoard)的信息块,对应的类型编码为2。SMBIOS规范的类型编码2中定义了计算机生产厂商名称(manufacturer)、计算机产品型号(product)、计算机产品型号版本(version)、计算机产品序列号(serialnumber),该类型编码2中的信息存储在内存的一个保留区域,以保证一般的应用程序不会修改其中的内容,并且对于SMBIOS规范这个区域的起始地址以字符串“SM”作为标志;对于DMI规范,这个区域的起始地址以字符串“DMI”作为标志。其余信息块的组织形式,分类形式等与SMBIOS的方式完全一样。
如图2所示,图2为获取计算机型号的流程图,其具体步骤为步骤200、计算机在内存中搜索“SM”标志,并根据SMBIOS规范遍历SMBIOS信息块;步骤201、当查询到类型为BaseBoard的SMBIOS信息块后,从中读取该计算机的manufacturer、product、version和serialnumber;由于每一个SMBIOS信息块都有类型编码,对应于类型为BaseBoard的SMBIOS信息块的类型编码为2,当计算机查询到该类型编码2时,就差找到类型为BaseBoard的SMBIOS信息块;
步骤202、获取计算机型号完毕。
图1中步骤102为准确的获取需升级固件程序的设备型号如图3所示,图3为本发明获取升级固件程序设备型号的流程图,其具体步骤为步骤300、首先判断当前的设备是否支持固件程序自动升级,如果支持,转入步骤301,否则,转入步骤302;判断当前的设备是否支持固件程序自动升级有两种方法。
第一种方法预先在生产计算机时就确定好哪些设备类型支持固件程序的自动升级,哪些设备类型不支持固件程序的自动升级,并把相应的信息写到计算机中。当设备需要升级固件程序时,计算机查询存储在计算机中的信息就可以判定当前的设备是否支持固件程序自动升级;第二种方法预先在要固件程序升级的设备中设置一个能够支持查询该设备是否支持固件程序自动升级的命令,当设备需要升级固件程序时,计算机可以通过给该设备发送查询该设备是否支持固件程序自动升级的的命令来判断该设备是否支持固件程序的自动升级,如果该设备返回的命令为“支持”,则该设备可以进行自动的固件程序升级,如果该设备返回的命令为“不支持”或者没有响应,则该设备不可以进行自动的固件程序升级。
步骤301、计算机向设备获取设备型号;获取设备型号的方法有两种,第一种方法为读取计算机中存储设备信息的周边元件扩展端口(PCI)寄存器,获得该设备的型号;第二种方法为预先为安装在设备中的固件程序设置一个支持接收查询设备型号的命令,当计算机向该设备中的固件程序发送查询设备型号的命令时,该固件程序从该设备的数据寄存器中将该设备型号以字符串的形式一个字节一个字节的提供给计算机;在为设备的固件程序设置一个支持接收查询设备型号的命令时。可以在给设备安装固件程序时设置该命令,即所安装的固件程序本身就含有支持接收查询设备型号的命令;也可以采用升级固件程序的方法设置该命令,即设备中原有的固件程序版本不支持命令,则先升级设备中的固件程序版本,该升级后的固件程序版本本身就含有支持接收查询设备型号的命令,这样,第二次该设备进行固件程序的升级时,就可以用发送命令的方法获取到设备的型号了。
步骤302、当前设备不支持固件程序的自动升级,结束本流程。
图1中步骤103为根据计算机型号和需升级固件程序的设备型号,按照用户指定的方式搜索到合适的固件程序版本可以有两种方式搜索到合适的固件程序版本,其一为通过网络当网络连接建立以后,计算机将计算机型号和需要升级固件程序的设备型号发送给远程连接在计算机网络上的升级服务器,该升级服务器可以由负责升级固件程序的计算机厂商提供,升级服务器根据这两个信息,通过数据库查询,就可以找到当前最新的固件程序二进制文件,然后通过网络传送给该计算机。
其二为通过本地光盘获取固件程序,存储有固件程序的安装光盘中有一个数据文件,记录着各种型号的计算机上的各种型号的设备所对应的固件程序,当自动升级软件查询这个数据文件时,可以获取到相对应的固件程序二进制文件。
对以上两种获取固件程序的方法来说,通过网络的方法可以及时获取到最新版本的固件程序,但是需要有网络连接才可以;而通过本地光盘的方式就不需要网络连接了,但是可能获取不到最新版本的固件程序。
图1中步骤104为根据该固件程序版本给需升级固件程序的设备升级固件程序,完成整个过程当获取到准确版本的固件程序后,计算机就要开始将该固件程序安装到相应的设备中去,这个安装如图4所示
步骤400、将设备设置为升级模式,即计算机根据为不同的设备设置响应的升级模式;步骤401、将固件程序写入相应设备的内存中,即计算机一个字节一个字节的读取固件程序的二进制文件,然后将每一个字节依次写入升级模式下的该设备的数据寄存器端口,每写入一个字节,就要读取设备的状态寄存器,当状态寄存器提示上一个字节已经写入设备中的程序存储器了,再写入下一个字节,直到将该固件程序的二进制文件全部写入相应设备的内存;步骤402、重新启动设备,运行升级后的固件程序,当固件程序的二进制文件都写入设备的内存并验证成功后,计算机退出升级模式并向设备发送重新设置(reset)命令,重新启动设备,运行所升级的固件程序。
对于计算机的某些操作系统,某些设备在升级了固件程序之后,需要重新启动计算机系统才能正确工作。这种情况下,自动升级软件会提示用户是否重新启动计算机,如果用户选择重新启动计算机,自动升级软件就会重新启动计算机,使升级了固件程序的设备正常工作;否则,就退出程序,当用户下一次启动计算机的时候,这个升级了固件程序的设备也就能正常工作了。
有时用户不一定是需要升级计算机上某个设备的固件程序,只是想获取针对某种配置的计算机的某个设备上的固件程序二进制文件。那么用户也可以在升级软件中选择对应的计算机型号和设备型号,并指定固件程序二进制文件的存储位置,就可以通过网络或者本地光盘使用升级软件获取对应的固件程序二进制文件,并将其保存在用户指定的存储位置。
本发明提供的方法操作简单,不需要了解计算机的型号和需要升级固件程序设备的型号就可以给相应的设备升级固件程序,稍有计算机操作经验的人员均可以操作,不需要计算机厂商的专业服务人员操作,大大降低了计算机厂商的客户服务成本,提高了计算机用户的工作效率。本发明提供的方法将固件程序下载和固件程序安装结合在了一起,用户一次操作即可完成。不需要象现有技术那样首先查找正确的型号,然后上网下载,然后使用dos启动盘进入dos环境,然后计算机进行升级。本发明提供的方法可以提供多种升级模式,当用户具有网络环境时,可以升级最新版本的固件程序;当用户无法访问网络环境时,也可以从本地光盘或其他存储介质上升级较新版本的固件程序。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种升级计算机固件程序的方法,其特征在于,该方法包括A、计算机遍历内存中的基本输入输出系统保存的系统配置信息,查询到计算机主板的配置信息,读取计算机的型号;B、计算机获取需要升级固件程序的设备型号;C、计算机根据计算机型号和需要升级固件程序的设备型号查询到所需要的固件程序版本;D、计算机将该版本的固件程序安装到需要升级固件程序的设备上。
2.如权利要求1所述的方法,其特征在于,所述的步骤A进一步包括当按照系统管理基本输入输出系统(SMBIOS)规范读取基本输入输出系统保存的系统配置信息时,搜索到计算机内存中的字符串“_SM_”后,遍历计算机内存中的基本输入输出系统信息块的类型编码,类型编码为2的基本输入输出系统信息块为计算机主板的基本输入输出系统信息块。
3.如权利要求1所述的方法,其特征在于,所述的步骤A进一步包括当按照桌面管理接口(DMI)规范读取基本输入输出系统保存的系统配置信息时,搜索到计算机内存中的字符串“_DMI_”后,遍历计算机内存中的基本输入输出系统信息块的类型编码,类型编码为2的基本输入输出系统信息块为计算机主板的基本输入输出系统信息块。
4.如权利要求1所述的方法,其特征在于,所述的计算机主板的系统管理输入输出系统信息块保存有计算机生产厂商的名称、计算机产品型号、计算机产品型号版本和计算机产品序列号。
5.如权利要求1所述的方法,其特征在于,所述的步骤B进一步包括预先确定需要升级固件程序的设备是否支持固件程序的自动升级,如果支持,获取该设备的型号;否则,不做任何处理。
6.如权利要求5所述的方法,其特征在于,所述的预先确定需要升级固件程序的设备是否支持固件程序的自动升级过程为在生产计算机时确定需要升级固件程序的设备是否支持固件程序的自动升级,并将该设备的类型写到计算机中。
7.如权利要求5所述的方法,其特征在于,所述的预先确定需要升级固件程序的设备是否支持固件程序的升级过程为预先在需要升级固件程序的设备中设置一个支持查询该设备是否能够自动升级固件程序的命令,当计算机发送查询该设备是否能够自动升级固件程序的命令时,该设备返回响应给计算机。
8.如权利要求5所述的方法,其特征在于,所述的获取该设备的型号过程为读取计算机中的周边元件扩展端口寄存器,获得该设备的型号。
9.如权利要求5所述的方法,其特征在于,所述的获取该设备的型号过程为预先为安装在设备中的固件程序设置一个支持接收查询设备型号的命令,当计算机向该设备中的固件程序发送查询设备型号的命令时,该固件程序从该设备的数据寄存器中将该设备型号返回给计算机。
10.如权利要求9所述的方法,其特征在于,所述预先为安装在设备中的固件程序设置一个支持接收查询设备型号的命令的过程为在设备安装固件程序时在固件程序中设置支持接收查询设备型号的命令或者给该设备升级含有支持接收查询设备型号的命令的固件程序。
11.如权利要求1所述的方法,其特征在于,所述的步骤C进一步包括计算机远程连接到网络查询所需要的固件程序版本。
12.如权利要求1所述的方法,其特征在于,所述的步骤C进一步包括计算机通过本地所安装光盘查询到所需要的固件程序版本。
13.如权利要求1所述的方法,其特征在于,所述的步骤D进一步包括D1、将该设备设置为升级模式;D2、将该版本的固件程序写入该设备的存储中;D3、重新启动设备,运行该版本的固件程序。
14.如权利要求1所述的方法,其特征在于,该方法进一步包括将该版本的固件程序安装到升级固件程序的设备上后,重新启动计算机。
全文摘要
本发明公开一种升级计算机固件程序的方法,该方法包括A.计算机遍历内存中的基本输入输出系统保存的系统配置信息,查询到计算机主板的配置信息,读取计算机的型号;B.计算机获取需要升级固件程序的设备型号;C.计算机根据计算机型号和需要升级固件程序的设备型号查询到所需要的固件程序版本;D.计算机将该版本的固件程序安装到需要升级固件程序的设备上。该方法不需要专业人员再人为地为设备升级固件程序,从而提高了升级计算机固件程序的效率,减小了升级计算机固件程序的难度,降低了计算机厂商的客户服务成本。
文档编号G06F9/06GK1584822SQ0315366
公开日2005年2月23日 申请日期2003年8月19日 优先权日2003年8月19日
发明者李勇 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1