著录项信息
专利名称 | 嵌入式系统、其升级方法及升级设备 |
申请号 | CN201410819076.7 | 申请日期 | 2014-12-25 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2015-04-29 | 公开/公告号 | CN104572185A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F8/65 | IPC分类号 | G;0;6;F;8;/;6;5查看分类表>
|
申请人 | 武汉烽火富华电气有限责任公司 | 申请人地址 | 湖北省武汉市洪山区邮科院路88号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 武汉烽火富华电气有限责任公司 | 当前权利人 | 武汉烽火富华电气有限责任公司 |
发明人 | 谭蕾;杨寒;邹娴;李晓;崔新友;文涛 |
代理机构 | 武汉今天智汇专利代理事务所(普通合伙) | 代理人 | 邓寅杰 |
摘要
本发明涉及嵌入式系统技术领域,具体涉及一种嵌入式系统、其升级方法以及升级设备。其中,该嵌入式系统包括:应用模块、控制模块、通信模块以及升级管理模块。本发明的嵌入式系统中通信模块和应用模块均支持多进程运行,由于设置了升级管理模块,在多个不同版本进程同时运行时,选择最高版本数据,终止低版本进程,在不影响嵌入式系统通信数据的持续性的情况下完成升级,增加了电网安全性。
1.一种嵌入式系统,其特征在于,该系统包括:应用模块、控制模块、通信模块以及升级管理模块;
其中,所述通信模块用于与外界设备进行数据交互以获取数据,所述通信模块具有至少一个通信进程;
所述应用模块用于处理所述通信模块获取的数据并将处理结果反馈至通信模块,所述应用模块具有至少一个应用进程;
所述控制模块用于对所述通信进程和/或所述应用进程进行调度,根据预先设定的调度顺序和用户脚本指令启动或终止所述通信进程和/或所述应用进程;
所述升级管理模块通过套接字方式与通信进程和/或应用进程进行连接,将通信进程或应用进程的端口号按照版本由低到高进行升序排列,选择执行端口号数值最大的进程并通过控制模块终止未被选择的进程;
所述通信模块或所述应用模块包括:
共享内存,用于为模块运行进程提供所需数据并接收来自其他模块的数据;
存储单元,用于存储各个版本进程执行代码;
下载单元,用于从服务器下载版本高于当前运行进程的执行代码,并将所述版本高于当前运行进程的执行代码存储至所述存储单元;以及
进程运行单元,其同时运行版本不同的多个进程。
2.根据权利要求1所述的嵌入式系统,其特征在于,所述通信模块或所述应用模块包括:
检测单元,用于检测服务器中是否存在版本高于当前运行进程的文件。
3.根据权利要求1所述的嵌入式系统,其特征在于,所述升级管理模块包括:
编码单元,用于将通信进程或应用进程的端口号按照版本由低到高进行升序排列;
比较单元,用于比较不同版本进程的端口号数值,将端口号数值最大的进程的数据发送至其他模块;
指令单元,将终止未被选择的进程的指令发送至控制模块。
4.权利要求1所述的嵌入式系统的升级方法,其特征在于,包括如下步骤:
从外界服务器下载版本高于当前运行的通信进程或应用进程的执行代码;
不同版本的通信进程或应用进程同时运行并发送数据至升级管理模块;
将通信进程或应用进程的端口号按照版本由低到高进行升序排列;
选择执行端口号数值最大的进程进行数据传送;
升级管理模块与通过控制模块进行数据交互,终止未被选择的进程。
5.根据权利要求4所述的升级方法,其特征在于,所述从外界服务器下载版本高于当前运行的通信进程或应用进程的执行代码步骤之前还包括:
检测服务器中是否存在版本高于当前运行的通信进程或应用进程的文件。
6.一种嵌入式系统功能模块升级设备,其特征在于,包括嵌入式系统、与所述嵌入式系统网络连接的服务器;
所述嵌入式系统包括:应用模块、控制模块、通信模块以及升级管理模块;
其中,所述通信模块用于与外界设备进行数据交互以获取数据,所述通信模块具有至少一个通信进程;
所述应用模块用于处理所述通信模块获取的数据并将处理结果反馈至通信模块,所述应用模块具有至少一个应用进程;
所述控制模块用于对所述通信进程和/或所述应用进程进行调度,根据预先设定的调度顺序和用户脚本指令启动或终止所述通信进程和/或所述应用进程;
所述升级管理模块通过套接字方式与通信进程和/或应用进程进行连接,将通信进程或应用进程的端口号按照版本由低到高进行升序排列,选择执行端口号数值最大的进程并通过控制模块终止未被选择的进程;
所述通信模块或所述应用模块包括:
共享内存,用于为模块运行进程提供所需数据并接收来自其他模块的数据;
存储单元,用于存储各个版本进程执行代码;
下载单元,用于从服务器下载版本高于当前运行进程的执行代码,并将所述版本高于当前运行进程的执行代码存储至所述存储单元;以及
进程运行单元,其同时运行版本不同的多个进程。
嵌入式系统、其升级方法及升级设备\n技术领域\n[0001] 本发明涉及嵌入式系统技术领域,具体涉及一种嵌入式系统、其升级方法以及升级设备。\n背景技术\n[0002] 嵌入式系统作为计算机的一种应用形式,因其具备高可靠性、低功耗、实时性强、操作系统内核小、支持多任务等的优点而被广泛的运用到各行各业,在电力系统中的应用也随之增多。\n[0003] 在电力系统中,利用嵌入式设备作为数据的采集终端,并将采集的数据处理后上传到后台监控系统,以达到对整个系统的实时监测,从而实现了变电站无人值守的目的。但目前存在两个主要的问题:(1)经过长时间的实地运行,人们发现嵌入式设备的功能存在缺陷,或者用户要求增加新的功能,就必须升级程序;(2)电力系统对各终端设备的实时性要求非常高,传统的程序升级必会影响终端实时性,造成安全隐患。\n[0004] 鉴于此,解决现有技术中的问题,提供一种支持嵌入式系统无缝升级的方法,在不影响嵌入式系统对电网的实时监测与控制的情况下进行系统功能模块升级,满足了电力系统对设备实时性的要求。\n发明内容\n[0005] 本发明的目的在于针对现有技术的上述缺陷,提供一种具有无缝升级功能的嵌入式系统,在不影响嵌入式系统对电网的实时监测与控制的情况下进行系统功能模块升级,满足了电力系统对设备实时性的要求。\n[0006] 本发明的目的可通过以下的技术措施来实现:\n[0007] 一种嵌入式系统,与现有技术相比,其不同之处在于,该系统包括:应用模块、控制模块、通信模块以及升级管理模块;\n[0008] 其中,所述通信模块用于与外界设备进行数据交互以获取数据,所述通信模块具有至少一个通信进程;\n[0009] 所述应用模块用于处理所述通信模块获取的数据并将处理结果反馈至通信模块,所述应用模块具有至少一个应用进程;\n[0010] 所述控制模块用于对所述通信进程和/或所述应用进程进行调度,根据预先设定的调度顺序和用户脚本指令启动或终止所述通信进程和/或所述应用进程;\n[0011] 所述升级管理模块通过套接字方式与通信进程和/或应用进程进行连接,将通信进程或应用进程的端口号按照版本由低到高进行升序排列,选择执行端口号数值最大的进程并通过控制模块终止未被选择的进程。\n[0012] 优选地,所述通信模块或所述应用模块包括:\n[0013] 共享内存,用于为模块运行进程提供所需数据并接收来自其他模块的数据;\n[0014] 存储单元,用于存储各个版本进程执行代码;\n[0015] 下载单元,用于从服务器下载版本高于当前运行进程的执行代码,并将所述版本高于当前运行进程的执行代码存储至所述存储单元;以及\n[0016] 进程运行单元,其同时运行版本不同的多个进程。\n[0017] 优选地,所述通信模块或所述应用模块还包括:\n[0018] 检测单元,用于检测服务器中是否存在版本高于当前运行进程的文件。\n[0019] 优选地,所述升级管理模块包括:\n[0020] 编码单元,用于将通信进程或应用进程的端口号按照版本由低到高进行升序排列;\n[0021] 比较单元,用于比较不同版本进程的端口号数值,将端口号数值最大的进程的数据发送至其他模块;\n[0022] 指令单元,将终止未被选择的进程的指令发送至控制模块。\n[0023] 本发明还提供了上述的嵌入式系统的升级方法,包括如下步骤:\n[0024] 从外界服务器下载版本高于当前运行的通信进程或应用进程的执行代码;\n[0025] 不同版本的通信进程或应用进程同时运行并发送数据至升级管理模块;\n[0026] 将通信进程或应用进程的端口号按照版本由低到高进行升序排列;\n[0027] 选择执行端口号数值最大的进程进行数据传送;\n[0028] 升级管理模块与通过控制模块进行数据交互,终止未被选择的进程。\n[0029] 优选地,所述从外界服务器下载版本高于当前运行的通信进程或应用进程的执行代码步骤之前还包括:\n[0030] 检测服务器中是否存在版本高于当前运行的通信进程或应用进程的文件。\n[0031] 本发明还相应地提供了一种嵌入式系统功能模块升级设备,包括嵌入式系统、与所述嵌入式系统网络连接的服务器;\n[0032] 所述嵌入式系统包括:应用模块、控制模块、通信模块以及升级管理模块;\n[0033] 其中,所述通信模块用于与外界设备进行数据交互以获取数据,所述通信模块具有至少一个通信进程;\n[0034] 所述应用模块用于处理所述通信模块获取的数据并将处理结果反馈至通信模块,所述应用模块具有至少一个应用进程;\n[0035] 所述控制模块用于对所述通信进程和/或所述应用进程进行调度,根据预先设定的调度顺序和用户脚本指令启动或终止所述通信进程和/或所述应用进程;\n[0036] 所述升级管理模块通过套接字方式与通信进程和/或应用进程进行连接,将通信进程或应用进程的端口号按照版本由低到高进行升序排列,选择执行端口号数值最大的进程并通过控制模块终止未被选择的进程。\n[0037] 与现有技术相比,本发明的有益效果在于:本发明的嵌入式系统中通信模块和应用模块均支持多进程运行,由于设置了升级管理模块,在多个不同版本进程同时运行时,选择最高版本数据,终止低版本进程,在不影响嵌入式系统通信数据的持续性的情况下完成升级,增加了电网安全性。\n附图说明\n[0038] 图1是本发明的嵌入式系统的结构示意图;\n[0039] 图2是本发明的嵌入式系统的一种较佳实施方式的结构框图;\n[0040] 图3是本发明的升级方法的流程图;\n[0041] 图4是本发明的升级设备的结构示意图。\n具体实施方式\n[0042] 为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图和具体实施例对本发明作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。\n[0043] 传统嵌入式设备升级方法,需要终止设备的全部功能,进入烧写模式,当下载新的应用在内存中覆盖旧的应用以后,再重新启动嵌入式设备,严重影响了嵌入式设备数据采集、处理以及输出的持续性,降低了电网监控的实时性,为电网安全性埋下隐患。\n[0044] 本发明实施例的嵌入式系统在不影响其自身通信数据的持续性的情况下完成升级,增加了电网安全性。\n[0045] 请参阅图1所示,本发明实施例的嵌入式系统100包括:应用模块1、控制模块2、通信模块3和升级管理模块4。\n[0046] 其中,通信模块3用于与外界设备进行数据交互以获取数据,该通信模块3具有至少一个通信进程。\n[0047] 其中,应用模块1用于处理通信模块3获取的数据并将处理结果反馈至通信模块3,应用模块1具有至少一个应用进程。\n[0048] 其中,控制模块2用于对所述通信进程和/或所述应用进程进行调度,根据预先设定的调度顺序和用户脚本指令启动或终止所述通信进程和/或所述应用进程。\n[0049] 其中,升级管理模块4通过套接字方式与通信进程和/或应用进程进行连接,将通信进程或应用进程的端口号按照版本由低到高进行升序排列,选择执行端口号数值最大的进程并通过控制模块2终止未被选择的进程。\n[0050] 通信模块3和应用模块1均可运行多个不同版本的进程,比如,通信模块3中的低版本通信进程和升级后的高版本通信进程可以采用同样的方式同时运行,升级管理模块4同时接收低版本通信进程和升级后的高版本通信进程的数据,选择执行高版本进程并通过控制模块2终止未被选择的低版本进程,无需停止整个嵌入式系统或其中任何一个模块的运行即可完成升级。\n[0051] 进一步地,请参阅图2所示,作为本发明的一个较佳方案,上述的应用模块1包括:\n第一共享内存11、第一存储单元12、第一下载单元13、第一进程运行单元14和第一检测单元\n15。\n[0052] 其中,第一共享内存11用于为应用模块1运行进程提供所需数据并接收来自其他模块的数据;第一存储单元12用于存储各个版本进程执行代码;第一下载单元13用于从服务器下载版本高于当前运行进程的执行代码,并将所述版本高于当前运行进程的执行代码存储至第一存储单元12; 第一进程运行单元14能够同时运行版本不同的多个进程;第一检测单元15用于检测服务器中是否存在版本高于当前运行进程的文件。\n[0053] 同样的,通信模块3包括:第二共享内存31、第二存储单元32、第二下载单元33、第二进程运行单元34和第二检测单元35。\n[0054] 其中,第二共享内存31用于为通信模块3运行进程提供所需数据并接收来自其他模块的数据;第二存储单元32用于存储各个版本进程执行代码;第二下载单元33用于从服务器下载版本高于当前运行进程的执行代码,并将所述版本高于当前运行进程的执行代码存储至第二存储单元32; 第二进程运行单元34能够同时运行版本不同的多个进程;第二检测单元35用于检测服务器中是否存在版本高于当前运行进程的文件。\n[0055] 升级管理模块4包括编码单元41和比较单元42,其中,编码单元41用于将通信进程或应用进程的端口号按照版本由低到高进行升序排列;比较单元42用于比较不同版本进程的端口号数值,将端口号数值最大的进程的数据发送至其他模块。\n[0056] 升级管理模块存在于各个功能模块之间,各个模块进程间的数据交互都要通过升级管理模块,当需要升级功能模块中的进程时,会直接运行新的功能模块进程,即新旧两个功能模块进程同时运行,由升级管理模块选择新的功能模块进程传递的数据,丢弃旧的功能模块进程传递的数据,并且负责告知控制模块停止运行旧的功能模块进程。\n[0057] 相应地,本发明还提供了上述嵌入式系统的升级方法,如图3所示,该方法包括如下步骤:\n[0058] 步骤S1:检测服务器中是否存在版本高于当前运行的通信进程或应用进程的文件。\n[0059] 步骤S2:从外界服务器下载版本高于当前运行的通信进程或应用进程的执行代码。\n[0060] 步骤S3:不同版本的通信进程或应用进程同时运行并发送数据至升级管理模块。\n[0061] 步骤S4:将通信进程或应用进程的端口号按照版本由低到高进行升序排列。\n[0062] 步骤S5:选择执行端口号数值最大的进程进行数据传送。\n[0063] 步骤S6:升级管理模块与通过控制模块进行数据交互,终止未被选择的进程。\n[0064] 下面以应用模块的进程为例,详细说明上述升级方法,如图4所示,该升级方法包括以下步骤:其中,进程1为需要升级的应用模块进程,进程2为升级后的新的应用模块进程。\n[0065] 当应用模块进程无需升级则执行步骤H1至H4:\n[0066] 步骤H1:进程1从共享内存1中获取需要的数据。\n[0067] 步骤H2:进程1与升级管理模块通过套接字的方式建立连接,端口号设置为n,等连接建立以后,进程1将从共享内存1中获取的数据处理后送给升级管理模块。\n[0068] 步骤H3:升级管理模块检测若只有端口号为n的模块向自己发送数据,即直接将此数据放入共享内存2中。\n[0069] 步骤4,通信模块进程从共享内存2中获取数据使用。\n[0070] 需要升级时,将新版本的可执行代码下载到嵌入式系统中,使之运行(即为进程\n2),此时进程2与进程1执行同样的数据处理算法(参见步骤H1至步骤H4)。\n[0071] 步骤H5:进程2同样从共享内存1中获取需要的数据。\n[0072] 步骤H6:进程2与升级管理模块通过套接字的方式建立连接,端口号设置为n+1;待连接建立以后,进程2也会将从共享内存1中获取的数据经过处理送给升级管理模块。\n[0073] 此时处理与未升级前的步骤H3有些许不同,升级管理模块检测到有两个进程同时向自己发送处理后的数据,端口号分别是n与n+1,选择端口号大的进程2的数据传给共享内存2,舍弃端口号小的进程1的数据。\n[0074] 步骤H7:升级管理模块与控制模块进行交互,告知控制模块停止运行进程1。\n[0075] 步骤H8:控制模块停止运行进程1,释放CPU资源。\n[0076] 另外,本发明还提供了一种嵌入式系统功能模块升级设备,请参阅图4所示,该升级设备包括:嵌入式系统100、与嵌入式系统100网络连接的服务器200。\n[0077] 嵌入式系统的结构请参见上述,在此不进行一一赘述。\n[0078] 值得说明的是,上述系统和设备内的模块、单元之间的信息交互、执行过程等内容,由于与本发明的处理方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。\n[0079] 本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁盘或光盘等。\n[0080] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
法律信息
- 2018-03-27
- 2015-05-27
实质审查的生效
IPC(主分类): G06F 9/445
专利申请号: 201410819076.7
申请日: 2014.12.25
- 2015-04-29
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2007-02-07
|
2006-08-02
| | |
2
| |
2012-07-11
|
2011-12-31
| | |
3
| |
2010-09-01
|
2010-03-31
| | |
4
| |
2014-11-05
|
2014-08-06
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |