一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于多单片机并行处理及自我升级的方法与流程

2021-11-06 03:40:00 来源:中国专利 TAG:


1.本发明涉及工业控制技术领域,尤其涉及一种基于多单片机并行处理及自我升级的方法。


背景技术:

2.随着科学信息技术的发展,物联网远程监测逐渐的广泛应用于各个领域,通过物联网技术可以随时随地的监测现场设备的工作状态,无需现场查看,作为方便快速的通讯方式已逐渐被广泛应用。同时由于技术的发展和更新,无人职守的现代化的监测模式已逐渐受到客户的青睐,可是对于这些系统而言都需要进行定期升级维护,可是现场的升级会损耗时间和人力上的浪费,特别是一些工作强度大、难度高导致施工困难,而远程自动升级则很好的解决了这个问题。
3.目前,随着微型计算机技术的发展和应用功能的多元化,单一mcu(micro control unit,微控制单元)已经无法满足功能或性能的要求,目前多数产品选择采用主从mcu(可能包含若干个从机,从机再控制若干个从机的多级连接)控制的方式来达到更高的性能与要求。
4.然而,当需要对从控制器的程序执行升级时,现有技术无法满足升级需求,制约产品的发展。尤其是在工业控制领域中尚未出现可灵活配置升级功能的数字化控制系统,未发现可以针对系统芯片写入软件升级过程进行优化和保障的设计方案。


技术实现要素:

5.本发明的主要目的是提供一种可以提升模块化数控系统软件升级过程的稳定性,不会因为断电等意外故障造成设备的宕机,从原理上保证系统芯片程序写入的基本达到99.99%成功率,从而减少系统用户升级过程中的繁琐维护操作的基于多单片机并行处理及自我升级的方法。
6.为了实现上述的主要目的,本发明提供的一种基于多单片机并行处理及自我升级的方法,所述方法包括当确定进入自检流程程序后,主处理器向各个从处理器发送查询指令,依次查询每一个从处理器内写入程序的状态,并根据从处理器回复的相关数据,判断系统当前状态是否符合升级标准;若判断结果为是,则主处理器进入写入升级流程,通过数据串口总线依次为各个从处理器写入升级程序;当确认所有从处理器写入升级程序成功后,主处理器进入自我升级流程,在主处理器写入升级程序完成后由从处理器执行检测,确定升级程序写入无误后即可完成整个升级流程;若在升级过程中出现故障,导致从处理器程序错误,可简单重新升级,若主处理器出现故障,导致无法正确引导进入升级流程,采用手动强制升级模式,对主处理器进行强制升级流程,再恢复正常的升级流程。
7.进一步的方案中,在进入自检流程程序,主处理器在程序引导下,通过通讯数据接口发送查询指令,依次查询每一个从处理器内写入程序的状态,从处理器在接收到主处理器发送的查询指令后,会在规定时间内回复相应的参数值,报告当前处理器内程序的完整
度、写入时间、版本等信息;其中,判断当前系统状态是否符合升级标准包括:判断系统当前状态,以确定系统进入自动升级流程或者正常进入系统。
8.更进一步的方案中,若系统进入自动升级流程,通过数据通讯接口开始读取外部数据单元所传入的数据,将读取到的数据经过校验后,将数据暂存于主处理器ram/flash rom区域内;当外部数据读取完成后,主处理器进入向下的写入升级流程,在小容量rom/ram的处理器中也可以采用边读入升级数据,同时边升级从处理器的方式;在主处理器进入向下的写入升级流程后,主处理器输出引脚信号复位一个从处理器,让该从处理器进入升级程序的写入流程,通过数据串口总线为该从处理器写入升级程序;当从处理器升级程序写入完成后,根据程序要求通过数据串口总线回复一个确定标志位,在主处理器接收到该确定标志位后,即可确认该从处理器已升级成功,进入下一个从处理器的升级写入流程;若主处理器没有收到该确定标志位,则确定为升级程序写入失败,主处理器将再次为从处理器写入升级程序。
9.更进一步的方案中,在第一个从处理器写入升级程序成功后,主处理器将依次为后续的从处理器写入升级程序,当最后一个从处理器升级成功后,主处理器跳转至对应的引导区,进入自我升级流程;在自我升级流程下,主处理器首先进行程序区的擦除和写入工作,在确保程序区写入正确后,进行引导区内的程序擦除写入流程。
10.更进一步的方案中,自我升级流程具体包括:进入自我升级流程后,主处理器设置升级标识,该标识存在就说明必须升级,按照引导区内的程序要求,获取数据通讯接口的自我升级程序数据,分为引导和程序两个区域,先升级引导区,把引导区数据先暂存在程序区,通过预置在程序去的特定程序,升级引导区,引导区升级完成后,处理器返回到新引导区,再获得程序区升级数据,升级程序区,最后完成校验后,清除升级标识,以完成整个系统的升级过程。
11.更进一步的方案中,所有升级数据都可以采取多种加密方式和效验,在处理器内部进行解密,可以保证数据的一致性和保密要求;
12.若主处理器在进行自我升级时,写入程序区域的过程中出错,系统会自动发出告警,并需要手动复位整个系统,当系统再次上电时,主处理器内的引导区程序按照要求检查程序区完整性,当确认程序写入失败后,再次进入自我升级流程,从数据通讯接口读取升级程序内容,重新对程序区域内进行擦除写入。
13.更进一步的方案中,若升级从处理器在进行自身原引导区域写入过程中出错,进入异常模式,并执行手动强制升级流程重新为主处理器执行升级。
14.更进一步的方案中,当确定主处理器写入失败且不可自动恢复后,进入手动强制升级流程:设备先断电,按下设备复位按键,同时为保证强制状态准确,同时按下外接按键,系统再通电,同时保持3

