太阳城集团

  • / 10
  • 下载费用:30 金币  

嵌入式程序开发中程序更新识别方法及系统.pdf

摘要
申请专利号:

CN201710065661.6

申请日:

2017.02.06

公开号:

CN106775778A

公开日:

2017.05.31

当前法律状态:

实审

有效性:

审中

法律详情: 著录事项变更 IPC(主分类):G06F 9/44变更事项:申请人变更前:山东鲁能智能技术有限公司变更后:山东鲁能智能技术有限公司变更事项:地址变更前:250101 山东省济南市高新区(历下区)新泺大街2008号银荷大厦B座626变更后:250101 山东省济南市高新区新泺大街2008号银荷大厦B座|||实质审查的生效IPC(主分类):G06F 9/44申请日:20170206|||公开
IPC分类号: G06F9/44; G06F9/445 主分类号: G06F9/44
申请人: 山东鲁能智能技术有限公司
发明人: 王培仑; 胡勇; 曹同利; 卢剑锋; 李春飞; 刘爱忠
地址: 250101 山东省济南市高新区(历下区)新泺大街2008号银荷大厦B座626
优先权:
专利代理机构: 济南圣达知识产权代理有限公司 37221 代理人: 黄海丽
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

CN201710065661.6

授权太阳城集团号:

||||||

法律状态太阳城集团日:

太阳城集团2019.03.15|||2017.06.23|||2017.05.31

法律状态类型:

著录事项变更|||实质审查的生效|||公开

摘要

太阳城集团本发明公开了嵌入式程序开发中程序更新识别方法及系统,它在控制器程序运行初期自动对存放于程序存储器的全部程序进行一次循环校验计算,并将校验得到的一组序列号以通信的方式发送给上位机,由于程序的变动会造成序列号的改变,因此通过序列号的变化情况,即可实现一种程序识别的新方法。

权利要求书

1.嵌入式程序开发中程序更新识别方法,其特征是,包括如下步骤:
步骤(1):控制器的程序存储器接收并存储已经编译通过的计算机程序;计算机程序存
储的起始地址就是程序存储器对应地址空间的首地址;
步骤(2):计算机程序开始运行,首先对计算机程序进行初始化配置;
步骤(3):对程序存储器存放的计算机程序从起始地址开始进行循环冗余校验,得到一
组校验序列号;
步骤(4):控制器将当前计算机程序的程序版本号和循环冗余校验得到的校验序列号
一起发送到上位机;
步骤(5):上位机将控制器发送来的程序版本号和校验序列号与上位机预先存储的程
序版本号和校验序列号进行比较;判断程序是否发生改变。
2.如权利要求1所述的嵌入式程序开发中程序更新识别方法,其特征是,所述步骤(5)
的具体步骤包括:
步骤(51):首先判断控制器发送来的程序版本号与上位机预先存储的程序版本号是否
一致,若一致则进入步骤(52);不一致则表示程序发生改变;
步骤(52):判断控制器发送来的校验序列号与上位机预先存储的校验序列号一致,若
一致则表示程序未发生改变;若不一致则表示程序发生改变。
3.如权利要求1所述的嵌入式程序开发中程序更新识别方法,其特征是,
所述上位机预先存储的程序版本号是程序首次编译成功,控制器上传给上位机的版本
号;
所述上位机预先存储的校验序列号是程序首次编译成功,控制器对编译成功的程序进
行首次循环冗余校验得到并上传给上位机的校验序列号。
4.如权利要求1所述的嵌入式程序开发中程序更新识别方法,其特征是,
所述步骤(2)对程序I/O口、中断向量进行初始化配置;
所述步骤(4)控制器将校验序列号通过can或modbus通信协议发送到上位机。
5.如权利要求1所述的嵌入式程序开发中程序更新识别方法,其特征是,
所述步骤(3)采用查表法方式,对程序存储器存放的程序从起始地址开始进行循环冗
余校验。
6.嵌入式程序开发中程序更新识别系统,其特征是,包括:彼此通信的控制器和上位
机;
所述控制器包括:
计算机程序接收单元:控制器的程序存储器接收并存储已经编译通过的计算机程序;
计算机程序存储的起始地址就是程序存储器对应地址空间的首地址;
计算机程序运行单元:计算机程序开始运行,首先对计算机程序进行初始化配置;
循环冗余校验单元:对程序存储器存放的计算机程序从起始地址开始进行循环冗余校
验,得到一组校验序列号;
发送单元:控制器将当前计算机程序的程序版本号和循环冗余校验得到的校验序列号
一起发送到上位机;
所述上位机包括:
接收单元:接收控制器发送来的程序版本号和校验序列号;
比较单元:将控制器发送来的程序版本号和校验序列号与上位机预先存储的程序版本
号和校验序列号进行比较;判断程序是否发生改变。
7.如权利要求6所述的系统,其特征是,所述比较单元包括:
程序版本号比较模块:首先判断控制器发送来的程序版本号与上位机预先存储的程序
版本号是否一致,若一致则进入校验序列号比较模块;不一致则表示程序发生改变;
校验序列号比较模块:判断控制器发送来的校验序列号与上位机预先存储的校验序列
号一致,若一致则表示程序未发生改变;若不一致则表示程序发生改变。
8.如权利要求6所述的系统,其特征是,所述上位机预先存储的程序版本号是程序首次
编译成功,控制器上传给上位机的版本号;
所述上位机预先存储的校验序列号是程序首次编译成功,控制器对编译成功的程序进
行首次循环冗余校验得到并上传给上位机的校验序列号。
9.如权利要求6所述的系统,其特征是,所述计算机程序运行单元对程序I/O口、中断向
量进行初始化配置;
所述循环冗余校验单元采用查表法方式,对程序存储器存放的程序从起始地址开始进
行循环冗余校验。
10.如权利要求6所述的系统,其特征是,所述发送单元将校验序列号通过can或modbus
通信协议发送到上位机。

说明书

嵌入式程序开发中程序更新识别方法及系统

技术领域

本发明涉及一种嵌入式程序开发中程序更新识别方法及系统。

背景技术

嵌入式开发中程序的版本控制及识别通常是通过读取控制器芯片的软件版本号
形式实现的。一般情况下,程序编写或修改后需对程序添加一个软件版本号,源程序编译完
成后下载到控制器芯片,通过上位机与控制器芯片的通信程序读取程序的版本号,由此可
得到程序修改及版本管理太阳城集团。

采用上述方案通过上位机即可读取控制器芯片中程序版本号,并根据版本号对照
查表得到程序修改太阳城集团。但此方法仍存在一定的局限性:

①软件版本号需人为手动修改,如果程序员改动程序后忘记更改版本号或更改后
的版本号与其他人修改的版本号重复;

②程序员对软件程序的误操作,增加或丢失部分程序;

③程序小的改动,但不足以更改程序版本号。

此类问题均可造成以软件版本号识别程序的方式失效。若是存在上述问题的装置
在工程使用现场出现异常,因不能对装置是否使用标准程序或程序何时修改做出有效判
断,会给错误排查工作造成很大的困难。

发明内容

本发明的目的就是为了解决上述问题,提供一种嵌入式程序开发中程序更新识别
方法及系统,它在控制器程序运行初期自动对存放于程序存储器的全部程序进行一次循环
校验计算,并将校验得到的一组序列号以通信的方式发送给上位机,由于程序的变动会造
成序列号的改变,因此通过序列号的变化情况,即可实现一种程序识别的新方法。

嵌入式程序开发中程序更新识别方法,包括如下步骤:

步骤(1):控制器的程序存储器接收并存储已经编译通过的计算机程序;计算机程
序存储的起始地址就是程序存储器对应地址空间的首地址;

步骤(2):计算机程序开始运行,首先对计算机程序进行初始化配置;

步骤(3):对程序存储器存放的计算机程序从起始地址开始进行循环冗余校验,得
到一组校验序列号;

步骤(4):控制器将当前计算机程序的程序版本号和循环冗余校验得到的校验序
列号一起发送到上位机;

步骤(5):上位机将控制器发送来的程序版本号和校验序列号与上位机预先存储
的程序版本号和校验序列号进行比较;判断程序是否发生改变。

所述步骤(5)的具体步骤包括:

步骤(51):首先判断控制器发送来的程序版本号与上位机预先存储的程序版本号
是否一致,若一致则进入步骤(52);不一致则表示程序发生改变;

步骤(52):判断控制器发送来的校验序列号与上位机预先存储的校验序列号一
致,若一致则表示程序未发生改变;若不一致则表示程序发生改变。

所述上位机预先存储的程序版本号是程序首次编译成功,控制器上传给上位机的
版本号;

所述上位机预先存储的校验序列号是程序首次编译成功,控制器对编译成功的程
序进行首次循环冗余校验得到并上传给上位机的校验序列号。

所述步骤(2)对程序I/O口、中断向量进行初始化配置;

所述步骤(3)采用查表法方式,对程序存储器存放的程序从起始地址开始进行循
环冗余校验。

