具有写使能位的微控制器的制作方法

文档序号:6448381阅读:278来源:国知局
专利名称:具有写使能位的微控制器的制作方法
技术领域
本发明的背景在美国专利5,808,544中描述了一种方法,仅仅当中央处理单元(CPU)正在执行内部只读存储器(ROM)中的指令时,微控制器中的EEPROM是可编程的。微控制器100包括安全逻辑116,在与ROM 110耦合的导线118上输出ROM的控制信号,在与EEPROM 109耦合的导线120上输出EEPROM的控制信号。当CPU正在执行内部ROM 110的外部的码,试图对EEPROM109编程时,安全逻辑116不能寻址EEPROM 109。在执行内部ROM 110以外的码的任何时候,都不能对ROM 110寻址。另外,ROM安全逻辑被包含到安全逻辑116中并且包括一个当前地址比较器202,它把程序计数器204中的当前地址与安全地址范围寄存器中的第一和第二个地址进行比较。如果程序计数器地址大于第一个地址并小于第二个地址,当前地址被定在安全地址范围内。如果当前地址在安全地址范围内,当前地址比较器输出一个高电平逻辑信号,否则输出低逻辑电平。
另一种方法集中在避免由于电源供电电压不希望有的降落而产生的重新编程。一个这样的方法在美国专利5,349,669中描述。这里,当主电源供电电压被切换到后备电源供电电压上时,电路监控。当切换发生时,释放鉴别电路的数据保护装置(set)检测电源供电的故障,并允许(enable)数据保护控制信号来保护数据。另一个例子在美国专利5,199,032中描述。微控制器包含监视供电电压的低电压编程禁止(LVPI)电路。如果供电电压下降到低于预定电压等级,LVPI电路禁止使用EEPROM编程寄存器,防止对EEPROM编程或擦除EEPROM。
另一个系统,例如由本发明的受让人制作的PIC17C42,包含一个单独的测试模式选择控制的管脚TEST。另一个管脚MCLR/Vpp用作主清除复位输入,并且在编程模式期间接受编程电压。在这种器件中,存储器的编程发生在一个特殊的模式期间,并且不可能发生在正常的用户使用模式期间,并且将一个单独的管脚分配给测试模式选择信号。
本发明的概述本发明的一个目的是提供一种在用户模式中可编程的微控制器。
本发明的另一个目的是通过复用输入管脚来允许模式选择的内部检测,并免除给模式选择控制分配一个单独管脚的需要,从而在微控制器中增加功能。
本发明的再一个目的是在管脚兼容的器件族中,比如微控制器中增加功能。
这些和其它目的是通过使用带有程序存储器写使能寄存器、电压检测器电路和解码器电路的程序存储器的微控制器的电路来实现的,其中所述解码器电路连接到所述寄存器和所述检测器电路。复位电路还连接到所述寄存器和检测器电路。复位电路输出复位寄存器的信号。复位电路包含一个仅当复位微控制器时才复位寄存器的装置。所述微控制器还有一个连接到所述复位电路和检测器电路的输入管脚。
解码器电路还可包含一个连接的第一输入,用来接收检测器电路的输出,还可包含一个连接的第二输入,用来接收寄存器的输出。解码器电路还包含用于基于所述检测器电路和寄存器的输出而输出测试模式使能信号和程序存储器使能信号的装置。
在一个实施例中,微控制器可包含数据存储器,寄存器可包含数据存储器中的存储器位置(location)。寄存器可用单独的寄存器或融丝来实现。
上面的目的还可以通过一种在微控制器中对存储器编程的方法来实现。这种方法包括下列步骤检测编程电平电压;确定是否允许对存储器编程;在检测到所述电压并确定存储器被允许编程之后对存储器编程。这种方法还可包括步骤当检测到所述电压并且确定不允许对存储器编程时进入测试模式。本发明还包括步骤进入测试模式,允许对存储器编程,并在测试模式中对存储器编程。
对于是否进入检测模式的确定是由微控制器在内部实现的。内部确定是否进入测试模式可以用编程电平电压来完成。
微控制器可以运行在正常的用户模式中并在正常的用户模式中对存储器编程。
本方法还可以包括在微控制器的一个输入管脚上检测编程电平电压,并在这个管脚上与至少一个其它信号比如复位信号复用。
上述的目的还可以通过一种在微控制器中增加功能的方法来实现。这种方法包括下列步骤鉴别执行相应的第一和第二预定功能所需的第一和第二输入信号。第一输入信号用于执行第一功能并用于在内部确定是否执行第二功能。第二输入信号作为微控制器的一个输入被除去。所述方法还包括下列步骤鉴别作为对微控制器中的存储器进行编程的编程电平电压的第一信号;鉴别作为测试模式信号的第二信号;以及,使用编程电平电压来确定是否进入测试模式。测试模式检测信号作为输入信号被删除。
内部使用第一个信号包括检测编程电平电压;确定是否允许在微控制器中对程序存储器进行编程;以及,当检测到编程电平电压并且确定对存储器编程是允许的时候进入编程模式。在微控制器的正常用户模式期间以及在进入测试模式之后可进入编程模式。
附图的简要描述通过结合附图参见下面的详细描述,对本发明的更全面的欣赏以及本发明的许多附加优点将更容易得到,同时这些优点也会变得更容易理解,附图中;

