CN110187909A - 一种基于安卓系统的单片机固件升级方法 - Google Patents
一种基于安卓系统的单片机固件升级方法 Download PDFInfo
- Publication number
- CN110187909A CN110187909A CN201910476189.4A CN201910476189A CN110187909A CN 110187909 A CN110187909 A CN 110187909A CN 201910476189 A CN201910476189 A CN 201910476189A CN 110187909 A CN110187909 A CN 110187909A
- Authority
- CN
- China
- Prior art keywords
- chip microcontroller
- boot loader
- user program
- firmware
- android system
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明公开了一种基于安卓系统的单片机固件升级方法,包括如下步骤:具有Android系统的上位机与下位的单片机采用串口通信方式进行信息交互;设计Android系统端升级程序;开启单片机的引导加载支持的用户自编程功能,设定Boot Loader区的空间占用大小以及上电首先由Boot Loader区运行;编写单片机片Boot Loader程序,利用ISP接口或JTAG接口进行Boot Loader程序的烧写,然后在片内Flash中写入Boot Loader程序,通过Boot Loader程序实现对单片机片内用户程序的擦写,实现对片内Flash中的用户程序进行升级和运行;编写单片机片用户程序,通过ISP接口、JTAG接口或串口,将用户程序烧写到单片机Flash中用户程序区。
Description
技术领域
本发明涉及单片机技术领域,尤其涉及一种基于安卓(Android)系统的单片机固件升级方法。
背景技术
随着移动技术在全球的飞速发展,越来越多的用户选用Android系统作为嵌入式操作系统;同时,单片机依靠其体积小、结构简单、可靠性高、响应时间快等优点,在控制和信息采集领域表现出强大的实力。上位机Android系统和下位机单片机系统技术广泛应用于工业控制、车联网等方面。
然而,由于应用需求的更新或者设计的不完善,需要不断地对单片机系统的固件程序进行修改和升级。可是单片机一般都封装在设备内部,不具备网络功能,无法实现网络升级。目前业界升级工具均为Windows版本,Android端则无任何可用于升级的软件工具;且单片机串口升级时必须进行人工上电/复位,对于封装在设备内的单片机来说,操作极其困难。
因此,设计一种基于Android系统的单片机固件升级方法显得尤为重要。
发明内容
为了克服现有技术的缺陷,本发明所采用的技术方案是:
一种基于安卓系统的单片机固件升级方法,包括如下步骤:
S101:具有Android系统的上位机与下位的单片机采用串口通信方式进行信息交互;
S102:设计Android系统端升级程序;
S103:开启单片机的引导加载支持的用户自编程功能,设定Boot Loader区的空间占用大小以及上电首先由Boot Loader区运行;
S104:编写单片机片Boot Loader程序,利用ISP接口或JTAG接口进行Boot Loader程序的烧写,然后在片内Flash中写入Boot Loader程序,通过Boot Loader程序实现对单片机片内用户程序的擦写,实现对片内Flash中的用户程序进行升级和运行;
S105:编写单片机片用户程序,通过ISP接口、JTAG接口或串口,将用户程序烧写到单片机Flash中用户程序区。
在上述技术方案的基础上,本发明还可以做如下改进。
优选地,S104中的Boot Loader程序的烧写以及对片内Flash中的用户程序进行升级和运行具体包括:
在Android上位机端:
S11:Android上位机的软件程序获取升级固件;
S12:对固件进行完整性较验;若较验失败,则通过显示屏进行“固件较验错误”的提示;若较验通过,则进入S13;
S13:Android上位机通过串口,向下位单片机发送升级命令并等待;
S14:是否收到下位单片机“允许升级”的命令,若是,则进入S15,若否,则返回S13;
S15:通过串口进行升级固件的传送,传送完成后,发送“传送完毕”指令并等待;
S16:接收下位单片机的回馈,通过显示屏显示“升级成功”或“升级失败”;
在下位单片机端:
S21:下位单片机的程序在用户程序区正常运行;
S22:收到上位机下发的数据时,用户程序分析是否是升级程序;若是,则进入S23;若否,则返回S21;
S23:跳转到单片机重启控制部分,对单片机进行重启;单片机重启后,根据熔丝位设定,运行Boot Loader程序并回馈上位机允许升级;
S24:Boot Loader程序接收上位机传送的升级固件,依次写入用户Flash区;
S25:对Flash中用户程序区进行CRC16较验,较验通过,回馈上位机“升级成功”并执行升级后的用户程序;否则,回馈上位机“升级失败”,并等待再一次升级。
优选地,S102中所述的Android系统端升级程序具有网络下载固件、本地读取固件和/或固件完整性较验功能。
优选地,S104中所述的Boot Loader程序具有串口通信、读写和擦除存储器数据和/或程序地址跳转的模块功能。
优选地,S105中所述的单片机片用户程序具有用户需求、串口通信和/或软件单片机复位功能。
与现有技术相比,本发明的基于安卓系统的单片机固件升级方法实用性强,不用需要人工进行上电/复位,通过串口接收到上位机的升级命令后,用户程序自行对单片机进行复位并运行Boot Loader程序,实现升级。
附图说明
图1为本发明的基于安卓系统的单片机固件升级方法的步骤流程图;
图2为本发明的基于安卓系统的单片机固件升级方法的升级流程图;
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
请参照图1所示,其为本发明的基于安卓系统的单片机固件升级方法的步骤流程图;所述固件升级方法包括如下步骤:
S101:具有Android系统的上位机与下位的单片机采用串口通信方式进行信息交互;
S102:设计Android系统端升级程序,该程序具有网络下载固件、本地读取固件以及固件完整性较验功能;
S103:开启单片机的引导加载支持的用户自编程功能,并设定Boot Loader区的空间占用大小以及上电首先由Boot Loader区运行;
S104:编写单片机片Boot Loader程序,利用ISP接口或JTAG接口进行Boot Loader程序的烧写,该程序具有串口通信、读写和擦除存储器数据、程序地址跳转的模块功能;然后在片内Flash中写入Boot Loader程序,通过Boot Loader程序实现对单片机片内用户程序的擦写,实现对片内Flash中的用户程序进行升级和运行;
S105:编写单片机片用户程序,该程序除了用户需求功能以外,具有串口通信、软件单片机复位功能;通过ISP接口、JTAG接口或串口,将用户程序烧写到单片机Flash中用户程序区。
在步骤S104中,进行了Boot Loader程序的烧写和片内Flash中用户程序的升级等;具体地,请再参照图2所示,其为本发明的基于安卓系统的单片机固件升级方法的升级流程图,包括如下步骤:
1)在Android上位机端:
S11:Android上位机的软件程序获取升级固件,获取方式例如可为网络方式、本地读取方式等;
S12:使用CRC16较验方式,对固件进行完整性较验;若较验失败,则通过显示屏进行“固件较验错误”的提示;若较验通过,则进入S13;
S13:Android上位机通过串口,向下位单片机发送升级命令并等待;
S14:是否收到下位单片机“允许升级”的命令,若是,则进入S15,若否,则返回S13;
S15:通过串口进行升级固件的传送,传送完成后,发送“传送完毕”指令并等待;
S16:接收下位单片机的反馈,通过显示屏显示“升级成功”或“升级失败”。
2)在下位单片机端:
S21:下位单片机的程序在用户程序区正常运行,实现用户功能以及与上位机进行实时的数据交互;
S22:当收到上位机下发的数据时,用户程序首先分析是否是升级程序;若是,则进入S23;若否,则返回S21;
S23:跳转到单片机重启控制部分,对单片机进行重启;单片机重启后,根据熔丝位设定,运行Boot Loader程序并回馈上位机允许升级;
S24:Boot Loader程序接收上位机传送的升级固件,并依次写入用户Flash区;
S25:对Flash中用户程序区进行CRC16较验,较验通过,则回馈上位机“升级成功”并执行升级后的用户程序;否则,将回馈上位机“升级失败”,并等待再一次升级。
在本发明中,使用ATMEL单片机通用同步/异步串行接收/发送器(USART,Universal Synchronous/Asynchronous Receiver/Transmitter),这是一个高度灵活的串行通讯设备,高速率高精度的波特率发生器可以让串口升级更加稳定、快速;在BootLoader程序和用户应用程序中均使用高速率串口进行通信,用户应用程序只需要简单实现接收串口命令并使用单片机自动复位,即可实现程序的自动升级和运行。
Boot Loader程序在编译时,应设置ICC-AVR等编译器Boot Size;在Boot Loader程序烧录时,Boot Size应与烧录程序中设定一致。并将熔丝位设定为,重启时首先运行Boot Loader程序。
为了实现单片机自动复位,用户程序的主函数main(void)执行过程中,如果接收到串口发送的复位令,则跳转到自复位模式,自复位程序具体的实现方式如下:
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种基于安卓系统的单片机固件升级方法,其特征在于,包括如下步骤:
S101:具有Android系统的上位机与下位的单片机采用串口通信方式进行信息交互;
S102:设计Android系统端升级程序;
S103:开启单片机的引导加载支持的用户自编程功能,设定Boot Loader区的空间占用大小以及上电首先由Boot Loader区运行;
S104:编写单片机片Boot Loader程序,利用ISP接口或JTAG接口进行Boot Loader程序的烧写,然后在片内Flash中写入Boot Loader程序,通过Boot Loader程序实现对单片机片内用户程序的擦写,实现对片内Flash中的用户程序进行升级和运行;
S105:编写单片机片用户程序,通过ISP接口、JTAG接口或串口,将用户程序烧写到单片机Flash中用户程序区。
2.根据权利要求1所述的基于安卓系统的单片机固件升级方法,其特征在于,S104中的Boot Loader程序的烧写以及对片内Flash中的用户程序进行升级和运行具体包括:
在Android上位机端:
S11:Android上位机的软件程序获取升级固件;
S12:对固件进行完整性较验;若较验失败,则通过显示屏进行“固件较验错误”的提示;若较验通过,则进入S13;
S13:Android上位机通过串口,向下位单片机发送升级命令并等待;
S14:是否收到下位单片机“允许升级”的命令,若是,则进入S15,若否,则返回S13;
S15:通过串口进行升级固件的传送,传送完成后,发送“传送完毕”指令并等待;
S16:接收下位单片机的回馈,通过显示屏显示“升级成功”或“升级失败”;
在下位单片机端:
S21:下位单片机的程序在用户程序区正常运行;
S22:收到上位机下发的数据时,用户程序分析是否是升级程序;若是,则进入S23;若否,则返回S21;
S23:跳转到单片机重启控制部分,对单片机进行重启;单片机重启后,根据熔丝位设定,运行Boot Loader程序并回馈上位机允许升级;
S24:Boot Loader程序接收上位机传送的升级固件,依次写入用户Flash区;
S25:对Flash中用户程序区进行CRC16较验,较验通过,回馈上位机“升级成功”并执行升级后的用户程序;否则,回馈上位机“升级失败”,并等待再一次升级。
3.根据权利要求1或2所述的基于安卓系统的单片机固件升级方法,其特征在于,S102中所述的Android系统端升级程序具有网络下载固件、本地读取固件和/或固件完整性较验功能。
4.根据权利要求1或2所述的基于安卓系统的单片机固件升级方法,其特征在于,S104中所述的Boot Loader程序具有串口通信、读写和擦除存储器数据和/或程序地址跳转的模块功能。
5.根据权利要求1或2所述的基于安卓系统的单片机固件升级方法,其特征在于,S105中所述的单片机片用户程序具有用户需求、串口通信和/或软件单片机复位功能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910476189.4A CN110187909B (zh) | 2019-06-03 | 2019-06-03 | 一种基于安卓系统的单片机固件升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910476189.4A CN110187909B (zh) | 2019-06-03 | 2019-06-03 | 一种基于安卓系统的单片机固件升级方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110187909A true CN110187909A (zh) | 2019-08-30 |
CN110187909B CN110187909B (zh) | 2023-04-14 |
Family
ID=67719896
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910476189.4A Active CN110187909B (zh) | 2019-06-03 | 2019-06-03 | 一种基于安卓系统的单片机固件升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110187909B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110968330A (zh) * | 2019-11-29 | 2020-04-07 | 上海商米科技集团股份有限公司 | 一种基于Android智能设备使用Ymodem协议升级GD32控制器的方法 |
CN111309364A (zh) * | 2020-05-11 | 2020-06-19 | 深圳市科信通信技术股份有限公司 | 芯片程序的升级方法、装置及存储介质 |
CN112214230A (zh) * | 2020-09-15 | 2021-01-12 | 广芯微电子(广州)股份有限公司 | 一种芯片程序烧写装置及芯片程序烧写方法 |
CN112988188A (zh) * | 2021-02-23 | 2021-06-18 | 上海龙感汽车电子有限公司 | 一种应用于汽车方向盘转角传感器的软件升级方法 |
CN113064621A (zh) * | 2021-04-14 | 2021-07-02 | 艾体威尔电子技术(北京)有限公司 | 一种智能设备安卓系统对密码键盘系统固件升级的方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103514018A (zh) * | 2013-10-08 | 2014-01-15 | 上海电力学院 | 基于stm32f4控制器的程序远程下载的实现方法 |
CN104035793A (zh) * | 2014-05-22 | 2014-09-10 | 浙江大学 | 基于单片机的在应用无线编程方法 |
CN105204899A (zh) * | 2015-09-17 | 2015-12-30 | 浪潮软件集团有限公司 | 一种基于网络的单片机固件升级方法的实现 |
CN105988843A (zh) * | 2015-02-15 | 2016-10-05 | 腾讯科技(深圳)有限公司 | 移动终端固件升级方法及固件升级装置 |
CN106528114A (zh) * | 2016-10-25 | 2017-03-22 | 北京海誉动想科技股份有限公司 | 安卓固件应用、安卓固件和固件升级方法 |
CN106789334A (zh) * | 2017-01-13 | 2017-05-31 | 狼天科技(深圳)有限公司 | 一种固件升级的方法和设备 |
WO2019062703A1 (zh) * | 2017-09-26 | 2019-04-04 | 阿里巴巴集团控股有限公司 | 升级方法、嵌入式系统 |
CN109656608A (zh) * | 2019-01-08 | 2019-04-19 | 深圳市网心科技有限公司 | 一种mcu固件升级方法及其相关设备 |
-
2019
- 2019-06-03 CN CN201910476189.4A patent/CN110187909B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103514018A (zh) * | 2013-10-08 | 2014-01-15 | 上海电力学院 | 基于stm32f4控制器的程序远程下载的实现方法 |
CN104035793A (zh) * | 2014-05-22 | 2014-09-10 | 浙江大学 | 基于单片机的在应用无线编程方法 |
CN105988843A (zh) * | 2015-02-15 | 2016-10-05 | 腾讯科技(深圳)有限公司 | 移动终端固件升级方法及固件升级装置 |
CN105204899A (zh) * | 2015-09-17 | 2015-12-30 | 浪潮软件集团有限公司 | 一种基于网络的单片机固件升级方法的实现 |
CN106528114A (zh) * | 2016-10-25 | 2017-03-22 | 北京海誉动想科技股份有限公司 | 安卓固件应用、安卓固件和固件升级方法 |
CN106789334A (zh) * | 2017-01-13 | 2017-05-31 | 狼天科技(深圳)有限公司 | 一种固件升级的方法和设备 |
WO2019062703A1 (zh) * | 2017-09-26 | 2019-04-04 | 阿里巴巴集团控股有限公司 | 升级方法、嵌入式系统 |
CN109656608A (zh) * | 2019-01-08 | 2019-04-19 | 深圳市网心科技有限公司 | 一种mcu固件升级方法及其相关设备 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110968330A (zh) * | 2019-11-29 | 2020-04-07 | 上海商米科技集团股份有限公司 | 一种基于Android智能设备使用Ymodem协议升级GD32控制器的方法 |
CN110968330B (zh) * | 2019-11-29 | 2024-01-09 | 上海商米科技集团股份有限公司 | 一种基于Android智能设备使用Ymodem协议升级GD32控制器的方法 |
CN111309364A (zh) * | 2020-05-11 | 2020-06-19 | 深圳市科信通信技术股份有限公司 | 芯片程序的升级方法、装置及存储介质 |
CN112214230A (zh) * | 2020-09-15 | 2021-01-12 | 广芯微电子(广州)股份有限公司 | 一种芯片程序烧写装置及芯片程序烧写方法 |
CN112988188A (zh) * | 2021-02-23 | 2021-06-18 | 上海龙感汽车电子有限公司 | 一种应用于汽车方向盘转角传感器的软件升级方法 |
CN113064621A (zh) * | 2021-04-14 | 2021-07-02 | 艾体威尔电子技术(北京)有限公司 | 一种智能设备安卓系统对密码键盘系统固件升级的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110187909B (zh) | 2023-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110187909A (zh) | 一种基于安卓系统的单片机固件升级方法 | |
CN105912356B (zh) | 一种支持版本回退的光模块固件程序在线升级方法 | |
CN105354070B (zh) | 一种通过i2c升级设备固件的方法 | |
CN103530146B (zh) | 低功耗嵌入式设备远程无线升级方法 | |
CN109189434A (zh) | 一种电能表的在线升级方法 | |
CN100461105C (zh) | 一种智能化设备软件升级与修复的方法和系统 | |
CN101815988A (zh) | 固件映像更新和管理 | |
CN103970565A (zh) | 一种服务器系统中fpga多途径下载配置实现方法 | |
CN101169729A (zh) | 嵌入式系统及其更新应用程序的方法 | |
CN107870775A (zh) | 一种处理器及BootLoader程序的更新方法 | |
CN101267623A (zh) | 一种手机启动引导的构建方法 | |
CN107729040A (zh) | 一种单片机的iap方法及系统 | |
CN110851163A (zh) | 一种基于can通信的兼容多设备平台的软件更新方法 | |
CN103077056B (zh) | 使用少量ROM资源的Bootlorder实现方法 | |
CN112540780A (zh) | 一种编队无人机批量固件升级实现系统、方法 | |
CN113110860A (zh) | 一种嵌入式终端远程软件更新方法 | |
CN107544804A (zh) | 嵌入式系统终端开发模式的启动方法及装置 | |
CN107621943A (zh) | 一种fpga动态批量烧写系统及方法 | |
CN101667133B (zh) | 固件更新方法和使用该方法更新固件的芯片 | |
CN109582341A (zh) | 一种机车信号车载系统设备的主机系统及其程序变更方法 | |
CN110673862A (zh) | 兼用多模式的嵌入式设备固件无线升级方法、设备、介质 | |
CN107729090A (zh) | 一种基于串口传输的用户程序下载方法 | |
CN108536458A (zh) | 一种fpga在线升级方法、装置、设备及存储介质 | |
CN106293797A (zh) | 一种在线更新单片机程序的方法及系统 | |
CN110262349A (zh) | 一种c8051f系列单片机的远程在线编程方法及系统 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |