首页> 中国专利> 一种增进产线CPLD固件更新效率的方法、系统及介质

一种增进产线CPLD固件更新效率的方法、系统及介质

摘要

本发明公开了一种增进产线CPLD固件更新效率的方法,包括以下步骤:获取原始固件,生成检查码,将所述原始固件与所述检查码组合构建更新固件;将所述更新固件通过SPI存储器预更新至PCB板上的CPLD,更新过程中记录更新断点信息,加入所述检查码校验,校验成功执行预更新固件操作;将预更新至所述CPLD中的更新固件与所述更新固件进行比对,根据比对结果执行更新操作;通过上述方式,本发明能够实现同时更新多块板卡,降低工厂产线人员和设备工作负担,无需专用设备和专业人员更新CPLD固件,降低工厂生产成本,提升已上板CPLD固件更新效率,同时增加固件检查机制防止固件误烧,提升产线质量和安全性。

著录项

  • 公开/公告号CN113220323A

    专利类型发明专利

  • 公开/公告日2021-08-06

    原文格式PDF

  • 申请/专利权人 山东英信计算机技术有限公司;

    申请/专利号CN202110442285.4

  • 发明设计人 陆俊宇;

    申请日2021-04-23

  • 分类号G06F8/65(20180101);

  • 代理机构11638 北京权智天下知识产权代理事务所(普通合伙);

  • 代理人王新爱

  • 地址 250101 山东省济南市高新区浪潮路1036号浪潮科技园S05号楼北3层北区

  • 入库时间 2023-06-19 12:07:15

说明书

技术领域

本发明涉及CPLD更新技术领域,特别是涉及一种增进产线CPLD固件更新效率的方法、系统及介质。

背景技术

CPLD的可编程特性在服务器系统的应用中有减少系统开发时间、增加系统集成度和可靠性、方便排除问题及易于维护的优点,故在现今的服务器系统中,CPLD是必需并且广泛使用的器件。

现今的服务器产品也使用了许多CPLD器件,其优点包括:可编程,可以将部分在设计初期尚不完善或者功能尚未完全底定功能的产品用CPLD器件实现,开发设计过程中可以随时进行修改而不需要大幅变更硬件线路;集成度高,将部分硬件线路功能集成于CPLD器件中以减少电路板面积;可升级,针对开发设计初期发现的BUG或者需要增加新功能,可随时进行升级。

很多服务器厂商将服务器产品交由工厂生产,工厂为提高生产效率多数都会采用流水线模式生产产品。现今工厂端针对使用CPLD的服务器产品在生产时绝大多数的方式为先对CPLD采用脱机刻录的方式,即在CPLD组装上板组装前先将开发设计好的固件通过刻录器预先刻录至CPLD中,再将刻录好固件的CPLD上流水线进行打板组装。

但是现在的服务器产品使用的技术都较为前沿,产品需要在可控范围内对应新规格进行更新,在产品量产前客户的需求变更频繁,部分需求可以通过更新固件的方式进行改正,加上产品上市速度越来越快,一些在产线生产测试过程中发现的问题需要通过更新固件来解决,针对这些需求,工厂在对试产阶段或者量产阶段已经完成上板的CPLD进行固件更新就变得困难且复杂。工厂对已经上板的CPLD更新时会遇到以下问题:

一是需要在有限的资源下挤出计算机主机提供更新CPLD的需求,直接或者间接影响工作进度和其它岗位工作需求;

二是不同品牌厂商的CPLD只能使用自家品牌的专用下载线缆,工厂需要投入额外成本;

三是不同品牌厂商的CPLD刻录软件和操作方法不尽相同,工厂需要对不同品牌的产线人员做不同的操作培训,生产成本大幅提高;

四是一套设备一次只能更新一块板,并且由于需要的专用软硬件及专用下载线缆的取得相对困难,造成无法同时进行大量更新,更新效率不佳。

发明内容

本发明主要解决的是工厂端使用原生产方案更新已上板CPLD固件时成本增加和产线生产效率不佳的问题。

为解决上述问题,本发明采用的一个技术方案是:提供一种增进产线CPLD固件更新效率的方法,包括以下步骤:

获取原始固件,生成检查码,将所述原始固件与所述检查码组合构建为更新固件,将所述检查码导入CPLD生成检查码副本;

将所述更新固件通过SPI存储器更新至PCB板上的所述CPLD,生成临时固件;

将所述临时固件与所述更新固件进行比对,根据比对结果执行验证更新操作。

进一步,所述将所述原始固件与所述检查码组合构建为更新固件的步骤进一步包括:将所述原始固件拆分成若干固件段,并在所述固件段中设置断点信息,将所述检查码与若干所述固件段组合,并将所述检查码放置于第一传输位置,组合构建所述更新固件。

进一步,所述将所述更新固件通过SPI存储器更新至PCB板上的所述CPLD,生成临时固件的步骤进一步包括:

刻录更新固件:将所述更新固件刻录至所述SPI存储器,将所述SPI存储器插入所述PCB板的SPI卡槽;

开启预更新:发送更新指令,根据所述更新指令执行验证检查码步骤;

验证检查码:将所述检查码与所述检查码副本比对,根据比对结果执行预更新步骤;

预更新:读取所述SPI存储器中的所述固件段,并写入所述CPLD,生成临时固件。

进一步,读取所述SPI存储器中的所述固件段,并写入所述CPLD的步骤进一步包括:

所述CPLD每写入所述更新固件中的一个固件段,所述CPLD记录该固件段中的所述断点信息。

进一步,所述根据比对结果执行验证更新操作的步骤进一步包括:

若所述临时固件与所述SPI存储器中的所述更新固件相同,则执行第二正常提示操作;

若所述临时固件与所述SPI存储器中的所述更新固件不相同,则执行第二告警提示操作,并回到所述验证检查码步骤。

进一步,所述验证检查码的步骤进一步包括:

所述CPLD读取所述第一传输位置的检查码与所述CPLD中的所述检查码副本比对,若相同,则执行所述预更新步骤;若不相同,则执行第一告警提示操作。

进一步,执行所述预更新步骤时,执行第一正常提示操作。

一种增进产线CPLD固件更新效率的系统,其特征在于,包括:构建固件模块、预更新模块及校验更新模块;

所述构建固件模块用于获取原始固件,生成检查码,通过所述原始固件与所述检查码组合构建更新固件,将所述检查码导入CPLD生成检查码副本;

所述预更新模块用于根据所述更新固件,通过SPI存储器预更新至PCB板上的CPLD,生成临时固件;

所述校验更新模块用于校验所述临时固件与所述SPI存储器中的更新固件是否一致,若一致,则执行更新操作。

进一步,所述预更新模块包括:刻录固件单元、开启预更新单元、验证检查码单元及预更新单元;

所述刻录固件单元用于将所述更新固件刻录至若干所述SPI存储器,并将所述SPI存储器插入所述PCB板的SPI插槽;

所述开启预更新单元用于发送更新指令,执行预更新操作;

所述验证检查码单元用于对所述检查码与所述CPLD中的检查码副本进行比对,若相符,则验证通过,进入所述预更新单元;

所述预更新单元用于所述CPLD读取所述SPI存储器中的所述更新固件,并写入所述CPLD。

本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现所述的一种增进产线CPLD固件更新效率方法的步骤。

本发明的有益效果是:

1、本发明所述的增进产线CPLD固件更新效率的方法,可以实现同时更新多块PCB板卡,提升工厂产线CPLD固件更新效率;

2、本发明所述的增进产线CPLD固件更新效率的系统,可以实现降低工厂产线人员及设备的工作负担,降低工厂生产投入成本;

3、本发明所述的增进产线CPLD固件更新效率的介质,可以实现降低工厂产线误烧固件风险,提升CPLD固件更新安全性。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例1所述的增进产线CPLD固件更新效率方法的流程图;

图2是本发明实施例1所述的增进产线CPLD固件更新效率方法的执行预更新步骤的流程图;

图3是本发明实施例2所述的增进产线CPLD固件更新效率系统的示意图;

图4是本发明实施例2所述的增进产线CPLD固件更新效率系统的预更新模块的示意图。

具体实施方式

下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,还可以是两个元件内部的连通,可以是无线连接,也可以是有线连接。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

需要说明的是,在本发明的描述中,

CPLD(Complex Programmable Logic Device)是复杂可编程逻辑器件、

BMC(Board Management Controller)是基板管理控制器、

CFM(Configuration Flash Memory)是配置闪存、

UFM(User Flash Memory)是用户闪存、

SPI(Serial Peripheral Interface)是串行外设接口。

实施例1

现今的服务器产品使用了许多CPLD器件,工厂为了提升生产效率,一般都是通过流水线模式生产服务器产品需要的CPLD器件,在工厂流水线生产CPLD器件时,若遇到产品需在可控范围内为对应新规格而进行固件更新,或者是客户变更可通过固件更新方式更新的需求,又或者是产品在产线上生产测试过程中发现问题需要通过更新固件解决等问题时,对于大量已经在生产线上且已完成打板的CPLD器件,工厂更新CPLD固件就变成一个复杂且困难的工程。

另外,不同品牌厂商的CPLD在已经上板后进行固件更新时所需的软硬件和下载线缆也不相同并且彼此互不兼容,工厂流水线模式更新CPLD固件时,需要因不同品牌厂商的刻录软件和硬件接口操作方法的不同,进而需要对产线人员进行不同的培训,提升工厂生产成本投入,并且一套设备一次只能更新一块PCB板上的CPLD固件,需要的设备不容易取得,造成产线效率不佳。

针对上述不足之处,本发明实施例提供一种增进产线CPLD固件更新效率的方法,请参阅图1至图2,包括以下步骤:

S100、构建更新固件:

工厂生产服务器产品要使用的CPLD器件,在遇到为对应新规格的软件技术更新,或者客户需求的变更,或者在产线上生产测试过程中发现问题等情况时,工厂端需要通过更新CPLD固件以解决上述问题。CPLD开发设计人员通过约定规则预先设定与CPLD的品牌厂商相匹配的检查码,约定规则根据不同品牌厂商的CPLD而不同,该约定规则不属于本发明所保护的范围,所以此处不再详细赘述,检查码为128bit的二进制码,本实施例以128bit的二进制码用作解释说明,但是这并不代表本发明的检查码只限于128bit的二进制码,检查码设定完成后,将检查码导入至CPLD生成检查码副本。

CPLD开发设计人员获取原始固件,将原始固件拆分为若干固件段,并在每个固件段之间进行标记,设置断点信息,将拆分的若干固件段与检查码组合构建出更新固件,组合方式为将检查码放置于第一传输位置,即拆分的若干固件段重新组合后的文件头处,需要说明的是,组合方式可以由开发设计人员自行约定,本实施例设定的方式是将检查码放置于原始固件文件头处,组合方式及第一传输位置是由CPLD开发设计人员与CPLD品牌厂商之间根据需求制定的,不属于本发明所保护的范围,所以此处不做详细赘述,本实施例中的对组合方式及第一传输位置的指定仅用作对本发明的解释说明,CPLD开发设计人员将更新固件构建完成,提供给工厂端。

S200、执行预更新:

S201、刻录更新固件:

工厂工作人员根据需求将更新固件通过一般刻录器刻录至若干SPI存储器中,因为SPI存储器刻录更新固件时使用的是通用的刻录器和下载线缆,工厂无需根据不同品牌厂商的CPLD增加不同的刻录器和下载线缆,也只用针对通用的刻录器使用方法培训一次,降低生产投入成本和工作人员培训成本,SPI存储器的接口与PCB板上预留的SPI插槽相匹配,更新固件刻录完成后,若干SPI存储器被分发至不同产线用于更新已经上板的CPLD,可以实现同时更新多块板,提升产线效率。

工厂工作人员将刻录好更新固件的SPI存储器插入待更新PCB板的SPI插槽。

S202、开启预更新:

按下PCB板上预留的CPLD开始更新按钮,发送更新指令,执行预更新操作。

S203、验证检查码:

获取到开始更新指令,CPLD上的SPI存储器控制器检测到SPI存储器时,会从SPI存储器起始地址开始读取数据,最先读取到第一传输位置的128bit数据是检查码,CPLD将读取到的检查码与存储在CPLD内部的检查码副本进行比较,若两组数据一致,则判定SPI存储器中刻录的更新固件对应的是该CPLD所需的更新固件,继续执行后续的更新操作;若两组数据不一致,则判定SPI存储器中刻录的更新固件与该CPLD不匹配,执行第一告警提示操作,即PCB板上更新状态指示灯以4HZ闪烁红灯,工厂工作人员应当更换与当前待更新CPLD相匹配的存储更新固件的SPI存储器,重新执行S202步骤。

S204、预更新:

检查码验证通过,CPLD开始读取SPI存储器中的固件段数据,并将固件段数据写入CPLD自身的UFM中生成临时固件,每次成功读取更新固件中的一个固件段后,CPLD会记录该固件段对应的断点信息,CPLD写入过程中执行第一正常提示操作,即PCB板上的更新状态指示灯以4HZ闪烁绿灯;

在CPLD读取SPI存储器中的固件段数据时若出现断电、电压脉冲异常等问题,工厂工作人员终止数据读取并修复上述问题后,重新上电开始读取固件段数据,此时CPLD会检测记录的断点信息,从断点位置开始读取,避免全部重新读取,耗费时间,提升产线的效率。

S300、验证更新:

CPLD读取SPI存储器中更新固件数据并保存完成后,PCB板上更新状态指示灯停止闪烁,CPLD会重新读取SPI存储器中的更新固件数据,并与临时存储于CPLD自身UFM的固件数据进行校验比对,若校验比对结果为二者数据不一致,则执行第二告警提示操作,即PCB板上更新状态指示灯常亮红灯,CPLD删除临时存储在自身UFM中的临时固件和断点信息,并跳转至S203步骤,重新开始读取固件段进行更新;若校验比对过程中没有发现错误,CPLD将存储在自身UFM中的固件数据更新至自身CFM中,执行第二正常提示操作,即PCB板上的更新状态指示灯以1HZ闪烁绿色,提示工作人员当前CPLD固件更新完成,可以操作下一块PCB板上的CPLD固件更新。

通过本实施例方法,工厂端无需投入额外的产品设备成本和人工成本,检查码校验步骤可以防止固件的误烧,提升产线的安全性和产品的质量,增加断点信息,在出现异常重新读取时,节省时间,提升产线效率,将SPI存储器投入到不同流水线同时开始CPLD固件更新,提升了产线上CPLD固件更新效率。

实施例2

CPLD的可编程特性在服务器系统上运用时有着减少系统开发时间、增加系统集成度和可靠性、方便排出问题和易于维护的优点,所以CPLD在现今服务器系统中是必需且广泛使用的器件。

工厂端通过流水线模式生产服务器系统需要使用的CPLD器件时,遇到为对应新规格的软件技术更新、或者是客户需求的变更,或者是生产过程中发现问题等情况时,需要通过更新CPLD固件解决问题。但是现有的生产模式无法同时大批量更新已上板的CPLD,并且不同品牌厂商的CPLD更新所需要的软硬件及使用方法都不尽相同,更新效率低,工厂需要投入的成本大,并且不同品牌厂商的CPLD之间容易出现固件误烧等问题。

针对上述问题,本发明实施例还提供一种增进产线CPLD固件更新效率的的系统,请参阅图3至图4,包括:构建固件模块、更新模块及校验模块;

构建固件模块:

构建固件模块用于获取原始固件,生成检查码,并通过原始固件和检查码构建出更新固件,将检查码导入CPLD生成检查码副本。

CPLD开发设计人员通过约定规则预先设定与CPLD的品牌厂商相匹配的检查码,约定规则根据不同品牌厂商的CPLD而不同,该约定规则不属于本发明所保护的范围,所以此处不再详细赘述,检查码为128bit的二进制码,本实施例以128bit的二进制码用作解释说明,但这并不代表本发明的检查码只限于128bit的二进制码,检查码设定完成后,以副本的形式导入至CPLD中生成检查码副本。

CPLD开发设计人员获取原始固件,将原始固件拆分为若干固件段,并在每个固件段之间进行标记,设置断点信息,将检查码与拆分后的固件段组合构建出更新固件,组合方式为将检查码放置于第一传输位置,即拆分的若干固件端重新组合后的文件头处,需要说明的是,组合方式可以由开发设计人员自行约定,本实施例设定的方式是将检查码放置于原始固件约定位置,即原始固件文件头处,组合方式及第一传输位置是由CPLD开发设计人员与CPLD品牌厂商之间根据需求制定的,不属于本发明所保护的范围,所以此处不做详细赘述,本实施例中的对组合方式及第一传输位置的指定仅用作对本发明的解释说明,CPLD开发设计人员将更新固件构建完成,提供给工厂端。

预更新模块:

更新模块用于根据构建的更新固件,通过与PCB板上SPI插槽对应的SPI存储器对CPLD固件更新,生成临时固件,包括刻录固件单元、开启预更新单元、验证检查码单元及预更新单元;

