基于SD卡和EEPROM的固件程序更新方法及系统技术方案

技术编号:29614229 阅读:27 留言:0更新日期:2021-08-10 18:27
本发明专利技术提供一种基于SD卡和EEPROM的固件程序更新方法及系统,通过MCU与外部SD卡和EEPROM存储器等硬件设备配合存储嵌入式系统的硬件版本信息和待更新固件程序的软件版本信息,同时将系统的硬件版本信息和待更新固件程序的软件版本信息加入到待更新固件程序的内部数据中和固件程序的文件名中,保证了引导程序将正确软件版本的固件程序升级进入正确硬件版本的MCU;同时在引导程序升级固件程序过程中,利用标准的SHA256安全哈希算法对升级前固件程序文件所含内部数据、MCU内已更新的固件程序的所有数据,均进行了数据完整性认证检查,保证了引导程序将待更新固件程序文件的所有数据正确升级写入MCU内,提高了固件程序写入MCU的准确性。

【技术实现步骤摘要】
基于SD卡和EEPROM的固件程序更新方法及系统
本专利技术涉及电子
,具体而言,涉及一种基于SD卡和EEPROM的固件程序更新方法及系统。
技术介绍
当前光通信嵌入式系统主要包括引导程序(Bootloader)和固件程序(Firmware),主要存储在MCU的Flash中。而引导程序(Bootloader)更新固件程序(Firmware)的方式,大部分利用编程器写入MCU的Flash中或者通过将Flash划分位为若干个不同的区域,存储相应的固件程序(Firmware)数据,运用自身MCU包含的引导程序,读取MCU内部Flash分区已存储的备份固件程序数据,更新运行的固件程序。在以上的更新方式中,进行固件程序更新升级时,大部分只简单将固件程序数据直接写入MCU的Flash中,未对实际写入的数据进行有效性检查,无法对当前硬件版本信息和软件版本信息进行验证。不能有效保证固件程序更新进入正确的硬件中,同时未对已写入MCU的Flash的固件程序数据进行检查,无法有效确保所有固件程序数据正确写入MCU。所以需要提供一种方案以提高固件程序写入MCU的准确性。
技术实现思路
本专利技术的目的在于提供一种基于SD卡和EEPROM的固件程序更新方法及系统,用以实现提高固件程序写入MCU的准确性的技术效果。第一方面,本专利技术提供了一种基于SD卡和EEPROM的固件程序更新方法,包括S1.嵌入式系统的MCU启动运行引导程序并初始化加载SD卡和EEPROM存储器;其中所述SD卡用于存储更新固件程序的关联文件,所述EEPROM存储器用于存储系统硬件版本信息;S2.分析从EEPROM存储器读取的第一系统硬件版本信息是否有效;若有效,则通过SHA256认证加密算法验证MCU内部已存储的待更新固件程序是否完整;S3.若所述待更新固件程序完整,则读取所述待更新固件程序的第一软件版本信息,并根据所述第一软件版本信息分析SD卡内是否含有能够对所述待更新固件程序进行更新的完整的新版固件程序;若SD卡内含有能够对所述待更新固件程序进行更新的完整的新版固件程序,则将所述新版固件程序写入MCU后,执行S4;S4.读取MCU中当前的固件程序的数字签名信息,运用SHA256认证加密算法验证当前的固件程序是否完整;S5.若当前的固件程序完整,则启动MCU中当前的固件程序;否则,结束更新流程。进一步地,所述S3包括:S31.检测SD卡内是否存在所述第一软件版本信息的锁定文件;S32.若SD卡内存在所述第一软件版本信息的锁定文件,则分析所述第一软件版本信息与所述锁定文件指定的第二软件版本信息是否相同;S33.若所述第一软件版本信息与所述第二软件版本信息不相同,则检测SD卡内是否存在与所述第一系统硬件版本信息和所述第二软件版本信息均相同的第一程序文件;否则,继续执行S4;S34.若SD卡内存在与所述第一系统硬件版本信息和所述第二软件版本信息均相同的第一程序文件,则分析所述第一程序文件所含的第三软件版本信息与所述第一软件版本信息是否相同;S35.若所述第一程序文件所含的第三软件版本信息与所述第一软件版本信息相同,则将所述继续执行S4。进一步地,所述S3还包括:S36.若所述第一程序文件所含的第三软件版本信息与所述第一软件版本信息不相同,则解析所述第一程序文件的文件名所含的第二系统硬件版本信息和第三软件版本信息,分析所述第二系统硬件版本信息和第三软件版本信息是否与所述第一系统硬件版本信息和所述第一程序文件内部数据所含的第四软件版本信息相同;S37.若所述第二系统硬件版本信息和第三软件版本信息与所述第一系统硬件版本信息和所述第一程序文件内部数据所含的第四软件版本信息相同,则从SD卡中获取所述第一程序文件内部所含的数字签名信息和所有数据值,利用SHA256认证加密算法验证所述第一程序文件是否完整;否则,则继续执行S4;S38.若所述第一程序文件完整,则读取所述第一程序文件内部所含的所有数据,然后继续执行S4。进一步地,所述方法还包括:S6.若所述待更新固件程序不完整,则检测SD卡内是否存在与所述第一系统硬件版本信息相同、版本信息任意的第三程序文件;若SD卡内存在所述第三程序文件,则执行S36。进一步地,S39.若SD卡内不存在所述第一软件版本信息的锁定文件,则检测SD卡内是否存在与所述第一系统硬件版本信息相同并且比所述第一软件版本信息更新的第二程序文件;若SD卡内存在所述第二程序文件,则执行S34。进一步地,所述S1与S2之间还包括;检测加载SD卡内的固件程序文件存储分区是否成功;若加载SD卡内的固件程序文件存储分区成功,则检测是否能够成功读取EEPROM存储器所含的系统硬件版本信息;若能够成功读取EEPROM存储器所含的系统硬件版本信息,则继续执行S2。第二方面,本专利技术提供了一种基于SD卡和EEPROM的固件程序更新系统,包括:MCU、SD卡和EEPROM存储器;所述SD卡用于存储更新固件程序的关联文件,所述EEPROM存储器用于存储系统硬件版本信息;所述MCU用于启动运行引导程序并初始化加载SD卡和EEPROM存储器;分析从EEPROM存储器读取的第一系统硬件版本信息是否有效;若有效,则通过SHA256认证加密算法验证MCU内部已存储的待更新固件程序是否完整;若所述待更新固件程序完整,则读取所述待更新固件程序的第一软件版本信息,并根据所述第一软件版本信息分析SD卡内是否含有能够对所述待更新固件程序进行更新的完整的新版固件程序;若SD卡内含有能够对所述待更新固件程序进行更新的完整的新版固件程序,则将所述新版固件程序写入MCU后,读取MCU中当前的固件程序的数字签名信息,运用SHA256认证加密算法验证当前的固件程序是否完整;若当前的固件程序完整,则启动MCU中当前的固件程序;否则,结束更新流程。本专利技术能够实现的有益效果是:本专利技术通过MCU与外部SD卡和EEPROM存储器等硬件设备配合存储嵌入式系统的硬件版本信息和待更新固件程序的软件版本信息,同时将系统的硬件版本信息和待更新固件程序的软件版本信息加入到待更新固件程序的内部数据中和固件程序的文件名中,保证了引导程序将正确软件版本的固件程序升级进入正确硬件版本的MCU;同时在引导程序升级固件程序过程中,利用标准的SHA256安全哈希算法对升级前固件程序文件所含内部数据、MCU内已更新的固件程序的所有数据,均进行了数据完整性认证检查,保证了引导程序将待更新固件程序文件的所有数据正确升级写入MCU内,提高了固件程序写入MCU的准确性。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对本专利技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本专利技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。图1为本专利技术实施例提供的一种基于SD本文档来自技高网...

【技术保护点】
1.一种基于SD卡和EEPROM的固件程序更新方法,其特征在于,包括:/nS1.嵌入式系统的MCU启动运行引导程序并初始化加载SD卡和EEPROM存储器;其中所述SD卡用于存储更新固件程序的关联文件,所述EEPROM存储器用于存储系统硬件版本信息;/nS2.分析从EEPROM存储器读取的第一系统硬件版本信息是否有效;若有效,则通过SHA256认证加密算法验证MCU内部已存储的待更新固件程序是否完整;/nS3.若所述待更新固件程序完整,则读取所述待更新固件程序的第一软件版本信息,并根据所述第一软件版本信息分析SD卡内是否含有能够对所述待更新固件程序进行更新的完整的新版固件程序;若SD卡内含有能够对所述待更新固件程序进行更新的完整的新版固件程序,则将所述新版固件程序写入MCU后,执行S4;/nS4.读取MCU中当前的固件程序的数字签名信息,运用SHA256认证加密算法验证当前的固件程序是否完整;/nS5.若当前的固件程序完整,则启动MCU中当前的固件程序;否则,结束更新流程。/n

【技术特征摘要】
1.一种基于SD卡和EEPROM的固件程序更新方法,其特征在于,包括:
S1.嵌入式系统的MCU启动运行引导程序并初始化加载SD卡和EEPROM存储器;其中所述SD卡用于存储更新固件程序的关联文件,所述EEPROM存储器用于存储系统硬件版本信息;
S2.分析从EEPROM存储器读取的第一系统硬件版本信息是否有效;若有效,则通过SHA256认证加密算法验证MCU内部已存储的待更新固件程序是否完整;
S3.若所述待更新固件程序完整,则读取所述待更新固件程序的第一软件版本信息,并根据所述第一软件版本信息分析SD卡内是否含有能够对所述待更新固件程序进行更新的完整的新版固件程序;若SD卡内含有能够对所述待更新固件程序进行更新的完整的新版固件程序,则将所述新版固件程序写入MCU后,执行S4;
S4.读取MCU中当前的固件程序的数字签名信息,运用SHA256认证加密算法验证当前的固件程序是否完整;
S5.若当前的固件程序完整,则启动MCU中当前的固件程序;否则,结束更新流程。


