CN112764785B - 一种自动升级多级控制器的方法 - Google Patents
一种自动升级多级控制器的方法 Download PDFInfo
- Publication number
- CN112764785B CN112764785B CN202011551652.6A CN202011551652A CN112764785B CN 112764785 B CN112764785 B CN 112764785B CN 202011551652 A CN202011551652 A CN 202011551652A CN 112764785 B CN112764785 B CN 112764785B
- Authority
- CN
- China
- Prior art keywords
- controller
- upgraded
- upgrading
- control host
- response
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种自动升级多级控制器的方法,包括设置升级参数、读取升级参数匹配待升级的控制器、将待升级的控制器从用户程序模式切换到升级程序模式、检测待升级的控制器是否进入到升级程序模式、控制主机检测应答是否正常、控制主机发送擦除用户程序指令、待升级的控制器完成数据写入等步骤,完成对控制器程序的升级操作。本发明基于控制器升级程序的协议设计和数据解析处理算法,结合客户端程序,实现读取移动存储设备中的配置文件和升级文件,自动执行程序升级任务,可对任意单个控制器或多个控制器进行程序升级,灵活方便,极大地提高了工程人员的工作效率。
Description
技术领域
本发明属于程序升级技术领域,具体是一种自动升级多级控制器的方法。
背景技术
智能档案柜一般由1列或多列柜体组成,最多可达18列,每列柜体设置多节,每节设置多层,是存放纸质档案或其他文本资料的集成设备,利用多级控制器和管理平台软件等技术实现记录与管理档案出入、控制电机操作柜体柜门开关、实时显示档案在库与出库情况等诸多功能。相较于普通的货架存储方式,智能档案柜有着无可比拟的优势,与室内环境监控和安全监控等设备配套等可组成一体化档案管理系统。
智能档案柜的多级控制器一般从上到下包括三级控制器。第一级为节板控制器,第二级为层板控制器,第三级为RFID板控制器。每节上安装一个节板控制器,每一层安装层板控制器及RFID板控制器,工作逻辑关系是:节板控制器直接控制层板控制器,层板控制器直接控制RFID板控制器。一个控制主机可以控制当前场所内所有的节板控制器。
随着技术的不断发展,用户的需求不断增加,智能档案柜也就面临着需要不定期更新程序的技术问题,以满足用户的需求。但是,现有工程人员对智能档案柜控制器的用户程序进行更新时非常不方便,主要原因如下:
智能档案柜柜体的高度在两米五左右,在更新程序时,需要工程人员利用梯子爬上去拆开控制器盖子,然后通过携带的脱机烧录器连接到该控制器上完成该控制器程序的升级,但这还只是完成了对某一个控制器程序的升级,而智能档案柜的控制器非常多,所以工程人员需要挨个拆开所有的控制器盖子,然后将脱机烧录器连接到控制器,升级完一个后,再用脱机烧录器连接到写一个控制器对其程序进行更新升级,直到对所有控制器的程序完成更新升级。这种升级方式费力费时,极大影响工程人员的作业效率,而且每级控制器都是不同的程序文件,这样人工烧录时需要多次切换脱机烧录器内的程序文件,从而很容易造成烧录错误文件的问题。
发明内容
本发明的目的在于克服以上存在的技术问题,提供一种自动升级多级控制器的方法。
本发明的技术方案如下:
一种自动升级多级控制器的方法,包括以下步骤:
步骤(1):设置升级参数
把移动存储介质插入在所述控制主机的USB接口上,所述移动存储介质里存有待升级的文件,打开控制主机的升级客户端,并在所述升级客户端上配置升级参数,用于设置待升级的控制器,所述待升级的控制器此时处于用户程序模式;所述待升级的控制器的存储器芯片存储有用户程序和升级程序,默认运行用户程序,即处于用户程序模式,当运行升级程序,即处于升级程序模式;
步骤(2):读取升级参数匹配待升级的控制器
所述升级客户端读取所述升级参数,用于匹配所述待升级的控制器,所述待升级的控制器此时处于用户程序模式;
步骤(3):期望待升级的控制器从用户程序模式切换到升级程序模式
所述控制主机向所述待升级的控制器发送切换至升级程序模式的命令,用于将所述待升级的控制器从所述用户程序模式切换至升级程序模式;所述待升级的控制器接收到所述命令后,先向所述控制主机反馈应答信息,然后再执行所述命令;
步骤(4):控制主机检测应答是否正常
所述控制主机检测所述待升级的控制器应答是否正常,如果应答不正常,表示所述待升级的控制器未接收到所述命令,则再次执行步骤(3);若重复执行步骤(3)至第三次后,应答仍不正常,则退出升级操作;如果应答正常,则进入下一步骤,应答正常表示所述待升级的控制器已经接收到命令,但所述控制主机无法判断所述待升级的控制器是否从用户程序模式切换到了升级程序模式;
步骤(5):检测待升级的控制器是否进入到升级程序模式
所述控制主机向所述待升级的控制器发送是否运行在所述升级程序模式的指令,所述待升级的控制器接收所述指令后反馈应答信息给所述控制主机,用于确认所述待升级的控制器是否切换到升级程序模式,所述待升级的控制器只有在升级程序模式会识别并应答所述指令,而在用户程序模式则无法识别且也不应答所述指令;
步骤(6):控制主机再次检测应答是否正常
所述控制主机接收所述应答信息并对其检测是否正常,如果应答不正常,表示所述待升级的控制器此时仍运行在用户程序模式,未切换到升级程序模式,则再次执行步骤(5);若重复执行步骤(5)至第三次后,应答仍然不正常,则退出升级操作;如果应答正常,则进入下一步骤,所述待升级的控制器此时处于升级程序模式;
步骤(7):控制主机发送擦除用户程序指令
所述控制主机向所述待升级的控制器发送擦除其存储器芯片存储的用户程序的指令,所述待升级的控制器接收到所述指令后擦除其所述用户程序,并向所述控制主机反馈应答信息;
步骤(8):控制主机检测用户程序是否被擦除
所述控制主机接收所述应答信息并对其检测是否正常,如果应答不正常,即判定擦除动作失败,表示所述用户程序未被擦除,则再次执行步骤(7);若重复执行步骤(7)至第三次后,应答仍然不正常,则退出升级操作;如果应答正常,表示所述用户程序已经被擦除,则进入下一步骤,所述待升级的控制器此时处于升级程序模式;
步骤(9):待升级的控制器完成数据写入
所述控制主机将升级程序文件分割成多个相同字节长度的数据包,并将所有的数据包依次发送给所述待升级的控制器,所述待升级的控制器每接收一个数据包后对其进行解析,解析无误后写入存储器芯片存储用户程序地址中,并向所述控制主机反馈应答信息;
所述控制主机每完成发送一个数据包后检测所述应答信息是否正常,如果应答不正常,则所述控制主机再次将所述数据包发送给所述待升级的控制器,若第三次发送后仍然应答不正常,表示写入失败,然后所述控制主机通知所述待升级的控制器擦除其已经写入的数据,最后再退出升级操作;
如果应答正常,则发送下一个数据包,直到将所有的数据包全部成功发送给所述待升级的控制器,此时存储器芯片内已升级了新用户程序,再进入下一步骤,所述待升级的控制器此时处于升级程序模式;
步骤(10):待升级的控制器对其锁存
所述控制主机向所述待升级的控制器发送结束升级程序模式命令,所述待升级的控制器接收所述命令后锁定其存储器芯片存储用户程序的内存区间,并将存储器芯片内的标志位设置为不需要升级标识;并反馈应答信号给所述控制主机;
步骤(11):所述控制主机检测所述应答信号是否正常,如果应答不正常,则再次执行步骤(10);若重复执行步骤(10)至第三次后,应答仍然不正常,表示标志位设置失败,则退出升级操作;如果应答正常,表示标志位设置成功,所述待升级的控制器程序升级成功,所述待升级的控制器此时处于升级程序模式。
进一步地,所述步骤(1)中配置升级参数包括配置类型、节地址、地址、文件及串口。
进一步地,所述步骤(4)、步骤(6)、步骤(8)、步骤(9)在退出升级操作前,所述控制主机打印错误信息。
进一步地,所述存储器芯片为FLASH存储器。
进一步地,所述步骤(10)中标志位为0,表示为不需要升级标识;标志位为1,表示为需要升级标识。
进一步地,所述步骤(9)中数据包含有升级数据、写入地址、检验码,所述升级数据的长度为128字节,所述写入地址用以表示将所述升级数据写入到所述存储器芯片中的地址,所述检验码用来判断所述数据包是否有效。
进一步地,所述步骤(9)中待升级的控制器接收数据包后对其进行解析,解析无误后写入存储器芯片存储用户程序地址中的具体方法包括以下步骤:
步骤(91):所述待升级的控制器初始化串口、定时器;
步骤(92):所述待升级的控制器使能串口接收中断、使能定时器更新中断,开始接收数据;
步骤(93):所述待升级的控制器判断所述串口中断是否触发,如果触发,则将数据写入其缓存区;
步骤(94):所述待升级的控制器判断所述缓存区是否存在数据,如果不存在则继续判断;如果存在则跳转到步骤(95);
步骤(95):所述待升级的控制器使能协议解析器,按先入先出原则读出并解析所述缓存区的数据;
步骤(96):所述待升级的控制器判断步骤(95)是否超出解析周期,如果超出解析周期,则初始化所述协议解析器,并跳转到步骤(95);如果未超出解析周期,则跳转到步骤(97);
步骤(97):所述待升级的控制器判断步骤(95)是否解析出符合协议的数据帧,如果不符合,则跳转到步骤(95);如果符合,则跳转到步骤(98);
步骤(98):所述待升级的控制器判断步骤(95)解析的地址参数是否与自身的地址匹配,如果不匹配,则继续判断;如果匹配,则跳转到步骤(99);
步骤(99):所述待升级的控制器判断步骤(95)解析的类型参数是否与自身的类型匹配,如果不匹配,则继续判断是否存在下一级的控制器,如果存在下一层级的控制器,则所述待升级的控制器将数据重新组包,并转发至所述下一层级的控制器;如果不存在下一层级的控制器,则跳转到步骤(98);如果匹配,则跳转到步骤(100);
步骤(100):所述待升级的控制器将数据按地址顺序写入到存储器芯片中。
进一步地,所述步骤(11)如果应答正常后还往下执行步骤(12):切换至用户程序模式;所述控制主机向所述待升级的控制器发送切换到用户程序模式的命令,所述待升级的控制器接收到所述命令后执行切换操作后并反馈应答信息给所述控制主机;所述控制主机检测所述应答信息是否正确,如果正确,表示所述待升级的控制器已经切换到用户程序模式;如果不正确,表示所述待升级的控制器未收到所述命令,可通过断电重启,使其切换到用户程序模式。
进一步地,所述移动存储介质为U盘或移动硬盘。
进一步地,所述待升级的控制器为层板控制器,或节板控制器,或RFID板控制器。
本发明的有益效果:
1、本发明基于控制器升级程序的协议设计和数据解析处理算法,结合客户端程序,实现读取移动存储设备中的配置文件和升级文件,自动执行程序升级任务,可对任意单个控制器或多个控制器进行程序升级,灵活方便,极大地提高了工程人员的工作效率。
2、本发明执行自动程序升级,无需额外购置脱机烧录器,在现场执行自动升级的同时,工程人员可以并行处理其他作业流程,既减少成本、减轻工作量又能提升作业效率。
3、本发明自动程序升级时会对升级文件进行校验,解决了人工烧录错误程序的问题。
附图说明
图1:本发明控制器的逻辑控制示意图。
图2:本发明升级客户端的布局示意图。
图3:本发明实施例一的方法示意图。
图4:本发明实施例一中节板控制器2解析数据的方法示意图。
具体实施方式
下面结合附图及实施例对本发明进行详细说明。
如图1所示,智能档案柜是由1列柜体组成,每列柜体分为3节,每一节设置有5层。其中,每一节设置有1个节板控制器,每层设置有1个层板控制器和一个RFID板控制器。即每一节设有1个节板控制器、5个层板控制器和5个RFID板控制器,合计11个控制器。
所述智能档案柜的控制逻辑分为3个等级。以控制主机为主,其直接控制第1-3节的3个节板控制器。每个节板控制器,其直接控制其下的5个层板控制器。每个层板控制器,其直接控制它下面的1个RFID板控制器。期望控制某节板控制器,直接通过控制主机控制该节板控制器。期望控制某层板控制器,需要控制主机先控制该层板控制器的上一级节板控制器,再通过该节板控制器控制该层板控制器。期望控制某RFID板控制器,需要控制主机先控制该RFID板控制器的上一级节板控制器,再通过节板控制器控制该RFID板控制器的上一级层板控制器,再通过该层板控制器控制该RFID板控制器。即控制逻辑由高到低依次是:控制主机->节板控制器->层板控制器->RFID板控制器。本实施例控制主机与节控制器、节控制器与层板控制器、层板控制器与RFID板控制器上下级之间采用RS485级联。也可以采用CAN总线或其他协议级联。
如图2所示,升级客户端运行在控制主机中,左上侧区域为配置升级参数界面,在升级前需要事先配置好升级参数,升级参数包括类型、节地址、地址、文件及串口。
其中,“类型”可配置三种类型,分别为节板、层板和RFID板。类型为节板表示需要控制节板控制器,类型为层板表示需要控制层板控制器,类型为RFID板表示需要控制RFID板控制器。“节地址”表示期望操作目标节板控制器的地址,也是控制器的最高层级地址。“地址”表示期望操作的目标控制器的地址汇总,可以是一个地址,也可以是一个连续范围的地址。
通过“类型”、“节地址”、及“地址”来定位到需要待升级的控制器。
下面结合下表1进行举例说明:
1、如果期望给节板控制器2升级,则类型选择“节板”,“节地址”选择2,“地址”选择2至2;
2、如果期望给节板控制器1到3升级,则类型选择“节板”,“节地址”选择1,“地址”选择1至3;
3、如果期望给节板控制器3下的层板控制器5升级,则类型选择“层板”,“节地址”选择3,“地址”选择5至5;
4、如果期望给节板控制器1下的层板控制器2到5升级,则类型选择“层板”,“节地址”选择1,“地址”选择2至5;
5、如果期望给节板控制器1下的层板控制器4下的RFID板控制器升级,则类型选择“RFID板”,“节地址”选择1,“地址”选择4至4。
6、如果期望给节板控制器2下的层板控制器3到5下的RFID板控制器升级,则类型选择“RFID板”,“节地址”选择2,“地址”选择3至5。
表1:定位关系
其余定位依此原理类推。
“文件”是选择需要升级的文件地址。
“串口”是控制主机连接节控制器时选择的串口号。升级客户端上设置有开始升级、停止升级等操作菜单,还能显示升级进度条以及升级结果等信息。
各个控制器有两种运行模式,分别为用户程序模式和升级程序模式,运行用户程序即进入到用户程序模式,运行升级程序即进入到升级程序模式。用户程序和升级程序均存储在控制器的FLASH存储芯片中,两种运行模式是可以切换的。控制器上电时会瞬间进入到升级程序模式,并快速读取是否需要升级标志位,所有控制器的升级标志位默认为0,即不需要升级,因此,控制器上电启动后很快就会自动切换进入到用户程序模式,这对用户是透明的,无法感知到。
实施例一
本实施例以实现升级图1中节板控制器2的程序进行说明。本实施例属于对单个控制器升级,涉及1层级控制器,数据由控制主机直达节板控制器,整个流程只描述节板控制器的程序处理。
一种自动升级多级控制器的方法,如图3所示,包括以下步骤:
步骤(1):设置升级参数
把U盘插入在所述控制主机的USB接口上,所述U盘里存有待升级的文件,打开控制主机的升级客户端,并在所述升级客户端上配置升级参数,用于告诉控制主机需要对节板控制器2的程序进行升级,具体配置升级参数如下:
类型:节板;
节地址:2;
地址:1至1;
文件:选择U盘里存储的节控制器升级程序二进制文件;
串口:根据现场运行情况选择,本实施例是的串口是COM3。
这就配置了需要对节板控制器2的用户程序进行更新升级,节板控制器2此时处于用户程序模式;
步骤(2):读取升级参数匹配节板控制器2
所述升级客户端读取配置好的所述升级参数,用于匹配节板控制器2,节板控制器2此时处于用户程序模式;
步骤(3):期望节板控制器2从用户程序模式切换到升级程序模式
所述控制主机向所述节板控制器2发送切换至升级程序模式的命令,用于将所述节板控制器2从所述用户程序模式切换至升级程序模式;所述节板控制器2接收到所述命令后,先向所述控制主机反馈应答信息,然后再执行所述命令;
步骤(4):控制主机检测应答是否正常
所述控制主机检测所述节板控制器2应答是否正常,如果应答不正常,表示所述节板控制器2未接收到所述命令,则再次执行步骤(3);若重复执行步骤(3)至第三次后,应答仍不正常,控制主机打印错误信息,操作人员点击升级客户端的“结束升级”按钮,这样退出升级操作;如果应答正常,则进入下一步骤,应答正常表示所述节板控制器2已经接收到命令,但所述控制主机无法判断所述节板控制器2是否从用户程序模式切换到了升级程序模式;
步骤(5):检测节板控制器2是否进入到升级程序模式
所述控制主机向所述节板控制器2发送是否运行在所述升级程序模式的指令,所述节板控制器2接收所述指令后反馈应答信息给所述控制主机,用于确认所述节板控制器2是否切换到升级程序模式,所述节板控制器2只有在升级程序模式会识别并应答所述指令,而在用户程序模式则无法识别且也不应答所述指令;
步骤(6):控制主机再次检测应答是否正常
所述控制主机接收所述应答信息并对其检测是否正常,如果应答不正常,表示所述节板控制器2此时仍运行在用户程序模式,未切换到升级程序模式,则再次执行步骤(5);若重复执行步骤(5)至第三次后,应答仍然不正常,控制主机打印错误信息,操作人员点击升级客户端的“结束升级”按钮,这样退出升级操作;如果应答正常,则进入下一步骤,所述节板控制器2此时处于升级程序模式;
步骤(7):控制主机发送擦除用户程序指令
所述控制主机向所述节板控制器2发送擦除其FLASH存储器存储的用户程序的指令,所述节板控制器2接收到所述指令后擦除其所述用户程序,并向所述控制主机反馈应答信息;
步骤(8):控制主机检测用户程序是否被擦除
所述控制主机接收所述应答信息并对其检测是否正常,如果应答不正常,即判定擦除动作失败,表示所述用户程序未被擦除,则再次执行步骤(7);若重复执行步骤(7)至第三次后,应答仍然不正常,控制主机打印错误信息,操作人员点击升级客户端的“结束升级”按钮,这样退出升级操作;如果应答正常,表示所述用户程序已经被擦除,则进入下一步骤,所述节板控制器2此时处于升级程序模式;
步骤(9):节板控制器2完成数据写入
所述控制主机将根据升级参数界面配置的文件(即U盘中存放的升级程序)分割成多个相同字节长度的数据包,这个数据包包括升级数据、写入地址、检验码等主要信息,所述升级数据的长度为128字节,所述写入地址用以表示将所述升级数据写入到所述FLASH存储器中的地址,所述检验码用来判断所述数据包是否有效。并将所有的数据包依次发送给所述节板控制器2,所述节板控制器2每接收一个数据包后对其进行解析,解析无误后写入FLASH存储器存储用户程序地址中,并向所述控制主机反馈应答信息;具体解析方法如图4所示,包括以下步骤:
步骤(91):所述节板控制器2初始化其串口、定时器;
步骤(92):所述节板控制器2使能串口接收中断、使能定时器更新中断,开始接收数据;
步骤(93):所述节板控制器2判断所述串口中断是否触发,如果触发,则将数据写入其缓存区;
步骤(94):所述节板控制器2判断所述缓存区是否存在数据,如果不存在则继续判断;如果存在则跳转到步骤(95);
步骤(95):所述节板控制器2使能协议解析器,按先入先出原则读出并解析所述缓存区的数据;
步骤(96):所述节板控制器2判断步骤(95)是否超出解析周期,如果超出解析周期,则初始化所述协议解析器,并跳转到步骤(95);如果未超出解析周期,则跳转到步骤(97);
步骤(97):所述节板控制器2判断步骤(95)是否解析出符合协议的数据帧,如果不符合,则跳转到步骤(95);如果符合,则跳转到步骤(98);
步骤(98):所述节板控制器2判断步骤(95)解析的数据帧中地址参数是否与自身的地址匹配,即判断地址是否是2,如果不是,说明不匹配,则继续判断,等待接收到正确的地址参数;如果是,则说明匹配,则跳转到步骤(99);每个控制器都有一个唯一的地址,运行前都已经配置好。
步骤(99):所述节板控制器2判断步骤(95)解析的数据帧中目标设备类型参数是否与自身的类型匹配,即判断目标类型是否为节板,如果不是,表示不匹配,则继续判断,等待接收到正确的类型参数;如果类型是节板,说明相匹配,则跳转到步骤(100);至此,经由步骤(98),步骤(99)两次校验,最终定位出目标节板控制器2,实现控制主机与目标节板控制器2之间的数据传输;
步骤(100):所述节板控制器2将数据按地址顺序写入到FLASH存储器中。
所述控制主机每完成发送一个数据包后检测所述应答信息是否正常,如果应答不正常,则所述控制主机再次将所述数据包发送给所述节板控制器2,若第三次发送后仍然应答不正常,表示写入失败,控制主机打印错误信息,然后所述控制主机通知所述节板控制器2擦除其已经写入的数据,最后操作人员点击升级客户端的“结束升级”按钮,这样退出升级操作;
如果应答正常,则发送下一个数据包,直到将所有的数据包全部成功发送给所述节板控制器2,此时FLASH存储器已升级了新用户程序,再进入下一步骤,所述FLASH存储器此时处于升级程序模式;
步骤(10):节板控制器2对其锁存
所述控制主机向所述节板控制器2发送结束升级程序模式命令,所述节板控制器2接收所述命令后锁定其FLASH存储器存储用户程序的内存区间,并将FLASH存储器的标志位设置为0,表示不需要升级,如设置为1,则表示需要升级,并反馈应答信号给所述控制主机;
步骤(11):控制主机再次检测应答信号
所述控制主机检测所述应答信号是否正常,如果应答不正常,则再次执行步骤(10);若重复执行步骤(10)至第三次后,应答仍然不正常,表示标志位设置失败,操作人员点击升级客户端的“结束升级”按钮,这样退出升级操作;如果应答正常,表示标志位设置成功,所述节板控制器2的用户程序升级成功,所述节板控制器2此时处于升级程序模式。
步骤(12):节板控制器2切换至用户程序模式
所述控制主机向所述节板控制器2发送切换到用户程序模式的命令,所述节板控制器2接收到所述命令后执行切换操作后并反馈应答信息给所述控制主机;所述控制主机检测所述应答信息是否正确,如果正确,表示所述节板控制器2已经切换到用户程序模式;如果不正确,表示所述节板控制器2未收到所述命令,可通过断电重启,即可切换到用户程序模式。
本实施例通过基于控制器升级程序的协议设计和数据解析处理算法,结合客户端程序,实现读取U盘中的升级文件,自动执行程序升级任务,对单个节板控制器2进行程序升级,灵活方便,极大地提高了工程人员的工作效率,在自动程序升级时会对升级文件进行校验,解决了人工烧录错误程序的问题。
实施例二
本实施例以实现升级图1中节板控制器1下的层板控制器1-3的用户程序进行说明。本实施例涉及2层控制器,即节板控制器->层板控制器,数据由控制主机直达节板控制器,再由节板控制器转发至层板控制器,所以整个流程中涉及节板控制器的程序处理和层板控制器的程序处理。
一种自动升级多级控制器的方法,包括以下步骤:
步骤(1):设置升级参数
把移动硬盘插入在所述控制主机的USB接口上,所述移动硬盘里存有待升级的文件,打开控制主机的升级客户端,并在所述升级客户端上配置升级参数,用于告诉控制主机需要对节板控制器1下的层板控制器1至3的用户程序进行升级,具体配置升级参数如下:
类型:层板;
节地址:1
地址:1至3;
文件:选择移动硬盘里存储的层板控制器升级程序二进制文件;
串口:根据现场运行情况选择,本实施例是的串口是COM3。
这就配置了需要对节板控制器1下的层板控制器1-3的用户程序进行更新升级,层板控制器1-3此时处于用户程序模式;
步骤(2):读取升级参数匹配节板控制器1下的层板控制器1-3
所述升级客户端读取配置好的所述升级参数,用于匹配节板控制器1下的层板控制器1-3,节板控制器1下的层板控制器1-3此时处于用户程序模式;
步骤(3):期望节板控制器1下的层板控制器1-3从用户程序模式切换到升级程序模式
所述控制主机向所述节板控制器1下的层板控制器1-3发送切换至升级程序模式的命令,用于将所述节板控制器1下的层板控制器1-3从所述用户程序模式切换至升级程序模式;所述节板控制器1下的层板控制器1-3接收到所述命令后,先向所述控制主机反馈应答信息,然后再执行所述命令;
步骤(4):控制主机检测应答是否正常
所述控制主机检测所述节板控制器1下的层板控制器1-3应答是否正常,如果应答不正常,表示所述节板控制器1下的层板控制器1-3未接收到所述命令,则再次执行步骤(3);若重复执行步骤(3)至第三次后,应答仍不正常,控制主机打印错误信息,操作人员点击升级客户端的“结束升级”按钮,这样退出升级操作;如果应答正常,则进入下一步骤,应答正常表示所述节板控制器1下的层板控制器1-3已经接收到命令,但所述控制主机无法判断所述节板控制器1下的层板控制器1-3是否从用户程序模式切换到了升级程序模式;
步骤(5):检测节板控制器1下的层板控制器1-3是否进入到升级程序模式
所述控制主机向所述节板控制器1下的层板控制器1-3发送是否运行在所述升级程序模式的指令,所述节板控制器1下的层板控制器1-3接收所述指令后反馈应答信息给所述控制主机,用于确认所述节板控制器1下的层板控制器1-3是否切换到升级程序模式,所述节板控制器1下的层板控制器1-3只有在升级程序模式会识别并应答所述指令,而在用户程序模式则无法识别且也不应答所述指令;
步骤(6):控制主机再次检测应答是否正常
所述控制主机接收所述应答信息并对其检测是否正常,如果应答不正常,表示所述层板控制器1-3此时仍运行在用户程序模式,未切换到升级程序模式,则再次执行步骤(5);若重复执行步骤(5)至第三次后,应答仍然不正常,控制主机打印错误信息,操作人员点击升级客户端的“结束升级”按钮,这样退出升级操作;如果应答正常,则进入下一步骤,所述层板控制器1-3此时处于升级程序模式;
步骤(7):控制主机发送擦除用户程序指令
所述控制主机向所述节板控制器1下的层板控制器1-3发送擦除其FLASH存储器存储的用户程序的指令,所述节板控制器1下的层板控制器1-3接收到所述指令后擦除其所述用户程序,并向所述控制主机反馈应答信息;
步骤(8):控制主机检测用户程序是否被擦除
所述控制主机接收所述应答信息并对其检测是否正常,如果应答不正常,即判定擦除动作失败,表示所述用户程序未被擦除,则再次执行步骤(7);若重复执行步骤(7)至第三次后,应答仍然不正常,控制主机打印错误信息,操作人员点击升级客户端的“结束升级”按钮,这样退出升级操作;如果应答正常,表示所述用户程序已经被擦除,则进入下一步骤,所述节板控制器1下的层板控制器1-3此时处于升级程序模式;
步骤(9):节板控制器1下的层板控制器1-3完成数据写入
所述控制主机将根据升级参数界面配置的文件(即移动硬盘中存放的升级程序)分割成多个相同字节长度的数据包,这个数据包包括升级数据、写入地址、检验码等主要信息,所述升级数据的长度为128字节,所述写入地址用以表示将所述升级数据写入到所述FLASH存储器中的地址,所述检验码用来判断所述数据包是否有效。并将所有的数据包依次发送给所述节板控制器1下的层板控制器1-3,所述节板控制器1下的层板控制器1-3每接收一个数据包后对其进行解析,解析无误后写入FLASH存储器存储用户程序地址中,并向所述控制主机反馈应答信息;需要说明的是,控制主机是先将数据包发送给节板控制器1,所述节板控制器1与控制主机是直接连接的上下级关系,而所述节板控制器1与层板控制器1、层板控制器2和层板控制器3是直接连接的上下级关系,控制主机下发给层板控制器的任何数据,必须经由节板控制器的转发才能到达层板控制器;因此节板控制器1先接收并解析控制主机发送的数据包,根据解析出的目标层板控制器地址,重组数据包全部转发给层板控制器1,层板控制器1的数据全部发送完毕之后,同理,再根据解析出的目标层板控制器地址重新组包将数据包全部发送给层板控制器2、3,根据“地址”的顺序逐一给各个目标层板控制器发送。
具体解析方法,包括以下步骤:
步骤(91):所述节板控制器1、层板控制器1初始化其串口、定时器;
步骤(92):所述节板控制器1、层板控制器1使能串口接收中断、使能定时器更新中断,开始接收数据;
步骤(93):所述节板控制器1、层板控制器1判断所述串口中断是否触发,如果触发,则将数据写入其缓存区;
步骤(94):所述节板控制器1、层板控制器1判断所述缓存区是否存在数据,如果不存在则继续判断;如果存在则跳转到步骤(95);
步骤(95):所述节板控制器1、层板控制器1使能协议解析器,按先入先出原则读出并解析所述缓存区的数据;
步骤(96):所述节板控制器1、层板控制器1判断步骤(95)是否超出解析周期,如果超出解析周期,则初始化所述协议解析器,并跳转到步骤(95);如果未超出解析周期,则跳转到步骤(97);
步骤(97):所述节板控制器1、层板控制器1判断步骤(95)是否解析出符合协议的数据帧,如果不符合,则跳转到步骤(95);如果符合,则跳转到步骤(98);
步骤(98):所述节板控制器1、层板控制器1各自判断步骤(95)解析出的数据帧中地址参数是否与自身的地址匹配,即节板控制器1判断地址是否是1(1即该节板控制器1的地址),层板控制器1判断地址是否是1(1即该层板控制器1的地址),如果不是,说明不匹配,则继续判断,等待接收到正确的地址参数;如果是,则说明匹配,则跳转到步骤(99);每个层级的所有控制器都有一个唯一的地址,运行前都已经配置好。
步骤(99):所述节板控制器1、层板控制器1各自判断步骤(95)解析出的数据帧中目标类型参数是否与自身的类型匹配,即节板控制器1判断目标类型是否为非节板类型,如果是,则节板控制器1根据解析出的目标类型、目标地址等参数,组包转发给下层级设备即层板控制器;层板控制器1判断目标类型是否为层板,如果不是则继续判断,等待接收到正确的类型参数;如果层板控制器1判断目标类型是层板,说明相匹配,则跳转到步骤(100);至此,经由节板控制器1中步骤(98),步骤(99)和层板控制器1中步骤(98),步骤(99)的4次校验,最终定位出目标层板控制器1,实现控制主机与目标层板控制器1之间的数据传输;
步骤(100):所述层板控制器1将数据按地址顺序写入到FLASH存储器中。
同理,层板控制器2和层板控制器3均按照上述方法完成将数据写入到FLASH存储器中。
所述控制主机每完成发送一个数据包后检测所述应答信息是否正常,如果应答不正常,则所述控制主机再次将所述数据包发送给所述节板控制器1下的层板控制器1-3,若第三次发送后仍然应答不正常,表示写入失败,控制主机打印错误信息,然后所述控制主机通知所述节板控制器1下的层板控制器1-3擦除其已经写入的数据,最后操作人员点击升级客户端的“结束升级”按钮,这样退出升级操作;
如果应答正常,则发送下一个数据包,直到将所有的数据包全部成功发送给所述节板控制器1下的层板控制器1-3,此时FLASH存储器已升级了新用户程序,再进入下一步骤,所述FLASH存储器此时处于升级程序模式;
步骤(10):层板控制器1-3对其锁存
所述控制主机向所述节板控制器1下的层板控制器1-3发送结束升级程序模式命令,所述节板控制器1下的层板控制器1-3接收所述命令后锁定其FLASH存储器存储用户程序的内存区间,并将FLASH存储器的标志位设置为0,表示不需要升级,如设置为1,则表示需要升级,并反馈应答信号给所述控制主机;
步骤(11):控制主机再次检测应答信号
所述控制主机检测所述应答信号是否正常,如果应答不正常,则再次执行步骤(10);若重复执行步骤(10)至第三次后,应答仍然不正常,表示标志位设置失败,操作人员点击升级客户端的“结束升级”按钮,这样退出升级操作;如果应答正常,表示标志位设置成功,所述节板控制器1下的层板控制器1-3的用户程序升级成功,所述节板控制器1下的层板控制器1-3此时处于升级程序模式。
本实施例通过基于控制器升级程序的协议设计和数据解析处理算法,结合客户端程序,实现读取移动硬盘中的升级文件,自动执行程序升级任务,对多个节板控制器进行程序升级,灵活方便,极大地提高了工程人员的工作效率,在自动程序升级时会对升级文件进行校验,解决了人工烧录错误程序的问题。
实施例三
本实施例以实现升级图1中节板控制器1下的层板控制器3下的RFID控制器的程序进行说明。本实施例涉及3层控制器,即节板控制器->层板控制器->RFID板控制器,数据由控制主机直达节板控制器,再由节板控制器转发至层板控制器,最后由层板控制器转发至RFID板控制器。所以整个流程中涉及节板控制器的程序处理+层板控制器的程序处理+RFID板控制器的程序处理
一种通过U盘自动升级多级控制器的方法,包括以下步骤:
步骤(1):设置升级参数
把U盘插入在所述控制主机的USB接口上,所述U盘里存有待升级的文件,打开控制主机的升级客户端,并在所述升级客户端上配置升级参数,用于告诉控制主机需要对节板控制器1下的层板控制器3下的RFID板控制器的用户程序进行升级,具体配置升级参数如下:
类型:RFID板;
节地址:1
地址:3;
文件:选择U盘里存储的RFID板控制器升级程序二进制文件;
串口:根据现场运行情况选择,本实施例是的串口是COM3。
这就配置了需要对节板控制器1下的层板控制器3下的RFID板控制器的用户程序进行更新升级,该RFID板控制器此时处于用户程序模式;
步骤(2):读取升级参数匹配节板控制器1下的层板控制器3下的RFID板控制器
所述升级客户端读取配置好的所述升级参数,用于匹配节板控制器1下的层板控制器3下的RFID板控制器,该RFID板控制器此时处于用户程序模式;
步骤(3):期望节板控制器1下的层板控制器3下的RFID板控制器从用户程序模式切换到升级程序模式
所述控制主机向所述节板控制器1下的层板控制器3下的RFID板控制器发送切换至升级程序模式的命令,用于将所述节板控制器1下的层板控制器3下的RFID板控制器从所述用户程序模式切换至升级程序模式;所述节板控制器1下的层板控制器3下的RFID板控制器接收到所述命令后,先向所述控制主机反馈应答信息,然后再执行所述命令;
步骤(4):控制主机检测应答是否正常
所述控制主机检测所述节板控制器1下的层板控制器3下的RFID板控制器应答是否正常,如果应答不正常,表示所述节板控制器1下的层板控制器3下的RFID控制器未接收到所述命令,则再次执行步骤(3);若重复执行步骤(3)至第三次后,应答仍不正常,控制主机打印错误信息,操作人员点击升级客户端的“结束升级”按钮,这样退出升级操作;如果应答正常,则进入下一步骤,应答正常表示所述节板控制器1下的层板控制器3下的RFID板控制器已经接收到命令,但所述控制主机无法判断所述节板控制器1下的层板控制器3下的RFID板控制器是否从用户程序模式切换到了升级程序模式;
步骤(5):检测节板控制器1下的层板控制器3下的RFID板控制器是否进入到升级程序模式
所述控制主机向所述节板控制器1下的层板控制器3下的RFID板控制器发送是否运行在所述升级程序模式的指令,所述节板控制器1下的层板控制器3下的RFID板控制器接收所述指令后反馈应答信息给所述控制主机,用于确认所述节板控制器1下的层板控制器3下的RFID板控制器是否切换到升级程序模式。所述节板控制器1下的层板控制器3下的RFID板控制器只有在升级程序模式会识别并应答所述指令,而在用户程序模式则无法识别且也不应答所述指令;
步骤(6):控制主机再次检测应答是否正常
所述控制主机接收所述应答信息并对其检测是否正常,如果应答不正常,表示所述节板控制器1下的层板控制器3下的RFID板控制器此时仍运行在用户程序模式,未切换到升级程序模式,则再次执行步骤(5);若重复执行步骤(5)至第三次后,应答仍然不正常,控制主机打印错误信息,操作人员点击升级客户端的“结束升级”按钮,这样退出升级操作;如果应答正常,则进入下一步骤,所述节板控制器1下的层板控制器3下的RFID板控制器此时处于升级程序模式;
步骤(7):控制主机发送擦除用户程序指令
所述控制主机向所述节板控制器1下的层板控制器3下的RFID板控制器发送擦除其FLASH存储器存储的用户程序的指令,所述节板控制器1下的层板控制器3下的RFID板控制器接收到所述指令后擦除其所述用户程序,并向所述控制主机反馈应答信息;
步骤(8):控制主机检测用户程序是否被擦除
所述控制主机接收所述应答信息并对其检测是否正常,如果应答不正常,即判定擦除动作失败,表示所述用户程序未被擦除,则再次执行步骤(7);若重复执行步骤(7)至第三次后,应答仍然不正常,控制主机打印错误信息,操作人员点击升级客户端的“结束升级”按钮,这样退出升级操作;如果应答正常,表示所述用户程序已经被擦除,则进入下一步骤,所述节板控制器1下的层板控制器3下的RFID板控制器此时处于升级程序模式;
步骤(9):节板控制器1下的层板控制器3下的RFID板控制器完成数据写入
所述控制主机将根据升级参数界面配置的文件(即U盘中存放的升级程序)分割成多个相同字节长度的数据包,这个数据包包括升级数据、写入地址、检验码等主要信息,所述升级数据的长度为128字节,所述写入地址用以表示将所述升级数据写入到所述FLASH存储器中的地址,所述检验码用来判断所述数据包是否有效。并将所有的数据包依次发送给所述节板控制器1下的层板控制器3下的RFID板控制器,所述节板控制器1下的层板控制器3下的RFID板控制器每接收一个数据包后对其进行解析,解析无误后写入FLASH存储器存储用户程序地址中,并向所述控制主机反馈应答信息;需要说明的是,控制主机是先将数据包发送给节板控制器1,所述节板控制器1与控制主机是直接连接的上下级关系,而所述节板控制器1与层板控制器3是直接连接的上下级关系,而层板控制器3与RFID板控制器是直接连接的上下级关系,控制主机下发给RFID板控制器的任何数据,必须经由节板控制器的一次转发才能到达层板控制器,再经由层板控制器的二次转发才能到达RFID控制器;因此节板控制器1先接收并解析控制主机发送的数据包,根据解析出的目标层板地址,重组数据包全部转发给层板控制器3,层板控制器3接收并解析节板控制器1发送的数据包,根据解析出的目标RFID控制器板地址,重组数据包转发给RFID板控制器;至此数据经过节板控制器1,层板控制器3的两次重组、转发之后全部到达目标RFID板控制器;
具体解析方法包括以下步骤:
步骤(91):所述节板控制器1、层板控制器3、RFID板控制器初始化其串口、定时器;
步骤(92):所述节板控制器1、层板控制器3、RFID板控制器使能串口接收中断、使能定时器更新中断,开始接收数据;
步骤(93):所述节板控制器1、层板控制器3、RFID板控制器判断所述串口中断是否触发,如果触发,则将数据写入其缓存区;
步骤(94):所述节板控制器1、层板控制器3、RFID板控制器判断所述缓存区是否存在数据,如果不存在则继续判断;如果存在则跳转到步骤(95);
步骤(95):所述节板控制器1、层板控制器3、RFID板控制器使能协议解析器,按先入先出原则读出并解析所述缓存区的数据;
步骤(96):所述节板控制器1、层板控制器3、RFID板控制器判断步骤(95)是否超出解析周期,如果超出解析周期,则初始化所述协议解析器,并跳转到步骤(95);如果未超出解析周期,则跳转到步骤(97);
步骤(97):所述节板控制器1、层板控制器3、RFID板控制器判断步骤(95)是否解析出符合协议的数据帧,如果不符合,则跳转到步骤(95);如果符合,则跳转到步骤(98);
步骤(98):所述节板控制器1、层板控制器3、RFID板控制器各自判断步骤(95)解析出的数据帧中地址参数是否与自身的地址匹配,即节板控制器1判断地址是否是1(1即该节板控制器1地址),层板控制器3判断地址是否是3(3即该层板控制器3的地址),RFID板控制器判断地址是否为0(0即RFID板的默认地址);如果不是,说明不匹配,则继续判断,等待接收到正确的地址参数;如果是,则说明匹配,则跳转到步骤(99);每个控制器都有一个唯一的地址,运行前都已经配置好。
步骤(99):所述节板控制器1、层板控制器3、RFID板控制器各自判断步骤(95)解析出的数据帧中类型参数是否与自身的类型匹配,即节板控制器1判断目标类型是否为非节板类型,如果是,则节板控制器1根据解析出的目标类型、目标地址等参数,组包转发给下层级设备即层板控制器;层板控制器3判断类型是否为非层板类型,如果是,则层板控制器3根据解析出的目标类型、目标地址等参数,组包转发给下层级设备即RFID板控制器;RFID板控制器判断地址类型是否为RFID,如果不是,表示不匹配,则继续判断,等待接收到正确的类型参数;如果类型是RFID板,说明相匹配,则跳转到步骤(100);至此,经由节板控制器1中步骤(98),步骤(99)、层板控制器3中步骤(98),步骤(99)和RFID板控制器中步骤(98),步骤(99)的6次校验,最终定位出目标RFID板控制器,实现控制主机与目标RFID板控制器之间的数据传输;
步骤(100):所述RFID板控制器将数据按地址顺序写入到FLASH存储器中。
所述控制主机每完成发送一个数据包后检测所述应答信息是否正常,如果应答不正常,则所述控制主机再次将所述数据包发送给所述节板控制器1下的层板控制器3下的RFID板控制器,若第三次发送后仍然应答不正常,表示写入失败,控制主机打印错误信息,然后所述控制主机通知所述节板控制器1下的层板控制器3下的RFID板控制器擦除其已经写入的数据,最后操作人员点击升级客户端的“结束升级”按钮,这样退出升级操作;
如果应答正常,则发送下一个数据包,直到将所有的数据包全部成功发送给所述节板控制器1下的层板控制器3下的RFID板控制器,此时FLASH存储器已升级了新用户程序,再进入下一步骤,所述FLASH存储器此时处于升级程序模式;
步骤(10):节板控制器1下的层板控制器3下的RFID板控制器对其锁存
所述控制主机向所述节板控制器1下的层板控制器3下的RFID板控制器发送结束升级程序模式命令,所述节板控制器1下的层板控制器3下的RFID板控制器接收所述命令后锁定其FLASH存储器存储用户程序的内存区间,并将FLASH存储器的标志位设置为0,表示不需要升级,如设置为1,则表示需要升级,并反馈应答信号给所述控制主机;
步骤(11):控制主机再次检测应答信号
所述控制主机检测所述应答信号是否正常,如果应答不正常,则再次执行步骤(10);若重复执行步骤(10)至第三次后,应答仍然不正常,表示标志位设置失败,操作人员点击升级客户端的“结束升级”按钮,这样退出升级操作;如果应答正常,表示标志位设置成功,所述节板控制器1下的层板控制器3下的RFID板控制器的用户程序升级成功,所述节板控制器1下的层板控制器3下的RFID板控制器此时处于升级程序模式。
本实施例通过基于控制器升级程序的协议设计和数据解析处理算法,结合客户端程序,实现读取U盘中的升级文件,自动执行程序升级任务,对第三级的RFID板控制器进行程序升级,灵活方便,极大地提高了工程人员的工作效率,在自动程序升级时会对升级文件进行校验,解决了人工烧录错误程序的问题。
最后应说明的是:以上实施例仅用以说明本发明而并非限制本发明所描述的技术方案;因此,尽管本说明书参照上述的各个实施例对本发明已进行了详细的说明,但是,本领域的普通技术人员应当理解,仍然可以对本发明进行修改或等同替换;而一切不脱离本发明的精神和范围的技术方案及其改进,其均应涵盖在本发明的权利要求范围中。
Claims (10)
1.一种自动升级多级控制器的方法,其特征在于,包括以下步骤:
步骤(1):设置升级参数
把移动存储介质插入在控制主机的USB接口上,所述移动存储介质里存有待升级的文件,打开控制主机的升级客户端,并在所述升级客户端上配置升级参数,用于设置待升级的控制器,所述待升级的控制器此时处于用户程序模式;所述待升级的控制器的存储器芯片存储有用户程序和升级程序,默认运行用户程序,即处于用户程序模式,当运行升级程序,即处于升级程序模式;
步骤(2):读取升级参数匹配待升级的控制器
所述升级客户端读取所述升级参数,用于匹配所述待升级的控制器,所述待升级的控制器此时处于用户程序模式;
步骤(3):期望待升级的控制器从用户程序模式切换到升级程序模式
所述控制主机向所述待升级的控制器发送切换至升级程序模式的命令,用于将所述待升级的控制器从所述用户程序模式切换至升级程序模式;所述待升级的控制器接收到所述命令后,先向所述控制主机反馈应答信息,然后再执行所述命令;
步骤(4):控制主机检测应答是否正常
所述控制主机检测所述待升级的控制器应答是否正常,如果应答不正常,表示所述待升级的控制器未接收到所述命令,则再次执行步骤(3);若重复执行步骤(3)至第三次后,应答仍不正常,则退出升级操作;如果应答正常,则进入下一步骤,应答正常表示所述待升级的控制器已经接收到命令,但所述控制主机无法判断所述待升级的控制器是否从用户程序模式切换到了升级程序模式;
步骤(5):检测待升级的控制器是否进入到升级程序模式
所述控制主机向所述待升级的控制器发送是否运行在所述升级程序模式的指令,所述待升级的控制器接收所述指令后反馈应答信息给所述控制主机,用于确认所述待升级的控制器是否切换到升级程序模式,所述待升级的控制器只有在升级程序模式会识别并应答所述指令,而在用户程序模式则无法识别且也不应答所述指令;
步骤(6):控制主机再次检测应答是否正常
所述控制主机接收所述应答信息并对其检测是否正常,如果应答不正常,表示所述待升级的控制器此时仍运行在用户程序模式,未切换到升级程序模式,则再次执行步骤(5);若重复执行步骤(5)至第三次后,应答仍然不正常,则退出升级操作;如果应答正常,则进入下一步骤,所述待升级的控制器此时处于升级程序模式;
步骤(7):控制主机发送擦除用户程序指令
所述控制主机向所述待升级的控制器发送擦除其存储器芯片存储的用户程序的指令,所述待升级的控制器接收到所述指令后擦除其所述用户程序,并向所述控制主机反馈应答信息;
步骤(8):控制主机检测用户程序是否被擦除
所述控制主机接收所述应答信息并对其检测是否正常,如果应答不正常,即判定擦除动作失败,表示所述用户程序未被擦除,则再次执行步骤(7);若重复执行步骤(7)至第三次后,应答仍然不正常,则退出升级操作;如果应答正常,表示所述用户程序已经被擦除,则进入下一步骤,所述待升级的控制器此时处于升级程序模式;
步骤(9):待升级的控制器完成数据写入
所述控制主机将升级程序文件分割成多个相同字节长度的数据包,并将所有的数据包依次发送给所述待升级的控制器,所述待升级的控制器每接收一个数据包后对其进行解析,并判断解析出的类型参数和地址参数是否与自身的类型和地址相匹配;
如果类型参数匹配,则下一步继续判断地址参数是否匹配,如果两者都匹配,则将解析出的数据域内容写入存储器芯片存储用户程序地址中,并向所述控制主机反馈应答信息;
如果类型参数不匹配,则继续判断是否存在下一层级的控制器,如果存在下一层级的控制器,则所述待升级的控制器将数据重新组包,并转发至所述下一层级的控制器;如果不存在下一层级的控制器,则丢弃该数据包,继续解析处理后续收到的数据包;
如果类型参数匹配,但地址参数不匹配,则丢弃该数据包,继续解析处理后续收到的数据包;
所述控制主机每完成发送一个数据包后检测所述应答信息是否正常,如果应答不正常,则所述控制主机再次将所述数据包发送给所述待升级的控制器,若第三次发送后仍然应答不正常,表示写入失败,然后所述控制主机通知所述待升级的控制器擦除其已经写入的数据,最后再退出升级操作;
如果应答正常,则发送下一个数据包,直到将所有的数据包全部成功发送给所述待升级的控制器,此时存储器芯片内已升级了新用户程序,再进入下一步骤,所述待升级的控制器此时处于升级程序模式;
步骤(10):待升级的控制器对其锁存
所述控制主机向所述待升级的控制器发送结束升级程序模式命令,所述待升级的控制器接收所述命令后锁定其存储器芯片存储用户程序的内存区间,并将存储器芯片内的标志位设置为不需要升级标识;并反馈应答信号给所述控制主机;
步骤(11):所述控制主机检测所述应答信号是否正常,如果应答不正常,则再次执行步骤(10);若重复执行步骤(10)至第三次后,应答仍然不正常,表示标志位设置失败,则退出升级操作;如果应答正常,表示标志位设置成功,所述待升级的控制器程序升级成功,所述待升级的控制器此时处于升级程序模式。
2.根据权利要求1所述的自动升级多级控制器的方法,其特征在于:所述步骤(1)中配置升级参数包括配置类型、节地址、地址、文件及串口。
3.根据权利要求1所述的自动升级多级控制器的方法,其特征在于:所述步骤(4)、步骤(6)、步骤(8)、步骤(9)在退出升级操作前,所述控制主机打印错误信息。
4.根据权利要求1所述的自动升级多级控制器的方法,其特征在于:所述存储器芯片为FLASH存储器。
5.根据权利要求1所述的自动升级多级控制器的方法,其特征在于:所述步骤(10)中标志位为0,表示为不需要升级标识;标志位为1,表示为需要升级标识。
6.根据权利要求1所述的自动升级多级控制器的方法,其特征在于:
所述步骤(9)中数据包含有升级数据、写入地址、检验码,所述升级数据的长度为128字节,所述写入地址用以表示将所述升级数据写入到所述存储器芯片中的地址,所述检验码用来判断所述数据包是否有效。
7.根据权利要求1所述的自动升级多级控制器的方法,其特征在于:所述步骤(9)中待升级的控制器接收数据包后对其进行解析,并判断解析出的类型参数和地址参数是否与自身的类型和地址相匹配,如果类型参数匹配,则下一步继续判断地址参数是否匹配,如果两者都匹配,则将接解析出的数据域内容写入存储器芯片存储用户程序地址中的具体方法包括以下步骤:
步骤(91):所述待升级的控制器初始化串口、定时器;
步骤(92):所述待升级的控制器使能串口接收中断、使能定时器更新中断,开始接收数据;
步骤(93):所述待升级的控制器判断所述串口中断是否触发,如果触发,则将数据写入其缓存区;
步骤(94):所述待升级的控制器判断所述缓存区是否存在数据,如果不存在则继续判断;如果存在则跳转到步骤(95);
步骤(95):所述待升级的控制器使能协议解析器,按先入先出原则读出并解析所述缓存区的数据;
步骤(96):所述待升级的控制器判断步骤(95)是否超出解析周期,如果超出解析周期,则初始化所述协议解析器,并跳转到步骤(95);如果未超出解析周期,则跳转到步骤(97);
步骤(97):所述待升级的控制器判断步骤(95)是否解析出符合协议的数据帧,如果不符合,则跳转到步骤(95);如果符合,则跳转到步骤(98);
步骤(98):所述待升级的控制器判断步骤(95)解析的地址参数是否与自身的地址匹配,如果不匹配,则继续判断;如果匹配,则跳转到步骤(99);
步骤(99):所述待升级的控制器判断步骤(95)解析的类型参数是否与自身的类型匹配,如果不匹配,则继续判断是否存在下一层级的控制器,如果存在下一层级的控制器,则所述待升级的控制器将数据重新组包,并转发至所述下一层级的控制器;如果不存在下一层级的控制器,则跳转到步骤(98);如果匹配,则跳转到步骤(100);
步骤(100):所述待升级的控制器将数据按地址顺序写入到存储器芯片中。
8.根据权利要求1所述的自动升级多级控制器的方法,其特征在于:所述步骤(11)如果应答正常后还往下执行步骤(12):切换至用户程序模式
所述控制主机向所述待升级的控制器发送切换到用户程序模式的命令,所述待升级的控制器接收到所述命令后执行切换操作后并反馈应答信息给所述控制主机;所述控制主机检测所述应答信息是否正确,如果正确,表示所述待升级的控制器已经切换到用户程序模式;如果不正确,表示所述待升级的控制器未收到所述命令,可通过断电重启,使其切换到用户程序模式。
9.根据权利要求1-8任一所述的自动升级多级控制器的方法,其特征在于:所述移动存储介质为U盘或移动硬盘。
10.根据权利要求1-8任一所述的自动升级多级控制器的方法,其特征在于:所述待升级的控制器为层板控制器,或节板控制器,或RFID板控制器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011551652.6A CN112764785B (zh) | 2020-12-24 | 2020-12-24 | 一种自动升级多级控制器的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011551652.6A CN112764785B (zh) | 2020-12-24 | 2020-12-24 | 一种自动升级多级控制器的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112764785A CN112764785A (zh) | 2021-05-07 |
CN112764785B true CN112764785B (zh) | 2021-10-29 |
Family
ID=75694142
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011551652.6A Active CN112764785B (zh) | 2020-12-24 | 2020-12-24 | 一种自动升级多级控制器的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112764785B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113360177A (zh) * | 2021-06-07 | 2021-09-07 | 中电科思仪科技股份有限公司 | 一种用于矢量网络分析仪固件程序在线升级的装置及方法 |
CN113792841A (zh) * | 2021-08-26 | 2021-12-14 | 深圳市几米物联有限公司 | Rfid参数配置方法、设备及计算机可读存储介质 |
CN114281392A (zh) * | 2022-03-04 | 2022-04-05 | 季华实验室 | 一种多mcu从站的串口升级方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6347363B1 (en) * | 1998-02-17 | 2002-02-12 | International Business Machines Corporation | Merged vertical cache controller mechanism with combined cache controller and snoop queries for in-line caches |
CN104216680A (zh) * | 2013-08-28 | 2014-12-17 | 威盛电子股份有限公司 | 微处理器及其执行方法 |
CN109710295A (zh) * | 2018-11-23 | 2019-05-03 | 北京计算机技术及应用研究所 | 一种安全可靠地fpga远程升级方法 |
CN111309351A (zh) * | 2020-01-14 | 2020-06-19 | 中国科学院地质与地球物理研究所 | 一种数据升级方法及系统 |
CN111970158A (zh) * | 2020-08-31 | 2020-11-20 | 网易(杭州)网络有限公司 | 边缘接入的处理系统、方法、装置及设备 |
CN112104736A (zh) * | 2020-09-17 | 2020-12-18 | 广州汽车集团股份有限公司 | 一种基于ota的多ecu升级方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7219255B2 (en) * | 2004-07-27 | 2007-05-15 | Mks Instruments, Inc. | Failsafe switching of intelligent controller method and device |
US8522322B2 (en) * | 2010-09-22 | 2013-08-27 | Intel Corporation | Platform firmware armoring technology |
US10073626B2 (en) * | 2013-03-15 | 2018-09-11 | Virident Systems, Llc | Managing the write performance of an asymmetric memory system |
CN104360877B (zh) * | 2014-10-24 | 2017-12-05 | 同济大学 | 基于Bootloader自更新的ECU固件更新方法 |
CN109217702A (zh) * | 2017-07-06 | 2019-01-15 | 华北电力大学(保定) | 一种基于自适应萤火虫算法的mmc参数优化方法 |
US11119927B2 (en) * | 2018-04-03 | 2021-09-14 | International Business Machines Corporation | Coordination of cache memory operations |
CN109698973B (zh) * | 2018-12-29 | 2021-01-01 | 武汉斗鱼网络科技有限公司 | 一种进度更新方法、装置、电子设备及介质 |
-
2020
- 2020-12-24 CN CN202011551652.6A patent/CN112764785B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6347363B1 (en) * | 1998-02-17 | 2002-02-12 | International Business Machines Corporation | Merged vertical cache controller mechanism with combined cache controller and snoop queries for in-line caches |
CN104216680A (zh) * | 2013-08-28 | 2014-12-17 | 威盛电子股份有限公司 | 微处理器及其执行方法 |
CN109710295A (zh) * | 2018-11-23 | 2019-05-03 | 北京计算机技术及应用研究所 | 一种安全可靠地fpga远程升级方法 |
CN111309351A (zh) * | 2020-01-14 | 2020-06-19 | 中国科学院地质与地球物理研究所 | 一种数据升级方法及系统 |
CN111970158A (zh) * | 2020-08-31 | 2020-11-20 | 网易(杭州)网络有限公司 | 边缘接入的处理系统、方法、装置及设备 |
CN112104736A (zh) * | 2020-09-17 | 2020-12-18 | 广州汽车集团股份有限公司 | 一种基于ota的多ecu升级方法 |
Non-Patent Citations (1)
Title |
---|
"TP框架 多级控制器,多层控制器";wahaha2000;《https://www.cnblogs.com/liuzhaobo1999/p/7440030.html》;20170827;第1-3页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112764785A (zh) | 2021-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112764785B (zh) | 一种自动升级多级控制器的方法 | |
US6904457B2 (en) | Automatic firmware update of processor nodes | |
US20050063089A1 (en) | Robotic Data Storage Library With the Ability to Reduce the Transition Time to Reach an Operational State After a Transition From a Power-Off State to a Power-On State | |
CN100375028C (zh) | 在存储区域网络中安装远程引导的操作系统的系统和方法 | |
CN100483348C (zh) | 一种用于现场可编程门阵列位文件升级的系统及方法 | |
US8994515B2 (en) | System for programming and lighting electronic detonators and associated method | |
US7657794B2 (en) | Data storage device and error recovery method | |
CN105573743A (zh) | 一种芯片烧录系统及方法、电子设备 | |
WO2006013559A2 (en) | Storage area network boot server and method | |
CN101853173A (zh) | 一种分布式系统的可编程逻辑器件的软件升级方法和设备 | |
CN108920168B (zh) | 支持多个同类ECU同时升级且具防程序不匹配功能的Bootloader方法 | |
EP3709149A1 (en) | Off-board flash memory | |
CN112083972B (zh) | 一种bmc系统配置方法、装置、设备及可读存储介质 | |
CN102938856B (zh) | 无卡条件接收系统的软件升级方法及升级装置 | |
US20060026415A1 (en) | Method of updating a portion BIOS | |
CN105573872A (zh) | 数据存储系统的硬盘维护方法和装置 | |
CN102323886B (zh) | 用于向终端写入特定信息的方法、装置和系统 | |
CN111638895A (zh) | 一种机车信号车载设备程序在线变更方法 | |
CN113434179B (zh) | 一种可编程电源的在线升级方法、装置、设备及存储介质 | |
CN108572835A (zh) | 一种fpga配置文件在线升级系统 | |
EP1022697B1 (en) | Control apparatus for vending machine | |
CN108549539A (zh) | 一种进行设备远程升级的方法及装置 | |
CN108920210A (zh) | 一种加载存储控制软件的方法、系统及相关组件 | |
JP2001056787A (ja) | メモリ書込装置およびその書込方法 | |
CN101354568B (zh) | 控制装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |