一种固件服务器、电力物联代理网关及固件远程升级方法与流程

文档序号:26938987发布日期:2021-10-12 14:20阅读:143来源:国知局
一种固件服务器、电力物联代理网关及固件远程升级方法与流程

1.本发明涉及电力自动化系统技术领域,具体涉及一种固件服务器、电力物联代理网关及固件远程升级方法。


背景技术:

2.电力物联代理网关是指将智能电网终端设备采集到的信息转发至上级系统的代理设备。电网采集的信息包括电流、电压等电气量,也包括油温、油中气体含量等非电气量,近些年,伴随着物联网技术的不断发展,巡检机器人、红外成像手持终端等设备在电气设备运行检修中得到了快速发展。
3.目前已经有公司将“三型两网、世界一流”作为战略目标,其中“两网”是智能电网和泛在电力物联网。泛在电力物联网就是围绕电力系统各环节,充分应用移动互联、人工智能等现代信息技术、先进通信技术,实现电力系统各个环节万物互联、人机交互,具备状态全面感知、信息高效处理、应用便捷灵活特征的智慧服务系统。通俗地讲,就是运用新一代信息通信技术,将电力用户及其设备、电网企业及其设备、发电企业及其设备、电工装备企业及其设备连接起来,通过信息广泛交互和充分共享,以数字化管理大幅提高能源生产、能源消费和相关领域安全、质量和效益效率水平。基于目标,更多的感知节点将应用于电网自动化网络中,电力物联代理网关作为重要的信息处理和转发平台将得到大量应用。电力系统采集的信息类型多、数量大,站点分布广,如果采用传统的现场维护的方式,将耗费大量的人力、物力和财力资源,影响泛在电力物联网的建设,因此有必要将非关键业务的电力物联代理网关设备进行远程维护。
4.在智能手机、车联网等领域,固件和应用的远程升级技术得到了广泛应用。互联网汽车采用无线网络升级更新软件,有效降低了售后服务成本,且能够快速修复系统缺陷,为用户提供了优质的服务。空中固件升级(firmware over-the-air,ota)是指以无线下载的方式对移动终端进行创建和安装软件更新,特斯拉汽车经常应用此技术为已售出的车辆更新新功能。ota实际上是应用编程(in application programming,iap),iap是程序在运行的过程中对user flash的部分区域进行烧写,可以方便地通过预留的通信口对产品的固件程序进行更新升级,固件程序为.bin文件。
5.设备ota升级可以带来以下效果:
6.(1)远程修复产品缺陷。设备在站点部署后,若存在缺陷,若采用现场维护方式将带来大量问题,远程升级修复缺陷简易便捷。
7.(2)丰富产品功能,不断迭代。车联网功能实现了汽车软件功能的不断迭代、常开常新,给消费者带来了很好的使用体验。
8.出于安全考虑,电力自动化设备等工控装置很少采用远程升级的方式更新或维护设备,增加了大量生产成本。在变配用等站点,位于生产管理大区ⅲ/ⅳ区的电力物联代理网关、终端等不影响生产安全的设备可采用远程升级方式完成更新。相较而言,互联网汽车直接关系到人身安全,对远程升级的安全性和稳定性有非常高的要求,因此其升级更新固
件和应用的方法值得借鉴。
9.由于远动装置、电力物联代理网关及其他工控系统中的网关设备应用非常广泛,部署场景多、地点分散,若采用现场升级的方式更新设备固件,将耗费大量的人力、物力和财力,因此亟需提供一种对电力物联代理网关进行远程维护的方法。


技术实现要素:

10.为了解决现有技术中所存在的上述不足,本发明提供一种固件服务器、电力物联代理网关及固件远程升级方法。本发明将电力物联代理网关的flash划分为多个区,其中一片flash存储bootloader,一片flash预留存储新固件程序,一片存储固件参数信息。当程序有更新时,远程服务器发起升级流程,双方通过签名认证,将新程序下装至预留flash片区。下装完成后,bios(basic input output system,基本输入输出系统)检查固件参数,分配好资源,并检测是否有新固件程序,将控制权交给bootloader,bootloader将引导程序读入系统内存中,bootloader调用操作系统内核时从新固件程序运行,从而实现远程升级。
11.本发明提供的一种固件服务器,所述固件服务器部署于泛在电力物联网主站端,包括:
12.固件程序、固件通信模块和固件更新服务模块;
13.所述固件通信模块,用于基于tls协议与电力物联代理网关建立供固件程序下装的通信通道;
14.所述固件更新服务模块,用于基于所述固件通信模块下发固件的升级启停命令以及更新启停命令;
15.所述固件程序,为泛在电力物联网主站当前开发的程序。
16.优选的,所述固件通信模块支持mqtt协议。
17.优选的,所述固件更新服务模块,包括:
18.获取单元,用于发送获取电力物联代理网关当前固件程序的版本信息请求,并接收电力物联代理网关上报的当前固件程序的版本信息;
19.启动升级命令单元,用于基于固件程序和电力物联代理网关的当前固件程序的版本信息,下发固件升级命令、固件url和固件.bin文件;还用于接收固件升级进度和升级是否成功的信息;
20.停止升级命令单元,用于在下载过程中下发停止升级命令或继续下载命令;
21.更新启停单元,用于基于固件升级进度和升级是否成功的信息决定是否更新,若决定更新,则下发软重启命令;若决定不更新,则下发删除已下载的固件程序命令。
22.基于同一发明构思,本发明还提供了一种电力物联代理网关,所述电力物联代理网关部署在厂站或配电站,包括:
23.改造flash、网关通信模块和固件更新模块;
24.所述网关通信模块,用于基于tls协议与固件服务器建立下载固件程序的通信通道;
25.所述固件更新模块,用于基于固件升级启停命令下载固件程序并存放在所述改造flash中,还用于执行固件更新启停命令;
26.所述改造flash,用于将所述固件程序存储在预先划分的存储片区,还用于在所述
固件更新模块执行启动更新命令时,加载所述固件程序;
27.其中,所述厂(场)站包括发电厂(场)和变电站。
28.优选的,所述改造flash,包括:
29.flash rom片区,用于烧录bios程序;
30.bootloader片区,用于存储bootloader引导加载程序;
31.原有固件程序存储片区,用于存储原有固件程序;
32.操作系统内核存储片区,用于存储操作系统内核程序;
33.固件参数片区,用于存储固件参数配置信息;
34.预留新固件程序存储片区,用于存储固件服务器下装的固件程序。
35.优选的,所述网关通信模块支持mqtt协议。
36.优选的,所述固件更新模块,包括:
37.上报当前版本信息单元,用于基于获取电力物联代理网关当前固件程序的版本信息请求,上报电力物联代理网关的当前固件程序的版本信息;
38.升级单元,用于基于固件升级命令通过固件url下载固件.bin文件;还用于上报固件升级进度和升级是否成功的信息;
39.启动更新单元,用于接收并执行软重启命令对电力物联代理网关执行重启操作;
40.停止升级/更新单元,用于在下载固件程序的过程中当收到停止升级命令且在设定时间内未收到继续下载命令时,则删除已下载的固件.bin文件,还用于接收并执行删除已下载的固件程序命令;
41.所述上报当前版本信息单元,还用于在软重启操作后上报当前固件程序的版本信息。
42.优选的,所述改造flash,还包括:
43.加载单元,用于在启动更新单元执行软重启命令对电力物联代理网关重启时,调用电力物联代理网关的bios检查预留新固件程序存储片区中是否有待更新的固件程序,若存在待更新的固件程序,调用电力物联代理网关的bootloader检查固件的参数信息,并将待更新的固件程序加载到原有固件程序存储片区,同时将操作系统的内核映像从flash读到内存,并将控制权再移交给操作系统内核,启动电力物联代理网关的操作系统。
44.基于同一发明构思本发明还提供了一种电力物联代理网关固件远程升级方法,包括:
45.固件通信模块基于tls协议与电力物联代理网关建立供固件程序下装的通信通道;
46.固件更新服务模块基于所述固件通信模块下发固件的升级启停命令以及更新启停命令;
47.所述固件程序为泛在电力物联网主站当前开发的程序。
48.优选的,所述固件通信模块基于tls协议与电力物联代理网关建立供固件程序下装的通信通道,包括:
49.固件通信模块和电力物联代理网关协商确定tls版本,加密认证套件并校验数字签名证书;
50.基于所述数字签名证书确定生成对话密钥的随机数,并基于所述随机数建立对称
加密通信通道。
51.优选的,所述固件更新服务模块基于所述固件通信模块下发固件的升级启停指令以及更新启停命令,包括:
52.固件更新服务模块发送获取电力物联代理网关当前固件程序的版本信息请求,并接收电力物联代理网关上报的当前固件程序的版本信息;
53.固件更新服务模块基于固件程序和电力物联代理网关的当前固件程序的版本信息,下发固件升级命令、固件url和固件.bin文件,以及在下载过程中下发停止升级命令或继续下载命令;
54.固件更新服务模块接收固件升级进度和升级是否成功的信息;
55.固件更新服务模块基于所述固件升级进度和升级是否成功的信息决定是否更新,若决定更新,则下发软重启命令;若决定不更新,则下发删除已下载的固件程序命令。
56.基于同一发明构思,本发明还提供了一种电力物联网代理网关固件远程升级方法,包括:
57.网关通信模块基于tls协议与固件服务器建立通信通道;
58.改造flash将所述固件程序存储在预先划分的存储片区;
59.固件更新模块用于基于固件升级启停命令下载固件程序并存放在所述改造flash中,并执行固件更新启停命令;
60.所述改造flash在所述固件更新模块执行启动更新命令时加载所述固件程序。
61.优选的,所述网关通信模块基于tls协议与固件服务器建立通信通道,包括:
62.电力物联代理网关与固件服务器协商确定tls版本,加密认证套件并校验数字签名证书;
63.基于所述数字签名证书确定生成对话密钥的随机数;
64.基于所述随机数建立对称加密通信通道。
65.优选的,所述固件更新模块用于基于固件升级启停命令下载固件程序并存放在所述改造flash中,并执行固件更新启停命令,包括:
66.固件更新模块基于获取电力物联代理网关当前固件程序的版本信息请求,上报电力物联代理网关的当前固件程序的版本信息;
67.固件更新模块基于固件升级命令通过固件url下载固件.bin文件,并上报固件升级进度和升级是否成功的信息;
68.固件更新模块接收并执行软重启命令对电力物联代理网关执行重启操作;
69.固件更新模块在下载固件程序的过程中当收到停止升级命令且在设定时间内未收到继续下载命令时,则删除已下载的固件.bin文件,还用于接收并执行删除已下载的固件程序命令。
70.优选的,所述改造flash在所述固件更新模块执行启动更新命令时加载所述固件程序,包括:
71.当所述固件更新模块执行软重启命令对电力物联代理网关重启时:
72.改造flash调用电力物联代理网关的bios检查预留新固件程序存储片区中是否有待更新的固件程序;
73.若存在待更新的固件程序,调用电力物联代理网关的bootloader检查固件的参数
信息,并将待更新的固件程序加载到原有固件程序存储片区;同时将操作系统的内核映像从flash读到内存;
74.将控制权移交给操作系统内核,启动电力物联代理网关的操作系统。
75.优选的,所述固件更新模块接收并执行软重启操作之后,还包括:
76.电力物联代理网关的操作系统启动后固件更新模块与固件服务器建立连接,通过mqtt协议上送当前固件程序的版本信息。
77.与最接近的现有技术相比,本发明提供的技术方案具有以下有益效果:
78.本发明提供的一种固件服务器的技术方案,在泛在电力物联网主站端部署固件服务器,固件服务器将泛在电力物联网主站当前开发的固件程序通过网关通信模块,下发给电力物联代理网关;固件服务器中的固件更新服务模块基于所述固件通信模块下发固件的升级启停命令以及更新启停命令,通过远程下发的升级启停命令以及更新启停命令使电力物联代理网关的调试和维护效率将得到大幅提升,实现对电力物联代理网关等设备的远程维护。
79.本发明提供的一种电力物联代理网关的技术方案,将flash划分为多个片区,开辟存储固件参数和新固件程序存储的片区,采用tls协议构建固件服务器与电力物联代理网关之间的通信通道,基于通信通道接收固件服务器下发升级启停命令以及更新启停命令,通过mqtt协议接收固件程序,从而保证电力物联代理网关固件安全有序地升级,提升电力物联代理网关维护效率,有效地促进泛在电力物联网建设和应用。
附图说明
80.图1为本发明提供的电力物联代理网关固件远程升级架构图;
81.图2为本发明提供的ota远程升级服务流程图。
具体实施方式
82.为了更好地理解本发明,下面结合说明书附图和实例对本发明的内容做进一步的说明。
83.电力物联代理网关(以下简称网关)的操作系统一般是linux系统,其引导加载程序由位于只读存储器(read-only memory,rom)中的基本输入输出系统(basic input output system,bios)和位于硬盘中的主引导记录(master boot record,mbr)中的启动装载bootloader构成。随着计算机硬件的不断发展,操作系统安装于固态存储器与闪存flash,硬盘外挂,操作系统加载从bios和flash开始。为实现网关设备的远程维护,远方主站端需部署一台固件服务器,沿用原有的主子站通信通道,为保证安全性,固件服务器和网关设备之间应具有签名认证功能;设备端也要进行相应的改造,使其能够支持远方固件更新的机制。
84.具体的设计如下:
85.1、远方维护体系架构
86.远方维护体系架构由固件服务器和网关两部分构成,如图1所示,其中固件服务器部署在泛在电力物联网主站端。
87.(1)固件服务器包括:固件程序、固件通信模块和固件更新服务模块;
88.所述固件通信模块,用于基于tls协议与电力物联代理网关建立供固件程序下装的通信通道;
89.所述固件更新服务模块,用于基于所述固件通信模块下发固件的升级启停命令以及更新启停命令;
90.所述固件程序,为泛在电力物联网主站当前开发的程序。
91.固件更新服务模块,包括:
92.获取单元,用于发送获取电力物联代理网关当前固件程序的版本信息请求,并接收电力物联代理网关上报的当前固件程序的版本信息;
93.启动升级命令单元,用于基于固件程序和电力物联代理网关的当前固件程序的版本信息,下发固件升级命令、固件url和固件.bin文件;还用于接收固件升级进度和升级是否成功的信息;
94.停止升级命令单元,用于在下载过程中下发停止升级命令或继续下载命令;
95.更新启停单元,用于基于固件升级进度和升级是否成功的信息决定是否更新,若决定更新,则下发软重启命令;若决定不更新,则下发删除已下载的固件程序命令。
96.实施例中固件服务器具有启停远方网关固件升级的功能,主要有固件通信模块和固件更新服务模块。固件升级启停操作由固件服务器中的固件更新服务模块控制,当有新固件程序时,由固件更新服务模块决定是否需要升级固件程序。若需要升级固件程序,由固件更新服务模块发起更新任务,固件通信模块与网关通信模块建立加密认证通道和socket连接,用于新固件程序的下装。固件更新服务模块执行新固件程序的下装任务,首先通过mqtt socket连接获取网关当前的固件信息。若需要更新固件,在发出开始下装的命令后,若得到网关的响应,则执行新固件程序的下装任务;若中途停止,则向网关下发停止升级命令,同时停止下装任务;若完成下装,则再向网关下发软重启命令;若确定不更新,也可向网关下发删除新固件程序的命令。
97.(2)电力物联代理网关
98.网关固件升级功能由改造flash、网关通信模块和固件更新模块完成。
99.所述固件更新模块,包括:
100.上报当前版本信息单元,用于基于获取电力物联代理网关当前固件程序的版本信息请求,上报电力物联代理网关的当前固件程序的版本信息;
101.升级单元,用于基于固件升级命令通过固件url下载固件.bin文件;还用于上报固件升级进度和升级是否成功的信息;
102.启动更新单元,用于接收并执行软重启命令对电力物联代理网关执行重启操作;
103.停止升级/更新单元,用于在下载固件程序的过程中当收到停止升级命令且在设定时间内未收到继续下载命令时,则删除已下载的固件.bin文件,还用于接收并执行删除已下载的固件程序命令;
104.所述上报当前版本信息单元,还用于在软重启操作后上报当前固件程序的版本信息。
105.实施例中改造flash除完成原有的bios、bootloader引导等启动加载功能外,还将为新固件程序预留存储空间,在网关系统上电开机启动时,bios检查是否有新的固件程序,若存在新固件程序,bootloader检查主要固件的参数信息,并将新固件程序加载到原有固
件程序存储空间,bootloader将操作系统的内核映像从flash读到内存,然后将控制权再移交给操作系统内核,启动操作系统。
106.实施例中网关通信模块用于与固件通信模块建立安全的通信通道和签名认证功能。
107.实施例中固件更新模块用于基于固件更新服务模块下发的升级启停指令完成固件升级功能,接收和响应固件更新服务模块下发的固件更新启停命令,执行软重启和删除新固件程序命令。若网关下载升级固件程序中途收到终止升级命令,在设定的时间内未收到继续下载命令,则删除已下载的部分.bin文件,其中设定的时间可以为30分钟。
108.2、flash改造划分方法
109.flash原存储bios、bootloader、操作系统内核和原有固件程序,其中bios存储于flash rom。为实现固件程序可以远程升级的目标,本发明将flash存储空间进行改造,flash存储空间划分为多个片区,分别存储为flash rom片区、bootloader片区、原有固件程序存储片区、操作系统内核存储片区、固件参数片区和预留新固件程序存储片区。flash rom片区仍烧录bios程序,bootloader片区仍存储bootloader引导加载程序,操作系统内核存储片区仍存储操作系统内核程序,拓展一个片区作为预留新固件程序存储片区,用于存储更新的固件程序,原有固件程序存储片区仍保留,固件参数片区记录固件参数信息。
110.当开机加载固件程序时仍从原有固件程序存储片区读取,当预留新固件程序存储片区存在更新的固件程序时,则首先将更新的固件程序覆盖原有的固件程序。
111.3、下装通道设计
112.固件服务器和网关沿用原有的物理通信通道,可以为专用的网络,也可以为公共的网络。为保证固件升级过程的安全性,引入安全传输层协议(transport layer security,tls)构建安全防护通信通道。tls是一种应用于两个应用程序之间的安全传输协议,协议基于tcp/ip,位于应用层和传输层之间。协议为信息传输提供加密、身份验证和数据完整性三个方面的基本保证。在固件服务器与网关建立tcp连接过程中,双方协商采用相同tls协议版本、标准加密套件,并互相认证对方的数字签名证书,建立起加密认证传输通道。
113.固件通信模块与网关通信模块均支持消息队列遥测传输协议(message queuing telemetry transport,mqtt),两者通过mqtt协议交换当前固件版本信息、固件url(uniform resource locator)、固件.bin文件、固件升级进度、固件升级启停命令、固件升级是否成功信息等。
114.4、远程升级流程
115.如图2所示,网关ota升级流程如下:
116.(1)双方协商确定tls版本为tls1.2,加密认证套件采用标准加密套件,并校验数字签名证书,确定生成对话密钥的随机数,建立对称加密传输通道;
117.(2)固件服务器通过mqtt协议向网关请求当前固件版本信息;
118.(3)网关返回当前固件版本信息;
119.(4)固件服务器收到当前固件版本信息后与最新固件进行版本比对,决定是否启动固件升级,若决定启动固件升级功能,固件服务器向网关下发最新固件版本的url;
120.(5)网关收到最新固件版本的url后,通过mqtt协议根据url下载新版本固件;
121.(6)网关在下载的过程中向固件服务器上报固件下载的进度,包括固件下载是否成功、最新版本、失败原因等;
122.(7)固件.bin文件下载完成后,固件服务器收到下载成功信息后,决定是否更新固件程序,若更新,则下发软重启命令;若不更新,则下发删除最新固件程序命令;
123.(8)若更新,网关收到固件服务器下发的软重启命令后执行,并在重启初始化过程中,bios检查固件参数并分配好资源,检测是否有新固件程序,将控制权交给bootloader,bootloader将新固件程序加载到原有固件程序存储空间,然后再将控制权移交给至操作系统内核,跳转至操作系统入口点启动操作系统。
124.(9)网关中的操作系统重启后主动建立连接,通过mqtt协议上送最新固件版本信息至固件服务器。至此完成网关的固件更新。
125.本发明实施例以配电站网关设备的串口驱动软件远程升级为例介绍更新过程。配电网关串口原固件为v1.0版本.bin文件,新固件版本为v2.0版本.bin文件,要求网关设备和固件服务器均支持tls1.2协议,同时网关配置了数字签名证书。
126.升级过程如下:
127.(1)将网关设备flash片区划分为flash rom片区、bootloader片区、原有固件程序存储片区、操作系统内核存储片区、固件参数片区和预留新固件程序存储片区;
128.(2)网关设备和固件服务器在建立通信连接过程中,协商双方要用的tls协议版本为tls1.2,采用标准加密套件tls_ecdhe_ecdsa_with_aes_128_gcm_sha256,同时验证数字签名证书,协商用于作为两者通信对称加密密钥的随机数;
129.(3)固件服务器通过mqtt协议请求网关设备串口固件版本,网关回复v1.0;
130.(4)固件服务器启动升级串口固件版本流程,向网关发送新固件版本v2.0.bin文件的url;
131.(5)网关根据url下载v2.0.bin文件至预留新固件程序存储片区,下载完成后回复固件服务器;
132.(6)固件服务器确定更新串口固件程序,下发软重启命令,网关重启,bios检查固件参数和是否有新固件程序,发现存在新固件程序,将控制权交给bootloader,bootloader将预留新固件程序复制到原有固件程序存储片区,操作系统的内核映像从flash读到内存,然后再将控制权移交给操作系统内核,启动操作系统;
133.(7)网关系统重启后,向固件服务器发送固件的最新版本。
134.本发明中url(uniform resource locator,统一资源定位符),它是www的统一资源定位标志,就是指网络地址。
135.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
136.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序
指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
137.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
138.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
139.以上仅为本发明的实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均包含在申请待批的本发明的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1