一种基于强化学习的物联网终端远程升级方法及装置

未命名 09-20 阅读:67 评论:0


1.本发明涉及物联网技术领域,具体涉及一种基于强化学习的物联网终端远程升级方法及装置。


背景技术:

2.随着物联网技术的发展,传感器等物联网感知设备的数量呈爆发式增长,从而产生了大量的实时数据。在传感器网络中,终端设备需要向网关上报数据并通过网关进行管理。随着实际需要的变化和安全问题的产生,物联网终端设备的固件常常需要通过远程升级的方式进行更新。在远程升级过程中,物联网终端需要获取新的固件后将其加载到内存中完成更新。但是,同时对所有终端设备进行更新往往超过了网关的处理能力。当网关处理的更新请求数目超出负荷时,容易导致响应超时、更新失败等情况,造成时间以及能源上的浪费。
3.目前,常规的物联网设备远程升级方案通过对物联网设备进行编号,借由网关分批发送更新请求从而控制同时进行升级的设备数量。这种方法管理简单,但是自动化程度低,在面临复杂的环境状况时容易表现不佳,实时性差,无法对网络环境变化做出反应,也无法充分利用网关的资源。


技术实现要素:

4.针对现有技术中存在的缺陷,本发明的目的在于提供一种基于强化学习的物联网终端远程升级方法及装置,能够保证远程更新升级的可靠性。
5.为达到以上目的,本发明提供一种基于强化学习的物联网终端远程升级方法,具体包括以下步骤:
6.通过网关发送升级请求至物联网终端,以通知物联网终端进行远程升级,所述升级请求包括更新服务器的地址、远程升级的最晚截止时间;
7.对物联网终端的flash区域进行划分,将flash划分为应用软件程序区域和升级引导程序区域;
8.物联网终端接收升级请求后切换中断向量表由应用软件程序切换至升级引导程序,基于强化学习算法进行分布式自主升级决策;
9.基于ftp协议,物联网终端与更新服务器间通讯,以下载更新所需文件,并进行q表的更新,以及进行应用软件固件的更新。
10.在上述技术方案的基础上,所述物联网终端日常运行情形下运行应用软件程序,当接收到网关发送的升级请求之后,切换中断向量表由应用软件程序切换至升级引导程序。
11.在上述技术方案的基础上,所述基于强化学习算法进行分布式自主升级决策,具体步骤包括:
12.对物联网终端的升级次数进行判定,若物联网终端为首次升级,则物联网终端对
时隙编号进行随机初始化作为初始状态并将q表初始化,反之则使用上次升级时所采用的时隙编号作为状态并延用q表;
13.根据ε-greedy策略选择动作,以ε的概率进行随机选择,以1-ε的概率通过查找q表选择当前状态下q值最大的动作,根据选择的动作对时隙编号进行修改得到新状态;
14.根据网关发送的升级请求中的远程升级的最晚截止时间,以及时隙编号计算本次远程升级的启动时间,等待时间到达后开始进行远程升级。
15.在上述技术方案的基础上,
16.在进行q表初始化时,根据应用场景的需要对q表赋值,且可提高q表中各个时隙状态下采用减小时隙编号动作的q值,以在更短的时隙内完成升级。
17.在上述技术方案的基础上,所述动作包括减小时隙编号、保持时隙编号和增大时隙编号。
18.在上述技术方案的基础上,所述基于ftp协议,物联网终端与更新服务器间通讯,以下载更新所需文件,具体步骤包括:
19.物联网终端与更新服务器间通过ftp协议进行通信,物联网终端下载应用软件固件描述文件并解析文件内容,所述应用软件固件描述文件包括固件版本号、固件文件大小、作者和修改日期;
20.物联网终端将原固件版本号与解析应用软件固件描述文件得到的固件版本号进行对比,以判断是否需要下载新应用软件固件:
21.若是,则物联网终端下载新应用软件固件,并验证完整性,然后切换至应用软件程序;
22.若否,则直接切换至应用软件程序。
23.在上述技术方案的基础上,所述进行q表的更新,其中,进行q表更新所采用的更新公式为:
24.q(s,a)=q(s,a)+a(r+γ*max(q(s

,a

))-q(s,a))
25.其中,q(s,a)表示在状态s下采用动作a的q值,s表示当前状态,a表示选择的动作,a表示学习率,r表示奖励函数,γ表示折扣因子,s

表示执行完动作a后的下一状态,a

表示在状态s

下选择的动作,q(s

,a

)表示在状态s

下采用动作a

得到的q值。
26.在上述技术方案的基础上,在进行应用软件固件的更新之前,还包括:
27.判断应用软件固件是否下载成功:
28.若是,则进行应用软件固件的更新;
29.若否,则从升级引导程序切换至应用软件程序,向网关上报更新失败并结束本次更新。
30.在上述技术方案的基础上,所述进行应用软件固件的更新,具体步骤包括:
31.保存升级引导程序的中断向量表,设置升级标识,关闭中断,清空应用软件程序代码区;
32.依次读取下载的应用软件固件的512字节数据并进行解析,所述应用软件固件包含地址标识以及ascii码形式的机器码;
33.升级引导程序提取地址标识并存入地址变量中,并将ascii码形式的机器码转为十六进制机器码并存入缓存区;
34.持续读取应用软件固件直至全部读取完成,当读取到文件末尾eof时将缓冲区内的数据写入地址变量所指的flash中,修改升级标识为已完成,将额外的中断向量表缓冲区的数据按块写入主控制器的中断向量表处并进行覆盖,开启中断;
35.物联网终端重启主控制器,切换到应用软件程序并向网关上报新的固件版本号;
36.其中,在对应用软件固件进行解析,当缓存区存储空间满时,则对缓存区进行处理,处理方式为:若地址变量指向中断向量表,则将缓存区内数据按照偏移量写入额外的中断向量表缓冲区中,反之,则将缓冲区的内容按块写入地址变量所指的flash中,并且修改地址变量使地址变量指向下一次机器码的写入地址。
37.本发明提供的一种基于强化学习的物联网终端远程升级装置,包括:
38.发送模块,其用于通过网关发送升级请求至物联网终端,以通知物联网终端进行远程升级,所述升级请求包括更新服务器的地址、远程升级的最晚截止时间;
39.划分模块,其用于对物联网终端的flash区域进行划分,将flash划分为应用软件程序区域和升级引导程序区域;
40.决策模块,其用于驱使物联网终端接收升级请求后切换中断向量表由应用软件程序切换至升级引导程序,基于强化学习算法进行分布式自主升级决策;
41.更新模块,其用于基于ftp协议,驱使物联网终端与更新服务器间通讯,以下载更新所需文件,并进行q表的更新,以及进行应用软件固件的更新。
42.与现有技术相比,本发明的优点在于:
43.(1)面向物联网设备,在有限资源物联网设备中以强化学习的方法进行分布式自主更新决策,进而实现物联网设备稳定、可靠、智能化的远程升级;
44.(2)使用强化学习算法进行分布式自主决策,终端之间不进行通信且减少了终端和网关之间的通信负荷,避免终端之间资源过度竞争,可以降低更新所需时间,减少能源上的浪费;
45.(3)本发明涉及的远程更新机制使用物联网联网模块的存储器,可以实现在存储资源有限的主控制器设备上进行远程更新,通过软件固件和描述文件的校验机制,保证了远程更新的可靠性。
附图说明
46.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
47.图1为本发明实施例中一种基于强化学习的物联网终端远程升级方法的流程图;
48.图2为本发明基于强化学习的物联网终端远程升级方法的整体流程框架图。
具体实施方式
49.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术的一部分实施例,而不是全部的实施例。
50.参见图1所示,本发明实施例提供的一种基于强化学习的物联网终端远程升级方法,具体包括以下步骤:
51.s1:通过网关发送升级请求至物联网终端,以通知物联网终端进行远程升级,所述升级请求包括更新服务器的地址、远程升级的最晚截止时间;
52.s2:对物联网终端的flash区域进行划分,将flash划分为应用软件程序区域和升级引导程序区域;
53.s3:物联网终端接收升级请求后切换中断向量表由应用软件程序切换至升级引导程序,基于强化学习算法进行分布式自主升级决策;
54.本发明中,物联网终端日常运行情形下运行应用软件程序,当接收到网关发送的升级请求之后,切换中断向量表由应用软件程序切换至升级引导程序,从而开始进行分布式自主升级决策。
55.本发明中,基于强化学习算法进行分布式自主升级决策,具体步骤包括:
56.s301:对物联网终端的升级次数进行判定,若物联网终端为首次升级,则物联网终端对时隙编号进行随机初始化作为初始状态并将q表初始化,反之则使用上次升级时所采用的时隙编号作为状态并延用q表;本发明的强化学习算法为qlearning强化学习算法,是一种记录行为值(q)的算法。
57.在进行q表初始化时,根据应用场景的需要对q表赋值,且可提高q表中各个时隙状态下采用减小时隙编号动作的q值,以在更短的时隙内完成升级,这样能够使终端拥有更早启动远程升级的趋势。
58.s302:根据ε-greedy策略(贪婪策略)选择动作,以ε的概率进行随机选择,以1-ε的概率通过查找q表选择当前状态下q值最大的动作,根据选择的动作对时隙编号进行修改得到新状态;
59.动作包括减小时隙编号、保持时隙编号和增大时隙编号。即根据选择的动作a对时隙编号进行修改得到新状态s


60.s303:根据网关发送的升级请求中的远程升级的最晚截止时间,以及时隙编号计算本次远程升级的启动时间,等待时间到达后开始进行远程升级。
61.s4:基于ftp(filetransferprotocol,文件传输协议)协议,物联网终端与更新服务器间通讯,以下载更新所需文件,并进行q表的更新,以及进行应用软件固件的更新。
62.本发明中,基于ftp协议,物联网终端与更新服务器间通讯,以下载更新所需文件,具体步骤包括:
63.s401:物联网终端与更新服务器间通过ftp协议进行通信,物联网终端下载应用软件固件描述文件并解析文件内容,所述应用软件固件描述文件包括固件版本号、固件文件大小、作者和修改日期;即应用软件固件描述文件包括固件版本号、固件文件大小等必要信息,也可包括作者、修改日期等非必要信息。
64.s402:物联网终端将原固件版本号与解析应用软件固件描述文件得到的固件版本号进行对比,以判断是否需要下载新应用软件固件:
65.若是,则物联网终端下载新应用软件固件,并验证完整性,然后切换至应用软件程序;
66.若否,则直接切换至应用软件程序。
67.其中,物联网终端通过使用物联网联网模块下载应用软件固件并存储在联网模块的存储器中,下载完成后根据描述文件中的相关信息进行完整性验证,若验证失败则重复尝试下载直到达到预设的容错次数。
68.本发明中,进行q表的更新,其中,进行q表更新所采用的更新公式为:
69.q(s,a)=q(s,a)+a(r+γ*max(q(s

,a

))-q(s,a))
70.其中,q(s,a)表示在状态s下采用动作a的q值,s表示当前状态,a表示选择的动作,a表示学习率,r表示奖励函数,由下载情况来决定,若下载成功,则奖励函数应为正数,否则可根据失败重试的次数设置为不同的负值,表示当前状态下发生竞争的激烈程度,γ表示折扣因子,可根据实际应用场景进行设置,本发明实施例中,设置a为0.5,γ为0.5,s

表示执行完动作a后的下一状态,a

表示在状态s

下选择的动作,q(s

,a

)表示在状态s

下采用动作a

得到的q值。
71.本发明中,在进行应用软件固件的更新之前,还包括:
72.判断应用软件固件是否下载成功:
73.若是,则进行应用软件固件的更新;
74.若否,则从升级引导程序切换至应用软件程序,向网关上报更新失败并结束本次更新。本发明实施例使用的主控制器为msp430f5438a芯片。
75.本发明中,进行应用软件固件的更新,具体步骤包括:
76.s411:保存升级引导程序的中断向量表,设置升级标识,关闭中断,清空应用软件程序代码区;
77.s412:依次读取下载的应用软件固件的512字节数据并进行解析,所述应用软件固件包含地址标识以及ascii码形式的机器码;
78.s413:升级引导程序提取地址标识并存入地址变量中,并将ascii码形式的机器码转为十六进制机器码并存入缓存区;
79.s414:持续读取应用软件固件直至全部读取完成,当读取到文件末尾eof时将缓冲区内的数据写入地址变量所指的flash中,修改升级标识为已完成,将额外的中断向量表缓冲区的数据按块写入主控制器的中断向量表处并进行覆盖,开启中断;
80.s415:物联网终端重启主控制器,切换到应用软件程序并向网关上报新的固件版本号;
81.其中,在对应用软件固件进行解析,当缓存区存储空间满时,则对缓存区进行处理,处理方式为:若地址变量指向中断向量表,则将缓存区内数据按照偏移量写入额外的中断向量表缓冲区中,反之,则将缓冲区的内容按块写入地址变量所指的flash中,并且修改地址变量使地址变量指向下一次机器码的写入地址。
82.本发明实施例的基于强化学习的物联网终端远程升级方法,其整体流程框架图如图2所示。
83.对于本发明的物联网终端远程升级方法,主要包括网关、物联网终端、更新服务器三个部分。
84.网关用于发起远程升级的升级请求,与运行应用软件程序的物联网终端直接通信,向物联网终端提供更新服务器的地址、远程升级的最晚截止时间等信息;
85.物联网终端通过强化学习算法进行分布式自主升级决策,避免多终端过度竞争更
新服务器的有限资源。通过强化学习算法做出决策后,终端等待决策的更新时间到来后与更新服务器进行通信。在整个过程中各终端之间不进行通信,仅通过强化学习算法对环境进行学习从而协调多个终端与更新服务器之间的关系;物联网终端通过ftp协议从更新服务器处下载更新所需文件;
86.更新服务器为物联网终端提供ftp服务,供物联网终端下载应用软件固件以及应用软件固件描述文件。
87.本发明中,物联网终端通过强化学习算法进行分布式自主升级决策,使用qlearning强化学习算法,根据网关提供的远程升级最晚截止时间将时间分为多个时隙,并将随机初始化的时隙编号作为模型的状态,将减小时隙编号、保持时隙编号、增大时隙编号作为模型的动作,通过迭代训练模型从而得到合适的动作策略。终端通过强化学习算法选择动作并对状态(时隙编号)进行更新,观察在新状态下远程升级的更新表现并修改q表中对应状态下采取特定动作所能获得的预期累计奖励。
88.在初始化阶段,根据实际需要可在初始化q表时灵活赋值,如若期望减少物联网终端等待时隙的时间,可以在初始化q表示提高各状态下选取减小时隙编号动作的q值。
89.在迭代阶段,根据ε-greedy算法选择动作,以ε的概率随机选择动作,以1-ε的概率选择当前状态下能获得的预期累计奖励最大的动作。
90.本发明中,多个物联网终端之间不需要通信,物联网终端与更新服务器之间不存在管理关系,更新服务器只需要提供ftp服务。物联网终端接收到网关的更新请求后,从应用软件程序切换到升级引导程序进行更新。终端从更新服务器中获取的应用程序固件描述文件,与本地存储的应用软件固件信息进行比对后自行判断是否存在更新需求。若需要更新,则下载应用程序固件,下载完成后可通过应用软件固件描述文件中的信息如文件大小、md5校验等进行完整性验证。通过完整性验证后对固件进行搬移。
91.本发明中,观察终端在当前时隙下远程升级的更新情况作为奖励函数的输入。根据强化学习原理,智能体通过与环境的交互学习得到合适的动作策略,物联网终端通过观察远程升级的更新情况,包括升级成功与否、尝试次数等信息对其余终端的竞争情况以及更新服务器的资源余量进行揣测,最终得到一个适合该终端的动作策略和时隙编号。
92.本发明中,物联网终端日常工作在应用软件程序中,在接收到网关发来的更新请求后切换到升级引导程序。升级引导程序负责进行分布式决策和远程升级的应用软件固件下载、解析以及加载。下载的固件被存储在物联网联网模块的存储区中。在固件加载时,升级引导程序每次读取512字节的固件,解析后逐步覆盖应用软件程序;全部读取完成后升级引导程序切换回应用软件程序,并由应用软件程序上报版本号至网关。
93.本发明的基于强化学习的物联网终端远程升级方法,由物联网终端自主决策更新时机,能够对环境进行学习。
94.物联网终端主控制器中包含两个程序分别为升级引导程序和应用软件程序。两个程序同时存在flash(存储器)中。正常工作模式下,主控制器运行应用软件程序,仅当接收到网关发送的升级要求后切换到升级引导程序进行远程升级。切换到升级引导程序后,首先根据强化学习算法获得理想升级时隙编号,然后等待至特定时隙启动升级;通过物联网联网模组与更新服务器进行ftp通信,下载新版本的应用程序固件和应用程序固件描述文件,检验完整性后加载到flash中,旧的应用程序被覆盖;根据环境反馈更新强化学习模型,
切换到新的应用软件程序,由新的应用程序向网关上报新版本号,更新结束。
95.本发明中,终端在首次运行升级引导程序后随机生成一个初始时隙编号并保存在flash中。随后,由升级引导程序通过强化学习算法对该编号进行维护。
96.本发明中,使用的强化学习算法为基于qlearning的强化学习算法。该算法使用q表存储每个状态和动作对应的q值,q值表示在给定状态下采取某个动作所能获得的预期累计奖励。在q学习的迭代过程中,物联网终端与更新服务器进行通信,根据更新情况获得奖励信号和新状态并以此更新q表中对应状态和动作的q值。q表的更新公式为:
97.q(s,a)=q(s,a)+a(r+γ*max(q(s

,a

))-q(s,a))。
98.在本发明中,选择时隙编号作为状态,动作包括减小时隙编号、保留时隙编号、增大时隙编号三种动作。在每次更新时,终端采用ε-greedy策略选择动作,即以ε的概率选择随机动作,以1-ε的概率查询q表来选择具有最高q值的动作从而做出决策。在做出决策后终端按照所选动作对时隙编号即时进行修改并等待观察更新情况,根据更新情况的反馈按照公式进行更新。随着物联网终端和更新服务器的通信q表不断迭代更新,终端能逐渐学习到最佳的动作策略并调整得到一个稳定的时隙编号。
99.本发明中,物联网终端和更新服务器之间以ftp方式进行通信,下载的数据存储在物联网联网模块的存储器上。更新服务器上存放两个文件:应用软件固件、应用软件固件描述文件。应用软件固件描述文件包含固件大小、版本号等基本信息,可用于检验下载应用软件固件的完整性。终端首先下载应用软件固件描述文件,判断本地应用程序固件版本号是否为最新版本;确认需要更新后再下载应用软件固件,下载完成后通过比较应用软件固件和应用软件固件描述文件中的信息是否一致进行验证。完整性验证通过后,终端读取物联网联网模块中的存储器并将应用软件固件代码写入到flash中,完成后更新本地应用程序固件版本号,最后更新中断向量表并重启实现从升级引导程序到应用软件程序的切换。
100.本发明采用qlearning强化学习的方法,利用更新情况作为反馈对时隙编号不断进行调整,可以避免多个终端过度竞争有限的更新服务器资源,实现智能化的分布式自主决策,可以稳定、可靠地进行远程升级。本发明提供了用于物联网终端基于强化学习的远程升级方法,用于解决如何提供一种易于实现、高效、可靠的远程升级机制的技术问题。本发明是通过以下技术方案来实现的,包括基于qlearning强化学习的分布式自主决策、终端与更新服务器间的远程更新机制。
101.对于qlearning自主更新决策的算法流程,包括以下步骤:
102.(1)随机初始化时隙编号作为初始状态,初始化q表;
103.(2)按照ε-greedy策略,以ε的概率选择随机动作,以1-ε的概率查询q表选择具有最高q值的动作,根据所选动作对状态即时隙编号进行更新;
104.(3)等待时隙到来后进行远程更新,观察远程升级更新的结果作为奖励函数的输入,通过以下公式更新q表:
105.q(s,a)=q(s,a)+a(r+γ*max(q(s

,a

))-q(s,a))。
106.(4)若更新成功则结束决策算法,切换至应用软件程序;否则跳转至步骤(2)。
107.在一种可能的实施方式中,本发明实施例还提供一种非暂态计算机可读存储介质,可读存储介质位于plc(programmablelogic controller,可编程逻辑控制器)控制器中,可读存储介质上存储有计算机程序,该程序被处理器执行时实现以下所述一种基于强
化学习的物联网终端远程升级方法的步骤:
108.通过网关发送升级请求至物联网终端,以通知物联网终端进行远程升级,所述升级请求包括更新服务器的地址、远程升级的最晚截止时间;
109.对物联网终端的flash区域进行划分,将flash划分为应用软件程序区域和升级引导程序区域;
110.物联网终端接收升级请求后切换中断向量表由应用软件程序切换至升级引导程序,基于强化学习算法进行分布式自主升级决策;
111.基于ftp协议,物联网终端与更新服务器间通讯,以下载更新所需文件,并进行q表的更新,以及进行应用软件固件的更新。
112.存储介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
113.计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
114.可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
115.本发明实施例提供的一种基于强化学习的物联网终端远程升级装置,包括发送模块、划分模块、决策模块和更新模块。
116.发送模块用于通过网关发送升级请求至物联网终端,以通知物联网终端进行远程升级,所述升级请求包括更新服务器的地址、远程升级的最晚截止时间;划分模块用于对物联网终端的flash区域进行划分,将flash划分为应用软件程序区域和升级引导程序区域;决策模块用于驱使物联网终端接收升级请求后切换中断向量表由应用软件程序切换至升级引导程序,基于强化学习算法进行分布式自主升级决策;更新模块用于基于ftp协议,驱
使物联网终端与更新服务器间通讯,以下载更新所需文件,并进行q表的更新,以及进行应用软件固件的更新。
117.以上所述仅是本技术的具体实施方式,使本领域技术人员能够理解或实现本技术。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
118.本发明是参照根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