刻录固件单元用于将更新固件刻录至若干SPI存储器;工厂工作人员收到CPLD开发设计者提供的更新固件后,通过一般刻录器将更新固件刻录至若干SPI存储器,因为SPI存储器刻录更新固件使用的是通用的刻录器和下载线缆,工厂无需根据不同品牌厂商的CPLD增加不同的刻录器和下载线缆,也只用针对通用的刻录器使用方法培训一次,降低生产投入成本和工作人员培训成本,SPI存储器的接口与PCB板上预留的SPI插槽相匹配,更新固件刻录完成后,若干SPI存储器被分发至不同产线用于更新已经上板的CPLD,可以实现同时更新多块板,提升产线效率。

工厂工作人员将刻录好更新固件的SPI存储器插入待更新PCB板的SPI插槽。

开启预更新单元用于发送更新指令,执行预更新操作;

按下PCB板上预留的CPLD开始更新按钮,发送更新指令,执行预更新操作。

验证检查码单元用于对预先设定的检查码与CPLD中的检查码副本进行校验比对;

获取到开始更新指令,CPLD上的SPI存储器控制器检测到SPI存储器,会从SPI存储器起始地址开始读取数据,最先读取到的128bit数据是预先设定的检查码,CPLD将读取到的检查码与存储在CPLD内部的检查码副本进行比较,若两组数据一致,则判定SPI存储器中刻录的更新固件对应的是该CPLD所需的更新固件,进入更新单元;若两组数据不一致,则判定SPI存储器中刻录的更新固件与该CPLD所需更新固件不匹配,PCB板上更新状态指示灯以4HZ闪烁红灯,工厂工作人员应当更换与当前待更新CPLD相匹配的存储更新固件的SPI存储器,重新进入验证检查码单元。

预更新单元用于对PCB板上的CPLD固件更新;

检查码验证通过,CPLD开始读取SPI存储器中的更新固件数据,并将更新固件数据写入CPLD自身的UFM中生成临时固件,每次成功读取更新固件的其中一个部分的数据时,CPLD会记录该部分对应的断点信息,CPLD写入过程中PCB板上的更新状态指示灯以4HZ闪烁绿灯;

在CPLD读取SPI存储器中的固件段数据时若出现断电、电压脉冲异常等问题,工厂工作人员终止数据读取并修复上述问题后,重新上电开始读取固件段数据,此时CPLD会检测记录的断点信息,从断点位置开始读取,避免从头重新读取,耗费时间,提升产线的效率。

校验模块:

校验模块用于校验CPLD中的临时固件与SPI存储器中的更新固件是否一致;CPLD读取SPI存储器中的固件数据并保存完成后,PCB板上更新状态指示灯停止闪烁,CPLD会重新读取SPI存储器中的更新固件数据,并与临时存储于CPLD自身UFM的固件数据进行校验比对,若校验比对结果为二者数据不一致,则PCB板上更新状态指示灯常亮红灯,CPLD删除临时存储在自身UFM中的临时固件数据和断点信息,并进入预更新模块的预更新单元,重新开始读取固件数据进行更新;若校验比对过程中没有发现错误,CPLD将存储在自身UFM中的固件数据更新至自身CFM中,PCB板上的更新状态指示灯以1HZ闪烁绿色,提示工作人员当前CPLD固件更新完成,可以操作下一块PCB板上的CPLD固件更新。

通过本实施例系统,可以降低工厂端额外的人工成本和产品设备成本,增加检查码的校验可以防止固件误烧,提升产品的质量和产线的安全性,增加断点信息,在出现异常重新读取时,节省时间,提升产线效率,将SPI存储器同时投入不同产线同时开始CPLD固件更新,提升产线上CPLD固件更新效率。

实施例3

本实施例3具有一种计算机可读存储介质,所述存储介质用于储存将上述实施例1所述的增进产线CPLD固件更新效率方法实现所用的计算机软件指令,其包含用于增进产线CPLD固件更新效率的方法所设置的程序;具体地,该可执行程序可以内置于增进产线CPLD固件更新效率的系统100中,这样,增进产线CPLD固件更新效率系统100就可以通过执行内置的可执行程序实现所述实施例1的增进产线CPLD固件更新效率方法。

基于与前述实施例中方法同样的发明构思,本说明书实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如前述公开的一种增进产线CPLD固件更新效率的方法的步骤。

上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号