发明内容
本发明提供一个在后台模式中用以透明操作的数据处理器(10),其中后台模式是一种诊断模式,数据处理器响应于中断信号而进入诊断模式,其特征在于:
一个中央处理单元,用来执行指令和访问存储器;
一个外围设备电路,它连到所说的中央处理单元并具有很多状态,当数据处理器处于正常操作模式时,所说外围设备电路为响应所述中央处理单元对所述外围设备电路执行预定的访问而作出状态转换;及
一个系统集成模块连到所说外围设备电路,它在诊断模式下工作以控制所说外围设备电路,防止当在诊断模式下访问所述外围设备电路时其状态在第一状态,即外围设备电路存在于正常操作模式中的状态,与第二状态,即外围设备电路具有用于接收控制信号的控制输入的状态,之间转换,并且系统集成模块在诊断模式期间激活控制信号,以防止当数据处理器处于诊断模式时外围设备电路在第一状态与第二状态间转换,
从而,数据处理器在诊断模式期间保留所说外围设备电路的状态。
本发明还提供在后台模式下透明地操作数据处理器的一种方法,其中后台模式是一种诊断模式,其特征在于:
存储一中断清除标志使能位,所说的中断清除标志使能位表示是否外围设备电路的状态在诊断模式中会受影响,其中当所述外围设备电路处于正常工作模式时,所述外围设备电路的所述状态发生改变;
检测断点条件,所说的断点条件引起数据处理器离开操作模式并进入诊断模式;
如果所说中断清除标志使能位是在第一逻辑状态,为响应所说检测断点条件的步骤使控制信号有效,如果所说中断清除标志使能位是在第二逻辑状态,为响应所说检测断点条件的步骤,保持所说控制信号无效;及
通过提供所说控制信号到外围设备电路的输入端,控制所说外围设备电路以防止其在诊断模式期间发生状态转换,其中当所述控制信号有效时,在诊断模式中不能影响所述外围设备电路的所述状态,当所述控制信号无效时,可能在诊断模式中影响所述外围设备电路的所述状态。
本发明的这个问题,其特点和优点从结合附图的下述详细说明中将能更清楚的理解。
具体实施方式
图1说明了按照本发明的微控制器10形式的数据处理器。微控制器10是一个集成电路微控制器,通常包括一个中央处理单元(CPU)12,一系统集成模块14,一中断模块15,一串行部件电路16,随机存取存储器(RAM)电路18,一只读存储器(ROM)电路20,一替代存储器(Alternate memory)电路22(例如,一电可擦除可编程只读存储器EEPROM),一个端口逻辑电路24,一个外部总线接口电路26,定时器部件电路28及直接存储器存取(DMA)电路30。CPU12,系统集成模块14,中断模块15,串行部件16,RAM18,ROM20,替代存储器22,端口逻辑电路24,外部总线接口26,定时器电路28及DMA30的每一个均双向地同信息总线32相连。CPU12和系统集成模块14通过总线34双向相连。同样地,CPU12经过总线36同DMA30相连。
系统集成模块14通过大量集成电路引脚38能接收和发送外部到微控制器10的信号在此未详细显示集成电路的大量引脚。串行部件16经过很多集成电路引脚40接收和发送外部到微控制器10的信号。同样,在这里没有详细显示很多集成电路引脚。根据存储器的类型,替代存储器22可以经过很多集成电路引脚42(在此未详细显示)接收和发送外部到微控制器10的信号端口逻辑电路24也能够通过很多集成电路引脚44接收和发送外部到微控制器10的信号。此外,外部总线接口26能够经很多集成电路引脚46接收和发送外部到微控制器10的信号。定时器部分28也能够经很多集成电路引脚48接收和发送外部到微器10的信号。
图1说明了在微控制器系列中一个可能的微控制器。因为在同一系列数据处理器中的微控制器通常有很多不同连在板上的外围设备(on-board peripherals),微控制器10仅提供本发明在此描述的一个实施例。例如,微控制器10的另一实施例可以没有ROM20,没有外部总线接口26或DMA30。另外,在微控制器10中,用其它协处理器也要以被实现。事实上,微控制器10的其它实施例可以具有比图1中说明的更少的,更多的或不同的外围设备。
此外,在图1中说明的本发明的实施例中,微控制器10是一个8位微控制器,它包括16位地址及8位和16位的存储寄存器。
在图1中说明的本发明的实施例的工作期间,系统集成模块14作为微控制10的通用控制器。通常,系统集成模块14提供大量使能(enable)操作和禁止(disable)操作的控制信息,提供时序控制并实现对微控制器10的例外事件处理请求。系统集成模块14可以直接通过总线34同中央处理单元12相互连接,通过很多集成电路引脚38同外围装置接口,经过信息总线32同微控制器10的余下很多部件互连接。
中断模块15连到信息总线32并检测出现的断点。为响应检测到的断点,中断模块15激活一个标为“BKPT”的打断信号给系统集成模块14。信号BKPT,系统集成模块14强使一软件中断(SWI)指令到CPU12的指令寄存器。强使SWI指令会使微控制器10在当前指令执行完后进入后台模式。
系统集成模块14最好也对外部中断输入信号作出响应,允许外部仿真器强使微控制器10进入后台模式。在这种情况下,微控制器10进入后台模式的条件是2个中断条件的“或”,这可以在低有效(active-low)BKPT和外部中断信号之间作逻辑“与非”来实现。这附加中断信号原使外部仿真器强使微控制器10在更宽条件范围进入后台,例如在数据总线上传导了数据,指令序列等等。这些附加中断信号将不作进一步讨论。显然,仅有一个中断信号原是需要的。而且,中断模块15允许微控制器10进入后台模式,即使是微控制器10以单片方式操作。因此,中断模块包含在微控制器10中更好。
在微控制器10中,DMA30允许存储器为内部到微控制器10和很多外围设备(未显示)之间数据直接通信。当用户需要快速存储器存取方式时,DMA30可被选择在微控制器10上实现。直接存储器存取电路的实现和使用在数据处理领域内是熟知的,不再作进一步的详细讨论。
定时器部件28基于自激(free-runing)16位计数器执行很多时序功能。当使能信号通过很多集成电路引脚48时,定时器部件28可以实现输入捕捉(input-capture)功能,输出比较功能,实时中断功能,或计算机运行适当的看门狗功能。这些功能的每一种的实现和使用在数据处理技术领域内是为大家熟知的,不再作进一步的详细讨论。
外部总线接口26控制在外部用户或外部外围设备同微控制器10之间地址和数据值的接收和发送。外部总线接口26经信息总线32把很多地址和数据值传递给微控制器10的余下部分。外部总线接口的使用和实现在数据处理技术领域内是为大家熟知的,不再作进一步的详细讨论。
端口逻辑电路24控制很多集成电路引脚44的各引脚的操作和功能。端口逻辑电路24构成很多集成电路引脚44,在操作的第一方式中,各个作为一般目的输入/输出引脚用。在操作的第2种方式中,端口逻辑电路24可以用很多集成电路引脚44的各个传送多路地址和数据信息。端口逻辑电路的使用和实现在数据处理技术领域内是大家熟知的,不再作进一步的详细讨论。
RAM18,ROM20以及替代存储器22是起存储所需信息的作用,为微控制器10的适当操作。此外,对用户程序中指定的其它数据和地址值也可能存储在内。在微控制器中的存储器的使用和实现在技术上是大家熟知的,不再作进一步的详细讨论。
串行部件16在微控制器10和外部用户或外围设备之间传送串行数字数据。串行数字数据和适当的控制信号经集成电路引脚40而被连系。串行部件16说明一个外设例子,它的状态根据本发明保留在后台模式中,串行部件16将按照下面图5作进一步说明。
CPU12在微控制器10的工作期间,执行程序,这个程序由CPU12的指令集的具体指令组成。各种微处理器和微控制器指令集在技术上是熟知的。显然,根据本发明的微控制器可以用各种指令集操作。因此,CPU12的具体的指令集将不作进一步讨论。
图2以方块图的形式说明了图1的微控制器10的部分系统集成模块14,这有助于了解本发明。从图2可以看到系统集成模块通常包括条件电路49,标作“SIM BREAKPOINTSTATUS REGISTER”的寄存器52及一逻辑电路54。
条件电路49具有第一输入端为了从中断模块15接收信号BKPT,第二输入端为了接收标作“CTMBKPT”的信号,第三输入端为了接收标作“LAST”的信号和输出端以把标作“IBREAK”的信号提供给信息总线32。条件电路49是一个逻辑电路,它可识别或者是一内部中断条件(通过中断模块15激活信号BKPT),或者是通过激活输入信号CTMBKPT的外部中断条件。条件电路49有效信号IBREAK以响应有效信号BKPT或者CTMBKPT,而信号IBREAK同步于用信号LAST的有效来表示的指令边界。当有效时,信号LAST表示当前的时钟周期是指令的最后时钟周期。为退出后台模式,中断模块15及外部中断模块阻止(hold.off)它们各自的断点信号无效直到从中断(RTI)返回指令的最后一个周期。在图2中未显示检测RTI指令的附加逻辑。
寄存器50和52是出现在CPU12地址空间中的存储器映象寄存器,更具体地说,在地址空间部分包括涉及系统集成模块14的操作寄存器。寄存器50有一位作为SIM中断/停止/等待(SBSW)位51。SBSW位51是在退出中断打断(break interrupt)以后应用要求返回到等待或停止方式时有用的。如果SBSW位51设置成2进制1表示通过中断打断退出停止或等待方式。若SBSW位51清除为0表示通过中断打断没有退出停止或等待方式。通过对寄存器50的位1写入2进制0该位实现清除。停止和等待方式是使微控制器10用低功耗工作的方式。参考在美国专利号No.4,748,559,由Smith等人发表于1988年5月3日的,题目为“Apparatus for Reducing Power Consumed by staticMicroprocessor(用静态微处理器降低功耗的装置)”。
寄存器52有一位称作断点清除标志使能(BCFE)位53。BCFE位53在复位时缺省2进制0清除,但在以后可以变化。寄存器52有一输出它将指示BCFE位53的状态的信号传到逻辑电路54的输入。BCFE位53是一个可读、可写位,它决定是否软件能在后台模式期间影响外设状态。当它设置为2进制1时,BCFE位53允许软件在后台模式期间改变外设的状态。例如,当BCFE位53被置位时,允许访问外设的状态寄存器去清除它的某些位或全部的位。为了在后台模式时清除状态位,BCFE必须设置成2进制1。如果清除成二进制0,BCFE位53表示在后台模式期间状态位不能清除。
逻辑电路54包括与非门56和57,反相器58和59。与非门56的第一输入端连到寄存器52以接收指示BCFE位53的逻辑信号。第2输入端从中断模块15接收信号BKPT,与非门56还有一个输出端。与非门57的第一输入端连到与非门56的输出端,第2输入端用来接收信号BKPT,与非门57还有一输出端。反相器58具有一输入端,它连到与非门57的输出端,并且还有一输出端。反相器59的一个输入端连到反相器58的输出端,而它的输出端提供一标志为“ICLRFLGEN”的信号送到信息总线32。若BCFE位53置位,逻辑电路54在后台模式期间激活信号ICLRFLGEN。因此,BCFE位53允许用户确定是否利用访问接收信号ICLRFLGEN的外围设备改变它的状态。
图3以方块图的形式说明图1的微控制器10的中断模块15。中断模块15包括标记为“BREAK STATVS/CONTROLREGISTER”的寄存器60。寄存器60是一个可读、可写的存储器映象寄存器,它包括一中断允许(BRKE)位61和一中断有效(BRKA)位62。BRKE位61是一个可读可写位,它能在中断寄存器匹配情况下中断。当它设置为2进制1时,BRKE位61使能在16位地址匹配的情况下产生BKPT信号。在被清除为二进制0时,BRKE位地址匹配的情况下产生BKPT信号。BRKE位61可以在退出中断例程之前,通过写逻辑零而被清除,而在复位时被自动清除。BRKA位62是一可读、可写的状态位,在检测到中断地址匹配后,中断模块15将它设置成二进制1。这位在退出中断例程之前通过把它写成逻辑零而可能被清除成二进制零。这位也在复位时被清除。
中断模块15也包括为在16位地址匹配时激活信号BKPT的电路,包含称为BREAK ADDRESS REGISTER HIGH的寄存器63,8位比较器64,8位比较器65,称为BREAK ADDRESSREGISTER LOW的寄存器66及控制块67。寄存器63和66是可读可写的寄存器,分别包括8位低和高匹配地址部分。比较器64的第一输入端为接收标为“A15:8”总线地址的高端部分,第2输入端连到寄存器63,其输出响应“A15:8”和寄存器63的内容之间匹配而激活。比较器65的第一输入端用来接收标为“A7:0”的总线地址的低端部分,第2输入端连到寄存器66,其输出响应“A7:0”和寄存器66的内容之间匹配而激活。控制块67的第一输入端连到比较器64的输出,第2输入端连到比较器65的输出,第3输入端用来接收信号LAST,输出端用于提供信号BKPT。当BRKE位61被置位且二个输入均有效时,控制块67使信号BKPT有效,在PT1指令末尾响应信号LAST使信号BKPT无效。在使信号BKPT有效的同时,控制块67置位BRKA位62。
在图4中,对后台模式期间的操作作了更清楚的说明,图4的时序图有助于理解图1的微控制器10。在图4中,水平轴代表时间,2个感兴趣的时间点分别表示为“t1”“t2”。在t1以前,微控制器10处在正常操作模式。该模式由信号BKPT指示在逻辑高电平时表示。信号IBREAK在逻辑低时无效。在时间t1,这时间出现在当前CPU指令周期的结束,系统集成模块14使信号IBREAK有效。因此,在时间t1和t2之间,微控制器10处在后台模式。当微控制器10在正常操作模式时,信号ICLRFLGEN是在逻辑高时有效。在后台模式期间,信号ICLRFLGEN的逻辑状态取决于BCFE位的状态。如果BCFE位被清除(2进制0),逻辑电路54使信号ICLRFLGEN无效(在逻辑低电平)。因此,接收信号ICLRFLGEN的任何外设中寄存器的试验不能使外设改变它的状态。然而,如果在复位以后,用户设置BCFE位52成二进制1,那么信号ICLRFLGEN在后台模式期间在逻辑高有效,若试图读外设的寄存器可能造成改变逻辑状态。
在后台模式中透明外围设备操作的例子
在后台模式下维持外设状态的微控制器10的能力通过一专门例子能最好地理解。图5说明了图1的微控制器10的串行部件16的方块图。串行部件16说明三种方法,其中信号ICLRFLGEN用于在后台模式间保护外设的状态。第一,在串行部件16的状态寄存器中的某些控制位随对它们的读操作而被清除。信号ICLRFLGEN确定在后台模式中在被读以后是否要清除这些位,也就是是否要保留他们前面的状态。第二,读状态寄存器并不立即清除某些其它控制位。确切地说,读这些状态位的作用是开启清除机制,在某些其它条件发生时才完成清除。该机制的例子是对其它寄存器的写入。信号ICLRFLGEN使读状态寄存器的作用不开启清除机制。第三,写到另外寄存器可能使状态寄存器中一位被清除。而信号ICLRFLGEN允许写到其它寄存器而并不改变状态寄存器。
再回到图5,可以看到串行部件包括一发送数据寄存器81,一移位寄存器82,一接收数据寄存器83,一个引脚控制逻辑块84,一个标为“SPI CONTROL REGISTER”的寄存器85,一个标为“SPI STATUS AND CONTROL REGISTER86”的寄存器86及一个串行外设接口(SPI)控制块88。发送数据寄存器81是一个8位寄存器,其输入端接收来自信息总线32的数据部分的8位数据元素,其标为“D7:0”,而8位输出端连到移位寄存器82的输入端。移位寄存器82也有8位输出,这8位输出连到接收数据寄存器83的输入,移位寄存器82的串行输入端连到引脚控制逻辑块84的输出端,而串行输出端连到引脚控制逻辑块84的输入端。因此,移位寄存器82既作串行部件16的发送部分用,又作接收部分用。对发送操作,移位寄存器82接收要发送的一字节数据,同时向引脚控制逻辑84移位输出一次一位数据。对接收操作,移位寄存器82接收从引脚控制逻辑块84来的串行数据流,形成数据字节,存储到接收数据寄存器83中。接收数据寄存器83也有一输出用以提供信号D7:0给信息总线32。
引脚控制块84连到集成电路引脚40。集成电路40同寄存器以及串行部件16的控制逻辑一起形成串行外设接口(SPI)。集成电路引脚40的作用示于如下表1中:
表1
引脚名 |
方向(主/从) |
说 明 |
MISO(主输入/从输出)MOSI(主输出/从输入)SPSCK(串行时钟)SS(从选择) |
输入/输出输入/输出输入/输出输入 |
在全双工操作中,主SPI模块的MISO引脚连到从SPI模块的MISO引脚,主SPI同时地从MISO引脚接收数据,从MOSI脚发送数据,在MISO引脚上的从输出数据仅当SPI被配置为“从”时被使能。当它的SPMSTR位是二进制零的它的SS引脚是逻辑低时,SPI被配置为“从”。在全双工操作中,主SPI模块的MOSI引脚连到从SPI模块的MOSI引脚,主SPI同时地从MOSI引脚发送数据,从MISO引脚接收数据。在多从系统中,在SS引脚的逻辑高使MISO引脚成高阻态。串行时钟,串行时钟使主从设备之间的数据发送同步,在主微控制器中,SPSCK引脚是时钟输出,在全双工操作中,主和从微控制器在8个串行时钟周期内交换一数据字节,在从控制器中,SPSCK引脚是时钟输入。对主SPI模块的SS引脚施加一逻辑高电平允许模块从它的MOSI引脚发送数据,用逻辑低设置MODF位。对从SPI模块施加一逻辑低电平允许它在MOSI引脚接收数据,该引脚对于“从”必须是逻辑低,因为逻辑高电平禁止从操作。 |
SPI CONTROL REGISTER 85是一个存储器映象寄存器,这寄存器包括8个控制位。寄存器85的输出连到SP1控制块88去控制串行部件16的操作。这些位的各位的功能在表2中说明如下
表2
位名 |
说 明 |
SPRIEDMASSPMSTRCPOLSPHASPWOMSPESPTIE |
SPI接收中断允许位,这读/写位使能通过SPRF位产生的CPU中断请求或DMA服务请求,当一字节从移位寄存器82传送到寄存器83时,SPRF位被置位,通过清除SPE位禁用SPI模块亦清除SPRIE。DMA选择位,当SPI接收全部位(SPRF)或SPI发送空位(SPTE)置位时,读/写位选择DMA服务请求。设定的DMAS位禁止SPRF CPU中断请求及SPTE CPU中断请求,复位清除DMAS位。SPI主位,读/写位选择主方式操作(当置位时)或从方式操作(当清除后)时钟极性位。这读/写位确定传送期间SPSCK引脚的逻辑状态,为在SPI模块之间传送数据,各SPI模块必须具有同样的CPOL位,复位清除CPOL位。时钟相位位。这读/写位控制串行时钟和SPI数据之间的时序关系,在SPI模块之间发送数据,这些SPI模块必须具有相同的CPHA位,复位置位CPHA位。SPI Wired-OR(线或)方式位。当置位时,此读/写位禁止在引脚SPSCK,MOSI和MISO上加上拉(pull-up)器件以使这些引脚变成漏极开路输出。SPE使能。当置位时,读/写位使能SPI模式,清除SPE位返回SPI状态及控制寄存器到复位状态。SPI发送中断使能。这读/写位使能通过SPTE位产生的CPU中断请求或DMA服务请求,当一个字节从发送数据寄存器传到移位寄存器时SPTE置位。复位时清除SPTIE位。通过清除SPE位禁止SPI模块亦清除SPIE位。 |
此外,SP1 STATUS AND CONTROL REGISTER86包括涉及串行部件状态的6位,它们将在表3中说明如下:
表3
位名 |
说 明 |
SPRFOVRFMODFSPTESPR1/SPR0 |
SPI接收器满位。每次一个字节从移位寄存器82传送到接收数据寄存器83,这个可清除的只读标志置位。如果在寄存器85中SPRIE位置位,SPRF产生CPU中断请求或DMA服务请求。DMAS位确定是否SPRF产生SPRF CPU中断请求或SPRF DMA服务请求。在SPRF CPU中断(DMAS=0)后,CPU 12通过读寄存器86及其后读寄存器83清除SPRF,在SPRF DMA传输期间(DMAS=1),DMA 30通过读寄存器83自动地清除SPRF。溢出位。如果在下个字节进入移位寄存器82之间,软件未读接收数据寄存器83中的字节,这个可清除的只读位置位。在溢出条件下,已在接收数据寄存器83中的字节不受影响,但移位的最后字节丢失。OVRF位可以通过读寄存器86及其后的读寄存器83而清除,复位清除OVRF位。方式失效位。MODF位仅当串行部件16在主模式中有意义,当SPMSTR位为二进制1时,如果SS引脚为低,这个可清除的只读位置位。通过写寄存器86清除MODF位,复位时清除MODF位SPI发送器空位。每次寄存器81把一数据节传到移位寄存器82时,这个可清除的只读位置,如果在寄存器85中SPTIE位置位,SPTE产生一个SPTE CPU中断请求或一个SPTEDMA服务请求。在寄存器85中DMAS确定是否SPTE产生SPTE中断请求或-SPTE DMA服务请求。在SPTE CPU中断(DMAS=0)期间,CPU 12通过写寄存器83清除SPTE。在SPTE DMA传输期间(DMAS=1),DMA 30通过写寄存器81自动清除SPTE。SPI速率选择位。在主模式中,通过分别对00,01,10或11的SP1:SP0的值建立因子2,8,32或128,这些读/写位设置波特率。复位时清除这些位。 |
通常,SPI控制块88是一系列逻辑块,这些逻辑块控制串行部件16的操作。部分的操作涉及数据的发送和接收信令。为此目的,SPI控制块88包括4位输出端,这些输出端给CPU12提供2个中断请求信号(一个表示发送寄存器81满,另一个表示接收寄存器83空)。而将2个DMA服务请求信号送到DMA30(一个表示发送寄存器满,另一个表示接收寄存器83空)。
此外,当微控制器10进入后台模式时SP1控制块88响应信号ICLRFLGEN提供保留串行部件16状态的机制。ICLRFLGEN的各位的作用显示于如下表4中:
表4
位名 |
访问寄存器86的作用 |
ICLRFLGEN=0 |
ICLRFLGEN=1 |
SPRF |
读寄存器86并不预触发清除机构 |
读寄存器86预触发清除机构,一旦清除机制发生,对寄存器83的随后读取会清除该位。 |
OVRF |
读寄存器86不清除此位 |
读寄存器86清除此位 |
MODF |
无影响 |
无影响 |
SPTE |
写寄存器81并不影响此位 |
此位通过写寄存器81而被清除 |
SPR1/SPR0 |
无影响 |
无影响 |
注意当DMA30读寄存器86时(DMAS=1),无需任何预触发机制SPRF和SPTE位被清除。而且,显然状态寄存器清除和预触发机制正好是可能状态的一个例子,这状态可根据信号ICLRFLGEN有条件地被保留。
此外,一外围设备可以局部地确定是否在后台模式时期按信号ICLRFLGEN确定对它的状态发生作用。例如,串行部件16可以包括一附加控制位去决定是否响应信号ICLRFLGEN对某些状态的改变,如果这个状态位置位,那么串行部件16将响应信号ICLRFLGEN在后台方式期间选择性的改变状态。也就是串行部件16将允许某些状态改变,只要信号ICLRFLGEN在后台模式时期是有效的。如果这个状态位被清除,那么串行部件16将使状态在后台期间改变,不管信号ICLRFLGEN是否有效。在串行部件16中,这个控制位能放在寄存器86的未用位置。作为一个例子,对定时器部件28,产生具有是否响应信号ICLRFLGEN的这个“局部”确定。该机制提供一灵活性附加级别,可能对某些应用是需要的。注意,这局部控制位可以仅控制外围设备中某些状态的改变。
尽管本发明已经说明一个优选实施例的内容,对在技术上熟悉的人来说,很明显本发明可用很多方法修改,除了上面专门提出和陈述的外,且还可以给出其它很多实施例。在不同的实施例中,在后台模式下能被选择性地改变或保留的特定外围设备状态也有所不同。实施例实施中可改变。用于实现透明后台模式的信号的有效逻辑状态可以被反向。而且,按照本发明的数据处理器可以是一个微控制器(有芯片上存储器)或者只是一个有至少一个芯片上外围电路的集成数据处理器。再有,所用外围设备电路的类型从一个实施例到另一实施例可以变化。而信息总线32包括16位地址总线和8位数据总线。地址总线和数据总线的宽度从一个实施例到另一实施例可改变。因此,通过所附权利要求书试图包括属于本发明的精神和范围之列的本发明的所有修改。