CN109450673A - 远程固件更新方法、路由器、存储介质及装置 - Google Patents
远程固件更新方法、路由器、存储介质及装置 Download PDFInfo
- Publication number
- CN109450673A CN109450673A CN201811247645.XA CN201811247645A CN109450673A CN 109450673 A CN109450673 A CN 109450673A CN 201811247645 A CN201811247645 A CN 201811247645A CN 109450673 A CN109450673 A CN 109450673A
- Authority
- CN
- China
- Prior art keywords
- burning
- router
- firmware
- chip microcontroller
- default
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种远程固件更新方法、路由器、存储介质及装置,所述方法包括:路由器通过预设网络转串口插件将网络接口转化为第一虚拟串口;通过预设USB转串口插件将与所述路由器连接的单片机的USB接口转化为第二虚拟串口;接收终端发送的待更新固件;响应于所述终端发送的烧录指令,通过所述第一虚拟串口与所述第二虚拟串口将所述待更新固件烧录至所述单片机。由于路由器通过插件的转化功能实现了与单片机的串口通信,在接收到终端上传的待更新固件后,根据终端的烧录指令将该待更新固件通过串口烧录至所述单片机,从而实现了本地终端远程控制单片机的批量固件更新,安全便捷,大大节省了人力物力。
Description
技术领域
本发明涉及嵌入式开发技术领域,尤其涉及一种远程固件更新方法、路由器、存储介质及装置。
背景技术
单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。
为了对单片机中的固件进行更新,实现程序升级,往往需要将固件烧录至单片机中,然而,对于已部署的单片机,现有的烧录技术存在以下几个问题:
1、已部署的单片机都处于远程位置,在烧录时需要使用编程器烧录程序,挨个的去做升级,显然不大可能,在众多应用环境中带来了很多的不便和困扰。
2、如果通过设计扩展板的方式进行烧录,会使得扩展的系统比原本采集的系统要复杂得多,而且因为搭载的元器件过多,硬件编程复杂且不稳定。
3、在网络不好或者远程的单片机受恶劣天气影响损坏、元器件老化的情况下,可能会使得远端的单片机无法正常工作导致无法对其进行远程控制和操作。
因此,更便捷的远程固件更新方法成为单片机使用过程中亟待解决的技术问题。
发明内容
本发明的主要目的在于提供一种远程固件更新方法、路由器、存储介质及装置,旨在解决现有技术中如何更便捷地对单片机进行远程固件更新的技术问题。
为实现上述目的,本发明提供一种远程固件更新方法,所述方法包括以下步骤:
路由器通过预设网络转串口插件将网络接口转化为第一虚拟串口;
通过预设USB转串口插件将与所述路由器连接的单片机的USB接口转化为第二虚拟串口;
接收终端发送的待更新固件;
响应于所述终端发送的烧录指令,通过所述第一虚拟串口与所述第二虚拟串口将所述待更新固件烧录至所述单片机。
优选地,所述响应于所述终端发送的烧录指令,通过所述第一虚拟串口与所述第二虚拟串口将所述待更新固件烧录至所述单片机,包括:
响应于所述终端发送的烧录指令,调用预设烧录程序;
根据所述预设烧录程序将所述待更新固件从所述第一虚拟串口传输至所述第二虚拟串口,并将所述待更新固件烧录至所述单片机。
优选地,所述响应于所述终端发送的烧录指令,调用预设烧录程序之前,所述方法还包括:
获取所述预设烧录程序的配置文件,并删除所述配置文件中的库文件。
优选地,所述响应于所述终端发送的烧录指令,调用预设烧录程序,包括:
接收所述终端发送的烧录指令,并对所述烧录指令进行解密;
根据解密后的烧录指令调用预设烧录程序。
优选地,所述路由器通过预设网络转串口插件将网络接口转化为第一虚拟串口之前,所述方法还包括:
对预设网络转串口插件的网络参数和串口参数进行配置,并设置所述预设网络转串口插件开机自启。
优选地,所述路由器通过预设网络转串口插件将网络接口转化为第一虚拟串口之前,所述方法还包括:
对预设USB转串口插件的串口参数进行配置。
优选地,所述通过预设USB转串口插件将与所述路由器连接的单片机的USB接口转化为第二虚拟串口之前,所述方法还包括:
检测通过USB线与所述路由器连接的单片机,并将检测到的单片机的端口号显示在下拉菜单中。
此外,为实现上述目的,本发明还提供一种路由器,所述路由器包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的远程固件更新程序,所述远程固件更新程序被所述处理器执行时实现如上述远程固件更新方法的步骤。
此外,为实现上述目的,本发明还提供一种远程固件更新装置,所述远程固件更新装置包括:
第一转化模块,用于路由器通过预设网络转串口插件将网络接口转化为第一虚拟串口;
第二转化模块,用于通过预设USB转串口插件将与所述路由器连接的单片机的USB接口转化为第二虚拟串口;
固件接收模块,用于接收终端发送的待更新固件;
固件烧录模块,用于响应于所述终端发送的烧录指令,通过所述第一虚拟串口与所述第二虚拟串口将所述待更新固件烧录至所述单片机。
此外,为实现上述目的,本发明还提供一种存储介质,所述存储介质上存储有远程固件更新程序,所述远程固件更新程序被处理器执行时实现如上述远程固件更新方法的步骤。
在本发明中,通过路由器通过预设网络转串口插件将网络接口转化为第一虚拟串口;通过预设USB转串口插件将与所述路由器连接的单片机的USB接口转化为第二虚拟串口;接收终端发送的待更新固件;响应于所述终端发送的烧录指令,通过所述第一虚拟串口与所述第二虚拟串口将所述待更新固件烧录至所述单片机。由于路由器通过插件的转化功能实现了与单片机的串口通信,在接收到终端上传的待更新固件后,根据终端的烧录指令将该待更新固件通过串口烧录至所述单片机,从而实现了本地终端远程控制单片机的批量固件更新,安全便捷,大大节省了人力物力,并且能够保护源代码。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的路由器结构示意图;
图2为本发明远程固件更新方法第一实施例的流程示意图;
图3为本发明综合网络结构图;
图4为本发明终端远程登录示意图;
图5为本发明烧录示意图;
图6为本发明远程固件更新方法第二实施例的流程示意图;
图7为本发明远程固件更新方法第三实施例的流程示意图;
图8为本发明远程固件更新装置第一实施例的功能模块图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的路由器结构示意图。
如图1所示,所述路由器可以包括:处理器1001,例如CPU,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储服务器。
本领域技术人员可以理解,图1中示出的结构并不构成对所述路由器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及远程固件更新程序。
在图1所示的设备中,网络接口1004主要用于连接后台服务器,与所述后台服务器进行数据通信;用户接口1003主要用于连接用户设备;所述路由器通过处理器1001调用存储器1005中存储的远程固件更新程序,并执行本发明实施例提供的远程固件更新方法。
所述路由器通过处理器1001调用存储器1005中存储的远程固件更新程序,并执行以下操作:
通过预设网络转串口插件将网络接口转化为第一虚拟串口;
通过预设USB转串口插件将与所述路由器连接的单片机的USB接口转化为第二虚拟串口;
接收终端发送的待更新固件;
响应于所述终端发送的烧录指令,通过所述第一虚拟串口与所述第二虚拟串口将所述待更新固件烧录至所述单片机。
进一步地,处理器1001可以调用存储器1005中存储的远程固件更新程序,还执行以下操作:
响应于所述终端发送的烧录指令,调用预设烧录程序;
根据所述预设烧录程序将所述待更新固件从所述第一虚拟串口传输至所述第二虚拟串口,并将所述待更新固件烧录至所述单片机。
进一步地,处理器1001可以调用存储器1005中存储的远程固件更新程序,还执行以下操作:
获取所述预设烧录程序的配置文件,并删除所述配置文件中的库文件。
进一步地,处理器1001可以调用存储器1005中存储的远程固件更新程序,还执行以下操作:
接收所述终端发送的烧录指令,并对所述烧录指令进行解密;
根据解密后的烧录指令调用预设烧录程序。
进一步地,处理器1001可以调用存储器1005中存储的远程固件更新程序,还执行以下操作:
对预设网络转串口插件的网络参数和串口参数进行配置,并设置所述预设网络转串口插件开机自启。
进一步地,处理器1001可以调用存储器1005中存储的远程固件更新程序,还执行以下操作:
对预设USB转串口插件的串口参数进行配置。
进一步地,处理器1001可以调用存储器1005中存储的远程固件更新程序,还执行以下操作:
检测通过USB线与所述路由器连接的单片机,并将检测到的单片机的端口号显示在下拉菜单中。
在本实施例中,通过路由器通过预设网络转串口插件将网络接口转化为第一虚拟串口;通过预设USB转串口插件将与所述路由器连接的单片机的USB接口转化为第二虚拟串口;接收终端发送的待更新固件;响应于所述终端发送的烧录指令,通过所述第一虚拟串口与所述第二虚拟串口将所述待更新固件烧录至所述单片机。由于路由器通过插件的转化功能实现了与单片机的串口通信,在接收到终端上传的待更新固件后,根据终端的烧录指令将该待更新固件通过串口烧录至所述单片机,从而实现了本地终端远程控制单片机的批量固件更新,安全便捷,大大节省了人力物力,并且能够保护源代码。
基于上述硬件结构,提出本发明远程固件更新方法的实施例。
参照图2,图2为本发明远程固件更新方法第一实施例的流程示意图。
在第一实施例中,所述远程固件更新方法包括以下步骤:
步骤S10:路由器通过预设网络转串口插件将网络接口转化为第一虚拟串口。
需要说明的是,如图3所示,图3为本发明综合网络结构图,wr703n为路由器,Arduino为单片机,本实施例的应用场景是,本地的任一终端通过网络与远程的路由器进行通信,该远程的路由器上通过USB线连接有若干个单片机,终端上保存有待更新固件,将所述待更新固件上传至路由器,并控制路由器完成对单片机的固件更新。本实施例的执行主体是路由器,本实施例中通过所述路由器实现对单片机进行固件更新,所述路由器上安装有OpenWRT系统,OpenWrt可以被描述为一个嵌入式的Linux发行版,OpenWrt的包管理提供了一个完全可写的文件系统,从应用程序供应商提供的选择和配置,并允许自定义的设备,以适应任何应用程序。串口通信是单片机通信中的一种重要通信方式,为了通过路由器实现对单片机进行固件更新,需实现路由器与单片机之间的串口通信,本实施例中预先在所述路由器上部署所述预设网络转串口(ser2net)插件,并通过所述预设网络转串口插件将所述路由器的网络接口转化为第一虚拟串口,以实现后续通过串口进行通信。
步骤S20:通过预设USB转串口插件将与所述路由器连接的单片机的USB接口转化为第二虚拟串口。
可以理解的是,所述单片机通过USB线接在所述路由器的USB口上,仅当所述路由器和单片机具有适配的虚拟串口时,能实现所述路由器与所述单片机的串口通信,因此,还将预先在所述路由器上部署所述预设USB转串口(USB To TTL)插件,并通过所述预设USB转串口(USB To TTL)插件将所述单片机的USB接口转化为第二虚拟串口,所述第二虚拟串口与所述第一虚拟串口适配,可以通过所述第二虚拟串口与所述第一虚拟串口实现路由器与单片机之间的通信。在串口协议中所述单片机的标识为ttyACM0,并且挂在/dev/ttyACM0,所述第二虚拟串口为ttyACM0端口。
在具体实现中,对于每个通过USB线连接在所述路由器上的单片机,均将其USB接口转化为第二虚拟串口,第二虚拟串口数量与单片机数据相同,依次显示为ttyACM0、ttyACM1、ttyACM2……以实现对每个单片机进行远程固件更新。
步骤S30:接收终端发送的待更新固件。
需要说明的是,所述路由器与所述单片机均处于远程位置,本实施例将通过本地的终端将待更新固件发送至所述路由器,因此,所述路由器在烧录之前,还将接收终端发送的待更新固件。如图4所示,图4为本发明终端远程登录示意图,所述终端远程登录所述路由器的OpenWRT系统,安装ssh协议,用xftp或者用scp命令将本地的待更新固件上传至该OpenWRT系统的/tmp目录里,以使所述路由器获取到所述待更新固件。
步骤S40:响应于所述终端发送的烧录指令,通过所述第一虚拟串口与所述第二虚拟串口将所述待更新固件烧录至所述单片机。
可以理解的是,所述烧录指令为:avrdude avrdude.conf-v-v-v-v-patmega328p-carduino–P/dev/ttyACM0-b115200-D-Uflash:w:Blink.cpp.hex:i。如图5所示,图5为本发明烧录示意图,当所述路由器具有与所述单片机进行通信的虚拟串口,并获取待更新固件后,所述终端将向所述路由器发送烧录指令,所述路由器将根据该烧录指令将所述待更新固件通过所述第一虚拟串口与所述第二虚拟串口烧录至所述单片机。
在具体实现中,所述路由器预先安装预设网络转串口插件和预设USB转串口插件,并进行配置,实现将网络接口转化为第一虚拟串口,并将单片机的USB接口转化为第二虚拟串口,所述终端预先将待更新固件上传至所述路由器的OpenWRT系统的/tmp目录里,从而只需在所述路由器的USB接口上插上单片机,就能实现将待更新固件烧录至所述单片机中,方便快捷。
进一步地,所述步骤S40之后,所述远程固件更新方法还包括:
对远端的单片机状态进行实时监控,可以通过环境数据周边环境用机器学习训练单片机的采集时间和频次,适时调整参数和单片机重置睡眠时间,降低功耗。
在本实施例中,突破了单片机的远程控制,能够批量更新单片机程序,并且能够保护源代码等,对于公司那些部署了单片机后代码上的维护等使用起来很方便,大大节省了人力物力,还有一个优点就是编程的自动控制,接口丰富,连接了众多的传感器,并连接并发送数据到互联网服务器上,供远程终端调用环境采集数据,同时实现了传输数据的加密防止环境数据被窃取,保证了数据的安全性。
在本实施例中,通过路由器通过预设网络转串口插件将网络接口转化为第一虚拟串口;通过预设USB转串口插件将与所述路由器连接的单片机的USB接口转化为第二虚拟串口;接收终端发送的待更新固件;响应于所述终端发送的烧录指令,通过所述第一虚拟串口与所述第二虚拟串口将所述待更新固件烧录至所述单片机。由于路由器通过插件的转化功能实现了与单片机的串口通信,在接收到终端上传的待更新固件后,根据终端的烧录指令将该待更新固件通过串口烧录至所述单片机,从而实现了本地终端远程控制单片机的批量固件更新,安全便捷,大大节省了人力物力,并且能够保护源代码。
参照图6,图6为本发明远程固件更新方法第二实施例的流程示意图,基于上述图2所示的实施例,提出本发明远程固件更新方法的第二实施例。
在第二实施例中,所述步骤S40,具体包括:
步骤S401:响应于所述终端发送的烧录指令,调用预设烧录程序。
步骤S402:根据所述预设烧录程序将所述待更新固件从所述第一虚拟串口传输至所述第二虚拟串口,并将所述待更新固件烧录至所述单片机。
需要说明的是,所述预设烧录程序为avrdude,该预设烧录程序需要通过串口才能实现将待更新固件烧录至单片机。在本实施例中,路由器预先安装该预设烧录程序,从而在接收到所述终端发送的烧录指令时,调用该预设烧录程序将所述待更新固件从所述第一虚拟串口传输至所述第二虚拟串口,并将所述待更新固件烧录至所述单片机。
进一步地,所述步骤S401之前,所述方法还包括:
步骤S400:获取所述预设烧录程序的配置文件,并删除所述配置文件中的库文件。
可以理解的是,所述预设烧录程序本身比较庞大,占用资源较大,为了减少所述预设烧录程序占用的资源,将删除所述预设烧录程序的配置文件中的库文件(Dynamic LinkLibrary,DLL),库文件是动态链接库文件,又称"应用程序拓展",是软件文件类型。一般而言,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中,当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可使用多个DLL文件,一个DLL文件也可能被不同的应用程序使用,这样的DLL文件被称为共享DLL文件。本实施例中的所述库文件指的是预设烧录程序对libreadline以及libncurses的依赖库文件。
进一步地,所述步骤S401,具体包括:
接收所述终端发送的烧录指令,并对所述烧录指令进行解密。
根据解密后的烧录指令调用预设烧录程序。
可以理解的是,为了保证烧录过程的安全性,本实施例中将对所述终端与所述路由器之间传输的各指令进行加密,所述终端与所述路由器各自持有同一预设会话密钥,所述终端首先通过预设会话密钥对烧录指令进行加密,再将加密后的烧录指令发送至所述路由器,所述路由器通过所述预设会话密钥对加密后的烧录指令进行解密,获得所述烧录指令,并通过所述烧录指令调用所述预设烧录程序,从而实现将所述待更新固件烧录至所述单片机。
在本实施例中,通过获取所述预设烧录程序的配置文件,并删除所述配置文件中的库文件,节省了资源空间,通过对烧录指令的加解密,提高了烧录过程的安全性,并通过路由器调用预设烧录程序,从而实现了将所述待更新固件烧录至所述单片机。
参照图7,图7为本发明远程固件更新方法第三实施例的流程示意图,基于上述图6所示的实施例,提出本发明远程固件更新方法的第三实施例。
在第二实施例中,所述步骤S10之前,所述远程固件更新方法还包括:
步骤S01:对预设网络转串口插件的网络参数和串口参数进行配置,并设置所述预设网络转串口插件开机自启。
需要说明的是,为了实现所述路由器与所述单片机之间的串口通信,在所述路由器上安装所述预设网络转串口插件后,还将对所述预设网络转串口插件的网络参数和串口参数进行配置,并设置所述预设网络转串口插件开机自启。其中,配置的网络参数包括:IP模式、IP地址、端口、工作模式、子网掩码、网关、目的IP或域名以及目的端口,所述IP模式用户可选择静态或动态,所述IP地址是所述路由器的IP地址,所述端口是所述路由器的监听端口;配置的串口参数包括:波特率、数据位、校验位、停止位以及流控。
进一步地,所述步骤S10之前,所述远程固件更新方法还包括:
步骤S02:对预设USB转串口插件的串口参数进行配置。
可以理解的是,为了实现所述路由器与所述单片机之间的串口通信,在所述路由器对预设网络转串口插件的网络参数和串口参数进行配置后,还将对所述预设USB转串口插件的串口参数进行配置,将所述路由器与所述单片机的串口参数设置为相同。
在具体实现中,对所述路由器的改造除了安装预设网络转串口插件和预设USB转串口插件之外,还包括:安装uvc摄像头驱动以及mjpg-streamer(去掉了libjpeg依赖,只支持可以硬件jpeg输出的摄像头),uhttpd,lua,u盘驱动,ntfs/ext4文件系统,arduino uno/ftdi/cp210x usb转串口驱动,libnfc支持pn532串口驱动。
进一步地,所述步骤S20之前,所述远程固件更新方法还包括:
步骤S201:检测通过USB线与所述路由器连接的单片机,并将检测到的单片机的端口号显示在下拉菜单中。
需要说明的是,在通过所述路由器对单片机进行固件更新时,所述路由器上一般通过USB线连接有多个单片机,为了对每个单片机进行固件更新,避免遗漏,将在所述路由器界面渲染过程中,检测通过USB线与所述路由器连接的单片机,并将检测到的单片机的端口号显示在下拉菜单中,从而对检测到的单片机进行固件更新。
在本实施例中,通过对预设网络转串口插件的网络参数和串口参数进行配置,并设置所述预设网络转串口插件开机自启,并对预设USB转串口插件的串口参数进行配置,可以实现所述路由器与所述单片机之间的串口通信,还通过检测通过USB线与所述路由器连接的单片机,并将检测到的单片机的端口号显示在下拉菜单中,避免出现遗漏,能够对每个单片机进行固件更新。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有远程固件更新程序,所述远程固件更新程序被处理器执行时实现如下操作:
通过预设网络转串口插件将网络接口转化为第一虚拟串口;
通过预设USB转串口插件将与所述路由器连接的单片机的USB接口转化为第二虚拟串口;
接收终端发送的待更新固件;
响应于所述终端发送的烧录指令,通过所述第一虚拟串口与所述第二虚拟串口将所述待更新固件烧录至所述单片机。
进一步地,所述远程固件更新程序被处理器执行时还实现如下操作:
响应于所述终端发送的烧录指令,调用预设烧录程序;
根据所述预设烧录程序将所述待更新固件从所述第一虚拟串口传输至所述第二虚拟串口,并将所述待更新固件烧录至所述单片机。
进一步地,所述远程固件更新程序被处理器执行时还实现如下操作:
获取所述预设烧录程序的配置文件,并删除所述配置文件中的库文件。
进一步地,所述远程固件更新程序被处理器执行时还实现如下操作:
接收所述终端发送的烧录指令,并对所述烧录指令进行解密;
根据解密后的烧录指令调用预设烧录程序。
进一步地,所述远程固件更新程序被处理器执行时还实现如下操作:
对预设网络转串口插件的网络参数和串口参数进行配置,并设置所述预设网络转串口插件开机自启。
进一步地,所述远程固件更新程序被处理器执行时还实现如下操作:
对预设USB转串口插件的串口参数进行配置。
进一步地,所述远程固件更新程序被处理器执行时还实现如下操作:
检测通过USB线与所述路由器连接的单片机,并将检测到的单片机的端口号显示在下拉菜单中。
在本实施例中,通过路由器通过预设网络转串口插件将网络接口转化为第一虚拟串口;通过预设USB转串口插件将与所述路由器连接的单片机的USB接口转化为第二虚拟串口;接收终端发送的待更新固件;响应于所述终端发送的烧录指令,通过所述第一虚拟串口与所述第二虚拟串口将所述待更新固件烧录至所述单片机。由于路由器通过插件的转化功能实现了与单片机的串口通信,在接收到终端上传的待更新固件后,根据终端的烧录指令将该待更新固件通过串口烧录至所述单片机,从而实现了本地终端远程控制单片机的批量固件更新,安全便捷,大大节省了人力物力,并且能够保护源代码。
参照图8,图8为本发明远程固件更新装置第一实施例的功能模块图,基于所述远程固件更新方法,提出本发明远程固件更新装置的第一实施例。
在本实施例中,所述远程固件更新装置包括:
第一转化模块10,用于路由器通过预设网络转串口插件将网络接口转化为第一虚拟串口。
需要说明的是,如图3所示,图3为本发明综合网络结构图,wr703n为路由器,Arduino为单片机,本实施例的应用场景是,本地的任一终端通过网络与远程的路由器进行通信,该远程的路由器上通过USB线连接有若干个单片机(Arduino),终端上保存有待更新固件,将所述待更新固件上传至路由器,并控制路由器完成对单片机的固件更新。本实施例的执行主体是路由器,本实施例中通过所述路由器实现对单片机进行固件更新,所述路由器上安装有OpenWRT系统,OpenWrt可以被描述为一个嵌入式的Linux发行版,OpenWrt的包管理提供了一个完全可写的文件系统,从应用程序供应商提供的选择和配置,并允许自定义的设备,以适应任何应用程序。串口通信是单片机通信中的一种重要通信方式,为了通过路由器实现对单片机进行固件更新,需实现路由器与单片机之间的串口通信,本实施例中预先在所述路由器上部署所述预设网络转串口(ser2net)插件,并通过所述预设网络转串口插件将所述路由器的网络接口转化为第一虚拟串口,以实现后续通过串口进行通信。
第二转化模块20,用于通过预设USB转串口插件将与所述路由器连接的单片机的USB接口转化为第二虚拟串口。
可以理解的是,所述单片机通过USB线接在所述路由器的USB口上,仅当所述路由器和单片机具有适配的虚拟串口时,能实现所述路由器与所述单片机的串口通信,因此,还将预先在所述路由器上部署所述预设USB转串口(USB To TTL)插件,并通过所述预设USB转串口(USB To TTL)插件将所述单片机的USB接口转化为第二虚拟串口,所述第二虚拟串口与所述第一虚拟串口适配,可以通过所述第二虚拟串口与所述第一虚拟串口实现路由器与单片机之间的通信。在串口协议中所述单片机的标识为ttyACM0,并且挂在/dev/ttyACM0,所述第二虚拟串口为ttyACM0端口。
在具体实现中,对于每个通过USB线连接在所述路由器上的单片机,均将其USB接口转化为第二虚拟串口,第二虚拟串口数量与单片机数据相同,依次显示为ttyACM0、ttyACM1、ttyACM2……以实现对每个单片机进行远程固件更新。
固件接收模块30,用于接收终端发送的待更新固件。
需要说明的是,所述路由器与所述单片机均处于远程位置,本实施例将通过本地的终端将待更新固件发送至所述路由器,因此,所述路由器在烧录之前,还将接收终端发送的待更新固件。所述终端远程登录所述路由器的OpenWRT系统,安装ssh协议,用xftp或者用scp命令将本地的待更新固件上传至该OpenWRT系统的/tmp目录里,以使所述路由器获取到所述待更新固件。
固件烧录模块40,用于响应于所述终端发送的烧录指令,通过所述第一虚拟串口与所述第二虚拟串口将所述待更新固件烧录至所述单片机。
可以理解的是,所述烧录指令为:avrdude avrdude.conf-v-v-v-v-patmega328p-carduino–P/dev/ttyACM0-b115200-D-Uflash:w:Blink.cpp.hex:i。如图5所示,图5为本发明烧录示意图,当所述路由器具有与所述单片机进行通信的虚拟串口,并获取待更新固件后,所述终端将向所述路由器发送烧录指令,所述路由器将根据该烧录指令将所述待更新固件通过所述第一虚拟串口与所述第二虚拟串口烧录至所述单片机。
在具体实现中,所述路由器预先安装预设网络转串口插件和预设USB转串口插件,并进行配置,实现将网络接口转化为第一虚拟串口,并将单片机的USB接口转化为第二虚拟串口,所述终端预先将待更新固件上传至所述路由器的OpenWRT系统的/tmp目录里,从而只需在所述路由器的USB接口上插上单片机,就能实现将待更新固件烧录至所述单片机中,方便快捷。
进一步地,所述远程固件更新方法还包括:
对远端的单片机状态进行实时监控,可以通过环境数据周边环境用机器学习训练单片机的采集时间和频次,适时调整参数和单片机重置睡眠时间,降低功耗。
在本实施例中,突破了单片机的远程控制,能够批量更新单片机程序,并且能够保护源代码等,对于公司那些部署了单片机后代码上的维护等使用起来很方便,大大节省了人力物力,还有一个优点就是编程的自动控制,接口丰富,连接了众多的传感器,并连接并发送数据到互联网服务器上,供远程终端调用环境采集数据,同时实现了传输数据的加密防止环境数据被窃取,保证了数据的安全性。
在本实施例中,通过路由器通过预设网络转串口插件将网络接口转化为第一虚拟串口;通过预设USB转串口插件将与所述路由器连接的单片机的USB接口转化为第二虚拟串口;接收终端发送的待更新固件;响应于所述终端发送的烧录指令,通过所述第一虚拟串口与所述第二虚拟串口将所述待更新固件烧录至所述单片机。由于路由器通过插件的转化功能实现了与单片机的串口通信,在接收到终端上传的待更新固件后,根据终端的烧录指令将该待更新固件通过串口烧录至所述单片机,从而实现了本地终端远程控制单片机的批量固件更新,安全便捷,大大节省了人力物力,并且能够保护源代码。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
单词第一、第二、以及第三等的使用不表示任何顺序,可将这些单词解释为名称。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种远程固件更新方法,其特征在于,所述远程固件更新方法包括以下步骤:
路由器通过预设网络转串口插件将网络接口转化为第一虚拟串口;
通过预设USB转串口插件将与所述路由器连接的单片机的USB接口转化为第二虚拟串口;
接收终端发送的待更新固件;
响应于所述终端发送的烧录指令,通过所述第一虚拟串口与所述第二虚拟串口将所述待更新固件烧录至所述单片机。
2.如权利要求1所述的远程固件更新方法,其特征在于,所述响应于所述终端发送的烧录指令,通过所述第一虚拟串口与所述第二虚拟串口将所述待更新固件烧录至所述单片机,包括:
响应于所述终端发送的烧录指令,调用预设烧录程序;
根据所述预设烧录程序将所述待更新固件从所述第一虚拟串口传输至所述第二虚拟串口,并将所述待更新固件烧录至所述单片机。
3.如权利要求2所述的远程固件更新方法,其特征在于,所述响应于所述终端发送的烧录指令,调用预设烧录程序之前,所述方法还包括:
获取所述预设烧录程序的配置文件,并删除所述配置文件中的库文件。
4.如权利要求2所述的远程固件更新方法,其特征在于,所述响应于所述终端发送的烧录指令,调用预设烧录程序,包括:
接收所述终端发送的烧录指令,并对所述烧录指令进行解密;
根据解密后的烧录指令调用预设烧录程序。
5.如权利要求1-4中任一项所述的远程固件更新方法,其特征在于,所述路由器通过预设网络转串口插件将网络接口转化为第一虚拟串口之前,所述方法还包括:
对预设网络转串口插件的网络参数和串口参数进行配置,并设置所述预设网络转串口插件开机自启。
6.如权利要求5所述的远程固件更新方法,其特征在于,所述路由器通过预设网络转串口插件将网络接口转化为第一虚拟串口之前,所述方法还包括:
对预设USB转串口插件的串口参数进行配置。
7.如权利要求1-4中任一项所述的远程固件更新方法,其特征在于,所述通过预设USB转串口插件将与所述路由器连接的单片机的USB接口转化为第二虚拟串口之前,所述方法还包括:
检测通过USB线与所述路由器连接的单片机,并将检测到的单片机的端口号显示在下拉菜单中。
8.一种路由器,其特征在于,所述路由器包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的远程固件更新程序,所述远程固件更新程序被所述处理器执行时实现如权利要求1至7中任一项所述的远程固件更新方法的步骤。
9.一种存储介质,其特征在于,所述存储介质上存储有远程固件更新程序,所述远程固件更新程序被处理器执行时实现如权利要求1至7中任一项所述的远程固件更新方法的步骤。
10.一种远程固件更新装置,其特征在于,所述远程固件更新装置包括:
第一转化模块,用于路由器通过预设网络转串口插件将网络接口转化为第一虚拟串口;
第二转化模块,用于通过预设USB转串口插件将与所述路由器连接的单片机的USB接口转化为第二虚拟串口;
固件接收模块,用于接收终端发送的待更新固件;
固件烧录模块,用于响应于所述终端发送的烧录指令,通过所述第一虚拟串口与所述第二虚拟串口将所述待更新固件烧录至所述单片机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811247645.XA CN109450673A (zh) | 2018-10-24 | 2018-10-24 | 远程固件更新方法、路由器、存储介质及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811247645.XA CN109450673A (zh) | 2018-10-24 | 2018-10-24 | 远程固件更新方法、路由器、存储介质及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109450673A true CN109450673A (zh) | 2019-03-08 |
Family
ID=65547564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811247645.XA Pending CN109450673A (zh) | 2018-10-24 | 2018-10-24 | 远程固件更新方法、路由器、存储介质及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109450673A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111666089A (zh) * | 2020-06-10 | 2020-09-15 | 西安易朴通讯技术有限公司 | 电子设备的固件更新方法、芯片、电子设备及存储介质 |
CN114003294A (zh) * | 2021-09-18 | 2022-02-01 | 苏州浪潮智能科技有限公司 | 远程开关机及固件更新装置、服务器、系统、方法及介质 |
CN115987776A (zh) * | 2022-11-30 | 2023-04-18 | 四川虹美智能科技有限公司 | 一种使用路由器在智汇家平台实现环境分离的方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN202679393U (zh) * | 2012-07-16 | 2013-01-16 | 厦门福信光电集成有限公司 | 基于集中管理机架式设备的固件在线升级系统 |
CN203689622U (zh) * | 2013-12-31 | 2014-07-02 | 深圳市证通电子股份有限公司 | Atm机及支持远程固件升级的密码键盘 |
CN104378591A (zh) * | 2014-11-13 | 2015-02-25 | 华侨大学 | 一种移动循迹监控系统 |
CN104991800A (zh) * | 2015-06-26 | 2015-10-21 | 深圳市兰丁科技有限公司 | 一种未联网设备固件升级方法、装置和系统 |
CN105589469A (zh) * | 2014-10-21 | 2016-05-18 | 武汉乐享视界科技有限公司 | 使用wifi进行操控和视频传输的四轴飞行器 |
CN107346257A (zh) * | 2017-07-03 | 2017-11-14 | 山东超越数控电子有限公司 | 一种基于申威服务器usb转jtag更新fpga程序的实现方法及装置 |
CN108021382A (zh) * | 2017-12-22 | 2018-05-11 | 深圳华意隆电气股份有限公司 | 一种嵌入式设备远程升级系统、方法以及嵌入式设备 |
CN108681459A (zh) * | 2018-03-26 | 2018-10-19 | 深圳前海有电物联科技有限公司 | 一种智能硬件设备的固件更新方法、装置及系统 |
-
2018
- 2018-10-24 CN CN201811247645.XA patent/CN109450673A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN202679393U (zh) * | 2012-07-16 | 2013-01-16 | 厦门福信光电集成有限公司 | 基于集中管理机架式设备的固件在线升级系统 |
CN203689622U (zh) * | 2013-12-31 | 2014-07-02 | 深圳市证通电子股份有限公司 | Atm机及支持远程固件升级的密码键盘 |
CN105589469A (zh) * | 2014-10-21 | 2016-05-18 | 武汉乐享视界科技有限公司 | 使用wifi进行操控和视频传输的四轴飞行器 |
CN104378591A (zh) * | 2014-11-13 | 2015-02-25 | 华侨大学 | 一种移动循迹监控系统 |
CN104991800A (zh) * | 2015-06-26 | 2015-10-21 | 深圳市兰丁科技有限公司 | 一种未联网设备固件升级方法、装置和系统 |
CN107346257A (zh) * | 2017-07-03 | 2017-11-14 | 山东超越数控电子有限公司 | 一种基于申威服务器usb转jtag更新fpga程序的实现方法及装置 |
CN108021382A (zh) * | 2017-12-22 | 2018-05-11 | 深圳华意隆电气股份有限公司 | 一种嵌入式设备远程升级系统、方法以及嵌入式设备 |
CN108681459A (zh) * | 2018-03-26 | 2018-10-19 | 深圳前海有电物联科技有限公司 | 一种智能硬件设备的固件更新方法、装置及系统 |
Non-Patent Citations (3)
Title |
---|
AGAONET: "通过TCP/IP网络烧录Arduino程序", 《极客工坊》 * |
HISTAMINE: "使用OpenWRT路由远程给Arduino下载程序", 《极客工坊》 * |
张太杰: "现场总线PROFIBUS-DP和WiFi集成网关研究与设计", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111666089A (zh) * | 2020-06-10 | 2020-09-15 | 西安易朴通讯技术有限公司 | 电子设备的固件更新方法、芯片、电子设备及存储介质 |
CN111666089B (zh) * | 2020-06-10 | 2024-02-13 | 西安易朴通讯技术有限公司 | 电子设备的固件更新方法、芯片、电子设备及存储介质 |
CN114003294A (zh) * | 2021-09-18 | 2022-02-01 | 苏州浪潮智能科技有限公司 | 远程开关机及固件更新装置、服务器、系统、方法及介质 |
CN114003294B (zh) * | 2021-09-18 | 2023-08-29 | 苏州浪潮智能科技有限公司 | 远程开关机及固件更新装置、服务器、系统、方法及介质 |
CN115987776A (zh) * | 2022-11-30 | 2023-04-18 | 四川虹美智能科技有限公司 | 一种使用路由器在智汇家平台实现环境分离的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5595490B2 (ja) | インストール不要のデータカードドライバの実現方法、操作方法及びそのシステム | |
CN109450673A (zh) | 远程固件更新方法、路由器、存储介质及装置 | |
US9223559B2 (en) | Information processing apparatus, electronic control unit, information processing method, and program | |
CN105451269A (zh) | 一种无线上网流量控制的方法和装置 | |
KR20150073956A (ko) | 모바일 통신 및 컴퓨팅용 기기 및 방법 | |
Anwaarullah et al. | RTOS based home automation system using Android | |
US20170329739A1 (en) | Methods and systems for loading a boot agent on a router network device | |
CN105827464B (zh) | 可自动化部署的虚拟路由器构建方法 | |
CN107005548B (zh) | 用于基于上下文的通信通道配置的系统平台 | |
US9928082B1 (en) | Methods and systems for remote device configuration | |
CN108664799A (zh) | 设备管理应用的权限设置方法及装置 | |
CN107526584B (zh) | 数据接入方法和装置 | |
KR102007628B1 (ko) | 모바일 디바이스 외부 컨트롤러 모듈 | |
KR20180050001A (ko) | 사물인터넷 기기의 펌웨어 업그레이드 시스템 및 방법 | |
CN112817248B (zh) | 一种共享设备管理方法、装置、存储介质及电子装置 | |
CN106648805A (zh) | 一种智能装置、智能系统及智能安装应用的方法 | |
US10469399B2 (en) | Managing remote device based on physical state of a management device | |
JP6258985B2 (ja) | 通信装置、通信制御方法、及びプログラム | |
KR101641322B1 (ko) | 모바일 서버를 이용한 이기종간 파일 공유 방법 | |
CN103064676A (zh) | 一种对开放服务网关中组件的控制方法 | |
Kurniawan | Getting Started with Android Things for Raspberry Pi 3 | |
US10038598B2 (en) | Leveraging and extending mobile operating system MDM protocol | |
CN112118121A (zh) | 客户端设备配置管理的方法和装置 | |
CN103412914A (zh) | 网络客户端 | |
KR101117257B1 (ko) | 유무선통신망을 이용하여 원격으로 컴퓨터를 제어하는 제어시스템 및 그 제어방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190308 |