5秒,这时主处理器处于复位状态,同时触发主处理器复位引脚和从处理器启动引脚,让从处理器判定主处理器已被强制复位而进入接管,从而进入手动强制升级流程。
15.更进一步的方案中,从处理器通过与主处理器共享的通讯数据接口取得主处理器的升级程序,执行类似主处理器升级从处理器的方式,对主处理器进行强制升级,此时从处理器接管原主处理器的必要硬件资源,通过从处理器进行人机交互处理。
16.由此可见,本发明采用多处理器依次升级方案实施升级过程,多处理器中存在一
个主流程处理器负责调配升级资源,为其它从处理器依次升级,可以实现依照硬件功能来升级对应软件的能力,保障软件升级过程的稳定。
17.其中,若在系统从处理器的程序擦除写入升级过程中出现意外情况导致升级中断,则主处理器会记录升级日志,当用户重新升级系统时做到从断点继续升级系统,只有当所有从处理器升级完毕后,主处理器才会进行自我升级,若主处理器在升级过程中因意外出现错误,则已完成升级的从处理器可以反向接管升级资源分配任务,重新控制主处理器的升级过程。可见,在相互接管升级任务方案的设计下,可以做到杜绝系统升级过程失败导致的“变砖”情况出现。
18.所以,本发明提供的方法可以有效减少因升级过程中意外断电,电路干扰等情况下导致芯片写入失败而系统瘫痪的概率,极大增加了模块式数控系统维护的便捷性,降低维护成本。
19.此外,由于本发明采用多处理器并行工作式设计,故可以实现依照硬件功能来升级对应软件的能力,只需将为主处理器提供升级文件,便可以让所有需要升级的mcu自行进行升级,无需单独对每个mcu进行升级,节省了操作人员的工作时间,降低了升级的时间成本。
附图说明
20.图1是本发明一种基于多单片机并行处理及自我升级的方法实施例的流程图。
21.图2是本发明一种基于多单片机并行处理及自我升级的方法实施例的电路原理图。
22.以下结合附图及实施例对本发明作进一步说明。
具体实施方式
23.为使本发明的上述目的、特征和优点能够更加明显易懂,下面将结合附图和具体的实施例对本发明的技术方案进行详细说明。需要指出的是,所描述的实施例子仅仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
24.参见图1与图2,本发明的一种基于多单片机并行处理及自我升级的方法包括以下步骤:
25.首先,执行步骤s1,进入自检流程程序,当确定进入自检流程程序后,执行步骤s2,主处理器向各个从处理器发送查询指令,依次查询每一个从处理器内写入程序的状态,并根据从处理器回复的相关数据,执行步骤s3,判断系统当前状态是否符合升级标准。
26.若判断结果为是,则执行步骤s4,主处理器进入写入升级流程,通过数据串口总线依次为各个从处理器写入升级程序。
27.当确认所有从处理器写入升级程序成功后,执行步骤s5,主处理器进入自我升级流程,在主处理器写入升级程序完成后由从处理器执行检测,确定升级程序写入无误后即可完成整个升级流程。
28.若在升级过程中出现故障,导致从处理器程序错误,可简单重新升级,若主处理器出现故障,导致无法正确引导进入升级流程,采用手动强制升级模式,对主处理器进行强制
升级流程,再恢复正常的升级流程。可见,这种设计方式,可保证处理器99.99%的升级成功。
29.在执行步骤s1之前,在系统上电后,主处理器按照物理设置进入对应的引导区寻找程序的开头段部分,在该部分设置相关跳转地址,引导程序进入自检测流程程序,从而检查各个从处理器程序区的运行程序效验码是否完整,并根据判断结果执行下一步骤。
30.在本实施例中,在进入自检流程程序后,主处理器在程序引导下,通过通讯数据接口(usb、spi、串口、can、i2c、蓝牙,网络等等)发送查询指令,依次查询每一个从处理器内写入程序的状态,从处理器在接收到主处理器发送的查询指令后,会在规定时间内回复相应的参数值,报告当前处理器内程序的完整度、写入时间、版本等信息。
31.在上述步骤s3中,判断当前系统状态是否符合升级标准包括:判断系统当前状态,以确定系统进入自动升级流程、手动强制升级流程或者正常进入系统。
32.在本实施例中,手动强制升级流程的执行包括:通过两个输入信号开关,同时触发主处理器复位引脚和从处理器启动引脚,让从处理器判定主处理器已被强制复位而进入接管,从而进入手动强制升级流程。
33.在上述步骤s3中,若系统进入自动升级流程,由主处理器查询对应地址下的引导程序,通过数据通讯接口(usb、spi、串口、can、i2c、蓝牙,网络等等)开始读取外部数据单元所传入的数据,将读取到的数据经过校验后,将数据暂存于主处理器ram/flash rom区域内;当外部数据读取完成后,主处理器进入向下的写入升级流程,在小容量rom/ram的处理器中也可以采用边读入升级数据,同时边升级从处理器的方式(亦可以边读入数据,边升级从处理器,这对小容量rom/ram的处理器尤其重要):在主处理器进入向下的写入升级流程后,主处理器输出引脚信号复位一个从处理器,让该从处理器进入升级程序的写入流程,通过数据串口总线为该从处理器写入升级程序;当从处理器升级程序写入完成后,根据程序要求通过数据串口总线回复一个确定标志位,在主处理器接收到该确定标志位后,即可确认该从处理器已升级成功,进入下一个从处理器的升级写入流程;若主处理器没有收到该确定标志位,则确定为升级程序写入失败,主处理器将再次为从处理器写入升级程序。
34.其中,在主处理器进入向下的写入升级流程后,根据片选信号选择对应的升级对象,通过拉高引脚p62选择一个从处理器,将该从处理器的引脚p54拉低,进行该从处理器升级程序的写入流程,通过数据通讯接口为该从处理器写入升级程序。
35.当从处理器升级程序写入完成后,根据程序要求通过数据串口总线回复一个确定标志位,在主处理器接收到该确定标志位后,即可确认该从处理器已升级成功,进入下一个从处理器的升级写入流程;若主处理器没有收到该确定标志位,则确定为升级程序写入失败,主处理器将再次为从处理器写入升级程序。
36.在本实施例中,在第一个从处理器写入升级程序成功后,主处理器将依次为后续的从处理器写入升级程序,当最后一个从处理器升级成功后,主处理器跳转至对应的引导区,进入自我升级流程;在自我升级流程下,主处理器首先进行程序区的擦除和写入工作,在确保程序区写入正确后,进行引导区内的程序擦除写入流程。
37.其中,自我升级流程具体包括:进入自我升级流程后,主处理器设置升级标识,该标识存在就说明必须升级,按照引导区内的程序要求,获取数据通讯接口的自我升级程序数据,分为引导和程序两个区域,先升级引导区,把引导区数据先暂存在程序区,通过预置
在程序区的特定程序,升级引导区,引导区升级完成后,处理器返回到新引导区,再获得程序区升级数据,升级程序区,最后完成校验后,清除升级标识,以完成整个系统的升级过程。
38.具体的,进入自我升级流程后,主处理器按照引导区内的程序要求,将芯片内存程序存放区域擦除,读取引脚p13

p16的spi串口获取自我升级程序,并重新将该部分程序写入芯片内存区域,其中,升级程序尾部带有相同的校验位,待写入完成后引导区内的引导程序将验证写入程序的正确性,待确定正确后才进入引导区程序的升级流程。
39.在自我升级完成后的程序区主程序后部带有相应的备用引导程序,当主处理器确认程序区升级完成后,将自动跳转入读取程序区内容的流程,由程序区内已升级程序尾部的备用引导程序转接至擦除,写入原本引导区的流程,开始对主处理器的引导区程序进行升级;在主处理器引导区升级写入完成后,跳转至结束相关流程,以完成整个系统的升级过程。
40.在本实施例中,若主处理器在进行自我升级时,写入程序区域的过程中出错,系统会自动发出告警,并需要手动复位整个系统,当系统再次上电时,主处理器内的引导区程序按照要求检查程序区完整性,当确认程序写入失败后,再次进入自我升级流程,从数据通讯接口读取升级程序内容,重新对程序区域内进行擦除写入。
41.进一步的,若升级从处理器在进行自身原引导区域写入过程中出错,进入异常模式,并执行手动强制升级流程重新为主处理器执行升级。
42.进一步的,当确定主处理器写入失败且不可自动恢复后,进入手动强制升级流程:设备先断电,按下设备复位按键(主处理器复位端),同时为保证强制状态准确,同时按下外接按键(另外一个输入信号接通),系统再通电,同时保持3

