WO2016197883A1 - 一种在线更新单片机程序的方法及系统 - Google Patents
一种在线更新单片机程序的方法及系统 Download PDFInfo
- Publication number
- WO2016197883A1 WO2016197883A1 PCT/CN2016/084772 CN2016084772W WO2016197883A1 WO 2016197883 A1 WO2016197883 A1 WO 2016197883A1 CN 2016084772 W CN2016084772 W CN 2016084772W WO 2016197883 A1 WO2016197883 A1 WO 2016197883A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- program
- update data
- microcontroller
- program update
- chip memory
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
Abstract
一种在线更新单片机程序的方法,包括:获取程序更新数据(11);通过MODBUS总线将程序更新数据传送至需要更新运行程序的单片机的片外存储器进行存储(12);将存储在片外存储器的程序更新数据更新至单片机(13)。上述技术方案能够解决相关技术中不便于对使用状态的MSP430系列单片机程序进行在线更新的问题。
Description
本文涉及但不限于在线更新技术,涉及一种在线更新单片机程序的方法及系统。
MSP430系列单片机是美国德州仪器(TI,Texas Instruments)公司设计和生产的低功耗、内载闪存(Flash)的16位单片机。该系列单片机可以通过以下几种方式进行程序烧录:(1)使用TI提供的联合测试行动组织(JTAG,Joint Test Action Group)工具进行在线烧录;(2)使用JTAG调试器进行在线烧录;(3)使用专用芯片烧录器对裸片进行离线烧录。
可见,相关技术主要是通过JTAG接口对MSP430系列单片机进行在线烧录,或者使用芯片烧录器对裸片进行烧录后贴装。以上几种芯片烧录方式,对在使用状态中的产品实施程序更新有诸多不便,如工作环境偏远而烧录设备不便于携带、上述烧录方式无法满足大量产品烧录需求等。另外,于部分情况下,应用上述烧录方式需要将整个产品进行重新上、下电操作,而这对于使用中的产品系统是不允许的。
发明内容
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
本发明实施例提供一种在线更新单片机程序的方法及系统,能够解决相关技术中不便于对使用状态的MSP430系列单片机程序进行在线更新的问题。
本发明实施例提供一种在线更新单片机程序的方法,包括:
获取程序更新数据;
通过MODBUS总线将程序更新数据传送至需要更新运行程序的单片机的片外存储器进行存储;
将存储在片外存储器的程序更新数据更新至所述单片机。
可选地,所述方法还包括:若所述程序更新数据对应的版本高于单片机的运行程序的版本,则判断所述单片机的运行程序需要更新。
可选地,所述获取程序更新数据之后,所述通过MODBUS总线将程序更新数据传送至所述单片机的片外存储器进行存储之前,所述方法还包括:根据所述程序更新数据获取数据参数。
可选地,所述将存储在片外存储器的程序更新数据更新至所述单片机包括:根据所述数据参数判断存储在片外存储器的程序更新数据是否完整有效,若完整有效,则将存储在片外存储器的程序更新数据更新至所述单片机。
可选地,所述通过MODBUS总线将程序更新数据传送至所述单片机的片外存储器之后,所述将存储在所述片外存储器的程序更新数据更新至所述单片机之前,所述方法还包括:发送复位命令至所述单片机,使得所述单片机重启。
本发明实施例还提供一种在线更新单片机程序的系统,包括:手持模块,设置为获取程序更新数据;
主控模块,设置为通过MODBUS总线将程序更新数据传送至需要更新运行程序的单片机的片外存储器进行存储;
线卡模块,设置为将存储在片存储器的程序更新数据更新至所述单片机。
可选地,所述主控模块还设置为若所述程序更新数据对应的版本高于单片机的运行程序的版本,则判断所述单片机的运行程序需要更新。
可选地,所述手持模块,还设置为根据所述程序更新数据获取数据参数。
可选地,所述线卡模块是设置为:根据所述数据参数判断存储在片外存储器的程序更新数据是否完整有效,若完整有效,则将存储在片外存储器的程序更新数据更新至所述单片机。
可选地,所述主控模块,还设置为:在所述主控模块通过MODBUS总线将程序更新数据传送至需要更新运行程序的单片机的片外存储器之后,发送复位命令至所述单片机,使得所述单片机重启。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被执行时实现在线更新单片机程序的方法。
在本发明实施例中,获取程序更新数据;通过MODBUS总线将程序更新数据传送至需要更新运行程序的单片机的片外存储器进行存储;将存储在片外存储器的程序更新数据更新至单片机。如此,通过上述技术方案实现了对MSP430系列单片机程序的在线更新,无需将MSP430系列单片机从产品或电路板上拆解下来,只需通过MODBUS通信线路即可实现方便、快捷的在线更新,而且,支持一对多模式的版本更新,具有升级简单、可靠和快速等特点。
在阅读并理解了附图和详细描述后,可以明白其它方面。
图1为本发明实施例提供的在线更新单片机程序的方法的流程图;
图2为本发明实施例提供的在线更新单片机程序的系统的示意图;
图3为本发明实施例提供的在线更新单片机程序的方法的另一流程图。
以下结合附图对本发明实施例进行详细说明,应当理解,以下所说明的实施例仅用于说明和解释本申请,并不用于限定本申请。
图1为本发明实施例提供的在线更新单片机程序的方法的流程图。如图1所示,本发明实施例提供的在线更新单片机程序的方法包括以下步骤:
步骤11:获取程序更新数据;
步骤12:通过MODBUS总线将程序更新数据传送至需要更新运行程序的单片机的片外存储器进行存储;
在本发明实施例中,MODBUS总线为串行链路协议,是一种主/从协议,
于此采用远程终端单元(RTU,Remote Terminal Unit)传输模式。
于此,步骤11之后,步骤12之前,该方法还包括:根据程序更新数据获取数据参数。在本实施例中,数据参数例如包括数据长度、校验数据等。在本实施例中,所述方法还包括:若程序更新数据对应的版本高于单片机的运行程序的版本,则判断所述单片机的运行程序需要更新。
若程序更新数据对应的版本不高于单片机的运行程序的版本,则判断单片机的运行程序无需更新。
步骤13:将存储在片外存储器的程序更新数据更新至单片机。
在本实施例中,将存储在片外存储器的程序更新数据更新至单片包括:
根据数据参数判断存储在片外存储器的程序更新数据是否完整有效,若完整有效,则将存储在片外存储器的程序更新数据更新至单片机。
于步骤12之后,步骤13之前,该方法还包括:发送复位命令至单片机,使得单片机重启。
此外,本发明实施例还提供一种在线更新单片机程序的系统,包括:
手持模块,设置为获取程序更新数据;
主控模块,设置为通过MODBUS总线将程序更新数据传送至需要更新运行程序的单片机的片外存储器进行存储;
线卡模块,设置为将存储在片存储器的程序更新数据更新至单片机。
图2为本发明实施例提供的在线更新单片机程序的系统的示意图。如图2所示,本实施例提供的在线更新单片机程序的系统包括电源模块、手持模块、主控模块以及线卡模块。其中,电源模块设置为:给手持模块、主控模块以及线卡模块供电。
其中,手持模块采用一个精简指令集架构的中央处理器(POWERPC,Performance Optimization With Enhanced RISC–Performance Computing)的嵌入式系统,用于负责人机交互和运行应用软件,且带有RS485接口和若干外设接口。线卡模块可以连接具有RS485接口的MSP430单片机和串口闪存(SPI-Flash,Serial Peripheral Interface Flash)(于此,作为片外存储器)。
于此,手持模块和主控模块一对一连接,而主控模块可连接多个线卡模块(例如,最多连接十二个线卡模块)。主控模块、手持模块和多个线卡模块之间均通过RS485接口连接,且上述每个模块之间通过MODBUS总线连接组网,构成一个MODBUS总线网络。其中,主控模块为MODBUS总线网络中的主节点,而线卡模块构成MODBUS总线网络的从节点。因此,只需要通过主节点对从节点进行在线程序更新即可。
手持模块通过外设接口从外部获取MSP430系列单片机的程序更新数据后,提取程序更新数据的数据参数,并将程序更新数据和数据参数通过MODBUS总线传输到主控模块,主控模块通过RS485接口与每个线卡模块进行通信,通过线卡模块将程序更新数据和数据参数传送至SPI-Flash进行存储,线卡模块对存储的程序更新数据和数据参数进行分析和校验,判断获得完整程序更新数据后,将存储在片外存储器的程序更新数据更新至单片机,从而实现通过MODBUS总线进行MSP430系列单片机程序的在线更新。
其中,MODBUS总线为串行链路协议,是一种主/从协议,于此采用远程终端单元(RTU,Remote Terminal Unit)传输模式。在该模式下,只支持功能码3(Read Holding Registers)和功能码16(Write Multiple Registers)的功能,对应数据的读取和写入功能。
于此,
功能码3(Read Holding Registers)请参见表1所示:
表1
功能码16(Write Multiple Registers)请参见表2所示:
表2
图3为本发明实施例提供的在线更新单片机程序的方法的另一流程图。如图3所示,本实施例提供的在线更新单片机程序的方法包括以下步骤:
步骤101:手持模块从外部接口获取程序更新数据,并提取程序更新数据的数据参数,例如数据长度、校验数据等;
步骤102:手持模块向主控模块发送更新命令,主控模块接收更新命令后,判断程序更新数据对应的版本是否高于单片机的当前版本,若是,则主控模块向手持模块返回接收命令;
步骤103:主控模块接收手持模块通过MODBUS总线发送的程序更新数据和数据参数,并进行存储;
步骤104:主控模块判断运行程序是否需要更新,例如,比较运行程序的版本与程序更新数据对应的版本,当运行程序的版本低于程序更新数据对应的版本时,主动推送程序更新数据,并发送复位命令至单片机,使得单片机重启;
步骤105:主控模块将程序更新数据和数据参数通过MODBUS总线按照总线协议循环传送至需要更新运行程序的单片机的片外存储器(SPI-Flash)中的相应地址进行存储,同时保存数据参数;
步骤106:线卡模块接收程序更新数据及数据参数;
步骤107:线卡模块通过对接收的程序更新数据和数据参数进行分析和
校验,判断获得完整程序更新数据后,线卡模块将SPI-Flash中存储的程序更新数据更新到MSP430单片机的闪存(Flash)存储器中指定的存储地址,同时修改数据参数;
步骤108:MSP430单片机跳转到新程序的入口地址,运行新程序。
此外,上述在线更新过程中,设计有备份机制,预防在数据更新过程中出现异常情况,保证系统正常运行。
综上所述,在本发明实施例中,无需将MSP430单片机从产品或电路板上拆解下来,只需通过相关的MODBUS通信线路即可实现快捷地程序在线更新。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被执行时实现在线更新单片机程序的方法。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件(例如处理器)完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,例如通过集成电路来实现其相应功能,也可以采用软件功能模块的形式实现,例如通过处理器执行存储于存储器中的程序/指令来实现其相应功能。本申请不限制于任何特定形式的硬件和软件的结合。本领域的普通技术人员应当理解,可以对本申请的技术方案进行修改或者等同替换,而不脱离本申请技术方案的精神和范围,均应涵盖在本申请的权利要求范围当中。
上述技术方案实现了对MSP430系列单片机程序的在线更新,无需将MSP430系列单片机从产品或电路板上拆解下来,同时支持一对多模式的版本更新,具有升级简单、可靠和快速等特点。
Claims (10)
- 一种在线更新单片机程序的方法,包括:获取程序更新数据;通过MODBUS总线将程序更新数据传送至需要更新运行程序的单片机的片外存储器进行存储;将存储在片外存储器的程序更新数据更新至所述单片机。
- 如权利要求1所述的方法,所述方法还包括:若所述程序更新数据对应的版本高于单片机的运行程序的版本,则判断所述单片机的运行程序需要更新。
- 如权利要求1所述的方法,所述获取程序更新数据之后,所述通过MODBUS总线将程序更新数据传送至所述单片机的片外存储器进行存储之前,所述方法还包括:根据所述程序更新数据获取数据参数。
- 如权利要求3所述的方法,其中,所述将存储在片外存储器的程序更新数据更新至所述单片机包括:根据所述数据参数判断存储在片外存储器的程序更新数据是否完整有效,若完整有效,则将存储在片外存储器的程序更新数据更新至所述单片机。
- 如权利要求1所述的方法,所述通过MODBUS总线将程序更新数据传送至所述单片机的片外存储器之后,所述将存储在所述片外存储器的程序更新数据更新至所述单片机之前,所述方法还包括:发送复位命令至所述单片机,使得所述单片机重启。
- 一种在线更新单片机程序的系统,包括:手持模块,设置为获取程序更新数据;主控模块,设置为通过MODBUS总线将程序更新数据传送至需要更新运行程序的单片机的片外存储器进行存储;线卡模块,设置为将存储在片存储器的程序更新数据更新至所述单片机。
- 如权利要求6所述的系统,其中,所述主控模块还设置为若所述程序更新数据对应的版本高于单片机的运行程序的版本,则判断所述单片机的运 行程序需要更新。
- 如权利要求6所述的系统,其中,所述手持模块,还设置为根据所述程序更新数据获取数据参数。
- 如权利要求8所述的系统,其中,所述线卡模块是设置为:根据所述数据参数判断存储在片外存储器的程序更新数据是否完整有效,若完整有效,则将存储在片外存储器的程序更新数据更新至所述单片机。
- 如权利要求6所述的系统,其中,所述主控模块,还设置为:在所述主控模块通过MODBUS总线将程序更新数据传送至需要更新运行程序的单片机的片外存储器之后,发送复位命令至所述单片机,使得所述单片机重启。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510319854.0 | 2015-06-11 | ||
CN201510319854.0A CN106293797A (zh) | 2015-06-11 | 2015-06-11 | 一种在线更新单片机程序的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2016197883A1 true WO2016197883A1 (zh) | 2016-12-15 |
Family
ID=57503128
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2016/084772 WO2016197883A1 (zh) | 2015-06-11 | 2016-06-03 | 一种在线更新单片机程序的方法及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106293797A (zh) |
WO (1) | WO2016197883A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111708548A (zh) * | 2020-06-18 | 2020-09-25 | 北京小米移动软件有限公司 | 软件安装方法、装置、设备及存储介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103838588A (zh) * | 2012-11-20 | 2014-06-04 | 广州市暨华医疗器械有限公司 | 通过can接口进行at90单片机程序在线更新的方法 |
CN108415721B (zh) * | 2018-03-20 | 2021-07-27 | 山东比特智能科技股份有限公司 | 一种节点设备程序升级方法及相关装置 |
CN110944042A (zh) * | 2019-11-12 | 2020-03-31 | 中核控制系统工程有限公司 | 一种基于fpga的在线自动更新协议方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101907998A (zh) * | 2010-08-17 | 2010-12-08 | 中兴通讯股份有限公司 | 嵌入式系统的更新系统和方法 |
CN102622253A (zh) * | 2012-03-09 | 2012-08-01 | 瑞斯康达科技发展股份有限公司 | 一种单片机及其在线升级的方法 |
US20140068590A1 (en) * | 2005-04-20 | 2014-03-06 | Denso Corporation | Electronic control system for automobile |
CN104156249A (zh) * | 2014-08-18 | 2014-11-19 | 四川九成信息技术有限公司 | 嵌入式软件升级方法 |
CN104503804A (zh) * | 2014-12-31 | 2015-04-08 | 天津市通卡公用网络系统有限公司 | 一种在线更新单片机程序的方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100050168A1 (en) * | 2006-12-19 | 2010-02-25 | Halliburton Energy Services, Inc. | Secure firmware updates in embedded systems |
CN101251807A (zh) * | 2008-03-14 | 2008-08-27 | 四川长虹电器股份有限公司 | 升级机顶盒前面板可编程单片机的方法 |
CN202870806U (zh) * | 2012-10-30 | 2013-04-10 | 北京同州铭远科技有限公司 | 一种远程更新控制系统 |
-
2015
- 2015-06-11 CN CN201510319854.0A patent/CN106293797A/zh not_active Withdrawn
-
2016
- 2016-06-03 WO PCT/CN2016/084772 patent/WO2016197883A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140068590A1 (en) * | 2005-04-20 | 2014-03-06 | Denso Corporation | Electronic control system for automobile |
CN101907998A (zh) * | 2010-08-17 | 2010-12-08 | 中兴通讯股份有限公司 | 嵌入式系统的更新系统和方法 |
CN102622253A (zh) * | 2012-03-09 | 2012-08-01 | 瑞斯康达科技发展股份有限公司 | 一种单片机及其在线升级的方法 |
CN104156249A (zh) * | 2014-08-18 | 2014-11-19 | 四川九成信息技术有限公司 | 嵌入式软件升级方法 |
CN104503804A (zh) * | 2014-12-31 | 2015-04-08 | 天津市通卡公用网络系统有限公司 | 一种在线更新单片机程序的方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111708548A (zh) * | 2020-06-18 | 2020-09-25 | 北京小米移动软件有限公司 | 软件安装方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106293797A (zh) | 2017-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9563442B2 (en) | Baseboard management controller and method of loading firmware | |
US8386764B2 (en) | BIOS architecture | |
WO2016197883A1 (zh) | 一种在线更新单片机程序的方法及系统 | |
CN104503796B (zh) | 一种基于iap的可配置全网络远程节点固件升级方法 | |
US9973385B2 (en) | Remote server configuration | |
KR20120096858A (ko) | 모바일 디바이스의 어플리케이션 프로세서의 원격 시동 | |
CN109656593A (zh) | 基于zynq芯片实现fpga程序远程升级的方法 | |
TWI598815B (zh) | 用以供更新基本輸入輸出系統之橋接模組及其更新方法 | |
CN103970565A (zh) | 一种服务器系统中fpga多途径下载配置实现方法 | |
RU2014138139A (ru) | Система управления технологическим процессом, периферийное устройство для использования в ней (варианты) и способ планирования действий | |
US9983867B2 (en) | Software image provisioning and charging system | |
US20180357193A1 (en) | Computing device and operation method | |
CN105302621A (zh) | 一种远程实现服务器BIOS Setup恢复初始值的方法 | |
CN103227813A (zh) | 一种家庭物联网系统自动远程更新系统及方法 | |
US20160041607A1 (en) | System management controller | |
CN104199707A (zh) | 对fpga进行升级的系统和方法 | |
WO2016033941A1 (zh) | Boot在线升级装置及方法 | |
CN103838588A (zh) | 通过can接口进行at90单片机程序在线更新的方法 | |
CN204633817U (zh) | 一种远程桌面控制系统 | |
CN109189705B (zh) | 一种usb扩展方法、装置、设备、存储介质及系统 | |
TWI605389B (zh) | 通訊裝置以及韌體更新方法 | |
TWI668635B (zh) | 主機板及其設定更新方法 | |
CN102043644A (zh) | 一种线卡主程序的升级方法及装置 | |
KR20160011090A (ko) | 사물 인터넷 응용 프로그램 업데이트 장치 및 방법 | |
CN104346209A (zh) | 基板管理控制器的更新方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 16806781 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 16806781 Country of ref document: EP Kind code of ref document: A1 |