2.根据权利要求1所述的方法,其特征在于,所述S3包括:
S31.检测SD卡内是否存在所述第一软件版本信息的锁定文件;
S32.若SD卡内存在所述第一软件版本信息的锁定文件,则分析所述第一软件版本信息与所述锁定文件指定的第二软件版本信息是否相同;
S33.若所述第一软件版本信息与所述第二软件版本信息不相同,则检测SD卡内是否存在与所述第一系统硬件版本信息和所述第二软件版本信息均相同的第一程序文件;否则,继续执行S4;
S34.若SD卡内存在与所述第一系统硬件版本信息和所述第二软件版本信息均相同的第一程序文件,则分析所述第一程序文件所含的第三软件版本信息与所述第一软件版本信息是否相同;
S35.若所述第一程序文件所含的第三软件版本信息与所述第一软件版本信息相同,则将所述继续执行S4。


3.根据权利要求2所述的方法,其特征在于,所述S3还包括:
S36.若所述第一程序文件所含的第三软件版本信息与所述第一软件版本信息不相同,则解析所述第一程序文件的文件名所含的第二系统硬件版本信息和第三软件版本信息,分析所述第二系统硬件版本信息和第三软件版本信息是否与所述第一系统硬件版本信息和所述第一程序文件内部数据所含的第四软件版本信息相同;
S37.若所述第二系统硬件版本信息和第三软件版本信息与所述...

【专利技术属性】
技术研发人员:张爱黄盛刚
申请(专利权)人:成都新易盛通信技术股份有限公司四川新易盛通信技术有限公司
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1