5秒,这时主处理器处于复位状态,同时触发主处理器复位引脚和从处理器启动引脚,让从处理器判定主处理器已被强制复位而进入接管,从而进入手动强制升级流程。即通过按下复位按键和外接按键再上电,同时拉低主处理器复位引脚和从处理器启动引脚,进入手动强制升级流程;其中,从处理器通过读取自身的引脚p37,确定主处理器复位脚状态,当确认主处理器复位引脚被长期拉低复位后,则读取自身的启动引脚状态,确认启动引脚也被拉低后,通过程序执行手动强制升级流程。
43.进一步的,从处理器通过与主处理器共享的通讯数据接口取得主处理器的升级程序,执行类似主处理器升级从处理器的方式,对主处理器进行强制升级,此时从处理器接管原主处理器的必要硬件资源(显示、键盘、flashrom,通讯数据接口等等),通过从处理器进行人机交互处理。
44.在本实施例中,进入从处理器接管的手动强制升级流程具体包括:从处理器通过引脚p32/p33选择对应的usb接口,通过spi总线读取外部传输的升级程序内容,并暂存于芯片ram中;当升级程序暂存和校验完成后,从处理器通过拉高引脚p37的信号为主处理器执行切断复位流程,再通过数据串口总线为主处理器执行程序数据写入流程;当主处理器的写入升级完成后,通过spi总线反馈升级结束的确定标志位,由从处理器读取,当从处理器确认该标志位数据无误后,从处理器进入升级结束流程,此时系统断电后再上电,则恢复到主处理器接管的升级流程。
45.在实际应用中,当系统上电后,主处理器按照物理设置首先进入对应的引导存储区域寻找程序的开头段部分,在此设置相关跳转地址,则引导程序进入自我检测流程。
46.进入自检流程程序,主处理器会在程序引导下,通过串口连接引脚txd、rxd发送查询指令的方式,依次查询每一个从处理器内写入程序的状态,从处理器在收到发来的查询指令后,会在规定时间内回复相应的参数值,报告当前处理器内程序的完整度,写入时间,版本等信息。
47.然后,主处理器根据回应的数据值,判定系统当前状态,以确定是否需要自动进入程序升级流程或者正常进入系统,此时可通过两个外界输入信号开关,同时触发主处理器复位引脚p54与从处理器启动引脚p10,让从处理器判定主处理器已被强制复位而进入接管,进入手动强制升级流程。
48.若系统进入自动升级流程,主处理器首先按照程序要求查询对应地址下的引导程序,通过引脚p13

p16的spi总线开始读取外部数据单元所传入的数据,当读取到数据后经过校验,将数据暂存于主处理器ram区域内。
49.当外部数据读取完成后,主处理器进入向下的写入升级流程,由于众多从处理器均联通在总线上,需要根据片选信号选择对应的升级对象,通过拉高引脚p62选择出从处理器a,再通过拉低从处理器a的引脚p54,进入升级程序写入流程,通过二者相连的数据串口总线p46、p47为从处理器a写入升级程序。
50.当从处理器a写入完成后,会根据程序要求通过串口数据回复一个确定标志位,只有主处理器接收到这个标志后才会确认从处理器a已升级成功,进入下一个从处理器的升级写入流程,若未能够收到这个标志,则视为升级程序写入失败,主处理器将再次进入为从处理器升级的流程。
51.按照上述流程,主处理器将依次为后续的从处理器写入升级程序,直到所有的从处理器升级完成。
52.当最后一个从处理器升级成功后,主处理器将按照程序流程跳转至对应的引导区,进入自我升级流程。在此流程下,主处理器会首先设置升级标识,只有所有的升级正确完成后,这个标识才会撤销;通过数据通信接口读入新引导区升级数据,并进行数据校验和解密,暂存在主程序区特定位置,主处理器将转入新引导区中备用引导程序入口,对原引导区进行数据升级覆盖,最后经过校验引导区数据正确性后,主处理器才进入主程序区升级流程
53.进入主程序升级流程后,主处理器首先擦除主程序区rom数据,然后通过数据通信接口读取新主程序区内容,解密后写入主程序区,验证主程序区的正确性,最后消除升级标识,完成整个主处理器的升级流程。
54.当主处理器主程序升级写入完成后,跳转至结束相关流程,完成整个系统的升级过程。
55.进一步的,若主处理器在进行自我升级时,写入程序区域的过程中遭遇意外,导致写入错误、中断等情况,系统会自动发出告警,此时需要手动复位整个系统,当再次上电时,主处理器内的引导区程序按照要求检查程序区完整性,确认程序写入失败后,再次进入自我升级流程,从引脚p13

p16的spi串口读取升级程序内容,重新对程序区域内进行擦除写入。
56.若主处理器在进行自身原引导区域写入过程中遭遇意外中断,此时由于基于芯片底层的引导区域已被破坏,芯片上电后无法找出程序进入地址,而进入异常模式,需要执行
手动强制升级流程重新为主处理器执行升级。
57.当确定主处理器写入失败且不可自动恢复后,通过按下复位按键和外接按键再上电,同时拉低主处理器复位引脚p54和从处理器启动引脚p10,进入手动强制升级模式。从处理器会通过读取自身的引脚p37,确定主处理器复位脚状态,当确认主处理器复位引脚被长期拉低复位后,则读取自身启动引脚状态,确认引脚p36也被拉低后,通过程序执行手动强制升级流程,接管包括读取数据,刷新显示在内的所有功能。
58.然后,进入从处理器接管的手动强制升级流程,从处理器通过p32/p33引脚选择对应的usb接口,从相应usb模块引脚p13

p16的spi总线读取外部传输的升级程序内容,并暂存于芯片ram中(针对小容量cpu,可以读一扇区,就写入一扇区)。
59.当程序暂存和校验完成后,从处理器通过拉高引脚p37的信号为主处理器执行切断复位流程,此时再通过引脚p46、p47的串口通讯总线,单独为主处理器执行程序数据写入流程。
60.当主处理器的升级程序写入完成后,会从spi总线反馈结束相关的标志数据,由从处理器读取,当确认该标志数据无误后,从处理器进入升级结束流程,此时系统断电后再上电,则恢复到主处理器接管所有流程的逻辑中。若写入标志反馈不正常,则默认升级未成功,再次进入为主处理器的升级流程。
61.由此可见,本发明采用多处理器依次升级方案实施升级过程,多处理器中存在一个主流程处理器负责调配升级资源,为其它从处理器依次升级,可以实现依照硬件功能来升级对应软件的能力,保障软件升级过程的稳定。
62.其中,若在系统从处理器的程序擦除写入升级过程中出现意外情况导致升级中断,则主处理器会记录升级日志,当用户重新升级系统时做到从断点继续升级系统,只有当所有从处理器升级完毕后,主处理器才会进行自我升级,若主处理器在升级过程中因意外出现错误,则已完成升级的从处理器可以反向接管升级资源分配任务,重新控制主处理器的升级过程。可见,在相互接管升级任务方案的设计下,可以做到杜绝系统升级过程失败导致的“变砖”情况出现。
63.所以,本发明提供的方法可以有效减少因升级过程中意外断电,电路干扰等情况下导致芯片写入失败而系统瘫痪的概率,极大增加了模块式数控系统维护的便捷性,降低维护成本。
64.此外,由于本发明采用多处理器并行工作式设计,故可以实现依照硬件功能来升级对应软件的能力,只需将为主处理器提供升级文件,便可以让所有需要升级的mcu自行进行升级,无需单独对每个mcu进行升级,节省了操作人员的工作时间,降低了升级的时间成本。
65.需要说明的是,在本说明书中所谈到的“一个实施例”、“另一个实施例”、“实施例”、“优选实施例”等,指的是结合该实例描述的具体特征、结构或者特点包含在本技术概括描述的至少一个实施例中。在说明书中多个地方出现同种表述不是一定指的是同一个实施例。进一步来说,结合任一实施例描述一个具体特征、结构或者特点时,所要主张的是结合其他实施例来实现这种特征、结构或者特点也落在本发明内。尽管这里参照本发明的多个解释性实例对本发明进行了描述,但是,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式降落在本技术公开的原则范围和精神之内。更具
体地说,在本技术公开、附图和权利要求的范围内,可以对主题结合布局的组成部件和/或布局进行的变形和改进外,对于本领域技术人员来说,其他的用途也将是明显。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献