CN110457058A - 控制节点在线升级方法、装置、上位机、系统及电子设备 - Google Patents
控制节点在线升级方法、装置、上位机、系统及电子设备 Download PDFInfo
- Publication number
- CN110457058A CN110457058A CN201910737399.4A CN201910737399A CN110457058A CN 110457058 A CN110457058 A CN 110457058A CN 201910737399 A CN201910737399 A CN 201910737399A CN 110457058 A CN110457058 A CN 110457058A
- Authority
- CN
- China
- Prior art keywords
- data
- host computer
- control node
- upgrading
- program
- 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
- 238000000034 method Methods 0.000 title claims abstract description 73
- 238000004891 communication Methods 0.000 claims abstract description 16
- 230000005540 biological transmission Effects 0.000 claims description 21
- 238000012795 verification Methods 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 8
- 238000005516 engineering process Methods 0.000 abstract description 14
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 14
- 230000008569 process Effects 0.000 description 13
- 238000003860 storage Methods 0.000 description 10
- 230000001174 ascending effect Effects 0.000 description 5
- 230000009191 jumping Effects 0.000 description 5
- 230000001052 transient effect Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000002591 computed tomography Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000035800 maturation Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
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
Abstract
本申请提供一种控制节点在线升级方法、装置、上位机、系统及电子设备。该方法包括:接收擦除指令,根据擦除指令对Application区的应用程序进行擦除,在完成擦除后向上位机发送数据请求;接收升级数据并将升级数据存入Application区,以完成在线升级。本申请实施例通过IAP技术将存储器分为Bootloader区和Application区,通过IAP程序实现与上位机的通信,以及将应用程序进行擦除,并将升级数据写入Application区中,从而可以不需要将外壳拆除就能够实现对控制节点进行升级,提高了对程序升级的效率。
Description
技术领域
本申请涉及应用编程技术领域,具体而言,涉及一种控制节点在线升级方法、装置、上位机、系统及电子设备。
背景技术
随着医疗技术的发展,计算机断层摄影(Computed Tomography,CT)设备越来越受到医院和设备厂家的重视,CT设备的核心控制技术业发展的越来越成熟,常常需要对各部件控制节点程序进行升级、更新。传统情况下,如果需要针对控制节点进行程序更新,需要工程师到生产现场或医院,通过下载设备进行程序烧录,CT设备总线上的节点数较多且分散,绝大部分情况需要拆除外罩或硬件电路板,从而降低了进行程序升级的效率。
发明内容
有鉴于此,本申请实施例的目的在于提供一种控制节点在线升级方法、装置、上位机、系统及电子设备,以解决上述程序升级效率低的技术问题。
第一方面,本申请实施例提供了一种控制节点在线升级方法,应用于医疗设备的控制节点,所述控制节点的存储器包括启动装载Bootloader区和应用Application区,所述Bootloader区存储在应用编程IAP程序,所述Application区存储应用程序,所述方法包括:
接收上位机发送的擦除指令,通过所述IAP程序响应所述擦除指令,以对所述Application区的所述应用程序进行擦除;
在完成擦除后向所述上位机发送数据请求;
接收所述上位机发送的升级数据,并将所述升级数据存入所述Application区,以完成对控制节点的在线升级。
本申请实施例通过IAP技术将控制节点的存储器分为Bootloader区和Application区,通过Bootloader区中的IAP程序实现与上位机的通信,以及将Application区的应用程序进行擦除,并将上位机发送的升级数据,写入Application区中,从而可以不需要将医疗设备的外壳拆除就能够实现在医疗设备中的控制节点进行升级,提高了对程序升级的效率。
进一步地,在接收上位机发送的擦除指令之前,所述方法还包括:在接收到所述上位机发送的升级指令后,向所述上位机发送所述IAP程序的状态报文和握手报文,以保证当前正在运行所述IAP程序。
进一步地,所述接收所述上位机发送的升级数据,并将所述升级数据存入所述Application区,包括:
接收所述上位机发送的所述升级数据,所述升级数据包括代码数据和第一验证数据;
根据所述代码数据生成第二验证数据,若所述第一验证数据与所述第二验证数据相等,则将所述代码数据存入所述Application区;所述第一验证数据和所述第二验证数据用于验证所述代码数据的正确性和完整性。
本申请实施例中,当控制节点获取到升级数据后,根据代码数据生成第二验证数据,然后将第二验证数据与第一验证数据进行匹配,如果二者一致,则说明代码数据为正确且在传输过程中没有缺失数据,从而保证了写入到Application区的代码为正确完整的。
进一步地,在向所述上位机发送在应用编程IAP程序的状态报文和握手报文之前,所述方法还包括:
接收所述上位机发送的版本号查询指令,并向所述上位机发送所述应用程序的版本号,以使所述上位机判断所述应用程序是否为最新版本。
本申请实施例在控制节点上电后接收上位机发送的版本号查询指令,并将存储在Bootloader区的应用程序的当前版本号发送至上位机,从而使得上位机判断是否需要对控制节点中的应用程序进行升级,当需要升级时,能够及时对其进行升级。
进一步地,在向所述上位机发送在应用编程IAP程序的状态报文和握手报文之前,所述方法还包括:
向所述上位机发送上线报文,若在预设时间段内未收到所述升级指令,则执行所述Application区的应用程序。
本申请实施例中当控制节点上电后,会留给用户是否进行升级的考虑时间,若在预设时间段内用户未选择升级,那么从Bootloader区跳转到Application区,去执行应用程序。
进一步地,在接收所述上位机发送的升级数据,并将所述升级数据存入所述Application区之后,所述方法还包括:
判断接收到的升级数据是否为最后一个数据包,若不是,则再次向上位机发送数据请求,直至接收到最后一个升级数据为止。
在进行程序升级时,由于一个完整的升级包的数据量较大,因此可以通过对升级包进行切分,每次传输一个小的数据包,因此,控制节点需要判断接收到的升级数据是否为最后一个数据包,如果不是则再次向上位机发送数据请求,以保证获取到完整的升级包。
第二方面,本申请实施例提供了一种控制节点在线升级方法,包括:
向控制节点发送擦除指令,以使所述控制节点通过IAP程序对Application区的应用程序进行擦除处理;
接收所述控制节点发送的数据请求,并向所述控制节点发送升级数据,以使所述控制节点将所述升级数据存入所述Application区,以完成在线升级。
本申请实施例通过控制节点中的IAP程序与上位机进行通信,上位机将升级数据发送至控制节点,并通过IAP程序实现对Application区进行擦除以及写入升级数据,从而可以不需要将医疗设备的外壳拆除就能够实现在医疗设备中的控制节点进行升级,提高了对程序升级的效率。
进一步地,在向控制节点发送擦除指令之前,所述方法还包括:
上位机向控制节点发送升级指令;
接收所述控制节点发送的IAP程序的状态报文和握手报文,并根据所述状态报文和所述握手报文进行握手操作;
其中,在完成握手之后执行向控制节点发送擦除指令的步骤。
本申请实施例中在向控制节点发送擦除指令之前,先确保控制节点中烧录有IAP程序,并且控制节点当前能够执行IAP程序,以防止上位机发送无效指令。
第三方面,本申请实施例提供一种在线升级装置,包括:
数据擦除模块,用于接收上位机发送的擦除指令,通过IAP程序响应所述擦除指令,以对Application区的应用程序进行擦除;
请求发送模块,用于在完成擦除后向上位机发送数据请求;
数据接收模块,用于接收所述上位机发送的升级数据,并将所述升级数据存入所述Application区,以完成对控制节点的在线升级。
第四方面,本申请实施例提供一种上位机,包括:
擦除指令发送模块,用于向控制节点发送擦除指令,以使所述控制节点通过IAP程序对Application区的应用程序进行擦除处理;
数据发送模块,用于接收所述控制节点发送的数据请求,并向所述控制节点发送升级数据,以使所述控制节点将所述升级数据存入所述Application区,以完成在线升级。
第五方面,本申请实施例提供一种在线升级系统,包括第三方面所述的升级装置以及第四方面所述的上位机。
第六方面,本申请实施例提供一种电子设备,包括:处理器、存储器和总线,其中,
所述处理器和所述存储器通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面或第二方面的方法步骤。
第七方面,本申请实施例提供一种非暂态计算机可读存储介质,包括:
所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面或第二方面的方法步骤。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种控制节点的在线升级方法流程示意图;
图2为本申请实施例提供的上位机与CT设备各控制节点的架构图;
图3为本申请实施例提供的另一种控制节点在线升级方法流程示意图;
图4为本申请实施例提供的又一种控制节点在线升级方法流程示意图;
图5为本申请实施例提供的一种在线升级装置结构示意图;
图6为本申请实施例提供的上位机结构示意图;
图7为本申请实施例提供的一种在线升级系统结构示意图;
图8为本申请实施例提供的电子设备实体结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
医疗设备中,以CT设备为例,有多个控制节点,每个控制节点中都有其对应的存储器,或者也可以为控制节点外接存储器,该存储器可以为闪存(flash memory),利用在应用中编程(In Application Programming,IAP)技术可以将存储器映射为两个区域,即启动装载(Bootloader)区和应用(Application)区,在Bootloader区中存储有IAP程序,在Application区中存储有应用程序。其中,IAP程序可以是CT设备在出厂之前烧录进去,也可以是在出厂之后,需要利用IAP技术进行升级时,烧录到Bootloader区中,之后再升级可以不再重新烧录。控制节点可以通过调用Bootloader区中的IAP程序,对程序存储器的指定段进行读/写操作,从而实现对目标程序的修改。IAP程序具备两种功能,其一为通过某种通信方式接收程序或数据的功能,该通信方式包括通用串行总线(Universal Serial Bus,USB)通信、通用同步/异步串行接收/发送器(Universal Synchronous/AsynchronousReceiver/Transmitter,USART)通信和控制器局域网络(Controller Area Network,CAN)通信等;其二为对存储器的擦写功能。存储在Application区中的应用程序为实现控制节点功能的功能性程序。例如:该控制节点的功能为发出X射线,则当执行存储在Application区中的应用程序时,该控制节点能够发出X射线。
应当说明的是,除了CT设备以外,还可以是其他能够实现上述通讯方式进行通讯的设备,例如:平板探测器等。
图1为本申请实施例提供的上位机与CT设备各控制节点构成的架构图,如1所示,上位机101(例如:个人计算机(Personal Computer,PC))中设置的通信接口为USB-CAN接口,USB-CAN接口是一款用于上位机的USB形式的CAN接口卡,在CT设备的每个控制节点102中设置有CAN接口,上位机通过CAN总线与CT设备上的每个控制节点的CAN接口实现通信。
应当说明的是,图1中的架构只是一种示例,控制节点可以为只有一个,并且上位机101和控制节点102还可以是该架构的变型,本申请实施例对此不作具体限定。
在图1的架构基础上,本申请实施例提供了一种对控制节点进行在线升级的方法,该方法也可以用于其他上位机和控制节点构成的其他架构,方法如下:
图2为本申请实施例提供的一种控制节点的在线升级方法流程示意图,如图2所示,该方法包括:
步骤201:接收所述上位机发送的擦除指令,通过所述IAP程序响应所述擦除指令,以对所述Application区的所述应用程序进行擦除。
在具体的实施过程中,上位机可以为电脑,也可以为其他具备USB、USART和CAN等通信功能的电子设备。当某个控制节点的应用程序需要升级时,上位机向该控制节点发送擦除指令,控制节点在接收到该擦除指令后,判断是否需要进行指令跳转,若当前正在执行Application区的应用程序,则需要进行指令跳转,以执行IAP程序;若当前正在执行Bootloader区的IAP程序,则不需要进行指令跳转。当控制节点确定处于Bootloader区之后,通过预先烧录在Bootloader区的IAP程序将Application区的应用程序进行擦除处理。
步骤202:在完成擦除后向所述上位机发送数据请求。
在具体的实施过程中,在控制节点将Application区的应用程序擦除完成后,向上位机发送数据请求,以告知上位机已完成了擦除,并可以发送升级数据。
应当说明的是,如果上位机未在预设时间内收到数据请求,则说明控制节点无法通过IAP技术实现在线升级。另外,上位机在向控制节点发送擦除指令时,可以先选择对应控制节点的Bin文件中的升级数据,并判断在Bin文件中是否有正确的升级数据,若有正确的升级数据,则发送擦除指令;若Bin文件中没有正确的升级数据,而上位机发送了擦除指令,那么会导致控制节点由于没有正确的应用程序而无法工作。
步骤203:接收所述上位机发送的升级数据,并将所述升级数据存入所述Application区,以完成对控制节点的在线升级。
在具体的实施过程中,升级数据为相对于Application区的应用程序来说版本较新的应用程序,因此,该升级数据用于替换原来存储在Application区的应用程序,以实现对控制节点的在线升级。可以理解的是,该升级数据存储于上位机的二进制文件(即Bin文件)中,在上位机中对每个控制节点都存有对应的Bin文件。本申请实施例通过IAP技术将控制节点的存储器分为Bootloader区和Application区,通过Bootloader区中的IAP程序实现与上位机的通信,以及将Application区的应用程序进行擦除,并将上位机发送的升级数据,写入Application区中,从而可以不需要将CT设备的外壳拆除就能够实现在CT设备中的控制节点进行升级,提高了对程序升级的效率。
在上述实施例的基础上,在接收上位机发送的擦除指令之前,所述方法还包括:
在接收到上位机发送的升级指令后,向所述上位机发送所述IAP程序的状态报文和握手报文,以保证当前正在运行所述IAP程序。
在具体的实施过程中,当有CT设备中某个控制节点需要进行程序升级时,上位机向该控制节点发送升级指令,控制节点向上位机发送IAP程序的状态报文和握手报文。其中,IAP程序的状态报文是用来表征该控制节点的Bootloader区中是否烧录有IAP程序,例如:可以用“0”表示Bootloader区中未烧录IAP程序,用“1”表示Bootloader区中烧录有IAP程序。握手报文的作用是告知上位机当前正在运行IAP程序。当上位机接收到控制节点发送的状态报文和握手报文后,获知控制节点当前已经跳转至Bootloader区,并且该Bootloader区中包括有IAP程序,上位机向控制节点发送应答消息,以告知控制节点握手成功。在握手成功后,控制节点执行步骤201的操作。
应当说明的是,控制节点在接收到上位机发送的升级指令时,可能正在运行Bootloader区的IAP程序,也可以正在运行Application区的应用程序,若正在运行Application区的应用程序,则停止该控制节点的当前运动,并进入待机状态,并且跳转到Bootloader区,执行IAP程序。在上述实施例的基础上,所述接收所述上位机发送的升级数据,并将所述升级数据存入所述Application区,包括:
接收所述上位机发送的所述升级数据,所述升级数据包括代码数据和第一验证数据;
根据所述代码数据生成第二验证数据,若所述第一验证数据与所述第二验证数据相等,则将所述代码数据存入所述Application区;所述第一验证数据和所述第二验证数据用于验证所述代码数据的正确性和完整性。
在具体的实施过程中,控制节点在接收到上位机发送的升级数据后,可以从升级数据中获取代码数据,可以理解的是,代码数据即为需要向控制节点的Application区写入的数据。为了验证接收到的代码数据的正确性和完整性,控制节点可以根据代码数据生成对应的第二验证数据,然后将第一验证数据与第二验证数据进行比对,当上位机发出的代码数据与控制节点接收到的代码数据不同时,其第一验证数据与第二验证数据也会不同;如果第一验证数据与第二验证数据相等,则说明接收到的代码数据与上位机发出的代码数据一致,在传输过程中没有被丢失或者篡改,可以将该代码数据存储Application区。由此可以看出,第一验证数据和第二验证数据是用来验证代码数据的正确性和完整性。应当说明的是,第一验证数据和第二验证数据可以为循环冗余校验码(Cyclic RedundancyCheck,CRC),也可以为哈希值,还可以为其他形式的校验码,本申请实施例对此不作具体限定。
本申请实施例中,当控制节点获取到升级数据后,根据代码数据生成第二验证数据,然后将第二验证数据与第一验证数据进行匹配,如果二者一致,则说明代码数据为正确且在传输过程中没有缺失数据,从而保证了写入到Application区的代码为正确完整的。
在上述实施例的基础上,在向所述上位机发送在应用编程IAP程序的状态报文和握手报文之前,所述方法还包括:
接收所述上位机发送的版本号查询指令,并向所述上位机发送所述应用程序的版本号,以使所述上位机判断所述应用程序是否为最新版本。
在具体的实施过程中,在对控制节点中的应用程序升级之前,可以通过上位机上控制节点发送版本号查询指令,该版本号查询指令用于获取控制节点中存储的应用程序的版本号。当控制节点接收到该版本号查询指令后,向上位机发送应用程序的版本号,上位机在接收到版本号之后,与该控制节点对应的Bin文件中存储的应用程序的版本号进行比较,若Bin文件中存储的应用程序的版本号比接收到的版本号高,则确定该控制节点需要进行升级,Bin文件中存储的应用程序为升级数据。若Bin文件中存储的应用程序的版本号比接收到的版本号一致,则说明该控制节点中Application区存储的应用程序为最新版本。
本申请实施例在控制节点上电后接收上位机发送的版本号查询指令,并将存储在Bootloader区的应用程序的当前版本号发送至上位机,从而使得上位机判断是否需要对控制节点中的应用程序进行升级,当需要升级时,能够及时对其进行升级。
在上述实施例的基础上,在向所述上位机发送在应用编程IAP程序的状态报文和握手报文之前,所述方法还包括:
向所述上位机发送上线报文,若在预设时间段内未收到所述升级指令,则执行所述Application区的应用程序。
在具体的实施过程中,当控制节点上电复位后,位于Bootloader区的IAP程序首先运行,初始化配置完成后,发送IAP程序状态报文,通知上位机该控制节点的IAP程序上线,上位机可以初步查看是否有控制节点的应用程序需要升级,若在预设时间段内上位机没有发送相关报文操作指令,则自动跳转到Application区执行正常的应用程序。应当说明的是,预设时间段可以预先设定,例如1分钟,2分钟等。
本申请实施例中当控制节点上电后,会留给用户是否进行升级的考虑时间,若在预设时间段内用户未选择升级,那么从Bootloader区跳转到Application区,去执行应用程序,一方面给上位机提供是否升级选择的时间,另一方面不需要多次进行程序的跳转。
在上述实施例的基础上,在接收所述上位机发送的升级数据,并将所述升级数据存入所述Application区之后,所述方法还包括:
判断接收到的升级数据是否为最后一个数据包,若不是,则再次向上位机发送数据请求,直至接收到最后一个升级数据为止。
在具体的实施过程中,一个完整的应用程序的数据量可能会比较大,因此在传输过程中需要将应用程序切分成多个数据包,一个数据包的数据大小可以为1024个字节。若一个完整的应用程序的数据量较小时,则可以使用一个数据包传输。因此,当由多个数据包时,该数据包是逐个进行发送,因此,控制节点在收到升级数据后,需要判断该升级数据是否为最后一个数据包,如果不是最后一个数据包,则继续向上位机发送数据请求,如果是最后一个数据包,则将最后一个数据包存储Application区之后完成在线升级。
应当说明的是,可以在随后一个升级数据中添加结束符,例如:结束符可以为“%%”,当然还可以为其他预先约定好的符号,本申请实施例对此不作具体限定。在控制节点判断是否为最后一个数据包时,可以判断该升级数据中是否携带有结束符,若有结束符则说明为最后一个数据包。
因此,控制节点判断接收到的升级数据是否为最后一个数据包,如果不是则再次向上位机发送数据请求,以保证获取到完整的升级包。
图3为本申请实施例提供的另一种控制节点在线升级方法流程示意图,如图3所示,该方法包括:
步骤301:上位机向控制节点发送升级指令。
在具体的实施过程中,当某个控制节点需要进行在线升级时,上位机向该控制节点发送升级指令,以告知该控制节点需要进行程序升级。
步骤302:接收所述控制节点发送的IAP程序的状态报文和握手报文,并根据所述状态报文和所述握手报文进行握手操作。
在具体的实施过程中,上位机接收控制节点发送的IAP程序的状态报文和握手报文,其中,IAP程序的状态报文用于表征在控制节点的Bootloader区中是否烧录有IAP程序。握手报文用于表征控制节点是否已跳转至Bootloader区。在完成握手之后,上位机可以向控制节点发送肯定应答响应,以告知控制节点握手成功。
步骤303:在完成握手之后向所述控制节点发送擦除指令,以使所述控制节点通过IAP程序对Application区的应用程序进行擦除处理。
在具体的实施过程中,上位机在完成与控制节点的握手之后向控制节点发送擦除指令。基于IAP技术的原理,其能够对Application区存储的内容进行读写操作,因此控制节点在接收到擦除指令后,对Application区的应用程序进行擦除处理。
应当说明的是,上位机在向控制节点发送擦除指令时,可以先判断在Bin文件中是否有正确的升级数据,若有正确的升级数据,则发送擦除指令,从而避免了控制节点由于没有正确的应用程序而无法工作的问题。
步骤304:接收所述控制节点发送的数据请求,并向所述控制节点发送升级数据,以使所述控制节点将所述升级数据存入所述Application区,以完成在线升级。
在具体的实施过程中,当控制节点完成擦除后,控制节点向上位机发送数据请求,以表示已完成擦除操作,并请求升级数据。上位机在接收到数据请求后,向控制节点发送升级数据,使得控制节点在接收到升级数据之后,将升级数据存储到Application区中。
应当说明的是,在对控制节点进行升级时,也可以不执行步骤301和步骤302,而是直接执行步骤303,即上位机向控制节点发送擦除指令,如果上位机在预设时间内没有接收到控制节点发送的数据请求,则说明控制节点当前无法通过IAP技术进行在线升级。其中无法在线升级的原因可能是控制节点中没有预先烧录IAP程序,也可能是控制节点当前正在执行Application区的应用程序,而没有跳转至Bootloader区,还可能是其他原因。如果上位机在预设时间内收到了控制节点发送的数据请求,则说明控制节点能够通过IAP技术进行在线升级,并且已经将Application区的应用程序擦除。
本申请实施例通过控制节点中的IAP程序与上位机进行通信,上位机将升级数据发送至控制节点,并通过IAP程序实现对Application区进行擦除以及写入升级数据,从而可以不需要将CT设备的外壳拆除就能够实现在CT设备中的控制节点进行升级,提高了对程序升级的效率。
图4为本申请实施例提供的又一种控制节点在线升级方法流程示意图,如图4所示,该方法包括:
步骤401:烧录IAP程序;CT设备在出厂之前或者在第一次进行在线升级之前,利用IAP技术将控制节点中的存储器映射为两个区域,即Bootloader区和Application区,并在Bootloader区中烧录IAP程序,执行步骤402;
步骤402:CT设备上电;
步骤403:控制节点复位,进入IAP程序;在CT设备上电之后,CT设备的各控制节点进行复位,首先会进入Bootloader区运行IAP程序,执行步骤404;
步骤404:发送IAP程序的状态报文;初始化配置完成后,发送IAP程序状态报文,通知上位机该节点IAP程序上线,执行步骤405;
步骤405:是否与上位机握手;判断在预设时间段内是否收到的上位机发送的升级相关指令,若没有收到,则执行步骤406;若收到则执行步骤411;
步骤406:跳转应用程序;当在预设时间段内没有收到上位机发送的升级相关指令,则跳转至Application区,并运行存储在Application区中的应用程序,执行步骤407;
步骤407:上位机询问应用程序版本;当需要判断CT设备中的各个控制节点是否需要升级时,可以通过上位机发送版本号查询指令,执行步骤408;
步骤408:控制节点回复版本号;控制节点在接收到版本号查询指令后,向上位机发送各自存储在Application区的应用程序的版本号,执行步骤409;
步骤409:上位机发送跳转指令;若某个控制节点需要进行在线升级,则上位机向该控制节点发送跳转指令,使得控制节点从Application区跳转到Bootloader区,执行步骤410;
步骤410:停止运动进入待机状态;控制节点在接收到跳转指令后,停止当前运动,并进入待机状态,然后跳转到Bootloader区执行IAP程序,执行步骤404;
步骤411:上位机握手应答;上位机根据收到的IAP程序的状态报文和握手报文判断得知该控制节点中已烧录有IAP程序,并且该控制节点已经跳转到Bootloader区,完成握手,并向控制节点发送握手完成的响应,执行步骤412;
步骤412:上位机选择Bin文件;上位机选择该控制文件中的Bin文件,判断Bin文件中是否存储有正确的升级数据,执行步骤413;
步骤413:上位机发送擦除指令;若上位机判断升级数据正确,则向控制节点发送擦除指令,执行步骤414;
步骤414:擦除应用程序;控制节点在接收到擦除指令后,擦除Application区中的应用程序,执行步骤415;
步骤415:控制节点发送数据请求;在控制节点擦除完成后,向上位机发送数据请求,执行步骤416;
步骤416:上位机发送数据;上位机在接收到控制节点发送的数据请求后,向控制节点发送升级数据,执行步骤417;
步骤417:控制节点接收数据,并验证;控制节点在接收到升级数据后,根据升级数据中的代码数据生成第二验证数据,并将第二验证数据与升级数据中的第一验证数据进行比较,若相等,则验证通过,执行步骤418,否则执行步骤416;
步骤418:控制节点写入数据;控制节点将升级数据写入Application区,执行步骤419;
步骤419:控制节点判断是否收到最后一个数据包;控制节点判断接收到的升级数据是否为最后一个数据包,若是,则跳至步骤420,完成升级,否则执行步骤416;
步骤420:完成升级。
图5为本申请实施例提供的一种在线升级装置结构示意图,如图5所示,该装置与上述图1方法实施例对应,能够执行图1方法实施例涉及的各个步骤,该装置具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。
该装置包括:数据擦除模块501、请求发送模块502和数据接收模块503,其中:
数据擦除模块501用于接收上位机发送的擦除指令,通过所述IAP程序响应所述擦除指令,以对所述Application区的所述应用程序进行擦除;请求发送模块502用于在完成擦除后向所述上位机发送数据请求;数据接收模块503用于接收所述上位机发送的升级数据,并将所述升级数据存入所述Application区,以完成对控制节点的在线升级。
在上述实施例的基础上,所述装置还包括报文发送模块,用于在接收到所述上位机发送的升级指令后,向所述上位机发送所述IAP程序的状态报文和握手报文,以使所述上位机确定所述控制节点的所述IAP程序运行正常。
在上述实施例的基础上,数据接收模块503具体用于:
接收所述上位机发送的所述升级数据,所述升级数据包括代码数据和第一验证数据;
根据所述代码数据生成第二验证数据,若所述第一验证数据与所述第二验证数据相等,则将所述代码数据存入所述Application区;所述第一验证数据和所述第二验证数据用于验证所述代码数据的正确性和完整性。
在上述实施例的基础上,该装置还包括版本号查询模块,用于:接收所述上位机发送的版本号查询指令,并向所述上位机发送所述应用程序的版本号,以使所述上位机判断所述应用程序是否为最新版本。
在上述实施例的基础上,该装置还包括跳转模块,用于向所述上位机发送上线报文,若在预设时间段内未收到所述升级指令,则执行所述Application区的应用程序。
在上述实施例的基础上,该装置还包括数据包判断模块,用于判断接收到的升级数据是否为最后一个数据包,若不是,则再次向上位机发送数据请求,直至接收到最后一个升级数据为止。
综上所述,本申请实施例通过IAP技术将控制节点的存储器分为Bootloader区和Application区,通过Bootloader区中的IAP程序实现与上位机的通信,以及将Application区的应用程序进行擦除,并将上位机发送的升级数据,写入Application区中,从而可以不需要将CT设备的外壳拆除就能够实现在CT设备中的控制节点进行升级,提高了对程序升级的效率。
图6为本申请实施例提供的上位机结构示意图,如图6所示,该上位机与上述图3方法实施例对应,能够执行图3方法实施例涉及的各个步骤,该装置具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。
该上位机包括:升级指令发送模块601、报文接收模块602、擦除指令发送模块603和数据发送模块604,其中:
升级指令发送模块601用于向控制节点发送升级指令;报文接收模块602用于接收所述控制节点发送的IAP程序的状态报文和握手报文,并根据所述状态报文和所述握手报文建立与所述控制节点的通信连接;擦除指令发送模块603用于向所述控制节点发送擦除指令,以使所述控制节点通过IAP程序对Application区的应用程序进行擦除处理;数据发送模块604用于接收所述控制节点发送的数据请求,并向所述控制节点发送升级数据,以使所述控制节点将所述升级数据存入所述Application区,以完成在线升级。
本申请实施例通过控制节点中的IAP程序与上位机进行通信,上位机将升级数据发送至控制节点,并通过IAP程序实现对Application区进行擦除以及写入升级数据,从而可以不需要将CT设备的外壳拆除就能够实现在CT设备中的控制节点进行升级,提高了对程序升级的效率。
图7为本申请实施例提供的一种在线升级系统结构示意图,如图7所示,该系统包括上述实施例中的升级装置701和上位机702。升级装置701所实现的功能以及上位机702所实现的功能均已在上述实施例中描述,本申请实施例对此不再赘述。
图8为本申请实施例提供的电子设备实体结构示意图,如图8所示,所述电子设备,包括:处理器(processor)801、存储器(memory)802和总线803;其中,
所述处理器801和存储器802通过所述总线803完成相互间的通信;
所述处理器801用于调用所述存储器802中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:接收上位机发送的擦除指令,根据所述擦除指令对所述Application区的所述应用程序进行擦除,并在完成擦除后向所述上位机发送数据请求;接收所述上位机发送的升级数据,并将所述升级数据存入所述Application区,以完成对控制节点的在线升级。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:接收上位机发送的擦除指令,根据所述擦除指令对所述Application区的所述应用程序进行擦除,并在完成擦除后向所述上位机发送数据请求;接收所述上位机发送的升级数据,并将所述升级数据存入所述Application区,以完成对控制节点的在线升级。
本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:接收上位机发送的擦除指令,根据所述擦除指令对所述Application区的所述应用程序进行擦除,并在完成擦除后向所述上位机发送数据请求;接收所述上位机发送的升级数据,并将所述升级数据存入所述Application区,以完成对控制节点的在线升级。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
需要说明的是,功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (12)
1.一种控制节点在线升级方法,其特征在于,应用于医疗设备的控制节点,所述控制节点的存储器包括启动装载Bootloader区和应用Application区,所述Bootloader区存储在应用编程IAP程序,所述Application区存储应用程序,所述方法包括:
接收上位机发送的擦除指令,通过所述IAP程序响应所述擦除指令,以对所述Application区的所述应用程序进行擦除;
在完成擦除后向所述上位机发送数据请求;
接收所述上位机发送的升级数据,并将所述升级数据存入所述Application区,以完成对控制节点的在线升级。
2.根据权利要求1所述的方法,其特征在于,在接收上位机发送的擦除指令之前,所述方法还包括:
在接收到所述上位机发送的升级指令后,向所述上位机发送所述IAP程序的状态报文和握手报文,以使所述上位机确定所述控制节点的所述IAP程序运行正常。
3.根据权利要求1所述的方法,其特征在于,所述接收所述上位机发送的升级数据,并将所述升级数据存入所述Application区,包括:
接收所述上位机发送的所述升级数据,所述升级数据包括代码数据和第一验证数据;
根据所述代码数据生成第二验证数据,若所述第一验证数据与所述第二验证数据相等,则将所述代码数据存入所述Application区;所述第一验证数据和所述第二验证数据用于验证所述代码数据的正确性和完整性。
4.根据权利要求1所述的方法,其特征在于,在向所述上位机发送在应用编程IAP程序的状态报文和握手报文之前,所述方法还包括:
接收所述上位机发送的版本号查询指令,并向所述上位机发送所述应用程序的版本号,以使所述上位机判断所述应用程序是否为最新版本。
5.根据权利要求1所述的方法,其特征在于,在向所述上位机发送在应用编程IAP程序的状态报文和握手报文之前,所述方法还包括:
向所述上位机发送上线报文,若在预设时间段内未收到所述升级指令,则执行所述Application区的应用程序。
6.根据权利要求1所述的方法,其特征在于,在接收所述上位机发送的升级数据,并将所述升级数据存入所述Application区之后,所述方法还包括:
判断接收到的升级数据是否为最后一个数据包,若不是,则再次向上位机发送数据请求,直至接收到最后一个升级数据为止。
7.一种控制节点在线升级方法,其特征在于,包括:
向控制节点发送擦除指令,以使所述控制节点通过IAP程序对Application区的应用程序进行擦除处理;
接收所述控制节点发送的数据请求,并向所述控制节点发送升级数据,以使所述控制节点将所述升级数据存入所述Application区,以完成在线升级。
8.根据权利要求7所述的方法,其特征在于,在向控制节点发送擦除指令之前,所述方法还包括:
上位机向控制节点发送升级指令;
接收所述控制节点发送的IAP程序的状态报文和握手报文,并根据所述状态报文和所述握手报文进行握手操作;
其中,在完成握手之后执行向控制节点发送擦除指令的步骤。
9.一种在线升级装置,其特征在于,包括:
数据擦除模块,用于接收上位机发送的擦除指令,通过IAP程序响应所述擦除指令,以对Application区的应用程序进行擦除;
请求发送模块,用于在完成擦除后向上位机发送数据请求;
数据接收模块,用于接收所述上位机发送的升级数据,并将所述升级数据存入所述Application区,以完成对控制节点的在线升级。
10.一种上位机,其特征在于,包括:
擦除指令发送模块,用于向控制节点发送擦除指令,以使所述控制节点通过IAP程序对Application区的应用程序进行擦除处理;
数据发送模块,用于接收所述控制节点发送的数据请求,并向所述控制节点发送升级数据,以使所述控制节点将所述升级数据存入所述Application区,以完成在线升级。
11.一种在线升级系统,其特征在于,包括如权利要求9所述的升级装置和如权利要求10所述的上位机。
12.一种电子设备,其特征在于,包括:处理器、存储器和总线,其中,
所述处理器和所述存储器通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910737399.4A CN110457058A (zh) | 2019-08-09 | 2019-08-09 | 控制节点在线升级方法、装置、上位机、系统及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910737399.4A CN110457058A (zh) | 2019-08-09 | 2019-08-09 | 控制节点在线升级方法、装置、上位机、系统及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110457058A true CN110457058A (zh) | 2019-11-15 |
Family
ID=68485819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910737399.4A Pending CN110457058A (zh) | 2019-08-09 | 2019-08-09 | 控制节点在线升级方法、装置、上位机、系统及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110457058A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112269589A (zh) * | 2020-10-16 | 2021-01-26 | 江苏吉泰科电气股份有限公司 | Bootloader在线刷写方法 |
CN113741933A (zh) * | 2021-08-23 | 2021-12-03 | 深圳市航天泰瑞捷电子有限公司 | 控制器的远程升级方法、控制器及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060294290A1 (en) * | 2005-06-15 | 2006-12-28 | Xerox Corporation | Concurrent in-application programming of programmable devices |
CN103294511A (zh) * | 2013-05-31 | 2013-09-11 | 哈尔滨工业大学 | 基于CAN总线的bootloader软件的升级方法 |
CN104007996A (zh) * | 2014-06-16 | 2014-08-27 | 南京融教科技有限公司 | 一种分布式控制系统的可靠固件升级实现方法 |
CN106227572A (zh) * | 2016-08-30 | 2016-12-14 | 深圳市蓝海华腾技术股份有限公司 | 一种变频器控制系统程序升级方法 |
CN106569847A (zh) * | 2016-10-14 | 2017-04-19 | 数源科技股份有限公司 | 一种用于车载系统基于移动网络实现iap远程升级的方法 |
DE102016201769A1 (de) * | 2016-01-20 | 2017-07-20 | Robert Bosch Gmbh | Verfahren zum Aktualisieren von Software eines Steuergerätes, vorzugsweise für ein Kraftfahrzeug |
EP3404532A1 (en) * | 2017-05-18 | 2018-11-21 | Contemporary Amperex Technology Co., Limited | Method and apparatus for updating a program |
CN109885331A (zh) * | 2019-03-01 | 2019-06-14 | 湖南汇博电子科技股份有限公司 | 软件升级方法、控制方法、系统、存储介质及电子设备 |
-
2019
- 2019-08-09 CN CN201910737399.4A patent/CN110457058A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060294290A1 (en) * | 2005-06-15 | 2006-12-28 | Xerox Corporation | Concurrent in-application programming of programmable devices |
CN103294511A (zh) * | 2013-05-31 | 2013-09-11 | 哈尔滨工业大学 | 基于CAN总线的bootloader软件的升级方法 |
CN104007996A (zh) * | 2014-06-16 | 2014-08-27 | 南京融教科技有限公司 | 一种分布式控制系统的可靠固件升级实现方法 |
DE102016201769A1 (de) * | 2016-01-20 | 2017-07-20 | Robert Bosch Gmbh | Verfahren zum Aktualisieren von Software eines Steuergerätes, vorzugsweise für ein Kraftfahrzeug |
CN106227572A (zh) * | 2016-08-30 | 2016-12-14 | 深圳市蓝海华腾技术股份有限公司 | 一种变频器控制系统程序升级方法 |
CN106569847A (zh) * | 2016-10-14 | 2017-04-19 | 数源科技股份有限公司 | 一种用于车载系统基于移动网络实现iap远程升级的方法 |
EP3404532A1 (en) * | 2017-05-18 | 2018-11-21 | Contemporary Amperex Technology Co., Limited | Method and apparatus for updating a program |
CN109885331A (zh) * | 2019-03-01 | 2019-06-14 | 湖南汇博电子科技股份有限公司 | 软件升级方法、控制方法、系统、存储介质及电子设备 |
Non-Patent Citations (2)
Title |
---|
XUHUI CHEN,ET AL: "Research on Key Technologies of On-line Programming in Embedded System", 《2009 THIRD INTERNATIONAL SYMPOSIUM ON INTELLIGENT INFORMATION TECHNOLOGY APPLICATION》 * |
顾程华等: "基于IAP的微控制器程序升级技术", 《工业控制计算机》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112269589A (zh) * | 2020-10-16 | 2021-01-26 | 江苏吉泰科电气股份有限公司 | Bootloader在线刷写方法 |
CN112269589B (zh) * | 2020-10-16 | 2022-07-26 | 江苏吉泰科电气股份有限公司 | Bootloader在线刷写方法 |
CN113741933A (zh) * | 2021-08-23 | 2021-12-03 | 深圳市航天泰瑞捷电子有限公司 | 控制器的远程升级方法、控制器及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103077058B (zh) | 一种安装应用程序的方法及装置 | |
CN102662697B (zh) | 一种软件升级方法及装置 | |
CN110134415A (zh) | 一种控制器及其软件升级方法和装置 | |
CN104657174A (zh) | 一种用于动态实现应用功能的方法和装置 | |
CN109656597A (zh) | 固件升级方法、装置及计算机可读存储介质 | |
CN104199706A (zh) | 一种eMMC的固件升级方法及其设备 | |
CN105262627A (zh) | 一种固件升级方法、装置及系统 | |
US20100095159A1 (en) | Apparatus and method for automatic testing of software or digital devices | |
CN105045626A (zh) | 程序的烧录方法、烧录设备和控制器 | |
CN108170457A (zh) | 固件升级方法、装置及vr头戴式显示器 | |
CN105162841A (zh) | 家用电器的控制方法和控制系统 | |
CN109002310A (zh) | 固件升级方法 | |
CN109284117A (zh) | 基于闪存微控制器的固件升级方法和系统及闪存微控制器 | |
CN112073994A (zh) | 用于空中升级的方法、装置、电子设备及可读存储介质 | |
CN107078806B (zh) | 光收发机的编程方法和操作方法以及电气接口设备 | |
CN110187909B (zh) | 一种基于安卓系统的单片机固件升级方法 | |
CN105786557A (zh) | 可升级的固件系统 | |
KR20170104306A (ko) | 모듈 시스템 및 모듈기반 로봇 시스템, 그리고 모듈 시스템의 업데이트 방법 | |
CN110457058A (zh) | 控制节点在线升级方法、装置、上位机、系统及电子设备 | |
CN110851163B (zh) | 一种基于can通信的兼容多设备平台的软件更新方法 | |
CN107844374A (zh) | 终端设备的任务执行方法、装置、电子设备、存储介质 | |
CN111400167A (zh) | Redfish服务合规性验证方法、装置及设备和介质 | |
CN109388413A (zh) | 一种fpga程序更新方法及系统 | |
CN104133701A (zh) | 一种应用程序安装方法和装置 | |
CN108196861A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191115 |