CN103235534B - 一种otp单片机架构及实现多次编程的方法 - Google Patents
一种otp单片机架构及实现多次编程的方法 Download PDFInfo
- Publication number
- CN103235534B CN103235534B CN201310107232.2A CN201310107232A CN103235534B CN 103235534 B CN103235534 B CN 103235534B CN 201310107232 A CN201310107232 A CN 201310107232A CN 103235534 B CN103235534 B CN 103235534B
- Authority
- CN
- China
- Prior art keywords
- address
- offset address
- chip microcomputer
- offset
- instruction
- 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.)
- Active
Links
Landscapes
- Microcomputers (AREA)
Abstract
本发明公开了一种OTP单片机架构及实现多次编程方法,在该OTP单片机架构中,程序存储器内开辟了一块偏移地址存储区。每次对单片机进行编程后,都要把此次编程的结束地址加一写入到这个存储区中。单片机复位时,偏移地址读取模块从这一区域读取数据。该单片机架构及实现多次编程方法使得单片机的程序存储器可以分次使用,而不影响单片机的正常工作,且能实现多次编程,提高单片机的使用效率。
Description
技术领域
本发明涉及单片机领域,准确地说是OTP单片机的内部架构和多次编程的实现方法。
背景技术
OTP型单片机,由于性能稳定,价格便宜,广泛应用于各种电子产品中。传统的单片机架构中,如图1所示,处理器内核通过指令地址进行程序存储,每次编程,单片机工作过程如下。
1、系统上电。
2、指令地址复位为0,处理器内核开始工作。
3、处理器内核执行0地址所存储的指令,并产生下一个指令地址。
4、处理器执行上一个周期所产生的指令地址中存储的指令,并继续产生下一个指令地址。
5、重复4步骤。
现有技术中单片机其程序存储器的地址即指令地址,由处理器内核直接产生。因此这类单片机只能够进行一次编程,即使用户的程序代码字节数很少,只占用了OTP存储器中很小一部分,其余部分也无法再使用,造成浪费。
发明内容
为解决上述问题,本发明的目的在于,设计一种OTP单片机架构及实现多次编程方法,该单片机架构及实现多次编程方法使得单片机的程序存储器可以分次使用,而不影响单片机的正常工作,且能实现多次编程,提高单片机的使用效率。
本发明的另一个目的在于提供一种OTP单片机架构及实现多次编程方法,该单片机架构及实现多次编程方法结构简单,易于实现,能够提高单片机的工作效率,降低成本。
为实现上述目的,本发明的技术方案如下。
一种OTP单片机架构,其具有处理器内核、指令寄存器和程序存储器,其特征在于所述程序存储器设置有偏移地址存储区,所述单片机架构还包括有偏移地址寄存器和偏移地址读取模块,所述偏移地址寄存器连接于处理器内核,所述偏移地址读取模块连接于所述偏移地址存储区,且所述偏移地址读取模块又连接于偏移地址寄存器。
本发明公开的单片机架构中。在程序存储器内开辟了一块偏移地址存储区。每次对单片机进行编程后,都要把此次编程的结束地址加一写入到这个存储区中,单片机复位时,从这一存储区读取数据。采用本发明的单片机架构,单片机的程序存储器只要还没有使用完,剩余空间足够存储新的程序代码,就可以进行下一次编程,而不必像现有技术那样重新进行编程,能够大大节约程序存储器的资源,提高单片机的使用效率。
所述单片机架构,还包括一加法器,加法器设置于处理器内核和偏移地址寄存器之间,对上一个周期所产生的指令地址与偏移地址存储区所存储的偏移地址进行运算,得到的指令地址输入到程序存储器,执行相应的指令。
一种OTP单片机实现多次编程的方法,其特征在于系统上电启动后,指令地址复位,程序存储器的地址指针的指令不从0地址开始执行,而是从预先加载的偏移地址开始执行。
所述的预先加载的偏移地址,为上一次对单片机进行编程时的结束地址加一,如果是第一次对单片机进行编程,则偏移地址为0。
上述一次对单片机进行编程时的结束地址存储于程序存储器中的偏移地址存储区,偏移地址读取模块从偏移地址存储区中读取偏移地址,并发处理器内核开始工作信号。
进一步,处理器内核正常工作过程中,所述程序存储器的地址指针,不是直接由处理器内核产生,而是由处理器内核产生的指令地址与预先加载的偏移地址进行运算后产生。
具体地说,所述OTP单片机的详细工作过程如下。
101、系统上电;
102、指令地址复位为0,处理器内核处于复位状态,等待偏移地址读取模块的控制信号;
103、偏移地址读取模块从偏移地址存储区中读取偏移地址,并发处理器内核开始工作信号,同时将偏移地址加载到偏移地址寄存器;
104、将0地址与偏移地址寄存器的偏移地址进行运算产生的程序存储器地址,处理器内核执行该程序存储器地址的指令,并产生下一个指令地址;
105、上一个周期所产生的指令地址与偏移地址寄存器运算产生的新的程序存储器地址,处理器内核执行新的程序存储器地址的指令,并产生下一个指令地址;
106、重复步骤105。
所述103步骤中,如果偏移地址读取模块只读取到一条数据记录,说明单片机只进行过一次编程,无需加载偏移地址,或者说,偏移地址为0。当此处数据记录超过一条时,则读取最后二条偏移地址,并加载到偏移地址寄存器中。
编程结束后,编程的结束地址加一写入到偏移地址存储区中。
采用本发明的结构后,单片机的存储器只要还没有使用完,而且剩余空间足够存储新的程序代码,就可以进行下一次编程。能够把OTP型MCU转为MTP型MCU,使得单片机的程序存储器可以分次使用,而不影响单片机的正常工作,且能实现多次编程,大大提高单片机的使用效率。
且,本发明结构简单,易于实现,能够提高单片机的工作效率,降低成本。
附图说明
图1是现有技术的架构示意图。
图2是本发明所实施单片机的架构示意图。
图3是本发明的软件控制流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参照图2所示,本发明所实现的一种OTP单片机架构,其具有处理器内核、指令寄存器和程序存储器,其特征在于所述程序存储器设置有偏移地址存储区,所述单片机架构还包括有偏移地址寄存器和偏移地址读取模块,所述偏移地址寄存器连接于处理器内核,所述偏移地址读取模块连接于所述偏移地址存储区,且所述偏移地址读取模块又连接于偏移地址寄存器。
本发明所实施的OTP单片机架构中,在程序存储器内开辟了一块偏移地址存储区。每次对单片机进行编程后,都要把此次编程的结束地址加一写入到这个存储区中,单片机复位时,从这一存储区读取数据。
请参照图3所示,本发明通过所述OTP单片机实现多次编程的控制流程为:
101、系统上电。
102、指令地址复位为0,处理器内核处于复位状态,等待偏移地址读取模块的控制信号。
103、偏移地址读取模块从偏移地址存储区中读取偏移地址,并发处理器内核开始工作信号。
104、处理器内核执行0地址与偏移地址寄存器值运算产生的地址所存储的指令,并产生下一个指令地址。
105、处理器执行上一个周期所产生的指令地址与偏移地址寄存器运算产生的地址所存储的指令,并产生下一个指令地址。
偏移地址寄存器中的偏移地址是103步骤加载后就不变了,每次系统关机后,将最后的结束地址存储于偏移地址存储区,以便于下次开机时读取。
106、重复步骤105。
编程结束后,编程的结束地址加一写入到偏移地址存储区中。
在103步骤中,如果偏移地址读取模块只读取到一条数据记录,说明单片机只进行过一次编程,无需加载偏移地址,或者说,偏移地址为0。当此处数据记录超过一条时,则读取最后二条偏移地址,并加载到偏移地址寄存器中。
如果只有一条数据记录,说明本单片机只进行过一次编程,无需加载偏移地址,或者说,偏移地址为0。当此处数据记录超过一条时,则读取最后二条偏移地址,并加载到偏移地址寄存器中。加载完成后,偏移地址读取模块发出信号,让处理器内核开始工作(在此之前,处理器内核处于复位状态)。处理器内核正常工作过程中,程序存储器的地址,由处理器内核产生的指令地址与偏移地址寄存器经过运算后得到。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种OTP单片机架构,其具有处理器内核、指令寄存器和程序存储器,其特征在于所述程序存储器设置有偏移地址存储区,所述单片机架构还包括有偏移地址寄存器和偏移地址读取模块,所述偏移地址寄存器连接于处理器内核,所述偏移地址读取模块连接于所述偏移地址存储区,且所述偏移地址读取模块又连接于偏移地址寄存器;所述单片机架构,还包括一加法器,加法器设置于处理器内核和偏移地址寄存器之间,对上一个周期所产生的指令地址与偏移地址存储区所存储的偏移地址进行运算,得到的指令地址输入到程序存储器,执行相应的指令。
2.一种OTP单片机实现多次编程的方法,其特征在于系统上电启动后,指令地址复位,程序存储器的地址指针的指令不从0地址开始执行,而是从预先加载的偏移地址开始执行;所述的预先加载的偏移地址,为上一次对单片机进行编程时的结束地址加一,如果是第一次对单片机进行编程,则偏移地址为0;上述一次对单片机进行编程时的结束地址存储于程序存储器中的偏移地址存储区,偏移地址读取模块从偏移地址存储区中读取偏移地址,并发处理器内核开始工作信号。
3.如权利要求2所述的OTP单片机实现多次编程的方法,其特征在于进一步,处理器内核正常工作过程中,所述程序存储器的地址指针,是由处理器内核产生的指令地址与预先加载的偏移地址进行运算后产生。
4.如权利要求2所述的OTP单片机实现多次编程的方法,其特征在于具体地说,所述OTP单片机的详细工作过程为:
101、系统上电;
102、指令地址复位为0,处理器内核处于复位状态,等待偏移地址读取模块的控制信号;
103、偏移地址读取模块从偏移地址存储区中读取偏移地址,并发处理器内核开始工作信号,同时将偏移地址加载到偏移地址寄存器;
104、将0地址与偏移地址寄存器的偏移地址进行运算产生的程序存储器地址,处理器内核执行该程序存储器地址的指令,并产生下一个指令地址;
105、上一个周期所产生的指令地址与偏移地址寄存器运算产生的新的程序存储器地址,处理器内核执行新的程序存储器地址的指令,并产生下一个指令地址;
106、重复步骤105。
5.如权利要求4所述的OTP单片机实现多次编程的方法,其特征在于所述103步骤中,如果偏移地址读取模块只读取到一条数据记录,说明单片机只进行过一次编程,无需加载偏移地址或偏移地址为0;当此处数据记录超过一条时,则读取最后第二条偏移地址,并加载到偏移地址寄存器中。
6.如权利要求5所述的OTP单片机实现多次编程的方法,其特征在于编程结束后,编程的结束地址加一写入到偏移地址存储区中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310107232.2A CN103235534B (zh) | 2013-03-29 | 2013-03-29 | 一种otp单片机架构及实现多次编程的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310107232.2A CN103235534B (zh) | 2013-03-29 | 2013-03-29 | 一种otp单片机架构及实现多次编程的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103235534A CN103235534A (zh) | 2013-08-07 |
CN103235534B true CN103235534B (zh) | 2016-07-06 |
Family
ID=48883581
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310107232.2A Active CN103235534B (zh) | 2013-03-29 | 2013-03-29 | 一种otp单片机架构及实现多次编程的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103235534B (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59189407A (ja) * | 1983-04-13 | 1984-10-27 | Hitachi Ltd | シ−ケンス制御装置 |
CN1570869A (zh) * | 2004-04-29 | 2005-01-26 | 中国科学院大气物理研究所 | 一种提高otp型单片机使用效率的技术 |
CN201508547U (zh) * | 2009-05-18 | 2010-06-16 | 蚌埠依爱消防电子有限责任公司 | 手持式usb编程器 |
CN102364430B (zh) * | 2010-09-17 | 2013-07-31 | 杭州士兰微电子股份有限公司 | 支持一次性可编程存储器多次编程的微控制器和编程方法 |
-
2013
- 2013-03-29 CN CN201310107232.2A patent/CN103235534B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN103235534A (zh) | 2013-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7340566B2 (en) | System and method for initializing a memory device from block oriented NAND flash | |
CN102236621A (zh) | 计算机接口信息配置系统及方法 | |
CN105930186B (zh) | 多cpu的软件加载方法及基于多cpu的软件加载装置 | |
CN103207797A (zh) | 基于通用可扩展固件接口固件系统的胶囊式定制更新方法 | |
CN113835945B (zh) | 芯片的测试方法、装置、设备及系统 | |
US9164936B2 (en) | System and method for regulating direct memory access descriptor among multiple execution paths by using a link to define order of executions | |
CN106095416B (zh) | 一种在应用程序中的跳转处理方法、装置及智能终端 | |
CN103677885A (zh) | 一种arm flash简易程序烧写的方法 | |
CN109901890B (zh) | 一种控制器加载多核固件的方法、装置、计算机设备及存储介质 | |
CN108108191A (zh) | 一种soc芯片及soc芯片cpu指令集的配置方法 | |
EP3077911A1 (en) | Methods and systems for autonomous memory | |
CN104156234A (zh) | 启动多核处理器、bootloader大小端模式自适应的方法及装置 | |
US9251107B2 (en) | Immediate direct memory access descriptor-based write operation | |
CN104090519A (zh) | 一种与plc扩展模块通信的系统及实现方法 | |
CN106528217B (zh) | 一种现场可编程门阵列程序加载系统和方法 | |
US9223697B2 (en) | Computer reprogramming method, data storage medium and motor vehicle computer | |
US20100153622A1 (en) | Data Access Controller and Data Accessing Method | |
CN109426511B (zh) | 软核更新方法和系统 | |
CN107315565B (zh) | 一种用于生成服从一定分布的随机向量装置和方法 | |
WO2024113680A1 (zh) | 固件交互方法、装置、服务器和存储介质 | |
CN109324838B (zh) | 单片机程序的执行方法、执行装置及终端 | |
CN102542525B (zh) | 一种信息处理设备以及信息处理方法 | |
CN103235534B (zh) | 一种otp单片机架构及实现多次编程的方法 | |
CN102750167B (zh) | 应用程序启动方法、装置和计算机系统 | |
CN111399926A (zh) | 下载启动程序的方法和装置 |
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 | ||
CP03 | Change of name, title or address |
Address after: 518000, A building, block 9, garden city digital garden, 1079 Nanhai Road, Guangdong, Shenzhen, Nanshan District Patentee after: Chipsea Technology (Shenzhen) Co., Ltd. Address before: 518067 Nanshan District, Shenzhen, Nanhai Avenue, garden city, No. 1079, building A, block, floor 9 Patentee before: Xinhai Science and Technology Co., Ltd., Shenzhen City |
|
CP03 | Change of name, title or address |