一种DSP控制系统软件升级方法及装置与流程

文档序号:14719036发布日期:2018-06-17 00:23阅读:276来源:国知局

本发明涉及软件升级领域,尤其涉及一种DSP控制系统软件升级方法及装置。



背景技术:

电力系统装置中的可编程智能控制器,一般由单片机作为控制核心,通过在其上运行的控制软件对装置系统中的电能设备进行智能化控制。在实际调试和运营过程中,都存在软件系统升级的需要。

以往的单片机软件升级过程,都需要专用的硬件接口(JTAG)和硬件连线,对单片机芯片进行烧录操作。这种做法需要目标控制器在完成成品投入运营以后,预留一个硬件JTAG接口到机箱外部,然而这样会带来安全性和稳定性隐患。虽然一些插卡式的控制器设计允许板卡进行快速拆装,但是在板卡的拆装必然要求整体装置的断电,而且拆卸下来的板卡的软件升级过程中还需要特殊的供电和控制平台,这些都是智能控制器软件的升级过程遇到的困难和不便。

目前针对上述问题已经存在的类似解决方案中,是通过网络传输或者其他通信手段完成新版本软件的部署内容的传输,然后利用DSP的在线修改内(外)部FLASH内容的能力完成软件系统的更新。然而,这些操作需要DSP使用一个庞大的内存区域作为缓冲区来暂存新的版本,这往往会带来系统的运行中断,因为内存资源对于DSP系统来说非常宝贵,通常情况下不会在运行过程中留有太多的空闲内存。



技术实现要素:

针对现有技术的缺陷,本发明提出了解决上述技术问题的一种DSP控制系统软件升级方法及装置,使得电能控制装置在不拆卸、不断电和不中断运行的情况下,完成软件系统的更新升级。

第一方面,本发明提供一种DSP控制系统软件升及方法,包括:

DSP芯片的缓冲区接收多个升级代码片段;

在待升级代码片段未被执行的时间内,DSP芯片将所述待升级代码片段替换为所述升级代码片段,以完成DSP控制系统软件的升级。

优选的,所述在待升级代码片段未被执行的时间内,将所述待升级代码片段替换为所述升级代码片段,以完成DSP控制系统软件的升级步骤之前,所述方法还包括:

将待升级代码片段固化到DSP的FLASH存储空间内,得到固化的待升级代码片段;

相应的,所述在待升级代码片段未被执行的时间内,DSP芯片将所述待升级代码片段替换为所述升级代码片段,以完成DSP控制系统软件的升级,具体为:

在固化的待升级代码片段未被执行的时间内,DSP芯片将所述固化的待升级代码片段替换为所述升级代码片段,以完成DSP控制系统软件的升级。

优选的,所述多个升级代码片段具体为:

按函数或者功能模块将升级代码划分成的多个升级代码片段。

优选的,所述接收多个升级代码片段步骤之后,所述方法还包括:

DSP芯片的网络伺服模块对所述多个升级代码片段进行校验,得到校验后的升级代码片段。

优选的,所述将待升级代码片段固化到DSP的FLASH存储空间内,得到固化的待升级代码片段,具体包括:

将待升级代码片段进行格式转换,将转换后的升级代码片段固化到DSP的FLASH存储空间内,得到固化的待升级代码片段。

第二方面,本发明提供一种DSP控制系统软件升级装置,包括:

接收单元,用于接收多个升级代码片段;

升级单元,用于在待升级代码片段未被执行的时间内,将所述待升级代码片段替换为所述升级代码片段,以完成DSP控制系统软件的升级。

优选的,所述装置还包括:

固化单元,用于将待升级代码片段固化到DSP的FLASH存储空间内,得到固化的待升级代码片段。

优选的,所述多个升级代码片段具体为:

按函数或者功能模块将升级代码划分成的多个升级代码片段。

优选的,所述装置还包括:

校验单元,用于对所述多个升级代码片段进行校验,得到校验后的升级代码片段。

优选的,所述固化单元具体用于:

将待升级代码片段进行格式转换,将转换后的升级代码片段固化到DSP的FLASH存储空间内,得到固化的待升级代码片段。

由上述技术方案可知,本发明提供的一种DSP控制系统软件升级方法及装置,通过对升级代码进行分段,减少内存缓冲区的设定,在程序运行的过程中,将每一段升级代码实时的替换掉待升级的代码,利用网络通信技术对智能控制器进行软件升级的方法中的缓存和烧录过程,能够在电能控制装置不拆卸不断电,甚至不中断运行的情况下,进行软件系统的更新升级。

附图说明

图1为本发明一实施例提供的一种DSP控制系统软件升级方法的流程示意图;

图2为本发明另一实施例提供的一种DSP控制系统软件升级方法的流程示意图;

图3为本发明另一实施例提供的一种DSP控制系统软件升级方法的流程示意图;

图4为本发明一实施例提供的一种DSP控制系统的硬件设计构架图;

图5为本发明一实施例提供的一种DSP控制系统的软件设计流程图;

图6为本发明一实施例提供的DSP控制系统软件升级装置的结构示意图。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。

电力系统控制装置的软件升级操作中,以往的实现过程需要JTAG方式对DSP芯片进行硬件连接,会给控制器软件系统的升级带来诸多不便。本发明提出的DSP控制系统软件升级方法采用网络传输的方式将控制软件的二进制编译结果分片进行更新到DSP的运行内存空间,并在后台时间转换并下载到FLASH存储空间。上述方法方法避免了在线升级时对专用烧录器和烧录接口的依赖,减少了对网络缓冲区的需求压力,并且能够以不中断DSP运行的方式完成软件修改和升级,本发明通过对控制软件升级方式的改变,使得软件设计和调试更加便捷。下面通过具体的实施例来进行详细的说明。

图1示出了本发明一实施例提供的一种DSP控制系统软件升级方法的流程示意图,如图1所示,本实施的DSP控制系统软件升级方法包括以下步骤:

S101、DSP芯片的缓冲区接收多个升级代码片段。

本实施例中,上位机的转换部署软件首先对升级代码完成二进制编译结果,一般为OUT格式,然后通过网络通信技术将控制软件的二进制编译结果传送到控制器的单片机的网络传输缓冲区。

此外,不稳定的网络传输过程,也会带来系统崩溃的风险,因为网络传输一旦发生故障或者中断,不完整的更新数据将使得系统无法正常启动,然后依然需要回退到JTAG模式进行初始程序的烧录。通过对升级代码进行分段,可以减少内存缓冲区的设定,同时能够抵御网络传输链路的不稳定性带来的升级风险。

S102、在待升级代码片段未被执行的时间内,DSP芯片将所述待升级代码片段替换为所述升级代码片段,以完成DSP控制系统软件的升级。

本实施例中,软件升级的具体过程是,在固化的待升级代码片段未被执行的时间内,将所述固化的待升级代码片段替换为所述升级代码片段,在传输过程以代码的片段为单位,每次更新过程的数据量优选的,控制在1KB以内,DSP在控制任务空闲的时间片里,完成代码的实时替换。当所有需要更新的代码片段完成传输和替换以后,软件动态升级部分的工作完成。

上述方法通过网络下载程序完成对应控制软件升级的技术能够摒弃对DSP芯片专用烧录接口和专用烧录设备的依赖,简化控制器硬件的设计。减少器件设备的外部接口,有助于提高系统的运行稳定性和抗干扰能力。利用网络通信技术对智能控制器进行软件升级的方法中的缓存和烧录过程,能够在电能控制装置不拆卸不断电,甚至不中断运行的情况下,进行软件系统的更新升级。

图2示出了本发明另一实施例提供的一种DSP控制系统软件升级方法的流程示意图;如图2所示,本实施的DSP控制系统软件升级方法包括以下步骤:

S201、DSP芯片的缓冲区接收多个升级代码片段。

本实施例中,上位机的转换部署软件首先对升级代码完成二进制编译结果,一般为OUT格式,然后通过网络通信技术将控制软件的二进制编译结果传送到控制器的单片机的网络传输缓冲区。

其中,按函数或者功能模块将升级代码划分成的多个升级代码片段。编译成功以后的二进制输出文件需要进行格式转换和页面分割,将DSP开发环境生成的OUT格式的文件转换成推送升级所需要的片段式的二进制流。

S202、将待升级代码片段固化到DSP的FLASH存储空间内,得到固化的待升级代码片段,得到固化的待升级代码。

其中,所述将待升级代码片段固化到DSP的FLASH存储空间内,得到固化的待升级代码片段,具体包括:

将待升级代码片段进行格式转换,将转换后的升级代码片段固化到DSP的FLASH存储空间内,得到固化的待升级代码片段。

其中,软件动态升级部分的工作只能够升级正在运行的程序映像,系统断电重启或者软件复位的时候,这些修改会丢失。为了防止重启或者复位时所做的修改丢失的现象发生,需要将正在运行的软件固化到FLASH存储空间。程序运行时的内存影像并不是直接的目标FLASH映像,要进行一次格式转换才可以变成烧录的FLASH存储内容映像。最后通过预先设定的FLASH烧录模块以完成FLASH内容的更新。软件在线更新完成以后,DSP不需要重新启动就可以引导新版本的控制软件运行。

S203、在固化的待升级代码片段未被执行的时间内,DSP芯片将所述固化的待升级代码片段替换为所述升级代码片段,以完成DSP控制系统软件的升级。

上述方法能够有效防止重启或者复位时所做的修改丢失的现象发生。

图3示出了本发明另一实施例提供的一种DSP控制系统软件升级方法的流程示意图;其中,图3的步骤S301和S303与前述图1示出的步骤S101和S102相同,在此不再赘述。图3还包括下述的步骤:

S302、对所述多个升级代码片段进行校验,得到校验后的升级代码片段。

上述方法通过加入校验的步骤,使得DSP控制系统软件升级安全可靠。

具体的,本发明提供的DSP控制系统软件升级技术由软硬件技术协同完成。DSP的软件更新以往的方法都是使用专用的烧录器,以JTAG的方式与芯片建立硬件连接,芯片对应的专用开发环境完成软件编写以后,使用专用的烧录软件将编译结果下载到片上的RAM进行在线运行或者片上的FLASH进行离线运行。本发明技术方案是将软件编译的结果,通过网络接口芯片W5300传输到DSP芯片,然后通过其FLASHAPI将对应的编译结果写入片上FLASH,进而完成不需要JTAG接口的软件升级。

硬件设计需要采取如图4的构架,DSP芯片能够与外部通过W5300等网络接口芯片进行通信。软件开发工作站需要配置基础的软件开发环境,配备网络传输设备,并与DSP芯片建立以太网络通信。

软件部分由两大部分构成,上位机转换部署软件和DSP上的通信伺服模块。上位机的转换部署软件首先完成二进制编译结果,一般为OUT格式。编译完成以后,根据编译结果中符号表的信息,将OUT格式的文件按照函数或者功能模块拆分成若干片段,交给网络传输模块发送到DSP端。DSP端的网络伺服模块接收到更新数据并完成校验以后,在控制任务空闲的时间片里,完成代码的实时替换。当所有需要更新的代码片段完成传输和替换以后,软件动态升级部分的工作完成。

软件动态升级部分的工作只能够升级正在运行的程序映像,系统断电重启或者软件复位的时候,这些修改会丢失,所以需要将正在运行的软件固化到FLASH存储空间。程序运行时的内存影像并不是直接的目标FLASH映像,要进行一次格式转换才可以变成烧录的FLASH存储内容映像。最后通过预先设定的FLASH烧录模块以完成FLASH内容的更新。软件在线更新完成以后,DSP不需要重新启动就可以引导新版本的控制软件运行。

本实施例中DSP控制系统软件升级方法的工作流程如图5所示。

501、软件编写;

502、嵌入网络传输和启动控制模块;

503、编译;

504、判断是否成功,若是,则执行步骤505,若否,则执行步骤501;

505、格式转换;

506、页面分割;

507、网络传输发送;

508、网络传输接收;

509、在线拼装;

510、判断是否运行新版本,若是,则执行步骤514,若否,则执行步骤511;

511、BootLoader逆向转换;

512、FLASH烧录;

513、重新启动;

514、新版本运行。

具体的,对其中的步骤进行详细的解释如下:

在软件编写环节,按照以往的设计流程对业务软件进行设计和编辑。启动编译之前,DSP开发的IDE环境需要自动嵌入网络传输和自启动控制相关的软件模块,然后将整合以后的软件进行整体编译。编译过程如果出现错误,则需要回退到设计和编辑阶段,对代码做相应的调整。

编译成功以后的二进制输出文件需要进行格式转换和页面分割,将DSP开发环境生成的OUT格式的文件转换成推送升级所需要的片段式的二进制流。转换成功以后,软件开发工作站中的网络传输模块启动,将二进制流按照页面为单位传送到目标DSP的缓冲存储空间。

DSP当前运行的软件中,网络传输模块接收到升级数据以后,启动在线拼装过程。拼装过程中,伺服模块挪用控制周期中的空闲时间,将对应的二进制代码完成运行代码的运行时更新。运行时的更新过程不需要中断控制程序的运行。运行代码的在线拼装过程完成同时意味着软件升级动态部分的完成。

软件动态升级部分的工作只能够升级正在运行的程序映像,系统断电重启或者软件复位的时候,这些修改会丢失,所以需要将正在运行的软件固化到FLASH存储空间。程序运行时的内存影像并不是直接的目标FLASH映像,要进行一次格式转换才可以变成烧录的FLASH存储内容映像。最后通过预先设定的FLASH烧录模块以完成FLASH内容的更新,完成完整的软件在线更新。以后DSP重新启动的时候,就可以引导新版本的控制软件运行。

在这种系统构架之下,本发明的创新点是通过网络通信能力将控制软件的二进制编译结果传送到控制器的单片机的网络传输缓冲区。经过校验以后,单片机上的伺服程序以调试中断的方式将对应的二进制代码完成运行代码的运行时更新。传输过程以代码的片段为单位,每次更新过程的数据量控制在1KB以内,增量式的对所有代码完成更新以后,启动运行镜像到FLASH内容的转换过程,并将转换以后的内容存储(烧写)到片上或者片外的Flash中完成固化代码的更新。烧写过程以后台方式运行不影响DSP上程序的持续运行,烧写结束以后也不需要DSP进行重启。当控制器进行检修或者更大规模维护的时候,重新启动过程将使用新版本的控制程序引导启用,进而完成软件系统的全面升级。

图6示出了本发明一实施例提供的DSP控制系统软件升级装置的结构示意图,如图6所示,本实施例的DSP控制系统软件升级装置包括:

接收单元601,用于接收多个升级代码片段;

升级单元602,用于在待升级代码片段未被执行的时间内,将所述待升级代码片段替换为所述升级代码片段,以完成DSP控制系统软件的升级。

在本发明的一个优选的实施例中,所述装置还包括图6未示出的:

固化单元603,用于将待升级代码片段固化到DSP的FLASH存储空间内,得到固化的待升级代码片段。

在本发明的一个优选的实施例中,所述多个升级代码片段具体为:

按函数或者功能模块将升级代码划分成的多个升级代码片段。

在本发明的一个优选的实施例中,所述装置还包括图6未示出的:

校验单元604,用于对所述多个升级代码片段进行校验,得到校验后的升级代码片段。

在本发明的一个优选的实施例中,所述固化单元603具体用于:

将待升级代码片段进行格式转换,将转换后的升级代码片段固化到DSP的FLASH存储空间内,得到固化的待升级代码片段。

可理解的是,上述装置与上述方法是一一对应的关系,上述方法中的实施细节也适用于上述装置,因此,本实施例不再对上述装置的具体实施细节进行详细描述。

上述装置采用网络传输的方式将控制软件的二进制编译结果分片进行更新到DSP的运行内存空间,并在后台时间转换并下载到FLASH存储空间,避免了在线升级时对专用烧录器和烧录接口的依赖,减少了对网络缓冲区的需求压力,并且能够以不中断DSP运行的方式完成软件修改和升级。

本领域技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在于该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是互相排斥之处,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

最后应说明的是:本领域普通技术人员可以理解:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。

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