CN101957764A - 一种远方终端程序远程更新的方法 - Google Patents
一种远方终端程序远程更新的方法 Download PDFInfo
- Publication number
- CN101957764A CN101957764A CN2010102429278A CN201010242927A CN101957764A CN 101957764 A CN101957764 A CN 101957764A CN 2010102429278 A CN2010102429278 A CN 2010102429278A CN 201010242927 A CN201010242927 A CN 201010242927A CN 101957764 A CN101957764 A CN 101957764A
- Authority
- CN
- China
- Prior art keywords
- data
- program
- processor
- communication unit
- check code
- 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
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种远方终端程序远程更新的方法,可提高远程程序更新的成功率,极大地避免假成功现象。本发明主要就主站系统或上位机对远方终端程序远程更新时所涉及的若干环节,对这些环节进行针对性的数据正确性有效校验和纠错处理。该方法主要由以下几个环节步骤组成:(1)从主站或上位机发送更新程序数据到远方终端通讯管理单元的可靠性校验及纠错处理;(2)从远方终端的通讯管理单元发更新程序数据到处理器的可靠性校验及纠错处理;(3)处理器将接收到的更新程序数据包存储到外扩并行RAM中的可靠性校验及纠错处理;(4)从外扩并行RAM中读取更新程序数据包到处理器,并写入其FLASH的可靠性校验及纠错处理。
Description
技术领域
本发明涉及一种远方终端程序远程更新的方法。
背景技术
近些年来,电力行业飞速发展,集中体现在电力自动化程度不断提升,这为国民经济的快速发展奠定了坚实基础。电力自动化的程度取决于应用在电力领域的保护、测控终端的智能性和此类终端的数量。随国家电网公司在配电网领域的大力投入,在城市配电网自动化建设当中,数以万计的配网终端投入运行,而且此类终端有一个共同的特点是:分布分散、数量庞大和运行环境恶劣。由此为此类终端未来的维护(这里主要指功能升级)带来极大的困难。
随着IT技术发展,不少远方终端均已具有远程进行程序更新的功能,以解决维护人员对远方终端维护工作量大的问题,但失败率较大,且即使程序表面更新成功,也可能因个别数据在数据传输或者目标代码固化在FLASH过程中出错,而实际短时运行观测不易发现功能异常。(下文称此种情况为“假成功现象”)。应用于电力领域的远方终端,如果出现这种程序更新假成功,将对电网带来未知的致命危害。
发明内容
本发明所要解决的技术问题是克服现有技术的不足,提供一种远方终端程序远程更新的方法,极大地提高远方终端远程程序升级的可靠性,避免了上述的假成功现象。
本发明所采用的技术方案是:本发明是用于上位机对远方终端的程序进行升级,所述远方终端包括通讯单元、处理器以及外扩RAM,其特征在于,所述方法包括以下步骤:
(1)上位机在待更新程序的目标代码数据文件中添加CRC32校验码合并后发送至通讯单元;
(2)通讯单元接收合并后的数据文件对其进行CRC32校验,并将校验结果反馈给上位机;
(3)通讯单元将目标代码数据文件分包按照自定义规约下发至处理器,发送结束后处理器对每帧数据均进行CRC32校验,并将校验结果反馈给通讯单元;
(4)对接收的每帧数据进行解析分离出数据部分,生成CRC16校验码并将
(5)处理器从外扩RAM中按包读取数据并进行CRC16校验,如校验正确则固化在处理器程序存储FLASH中。
上述步骤(2)、(3)中CRC32校验过程具体为接收方对接收数据计算生成新的CRC32校验码,并与发送方添加的CRC32校验码对比,并将对比结果反馈给发送方。
上述步骤(5)中CRC16校验过程为从外扩RAM中按包读取数据通过计算生成新的CRC16校验码,并与步骤(4)中添加的CRC16校验码对比,从而判断是否擦除FLASH存储空间。
进一步来说,所述CRC32校验码、CRC16校验码添加至数据部分的首端或末端。
具体操作方案中,如果步骤(2)中校验错误,则通讯单元自动删除该文件,反之执行下一步。
具体操作方案中,在步骤(1)中将待更新程序的目标代码转换成数据流文件,并以FTP方式发送至通讯单元。
本发明的有益效果是:本发明提供的方法主要就主站系统或上位机对远方终端程序远程更新时所涉及的若干环节(该些环节可能引起更新程序数据出错,进而导致程序更新失败或假成功),对这些环节进行针对性的数据正确性有效校验和纠错处理。在上述步骤(2)中进行CRC32校验,保证了上位机与通讯单元之间文件传输的准确性;在步骤(3)中对分发的每帧数据均进行CRC32校验,保证了通讯单元与处理器之间数据传输的准确性,确保存储在RAM中的数据正确;在步骤(5)中对从外扩RAM中按包读取数据进行CRC16校验,保证了处理器与外扩RAM之间数据传输的准确性,确保通过二者之间并行总线读取数据的正确。综上所述,通过以上三个有可能受到意外干扰导致升级数据出错的通讯过程进行控制,极大提高远程程序升级的可靠性。
附图说明
图1是作为本发明硬件基础的系统原理框图;
图2是本发明实现方法的流程示意图。
具体实施方式
本发明涉及的硬件基础是以TI TMS320F2812 DSP为核心的微处理系统,整个硬件原理框图如图1所示。其中远方终端主要由通讯部分和数据处理部分组成,在数据处理部分又由终端核心处理器TMS320F2812(下文称处理器)和终端数据处理平台外扩并行RAM组成。
如图2所示,其中的流程步骤①为带32位CRC校验码的FTP格式下发整个程序文件,步骤②为对FTP文件进行32位CRC校验,步骤③为自定义规约分包下发数据流,步骤④为帧校验并解析,步骤⑤为每包带16位CRC校验码存储,步骤⑥为带16位CRC校验码按包读取目标程序,步骤⑦为带FLASH操作检验并写FLASH。本实施例中所采用的具体技术方案分以下五部说明:
一、上位机基本技术方案:
首先,通过c2000编译环境生成*.OUT目标代码(主要用于就地JTAG对处理器烧写程序),然后调用TI自带数据类型转换工具hex2000,将此*.OUT目标代码,转换成为16进制数据流文件*.Hex。然后,将*.Hex文件数据流生成一个CRC32校验码,并把此CRC32校验码添加在*.Hex文件数据流后面,以某种方式通过一定的信道发送到远方终端。(本发明采用FTP方式通过以太网信道下载该文件)
二、远方终端通讯管理单元(下称通讯单元)基本技术方案:
通讯单元收到*.Hex文件后,进行CRC32校验,校验通过后,数据流分包(每包117个字,主要根据10KV配网行业标准IEC60870-5-101规约每帧最大字节数而定),并把每包数据添加到自定义远程程序升级规约中,通过CAN-BUS下发到处理器,并等待处理器回复,如果收到处理器肯定回复则发送下一帧数据,否则继续发送上帧数据,如果重复多次收到否定回答,则通讯单元主动结束远程升级程序功能。如果通讯单元在已启动远程程序升级的进程,中途超过一定时间未收到处理器的任何确认回复,则通讯单元默认通讯中断,并启动断点续传短帧启动指令,并等待处理器回复断点续传确认。
三、处理器基本技术方案:
按自定义规约接收通讯单元数据,首先进行本帧数据校验(包括帧格式、校验和等),如果校验通过,则将本帧数据进行解析,将*.Hex数据流部分分离,并生成CRC16校验码,并将其CRC16校验码添加在分离后数据末端,然后存储在微处理系统的并行RAM中(例如,如果本帧数据中数据流长度为117个字,则此时存入RAM中的数据长度为118个字),随后再将刚存储在RAM中的数据读出,验证是否存储正确(以确保存储在RAM中的数据正确),如果正确则向通讯单元回复肯定回答,否则重新存储数据并再次读取验证,循环操作超过3次则向通讯单元回复否定回答,等待通讯单元重新下发本帧数据。
当处理器收到通讯单元发送的程序数据发送结束指令(该指令包括本次升级总帧数,程序数据流总字数以及程序数据流CRC32校验码),则将已存储在RAM中的程序数据流分别读出并进行CRC32校验,其结果与通讯单元所发的CRC32校验码比较,相同则向通讯单元回复肯定回答,并擦除处理器程序FLASH存储空间,并将RAM中的程序数据按每118个字读出,并对前117个字节进行CRC16校验(其结果与第118个字进行比较,该步骤主要确保从RAM中读出的数据正确),校验通过则按TI FLASH操作规律直接写入处理器程序存储器中,以此类推直到将所有RAM中程序数据烧写完毕;如果某次从RAM中读数据检验失败,则重新读取并再校验,成功后执行FLASH烧写。
当程序烧写完成后,处理器自动复位,则此时程序将按更新后的程序执行,即程序升级成功。如果,在程序烧写FLASH过程中,连续多次出现失败(如FLASH校验失败或者读RAM数据校验失败),则处理器自动擦除程序存储空间,此时程序升级失败(此时装置硬件故障,终端停止运行)。
四、远程升级的可靠性控制:
本发明设计主要是在以太网通讯方式下(远方终端与上位机或者主站系统之间的通讯),实现对远方终端进行远程程序升级可靠性控制的分步说明。
A:以太网文件传输过程可靠性控制:上位机通过以太网登陆远方终端,将待更新程序目标代码按FTP文件格式(已添加CRC32校验码)下载到远方终端的通讯单元,收到该文件后则通讯单元同样对文件进行CRC32校验。如果②步中校验错误,则通讯单元自动删除该文件,反之执行下一步。
B:CAN-BUS数据传输过程可靠性控制:通讯单元将目标代码分包,按照自定义规约下发,同时③步过程中有确认机制,确保每帧数据传输正确;在③步结束后,处理器将通过CAN-BUS接收到得所有目标码进行CRC32校验,确保存储在RAM中的数据正确。
C:并行总线数据传输可靠性控制:在处理器将RAM中的数据读出并固化在处理器程序存储FLASH时,即⑥步,处理器按包从RAM读取数据(每包118个字),根据前面所述,进行CRC16校验和⑦步,确保通过并行总线读取数据正确。
通过以上三个有可能受到意外干扰导致升级数据出错的通讯过程进行控制,极大提高远程程序升级的可靠性。
五、自定义规约:
下面是为保证数据传输过程的可靠性,自定义了从通讯单元到处理器之间的数据通讯规约。并设通讯单元为主,处理器为子。
1)传送数据开始帧
2)数据帧
3)数据传送结束帧
4)升级命令帧
在配电网远方终端产品中,使用该发明的设计,实验证明,其提高产品远程升级的可靠性,有效杜绝了对远方终端进行远程升级时的假成功现象。
Claims (6)
1.一种远方终端程序远程更新的方法,用于上位机对远方终端的程序进行升级,所述远方终端包括通讯单元、处理器以及外扩RAM,其特征在于,所述方法包括以下步骤:
(1)上位机在待更新程序的目标代码数据文件中添加CRC32校验码合并后发送至通讯单元;
(2)通讯单元接收合并后的数据文件对其进行CRC32校验,并将校验结果反馈给上位机;
(3)通讯单元将目标代码数据文件分包按照自定义规约下发至处理器,发送结束后处理器对每帧数据均进行CRC32校验,并将校验结果反馈给通讯单元;
(4)对接收的每帧数据进行解析分离出数据部分,生成CRC16校验码并将CRC16校验码添加至分离出的数据部分,然后存储在外扩RAM中;
(5)处理器从外扩RAM中按包读取数据并进行CRC16校验,如校验正确则固化在处理器程序存储FLASH中。
2.根据权利要求1所述的一种远方终端程序远程更新的方法,其特征在于,所述步骤(2)、(3)中CRC32校验过程具体为接收方对接收数据计算生成新的CRC32校验码,并与发送方添加的CRC32校验码对比,并将对比结果反馈给发送方。
3.根据权利要求1所述的一种远方终端程序远程更新的方法,其特征在于,所述步骤(5)中CRC16校验过程为从外扩RAM中按包读取数据通过计算生成新的CRC16校验码,并与步骤(4)中添加的CRC16校验码对比,从而判断是否擦除FLASH存储空间。
4.根据权利要求1至3任一项所述的一种远方终端程序远程更新的方法,其特征在于,所述CRC32校验码、CRC16校验码添加至数据部分的首端或末端。
5.根据权利要求1至3任一项所述的一种远方终端程序远程更新的方法,其特征在于,如果步骤(2)中校验错误,则通讯单元自动删除该文件,反之执行下一步。
6.根据权利要求1至3任一项所述的一种远方终端程序远程更新的方法,其特征在于,在步骤(1)中将待更新程序的目标代码转换成数据流文件,并以FTP方式发送至通讯单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102429278A CN101957764A (zh) | 2010-08-02 | 2010-08-02 | 一种远方终端程序远程更新的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102429278A CN101957764A (zh) | 2010-08-02 | 2010-08-02 | 一种远方终端程序远程更新的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101957764A true CN101957764A (zh) | 2011-01-26 |
Family
ID=43485106
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010102429278A Pending CN101957764A (zh) | 2010-08-02 | 2010-08-02 | 一种远方终端程序远程更新的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101957764A (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077097A (zh) * | 2013-02-25 | 2013-05-01 | 国电南瑞科技股份有限公司 | 一种基于tcp方式下可校验的flash数据烧写方法 |
CN103336701A (zh) * | 2013-06-20 | 2013-10-02 | 深圳麦克维尔空调有限公司 | 智能型引导升级方法 |
CN103473088A (zh) * | 2013-08-30 | 2013-12-25 | 北京远特科技有限公司 | 一种单片机在线升级方法和系统 |
CN104021011A (zh) * | 2014-05-09 | 2014-09-03 | 苏州汇川技术有限公司 | 嵌入式设备程序升级系统及方法 |
CN104216714A (zh) * | 2014-09-03 | 2014-12-17 | 东方电气(乐山)新能源设备有限公司 | 基于can总线的dsp程序烧写方法 |
CN104978253A (zh) * | 2015-06-24 | 2015-10-14 | 合肥格易集成电路有限公司 | 一种目标文件校验的方法和装置 |
CN105117253A (zh) * | 2015-08-27 | 2015-12-02 | 常州大学 | 一种基于BootLoader的UV LED固化系统远程升级方法 |
CN105607922A (zh) * | 2015-12-06 | 2016-05-25 | 江苏林洋能源股份有限公司 | 一种时钟免维护固件易升级的智能电能表及其升级方法 |
CN106843959A (zh) * | 2017-01-18 | 2017-06-13 | 株洲变流技术国家工程研究中心有限公司 | 一种fpga远程更新装置及方法 |
CN108153536A (zh) * | 2017-12-20 | 2018-06-12 | 北京华航无线电测量研究所 | 一种动态调整ram空间的dsp在线升级方法 |
CN108174253A (zh) * | 2018-03-09 | 2018-06-15 | 四川天邑康和通信股份有限公司 | 一种无ip地址的iptv终端升级方法 |
WO2020118656A1 (zh) * | 2018-12-14 | 2020-06-18 | 深圳鲲云信息科技有限公司 | 基于文件传输协议的数据传输方法、装置和电子设备 |
CN112328290A (zh) * | 2020-12-04 | 2021-02-05 | 第一拖拉机股份有限公司 | 一种农机数据采集终端程序远程更新方法及系统 |
CN114816805A (zh) * | 2022-04-20 | 2022-07-29 | 中国国家铁路集团有限公司 | Fpga程序配置方法、控制器和系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1818867A (zh) * | 2006-03-24 | 2006-08-16 | 清华大学 | 植入式医疗仪器的软件在线升级方法 |
CN101179791A (zh) * | 2007-12-03 | 2008-05-14 | 中兴通讯股份有限公司 | 一种移动终端软件版本升级的方法 |
US20080154393A1 (en) * | 2006-12-22 | 2008-06-26 | Ipnp Ltd. | SCADA System with Instant Messaging |
CN101325475A (zh) * | 2008-07-10 | 2008-12-17 | 中兴通讯股份有限公司 | 一种嵌入式系统软件远程升级方法 |
-
2010
- 2010-08-02 CN CN2010102429278A patent/CN101957764A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1818867A (zh) * | 2006-03-24 | 2006-08-16 | 清华大学 | 植入式医疗仪器的软件在线升级方法 |
US20080154393A1 (en) * | 2006-12-22 | 2008-06-26 | Ipnp Ltd. | SCADA System with Instant Messaging |
CN101179791A (zh) * | 2007-12-03 | 2008-05-14 | 中兴通讯股份有限公司 | 一种移动终端软件版本升级的方法 |
CN101325475A (zh) * | 2008-07-10 | 2008-12-17 | 中兴通讯股份有限公司 | 一种嵌入式系统软件远程升级方法 |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077097B (zh) * | 2013-02-25 | 2015-08-12 | 国电南瑞科技股份有限公司 | 一种基于tcp方式下可校验的flash数据烧写方法 |
CN103077097A (zh) * | 2013-02-25 | 2013-05-01 | 国电南瑞科技股份有限公司 | 一种基于tcp方式下可校验的flash数据烧写方法 |
CN103336701A (zh) * | 2013-06-20 | 2013-10-02 | 深圳麦克维尔空调有限公司 | 智能型引导升级方法 |
CN103336701B (zh) * | 2013-06-20 | 2016-08-24 | 深圳麦克维尔空调有限公司 | 智能型引导升级方法 |
CN103473088A (zh) * | 2013-08-30 | 2013-12-25 | 北京远特科技有限公司 | 一种单片机在线升级方法和系统 |
CN104021011A (zh) * | 2014-05-09 | 2014-09-03 | 苏州汇川技术有限公司 | 嵌入式设备程序升级系统及方法 |
CN104216714A (zh) * | 2014-09-03 | 2014-12-17 | 东方电气(乐山)新能源设备有限公司 | 基于can总线的dsp程序烧写方法 |
CN104978253A (zh) * | 2015-06-24 | 2015-10-14 | 合肥格易集成电路有限公司 | 一种目标文件校验的方法和装置 |
CN104978253B (zh) * | 2015-06-24 | 2018-02-09 | 合肥格易集成电路有限公司 | 一种目标文件校验的方法和装置 |
CN105117253A (zh) * | 2015-08-27 | 2015-12-02 | 常州大学 | 一种基于BootLoader的UV LED固化系统远程升级方法 |
CN105607922B (zh) * | 2015-12-06 | 2018-12-28 | 江苏林洋能源股份有限公司 | 一种时钟免维护固件易升级的智能电能表及其升级方法 |
CN105607922A (zh) * | 2015-12-06 | 2016-05-25 | 江苏林洋能源股份有限公司 | 一种时钟免维护固件易升级的智能电能表及其升级方法 |
CN106843959A (zh) * | 2017-01-18 | 2017-06-13 | 株洲变流技术国家工程研究中心有限公司 | 一种fpga远程更新装置及方法 |
CN108153536A (zh) * | 2017-12-20 | 2018-06-12 | 北京华航无线电测量研究所 | 一种动态调整ram空间的dsp在线升级方法 |
CN108153536B (zh) * | 2017-12-20 | 2020-12-04 | 北京华航无线电测量研究所 | 一种动态调整ram空间的dsp在线升级方法 |
CN108174253A (zh) * | 2018-03-09 | 2018-06-15 | 四川天邑康和通信股份有限公司 | 一种无ip地址的iptv终端升级方法 |
CN108174253B (zh) * | 2018-03-09 | 2020-10-20 | 四川天邑康和通信股份有限公司 | 一种无ip地址的iptv终端升级方法 |
WO2020118656A1 (zh) * | 2018-12-14 | 2020-06-18 | 深圳鲲云信息科技有限公司 | 基于文件传输协议的数据传输方法、装置和电子设备 |
CN112840317A (zh) * | 2018-12-14 | 2021-05-25 | 深圳鲲云信息科技有限公司 | 基于文件传输协议的数据传输方法、装置和电子设备 |
CN112840317B (zh) * | 2018-12-14 | 2024-06-21 | 深圳鲲云信息科技有限公司 | 基于文件传输协议的数据传输方法、装置和电子设备 |
CN112328290A (zh) * | 2020-12-04 | 2021-02-05 | 第一拖拉机股份有限公司 | 一种农机数据采集终端程序远程更新方法及系统 |
CN112328290B (zh) * | 2020-12-04 | 2023-08-22 | 第一拖拉机股份有限公司 | 一种农机数据采集终端程序远程更新方法及系统 |
CN114816805A (zh) * | 2022-04-20 | 2022-07-29 | 中国国家铁路集团有限公司 | Fpga程序配置方法、控制器和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101957764A (zh) | 一种远方终端程序远程更新的方法 | |
CN106569847B (zh) | 一种用于车载系统基于移动网络实现iap远程升级的方法 | |
CN105262627B (zh) | 一种固件升级方法、装置及系统 | |
CN104007996B (zh) | 一种分布式控制系统的可靠固件升级实现方法 | |
US20130326280A1 (en) | Debugging method, chip, board, and system | |
EP2498439B1 (en) | Protection method and system under abnormal conditions in upgrade gigabit passive optical network terminal | |
CN104348578B (zh) | 数据处理的方法及装置 | |
CN110389772B (zh) | 双核mcu应用程序升级方法 | |
CN112835616A (zh) | 一种版本升级方法、装置、电子设备及存储介质 | |
WO2015010482A1 (zh) | 一种基于cim/e交互的跨系统ems状态估计的方法 | |
CN101325475A (zh) | 一种嵌入式系统软件远程升级方法 | |
CN103269291B (zh) | android平台上利用点对点射频设备进行ADB调试的方法 | |
CN113938379A (zh) | 一种动态加载云平台日志采集配置的方法 | |
CN112100081A (zh) | 基于双芯智能电表的升级测试方法、装置和计算机设备 | |
CN105472377A (zh) | 电视机调试方法及装置 | |
CN102281289A (zh) | 一种基于电力监控的iec61850设计方法 | |
CN103916413A (zh) | 一种异构小型机控制方法、装置及云计算系统 | |
CN103888276A (zh) | 用于wia网络在线节点固件的远程升级方法 | |
CN106550026A (zh) | 一种网络通信装置及方法 | |
CN112328594A (zh) | 一种嵌入式装置模型数据管理方法及装置 | |
CN103812607A (zh) | 一种模拟usb3.0传输过程中包出错的方法 | |
CN102567059B (zh) | 一种远程更新设备软件的方法 | |
CN105354107A (zh) | NOR Flash的数据传输方法及系统 | |
CN115309426A (zh) | 系统升级方法、装置、计算机设备及计算机可读存储介质 | |
CN103685552A (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20110126 |