掌桥专利:专业的专利平台
掌桥专利
首页

一种矿用传感器程序升级方法及系统

文献发布时间:2024-04-18 19:59:31


一种矿用传感器程序升级方法及系统

技术领域

本申请涉及微处理器设计与应用技术领域,尤其涉及一种矿用传感器程序升级方法及系统。

背景技术

矿用传感器是矿业安全监控系统的重要组成部分。随着对开采工作的智能化、自动化要求不断提高,矿用传感器在使用中需要对固件程序进行升级。目前最常见的固件程序升级方式为作业人员将矿用传感器取回至地面维护中心统一进行升级,这势必增加人力成本和时间成本。因此,如何实现高速、稳定、便捷、低成本以及高成功率的固件程序升级方式,是矿用传感器应用的重点。

应该注意,上面对技术背景的介绍只是为了方便对本申请的技术方案进行清楚、完整的说明,并方便本领域技术人员的理解而阐述的。不能仅仅因为这些方案在本申请的背景技术部分进行了阐述而认为上述技术方案为本领域技术人员所公知。

发明内容

本申请实施例提供一种矿用传感器程序升级方法及系统。

本申请第一方面实施例提出了一种矿用传感器程序升级方法,包括:

将矿用传感器和烧写器进行第一次连接,由烧写器发送升级命令,并准备需要升级的程序;

根据需要升级的程序,烧写器和矿用传感器进行第二次连接,并更新矿用传感器的阶段状态;

根据第二次连接,烧写器向矿用传感器传输需要升级的程序,矿用传感器对接收的程序数据进行校验,并更新矿用传感器的阶段状态,将校验无误的程序数据存储在矿用传感器的升级存储区;

根据存储在矿用传感器的升级存储区的程序数据,矿用传感器进行覆写操作,使矿用传感器更新对应的阶段状态,直至完成程序升级,其中,在程序升级失败时,矿用传感器运行原有程序。

本申请第二方面实施例提出了一种矿用传感器程序升级系统,包括:

烧写器,用于上电或复位后选择性发送升级命令,并准备需要升级的程序;

矿用传感器,与烧写器进行连接,对需要升级的程序进行覆写操作,直至完成程序升级。

本申请第三方面实施例提出了一种电子设备,包括:上述第二方面实施例提出的矿用传感器程序升级系统。

本申请第四方面实施例提出了一种非临时性计算机可读存储介质,当所述存储介质中的命令由电子设备的处理器执行时,使得电子设备能够执行本申请第一方面实施例提出的矿用传感器程序升级方法。

本申请第五方面实施例提出了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面实施例提出的矿用传感器程序升级方法。

本申请的实施例提供的技术方案至少带来以下有益效果:

利用矿用传感器现有的硬件接口和通信网络即可实现程序升级,最大限度地利用现有资源;使用离线烧写器对单独的矿用传感器进行升级,不会影响到其他矿用传感器的工作状态;极大地提高了通信速度;对需要升级的程序添加计数校验操作、CRC校验操作以及阶段状态校验操作,提升了升级的成功率和鲁棒性,且在出现升级错误时仍能使矿用传感器执行原来功能,提升了矿用传感器使用的容错率。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1为本申请实施例所提供的一种矿用传感器程序升级方法的流程示意图;

图2为本申请实施例所提供的矿用传感器的启动引导区的流程示意图;

图3为本申请实施例所提供的矿用传感器的应用程序区的结构示意图;

图4为本申请实施例所提供的另一种矿用传感器程序升级方法的流程示意图;

图5为本申请实施例所提供的一种矿用传感器程序升级系统的结构示意图;

图6为根据本申请实施例所提供的一种电子设备的结构示意图;

图7为根据本申请实施例所提供的另一种电子设备的结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请实施例的一些方面相一致的装置和方法的例子。

在本申请实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请实施例。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”及“若”可以被解释成为“在……时”或“当……时”或“响应于确定”。

下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的要素。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。

现有的矿用传感器的固件升级方式包括:作业人员将待升级的矿用传感器取回地面维护中心,然后对矿用传感器统一进行开盖升级,该升级方式无需额外的研发成本,或对传输网络以及矿用传感器做任何的修改,但是会耗费大量的人力和时间成本。

另一种升级方式是ISP(In-System Programming)离线升级,通过存储介质(例如U盘等)保存待升级的程序,然后将存储介质带至矿井下,随后利用矿用传感器预留在外壳的接口(包括串口或USB接口)进行升级,ISP离线升级具有升级速度快成功率高的优点,但缺点是需要对矿用传感器的硬件进行改造和预留额外的资源,需要耗费大量的物质资源。

还有一种升级方式是IAP(In-Application Programming-IAP)在线升级,利用上位机-维护中心-矿用传感器的通信方式,将需要升级的程序由通信网络下发至矿用传感器,能够最大限度地现有的硬件条件,同事进行升级时,无需作业人员深入矿井,缺点在于需要将升级程序的协议整合到现有的通信方式中,且传输过程中,为了兼容现有的系统,升级的速度会受到极大限制,且每次传输的数据有限,程序需分较多的帧进行依次发送,容易出现数据错漏,容易导致升级失败,成功率相对较低。

还有一种升级方式是利用无线网络升级,在矿井下布设无线网络,利用无线网络进行程序升级,该方式升级速度较快,但改造成本较高,通常矿井的使用具有时限性,李荣无线网络升级的方式的投入产出比较低。

下面参照附图描述本申请实施例的一种矿用传感器程序升级及系统。

图1为本申请实施例提供的一种矿用传感器程序升级方法的流程示意图。如图1所示,该方法包括但不限于以下步骤:

S101,将矿用传感器和烧写器进行第一次连接,由烧写器发送升级命令,并准备需要升级的程序。

需要说明的是,烧写器包括:存储介质、显示屏、控制按钮、处理器、USB模块、电源模块、总线通信模块(例如CAN总线通信模块)以及保护模块。利用内置的存储介质保存由PC机(Personal Computer)经过USB模块录入的需要升级的程序。作业人员通过显示屏和控制按钮实现与烧写器的交互,选择需要升级的程序(程序包括:对甲烷的监测程序、对水流的监测程序、对地壳压力的监测程序等,应根据实际的需求进行选取),与矿用传感器进行匹配操作,并控制升级的开始。烧写器可采用符合行业标准要求的锂电池进行供电,该锂电池可通过总线通信模块与矿用传感器进行连接并对其短时供电。

矿用传感器至少包括:总线通信模块(例如CAN总线通信模块)、USB模块、存储介质等,其中存储介质的存储区分为启动引导区(Boot-loader)、应用程序区(全称Application,简称App)以及升级存储区三个部分,启动引导区用于在矿用传感器上电启动后,根据如下表格的阶段状态进行阶段校验,应用程序区用于保存正常运行时执行的程序,升级存储区用于保存需要升级的程序的代码数据。

矿用传感器如果没有进行程序升级,其阶段状态为第一阶段标识(其值为0),此时矿用传感器正常执行其功能程序,并通过总线通信模块(例如CAN总线通信模块)与维护中心进行通信,矿用传感器接收的每帧数据包括:帧ID区(英文全称Identity document,中文翻译为身份识别号)和数据区,其中,帧ID区包含每帧数据的各类识别信息;数据区由若干字节(例如8个字节)的传输数据构成,每个字节的传输数据又包括若干位数据(例如7位数据)和校验位数据(例如1位校验位,进一步地,可以是CRC校验),帧ID区关键字段配置如下表所示:

如果在烧写器设置好需要升级的程序,并点击发送(通过显示屏交互),则烧写器将帧ID区的“命令/类型”字段设置为“变速”。需要补充说明的是,“命令/类型”字段所在的位置通常基于“烧写器-地面维护中心-矿用传感器”之间的通信协议进行设置,这样既不影响原有的通信协议,也能使矿用传感器容易识别“命令/类型”字段,具体的协议的设置过程和设置方式在此不一一赘述。

传感器接收到“命令/类型”的字段,对“命令/类型”进行解析,“命令/类型”字段的对照表如下所示:

根据相应的“命令/类型的代码”,矿用传感器进行相应的操作。

如果矿用传感器收到升级命令,则进行准备升级的操作;如果没有收到升级命令,其阶段状态仍为第一阶段标识,仍正常执行未升级的程序。

S102,根据需要升级的程序,烧写器和矿用传感器进行第二次连接,并更新矿用传感器的阶段状态。