所述步骤(4)控制器将校验序列号通过can或modbus通信协议发送到上位机。

嵌入式程序开发中程序更新识别系统,包括:彼此通信的控制器和上位机;

所述控制器包括:

计算机程序接收单元:控制器的程序存储器接收并存储已经编译通过的计算机程
序;计算机程序存储的起始地址就是程序存储器对应地址空间的首地址;

计算机程序运行单元:计算机程序开始运行,首先对计算机程序进行初始化配置;

循环冗余校验单元:对程序存储器存放的计算机程序从起始地址开始进行循环冗
余校验,得到一组校验序列号;

发送单元:控制器将当前计算机程序的程序版本号和循环冗余校验得到的校验序
列号一起发送到上位机;

所述上位机包括:

接收单元:接收控制器发送来的程序版本号和校验序列号;

比较单元:将控制器发送来的程序版本号和校验序列号与上位机预先存储的程序
版本号和校验序列号进行比较;判断程序是否发生改变。

所述比较单元包括:

程序版本号比较模块:首先判断控制器发送来的程序版本号与上位机预先存储的
程序版本号是否一致,若一致则进入校验序列号比较模块;不一致则表示程序发生改变;

校验序列号比较模块:判断控制器发送来的校验序列号与上位机预先存储的校验
序列号一致,若一致则表示程序未发生改变;若不一致则表示程序发生改变。

所述上位机预先存储的程序版本号是程序首次编译成功,控制器上传给上位机的
版本号;

所述上位机预先存储的校验序列号是程序首次编译成功,控制器对编译成功的程
序进行首次循环冗余校验得到并上传给上位机的校验序列号。

所述计算机程序运行单元对程序I/O口、中断向量进行初始化配置;

所述循环冗余校验单元采用查表法方式,对程序存储器存放的程序从起始地址开
始进行循环冗余校验。

所述发送单元将校验序列号通过can或modbus通信协议发送到上位机。

本发明的有益效果:

现有技术只能通过手动修改软件版本号实现,同时只能以V1.00或V2.10等数字方
式表示,对于小的程序改动亦不能有效标识。

本发明在程序运行初期对整个程序存储空间进行循环校验,程序的任何改变都可
通过校验生成的序列号变化表达出来。

此发明辅以软件版本号为基础的版本控制方法,可更精确及细致的对嵌入式系统
的程序版本进行有效控制。

附图说明

图1为本发明的主流程图;

图2为控制器的内部功能模块图;

图3为上位机的内部功能模块图;

图4为上位机的比较模块的内部功能模块图。

具体实施方式

下面结合附图与实施例对本发明作进一步说明。

如图1所示,嵌入式程序开发中程序更新识别方法,包括如下步骤:

步骤(1):控制器的程序存储器接收并存储已经编译通过的计算机程序;计算机程
序存储的起始地址就是程序存储器对应地址空间的首地址;

步骤(2):计算机程序开始运行,首先对计算机程序进行初始化配置;

步骤(3):对程序存储器存放的计算机程序从起始地址开始进行循环冗余校验,得
到一组校验序列号;

步骤(4):控制器将当前计算机程序的程序版本号和循环冗余校验得到的校验序
列号一起发送到上位机;

步骤(5):上位机将控制器发送来的程序版本号和校验序列号与上位机预先存储
的程序版本号和校验序列号进行比较;判断程序是否发生改变。

所述步骤(5)的具体步骤包括:

步骤(51):首先判断控制器发送来的程序版本号与上位机预先存储的程序版本号
是否一致,若一致则进入步骤(52);不一致则表示程序发生改变;

步骤(52):判断控制器发送来的校验序列号与上位机预先存储的校验序列号一
致,若一致则表示程序未发生改变;若不一致则表示程序发生改变。

如图2所示,嵌入式程序开发中程序更新识别系统,包括:彼此通信的控制器和上
位机;

所述控制器包括:

计算机程序接收单元:控制器的程序存储器接收并存储已经编译通过的计算机程
序;计算机程序存储的起始地址就是程序存储器对应地址空间的首地址;

计算机程序运行单元:计算机程序开始运行,首先对计算机程序进行初始化配置;

循环冗余校验单元:对程序存储器存放的计算机程序从起始地址开始进行循环冗
余校验,得到一组校验序列号;

发送单元:控制器将当前计算机程序的程序版本号和循环冗余校验得到的校验序
列号一起发送到上位机;

如图3所示,所述上位机包括:

接收单元:接收控制器发送来的程序版本号和校验序列号;

