首页> 中国专利> 通过控制模块主备用方式实现远程下载的系统及其方法

通过控制模块主备用方式实现远程下载的系统及其方法

摘要

本发明公开了一种通过控制模块主备用方式实现远程下载的系统及其方法,方法如下:检测主控制模块运行状态产生故障,给出故障信号,并通知从控制模块:检测从控制模块运行状态正常,向仲裁模块、主控制模块发送正常信号,申请控制权:发送选通控制信号,从控制模块根据选通控制信号获得系统控制权,运行于应用程序区,执行下载信息解析和转发操作;主控制模块运行于引导程序区,根据下载信息,更新自身应用程序,实现下载升级。本发明的方法,由于采用一控制模块运行在应用程序区,传输下载信息;另一控制模块运行于引导程序区完成下载升级的方式,克服了因引导程序空间不足,无法实现复杂的远程下载问题,降低了下载升级费用、提高响应的及时性。

著录项

  • 公开/公告号CN101409641A

    专利类型发明专利

  • 公开/公告日2009-04-15

    原文格式PDF

  • 申请/专利权人 中兴通讯股份有限公司;

    申请/专利号CN200810217513.2

  • 发明设计人 熊勇;

    申请日2008-11-04

  • 分类号H04L12/24(20060101);H04L1/22(20060101);H04L29/08(20060101);

  • 代理机构

  • 代理人

  • 地址 518057 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦法务部

  • 入库时间 2023-12-17 21:44:58

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2011-04-06

    授权

    授权

  • 2009-06-10

    实质审查的生效

    实质审查的生效

  • 2009-04-15

    公开

    公开

说明书

技术领域

本发明涉及远程下载的系统及方法,尤其涉及通过控制模块主备用方式实现远程下载的系统及其方法。

背景技术

随着技术的发展和人们生活水平的提高,越来越多的工业控制、医疗、通讯、消费等电子产品日趋智能化,以微处理器(MCU)为核心的嵌入式系统的应用日益广泛,对这些智能化设备进行管理也成为嵌入式应用的一个重点。用户可以通过设备所提供的智能接口,如串口、并口、以太网口等,经由互联网INTERNET、调制解调器MODEM、通用分组无线业务GPRS、低压电力线载波等传输通道,在网管中心实现“三遥(遥测、遥信、遥控)”功能;对其进行配置、管理和监控。基于TCP/IP的以太网接口是未来的发展方向。

一般来说,厂商售出嵌入式设备后,还要承担相应售后服务。经常会有如下情况:随着设备在各地的运行,逐步会暴露出很多设计时没有考虑到的缺陷或故障;这时候需要厂家更改软件,进行升级;另外,不同的用户在使用时也会提出不同的需求和变更,也需要厂家进行软件的定制或升级。

通过出差到用户处,对出售的嵌入式设备进行软件现场升级和维护,显然会增加厂商的维护成本,同时服务及时性较差。软件在现场升级时,可能需要用专业编程器、或者通过在应用中编程(IAP,In ApplicatonProgramming)来实现。显然,IAP实现要简单、方便得多。目前,C8051F、SST89C54、uPSD32、ATMEGA128等等众多在市场上流行的8位微处理器MCU,都具备内置FLASH功能,并且都支持在应用中编程IAP,非常方便软件的现场升级。

一般情况下,8位微处理器MCU程序空间很有限。如ATMEL公司的ATMEGA128,具备128KB的程序空间;ATMEGA2561,具备256KB的程序空间;但是,支持IAP的引导程序BOOT空间都只有8KB。由于引导程序BOOT空间太小,无法容纳TCP/IP、档案传输协议ZMODEM等复杂的协议栈,因此,只能支持简单协议的现场下载,无法通过INTERNET、MODEM等方式实现远程下载。

因此,现有技术还有待于改进与发展。

发明内容

本发明的目的在于提供通过控制模块主备用方式实现远程下载的系统及其方法,减少系统维护费用,提高软件下载升级的及时性,快速方便地实现真正的远程下载。

本发明的技术方案如下:

一种通过控制模块热备份实现远程下载的系统,其中,所述系统包括:控制模块、仲裁模块、用户应用电路;所述仲裁模块分别与所述控制模块、所述用户应用电路通讯连接;

所述控制模块又包括:主控制模块、从控制模块;

所述仲裁模块,用来通过检测控制模块运行状态,产生选通控制信号对控制模块进行选通仲裁;

所述控制模块,用来执行下载数据信息的传输操作、或执行远程下载升级操作;

所述用户应用电路,为系统提供相应的接口电路。

所述的系统,其中,所述控制模块为微处理器。

所述的系统,其中,所述仲裁模块包括双口随机存储器,所述双口随机存储器又分为三个信息区:系统信息区、主控制模块信息区、从控制模块信息区;

所述系统信息区,用来存储当前系统信息;

所述主控制模块,用来存储主控制模块信息;

所述从控制模块,用来存储从控制模块信息。

所述的系统,其中,所述仲裁模块还包括两个电池及其供电电路,所述电池与外电源并联,形成三路取电方式。

所述的系统,其中,所述用户应用电路包括远程下载接口电路。

一种通过控制模块热备份实现远程下载的方法,其步骤如下:

A、检测主控制模块运行状态产生故障,给出故障信号,并通知从控制模块:

B、检测从控制模块运行状态正常,向仲裁模块、以及主控制模块发送运行正常信号,并申请系统控制权:

C、向从控制模块发送选通控制信号,从控制模块根据选通控制信号获得系统控制权,运行于应用程序区,执行远程下载后台与主控制模块间下载数据信息的解析和转发操作;

D、主控制模块运行于引导程序区,根据所述下载数据信息,更新自身应用程序,实现下载升级。

所述的方法,其中,所述D步骤之后还包括:主控制模块申请系统控制权,并获得系统控制权,转入应用程序区,执行远程下载后台与从控制模块间下载数据信息的解析和转发操作。

所述的方法,其中,所述D步骤之后还包括:所述从控制模块放弃系统控制权,转入引导程序区,根据远程下载后台与从控制模块间的下载数据信息,更新自身应用程序,实现下载升级。

本发明提供的一种通过控制模块主备用方式实现远程下载的系统及其方法,其方法,由于采用了从控制模块根据选通控制信号获得系统控制权,运行于应用程序区,执行远程下载后台与主控制模块间下载数据信息的传输操作;主控制模块运行于引导程序区,根据所述下载数据信息,更新自身应用程序,实现下载升级的方式,克服了现有技术由于引导程序BOOT空间不足,无法实现复杂的远程下载的问题,同时降低软件下载升级的费用、提高响应的及时性,保障了下载程序期间,系统可以正常工作,提高了系统可靠性。

附图说明

图1为本发明的系统结构示意图;

图2为本发明的双口RAM存贮区分配图;

图3为本发明的仲裁模块方案示意图;

图4为本发明的主从控制模块MCU实现远程下载运行示意图;

图5为本发明的仲裁器方案示意图;

图6为本发明的双口RAM、电池供电电路图;

图7为本发明的仲裁器电路图;

图8为本发明的控制模块MCU软件程序流程图;

图9为本发明的控制模块下载程序流程图。

具体实施方式

下面结合附图对技术方案的实施作进一步的详细描述。

下面结合附图对本发明的各较佳实施例进行更为详细的描述。

本发明的核心思想是借用MCU的应用程序空间远比引导程序BOOT区间大,能够胜任远程下载复杂应用的特点,通过双MCU主备用方式,借用一块MCU的应用程序实现远程下载复杂协议和近端IAP简单协议的转发,另一块MCU执行的下载操作。通过仲裁模块上双路电池供电的双口RAM,实现主控制模块、从控制模块的高速数据保存和交换;通过一个简单可靠的仲裁器模块,实现控制模块的选通;软件上,两块主从控制模块同时工作,交换数据,比较判断,分析侦查故障点,保障正常无故障的控制模块拥有系统的控制权。拥有系统控制权的控制模块,运行于应用程序区,有足够的程序空间,通过远程下载接口电路,接收下载数据,通过I2C、同步串行外设接口SPI、通用异步接收/发送装置UART等内部总线和简单协议,传递到另一个控制模块的引导程序BOOT;在另一个控制模块的引导程序BOOT程序内部,通过IAP方式,更新自身的应用程序。反之亦然。通过两块控制模块主备用方式的方式,实现远程下载。

本发明的远程下载装置,如图1所示,其包括:主控模块、从控模块、仲裁模块、用户应用电路,所述仲裁模块分别与所述主控模块、从控模块通讯连接,所述仲裁器模块还与所述用户应用电路通讯连接;

所述仲裁模块,用来通过检测两控制模块的状态,产生片选信号仲裁其中一正常控制模块获得控制权、选通,使其形成选通控制模块,则另一控制模块为未选通控制模块;

所述用户应用电路包括:远程下载接口电路,所述远程下载接口电路可以为以太网接口电路或MODEM接口电路等等,其可以根据需要直接放置到用户应用电路中,也可以不在用户应用电路中。

所述仲裁模块又包括有:仲裁器电路、双口RAM、电池、供电电路;所述用户应用电路还包括:缓存电路、三态隔离电路;

所述缓存电路,为所有输入到控制模块的信号提供信号通道;

所述三态隔离电路分别与两控制模块相连,同时还与所述仲裁模块相连。由所述仲裁模块产生片选信号来确定所述三态隔离电路与哪一控制模块通讯相通;

所有控制模块的输入信号通过缓存电路,同时进入两控制模块;而其他输出、双向传输信号,通过三态隔离电路,与两块控制模块相连;三态隔离电路,由仲裁器产生的片选信号来选通;

所述控制模块,用来检测输入的信息量,并且根据检测信息和双口RAM的信息;输出必要的控制量,而这些控制量是否能够有效输出,则由仲裁模块的选通信号决定;

所述仲裁模块,用来检测两个控制模块的状态,并根据他们的状态产生片选信号,决定哪一控制模块获得控制权;获得控制权的控制模块,称为选通控制模块,能够将其所有信号线与用户应用电路连通,同时驱动输出锁存器;另外一控制模块则为未选通控制模块,其不具备控制输出的功能,但仍然可以检测输入信号;随时做好接收控制权,成为选通控制模块的准备;

所述双口RAM存贮空间分为三部分如图2所示。第一部分为系统区,存贮着当前系统的配置、参数、控制等信息;第二部分为主控制模块信息存贮区、第三部分为从控制模块信息存贮区;分别存贮着主控制模块、从控制模块的输入采集信息、状态、告警、以及控制输出信息等。两块控制模块都能够访问双口RAM的全部地址空间;实现信息交换。两块控制模块还能够实现配置、控制信息的同步更新;同时,各控制模块复位后,能够第一时间读取系统区信息,自动更新自身的配置和参数信息。第二、三部分信息存贮区,都能够被两块控制模块访问;这样,这两个控制模块能够彼此互通,获悉自己和对方的所有信息,可以方便判断自身和对方是否存在故障,以及故障存在的可能位置;并以此判断决定,应该由哪一个控制模块投入运行;输出正确的信号给仲裁模块;由仲裁模块产生最终的片选信号。

控制输出信号具有锁存功能。这样,即使两个控制模块都出现故障,控制输出信号依旧可以维持以前的正确状况,不会产生紊乱,不会对系统造成影响;

仲裁模块为了保存数据,增加电池和供电电路,采用两个电池、以及外电源并联,形成三路取电方式,确保双口RAM和输出控制锁存器的供电稳定。同时,为了确保双口RAM的正常访问,即确保电源波动或者异常的情况下,双口RAM中数据的稳定;所述仲裁模块还增加了非易失性随机访问存储器NVRAM控制器,断电后仍能保持数据,如图3所示。

本发明的通过控制模块主备用方式实现远程下载的方法,两个控制模块程序相同,除完成必要的业务操作,还包括以下步骤:

S1、启动控制模块,并进行初始化和自检操作;

判断控制模块否存在故障;如有故障,向仲裁模块和另一控制模块发出故障信号;

S2、初始化和自检通过后,首先从双口RAM系统信息区取出系统配置和参数信息,进行必要的校验,判断所述系统配置和参数信息是否正确;

S3、当所述系统配置和参数信息正确,则将其更新到控制模块内;

当所述系统配置和参数信息错误,则在控制模块内部存贮器中,读取自身保存的信息;经过相同的校验后,对双口RAM系统区信息进行更新。对于多数嵌入式应用而言,控制模块具有内部存贮器,避免掉电丢失重要信息;

S4、必要时,取出双口RAM中主控制模块、从控制模块信息存贮区信息,确保获取连续的正确信息,不因控制模块的切换造成信息波动;

S5、检测当前控制模块状态,若当前控制模块为主控制模块,则所述当前控制模块向仲裁模块和另一控制模块即从控模块送出系统正常信号“MAST_OK”,并且定时送出运行信号“MAST_RUN”,表明软件运行正常;

S6、主控制模块,定期读取双口RAM系统区信息,根据读取的配置和参数信息,对系统进行监测和控制;并把监测和控制的信息保存到主控制模块信息存贮区。同时定期读取从控制模块信息存贮区内容;并将主控制模块、从控制模块信息存贮区信息进行对比,若主控制模块故障,就发出系统故障信号“MAST_ERROR”,通知从控制模块。

S7、从控制模块,定期读取双口RAM系统区信息,根据读取到的配置和参数信息,对系统进行监测和控制;并把监测和控制信息保存到从控制模块信息存贮区。定期读取主控制模块信息存贮区信息;并且对比主控制模块、从控制模块信息存贮区信息,若从控制模块系统故障,则发出系统故障信号“SLAVE_ERROR”;否则,发出系统正常信号“SLAVE_OK”;

S8、当所述从控制模块发现本从控制模块运行正常,且检测到主控制模块发出的“MAST_ERROR”信号;则向仲裁模块和主控制模块定时送出运行信号“SLAVE_RUN”,表明软件正常运行,并且申请获得控制权,接管系统;

S9、仲裁模块检测到从控制模块的在位运行信号“SLAVE_EXT”、系统正常信号“SLAVE_OK”和系统运行信号“SLAVE_RUN”后,发出选通控制信号,通知整个系统,则从控制模块获得控制权,成为选通控制模块;

S10、只有获得控制权的选通控制模块,才可以对双口RAM系统信息存贮区进行写操作。但无论是否是选通控制模块,都可以对全部双口RAM空间进行读操作。

S11、获得控制权的选通控制模块,才能够控制输出;但无论是否选通,控制模块都可以接收输入信号;

以下步骤为主从控制模块实现远程下载的过程,如图4所示。

S12、成为选通控制模块的从控制模块运行在应用程序区,完成正常的业务功能。同时通过下载接口和协议栈(如TCP/IP),接收远程下载的数据;

S13、所述从控制模块根据判断远程后台请求下载命令,触发成为未选通控制模块的主控制模块转入到引导程序BOOT空间进行运行,执行下载升级操作;

S14、所述从控制模块完成远程下载后台和所述主控制模块间的通讯转发功能;比如完成复杂的TCP/IP、ZMODEM协议和内部简单的SPI、I2C协议之间的转发;

S15、所述主控制模块运行于引导程序BOOT区,把下载接收的数据,通过IAP,对自身的应用程序区进行编程,即执行远程下载升级;

S16、所述主控制模块完成远程下载升级后,通知所述从控制模块和远程下载后台结束下载操作;同时所述主模块跳转到应用程序区,正常运行业务代码;

S17、如果所述主控制模块下载升级成功,还可以通知从控制模块和远程下载后台,是否也对当前从控制模块进行下载升级。如果需要,则主控制模块申请控制权,被选通,形成选通控制模块,而从控制模块放弃控制权,形成未选通控制模块;

S18、所述主控制模块申请控制权成功后,接管系统;同时触发从控制模块转入到引导程序BOOT空间进行运行,执行下载升级操作;

S19、重复步骤S12至S16,即完成另一个控制模块的下载升级操作。

采用本发明所述方法和装置,与现有技术相比,完全实现了MCU的远程下载功能;并且通过MCU主备用方式的方式;达到了下载过程中不影响正常业务的运行效果;即使下载错误或者中止,还能以原先的版本正常运行;具备很好的实用性和可靠性

本实施例以通信电源上的监控单元为作为控制模块实现远程下载为例进行更为详细的描述。监控单元使用以ATMEL公司8位(8根数据线,8位指令)微处理器ATMEGA128为核心,构建成监测和控制通信电源系统的嵌入式应用。其中,ATMEGA128具备128KB的片上FLASH,另外有4KB的片上RAM、4KB的电可擦写可编程只读存储器EEPROM。128KB的片上FLASH为程序空间,分配120KB作为应用程序(APPLICATION)区,8KB作为引导程序BOOT区;引导程序BOOT区间可以对APPLICATION区进行自编程,即IAP。使用两片ATMEGA128构成主从控制模块。控制模块和用户应用电路间信号都通过三态缓冲器74LS245/74LS244实现缓冲和隔离。用户应用电路中,通过RTL8019构成以太网接口,实现TCP/IP通讯和远程下载。

仲裁模块一个重要的部分就是仲裁器。仲裁器通过检测主从控制模块的运行状态,产生片选信号,以此来决定哪一个控制模块获得控制权。这是一个非常重要和关键的部分。因此,仲裁器的设计必须极其可靠。元器件最少、电路最简单、无软件参与,可以保障极高的可靠性。本实施例选用了一个74HC123单稳触发器、一个74HC02逻辑门和几个电阻电容即完成了仲裁,如图5所示。本仲裁器具备主控制模块优先级原则。只有当从控制模块在位(信号“SLAVE_EXT”有效)、从控制模块运行正常(信号“SLAVE_OK”有效)和从控制模块软件周期性的运行正常(信号“SLAVE_RUN”有效),三者同时满足后,从控制模块才能获得控制权。这三个信号都是从控制模块发出的信号。换言之,如果主控制模块产生故障且从控制模块正常,则从控制模块获得控制权;否则主控制模块获得控制权。

同时,仲裁模块上还有双口RAM供两块控制模块数据的保存和交换;有电池和NVRAM控制器保障掉电不丢失数据。如图6所示,这里选用了IDT7006作为双口RAM,它提供了两套总线供两个MCU进行访问。L_AB、L_DB表示左边MCU(即主控模块)的地址、数据总线;RD_L、WR_L、CS7006_L分别表示左边MCU(即主控模块)的读、写和片选信号。同理,WR_R、CS7006_R分别表示右边MCU(即从控模块)的写和片选信号。选择了DS14287作为NVRAM控制器,这是为了保证IDT7006掉电数据不丢失。由于IDT7006具备主、从控制模块译码访问使用的两个片选信号;因此,需要两块DS14287。另外,DS14287具有内部的锂电,因此,不需要再外加电池。同时,两块锂电并联工作,可靠性更高。为了并联锂电,采用两个理想二极管LTC4411,理想二极管具备极低的正向压降。另外,又从外电源通过一个肖特基二极管并联供电。这样,通过三路取电,保障了双口RAM的可靠供电,如图7所示。

两块控制模块的输出信号,通过选通控制信号,经由隔离驱动器后并联,再由锁存器输出。这样,可以保证两个控制模块同时故障时,控制输出的信号都能维持不变。

主、从控制模块可以同时完成一定的信号采集和控制、通讯等应用。所有的接口信号线,MCU的数据、地址、控制总线,进入仲裁模块供双口RAM使用;通过选通控制信号,从隔离驱动器连接到用户应用电路。

控制模块接收来自仲裁模块上的主从控制信号,从而获知本控制模块是主控制模块,还是从控制模块。控制模块还接收来自仲裁模块上的仲裁信号,从而获知本控制模块是否选通,是否拥有控制权。两块控制模块间还有至少三个互相通讯的信号,即在位(EXT)、系统正常(OK)和运行信号(RUN)。每个控制模块都把自身的这三个信号送给对方,同时检测对方的这三个信号。当从控制模块发现自身一切正常,而对方主控制模块产生故障时,则向仲裁器申请控制权。仲裁器检测到从控制模块这三个信号都正常后,则选通从控制模块;否则主控制模块被选通。

两块控制模块,软件程序相同,其软件程序流程如图8所示,具体步骤如下:

S801、首先初始化控制模块MCU以及外设;

S802、对系统硬件进行自检,判断控制模块MCU是否故障;

S803、若MCU发生故障,则送出故障信号;不进行软件程序运行;

S804、读取双口RAM系统区的系统配置和参数信息;进行信息校验,若校验正确,则更新本控制模块MCU上自己保存的系统配置和参数信息。检测仲裁器送来的选通控制信号,获得控制权,成为选通控制模块,同步更新自己保存的系统信息和双口RAM系统区信息,即完成对系统区的写操作,否则只能对双口RAM系统区的读操作;

S805、读写双口随机存储器RAM的信息区,并且进行校验;

S806、更新双口随机存储器控制模块信息区,主控制模块读写第二数据区;从控制模块读写第三数据区;

S807、运行业务代码,即进行监测和控制操作;

S808、读取双口RAM中第二、三数据区信息,并进行分析,比较判断主从控制模块是否正常;

本控制模块如果正常,送出OK信号,否则,送出ERROR信号;

S809、检测本控制模块是否为主控制模块,若是,则送出周期运行RUN信号;

S810、如果本控制模块是从控制模块,则检测判断主控制模块是否正常;如果产生故障,从控制模块送出周期运行RUN信号,向仲裁器申请控制权;

以下步骤是控制模块实现远程下载的流程,如图9所示。

L901、选通从控制模块运行于应用程序区(运行TCP/IP协议),接收来自远程下载后台的数据;

如经过裁减后的uIP TC/IP协议栈大概只需要10KB左右的程序空间。显然,即使经过裁减,协议栈空间还是超过引导程序BOOT空间最大的8KB。因此,必须采用这种方法,在应用程序区,实现远程下载;

L902、选通从控制模块设置为客户端(或者服务器),解析远程下载后台发来的数据信息:

当作为服务器时,选通从控制模块监听某一个端口(如1025口);

当作为客户端时,选通从控制模块正常工作后,自动连接远程的TCP代理,选通从控制模块解析远程下载后台发来的数据;

L903、判断发送的远程下载请求命令;

L904、选通从控制模块通过UART接口,通知未选通主控制模块转入引导程序BOOT区,启动下载;

L905、未选通主控制模块正确转入到引导程序BOOT区后,选通从控制模块把来自以太网接口的数据,通过UART接口,转发给未选通主控制模块;同时,把未选通主控制模块回传的数据通过以太网接口,发给远程下载后台,即选通从控制模块转发远程下载后台和未选通主控制模块引导程序BOOT间的下载数据;

L906、未选通主控制模块运行于引导程序BOOT中,更新自身的应用程序,即完成下载升级操作;

L907、未选从通控制模块完成了下载后,转入应用程序区,正常运行;

L908、判断选通从控制模块是否需要下载;

L909、当选通从控制模块需要下载程序,同时检测到升级后的未选通主控制模块运行正常后;则未升级的选通从控制模块放弃控制权,成为未选通从控制模块,并跳转到引导程序BOOT区,执行下载升级操作这时,未选通主控制模块获得了控制权成为选通主控制模块,否则退出;

重复步骤L906至L909,即完成另一控制模块的程序下载;

返回步骤L903,无限循环运行。

本发明的系统和方法,在硬件上通过简单可靠的仲裁器,结合软件的正常运行,实现双控制模块MCU的运行切换;软件上借用控制模块MCU的应用程序空间远比引导程序BOOT区间大,能够胜任远程下载复杂应用的特点,通过双控制模块MCU主备用方式的方式,借用一块控制模块MCU的应用程序完成远程下载复杂协议解析和近端IAP简单协议的转发,来实现另一块控制模块MCU的下载。反之亦然。通过两块控制模块交叉升级的方式,最终巧妙地实现了远程下载,同时,保障了下载程序期间,系统能够正常工作,提高了系统可靠性。

应当理解的是,上述具体实施例的描述较为详细,不能因此而理解为对本发明专利保护范围的限制,本发明专利保护范围应以所附权利要求为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号