一种计算机的嵌入式控制系统及其更新方法与流程

文档序号:11780072阅读:210来源:国知局
一种计算机的嵌入式控制系统及其更新方法与流程
本发明涉及信息安全领域,具体提出了一种新型的计算机的嵌入式控制器系统的更新方法。

背景技术:
计算机的电源管理与功耗控制技术出现在90年代初,当初的电源管理主要局限于对CPU的时钟管理和简单的切断电源,这样的电源管理常常会造成与操作系统和应用程序的冲突,从而导致系统死机。随着技术的发展,在计算机中独立出一种用于控制键盘输入、电源功耗、时钟管理等功能的控制芯片,这种新芯片通常就叫做主板控制芯片(EmbededControler,EC)。由于主板控制芯片独立于计算机CPU,目前通常被用来控制设备启动时序,控制各个装置的电源开关。随着时间的推迟,主板控制芯片的功能变得越来越复杂,再配合上层管理软件,可以实现系统电源管理、部件电源管理、CPU电源管理、部件和CPU功效管理、电池管理、热效应管理等,因此其安全性也逐渐引起人们的关注。为了简化设计节省成本,现有的计算机的EC往往与主板的处理器相连,可以通过上层软件直接对EC进行操作。随着片上系统的芯片设计架构的引入,EC也逐渐开始采用硬件运算系统和固件相配合的设计方案。为了方便EC固件的更新,在计算机通常采用在线下载的方法升级EC的固件,而且多数EC的升级过程不对升级操作进行合法性检查,不对升级数据进行可信检查,因此不正确或者非法的EC固件升级,会改变EC的功能,威胁计算机的安全。

技术实现要素:
本发明的目的在于提供一种计算机中EC芯片固件的更新方法,保证更新过程的安全性和更新代码的可信性,进而防止黑客通过更新EC固件,达到控制计算机的目的。一种计算机的嵌入式控制系统,包括:处理器、总线接口、电源控制器、键盘、风扇、触摸板、电池、显示屏和FLASH存储单元, 其特征在于还包括:身份识验证设备、嵌入式控制器、显示输出设备、更新操作输入设备和更新操作确认设备;所述嵌入式控制器包括微处理器、总线、非易失性存储单元、易失性存储单元、电源控制器接口、电池接口、风扇的控制接口、输入输出接口、键盘的控制接口、触摸板接口、身份验证设备接口和显示屏的控制接口,显示输出设备接口、更新操作输入设备接口和更新操作确认设备接口;所述显示输出设备、更新操作输入设备和更新操作确认设备分别连接到嵌入式控制器的显示输出设备接口、更新操作输入设备接口和更新操作确认设备接口;所述显示输出设备为LED显示灯、数码显示管、LED显示屏或液晶显示屏中的一种或几种;所述更新操作输入设备为处理器、南桥芯片、USB设备、HDMI设备、网络设备、光盘设备或硬盘设备中的一种或几种;所述更新操作确认设备包括按钮、开关或按键。嵌入式控制器嵌入在计算机主板上,与计算机的处理器、电源管理芯片、电源、电池、光驱电源接口、硬盘电源接口、网卡电源接口、显卡电源接口、键盘、PS2接口、SMBus接口、LPC接口、UART接口、显示器电源接口相连接;嵌入式控制器可以被嵌入在平板电脑、手机、电视机、PDA、MP3、MP4和家用电器,用于实现电池管理、键盘管理、电源功耗管理等功能。一种计算机嵌入式控制器的更新方法包括:固件代码下载流程、固件代码更新申请流程和固件代码自检流程;计算机嵌入式控制器的更新过程中,固件代码下载流程、固件代码更新申请流程和固件代码自检流程是依次执行的,但固件代码自检流程可以单独执行;A、所述固件代码下载流程包括:1)用户按下更新操作确认设备,通知所述嵌入式控制器准备开始更新固件的下载操作;同时,所述的嵌入式控制器通过身份验证设备接口连接的身份验证设备检查用户的身份合法性,如果身份合法,则继续进行更新操作;如果身份不合法,则取消此次更新操作;2)将更新操作输入设备连接在嵌入式控制器的更新操作输入设备接口;3)嵌入式控制器开始检查更新操作输入设备设备是否正确连接到更新操作输入设备接口;如果正确连接,则通过显示输出设备显示正确信息否则,通过显示输出设备显示更新操作输入设备连接错误信息,并一直等待更新操作输入设备正确接入;4)处理器向嵌入式控制器发送待更新固件的设备信息;设备信息包括:设备厂商编号、类别编号、产品编号、文件大小和固件编号;5)嵌入式控制器收到设备厂商编号、类别编号、产品编号、文件大小和固件编号后,首先判断文件大小是否超出嵌入式控制器的存储空间,如果超出,则通过显示输出设备显示空间不足,不能进行更新的信号,取消本次固件代码下载操作;否则,比对待下载的固件代码和当前的固件代码的版本新旧,将版本新旧的比较结果发送给操作系统;操作系统是指计算机上运行的操作系统,包括Linux、Windows、Unix和iOS等操作系统软件;当前的固件代码版本比待更新的固件代码版本新,则向操作系统发送0x0h;当前的固件代码版本比待更新的固件代码版本旧,则向操作系统发送0x1h;当前的固件代码版本比待更新的固件代码版本一样,则向操作系统发送0x2h;6)当嵌入式控制器存储空间满足下载要求时,嵌入式控制器通过显示输出设备显示确认继续下载的提示信息;7)当嵌入式控制器在预设值的等待时间内收到用户发送的确认信号后,产生并向处理器发送一个随机数data1和传输密钥;否则,通过显示输出设备显示等待超时的信息,并取消本次下载操作;每次更新操作过程中,嵌入式控制器都要重新生成随机数和传输密钥;6)处理器将收到的随机数data1和传输密钥发送给操作系统;7)操作系统对收到的随机数data1做附加操作,得到数据data2;附加操作包括:加、减、乘或除之一或者两者以上的组合操作;8)操作系统计算待升级固件代码的哈希值;9)操作系统按照产品编号、固件代码的哈希值、固件代码和数据data2进行数据的组合,并使用传输密钥进行加密;10)操作系统将加密后的数据传输给嵌入式控制器;11)嵌入式控制器使用传输密钥解密收到的加密数据;12)嵌入式控制器使用固件代码的哈希值,验证待更新的固件代码的完整性,若待更新的固件代码完整,则将待更新的固件代码及其哈希值存入非易失性存储单元,并删除之前存储的固件代码,通过显示输出设备显示待更新的固件代码下载成功的信息;否则删除待更新的固件代码,并通过显示输出设备显示待更新的固件代码不正确的信息;B、所述固件代码的更新申请流程包括:1)当待更新的固件代码在嵌入式控制器中存储完成后,等待用户通过更新操作确认设备向嵌入式控制器发送更新申请信号;2)当嵌入式控制器收到用户的更新操作确认信号,嵌入式控制器开始检查非易失性存储单元中的固件代码的完整性,否则继续等待用户的更新操作确认信号;3)当嵌入式控制器检查到非易失性存储单元中固件代码不完整,则通过显示输出设备显示待更新的固件代码不完整的信息,并删除存储的固件代码,取消本次更新操作;4)当嵌入式控制器验证非易失性存储单元中的固件代是完整时,通过显示输出设备显示更新操作确认信息,收到用户的确认信号后,向操作系统发送更新嵌入式控制器固件代码的信息,并结束当前正在操作的所有操作,停止接受操作系统发送的命令,然后更新嵌入式控制器的固件代码,并通过显示输出设备显示更新操作完成的信息;C、所述固件代码自检流程:1)当嵌入式控制器更新操作完成后,嵌入式控制器立即重新启动,加载更新后的固件代码;2)嵌入式控制器对易失性存储单元和非易失性存储单进行工作状态检查,如果检查正确则继续执行;否则,通过显示输出设备显示存储设备错误的信息,等待更换存储单元,并重新进行固件代码的更新操作;3)嵌入式控制器对其所连接的设备进行检查,如果所连接的设备无法正常工作,则停止计算机的执行,并通过显示输出设备显示因设备无法工作造成的更新操作错误的信息,等待用户重新进行固件代码的更新操作;否则,继续执行;所述的连接的设备包括:键盘、触摸板、指示灯、显示输出设备、更新操作输入设备和更新操作确认设备;4)嵌入式控制器通过检查所连接设备的上电工作时序,如果时序检查结果错误,则停止计算机的执行,并通过显示输出设备显示因上电时序错误造成的更新操作错误的信息,等待用户重新进行固件代码的更新操作;否则,继续执行;5)嵌入式控制器向操作系统发送固件代码更新后的测试请求;6)当嵌入式控制器在预设置的时间内接收到操作系统发送的测试信息后,开始执行测试操作,并将测试结果通过总线和处理器返回给操作系统,并等待操作系统对测试结果的判断结果;如果嵌入式控制器未在预设置的时间内收到操作系统发送的测试信息,则再次向操作系统发送固件代码更新后的测试请求,一直到接收到操作系统发送的测试信息;如果嵌入式控制器未在预设置的时间内收到操作系统发送的测试结果的判断结果,则再次向操作系统发送固件代码更新后的测试请求,一直到接收到操作系统发送的判断结果;9)当嵌入式控制器收到的测试结果的判断结果是正确,则嵌入式控制器通过显示输出设备显示固件代码更新操作成功的信息;否则,通过显示输出设备显示固件代码更新操作不成功的信息,并等待用户重新执行固件代码更新操作。附图说明图1计算机的嵌入式控制器连接方式图2计算机的嵌入式控制器的结构图具体实施方式为达到上述目的,本发明的技术方案具体是这样实现的。一、硬件设计方面的实施方案如下:嵌入式控制器选用华邦的WPC8769芯片;显示输出设备:选择红、绿、黄三色一体的一位数码管指示灯,当返回正确信息时显示绿色,并配合相应的数字;当返回最终严重的错误信息时将显示红色,并配合相应的数字;当处于更新过程中,则显示黄色;当请求按下确认按钮时,闪烁频率为2次/秒,间隔1秒;更新操作输入设备:选择硬盘;更新操作确认设备:按钮;计算机选用X86架构;CPU:Intel(R)Core(TM)i5CPUM5202.4GHz;内存:3GB;硬盘:ST9500420AS二、更新方法方面的实施方案如下:操作系统选择:Windows7旗舰版。一种计算机嵌入式控制器的更新方法的具体实施流程包括:固件代码下载流程、固件代码更新申请流程和固件代码自检流程;计算机嵌入式控制器的更新过程中,固件代码下载流程、固件代码更新申请流程和固件代码自检流程是依次执行的,但固件代码自检流程可以单独执行;A、所述固件代码下载流程包括:1)用户按下更新操作确认按钮,通知所述嵌入式控制器准备开始更新固件的下载操作;同时,所述的嵌入式控制器通过身份验证设备接口连接的身份验证设备检查用户的身份合法性,如果身份合法,则继续进行更新操作;如果身份不合法,则取消此次更新操作;2)将更新操作输入设备(硬盘)连接在嵌入式控制器的更新操作输入设备接口;3)嵌入式控制器开始检查更新操作输入设备设备是否正确连接到更新操作输入设备接口;如果正确连接,则通过显示输出设备显示正 确信息否则,通过显示输出设备显示更新操作输入设备连接错误信息,并一直等待更新操作输入设备正确接入;4)处理器向嵌入式控制器发送待更新固件的设备信息;设备信息包括:设备厂商编号、类别编号、产品编号、文件大小和固件编号;5)嵌入式控制器收到设备厂商编号、类别编号、产品编号、文件大小和固件编号后,首先判断文件大小是否超出嵌入式控制器的存储空间,如果超出,则通过显示输出设备显示空间不足,不能进行更新的信号,取消本次固件代码下载操作;否则,比对待下载的固件代码和当前的固件代码的版本新旧,将版本新旧的比较结果通过操作系统发送给用户;6)当嵌入式控制器存储空间满足下载要求时,嵌入式控制器通过显示输出设备显示确认继续下载的提示信息;7)当嵌入式控制器在预设值的等待时间内收到用户发送的确认信号后,产生并向处理器发送一个随机数data1和传输密钥;否则,通过显示输出设备显示等待超时的信息,并取消本次下载操作;6)处理器将收到的随机数data1和传输密钥发送给操作系统;7)操作系统对收到的随机数data1做加1操作,得到数据data2;8)操作系统计算待升级固件代码的哈希值;9)操作系统按照产品编号、固件代码的哈希值、固件代码和数据data2进行数据的组合,并使用传输密钥进行加密;10)操作系统将加密后的数据传输给嵌入式控制器;11)嵌入式控制器使用传输密钥解密收到的加密数据;12)嵌入式控制器使用固件代码的哈希值,验证待更新的固件代码的完整性,若待更新的固件代码完整,则将待更新的固件代码及其哈希值存入非易失性存储单元,并删除之前存储的固件代码,通过显示输出设备显示待更新的固件代码下载成功的信息;否则删除待更新的固件代码,并通过显示输出设备显示待更新的固件代码不正确的信息;B、所述固件代码的更新申请流程包括:1)当待更新的固件代码在嵌入式控制器中存储完成后,等待用户通过更新操作确认设备向嵌入式控制器发送更新申请信号;2)当嵌入式控制器收到用户的更新操作确认信号,嵌入式控制器开始检查非易失性存储单元中的固件代码的完整性,否则继续等待用户的更新操作确认信号;3)当嵌入式控制器检查到非易失性存储单元中固件代码不完整,则通过显示输出设备显示待更新的固件代码不完整的信息,并删除存储的固件代码,取消本次更新操作;4)当嵌入式控制器验证非易失性存储单元中的固件代完整时,通过显示输出设备显示更新操作确认信息,收到用户的确认信号后,向操作系统发送更新嵌入式控制器固件代码的信息0x01h,并结束当前正在操作的所有操作,停止接受操作系统发送的命令,然后更新嵌入式控制器的固件代码,并通过显示输出设备显示更新操作完成的信息;C、所述固件代码自检流程:1)当嵌入式控制器更新操作完成后,嵌入式控制器立即重新启动,加载更新后的固件代码;2)嵌入式控制器对易失性存储单元和非易失性存储单进行工作状态检查,如果检查正确则继续执行;否则,通过显示输出设备显示存储设备错误的信息,等待更换存储单元,并重新进行固件代码的更新操作;3)嵌入式控制器对其所连接的设备进行检查,如果所连接的设备无法正常工作,则停止计算机的执行,并通过显示输出设备显示因设备无法工作造成的更新操作错误的信息,等待用户重新进行固件代码的更新操作;否则,继续执行;4)嵌入式控制器通过检查所连接设备的上电工作时序,如果时序检查结果错误,则停止计算机的执行,并通过显示输出设备显示因上电时序错误造成的更新操作错误的信息,等待用户重新进行固件代码的更新操作;否则,继续执行;5)嵌入式控制器向操作系统发送固件代码更新后的测试请求0x01h;6)当嵌入式控制器在预设置的时间10秒内接收到操作系统发送的测试信息后,开始执行测试操作,并将测试结果通过总线和处理器返回给操作系统,并等待操作系统对测试结果的判断结果;7)如果嵌入式控制器未在预设置的时间10秒内收到操作系统发送的测试信息,则再次向操作系统发送固件代码更新后的测试请求0x01h,一直到接收到操作系统发送的测试信息;8)如果嵌入式控制器未在预设置的时间10秒内收到操作系统发送的测试结果的判断结果,则再次向操作系统发送固件代码更新后的测试请求0x01h,一直到接收到操作系统发送的测试信息;9)当嵌入式控制器收到的测试结果的判断结果是正确0x01h,则嵌入式控制器通过显示输出设备显示固件代码更新操作成功的信息;否则,通过显示输出设备显示固件代码更新操作不成功的信息,并等待用户重新执行固件代码更新操作。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1