CN1584844A - 一种单片机在线升级方法和装置 - Google Patents
一种单片机在线升级方法和装置 Download PDFInfo
- Publication number
- CN1584844A CN1584844A CN 03154290 CN03154290A CN1584844A CN 1584844 A CN1584844 A CN 1584844A CN 03154290 CN03154290 CN 03154290 CN 03154290 A CN03154290 A CN 03154290A CN 1584844 A CN1584844 A CN 1584844A
- Authority
- CN
- China
- Prior art keywords
- program storage
- module
- program
- chip microcomputer
- cpu
- 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
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供一种单片机在线升级方法和装置,以克服现有技术存在的通用性差、技术风险高的缺点。本发明提供如下技术方案:一种单片机在线升级的方法,其包含以下步骤:a.将该单片机的存储器分成:用于存储基本程序模块的第一程序存储器、用于存储功能程序模块的第二程序存储器;b.该单片机中的CPU执行所述第一程序存储器的基本程序模块;c.所述CPU将新的程序模块写入所述第二程序存储器中,完成程序模块的更新升级。本发明实现了以MCS51系列单片机为主控的电子设备的程序自动更新功能;其通用性强;安全可靠性高,不怕干扰、断电等影响。
Description
技术领域
本发明涉及信息处理技术,尤指一种单片机在线升级方法和装置。
背景技术
MCS51系列的单片机在国内外有着广泛的应用基础,大量应用在各行业的电子设备中。MCS51系列单片机与X86系列微处理器相比较而言,在寻址方式上有很大区别,前者是数据区、程序区分开寻址,而后者是统一寻址。因MCS51系列单片机具有分开寻址特点,其将存储器分为两类:数据存储器和程序存储器。对该数据存储器而言,MCS51系列单片机可以以读、写两种方式访问。对该程序存储器而言,MCS51系列单片机也有两种方式可以访问:一种是取指令操作的方式从程序存储器中读取数据;另一种是应用″MOVC″指令的方式从程序存储器中读取数据。因为MCS51单片机没有提供对程序存储器的写操作功能,因此无法实现对自身存储器内容的更新(写入新程序代码)。
但是,在现代的电子设备中经常需要更新程序存储器中的控制软件,以消除在应用过程中发现的软件缺陷或增加新的功能。“程序在线升级”这一特性已成为众多电子设备的一项基本功能。可是由于MCS51系列的单片机没有提供对程序存储器的写操作功能,如何实现MCS51系列单片机的“程序在线升级”功能成为困扰业界的一大难题。
在现有技术中,个别MCS51单片机生产厂家设计了一种具有自编程功能的MCS51系列单片机。方法是预先提供一段对单片机自身的存储器进行编程的特殊代码(即特殊程序),出厂前将该特殊代码存放于该单片机程序存储器的特定位置;用户程序通过调用此特殊代码实现对自身程序存储器的写功能。
显然,上述现有技术存在如下缺点:
1、通用性差:该特殊代码必须应用于特定厂家、特定型号的单片机,无法满足广泛需求,且对使用者来说,由于无法找到替代器件,商务性能差、风险大。
2、技术风险高:由于上述现有技术是通过程序存储器内的″特殊代码″来更新程序存储器的内容,即″自己更新自己″,如在程序更新期间出现问题(如干扰、断电等),则会损坏功能程序,甚至导致整个设备无法运行。
技术内容
本发明提供一种单片机在线升级方法和装置,以克服现有技术存在的通用性差、技术风险高的缺点。
为解决上述问题,本发明提供如下技术方案:
一种单片机在线升级方法,其包含以下步骤:
a、将该单片机的存储器分成:用于存储基本程序模块的第一程序存储器、用于存储功能程序模块的第二程序存储器;
b、该单片机中的CPU执行所述第一程序存储器的基本程序模块;
c、所述CPU将新的程序模块写入所述第二程序存储器中,完成程序模块的更新升级。
其中,所述步骤b单片机中的CPU执行所述第一程序存储器的基本程序模块具体包含步骤:
b1、进行系统自检、初始化;
b2、检查所述第二程序存储器的功能程序模块是否存在且是否完整;
b3、将检查结果上报给上位机;
b4、判断是否需要进行在线升级,如果否,那么所述CPU执行所述第二程序存储器的功能程序模块,否则进行步骤c。
所述步骤c具体包括:
c1、所述CPU将所述第二程序存储器设定为可读写状态;
c2、将新的程序模块写入所述第二程序存储器中,完成程序模块的更新升级;
c3、所述CPU将所述第二程序存储器设定为只读状态。
一种单片机在线升级装置,包含数据存储器模块,此外,该装置还包含有:
第一程序存储器模块,用于存储完成基本操作的程序模块;
第二程序存储器模块,用于存储完成设备功能操作的程序模块;
可编程逻辑器件模块,用于控制所述第一程序存储器模块和第二程序存储器模块;
该单片机的总线与所述可编程逻辑器件模块、第一程序存储器模块、第二程序存储器模块和数据存储器模块的总线相连,并通过所述可编程逻辑器件模块分别控制所述的第一程序存储器模块、第二程序存储器模块和数据存储器模块。
本发明提供的一种单片机在线升级方法和装置,将单片机的程序存储器按所实现功能的不同分为两个子块,分别应用两个不同的存储器件实现,即:用于存储完成基本操作功能的程序代码的第一程序存储器和用于存储完成功能操作程序代码的第二程序存储器,其中可编程逻辑器件模块通过″软件控制切换的方法″将第二程序存储器模块映射为单片机的程序存储器或数据存储器。还可以通过调用第一程序存储器BIOS中子程序的方法实现″功能程序″对第二程序存储器模块全部空间的读、写访问功能。具体来讲,本发明主要有以下优点:
1)、实现了以MCS51系列单片机为主控的电子设备的程序自动更新功能;
2)、通用性强,适用于所有MCS51系列的单片机;
3)、安全可靠性高,不怕干扰、断电等影响。
下面结合附图说明及具体实施方式详细介绍本发明。
附图说明
图1为本发明实施例所述的装置结构示意图;
图2为本发明实施例所述的方法流程图;
图3为本发明实施例所述步骤b的方法流程图;
图4为本发明实施例所述步骤c的方法流程图;
图5为本发明实施例的地址空间分配示意图。
具体实施方式
如图1所示为本实施例所述实现单片机程序在线升级的装置,其包括有:单片机、第一程序存储器、第二程序存储器、数据存储器、可编程逻辑器件和看门狗,其中:
单片机为MCS51系列的单片机。MCS51系列单片机RAM寻址范围为64K字节、ROM寻址范围为64K字节,采用不同的指令访问RAM和ROM。
第一程序存储器采用FLASH器件或EPROM器件或单片机内部集成的程序存储器来实现,用于存放″基本操作程序″的功能代码,其中包含:对下述的第二程序存储器进行读、写操作的子程序,可称之为″BIOS存储器″。
第二程序存储器采用可以在线编程的FLASH器件,用于存放″功能操作程序″代码,此部分代码实现单板/设备的各项功能,可称之为″功能程序存储器″。
数据存储器采用普通的SRAM即可。
可编程逻辑器件,其为可由使用人员设定其内部逻辑功能的器件,如EPLD(Erasable Programmable Logic Device:可擦除可编程逻辑器件)等,用于控制所述第一程序存储器模块和第二程序存储器模块。
看门狗,其用于监控单片机CPU是否正常运行的器件,具体型号采用MAX1232等,可实现对CPU是否正常运行的监控,在异常情况下控制CPU恢复正常运行。
当然对于某些型号的单片机来说,其不仅包含有几K的程序存储器,还包含有看门狗,如图1所示中虚线框内的部分。
该单片机的地址总线、数据总线和控制线与所述可编程逻辑器件、第一程序存储器、第二程序存储器和数据存储器的地址总线、数据总线和控制线,并通过所述可编程逻辑器件分别控制所述的第一程序存储器、第二程序存储器和数据存储器。
另外,本实施例还设有一台上位机(图中未示),用于发出用户指令,该上位机可为普通微机或其它单板/设备,其通过串口或其他通信方式与本单片机通信。
下面介绍一下各存储器的空间分配,如图2所示第一程序存储器、第二程序存储器、数据存储器对应的程序、数据空间分配情况,两个程序存储器各对应一段程序存储空间,大小为16K,不同的是第二程序存储器还对应一段数据存储空间,大小为4K,这样,该单片机的程序存储器已经分为:用于存储基本程序代码的第一程序存储器、用于存储功能程序代码的第二程序存储器。
本实施例的单板上电/复位后系统的运行过程如下,如图3所示:
第一、单片机中的CPU执行所述第一程序存储器的基本程序。
如图4所示,首先,该CPU运行第一程序存储器的基本程序,即BIOS程序代码实现系统(如单板)自检和初始化等操作;
其次,检查所述第二程序存储器的功能程序是否存在,并校验所述第二程序存储器的功能程序是否完整;
然后,将结果上报给上位机,如果结果正确,系统继续进行,否则,程序报错,系统挂起;当然,也可以在校验正确后通过读取设备某开关的状态决定是否跳转运行第二程序存储器的功能程序;
最后,判断是否需要进行程序在线升级,如果否,那么所述CPU执行所述第二程序存储器的功能程序,即根据″上位机″指令跳转到第二程序存储器运行″功能程序″代码,否则进行下一步骤,即上位机不发送跳转指令而是发送″功能程序更新″指令,此时进行下一步骤。
第二、所述CPU将程序代码写入所述第二程序存储器中,完成程序代码的更新(升级);
如图5所示,该单片机的CPU接收上位机发送来的″功能程序更新″指令,通过所述可编程逻辑器件来控制所述第二程序存储器。具体而言,如图1所示,所述第二程序存储器的片选信号由可编程逻辑器件给出,从而选定第二程序存储器为当前有效的程序存储器,同样第二程序存储器的读、写操作信号和高位的地址信号也由可编程逻辑器件给出,低位的地址信号由CPU控制的地址总线来控制;如图2所示,在可编程逻辑器件内将程序存储器ROM空间8000H-BFFFH和数据存储器RAM空间F000H-FFFFH均映射至第二程序存储器(FLASH)的片选信号,即可将这些程序存储器空间和数据存储器空间和该第二程序存储器绑定。另外在可编程逻辑器件内设置一个可由CPU控制的选择信号,由选择信号的状态决定程序存储器空间还是数据存储器空间的映射有效,从而可以实现第二程序存储器的“功能程序代码”的更新。
CPU通过可编程逻辑器件设置该第二程序存储器为“RAM”(称为“映射选择信号”),即″功能程序更新″方式,此时该CPU的读写信号通过可编程逻辑器件和该第二程序存储器的读写信号相连,CPU的地址信号和该第二程序存储器的低位地址信号相连,在CPU的控制下通过可编程逻辑器件设置该第二程序存储器的高位地址,如图2所示则为4K以上的地址信号,这样,第一程序存储器中的程序代码通过可编程逻辑器件将该第二程序存储器映射为该单片机系统的RAM,然后选取其中的4K的FLASH空间,执行相应空间的RAM读写操作,CPU从而将接收到的上位机发送来的程序代码写入第二程序存储器中,实现单片机程序在线升级。
单片机程序在线升级完成后,可再根据上位机的指令跳转至第二程序存储器中的功能程序继续运行,此时:
CPU通过可编程逻辑器件设置该第二程序存储器为“ROM”,即″功能程序执行″方式,该CPU的/PSEN信号通过可编程逻辑器件和该第二程序存储器的读信号相连,将该第二程序存储器的写信号通过可编程逻辑器件设置为“高电平”,使“写”状态无效,即该第二程序存储器的内容是可读的,但不可以更改,CPU的地址信号和该第二程序存储器的低位地址信号相连,在CPU的控制下通过可编程逻辑器件设置该第二程序存储器的高位地址(即64K以上的地址信号)接″低电平″,这样,对CPU来讲该第二程序存储器(FLASH)就成了它的一片″程序存储器″。这样,第一程序存储器中的程序代码通过可编程逻辑器件将该第二程序存储器映射为该单片机系统的ROM,然后通过跳转指令转至第二程序存储器的相应位置取指令代码并运行即可。
在应用本发明实施例后,在单片机执行程序在线升级功能时:如受到干扰后程序中断运行或程序跑飞,可以通过看门狗电路复位单片机,复位后运行第一程序存储器中的程序代码会检测出″功能程序″存在问题,重新执行″在线升级″功能则可以消除故障;如遇到断电等情况,则单板重新上电后会执行上面相同的操作;该看门狗电路属于现有技术,在此不再赘述。
另外,单片机各中断的入口地址大都使用固定的地址,例如0003H、000BH等地址,即单片机中断发生后会固定地到第一程序存储器取指令运行。为使第二程序存储器中的″功能程序″可以利用中断可做如下处理:
1、在第二程序存储器中为各中断处理程序分配固定的存储起始地址;
2、在第一程序存储器中的中断处理程序开头加入判断CPU运行状态(即运行基本程序还是功能程序)的代码,根据CPU运行状态决定是执行基本程序内的中断处理程序、还是跳转至第二程序存储器中相应的中断处理程序运行。
而判断CPU运行状态可用可编程逻辑器件中的″第二程序存储器映射选择信号″;或在SRAM中设置运行状态标识等方法实现。
值得一提的是,如图2所示,CPU使用了第二程序存储器FLASH中的16K空间作为它的″程序存储器″,可一般情况下FLASH的存储空间均大于16K。对于未用作″程序存储器″的FLASH空间可用于存储单板/功能程序的其它数据。但在CPU运行″功能程序″时,FLASH映射为ROM无法实现对FLASH其它可用空间的读、写操作,其实可以通过如下办法实现功能程序对FLASH其它存储单元的使用:
1、在第一程序存储器存储区域内的一个固定地址开始存储操作FLASH的子程序;
2、″功能程序″在需要操作FLASH时准备好相关参数后调用第一程序存储器存储区域的FLASH操作子程序;
3、第一程序存储器存储区域的FLASH操作子程序首先将FLASH映射为RAM,然后根据参数完成相关操作;
4、最后该FLASH操作子程序将FLASH映射为ROM,返回至功能程序区相应地址继续运行。
Claims (5)
1、一种单片机在线升级方法,其特征在于,该方法包含以下步骤:
a、将该单片机的存储器分成:用于存储基本程序模块的第一程序存储器、用于存储功能程序模块的第二程序存储器;
b、该单片机中的CPU执行所述第一程序存储器的基本程序模块;
c、所述CPU将新的程序模块写入所述第二程序存储器中,完成程序模块的更新升级。
2、如权利要求1所述单片机在线升级方法,其特征在于,所述步骤b单片机中的CPU执行所述第一程序存储器的基本程序模块具体包含步骤:
b1、进行系统自检、初始化;
b2、检查所述第二程序存储器的功能程序模块是否存在且是否完整;
b3、将检查结果上报给上位机;
b4、判断是否需要进行在线升级,如果否,那么所述CPU执行所述第二程序存储器的功能程序模块,否则进行步骤c。
3、如权利要求1所述单片机在线升级方法,其特征在于,所述步骤c具体包括:
c1、所述CPU将所述第二程序存储器设定为可读写状态;
c2、将新的程序模块写入所述第二程序存储器中,完成程序模块的更新升级;
c3、所述CPU将所述第二程序存储器设定为只读状态。
4、一种单片机在线升级的装置,包含数据存储器模块,其特征在于,该装置还包含有:
第一程序存储器模块,用于存储完成基本操作的程序模块;
第二程序存储器模块,用于存储完成设备功能操作的程序模块;
可编程逻辑器件模块,用于控制所述第一程序存储器模块和第二程序存储器模块;
该单片机的总线与所述可编程逻辑器件模块、第一程序存储器模块、第二程序存储器模块和数据存储器模块的总线相连,并通过所述可编程逻辑器件模块分别控制所述的第一程序存储器模块、第二程序存储器模块和数据存储器模块。
5、如权利要求1所述的单片机在线升级的装置,其特征在于,所述的第二程序存储器模块采用Flash存储器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB031542905A CN100351797C (zh) | 2003-08-19 | 2003-08-19 | 一种单片机在线升级方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB031542905A CN100351797C (zh) | 2003-08-19 | 2003-08-19 | 一种单片机在线升级方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1584844A true CN1584844A (zh) | 2005-02-23 |
CN100351797C CN100351797C (zh) | 2007-11-28 |
Family
ID=34597962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB031542905A Expired - Fee Related CN100351797C (zh) | 2003-08-19 | 2003-08-19 | 一种单片机在线升级方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100351797C (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100357893C (zh) * | 2006-07-17 | 2007-12-26 | 华为技术有限公司 | 一种终端升级方法及系统 |
CN100384122C (zh) * | 2005-05-25 | 2008-04-23 | 深圳创维数字技术股份有限公司 | 网络终端产品的在线升级方法 |
CN102081543A (zh) * | 2011-01-25 | 2011-06-01 | 冉红 | 一种led显示控制系统在线升级的方法 |
CN102402444A (zh) * | 2011-11-15 | 2012-04-04 | 北京世纪瑞尔技术股份有限公司 | 一种软件远程升级的方法 |
CN102637009A (zh) * | 2012-04-25 | 2012-08-15 | 山东省计算中心 | 在线可编程控制器及其实现方法 |
CN101685401B (zh) * | 2008-09-22 | 2013-07-24 | 中国科学院计算技术研究所 | 一种远程无线编程的方法及支持远程无线编程的芯片 |
CN103530140A (zh) * | 2012-07-06 | 2014-01-22 | 河南思维自动化设备股份有限公司 | 一种针对早期单片机系统的在线编程系统及其方法 |
CN103809995A (zh) * | 2012-11-15 | 2014-05-21 | 海尔集团公司 | 单片机及其在线升级方法和在线升级装置 |
CN105354061A (zh) * | 2015-11-05 | 2016-02-24 | 邦彦技术股份有限公司 | 一种保护mcu工作程序的方法及系统 |
CN105426318A (zh) * | 2015-11-12 | 2016-03-23 | 宁波伟依特照明电器有限公司 | 一种pic单片机的ram寻址方法 |
CN107301068A (zh) * | 2017-06-12 | 2017-10-27 | 合肥众志行云科技有限公司 | 一种单片机上的一对多无线程序升级系统及方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001024014A1 (en) * | 1999-09-27 | 2001-04-05 | Zf Micro Devices, Inc. | Embedded computer system and method with flash memory interface |
CN100426220C (zh) * | 2001-12-29 | 2008-10-15 | 中兴通讯股份有限公司 | 在通信系统中利用单片机实现软件下载的装置及其方法 |
CN1512336A (zh) * | 2002-12-28 | 2004-07-14 | 深圳市中兴通讯股份有限公司 | 一种8051单片机系统升级方法及监控电路 |
-
2003
- 2003-08-19 CN CNB031542905A patent/CN100351797C/zh not_active Expired - Fee Related
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100384122C (zh) * | 2005-05-25 | 2008-04-23 | 深圳创维数字技术股份有限公司 | 网络终端产品的在线升级方法 |
CN100357893C (zh) * | 2006-07-17 | 2007-12-26 | 华为技术有限公司 | 一种终端升级方法及系统 |
CN101685401B (zh) * | 2008-09-22 | 2013-07-24 | 中国科学院计算技术研究所 | 一种远程无线编程的方法及支持远程无线编程的芯片 |
CN102081543A (zh) * | 2011-01-25 | 2011-06-01 | 冉红 | 一种led显示控制系统在线升级的方法 |
CN102402444A (zh) * | 2011-11-15 | 2012-04-04 | 北京世纪瑞尔技术股份有限公司 | 一种软件远程升级的方法 |
CN102637009A (zh) * | 2012-04-25 | 2012-08-15 | 山东省计算中心 | 在线可编程控制器及其实现方法 |
CN103530140A (zh) * | 2012-07-06 | 2014-01-22 | 河南思维自动化设备股份有限公司 | 一种针对早期单片机系统的在线编程系统及其方法 |
CN103809995A (zh) * | 2012-11-15 | 2014-05-21 | 海尔集团公司 | 单片机及其在线升级方法和在线升级装置 |
CN105354061A (zh) * | 2015-11-05 | 2016-02-24 | 邦彦技术股份有限公司 | 一种保护mcu工作程序的方法及系统 |
CN105426318A (zh) * | 2015-11-12 | 2016-03-23 | 宁波伟依特照明电器有限公司 | 一种pic单片机的ram寻址方法 |
CN105426318B (zh) * | 2015-11-12 | 2018-12-25 | 宁波伟依特照明电器有限公司 | 一种pic单片机的ram寻址方法 |
CN107301068A (zh) * | 2017-06-12 | 2017-10-27 | 合肥众志行云科技有限公司 | 一种单片机上的一对多无线程序升级系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN100351797C (zh) | 2007-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7676632B2 (en) | Partial cache way locking | |
CN100351797C (zh) | 一种单片机在线升级方法和装置 | |
CN102792285A (zh) | 层级转换表控制 | |
CN1235148C (zh) | 管理数据处理器系统中虚拟化的物理存储器的方法和系统 | |
Vijaykumar et al. | A case for richer cross-layer abstractions: Bridging the semantic gap with expressive memory | |
CN1961300A (zh) | 使用集成dma引擎进行高性能易失性磁盘驱动器存储器访问的装置和方法 | |
US20040117594A1 (en) | Memory management method | |
CN105103144A (zh) | 用于存储器的自适应控制的设备及方法 | |
CN1084896C (zh) | 清空高速缓冲存储器内容的装置 | |
CN1991808A (zh) | 用于访客访问存储器映射的设备的方法和装置 | |
CN1556474A (zh) | 软件的在线升级方法及装置 | |
CN102985910A (zh) | 对无用存储单元收集的gpu支持 | |
CN1690982A (zh) | 用于交错存储器的系统和方法 | |
CN1222951C (zh) | 闪速存储器的实时处理方法 | |
CN1249463A (zh) | 配有闪烁存储器的微型计算机及其程序存入方法 | |
CN1430142A (zh) | 在通信系统中利用单片机实现软件下载的装置及其方法 | |
CN1912833A (zh) | 一种嵌入式操作系统驱动程序动态升级方法 | |
CN101620573B (zh) | X86体系结构内存管理单元虚拟化方法 | |
CN101064192A (zh) | 一种访问与非型闪存的系统及方法 | |
US8065497B2 (en) | Data management method, and storage apparatus and controller thereof | |
US20060149940A1 (en) | Implementation to save and restore processor registers on a context switch | |
CN113487006B (zh) | 一种可移动人工智能辅助计算设备 | |
CN1506843A (zh) | 能够使用虚拟存储器处理模式的数据处理系统 | |
US7251671B2 (en) | Method and system for garbage collection wherein resetting the mark/allocation bit, and switching the mark/allocation bit to the mark bit to perform marking and scanning of objects using the identified object as a root object and providing mark/allocation bit information being displayed at the client | |
JP4740553B2 (ja) | データ・アクセス要求再マッピング・システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20071128 Termination date: 20150819 |
|
EXPY | Termination of patent right or utility model |