在矿用传感器和烧写器的第一次连接阶段,矿用传感器正常运行主程序,阶段状态设置为第一阶段标识,矿用传感器和烧写器之间用相同的速率和频率(例如5kbps、每秒发送1帧)进行通信。在进行程序升级时,矿用传感器和烧写器需要重新通信,同时,矿用传感器更新对应的阶段状态。即矿用传感器的程序由未升级阶段更新为准备变速阶段。

S103:根据第二次连接,烧写器向矿用传感器传输需要升级的程序,矿用传感器对接收的程序数据进行校验,并更新矿用传感器的阶段状态,将校验无误的程序数据存储在矿用传感器的升级存储区。

烧写器收到矿用传感器回复的起始应答命令后,按照变速后的速度以及频率(例如,100kbps、3.5ms/帧)给矿用传感器发送需要升级的程序,在程序数据的帧ID区中,烧写器从0开始依次加1进行计数,并将计数值依次填充计数字段,以方便进行计数校验。

矿用传感器收到程序数据后,更新对应的阶段状态,也就是将阶段状态由准备接收(0x02)更新为接收中(0x03),并对计数字段进行校验,如果计数值错误,则说明有丢失帧现象发生,并通知烧写器重新发送。如果计数值正确,则对数据进行CRC校验,以检验发送的程序数据是否正确,如果错误,则通知烧写器重新发送;如果正确,则将程序数据保存在升级存储区,以方便下一步的操作。

S104:根据存储在矿用传感器的升级存储区的程序数据,矿用传感器进行覆写操作,使矿用传感器更新对应的阶段状态,直至完成程序升级,其中,在程序升级失败时,矿用传感器运行原有程序。

当烧写器发送完成所有待升级的程序数据,将发送升级结束命令。矿用传感器收到该命令后,回复结束应答,并更新对应的阶段状态,也就是将阶段状态由接收中(0x03)更新为准备覆写(0x04)。烧写器收到结束应答后,发出执行覆写命令,矿用传感器收到该命令后,进行覆写应答,随后保存数据进行软件复位重启,直至完成程序升级。程序升级完成后,断开矿用传感器和烧写器的连接,使矿用传感器正常工作;如果程序升级失败,矿用传感器仍能运行原有程序,保持原始功能,不会出现宕机。

作为示例,图2为本申请实施例所提供的矿用传感器的应用程序区的结构示意图。如图2所示,矿用传感器根据阶段状态判断,以进行准备覆写(0x04)、或者准备变速(0x01)、或者其他,根据对应的阶段状态以进行相应的程序操作,具体的操作过程在此就不赘述。

图3为本申请实施例所提供的一种矿用传感器程序升级方法的流程示意图。如图3所示,矿用传感器根据阶段状态判断,以进行对应的未升级(0),或者准备变速(0x01)操作,相应的,根据阶段状态,进行各自的“命令/类型”判断,再根据“命令/类型”判断执行相应的操作,直至完成程序复位引导区的跳转操作,具体的过程在此就不赘述。

图4为本申请实施例所提供的另一种矿用传感器程序升级方法的流程示意图。如图4所示,该方法包括但不限于以下步骤:

S201:将矿用传感器和烧写器进行第一次连接,由烧写器发送升级命令,并准备需要升级的程序。

可选地,根据第一次连接,矿用传感器和烧写器通过相同的速度和相同的频率进行通信。

烧写器准备需要升级的程序,并发送准备变速的命令。

需要说明的是,矿用传感器和烧写器也可以按照各自合适的速度和频率进行通信,只要能建立第一次连接,任意通信的方式均适用,并不以本实施例为限。

关于步骤S201更进一步地介绍,可参见上述实施例中相关内容的记载,此处不再赘述。

S202:根据需要升级的程序,烧写器和矿用传感器进行第二次连接,并更新矿用传感器的阶段状态。

关于步骤S202更进一步地介绍,可参见上述实施例中相关内容的记载,此处不再赘述。

S203:根据第二次连接,使矿用传感器进行第一总线变速操作、使烧写器进行第二总线变速操作。

可选地,根据需要升级的程序,矿用传感器收到并解析由烧写器发送的准备变速的命令,给烧写器回复变速应答,并将矿用传感器的阶段状态从第一阶段标识更新为第二阶段标识;

矿用传感器的启动引导区基于第二阶段标识,使矿用传感器执行需要升级的程序,并使矿用传感器进行第一总线变速操作;

根据第一总线变速操作,矿用传感器将阶段状态从第二阶段标识更新为第三阶段标识;

烧写器根据收到的变速应答进行第二总线变速操作;

根据第二总线变速操作,烧写器给矿用传感器发送升级起始命令,并与矿用传感器进行第二次连接。

进一步地,根据第二总线变速操作,烧写器与矿用传感器进行通信握手,并给给矿用传感器发送升级起始命令;

如果矿用传感器在规定时间内没有收到升级起始命令,则通信握手失败,并结束升级过程;否则,通信握手成功;

如果通信握手成功,则矿用传感器清除升级存储区的数据,并回复起始应答命令;

如果烧写器在规定时间内没有收到起始应答命令,则认为烧写器和矿用传感器的第二次连接失败,并结束升级过程;否则,则认为烧写器和矿用传感器的第二次连接成功。

需要说明的是,进行第二次连接之前,矿用传感器会进行软件复位重启,在软件复位重启后,由于矿用传感器收到并解析由烧写器发送的准备变速的命令,给烧写器回复变速应答,并将矿用传感器的阶段状态从第一阶段标识(0)更新为第二阶段标识(0x01),当矿用传感器的启动引导区(Boot-loader)识别到第二阶段标识(0x01)时,启动引导区(Boot-loader)将引导矿用传感器执行需要升级的程序。此时矿用传感器内置的总线通信模块(例如CAN总线通信模块)将通信速率进行变速(例如,100kbps、3.5ms/帧),即进行第一总线变速操作,将阶段状态从第二阶段标识(0x01)更新为第三阶段标识(0x02)。烧写器在收到变速应答命令后,通过内置的总线通信模块进行变速,即进行第二总线变速操作,随后与矿用传感器进行通信握手,并向矿用传感器发送升级起始命令。如果握手成功,矿用传感器清除升级存储区的数据,并回复烧写器起始应答命令。如果在规定时间内(例如可以是30秒),矿用传感器没有收到升级起始命令,则认为升级失败,则矿用传感器的阶段状态由第三阶段标识(0x02)恢复为第一阶段标识(0),再次上电重启后,启动引导区将引导矿用传感器执行原有的程序代码,不至于使矿用传感器宕机。如果在规定时间内,矿用传感器收到升级起始命令,即可进行程序数据的传输。

需要说明的是,关于步骤S203更进一步地介绍,可参见上述实施例中相关内容的记载,此处不再赘述。

S204:根据第二次连接,烧写器向矿用传感器传输需要升级的程序,矿用传感器对接收的程序数据进行校验,并更新矿用传感器的阶段状态,将校验无误的程序数据存储在矿用传感器的升级存储区。

可选地,在第二次连接成功后,烧写器向矿用传感器发送需要升级的程序;

根据需要升级的程序,矿用传感器对收到的程序数据进行计数校验操作。

进一步地,根据需要升级的程序,矿用传感器对收到程序数据进行计数操作,并将阶段状态从第三阶段标识更新为第四阶段标识;

根据第四阶段标识,矿用传感器对计数操作的统计值进行校验,如果对统计值校验失败,则回复烧写器数据丢失,使烧写器重新发送需要升级的程序;如果对统计值校验成功,则进行下一步操作。

可选地,根据计数校验成功的状态,矿用传感器对收到的程序数据进行CRC校验。

进一步地,根据计数校验成功的状态,矿用传感器对收到的程序数据进行CRC校验;

如果CRC校验失败,则回复烧写器程序数据错误,使烧写器重新发送需要升级的程序;如果CRC校验成功,则进行下一步操作。

可选地,根据CRC校验成功的状态,矿用传感器将需要升级的程序数据依次保存到升级存储区,直至所有的程序数据发送完毕。

需要说明的是,关于步骤S204更进一步地介绍,可参见上述实施例中相关内容的记载,此处不再赘述。

S205:根据存储在矿用传感器的升级存储区的程序数据,矿用传感器进行覆写操作,使矿用传感器更新对应的阶段状态,直至完成程序升级,其中,在程序升级失败时,矿用传感器运行原有程序。

可选地,根据存储在矿用传感器的升级存储区的程序数据,烧写器给矿用传感器发送升级结束命令;

根据升级结束命令,矿用传感器回复结束应答,并将矿用传感器的阶段状态从第四阶段标识更新为第五阶段标识;

根据结束应答,烧写器发送执行覆写命令;

根据覆写命令,矿用传感器进行覆写操作,直至完成程序升级。

进一步地,根据覆写命令,矿用传感器将升级存储区的程序数据覆写到应用程序区,并发送覆写应答;

根据覆写应答,烧写器发送复位重启命令;

根据复位重启命令,矿用传感器的启动引导区基于第五阶段标识,矿用传感器引导升级存储区的程序数据对应用程序区进行覆写操作,并将矿用传感器的阶段状态从第五阶段标识更新为第六阶段标识;

覆写完成后,矿用传感器阶段状态从第六阶段标识更新为第七阶段标识,矿用传感器执行复位重启操作;

复位重启操作完成后,矿用传感器启动引导区基于第七阶段标识,将阶段状态清零,并断开和烧写器的连接,完成程序升级。

需要说明的是,如果发生不限于物理连接断裂等错误时,上电重启后,启动引导区均可通过校验阶段,判断当前所处的阶段(例如,如果监测到第四阶段标识,即0x03,则说明矿用传感器在程序接收阶段发生了连接错误)。如果阶段状态出现异常值(即阶段标识不是0、0x01、0x02、0x03、0x04、0x05以及0x06中的任意一个),则说明升级出现了不可逆的错误,此时启动引导区将引导矿用传感器执行原始程序,以保证升级出现错误时,矿用传感器仍能保持原始功能,避免宕机风险。

需要说明的是,关于步骤S205更进一步地介绍,可参见上述实施例中相关内容的记载,此处不再赘述。

通过本申请实施例提供的矿用传感器程序升级方法,利用矿用传感器现有的硬件接口和通信网络即可实现程序升级,最大限度地利用现有资源;使用离线烧写器对单独的矿用传感器进行升级,不会影响到其他矿用传感器的工作状态;极大地提高了通信速度;对需要升级的程序添加计数校验操作、CRC校验操作以及阶段状态校验操作,提升了升级的成功率和鲁棒性,且在出现升级错误时仍能使矿用传感器执行原来功能,提升了矿用传感器使用的容错率,因此,具有广泛的应用价值。

图5为本申请实施例所提供的一种矿用传感器程序升级系统的结构示意图。如图5所示,该矿用传感器程序升级系统50,包括:

烧写器501,用于上电或复位后选择性发送升级命令,并准备需要升级的程序。

矿用传感器502,与烧写器进行连接,对需要升级的程序进行覆写操作,直至完成程序升级。

图6是根据一示例性实施例示出的一种电子设备的结构示意图。如图6所示,电子设备60包括矿用传感器程序升级系统50。该电子设备可以是移动电子设备,也可以为非移动电子设备。示例性的,移动电子设备可以为工业手机、工业平板电脑、工业笔记本电脑等,非移动电子设备可以为网络附属存储器(Network Attached Storage,NAS)、个人计算机(personal computer,PC)等,本申请实施例不作具体限定。

图7是根据一示例性实施例示出的另一种电子设备的结构示意图。图7示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图7所示,电子设备700包括处理器701,其可以根据存储在只读存储器(ROM,Read Only Memory)702中的程序或者从存储器606加载到随机访问存储器(RAM,RandomAccess Memory)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有电子设备700操作所需的各种程序和数据。处理器701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O,Input/Output)接口705也连接至总线704。

以下部件连接至I/O接口705:包括硬盘等的存储器706;以及包括诸如LAN(局域网,Local Area Network)卡、调制解调器等的网络接口卡的通信部分707,通信部分707经由诸如因特网的网络执行通信处理;驱动器708也根据需要连接至I/O接口705。

特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分707从网络上被下载和安装。在该计算机程序被处理器701执行时,执行本申请的方法中限定的上述功能。

在示例性实施例中,还提供了一种包括指令的存储介质,例如包括指令的存储器,上述指令可由电子设备700的处理器701执行以完成上述方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。

在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

技术分类

06120116523690