一种在线升级方法及控制器与流程

文档序号:11154552 阅读:445 来源:国知局
一种在线升级方法及控制器与制造工艺

本发明涉及通信技术领域,尤其涉及一种在线升级方法及控制器。



背景技术:

随着MCU(Microcontroller Unit)芯片技术的快速发展,MCU芯片外设功能越来越丰富,像SPI、SCI、Ethernet等通讯外设接口已经逐渐成为标准配置。

传统的程序升级方法包括:

(1)采用JTAG/SWD等接口的仿真器进行程序升级,这种可进行在线调试,但是需要增加仿真器和MCU相关外围烧写接口,从而造成成本增加。

(2)采用RS232/RS485接口进行程序升级,这种烧写方式需要增加相关的硬件进行电平转换,也会额外增加成本,且程序升级比较慢。

鉴于此,目前需要一种能够降低升级成本、提高烧写速度的在线升级方法及控制器。



技术实现要素:

有鉴于此,本发明实施例提供一种能够降低升级成本、提高烧写速度的在线升级方法及控制器。

第一方面,本发明实施例提供了一种在线升级方法,用于对控制器进行在线程序升级,所述方法包括运行所述控制器的在线编程区内的在线编程导引程序;所述在线编程导引程序读取IP地址传递区内的IP地址并初始化所述控制器的以太网接口,所述以太网接口用于连接所述控制器和上位机;判断是否接收到来自上位机的写请求;若接收到来自所述上位机的写请求,接收所述上位机发送的更新程序;将所述更新程序写入应用程序区,程序升级完成。

优选地,所述判断是否接收到来自上位机的写请求具体包括判断在预设时间内是否接收到来自所述上位机的写请求。

优选地,所述判断是否接收到来自上位机的写请求之前,所述方法还包括判断是否接收到来自所述上位机的IP地址改请求;若接收到,修改IP地址并将修改后的IP地址更新至所述IP地址传递区域。

优选地,所述方法还包括:若未接收到来自所述上位机的写请求,所述控制器由在线编程区直接调转到应用程序区,所述应用程序区执行函数读取所述IP地址传递区内的IP地址并初始化所述控制器的以太网接口后运行所述应用程序区内的应用程序。

优选地,所述方法还包括当程序跳转至所述应用程序区后,若接收到来自上位机的写请求,则跳转到在线编程区内执行在线编程导引程序;若接收到上位机的IP地址改请求,则修改IP地址并将修改后的IP地址更新至所述IP地址传递区域。

优选地,所述在线编程区、IP地址传递区、应用程序区均设置在所述控制器的FLASH空间内,且互不重叠。

另一方面,本发明实施例提供了一种控制器,该控制器包括在线编程区、IP地址传递区、应用程序区,所述在线编程区用于存储在线编程导引程序,所述IP地址传递区用于存储对应控制器的IP地址,所述应用程序区用于存储应用程序,所述在线编程导引程序用于将升级程序写入所述应用程序区,其中,所述在线编程区具体包括:第一读取单元,用于读取IP地址传递区内的IP地址;第一初始化单元,用于根据读取的IP地址初始化以太网接口,所述以太网接口用于连接所述控制器和上位机;第一判断单元,用于判断在预设时间内是否有上位机写请求;接收单元,用于若接收到来自所述上位机的写请求,接收所述上位机发送的更新程序;写入单元,用于将所述更新程序写入所述应用应用程序区,第一跳转单元,用于若未接收到来自所述上位机的写请求,调转至所述应用程序区。

优选地,所述在线编程区还包括第二判断单元,用于判断是否接收到来自所述上位机的IP地址改请求;第一更新单元,用于若接收到所述上位机的IP地址改请求,修改IP地址并将修改后的IP地址更新至所述IP地址传递区域。