比较单元:将控制器发送来的程序版本号和校验序列号与上位机预先存储的程序
版本号和校验序列号进行比较;判断程序是否发生改变。

如图4所示,所述比较单元包括:

程序版本号比较模块:首先判断控制器发送来的程序版本号与上位机预先存储的
程序版本号是否一致,若一致则进入校验序列号比较模块;不一致则表示程序发生改变;

校验序列号比较模块:判断控制器发送来的校验序列号与上位机预先存储的校验
序列号一致,若一致则表示程序未发生改变;若不一致则表示程序发生改变。

为了详细阐述此项发明,首先介绍一下用到的几项数据处理概念。

(1)控制器芯片的程序存储器:

控制器芯片的存储器主要分数据存储器和程序存储器,前者用于存放程序运行的
中间处理数据,可随程序运行而随时写入或读出数据存储器的内容,当系统掉电时,数据全
部会丢失;后者用于存放嵌入式系统的应用程序及一些不需改变的数据常数,只能读取程
序指令使系统运行,而不能再进行改写,且系统掉电后,程序不会丢失。

(2)循环冗余校验:

循环冗余校验是一种数据传输检错功能,主要用于检测或校验数据在传输过程中
可能出现的错误。首先发送方对需要发送的数据进行循环冗余校验,并将计算出的校验码
附在数据帧的后面,接收方接收数据后执行类似算法,并通过判断校验码是否一致确定接
收到的数据帧是否发生变化。

(3)查表法:

查表法是循环冗余校验的一种具体实现算法,它将移位异或的计算结果做出一个
表,通过对计算数据循环查表的形式得到最后的校验码。

本方案主要依据以上几种概念,借鉴通信传输中对数据帧的检错功能,创新性的
将循环冗余校验方式用于对程序存储区中程序的处理。

在程序上电开始运行后,采用上面提到的查表法,从程序存储器存放程序的起始
地址开始对整个程序存储空间进行循环冗余校验,具体做法就是从起始地址开始逐个字节
对程序段进行移位异或计算,直到全部程序计算完成,由此可到一组4字节的校验序列号。

在通信函数中,如上位机召唤此项命令,即可将此序列号上传至上位机。由于全部
程序存储空间都参与校验,程序中任一字节数据的改动都会改变校验产生的序列号,因此
可以通过序列号的改变判断程序是否改变;而且不同于数据传输校验时数据帧加校验值同
步传输,此时仅需要4字节序列号的有效数据,可使数据收发程序设计简单,利于操作。

上位机安装的版本管理软件负责对将上传太阳城集团进行分析、判断。主要将采集于控
制器的校验序列号及软件版本号与其数据库中保存的各版本程序的版本太阳城集团进行逐个比
对,如上传太阳城集团与某一版本程序的版本号及序列号一致,则证明控制器中运行的程序为此
版本程序;如版本号一致但序列号改变,证明程序员修改程序后未更新版本号;如版本号与
序列号均为新的内容,证明为未知版本程序,可沟通程序员是否创造新的程序版本。新的版
本程序可手动添加到管理软件的数据库中,在数据库更新界面输入序列号及软件版本号,
点击保存按键即可。该软件目前仅支持手动输入,数据库原始数据的创建及更新均依赖此
种方法。

通过校验序列号管理方法及版本管理软件,可更高效的对嵌入式程序版本进行有
效管理、控制。

嵌入式程序开发中程序更新识别方法,包括如下步骤:

步骤(1):程序编译完成后,将程序代码通过下载器下载到控制器芯片的程序存储
器,程序下载的起始地址就是程序存储器对应地址空间的首地址。

步骤(2):程序开始运行,对程序进行必要的初始化配置;

步骤(3):采用查表法方式,对程序存储区存放的程序从起始地址开始进行循环冗
余校验,得到校验序列号;由于所用控制器芯片的程序存储器地址空间为$4000-$FFFF,而
程序占用空间<16K,因此考虑只对$4000-$8000地址空间的数据进行循环冗余校验。

步骤(4):在通信程序中,序列号及软件版本号通过can或modbus通信协议发送到
上位机。

步骤(5):上位机的版本管理软件分析上传太阳城集团与数据库太阳城集团是否一致,并根据分
析结果做出判断。

上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范
围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不
需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

关 键 词:
嵌入式 程序 开发 更新 识别 方法 系统
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
太阳城集团本文
本文标题:嵌入式程序开发中程序更新识别方法及系统.pdf
链接地址:http://zh228.com/p-6019827.html
太阳城集团我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
葡京赌场|welcome document.write ('');