技术特征:
1.一种基于强化学习的物联网终端远程升级方法,其特征在于,具体包括以下步骤:通过网关发送升级请求至物联网终端,以通知物联网终端进行远程升级,所述升级请求包括更新服务器的地址、远程升级的最晚截止时间;对物联网终端的flash区域进行划分,将flash划分为应用软件程序区域和升级引导程序区域;物联网终端接收升级请求后切换中断向量表由应用软件程序切换至升级引导程序,基于强化学习算法进行分布式自主升级决策;基于ftp协议,物联网终端与更新服务器间通讯,以下载更新所需文件,并进行q表的更新,以及进行应用软件固件的更新。2.如权利要求1所述的一种基于强化学习的物联网终端远程升级方法,其特征在于:所述物联网终端日常运行情形下运行应用软件程序,当接收到网关发送的升级请求之后,切换中断向量表由应用软件程序切换至升级引导程序。3.如权利要求1所述的一种基于强化学习的物联网终端远程升级方法,其特征在于,所述基于强化学习算法进行分布式自主升级决策,具体步骤包括:对物联网终端的升级次数进行判定,若物联网终端为首次升级,则物联网终端对时隙编号进行随机初始化作为初始状态并将q表初始化,反之则使用上次升级时所采用的时隙编号作为状态并延用q表;根据ε-greedy策略选择动作,以ε的概率进行随机选择,以1-ε的概率通过查找q表选择当前状态下q值最大的动作,根据选择的动作对时隙编号进行修改得到新状态;根据网关发送的升级请求中的远程升级的最晚截止时间,以及时隙编号计算本次远程升级的启动时间,等待时间到达后开始进行远程升级。4.如权利要求3所述的一种基于强化学习的物联网终端远程升级方法,其特征在于:在进行q表初始化时,根据应用场景的需要对q表赋值,且可提高q表中各个时隙状态下采用减小时隙编号动作的q值,以在更短的时隙内完成升级。5.如权利要求3所述的一种基于强化学习的物联网终端远程升级方法,其特征在于:所述动作包括减小时隙编号、保持时隙编号和增大时隙编号。6.如权利要求3所述的一种基于强化学习的物联网终端远程升级方法,其特征在于,所述基于ftp协议,物联网终端与更新服务器间通讯,以下载更新所需文件,具体步骤包括:物联网终端与更新服务器间通过ftp协议进行通信,物联网终端下载应用软件固件描述文件并解析文件内容,所述应用软件固件描述文件包括固件版本号、固件文件大小、作者和修改日期;物联网终端将原固件版本号与解析应用软件固件描述文件得到的固件版本号进行对比,以判断是否需要下载新应用软件固件:若是,则物联网终端下载新应用软件固件,并验证完整性,然后切换至应用软件程序;若否,则直接切换至应用软件程序。7.如权利要求6所述的一种基于强化学习的物联网终端远程升级方法,其特征在于,所述进行q表的更新,其中,进行q表更新所采用的更新公式为:q(s,a)=q(s,a)+a(r+γ*max(q(s

,a

))-q(s,a))其中,q(s,a)表示在状态s下采用动作a的q值,s表示当前状态,a表示选择的动作,a表
示学习率,r表示奖励函数,γ表示折扣因子,s

表示执行完动作a后的下一状态,a

表示在状态s

下选择的动作,q(s

,a

)表示在状态s

下采用动作a

得到的q值。8.如权利要求7所述的一种基于强化学习的物联网终端远程升级方法,其特征在于,在进行应用软件固件的更新之前,还包括:判断应用软件固件是否下载成功:若是,则进行应用软件固件的更新;若否,则从升级引导程序切换至应用软件程序,向网关上报更新失败并结束本次更新。9.如权利要求8所述的一种基于强化学习的物联网终端远程升级方法,其特征在于,所述进行应用软件固件的更新,具体步骤包括:保存升级引导程序的中断向量表,设置升级标识,关闭中断,清空应用软件程序代码区;依次读取下载的应用软件固件的512字节数据并进行解析,所述应用软件固件包含地址标识以及ascii码形式的机器码;升级引导程序提取地址标识并存入地址变量中,并将ascii码形式的机器码转为十六进制机器码并存入缓存区;持续读取应用软件固件直至全部读取完成,当读取到文件末尾eof时将缓冲区内的数据写入地址变量所指的flash中,修改升级标识为已完成,将额外的中断向量表缓冲区的数据按块写入主控制器的中断向量表处并进行覆盖,开启中断;物联网终端重启主控制器,切换到应用软件程序并向网关上报新的固件版本号;其中,在对应用软件固件进行解析,当缓存区存储空间满时,则对缓存区进行处理,处理方式为:若地址变量指向中断向量表,则将缓存区内数据按照偏移量写入额外的中断向量表缓冲区中,反之,则将缓冲区的内容按块写入地址变量所指的flash中,并且修改地址变量使地址变量指向下一次机器码的写入地址。10.一种基于强化学习的物联网终端远程升级装置,其特征在于,包括:发送模块,其用于通过网关发送升级请求至物联网终端,以通知物联网终端进行远程升级,所述升级请求包括更新服务器的地址、远程升级的最晚截止时间;划分模块,其用于对物联网终端的flash区域进行划分,将flash划分为应用软件程序区域和升级引导程序区域;决策模块,其用于驱使物联网终端接收升级请求后切换中断向量表由应用软件程序切换至升级引导程序,基于强化学习算法进行分布式自主升级决策;更新模块,其用于基于ftp协议,驱使物联网终端与更新服务器间通讯,以下载更新所需文件,并进行q表的更新,以及进行应用软件固件的更新。

技术总结
本发明公开了一种基于强化学习的物联网终端远程升级方法及装置,涉及物联网技术领域,该方法包括通过网关发送升级请求至物联网终端,以通知物联网终端进行远程升级,所述升级请求包括更新服务器的地址、远程升级的最晚截止时间;对物联网终端的Flash区域进行划分,将Flash划分为应用软件程序区域和升级引导程序区域;物联网终端接收升级请求后切换中断向量表由应用软件程序切换至升级引导程序,基于强化学习算法进行分布式自主升级决策;基于FTP协议,物联网终端与更新服务器间通讯,以下载更新所需文件,并进行Q表的更新,以及进行应用软件固件的更新。本发明能够保证远程更新升级的可靠性。级的可靠性。级的可靠性。


技术研发人员:刘树波 吴钧诚 蔡朝晖 涂国庆
受保护的技术使用者:武汉大学
技术研发日:2023.07.12
技术公布日:2023/9/19
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