CN105224362A - 上位机对下位机进行程序升级的方法及系统 - Google Patents
上位机对下位机进行程序升级的方法及系统 Download PDFInfo
- Publication number
- CN105224362A CN105224362A CN201510601043.XA CN201510601043A CN105224362A CN 105224362 A CN105224362 A CN 105224362A CN 201510601043 A CN201510601043 A CN 201510601043A CN 105224362 A CN105224362 A CN 105224362A
- Authority
- CN
- China
- Prior art keywords
- slave computer
- frame
- transfer slave
- rompaq
- transfer
- 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.)
- Pending
Links
Abstract
本发明公开了一种上位机对下位机进行程序升级的方法及系统,克服现有技术中在线升级效率较低以及成本较高等不足。该方法包括:上位机将升级程序打包成多个数据帧并通过第一通信网络发送给中转下位机;中转下位机按顺序接收多个数据帧,获取每个数据帧中的下位机标识信息;根据下位机标识信息判断出数据帧属于中转下位机的升级程序时,利用升级程序的所有数据帧进行本地的应用程序的升级;根据下位机标识信息判断出数据帧属于非中转下位机的升级程序时,将数据帧转发给非中转下位机;非中转下位机利用升级程序的所有数据帧进行本地的应用程序的升级。本发明提高了下位机程序升级的效率,显著降低了程序升级作业的工作量。
Description
技术领域
本发明涉及通信技术领域,具体地说,涉及一种上位机对下位机进行程序升级的方法及系统。
背景技术
为了使控制系统的软件、数据等资讯信息处于最新状态,都需要实时或及时地对软件进行升级更新。但在对控制系统的多个模块的软件进行升级时,如果一个模块一个模块地逐步升级,则显然存在着升级速度慢、工作量大等缺陷,不仅会影响软件更新的及时性,也会降低仪器运行的速度。
目前使用的仪器控制系统常见有嵌入式系统,其在线升级方式多为基于一种通信网络由上位机对所有下位机一一发送升级命令并进行升级,升级步骤繁琐,速度慢,不能满足及时更新的需求。
中国专利申请CN104102508A公开了一种基于FlexRay总线的多机程序在线升级方法,其是通过一根USB转FlexRay调试器将MCU单元(下位机)与PC机(上位机)相连来进行多级程序的在线升级。
但是,当上位机与直接相连的下位机之间的通信网络和所有不与上位机直接相连的下位机之间所采用的通信网络不同时,将导致与上位机无直接相连的下位机不能随上位机发送的升级指令直接进行在线升级,因此,在通信方式日益多元化的环境下极大限制了上位机对下位机的升级方式。
生化免疫仪器是基于生化免疫分析法的一种医疗诊断设备。目前的生化免疫仪器的控制系统包括电路控制部分,其主要由多块主控板组成。要实现仪器的正常工作和升级,通常是通过上位机单独对每一块主控板(下位机)进行程序烧写。
现有生化免疫仪器的上位机与主控板之间在线升级方法为:首先将所有要升级的代码存放在上位机中;然后将生化免疫仪器的外壳拆开,通过串口线连接上位机和主控板;然后在上位机上操作升级软件,以推荐标准(RecommendedStandard,简称RS)-232的通信方式将代码写入主控板中,完成一块主控板的升级,而需要升级的主控板均要重复上述操作。
综合以上所述,现有技术存在着以下的不足:
1)基于一种通信网络的程序升级,需要对每一主控板(下位机)一一进行升级,升级步骤复杂且速度慢,难以满足实时更新的需求;
2)通信网络单一,不能满足目前通信方式日益多元化的应用环境和发展趋势;
3)针对网络单一的生化免疫仪器的程序升级,当前还需要拆卸生化免疫仪器的外壳并在升级完毕之后再安装好外壳,耗时耗力且浪费时间,效率低下。
发明内容
本发明所要解决的技术问题是克服现有技术中上位机与直接相连的下位机所使用的通信网路和不与上位机直接相连的各下位机之间所使用的通信网络不同时,对整个系统的在线升级效率较低以及成本较高等不足。
本发明首先提供了一种上位机对下位机进行程序升级的方法,其中,所述下位机包括与所述上位机通过第一通信网络直接相连的中转下位机以及通过第二通信网络与所述中转下位机相连的非中转下位机,所述第一通信网络与所述第二通信网络不同;该方法包括:所述上位机将升级程序打包成多个数据帧,通过所述第一通信网络将多个所述数据帧按顺序发送给中转下位机;所述中转下位机按顺序接收多个所述数据帧,获取每个所述数据帧中的下位机标识信息;根据所述下位机标识信息判断出所述数据帧属于所述中转下位机的升级程序时,利用所述升级程序的所有数据帧进行本地的应用程序的升级;根据所述下位机标识信息判断出所述数据帧属于所述非中转下位机的升级程序时,将所述数据帧转发给所述非中转下位机;所述非中转下位机利用所述升级程序的所有数据帧进行本地的应用程序的升级。
优选地,所述第一通信网络包括通过RS232总线、网口或者USB接口连接而成的网络,所述第二通信网络包括通过CAN总线或者RS485总线连接而成的网络。
优选地,所述上位机在向所述中转下位机发送每个所述数据帧之后,均向所述中转下位机查询数据帧的接收情况,并在所述中转下位机未成功接收时再次发送所述数据帧。
优选地,所述中转下位机按顺序接收多个所述数据帧,包括:所述中转下位机根据每个数据帧中的数据帧标识信息,按照所述数据帧标识信息的顺序接收多个所述数据帧。
优选地,所述中转下位机或者所述非中转下位机的主芯片中的程序存储区域包括Bootloader区域、原应用程序存储区和新应用程序存储区,所述Bootloader区域和原应用程序存储区均设置有各自的升级标志位;其中,所述原应用程序存储区用于存储升级之前的应用程序,所述新应用程序存储区用于存储升级之后的应用程序;所述中转下位机或者所述非中转下位机的主芯片利用所述新应用程序存储区以及所述原应用存储区和所述Bootloader区域的升级标志位,完成升级程序的升级。
优选地,所述中转下位机或者所述非中转下位机的主芯片利用所述新应用程序存储区以及所述原应用存储区的和所述Bootloader区域的升级标志位,完成升级程序的升级,包括:所述中转下位机或者所述非中转下位机的主芯片将所述升级程序存储到所述新应用程序存储区,将所述原应用存储区的升级标志位设置为1,将所述Bootloader区域的升级标志位设置为1,并将所述应用程序的入口修改为所述新应用程序存储区的入口;在将所述新应用程序存储区中的内容复制到所述原应用程序存储区中后,将所述Bootloader区域的升级标志位清零。
本发明还提供了一种上位机对下位机进行程序升级的系统,其中,包括上位机、与所述上位机通过第一通信网络直接相连的中转下位机以及通过第二通信网络与所述中转下位机相连的非中转下位机,所述第一通信网络与所述第二通信网络不同;该系统中:所述上位机,用于将升级程序打包成多个数据帧,通过所述第一通信网络将多个所述数据帧按顺序发送给中转下位机;所述中转下位机,用于按顺序接收多个所述数据帧,获取每个所述数据帧中的下位机标识信息;并用于根据所述下位机标识信息判断出所述数据帧属于所述中转下位机的升级程序时,利用所述升级程序的所有数据帧进行本地的应用程序的升级;还用于在根据所述下位机标识信息判断出所述数据帧属于所述非中转下位机的升级程序时,将所述数据帧转发给所述非中转下位机;所述非中转下位机,用于利用所述升级程序的所有数据帧进行本地的应用程序的升级。
优选地,所述第一通信网络包括通过RS232总线、网口或者USB接口连接而成的网络,所述第二通信网络包括通过CAN总线或者RS485总线连接而成的网络。
优选地,所述上位机用于在向所述中转下位机发送每个所述数据帧之后,均向所述中转下位机查询数据帧的接收情况,并在所述中转下位机未成功接收时再次发送所述数据帧。
优选地,所述中转下位机用于根据每个数据帧中的数据帧标识信息,按照所述数据帧标识信息的顺序接收多个所述数据帧。
优选地,所述中转下位机或者所述非中转下位机的主芯片中的程序存储区域包括Bootloader区域、原应用程序存储区和新应用程序存储区,所述Bootloader区域和原应用程序存储区均设置有各自的升级标志位;其中,所述原应用程序存储区用于存储升级之前的应用程序,所述新应用程序存储区用于存储升级之后的应用程序;所述中转下位机或者所述非中转下位机的主芯片用于利用所述新应用程序存储区以及所述原应用存储区的和所述Bootloader区域的升级标志位,完成升级程序的升级。
优选地,所述中转下位机或者所述非中转下位机的主芯片用于将所述升级程序存储到所述新应用程序存储区,将所述原应用存储区的升级标志位设置为1,将所述Bootloader区域的升级标志位设置为1,并将所述应用程序的入口修改为所述新应用程序存储区的入口;在将所述新应用程序存储区中的内容复制到所述原应用程序存储区中后,将所述Bootloader区域的升级标志位清零。
与现有技术相比,本发明对于各下位机之间的通信网络与上位机和其中一个下位机之间的通信网络不同时,仅通过上位机的操作就可以对所有下位机进行升级,从而提高了下位机程序升级的效率,显著降低了程序升级作业的工作量。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要的附图做简单的介绍:
图1是本发明实施例的上位机对下位机进行程序升级的系统的结构示意图。
图2是本发明实施例的上位机向中转下位机发送升级程序的方法的流程示意图。
图3是本发明实施例的中转下位机的程序升级的方法的流程示意图。
图4是本发明实施例的非中转下位机的程序升级的方法的流程示意图。
图5是本发明实施例的下位机在运行应用程序时的流程示意图。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
本发明实施例的上位机对下位机进行程序升级的方法,适用于上位机对多台下位机进行程序升级。如图1所示,本发明实施例的上位机10对下位机进行程序升级的系统示意图中,该上位机10与该多台下位机中的其中一台通过第一通信网络直接相连,所有下位机之间通过第二通信网络连接在一起。该上位机10和与其直接相连的下位机21之间采用该第一通信网络进行通信,下位机之间均通过该第二通信网络进行通信。其中,该第一通信网络和第二通信网络并不相同。
优选地,上位机10与其中一台下位机21采用的第一通信网络为PC组网时常用的利用RS232总线、网口或者USB接口组成的网络,下位机之间采用的通信网络为利用CAN总线或者RS485总线组成的网络。可以理解,第一通信网络和第二通信网络的种类并不限于上述所列举的几种网络,实际运用中可以根据需求合理选择不同的通信网络,在基于本发明思想下的两种通信网络的变化,也应属于本发明的专利保护范围。
具体地,在需要为与上位机10直接相连的下位机21进行程序升级时,上位机10通过网口、RS232总线或者USB接口等通信方式将升级程序发送到该下位机21中,由该下位机21进行程序升级。在需要为不与上位机10直接相连的下位机22进行程序升级时,上位机10先通过网口、RS232总线或者USB接口的通信方式将升级程序发送到与该上位机10直接相连的下位机21中,再由与上位机10直接相连的该下位机21通过CAN总线或者RS485总线通信方式将升级程序发送到不与上位机10直接相连的下位机22中,由最终接收到该升级程序的下位机(不与上位机10直接相连的下位机22)进行升级。
为清晰起见,在下文中,将与上位机10直接相连的下位机21称之为中转下位机,将不与上位机10直接相连的下位机22称之为非中转下位机。如果没有特别说明,下文中的下位机通常指的是所有下位机,既包括中转下位机,也包括非中转下位机。
在本发明的实施例中,无论是给哪个下位机进行升级,上位机10均先将升级程序打包成多个数据帧,然后通过网口、RS232总线或者USB接口发送给中转下位机。这些数据帧中包含有下位机标识信息,数据帧标识信息,升级程序的数据内容,升级程序的指示位、结束位以及校验位等。在本发明的实施例中,下位机标识信息可以是下位机的编号。数据帧标识信息可以是数据帧的编号。
上位机10通过升级程序的指示位来对有关升级程序的数据帧进行标识。下位机(包括中转下位机和非中转下位机)收到数据帧之后,通过指示位来识别该数据帧是否为有关升级程序的。下位机在接收有关升级程序的数据帧时,通过数据帧标识信息来判断数据帧的接收是否按照预定顺序进行的,并通过结束位来确认有关升级程序的数据帧是否完整接收。校验位用于下位机对接收到的数据帧进行校验,判断接收到的数据帧是否有错。
对于中转下位机,根据所接收到的数据帧中的下位机标识信息判断出该数据帧是用来对自己的程序进行升级,则在本地利用所接收到的数据帧进行程序升级。如果根据所接收到的下位机标识信息判断出该数据帧是用来对非中转下位机的程序进行升级,则根据下位机标识信息将所接收到的数据帧通过第二通信网络发送给与下位机标识信息相对应的下位机。
如果中转下位机与非中转下位机之间的第二通信网络出现通信出错、程序升级成功或升级失败等,中转下位机都会对上位机10的相应查询进行针对性的应答。中转下位机作为两种通信网络的通信中转枢纽,对上位机10与非中转下位机之间的通信内容进行转发,并与上位机10进行直接通信。
本发明的实施例中,采用下位机编号来作为下位机的标识信息。并且,下位机编号可以固定在主控芯片程序中,也可以是确定在下位机中的硬件设置中。比如,不同的下位机,将拨档开关的拨码位置设置成不同,则各自的编号就不同。当然,也可以采用同时在主控芯片程序中固定结合在硬件设置中确定的方法。无论采用哪种编号确定方式,每个下位机的编号必须各不相同,具有唯一性,以相互区分。
基于嵌入式芯片上电时,总是先从程序存储区域中的Bootloader区域开始执行,然后才进入到应用程序存储区域。而芯片升级程序时,一般升级的是应用程序。本发明的技术方案,通过对应用程序内的升级标志位和Bootloader区域内的升级标志位B的判断来改变应用程序入口的方式,令下位机在完整收到升级程序后,可实现不断电的升级,并且为升级中出现断电的意外提供了可恢复的保障。
本发明的实施例中,将下位机的主芯片中的程序存储区域划分为三个部分,分别为Bootloader区域、原应用程序存储区和新应用程序存储区。芯片上电后开始运行的位置为Bootloader区域,这部分具有可以指定应用程序入口的功能。原应用程序存储区存储升级前的应用程序。新应用程序存储区存储接收所有数据帧后,重新整合好新的升级程序。中转下位机或者非中转下位机的主芯片,利用该新应用程序存储区以及该原应用存储区和所述Bootloader区域的升级标志位,即可完成升级程序的升级处理。
其中Bootloader区域和原应用程序存储区均设置有各自的升级标志位。当主芯片将升级程序存储到新应用程序存储区后,将原应用存储区的升级标志位A设置为1,此时主芯片强制复位进入Bootloader区域,将Bootloader区域中的升级标志位B设置为1,将应用程序的入口修改为新应用程序存储区的入口,并将新应用程序存储区的内容复制到原应用程序存储区中。然后,将Bootloader区域中的升级标志位B清零,完成应用程序的升级。在下次上电时,判断到Bootloader区域中的升级标志位B为0,则执行的应用程序入口是原应用程序存储区的入口,此时的原应用程序存储区中存储的是应用程序已经更新之后的版本。
本发明的实施例中,断电恢复机制的原理为:若主芯片在程序复制过程中出现断电的意外,在重新上电时,会根据Bootloader区域中被设置为1的升级标志位B来重新进行复制动作,继续进行应用程序的升级,直到复制完成,Bootloader区域中的升级标志位清零,才完整地实现了整个升级过程。
如图2所示,本发明实施例的上位机向中转下位机发送升级程序的方法流程中,主要包括如下步骤。
步骤S210,将存储在上位机中待发送的升级程序,根据上位机与中转下位机选择的通信网络不同,打包成对应网络可识别的多个数据帧。这里通信网络可以是PC机常用的RS232总线、网口或者USB接口等形成的网络。不同网络采用的数据帧格式不同,但各数据帧的内容除了包含升级程序的数据内容,还包含有下位机标识信息,数据帧标识信息,升级程序指示位、结束位和校验位等。其中下位机标识信息采用下位机编号,用于识别升级程序所对应的下位机。数据帧标识信息采用数据帧编号,用于鉴别数据帧在发送过程中是否发送中是否有丢包。升级程序的指示位用于标识该数据帧的内容是否为升级程序,升级程序的结束位用于向下位机指示是否已经完整发送有关该升级程序的所有数据帧,升级程序的校验位用于下位机对所有接收到的数据帧进行校验,以判断所有接收到的数据帧内容是否有误。
步骤S220,上位机按照为数据帧预设的发送顺序,将这些数据帧发送给中转下位机。该预设的发送顺序,是这些数据帧的数据帧标识信息;中转下位机接收时,也按照数据帧标识信息的顺序来接收这些数据帧。每次发完一个数据帧后,就向中转下位机发送查询请求以查询当前所放松的这个数据帧的接收情况。收到下位机已经成功收到当前发送的数据帧的应答后,上位机再继续发送下一个数据帧。本发明的实施例中,为数据帧预设的发送顺序,采用的是数据帧编号。中转下位机接收时,也按照数据帧编号的顺序来接收。如果上位机在发送一个数据帧Z之后,向下位机查询是否成功接收该数据帧Z时,超过预定时间仍然没有收到下位机的应答,则重新发送刚刚已经发送过的数据帧Z,直到收到下位机反馈已经成功收到该数据帧Z的应答后,再继续发送该数据帧Z的下一个数据帧,直至所有数据帧成功地发送到相应的下位机中。在这个过程中,对某一个数据帧,如果重发次数超过预设的数量阈值,则进行报警,向用户提示对某一个数据帧已经重发达到预设次数但可能仍然未成功发送给相应的下位机。前述的预定时间以及预设的数量阈值,根据具体的通信环境、通信速度以及下位机的数量等进行确定。
步骤S230,上位机发送完升级程序的所有数据帧之后,向对应的下位机查询升级状态,并为下位机的升级时间进行计时。上位机判断下位机的升级状态依据是下位机的升级标志位,当下位机的升级标志位为1时,表示下位机正在升级中,若升级标志位已清零则表示下位机已完成升级。
升级正常完成后,上位机将升级计时清零,本次升级成功。
如果超过预设的升级时间,上位机仍未收到下位机升级完成的状态,则生成报警信息进行报警,提示本次升级失败。此处预设的升级时间,主要是根据具体的通信环境、通信速度以及下位机的数量等进行确定。
图3为本发明实施例的中转下位机的程序升级的流程示意图。
步骤S310,中转下位机接收由上位机发送下来的升级程序的所有数据帧。
中转下位机每接收一个数据帧,就对数据帧编号进行对比,判断本次接收的数据帧的数据帧编号是否等于上一次接收的数据帧的数据帧编号+1,是则合法,并针对上位机的查询反馈接收成功的应答。上位机收到该接收成功的应答后就继续发送下一个数据帧。
如果中转下位机在进行数据帧编号的比对时,发现本次接收的数据帧的数据帧编号并不等于上一次接收的数据帧的数据帧编号+1,此时说明出现了通信错误。针对上位机的查询反馈接收出错的应答。上位机接收到接收出错的应答后,产生报警信息进行报警。
中转下位机根据升级程序的结束位判断出从上位机接收到升级程序的最后一个数据帧时,对升级程序的所有数据帧中数据进行校验,利用校验计算所得到的校验值与升级程序的校验位进行对比。
若校验值与升级程序的校验位一致,则说明升级程序的数据帧完全正确地接收了。若校验值与升级程序的校验位不一致,则表示升级程序的数据帧接收过程中出现了错误,此时主动向上位机上报接收出错的报告或者根据上位机的查询向上位机反馈接收出错的应答,上位机收到该接收出错的应答后,产生报警信息进行报警。本发明的实施例中,校验算法可以是奇偶校验或者CRC(循环冗余)校验等。
步骤S320,中转下位机根据所接收到的数据帧中所携带的下位机编号,判断升级程序是否为自身的升级程序。若该升级程序为中转下位机自身的升级程序,则转步骤S330,若不是中转下位机自身的升级程序,则该升级程序为非中转下位机的升级程序,转步骤S350。
转步骤S330,中转下位机将升级程序从数据帧中整合出来存储到本地的新应用程序存储区,将升级标志位设置为1。
步骤S340,中转下位机通过对自身主控芯片中Bootloader区域的设计,实现自身的程序升级,并反馈升级状态给上位机。
步骤S350,通过下位机之间的通信网络CAN总线或者RS485总线,依次将各数据帧转发给对应的非中转下位机,然后转步骤S360。
中转下位机向非中转下位机转发数据帧,还请参考上位机向中转下位机发送数据帧的内容。各非中转下位机都拥有自己的标识信息(本实施例中将下位机的编号作为下位机的标识信息),以确保各下位机之间均能有效区分。
步骤S360,中转下位机监测接收了各数据帧的非中转下位机的升级状态,并将升级成功与否的升级结果反馈给上位机。
对于接收中转下位机转发的数据帧的非中转下位机,在接收到自身的升级程序后,通过对自身主控芯片中的Bootloader区域,实现自身的程序升级,具体升级处理过程请参考下文图4所示的实施例,并将升级程序的标志清零,对上位机反馈下位机升级成功的应答。
如果非中转下位机升级失败,则中转下位机将非中转下位机升级失败的应答信息反馈给上位机,上位机生成报警信息并进行报警。如果中转下位机查询到非中转下位机成功升级,则完成升级,对上位机反馈非中转下位机升级成功的应答。
图4为本发明实施例的非中转下位机的程序升级的流程示意图。
步骤S410,基于CAN或者RS485的通信网络,接收中转下位机发下来的数据帧,判断数据帧所携带的下位机编号与自身的编号是否一致。
若所接收的数据帧所携带的下位机编号与自身的编号一致,则向中转下位机反馈数据帧接收成功的应答,并根据数据帧的升级标志位设置为1。非中转下位机从中转下位机接收升级程序的数据帧的接收过程,请参考中转下位机从上位机接收升级程序的数据帧的接收过程。对于接收正常(或者说接收成功)或者接收异常(或者说接收失败)的处理,是非中转下位机通过中转下位机向上位机进行应答。
步骤S420,非中转下位机从中转下位机处接收完升级程序的所有数据帧后,将升级程序从数据帧中整合出来,存储到本地的新应用程序存储区,将升级标志位设置为1。通过对自身主控芯片中的Bootloader区域的设计,实现自身的程序升级。
步骤S430,非中转下位机在完成本地的应用程序升级后,将升级程序标志清零,并通过中转下位机向上位机反馈本地的应用程序升级成功的应答。
图5是本发明实施例的下位机在运行应用程序时的流程示意图。
步骤S510,在执行应用程序时,不间断地对应用程序中的升级标志位进行监控。当监控到升级标志位为0时,不进行任何升级操作。当待升级的下位机已将升级程序存储到新应用程序存储区后,监测到升级标志位被设置为1时,应用程序跳转到芯片的Bootloader处。
步骤S520,下位机在Bootloader处将存储在Bootloader内的升级标志位B设置为1,并且修改应用程序的入口为新应用程序存储区的入口。
步骤S530,将新应用程序存储区中已经升级的应用程序复制到原应用程序存储区,复制完成后将Bootloader内的升级标志位B清零。
步骤S540,下位机跳转到新的应用程序入口执行升级后的应用程序。
在执行完上述处理后,由于升级后的应用程序中的升级标志位默认为0,所以,上位机通过中转下位机查询时,查询到的下位机的升级状态为完成,从而完成整个应用程序的升级过程。
本发明的技术方案中,存在着如下的断电恢复机制:当下位机上电时,正常情况下主芯片都会从Bootloader区域开始执行。Bootloader内的程序根据升级标志位B选择是否修改应用程序入口。若Bootloader中的应用程序是正常的升级之后的应用程序,则其内部的升级标志位B为0,Bootloader选择原应用程序存储区作为应用程序的入口,此时原应用程序存储区中的应用程序即为升级之后的应用程序,故下位机正常运行升级之后的应用程序即可。若主芯片在程序复制过程中出现了断电,在重新上电时,由于应用程序的升级因中途断电而未完成,Bootloader中的升级标志位仍为1状态,所以芯片会自动继续剩下的升级过程,直到应用程序完整地升级完成。
本发明的上位机对下位机进行程序升级的方法实施例以及上位机对下位机进行程序升级的系统实施例,均可以广泛应用于上位机与多个下位机组网的领域,比如电解质分析仪、生化分析仪、化学发光测定仪等,只要上位机与直接相连的中转下位机所使用的通信网络和不直接与上位机相连但与该中转下位机相连的各下位机(包括中转下位机)之间所采用的通信网络不同,均可应用本发明的技术方案。
本发明的实施例在两种通信网络并存的情况下,由直接发送或者转发的方式令下位机完整接收到上位机发出的升级程序,实现了不同通信方式下的跨越式升级。本发明的技术方案依靠对下位机主控芯片中Bootloader区域的设计,实现了下位机程序更新和断电自恢复更新,程序升级过程中出现断电的意外情,也能够保证再次上电后能继续进行程序更新。
虽然本发明所公开的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所公开的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (12)
1.一种上位机对下位机进行程序升级的方法,其中,所述下位机包括与所述上位机通过第一通信网络直接相连的中转下位机以及通过第二通信网络与所述中转下位机相连的非中转下位机,所述第一通信网络与所述第二通信网络不同;该方法包括:
所述上位机将升级程序打包成多个数据帧,通过所述第一通信网络将多个所述数据帧按顺序发送给中转下位机;
所述中转下位机按顺序接收多个所述数据帧,获取每个所述数据帧中的下位机标识信息;
根据所述下位机标识信息判断出所述数据帧属于所述中转下位机的升级程序时,利用所述升级程序的所有数据帧进行本地的应用程序的升级;
根据所述下位机标识信息判断出所述数据帧属于所述非中转下位机的升级程序时,将所述数据帧转发给所述非中转下位机;
所述非中转下位机利用所述升级程序的所有数据帧进行本地的应用程序的升级。
2.根据权利要求1所述的方法,其中:
所述第一通信网络包括通过RS232总线、网口或者USB接口连接而成的网络,所述第二通信网络包括通过CAN总线或者RS485总线连接而成的网络。
3.根据权利要求1所述的方法,其中:
所述上位机在向所述中转下位机发送每个所述数据帧之后,均向所述中转下位机查询数据帧的接收情况,并在所述中转下位机未成功接收时再次发送所述数据帧。
4.根据权利要求1所述的方法,其中,所述中转下位机按顺序接收多个所述数据帧,包括:
所述中转下位机根据每个数据帧中的数据帧标识信息,按照所述数据帧标识信息的顺序接收多个所述数据帧。
5.根据权利要求1所述的方法,其中:
所述中转下位机或者所述非中转下位机的主芯片中的程序存储区域包括Bootloader区域、原应用程序存储区和新应用程序存储区,所述Bootloader区域和原应用程序存储区均设置有各自的升级标志位;其中,所述原应用程序存储区用于存储升级之前的应用程序,所述新应用程序存储区用于存储升级之后的应用程序;
所述中转下位机或者所述非中转下位机的主芯片利用所述新应用程序存储区以及所述原应用存储区和所述Bootloader区域的升级标志位,完成升级程序的升级。
6.根据权利要求5所述的方法,其中,所述中转下位机或者所述非中转下位机的主芯片利用所述新应用程序存储区以及所述原应用存储区的和所述Bootloader区域的升级标志位,完成升级程序的升级,包括:
所述中转下位机或者所述非中转下位机的主芯片将所述升级程序存储到所述新应用程序存储区,将所述原应用存储区的升级标志位设置为1,将所述Bootloader区域的升级标志位设置为1,并将所述应用程序的入口修改为所述新应用程序存储区的入口;在将所述新应用程序存储区中的内容复制到所述原应用程序存储区中后,将所述Bootloader区域的升级标志位清零。
7.一种上位机对下位机进行程序升级的系统,其中,包括上位机、与所述上位机通过第一通信网络直接相连的中转下位机以及通过第二通信网络与所述中转下位机相连的非中转下位机,所述第一通信网络与所述第二通信网络不同;该系统中:
所述上位机,用于将升级程序打包成多个数据帧,通过所述第一通信网络将多个所述数据帧按顺序发送给中转下位机;
所述中转下位机,用于按顺序接收多个所述数据帧,获取每个所述数据帧中的下位机标识信息;并用于根据所述下位机标识信息判断出所述数据帧属于所述中转下位机的升级程序时,利用所述升级程序的所有数据帧进行本地的应用程序的升级;还用于在根据所述下位机标识信息判断出所述数据帧属于所述非中转下位机的升级程序时,将所述数据帧转发给所述非中转下位机;
所述非中转下位机,用于利用所述升级程序的所有数据帧进行本地的应用程序的升级。
8.根据权利要求7所述的系统,其中:
所述第一通信网络包括通过RS232总线、网口或者USB接口连接而成的网络,所述第二通信网络包括通过CAN总线或者RS485总线连接而成的网络。
9.根据权利要求7所述的系统,其中:
所述上位机用于在向所述中转下位机发送每个所述数据帧之后,均向所述中转下位机查询数据帧的接收情况,并在所述中转下位机未成功接收时再次发送所述数据帧。
10.根据权利要求7所述的系统,其中:
所述中转下位机用于根据每个数据帧中的数据帧标识信息,按照所述数据帧标识信息的顺序接收多个所述数据帧。
11.根据权利要求7所述的系统,其中:
所述中转下位机或者所述非中转下位机的主芯片中的程序存储区域包括Bootloader区域、原应用程序存储区和新应用程序存储区,所述Bootloader区域和原应用程序存储区均设置有各自的升级标志位;其中,所述原应用程序存储区用于存储升级之前的应用程序,所述新应用程序存储区用于存储升级之后的应用程序;
所述中转下位机或者所述非中转下位机的主芯片用于利用所述新应用程序存储区以及所述原应用存储区的和所述Bootloader区域的升级标志位,完成升级程序的升级。
12.根据权利要求11所述的系统,其中:
所述中转下位机或者所述非中转下位机的主芯片用于将所述升级程序存储到所述新应用程序存储区,将所述原应用存储区的升级标志位设置为1,将所述Bootloader区域的升级标志位设置为1,并将所述应用程序的入口修改为所述新应用程序存储区的入口;在将所述新应用程序存储区中的内容复制到所述原应用程序存储区中后,将所述Bootloader区域的升级标志位清零。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510601043.XA CN105224362A (zh) | 2015-09-18 | 2015-09-18 | 上位机对下位机进行程序升级的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510601043.XA CN105224362A (zh) | 2015-09-18 | 2015-09-18 | 上位机对下位机进行程序升级的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105224362A true CN105224362A (zh) | 2016-01-06 |
Family
ID=54993354
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510601043.XA Pending CN105224362A (zh) | 2015-09-18 | 2015-09-18 | 上位机对下位机进行程序升级的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105224362A (zh) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106445592A (zh) * | 2016-09-22 | 2017-02-22 | 杭州电子科技大学 | 一种基于wifi与can总线远程多机程序升级方法 |
CN106657332A (zh) * | 2016-12-22 | 2017-05-10 | 深圳市麦积电子科技有限公司 | 一种断点续传方法 |
CN106775588A (zh) * | 2016-11-30 | 2017-05-31 | 合肥科迈捷智能传感技术有限公司 | 一种基于主从处理器架构的固件升级方法 |
CN107368327A (zh) * | 2016-05-12 | 2017-11-21 | 广州汽车集团股份有限公司 | 对芯片进行刷写的方法以及系统 |
CN107763800A (zh) * | 2017-09-28 | 2018-03-06 | 四川长虹电器股份有限公司 | 提高中央空调系统多下位机巡检速度的方法 |
CN108989103A (zh) * | 2018-07-11 | 2018-12-11 | 珠海格力电器股份有限公司 | 设备升级方法、调试器、网络设备和网络系统 |
CN109710291A (zh) * | 2018-12-27 | 2019-05-03 | 中国科学院长春光学精密机械与物理研究所 | 一种航空光电载荷软件配置项远程升级方法 |
CN109725621A (zh) * | 2017-10-27 | 2019-05-07 | 北京精密机电控制设备研究所 | 一种基于1553b总线和can总线的二级总线程序在线烧写方法 |
CN109976767A (zh) * | 2017-12-27 | 2019-07-05 | 深圳市优必选科技有限公司 | 软件烧录方法和装置 |
CN110231798A (zh) * | 2019-05-21 | 2019-09-13 | 上海航天设备制造总厂有限公司 | 人机交互界面与可编程逻辑控制器的通讯交互应答机制 |
CN110460469A (zh) * | 2019-08-12 | 2019-11-15 | 视联动力信息技术股份有限公司 | 一种系统升级方法、装置和存储介质 |
CN111459517A (zh) * | 2020-03-30 | 2020-07-28 | 中国电子科技集团公司第五十四研究所 | 一种光纤环网架构下的主从设备在线程序升级方法 |
CN111880830A (zh) * | 2020-07-23 | 2020-11-03 | 中国航发控制系统研究所 | 分布式控制软件源代码的自动化编译链接和加载方法 |
CN112015452A (zh) * | 2020-09-10 | 2020-12-01 | 深圳市嘉昱机电有限公司 | 一种闸机系统的固件升级方法、装置及闸机系统 |
CN112311641A (zh) * | 2020-12-30 | 2021-02-02 | 深圳市法拉第电驱动有限公司 | 基于can通讯的上位机与下位机的通信方法及系统 |
CN112673586A (zh) * | 2020-12-08 | 2021-04-16 | 华为技术有限公司 | 数据包处理方法和装置 |
CN113360163A (zh) * | 2021-04-19 | 2021-09-07 | 深圳市创成微电子有限公司 | 多芯片装置及芯片升级方法 |
CN113360162A (zh) * | 2021-04-19 | 2021-09-07 | 深圳市创成微电子有限公司 | 多芯片装置及芯片升级方法 |
CN117453256A (zh) * | 2023-12-22 | 2024-01-26 | 季华实验室 | 串联式多单片机升级方法及升级系统 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050024901A (ko) * | 2003-09-05 | 2005-03-11 | 현대자동차주식회사 | 캔 통신을 이용한 제어기 프로그램 설치방법 |
CN101557583A (zh) * | 2009-03-19 | 2009-10-14 | 珠海银邮光电技术发展股份有限公司 | 直放站设备嵌入式软件的远程升级与版本切换方法 |
CN101673202A (zh) * | 2008-09-09 | 2010-03-17 | 比亚迪股份有限公司 | 一种程序烧写方法和系统以及一种待烧写装置和烧写装置 |
CN101814036A (zh) * | 2010-03-09 | 2010-08-25 | 广州市聚晖电子科技有限公司 | 一种rf远程升级方法及系统 |
CN102075564A (zh) * | 2010-12-23 | 2011-05-25 | 李华嵩 | 一种远程软件升级技术方法 |
CN102591690A (zh) * | 2011-12-27 | 2012-07-18 | 南京理学工程数据技术有限公司 | 一种嵌入式系统远程升级方法 |
CN102868734A (zh) * | 2012-08-30 | 2013-01-09 | 长春迪瑞医疗科技股份有限公司 | 一种用于全自动生化分析仪的在线升级方法及其系统 |
CN103019788A (zh) * | 2012-12-14 | 2013-04-03 | 上海邮政科学研究院 | 一种基于can总线的远程在线升级方法 |
CN104125375A (zh) * | 2013-04-27 | 2014-10-29 | 深圳市载德光电技术开发有限公司 | 多媒体传输矩阵架构 |
CN104346179A (zh) * | 2013-07-29 | 2015-02-11 | 北京同步科技有限公司 | 通过can总线远程升级的嵌入式系统及方法 |
-
2015
- 2015-09-18 CN CN201510601043.XA patent/CN105224362A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050024901A (ko) * | 2003-09-05 | 2005-03-11 | 현대자동차주식회사 | 캔 통신을 이용한 제어기 프로그램 설치방법 |
CN101673202A (zh) * | 2008-09-09 | 2010-03-17 | 比亚迪股份有限公司 | 一种程序烧写方法和系统以及一种待烧写装置和烧写装置 |
CN101557583A (zh) * | 2009-03-19 | 2009-10-14 | 珠海银邮光电技术发展股份有限公司 | 直放站设备嵌入式软件的远程升级与版本切换方法 |
CN101814036A (zh) * | 2010-03-09 | 2010-08-25 | 广州市聚晖电子科技有限公司 | 一种rf远程升级方法及系统 |
CN102075564A (zh) * | 2010-12-23 | 2011-05-25 | 李华嵩 | 一种远程软件升级技术方法 |
CN102591690A (zh) * | 2011-12-27 | 2012-07-18 | 南京理学工程数据技术有限公司 | 一种嵌入式系统远程升级方法 |
CN102868734A (zh) * | 2012-08-30 | 2013-01-09 | 长春迪瑞医疗科技股份有限公司 | 一种用于全自动生化分析仪的在线升级方法及其系统 |
CN103019788A (zh) * | 2012-12-14 | 2013-04-03 | 上海邮政科学研究院 | 一种基于can总线的远程在线升级方法 |
CN104125375A (zh) * | 2013-04-27 | 2014-10-29 | 深圳市载德光电技术开发有限公司 | 多媒体传输矩阵架构 |
CN104346179A (zh) * | 2013-07-29 | 2015-02-11 | 北京同步科技有限公司 | 通过can总线远程升级的嵌入式系统及方法 |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107368327A (zh) * | 2016-05-12 | 2017-11-21 | 广州汽车集团股份有限公司 | 对芯片进行刷写的方法以及系统 |
CN106445592A (zh) * | 2016-09-22 | 2017-02-22 | 杭州电子科技大学 | 一种基于wifi与can总线远程多机程序升级方法 |
CN106775588A (zh) * | 2016-11-30 | 2017-05-31 | 合肥科迈捷智能传感技术有限公司 | 一种基于主从处理器架构的固件升级方法 |
CN106657332A (zh) * | 2016-12-22 | 2017-05-10 | 深圳市麦积电子科技有限公司 | 一种断点续传方法 |
CN107763800A (zh) * | 2017-09-28 | 2018-03-06 | 四川长虹电器股份有限公司 | 提高中央空调系统多下位机巡检速度的方法 |
CN109725621A (zh) * | 2017-10-27 | 2019-05-07 | 北京精密机电控制设备研究所 | 一种基于1553b总线和can总线的二级总线程序在线烧写方法 |
CN109976767A (zh) * | 2017-12-27 | 2019-07-05 | 深圳市优必选科技有限公司 | 软件烧录方法和装置 |
CN108989103B (zh) * | 2018-07-11 | 2020-08-21 | 珠海格力电器股份有限公司 | 设备升级方法、调试器、网络设备和网络系统 |
CN108989103A (zh) * | 2018-07-11 | 2018-12-11 | 珠海格力电器股份有限公司 | 设备升级方法、调试器、网络设备和网络系统 |
CN109710291A (zh) * | 2018-12-27 | 2019-05-03 | 中国科学院长春光学精密机械与物理研究所 | 一种航空光电载荷软件配置项远程升级方法 |
CN109710291B (zh) * | 2018-12-27 | 2021-02-12 | 中国科学院长春光学精密机械与物理研究所 | 一种航空光电载荷软件配置项远程升级方法 |
CN110231798A (zh) * | 2019-05-21 | 2019-09-13 | 上海航天设备制造总厂有限公司 | 人机交互界面与可编程逻辑控制器的通讯交互应答机制 |
CN110460469A (zh) * | 2019-08-12 | 2019-11-15 | 视联动力信息技术股份有限公司 | 一种系统升级方法、装置和存储介质 |
CN110460469B (zh) * | 2019-08-12 | 2022-01-07 | 视联动力信息技术股份有限公司 | 一种系统升级方法、装置和存储介质 |
CN111459517A (zh) * | 2020-03-30 | 2020-07-28 | 中国电子科技集团公司第五十四研究所 | 一种光纤环网架构下的主从设备在线程序升级方法 |
CN111880830A (zh) * | 2020-07-23 | 2020-11-03 | 中国航发控制系统研究所 | 分布式控制软件源代码的自动化编译链接和加载方法 |
CN112015452A (zh) * | 2020-09-10 | 2020-12-01 | 深圳市嘉昱机电有限公司 | 一种闸机系统的固件升级方法、装置及闸机系统 |
CN112015452B (zh) * | 2020-09-10 | 2024-04-12 | 深圳市嘉昱机电有限公司 | 一种闸机系统的固件升级方法、装置及闸机系统 |
CN112673586A (zh) * | 2020-12-08 | 2021-04-16 | 华为技术有限公司 | 数据包处理方法和装置 |
CN112311641A (zh) * | 2020-12-30 | 2021-02-02 | 深圳市法拉第电驱动有限公司 | 基于can通讯的上位机与下位机的通信方法及系统 |
CN113360163A (zh) * | 2021-04-19 | 2021-09-07 | 深圳市创成微电子有限公司 | 多芯片装置及芯片升级方法 |
CN113360162A (zh) * | 2021-04-19 | 2021-09-07 | 深圳市创成微电子有限公司 | 多芯片装置及芯片升级方法 |
CN117453256A (zh) * | 2023-12-22 | 2024-01-26 | 季华实验室 | 串联式多单片机升级方法及升级系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105224362A (zh) | 上位机对下位机进行程序升级的方法及系统 | |
CN106569847B (zh) | 一种用于车载系统基于移动网络实现iap远程升级的方法 | |
CN113687853B (zh) | 车辆升级控制方法及计算机存储介质 | |
US10880404B2 (en) | On-vehicle control device and on-vehicle control device information update system | |
CN107820603A (zh) | 一种固件更新方法及控制器 | |
CN101593119B (zh) | 一种独占闪存组合设备空中固件升级方法及装置 | |
CN105426198A (zh) | 车载双控制芯片系统及其辅助控制芯片程序更新方法 | |
CN107534592B (zh) | 用于保护数据总线收发器的配置数据的方法、数据总线收发器和数据总线系统 | |
US10469620B2 (en) | Method for transferring a new software version to at least one electricity meter via a communication network | |
CN103414741A (zh) | 一种远程升级plc的方法和系统 | |
CN102840992B (zh) | 一种基于星上网的星载自测试方法 | |
CN103942080A (zh) | 电子设备信息传输方法 | |
CN107517110B (zh) | 一种分布式系统中单板配置自恢复方法及装置 | |
CN105159109B (zh) | 一种plc控制器远程升级系统 | |
CN110289902A (zh) | 一种星上软件的更新系统 | |
CN111427602B (zh) | 一种vpx机箱的智能平台管理控制器在线升级固件的方法 | |
CN109388603A (zh) | 状态信息获取和反馈方法、装置、介质、终端及示教器 | |
CN109992280A (zh) | 一种嵌入式软件升级的方法、终端装置及存储装置 | |
CN116107618A (zh) | 一种流量计控制器升级方法、计算机设备及存储介质 | |
CN112925546B (zh) | 一种防止车载ecu刷新出错的多级校验方法及系统 | |
CN109002319B (zh) | 一种基于lora协议的补丁升级方法、装置和系统 | |
CN102591688B (zh) | 一种心电图机插件接入方法及系统 | |
CN112433968A (zh) | 一种控制器共享同步方法和装置 | |
CN111008092A (zh) | 一种焊机通信管理方法及焊机 | |
CN110749032B (zh) | 运行控制方法、装置、空调器以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160106 |
|
RJ01 | Rejection of invention patent application after publication |