CN110187909A - 一种基于安卓系统的单片机固件升级方法 - Google Patents

一种基于安卓系统的单片机固件升级方法 Download PDF

Info

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
Application number
CN201910476189.4A
Other languages
English (en)
Other versions
CN110187909B (zh
Inventor
李健
张立恒
刘涛
王艳华
任海涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHANDONG HIGER INFORMATION TECHNOLOGY Co Ltd
Original Assignee
SHANDONG HIGER INFORMATION TECHNOLOGY Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SHANDONG HIGER INFORMATION TECHNOLOGY Co Ltd filed Critical SHANDONG HIGER INFORMATION TECHNOLOGY Co Ltd
Priority to CN201910476189.4A priority Critical patent/CN110187909B/zh
Publication of CN110187909A publication Critical patent/CN110187909A/zh
Application granted granted Critical
Publication of CN110187909B publication Critical patent/CN110187909B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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中所述的单片机片用户程序具有用户需求、串口通信和/或软件单片机复位功能。
CN201910476189.4A 2019-06-03 2019-06-03 一种基于安卓系统的单片机固件升级方法 Active CN110187909B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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固件升级方法及其相关设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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