图1是根据本发明的微控制器的管脚图;图2是根据本发明的微控制器的简化方框图;图3是根据本发明在微控制器中的一个电路图;图4是根据本发明在微控制器中的一个数据存储器图;和图5是根据本发明说明微控制器运行的时序图。
优选实施例的描述现在参考附图,特别是图1,该图示出了根据本发明的微控制器。图1显示的是本发明应用于微控制器的管脚图。该微控制器用作本发明能够应用到的器件的一个例子,但不能被解释为用于限制本发明。在图1中,标号10表示DIP封装的微控制器的管脚图。该微控制器还可以以诸如塑料镀铅芯片载体(plastic leaded chip carrier)或塑料表面安装封装等其他结构来封装。管脚表示符RA0-RA5相应于双向I/O端口A。相似的表示符用来表示双向I/O端口B、C、D和E。信息传输到双向I/O端口的管脚并从双向I/O端口的管脚输出。封装10还包括电源供电管脚(VDD和VSS)、振荡器输入和输出(OSC1和OSC2)、以及主清除/编程电压输入管脚MCLP/VPP。
电压开关11也显示在图1中。通过电压开关11,5V或12V电源馈送到管脚MCLP/VPP。可以用众所周知的电路来实现电压开关11。开关控制线12控制5V和12V电源之间的切换,并且图中还示出其连接到I/O端口A的RA4管脚。用另一个合适的管脚来进行切换控制也是可以的。电压切换在CPU的控制下运行。
5V电源还被馈送到VDD管脚并且将地(ground)加到VSS管脚。振荡器13连接在OSC1和OSC2管脚之间,用来提供时钟输入。振荡器13可以是晶体谐振器。
微控制器10的一些相关部件的更详细方框图在图2显示。一些部件从这个图中省略仅仅是为了简化起见。由虚线显示的CPU 45包括在下面详细描述的部件33-36和38-43,用于控制微控制器的运行。图2还包括端口A20、端口B21、端口C22、端口D23和端口E24,每个端口都被连接到数据总线25上。在这个例子中的端口A20是6位宽的数据端口并能被微控制器的外围功能部件复用。端口B21和端口C22是8位宽的双向端口并能被微控制器的外围功能部件复用。端口D23也是8位双向端口并也能用做系统总线地址/数据端口。端口E24是一个3位双向端口并且它的管脚也被用做诸如地址锁存器使能等功能,输出使能或者写信号。
图2的电路还包括算术逻辑单元26和在方框27中的外围设备。方框28包括大量的电路部件,比如启动(power-up)定时器、振荡器启动(start-up)定时器、上电(power-on)复位,看门狗定时器,降压(brown-out)复位和测试模式选择。MCLP、VDD和VSS管脚连接到方框28。这些部件的功能相信能被很好地理解,因而在这里省略了对它们的描述。OSC1和OSC2管脚的输入通过缓冲器32输入到同样连接到方框28的定时产生电路31。定时产生电路31还连接到4X PLL电路30,并且电路30被连接到方框28。精确带隙(bandgap)基准29连接到方框28。使用指令解码和控制电路33来对指令解码。
微控制器的存储器由两个元件组成。第一元件是编程存储器37,它大致含有2M字节,另一元件是地址和数据锁存器。程序存储器既可以是用ROM还可以是用EEPROM来实现并保存由微控制器执行的软件程序。地址从程序计数器40和表指针39通过多路转换器38输入到存储器37。N级堆栈41连接到程序计数器40上。微控制器还包括数据RAM 44,用来存储微控制器使用的数据。地址通过地址多路转换器43馈送到数据RAM中。地址的选择由寄存器选择逻辑42来执行。图2中还显示其它在系统中使用的锁存器和寄存器,比如表锁存器36、ROM锁存器35和IR寄存器34。
连接到MCLR管脚的电路28中更详细的电路显示在图3中。在图3中MCLR信号和编程电压电平通过管脚50来施加。箭头51显示为使编程信息进入到程序存储器,编程电压到适当的电路的连接。连接到管脚50的高电压检测电路52检测编程电压电平。这个功能可通过多种方式来实现。例如,检测电路52能寻找绝对电压电平(即大于,比如,12伏)或能查到两个电压之间的电压差。在这种情况下,电压与供电电压相比较,如果其差异大于某一个确定的量,则输入电压可以作为编程电压被检测到。电路典型的组成是模拟和数字元件的混合,比如简单的比较器和电压基准,并且包括三极管阈值和/或电阻分压器。
复位逻辑53还连接到管脚50。当一个合适的信号加到管脚50时复位逻辑执行微控制器的复位。例如,在正常的操作期间,电源电压能被加到管脚50。如果管脚50上的电压降到地电平,复位逻辑能检测到这个信号,作为合适的复位信号,并执行复位。
连接到高电压检测电路52输出的是解码逻辑54。解码逻辑能用基本的数字电路来实现。这个电路产生两个输出Test Enable(测试使能)和Longwrite Enable(长写使能)。这些信号是基于从高电压检测电路52和长写使能寄存器55的输入来产生的。激发Test Enable信号能使微控制器置于测试模式,而激发Longwrite Enable信号能允许对程序存储器37进行编程。当电路52检测到高电压电平并且长写使能寄存器没有被激发时,解码逻辑54激发Test Enable信号。一旦测试模式被使能,如果长写位(Longwrite bit,LWRT)被激发,则解码器电路54将维持测试使能信号有效,并且长写使能信号也变为有效。器件允许在测试模式中对程序存储器37编程。在这种情况下,LWRT位的激发早于在管脚50上出现高电压,Longwrite Enable信号变为有效,但是测试使能无效。因此,当微控制器处于正常用户模式中,即当执行程序存储器中的指令时可对存储器37进行编程。在这两种情况下,如果LWRT位或者高压都不出现,Longwrite Enable将不被激发。
正常的用户模式是这样的情况代码的执行严格基于从用户的程序存储器(本例中为存储器37)取出的指令。对于仅有内部存储器的微控制器的情况来说,这个模式将限制为存储器37。当微控制器有外部代码执行能力时,外部存储器总线也能出现。
如果测试模式已被初始化,激发的LWRT位不允许在测试模式中编程,则构造解码逻辑54是可能的。通过首先激发LWRT位并顺序用电路52检测高电压来进入编程模式。
长写使能寄存器55包含LWRT位,它由微控制器中的用户代码置位,以指示用户想要对程序存储器中的非易失存储器进行编程。一旦LWRT位被置位,管脚50上上升的电压将使微控制器进入允许用户对程序存储器进行编程的模式,同时微控制器运行于正常执行模式。包含LWRT位的寄存器可以用几种方式实现。一个单独的寄存器可以包含在微控制器中并由CPU执行的用户模式控制。微控制器的现存代码被用于指示信息进入长字寄存器55或从长字寄存器55读出信息。寄存器也可以是用户数据存储器的部分,在这个例子中为现有的SRAM单元(art SRAM cell),用户可以自由地读和写这个单元。寄存器进一步可以用融丝来实现。
在数据RAM 44中实现LWRT寄存器的例子显示在图4中。数据RAM 44包含数据锁存器46、地址锁存器48和数据区49。数据区49中的47部分被指定为特殊功能寄存器(special function register,SFR)。LWRT寄存器作为用户数据RAM区49的一部分驻留在SFR空间47中。SFR用于运行特殊功能,比如控制I/O端口,和作为微控制器的一部分的任何外设。看门狗定时器、降压复位等配置也可以由SFR来控制。
现在来描述对LWRT位的写入。程序存储器37包括一系列特殊于微控制器指令集的指令。这些指令由CPU45从程序存储器37中取出并由指令寄存器34和指令解码解码器33来解码/解译。特定顺序的指令包括在使能LWRT寄存器的同时,指示将正确值呈现到数据总线25上,所述LWRT寄存器在图3中指示为56。在这个例子中,LWRT寄存器驻留在存储器44中,寄存器选择逻辑42在SFR空间47中使能LWRT寄存器,并且,基于寄存器选择逻辑42,用于使能包含LWRT寄存器的SFR的地址将出现在存储器44中。一旦LWRT寄存器被使能,从数据总线25来的值被传递到寄存器中。
复位逻辑53连接到长写使能寄存器55,一旦LWRT位被置位,它仅能通过物理的芯片复位来清除。这就能保证用户在编程电压电平出现在管脚50上时无意中清除该LWRT位,因为清除该LWRT会在执行模式中导致不应有的改变。
说明器件运行的时序图在图5中说明。芯片上电后,MCLR信号从0V上升到电源供电电压(本例中为5V),允许微控制器进入正常的执行模式。起初,当MCLR信号为0V时,微控制器由复位逻辑53复位,如上所描述的。在运行中的某个时刻激活长写使能寄存器。这是通过将LWRT信号上升到高逻辑电平来表示的。这个信号也表示该值被写到寄存器或数据存储器的情况,并且被认为是程序存储器37的编程使能。
在这个时刻,长写使能寄存器55指示解码逻辑54 LWRT位已经激发。在以后的某时刻在微控制器中程序执行时,开关线被激发来为MCLR管脚提供编程电平电压。如上讨论,开关线的激发可以发生在LWRT位被置位之前,或在测试模式期间。正如图5中所示,之后MCLR信号上升到12V。这将导致高电压检测电路52指示解码逻辑54出现编程电平电压。因此Longwrite Enable信号被激发,在这个例子中被置位为高电平。现在程序存储器37的编程是可能的。
尽管在图5中没有显示,紧跟着Longwrite Enable信号的激发,MCLR信号返回到0V来复位LWRT位。于是,LWRT和长写使能电压都将返回到0V。
在本发明中,要求一个信号即编程电压执行一个预先功能,在本例中是程序存储器的编程。该信号还能被用于指示微控制器进入两种测试使能模式之一。在过去这个指令用单独的测试模式选择信号来执行。长写使能模式由电路来检测,这个电路连接到信号施加的管脚,以指示芯片进入特殊模式,或者执行单独的功能。因此,本发明为允许微控制器执行所有的预定功能而减少必需管脚的数目。
在人们开发管脚兼容器件族的场合,管脚数目的减少有特别的优势。一旦用户设计了微控制器的范围(footprint),释放(freeing up)允许附加功能的附加管脚,当遵循由用户维持管脚范围兼容性所加的限制时,提供更加功能强大的微控制器的能力。向上兼容是一个重要的优点,因为当加入芯片族最新的版本时,或当他想要或希望附加的功能时,用户不必承担昂贵和费时的重新设计活动。
更进一步,通过使用修改软件/固件而不是硬件的特性升级是优选的。本发明允许用户在用户模式中修改软件/固件,这时并不必须停止正常模式并进入单独的编程模式。通过释放管脚,升级能力或修改软件的能力提高了,微控制器的功能提高或增加了,并且变得更加灵活。
显而易见,本发明的大量的修改和变化在以上说明的指导下是可能的。例如,尽管使用主清除/编程电压输入管脚作为例子描述了本发明,但本发明并不限于此。本发明能应用于下列场合,即加到微控制器或其它器件的各种信号可以多路复用到一个管脚,并且利用内部电路来检测,以允许执行的合适的模式/功能,同时消除了分配单独管脚的需要。本发明也不局限于任意类型或特殊的微控制器,但对管脚兼容的器件族有特别的优点。因此我们可以这样理解,本发明可以在附加的权利要求书的范围内实施,而不是将本发明限定为此处特别描述的内容。
权利要求
1.一种用在具有程序存储器的微控制器中的电路,包括程序存储器写使能寄存器;电压检测器电路;和连接到所述寄存器和所述检测器电路的解码器电路。
2.如权利要求1所述的电路,包括连接到所述寄存器和所述检测器电路的复位电路。
3.如权利要求2所述的电路,其中,所述复位电路输出一个复位所述寄存器的信号。
4.如权利要求3所述的电路,其中所述复位电路包含仅当复位所述微控制器时才复位所述寄存器的装置。
5.如权利要求2所述的电路,包括所述微控制器的一个输入管脚,该管脚连接到所述复位电路和所述检测器电路。
6.如权利要求1所述的电路,其中所述的解码器电路包括连接的第一输入,用于接收所述检测器电路的输出;连接的第二输入,用于接收所述寄存器的输出;用于基于所述检测器电路和所述寄存器的所述各个输出而输出测试模式使能信号和程序存储器使能信号的装置。
7.如权利要求1所述的电路,其中,所述微控制器包括数据存储器;和所述寄存器包括在所述数据存储器中的存储器位置。
8.一种对微控制器的存储器进行编程的方法,包括检测编程电平电压;确定所述存储器的编程是否被允许;和在检测所述电压并确定所述存储器已被允许编程之后,对所述存储器进行编程。
9.如权利要求8所述的方法,包括当所述电压被检测到并且所述存储器不被允许编程时,进入测试模式。
10.如权利要求9所述的方法,包括进入所述测试模式;允许所述存储器编程;和在所述测试模式中对所述存储器编程。
11.如权利要求8所述的方法,包括内部确定是否进入测试模式。
12.如权利要求11所述的方法,包括内部确定是否使用所述编程电平电压进入所述测试模式。
13.如权利要求8所述的方法,包括在正常的用户模式中运行所述微控制器;和在所述正常的用户模式期间对所述存储器进行编程。
14.如权利要求8所述的方法,包括在所述微控制器的输入管脚上检测编程电平电压信号;和在所述管脚上复用至少一个其它信号。
15.如权利要求14所述的方法,包括在所述管脚上复用一个复位信号。
16.一种增加微控制器中的功能的方法,包括鉴别执行相应的第一和第二预定功能所需的第一和第二输入信号;使用所述第一信号来执行所述第一功能;内部使用第一信号来检测是否执行所述第二功能;和删除作为所述微控制器的输入的所述第二输入信号。
17.如权利要求16所述的方法,包括鉴别所述第一信号,该信号用作用于对所述微控制器中的存储器进行编程的编程电平电压;鉴别作为测试模式选择信号的所述第二信号;检测是否使用所述编程电平电压来进入所述测试模式;和删除作为输入的所述测试模式选择信号。
18.如权利要求16所述的方法,其中内部使用所述第一信号,包括检测所述编程电平电压;确定是否允许在所述微控制器中对程序存储器编程;当检测所述编程电平电压并确定不允许对所述存储器编程时,进入测试模式;和当检测所述编程电平电压并确定允许对所述存储器编程时,进入编程模式。
19.如权利要求18所述的方法,包括进入所述编程模式,同时在正常的用户模式中运行所述微控制器。
20.如权利要求18所述的方法,包括在进入所述测试模式后进入所述编程模式。
全文摘要
一种具有在用户模式中可编程的存储器的微控制器。该微控制器包含检测编程电平电压是否已被激发的电路。含有用于允许/不允许对存储器编程的使能位的长写使能寄存器也包含在其中。当寄存器包含指示允许编程的使能位并且检测到编程电平电压时,微控制器允许对程序存储器编程。编程可以在用户模式中进行。编程电平电压信号还用于检测是否进入测试模式。也可以在测试模式中对程序存储器编程。本发明还提供了一种操作微控制器以控制程序存储器的编程的方法。本发明的微控制器在不需要测试模式选择输入信号的情况下通过检测是否进入测试模式来允许增加功能。
文档编号G06F15/76GK1300432SQ00800556
公开日2001年6月20日 申请日期2000年3月9日 优先权日1999年3月9日
发明者艾戈·沃杰沃达, 约瑟夫·W·特里斯 申请人:密克罗奇普技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1