优选地,所述应用程序区具体包括第二读取单元,用于读取IP地址传递区内的IP地址;第二初始化单元,用于根据读取的IP地址初始化以太网接口,所述以太网接口用于连接所述控制器和上位机;第三判断单元,用于判断是否接收到来自所述上位机的IP地址改请求;第二更新单元,用于若接收到所述上位机的IP地址改请求,修改IP地址并将修改后的IP地址更新至所述IP地址传递区域;运行单元,用于运行所述应用程序区内的应用程序;第二跳转单元,用于若接收到来自所述上位机的写请求,调转至所述在线编程区。

优选地,所述在线编程区、IP地址传递区、应用程序区均设置在所述控制器的FLASH空间内,且互不重叠。

本发明实施例通过运行在线编程区内的在线编程导引程序,并由在线编程导引程序读取IP地址传递区中的IP地址并根据读取的IP地址初始化控制器的以太网接口以使控制器与上位机实现通讯连接,判断是否接收到来自上位机的写请求,若接收到来自上位机的写请求,接收上位机发送的更新程序,并将更新程序写入应用程序区从而完成控制器的在线程序升级。相比现有技术,本发明实施例不需要增加额外的仿真器及硬件设备,从而降低了升级成本,并藉由以太网接口的传输效率,可进一步提高程序的烧写速度。

附图说明

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

图1是本发明第一实施例提供的一种在线升级方法的示意流程图;

图2是本发明实施例提供的控制器的Flash空间地址分配示意图

图3是图1中步骤S105的子示意流程图;

图4是本发明第二实施例提供的一种在线升级方法的示意流程图;

图5是本发明提供的控制器与上位机组网的拓扑结构图;

图6是本发明第三实施例提供的一种控制器的示意性框图;

图7是图6中的在线编程区的结构示意图;

图8是图6中的应用程序区的结构示意图。

具体实施方式

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

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

参见图1,是本发明第一实施例提供的一种在线升级方法的示意流程图。如图所示,该在线升级方法包括步骤S101~S105。

S101,运行所述控制器的在线编程区内的在线编程导引程序。

具体地,控制器支持IAP(In Application Programming在线应用编程)功能,且控制器与上位机进行网络通讯连接以实现在控制器内应用程序运行过程的更新升级。可以理解地,控制器与上位机可通过有线方式或无线方式进行网络通讯连接,此处不作限定。其中,参照图2,本发明实施例提供的控制器的Flash空间地址分配示意图。如图所示,控制器的Flash空间被划分为在线编程区、IP地址传递区、及应用程序区三个区域,且在线编程区、IP地址传递区、及应用程序区相互无重叠。优选从Flash空间的低地址到高地址依次划分而成,如可将在线编程区设置为0X00000000-0X0000001C之间的地址空间,将IP地址传递区设置为0X0000001F-0X0000005F之间的地址空间,将应用程序区设置为0X00006000-0X0000061C之间的地址空间。在线编程区用于存储在线编程导引程序,IP地址传递区用于存储对应控制器的IP地址,应用程序区用于存储应用程序,在线编程导引程序用于将升级程序写入应用程序区。

S102,所述在线编程导引程序读取IP地址传递区内的IP地址并初始化所述控制器的以太网接口,所述以太网接口用于连接所述控制器和上位机。

具体地,由于控制器运行在在线编程区或应用程序区均可能接收到来自上位机的修改IP地址的改请求,且当通过一个上位机与多个控制器进行组网通信时,需要保证该当前网络中的每个控制器的IP地址互不相同才能实现上位机与各控制器的正常通信,如果出现多个控制器默认的IP地址相同时,就需要主动修改控制器的IP地址。因此,为了保证控制器在在线编程区或应用程序区运行时均能够与上位机建立通讯连接,该控制器需要根据获取的IP地址初始化以太网接口,以保证控制器运行在在线编程区或应用程序区时均能够与上位机建立通信。

需要说明的是,当通过一个上位机与多个控制器进行组网通讯时,可通过修改上位机的IP地址与每一个将要进行程序升级的当前控制器的IP地址相同即可实现上位机与当前控制器的网络通讯连接,进而为在线程序升级设置网络基础。当然,还可以采用多个上位机与多个控制器的组网模式,以实现对多个控制器中的应用程序进行同步在线升级,从而提高在线升级效率。

S103,判断是否接收到来自上位机的写请求。

具体地,写请求是上位机向控制器发出的用于对控制器中的应用程序区的应用程序进行更新升级的请求指令。在本发明实施例中,可判断在预设时间内是否接收到来自上位机的写请求。预设时间是从控制器上电启动开始计时,由设定时长构成。当控制器上电启动后,控制器的在线编程区运行导引程序,并根据获取的IP地址与上位机建立通讯连接后,需要判断在预设时间内是否接收到来自上位机的写请求。若在预设时间内接收到来自上位机的写请求,则执行步骤S104;若在预设时间内没有接收到来自上位机的写请求,控制器由在线编程区直接调转到应用程序区,应用程序区执行函数读取IP地址传递区内的IP地址并初始化控制器的以太网接口后运行应用程序区内的应用程序,且当程序跳转至所述应用程序区后,若接收到上位机的写请求,则跳转到在线编程区内执行在线编程导引程序。

S104,接收所述上位机发送的更新程序。

具体地,更新程序用于对控制器中的应用程序进行升级。若控制器接收到来自上位机的写请求,则接收上位机发送的更新程序以便根据更新程序对控制器中的应用程序进行功能升级和完善。

S105,将所述更新程序写入应用程序区,升级完成。

具体地,为了对控制器内的应用程序区中的应用程序进行升级,需要将更新程序写入到对应的地址空间,以便实现对控制器中应用程序区中应用程序的在线升级。在本发明实施例中,参照图3,步骤S105的子流程示意图。步骤S105具体包括步骤S201~S202。

S201:根据所述更新程序所占用的Flash空间内扇区的大小擦除所述应用程序区中的应用程序以得到与所述更新程序相匹配的地址空间。

具体地,为了提高升级效率,根据更新程序所占用的Flash空间内扇区的大小来擦除应用程序区中的应用程序从而得到与更新程序相匹配的地址空间。Flash空间是控制器生产制造前已经规划的地址空间,扇区是Flash空间种的基本单元,更新程序在Flash空间内占用相对应的扇区进行存储。由于更新程序的大小可能并不完全为扇区大小的整数倍,但为了保证为更新程序提供足够的地址空间,优选按照该更新程序所有占据的扇区大小对应用程序区进行地址擦除。

S202:将所述更新程序写入所述应用程序区的所述地址空间。

具体地,在步骤S201从应用程序区中得到与更新程序相匹配的地址空间之后,将更新程序写入应用程序区中的相应的地址空间以便控制器下次启动后执行升级后的更新程序。

在一些其他实施例中,为了保证从上位机接收的应用程序的完整性,该方法还包括:对接收到的所述更新程序进行数据校验,若校验通过,执行步骤S105。其中,数据校验包括CRC校验和CHECKSUM检验。

在一些其他实施例中,为了及时判断在线升级过程是否完成,所述方法还包括检测是否接收到在线更新程序的完成标志,若接收到,则结束在线升级流程。其中,完成标志可以为更新程序中的结束标注等。

本发明实施例通过运行在线编程区内的在线编程导引程序,并由在线编程导引程序读取IP地址传递区中的IP地址并根据读取的IP地址初始化控制器的以太网接口以使控制器与上位机实现通讯连接,判断是否接收到来自上位机的写请求,若接收到来自上位机的写请求,接收上位机发送的更新程序,并将更新程序写入应用程序区从而完成控制器的在线程序升级。相比现有技术,本发明实施例不需要增加额外的仿真器及硬件设备,从而降低了升级成本,并藉由以太网接口的传输效率,可进一步提高程序的烧写速度。

图4是本发明第二实施例提供的一种在线升级方法的示意流程图。如图所示,该方法包括步骤S301~S307,其中,步骤S301~S302与步骤S101~S102相同,步骤S305~S307与步骤S103~S105相同,故此处不再赘述。

S301,运行所述控制器的在线编程区内的在线编程导引程序。

S302,所述在线编程导引程序读取IP地址传递区内的IP地址并初始化所述控制器的以太网接口,所述以太网接口用于连接所述控制器和上位机。

S303,判断是否接收到来自所述上位机的IP地址改请求。

具体地,IP地址改请求用于修改控制器的IP地址,若接收到来自所述上位机的IP地址改请求,执行步骤S304;若没有接收到,则继续判断。需要说明的是,当控制器运行在线编程区的在线导引程序过程中,步骤S303一直执行,知道控制器从在线编程区调转到应用编程区为止。

S304,修改IP地址并将修改后的IP地址更新至所述IP地址传递区域。

具体地,若在线编程区接收到来自所述上位机的IP地址改请求,修改IP地址并将修改后的IP地址以使控制器跳转到应用程序区后能够根据修改后的IP地址与上位机进行通讯连接,并根据修改后的IP地址更新至所述IP地址传递区域

需要说明的是,控制器IP地址的修改可能发生在一个控制器与一个上位机进行通信的模式中也可能发生在多个控制器与一个上位机进行组网通信的模式中,且IP地址改请求的发送时机可以是控制器上电启动或复位后或者执行应用程序区中的应用程序过程中。为了保证控制器IP地址修改之后在运行过程依然保证与上位机的正常通讯,在本发明实施例中,若在线编程区接收到来自所述上位机的IP地址改请求,将修改后的IP地址更新至IP地址传递区域以便程序在跳转至应用程序区或在线编程区后,能够从IP地址传递区中读取修改后的IP地址以便与上位机建立通讯连接。同时,控制器由在线编程区跳转至应用程序区后,若接收到上位机的IP地址改请求,则修改IP地址并将修改后的IP地址更新至IP地址传递区域以便程序由在线编程区跳转至应用程序区后,能够从IP地址传递区中读取修改后的IP地址以便与上位机建立通讯连接。

S305,判断是否接收到上位机的写请求。

S306,若接收到来自所述上位机的写请求,接收所述上位机发送的更新程序。

S307,将所述更新程序写入应用程序区,程序升级完成。

本发明实施例通过运行在线编程区内的在线编程导引程序,并由在线编程导引程序读取IP地址传递区中的IP地址并根据读取的IP地址初始化控制器的以太网接口以使控制器与上位机实现通讯连接,判断是否接收到来自上位机的写请求,判断是否接收到来自上位机的IP地址改请求;若接收到,修改IP地址并将修改后的IP地址更新至IP地址传递区域,若接收到来自上位机的写请求,接收上位机发送的更新程序,并将更新程序写入应用程序区从而完成控制器的在线程序升级。相比现有技术,本发明实施例不需要增加额外的仿真器及硬件设备,从而降低了升级成本,并藉由以太网接口的传输效率,可进一步提高程序的烧写速度。

参照图5,是控制器与上位机构成的组网拓扑图。如图所示,上位机通过交换机与控制器1和控制器2进行网络通讯。上位机、控制器1、及控制器2的初始默认IP地址均为192.168.1.1,即控制器1和控制器2的IP地址传递区中默认的IP地址均为192.168.1.1,此时上位机只可单独与控制器1/控制器2进行通讯连接,但不能实现组网模式。为了实现组网结构,将上位机首先控制器1通过默认的IP地址192.168.1.1建立通信连接以便将控制器1的IP地址修改为192.168.1.2,并将修改后的IP地址192.168.1.2更新保存至控制器1的IP地址传递区中;然后将上位机与控制器2通过默认的IP地址192.168.1.1建立通讯连接,并将控制器2的IP地址修改为192.168.1.3,并将修改后的IP地址192.168.1.3更新保存至控制器2中的IP地址传递区中。由于通过上位机修改控制器1或控制器2的IP地址的操作可以发生在应用程序区或在线编程区,如当控制器1中执行应用程序区的应用程序时接收到上位机对应控制器1的IP地址修改操作,并将修改后的IP地址更新保存在控制器1的IP地址传递区中,当需要跳转至在线编程区执行导引程序时,将首先从控制器1中的IP地址传递区中读取IP地址并根据获取的IP地址初始化以太网接口,以保证跳转至在线编程区之后也能与上位机建立通信连接。同理,从在线编程区跳转至应用程序区后,也需要从IP地址传递区中读取IP地址并根据获取的IP地址初始化以太网接口,以保证调转至应用程序区之后也能与上位机建立通信连接。可以理解地,当一个控制器与一个上位机进行网络通信时,通常不需要修改控制器的IP地址地址。

参照图6,是本发明第四实施例提供的一种控制器的示意框图。如图所示的本实施例中的控制器40包括在线编程区41、IP地址传递区42、及应用程序区43,所述在线编程区41、IP地址传递区42、应用程序区43均设置在所述控制器40的FLASH空间内,且互不重叠。所述在线编程区41用于存储在线编程导引程序,所述IP地址传递区42用于存储对应控制器的IP地址,所述应用程序区43用于存储应用程序,所述在线编程导引程序用于将升级程序写入所述应用程序区43。其中,参照图7,是图6中的在线编程区的结构示意图。如图所示,在线编程区41包括:

第一读取单元410,用于读取IP地址传递区内的IP地址;

第一初始化单元411,用于根据读取的IP地址初始化以太网接口,所述以太网接口用于连接所述控制器和上位机;

第一判断单元412,用于判断在预设时间内是否有上位机写请求;

接收单元413,用于若接收到来自所述上位机的写请求,接收所述上位机发送的更新程序;

写入单元414,用于将所述更新程序写入所述应用应用程序区43

第一跳转单元415,用于若未接收到来自所述上位机的写请求,调转至所述应用程序区。

进一步地,所述在线编程区41还包括:

第二判断单元416,用于判断是否接收到来自所述上位机的IP地址改请求;

第一更新单元417,用于若接收到所述上位机的IP地址改请求,修改IP地址并将修改后的IP地址更新至所述IP地址传递区42域。

参照图8,是图6中的应用程序区的结构示意图。如图所示,应用程序区43包括:

所述应用程序区43具体包括:

第二读取单元431,用于读取IP地址传递区42内的IP地址;

第二初始化单元432,用于根据读取的IP地址初始化以太网接口,所述以太网接口用于连接所述控制器和上位机;

第三判断单元433,用于判断是否接收到来自所述上位机的IP地址改请求;

第二更新单元434,用于若接收到所述上位机的IP地址改请求,修改IP地址并将修改后的IP地址更新至所述IP地址传递区;

运行单元435,用于运行所述应用程序区内的应用程序;

第二跳转单元436,用于若接收到来自所述上位机的写请求,调转至所述在线编程区。

本发明实施例通过运行在线编程区内的在线编程导引程序,并由在线编程导引程序读取IP地址传递区中的IP地址并根据读取的IP地址初始化控制器的以太网接口以使控制器与上位机实现通讯连接,判断是否接收到来自上位机的写请求,若接收到来自上位机的写请求,接收上位机发送的更新程序,并将更新程序写入应用程序区从而完成控制器的在线程序升级。相比现有技术,本发明实施例不需要增加额外的仿真器及硬件设备,从而降低了升级成本,并藉由以太网接口的传输效率,可进一步提高程序的烧写速度。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的控制器和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的控制器和方法,可以通过其它的方式实现。例如,以上所描述的装置设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置设备或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。

本发明第实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。

本发明实施例控制器中的单元可以根据实际需要进行合并、划分和删减。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明第一实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,控制器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上为发明的优选实施例,而非对发明做任何形式上的限制。本领域的技术人员可在上述实施例的基础上施以各种等同的更改和改进,凡在权利要求范围内所做的等同变化或修饰,均应落入发明的包含范围之内。

当前第1页 1 2 3
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1