发明内容
本发明提供一种SOC的调测系统,能够克服JTAG接口相关电路出错导致调测无法进行的缺陷。
在本发明的调测系统中包括:片上系统和外部引导存储器,其中,所述片上系统内设置有引导存储器片选控制输入管脚和用于连接位于所述片上系统之外的外部引导存储器的存储器接口管脚;片上系统还包括:微控制器和管脚复用控制器,但不包括联合测试行动组织JTAG接口;
所述外部引导存储器用于保存该片上系统对应的调测程序;所述管脚复用控制器在引导存储器片选控制输入管脚上的电平为片外启动电平时,通过所述存储器接口管脚使能与所述片上系统连接的外部引导存储器;
所述微控制器在该外部引导存储器被使能后,通过所述存储器接口管脚从该外部引导存储器中读取调测程序;
所述存储器接口管脚包括:读写数据管脚和数字逻辑功能管脚,所述读写数据管脚作为所述调测程序由所述外部引导存储器到所述片上系统内部的传输通道;所述数字逻辑功能管脚与所述管脚复用控制器的输出端相连,该管脚复用控制器通过该数字逻辑功能管脚使能所述外部引导存储器。
较佳地,所述片上系统进一步包括:微控制器和管脚复用控制器,其中,
所述管脚复用控制器在引导存储器片选控制输入管脚上的电平为片外启动电平时,通过所述存储器接口管脚使能与所述片上系统连接的外部引导存储器;
所述微控制器在该外部引导存储器被使能后,通过所述存储器接口管脚从该外部引导存储器中读取调测程序。
较佳地,所述片上系统进一步包括:存储器控制器,通过内部存储器总线与所述管脚复用控制器相连;该存储器控制器通过内部存储器总线,将所述微控制器为所述外部引导存储器分配的地址传输至管脚复用控制器;
所述微控制器进一步为所述外部引导存储器分配地址,将所述微控制器的指令起始地址作为所述外部引导存储器的起始地址;
所述管脚复用控制器确定所述引导存储器片选控制输入管脚上的电平为片外启动电平时,进一步将来自所述内部存储器总线的外部引导存储器的地址,传输给所述存储器接口管脚,以到达所述外部引导存储器。
较佳地,所述微控制器控制所述存储器控制器获取外部引导存储器中的调测程序;
所述存储器控制器在所述微控制器的控制下,通过内部存储器总线和存储器接口管脚,从所述外部引导存储器中读取调测程序,并将读取到的调测程序传输给所述微控制器。
较佳地,该片上系统进一步包括:位于该片上系统内部的静态随机存储器,通过所述内部存储器总线与所述存储器控制器相连,用于保存来自于所述外部引导存储器的调测程序;
所述微控制器进一步为所述静态随机存储器分配不同于所述外部引导存储器的地址,并控制所述存储器控制器从所述静态随机存储器中获取调测程序;
所述存储器控制器进一步将所述微控制器为所述静态随机存储器分配的地址通过所述内部存储器总线传输至该静态随机存储器;在所述微控制器的控制下,将从所述外部引导存储器读取到的调测程序写入该静态随机存储器,并从该静态随机存储器中读取调测程序,传输给所述微控制器;
所述管脚复用控制器进一步在所述引导存储器片选控制输入管脚上的电平为非片外启动电平时,通过所述存储器接口管脚输出停止使能所述外部引导存储器的信号。
较佳地,所述片上系统进一步包括:
接口转换控制器,输入端与所述内部存储器总线和管脚复用控制器相连,输出端与所述存储器接口管脚相连,该接口转换控制器将来自于内部存储器总线和管脚复用控制器的信号转换为所述外部引导存储器能够识别的形式,传输至所述存储器接口管脚,并且将从所述存储器接口管脚上获取到的外部引导存储器数据转换为所述片上系统能够识别的形式,再传输至所述内部存储器总线。
较佳地,所述管脚复用控制器进一步在所述引导存储器片选控制输入管脚上的电平为非片外启动电平时,通过所述存储器接口管脚停止使能与所述外部引导存储器。
较佳地,所述片上系统进一步包括:
位于所述引导存储器片选控制输入管脚与所述管脚复用控制器之间的电平恢复模块,用于在微控制器的控制下,将所述引导存储器片选控制输入管脚上的片外启动电平输出给管脚复用控制器,以使能所述外部引导存储器,并在该外部引导存储器中的调测程序被读取完毕之后,向所述管脚复用控制器输出非片外启动电平。
较佳地,所述电平恢复模块包括引导存储器片选控制寄存器和逻辑门电路,其中,
所述引导存储器片选控制寄存器的默认电平与所述片外启动电平相同,输入端连接至所述微控制器,输出端与所述逻辑门电路的一个输入端相连,该引导存储器片选控制寄存器在微控制器的控制下,将默认电平输出给所述逻辑门电路,或者将与默认电平相反的电平输出给所述逻辑门电路;
所述逻辑门电路的一个输入端与所述引导存储器片选控制寄存器的输出端相连,另一个输入端连接至所述引导存储器片选控制输入管脚,输出端连接至所述管脚复用控制器的输入端,该逻辑门电路在所述引导存储器片选控制寄存器输出默认电平时,向所述管脚复用控制器输出片外启动电平,以使能所述外部引导存储器,在所述引导存储器片选控制寄存器输出与默认电平相反的电平时,向所述管脚复用控制器输出非片外启动电平。
较佳地,所述片外启动电平为低电平,所述逻辑门电路为或逻辑门;或者,所述片外启动电平为高电平,所述逻辑门电路为与逻辑门。
较佳地,所述外部引导存储器为或非闪存,或者外部静态随机存储器。
较佳地,所述外部引导存储器为与非闪存、存储棒、安全数字存储卡之一。
本发明还提供一种SOC,能够克服JTAG接口相关电路出错导致调测无法进行的缺陷。
在本发明的SOC中,包括微控制器,所述片上系统还包括:管脚复用控制器、引导存储器片选控制输入管脚和存储器接口管脚,但不包括联合测试行动组织JTAG接口;其中,
所述管脚复用控制器在引导存储器片选控制输入管脚上的电平为片外启动电平时,通过所述存储器接口管脚使能与所述片上系统连接的外部引导存储器;
所述微控制器在所述管脚复用控制器确定引导存储器片选控制输入管脚上的电平为片外启动电平时,通过所述存储器接口管脚从外部读取调测程序;
所述存储器接口管脚包括:读写数据管脚和数字逻辑功能管脚,所述读写数据管脚作为所述调测程序由所述外部引导存储器到所述片上系统内部的传输通道;所述数字逻辑功能管脚与所述管脚复用控制器的输出端相连,该管脚复用控制器通过该数字逻辑功能管脚使能所述外部引导存储器。
较佳地,所述片上系统进一步包括:存储器控制器,在所述微控制器的控制下,通过所述内部存储器总线和存储器接口管脚,从外部读取调测程序,并将读取到的调测程序传输给所述微控制器。
较佳地,该片上系统进一步包括:位于该片上系统内部的静态随机存储器,通过所述内部存储器总线与所述存储器控制器相连,用于保存来自于外部的调测程序;
所述微控制器进一步为所述静态随机存储器分配地址,并控制所述存储器控制器从所述静态随机存储器中获取调测程序;
所述存储器控制器进一步将所述微控制器为所述静态随机存储器分配的地址通过所述内部存储器总线传输至该静态随机存储器;在所述微控制器的控制下,将从外部读取到的调测程序写入该静态随机存储器,并从该静态随机存储器中读取调测程序,传输给所述微控制器;
所述管脚复用控制器进一步在所述引导存储器片选控制输入管脚上的电平为非片外启动电平时,通过所述存储器接口管脚输出停止使能外部的信号。
较佳地,所述片上系统进一步包括:
接口转换控制器,输入端与所述内部存储器总线和管脚复用控制器相连,输出端与所述存储器接口管脚相连,该接口转换控制器将来自于内部存储器总线和管脚复用控制器的信号转换为外部能够识别的形式,传输至所述存储器接口管脚,并且将从所述存储器接口管脚上获取到的外部数据转换为所述片上系统能够识别的形式,再传输至所述内部存储器总线。
较佳地,所述片上系统进一步包括:
位于所述引导存储器片选控制输入管脚与所述管脚复用控制器之间的电平恢复模块,用于在微控制器的控制下,将所述引导存储器片选控制输入管脚上的片外启动电平输出给管脚复用控制器,并在该外部引导存储器中的调测程序被读取完毕之后,向所述管脚复用控制器输出非片外启动电平。
较佳地,所述电平恢复模块包括引导存储器片选控制寄存器和逻辑门电路,其中,
所述引导存储器片选控制寄存器的默认电平与所述片外启动电平相同,输入端连接至所述微控制器,输出端与所述逻辑门电路的一个输入端相连,该引导存储器片选控制寄存器在微控制器的控制下,将默认电平输出给所述逻辑门电路,或者将与默认电平相反的电平输出给所述逻辑门电路;
所述逻辑门电路的一个输入端与所述引导存储器片选控制寄存器的输出端相连,另一个输入端连接至所述引导存储器片选控制输入管脚,输出端连接至所述管脚复用控制器的输入端,该逻辑门电路在所述引导存储器片选控制寄存器输出默认电平时,向所述管脚复用控制器输出片外启动电平,在所述引导存储器片选控制寄存器输出与默认电平相反的电平时,向所述管脚复用控制器输出非片外启动电平。
较佳地,所述片外启动电平为低电平,所述逻辑门电路为或逻辑门;或者,所述片外启动电平为高电平,所述逻辑门电路为与逻辑门。
本发明还提供一种SOC调测方法,能够克服JTAG接口相关电路出错导致调测无法进行的缺陷。
在本发明的片上系统调测方法中,包括:
所述片上系统上设置有引导存储器片选控制输入管脚和用于连接位于所述片上系统之外的外部引导存储器的存储器接口管脚,所述存储器接口管脚包括:读写数据管脚和数字逻辑功能管脚;该调测方法包括:
当所述引导存储器片选控制输入管脚上的电平为片外启动电平时,所述片上系统中的管脚复用控制器通过所述存储器接口管脚中的数字逻辑功能管脚使能所述外部引导存储器;
所述片上系统的微控制器通过所述存储器接口管脚中的读写数据管脚,从所述外部引导存储器中读取调测程序,进行调测。
较佳地,所述片上系统进一步包括:存储器控制器;
所述使能所述外部引导存储器之前,进一步包括:微控制器为所述外部引导存储器分配地址,将所述微控制器的指令起始地址作为所述外部引导存储器的起始地址;所述存储器控制器通过所述片上系统的内部存储器总线,将所述微控制器分配的地址通过管脚复用控制器传输至所述存储器接口管脚,以到达所述外部引导存储器。
较佳地,所述片上系统的微控制器通过所述存储器接口管脚,从外部引导存储器中读取调测程序为:
所述微控制器控制所述存储器控制器获取外部引导存储器中的调测程序;
所述存储器控制器通过所述内部存储器总线和存储器接口管脚,从所述外部引导存储器中读取调测程序,并将读取到的调测程序传输给所述微控制器。
较佳地,所述片上系统进一步包括静态随机存储器;
所述将读取到的调测程序传输给所述微控制器之前,进一步包括:所述存储器控制器将从所述外部引导存储器读取到的调测程序写入该静态随机存储器,并在所述微控制器的控制下,从该静态随机存储器中读取调测程序,再执行所述将读取到的调测程序传输给所述微控制器。
较佳地,所述从外部引导存储器中读取调测程序之后,进一步包括:
当所述引导存储器片选控制输入管脚上的电平为非片外启动电平时,停止使能所述外部引导存储器。
较佳地,所述片上系统进一步包括电平恢复模块;
所述从外部引导存储器中读取调测程序之后,进一步包括:所述微控制器控制所述电平恢复模块向所述管脚复用控制器输出非片外启动电平,停止使能所述外部引导存储器。
较佳地,所述调测程序为调试程序,或除错程序;
所述进行调测之后,进一步包括:将所述片上系统的运行状况以电平形式输出于所述片上系统的通用输入输出接口。
较佳地,所述调测程序为功能测试程序;
所述使能该外部引导存储器之前,进一步包括:将所述功能测试程序烧录至所述外部引导存储器对应的虚拟外部引导存储器中,所述片上系统对应的虚拟原型从所述虚拟外部引导存储器中获取该功能测试程序,生成测试图样;自动测试设备对所述测试图样进行解析和还原,得到所述片上系统可识别的输入电平,并加载在所述片上系统的对应输入管脚上;
所述进行调测为:所述片上系统按照被加载的输入电平运行所述功能测试程序,并在对应的输出管脚上体现出输出电平;若所述输出电平与所述输入电平在该测试图样中对应的输出电平一致,则判定该片上系统为良品,否则,判定该片上系统为次品。
由上述方案可见,本发明的调测系统中,SOC能够通过自身的存储器接口管脚实现与存储有调测程序的外部引导存储器的连接,根据引导存储器片选输入管脚上的电平,从外部引导存储器中读取调测程序,再利用读取到的调测程序实现对SOC的调测。本发明中的SOC在调测过程中无需通过JTAG接口与外部的JTAG探头和调试主机进行信号交互,而是通过SOC中的管脚来直接连接外部引导存储器,从而实现调测程序的获取。那么,JTAG接口对于SOC的调测而言是可以省略的,因此,本发明中的SOC能够有效地避免现有技术中因JTAG相关电路出错而导致的调测无法进行这一缺陷。
再者,本发明中采用SOC的存储器接口管脚作为SOC与外部引导存储器间数据传输的纽带,该管脚采用并行数据传输方式,能够实现大量数据的快速传输,即能够用于功能测试程序的传输,因此本发明中的SOC无需为测试阶段设置单独的数据通道,功能复用程度较高,结构较为紧凑,并且实现成本较低;进一步,本发明中可以将调测程序存储在外部引导存储器中,这样就可以不必在SOC内部为调测专门设置片内存储器,能够有效地降低SOC本身的成本,同时对调测程序的修改也更为便捷。
具体实施方式
为使本发明的目的、技术方案更加清楚明白,以下参照附图并举实施例,对本发明做进一步的详细说明。
本发明中提供一种可以从片外引导存储器启动的SOC,无需JTAG接口也能够实现与外部的信号交互。
图2示出了本发明中SOC的示例性结构图。参见图2,本发明中的SOC20包括:微控制器201、管脚复用控制器202、引导存储器片选控制输入管脚203以及存储器接口管脚204。其中的微控制器201在SOC 20中起中控作用,在位于片外系统之外的外部引导存储器被使能后,通过存储器接口管脚204从该外部引导存储器中读取调测程序,该外部引导存储器在图中以虚线表示。管脚复用控制器202在引导存储器片选控制输入管脚203上的电平为片外启动电平时,通过存储器接口管脚204使能与该SOC 20连接的外部引导存储器。
图3为本发明中SOC调测方法的示例性流程图。本发明中在SOC内设置有引导存储器片选控制输入管脚和用于连接位于所述片上系统之外的外部引导存储器的存储器接口管脚,参见图3,该方法包括:
在步骤301中,当SOC中引导存储器片选控制输入管脚上的电平为片外启动电平时,管脚复用器通过存储器接口管脚使能外部引导存储器;
在步骤302中,SOC通过该SOC上的存储器接口管脚,从外部引导存储器中读取调测程序,进行调测。
从上述图2和图3的描述可见,本发明的SOC能够通过自身的存储器接口管脚实现与存储有调测程序的外部引导存储器的连接,根据引导存储器片选输入管脚上的电平,从外部引导存储器中读取调测程序,再利用读取到的调测程序实现对SOC的调测。本发明中的SOC在调测过程中无需通过JTAG接口与外部的JTAG探头和调试主机进行信号交互,而是通过SOC中的管脚来直接连接外部引导存储器,从而实现调测程序的获取。那么,JTAG接口对于SOC的调测而言是可以省略的,因此,本发明中的SOC能够有效地避免现有技术中因JTAG相关电路出错而导致的调测无法进行这一缺陷;再者本发明中采用SOC的存储器接口管脚作为SOC与外部引导存储器间数据传输的纽带,该管脚采用并行数据传输方式,能够实现大量数据的快速传输,即能够用于功能测试程序的传输,因此本发明中的SOC无需为测试阶段设置单独的数据通道,功能复用程度较高,结构较为紧凑,并且实现成本较低;进一步,本发明中可以将调测程序存储在外部引导存储器中,这样就可以不必在SOC内部为调测专门设置片内存储器,能够有效地降低SOC本身的成本,同时对调测程序的修改也更为便捷。
本发明中可以将外部引导存储器以及图2中的SOC合称为调测系统,这里的外部引导存储器存储有调测程序,并通过SOC上的存储器接口管脚连接该SOC;SOC在自身的引导存储器片选输入管脚上的电平为片外启动电平时,使能该外部引导存储器,并从外部引导存储器中读取调测程序。
下面将通过五个实施例详细说明本发明中的SOC、调测方法以及调测系统。
实施例1
本实施例中的外部引导存储器为或非闪存,存储器接口管脚可以包括读写数据管脚和数字逻辑功能管脚。其中的读写数据管脚是具有读功能、写功能、数据传输功能中任意一种或几种功能的管脚的集合,作为调测程序从外部引导存储器到片上系统内部的传输通道;数字逻辑功能管脚是诸如地址管脚、片选管脚之类管脚的集合,用于供管脚复用控制器通过该数字逻辑功能管脚来使能外部引导存储器。
图4示出了本实施例中调测系统的结构示意图。参见图4,该调测系统包括:SOC 40和作为外部引导存储器的或非闪存41;并且,该图中的SOC40包括:微控制器401、存储器控制器402、管脚复用控制器403、引导存储器片选控制输入管脚404、读写数据管脚405以及数字逻辑功能管脚406。
本实施例中SOC 40中微控制器401控制存储器控制器402为作为外部引导存储器的或非闪存41分配地址,即将微控制器401的指令起始地址作为该或非闪存41的起始地址;通过存储器控制器402获取或非闪存41中存储的调测程序,并运行该调测程序。
存储器控制器402按照微控制器401的要求执行地址分配操作,通过内部存储器总线将为或非闪存41分配的地址信息传输给管脚复用控制器403;并且在微控制器401的控制下,通过内部存储器总线和读写数据管脚405,从或非闪存41中读取调测程序,再将读取到的调测程序传输给微控制器401。
管脚复用控制器403的输入端与内部存储器总线的地址线以及引导存储器片选控制输入管脚404相连,并且该管脚复用控制器403的输出端与SOC 40的数字逻辑功能管脚406相连;管脚复用控制器403确定引导存储器片选控制输入管脚404上的电平为片外启动电平时,例如低电平,将来自内部存储器总线的或非闪存41的地址信息,传输给数字逻辑功能管脚406,再到达或非闪存41,并且管脚复用控制器403还将能够使能或非闪存41的电平输出到数字逻辑功能管脚406上,例如低电平,使得或非闪存41进入工作状态。这里引导存储器片选控制输入管脚404可以通过接地或者接外部电源来实现电平的切换。
可见,引导存储器片选控制输入管脚404对管脚复用控制器403将内部存储器总线的地址信号通过数字逻辑功能管脚406传送到外部引导存储器41以及使能外部引导存储器41的操作起控制作用。管脚复用控制器403的作用在于,根据引导存储器片选控制输入管脚404的电平来决定是否将外部引导存储器需要的地址和使能信号输出。
或非闪存41在本实施例中作为调测系统的外部引导存储器,用于保存调测程序的引导程序,该或非闪存41可以被看作为是一种外部引导存储器。在实际应用中可以将SOC的调试、除错或测试程序中的引导程序烧录到该闪存中,由于闪存具有易于改写其存储内容的特点,因此在调测过程中能够方便快捷地实现程序内容的更新。该或非闪存41的使能信号端与管脚复用控制器的片选信号输出端相连,以便被管脚复用控制器使能。当然,本实施例中的或非闪存也可以替换为静态随机存储器(SRAM,Static RandomAccess Memory),并且图中各个部分的连接关系不变。
图5示出了本实施例中的SOC调测方法流程图。参见图5,该方法包括:
在步骤501中,微控制器微控制器通过存储器控制器为作为外部引导存储器的或非闪存分配地址,将该微控制器的指令起始地址作为该或非闪存的起始地址。
本步骤中,微控制器将自身的指令起始地址传输给存储器控制器,并指示存储器控制器将该指令起始地址作为或非闪存的起始地址;存储器控制器完成地址分配操作后,将或非闪存的地址信息通过内部存储器总线传输给管脚复用控制器的地址输入端,管脚复用控制器再通过自身的地址输出端将接收到的地址信息传输至或非闪存的地址输入端。
在步骤502中,当引导存储器片选控制输入管脚上的电平为低电平时,管脚复用控制器通过数字逻辑功能管脚使能或非闪存。
这里的引导存储器片选控制输入管脚可以接地或者接外部电源,当接地时,该管脚上的电平为低电平,当接外部电源时,该管脚上的电平为高电平。
假设片外启动电平为低电平。当引导存储器片选控制输入管脚接地时,管脚复用控制器上连接该引导存储器片选控制输入管脚的片选信号输入端也是低电平,表明从SOC外部的或非闪存启动,即需要将该或非闪存中存储的内容读取到SOC内部。管脚复用控制器上的片选信号输出端与或非闪存的使能信号端上的电平均变为能够使能或非闪存的电平,此时该或非闪存处于工作状态,SOC中的微控制器就可以根据调测程序对SOC内部相应的功能模块进行调测。当读取完调测程序时或者在诸如片内运行等无需使能或非闪存的情况下,引导存储器片选控制输入管脚接外部电源,通过管脚复用控制器使得外部或非闪存的使能信号无效,则或非闪存停止与SOC的信号交互。
在步骤503中,存储器控制器在微控制器的控制下从被使能的或非闪存中读取调测程序。
本步骤中,由于外部的或非闪存已被使能,则微控制器通知存储器控制器读取调测程序;存储器控制器通过连接读写数据管脚的内部存储器总线,向或非闪存发送读指令,或非闪存中与该读指令对应的地址处保存的调测程序通过读写数据管脚、经由内部存储器总线,传输至存储器控制器。这里的读指令可以有一条或者多条,首条读指令对应的地址上述步骤501中为或非闪存分配的起始地址。
在步骤504中,存储器控制器将读取到的调测程序传输给微控制器,微控制器控制SOC运行该调测程序,进行调测。
对于调试阶段,这里的调测程序为调试程序,并且本步骤中微控制器在读取到该调试程序后,协同调试程序对应的SOC部件一起运行该调试程序,找出存在的错误。本实施例中可以在调试程序中增加一些指令,将调试过程中的运行状况以电平的形式通过SOC的一个或者多个通用输入输出接口体现出来,以便设计开发人员利用诸如示波器之类的仪器获得错误信息,从而充分利用SOC本身的资源。除错阶段的操作与调试阶段相似,只是除错阶段的调测程序为针对调试阶段找到的错误而修改的调试程序。
对于测试阶段,这里的调测程序为功能测试程序,该功能测试程序用于在SOC虚拟原型中产生测试图样(Test Patterns)。这里的SOC虚拟原型是指处于设计阶段的SOC,而非SOC成品;当然,与该SOC虚拟原型连接的外部引导存储器为虚拟的外部引导存储器。这里采用与前述调试阶段类似的方式产生测试图样,即首先,功能测试程序被烧录到虚拟外部引导存储器中,然后SOC通过片外启动来获得该功能测试程序并运行。运行过程中,对SOC虚拟原型的输入管脚和输出管脚进行采样并记录,再转换成自动测试设备(ATE,Automatic Test Equipment)能够识别的格式的文件,得到测试图样。ATE在得到测试图样后,对该测试图样进行解析和还原,得到SOC能够识别的输入电平信号。然后,ATE在SOC上的各输入管脚加载测试图样中的输入电平,SOC按照被加载的输入电平运行功能测试程序,并在输出管脚体现出输出电平。ATE在每个测试时钟周期对输出管脚进行采样后与测试图样中对应的输出管脚电平进行比对,如果一致,则判定该SOC是良品;反之,则判定该SOC为次品。
至此,完成本实施例中的SOC调测过程。
本实施例中的SOC摆脱了现有方案中JTAG接口对调测的限制,测试阶段能够与调试和除错阶段共用接口,而且外部引导存储器的使用使得调测程序的修改更为方便。
实施例2
本实施例考虑到调测阶段需要对SOC的各个部分进行验证,因此,在SOC内部增加静态随机存储器,用于保存从外部引导存储器读取到的调测程序,以便释放对读写数据管脚以及数字逻辑功能管脚的占用,便于对这两个管脚进行调测。
图6示出了本实施例中调测系统的结构示意图。参见图6,该调测系统包括:SOC 60和作为外部引导存储器的或非闪存61;并且,该图中的SOC60在图4的基础上增加了静态随机存储器607。
本实施例中的微控制器601与实施例1中的微控制器401相似,所不同的是,本实施例中的微控制器601还通过存储器控制器为静态随机存储器607分配与或非闪存不同的地址,并且通过存储器控制器602从静态随机存储器607中获取调测程序,并运行该调测程序。
本实施例中的存储器控制器602在分配地址以及使能或非闪存的操作上与实施例1中的存储器控制器402相似,但存储器控制器602还将微控制器601为静态随机存储器607分配的地址,通过内部存储器总线传输给静态随机存储器607,并且在从或非闪存41中读取调测程序后,将读取到的调测程序通过内部存储器总线传输给静态随机存储器607,并且还在微控制器601的控制下,通过内部存储器总线从静态随机存储器607中读取调测程序,并将读取到的调测程序传输给微控制器601。
管脚复用控制器603在实施例1中管脚复用控制器403的基础上,还在引导存储器片选控制输入管脚的电平由片外启动电平变为非片外启动电平时,将自身片选信号输出端上的电平也改变为停止使能或非闪存61的电平,例如高电平,使得或非闪存41结束工作状态。
或非闪存61分别与实施例1中的或非闪存41相同。
本实施例中的静态随机存储器607通过内部存储器总线接收存储器控制器602从或非闪存61中读取的调测程序,并且还通过内部存储器总线将自身存储的调测程序传输给存储器控制器602。
图7示出了本实施例中调测方法的流程图。参见图7,本实施例中的调测方法包括:
在步骤701中,微控制器微控制器通过存储器控制器为作为外部引导存储器的或非闪存分配地址,将该微控制器的指令起始地址作为该或非闪存的起始地址;并且为静态随机存储器分配与或非闪存不同的地址。
本步骤中为或非闪存分配地址的操作与实施例1中的步骤501相同。
在步骤702中,当引导存储器片选控制输入管脚上的电平为低电平时,管脚复用控制器通过数字逻辑功能管脚使能或非闪存。
本步骤与实施例中的步骤502相同。
在步骤703中,存储器控制器在微控制器的控制下,从被使能的或非闪存中读取调测程序,并将读取到的调测程序保存在SOC内部的静态随机存储器中。
本步骤与实施例1中步骤503的不同之处在于,这里的存储器控制器在获取到或非闪存中的调测程序后,将该调测程序通过内部存储器总线传输至SOC内部的静态随机存储器中。
在步骤704中,引导存储器片选控制输入管脚上的电平切换为高电平,管脚复用控制器通过数字逻辑功能管脚停止使能或非闪存。
在步骤705中,微控制器通过存储器控制器从静态随机存储器中读取调测程序。
本步骤中,当微控制器确定所需的调测程序已从外部的或非存储器中被全部读出后,向存储器控制器发出针对静态随机存储器的读指令,存储器控制器按照该读指令,从该静态随机存储器中读取调测程序,并传输至微控制器。
上述的步骤704和步骤705的执行顺序不存在严格的时间顺序。
在步骤706中,微控制器控制SOC运行读取到的调测程序,完成调测。
本步骤与实施例1中的步骤504相同。
至此,完成本实施例中的调测过程。
本实施例中先将调测程序由SOC外部的或非闪存写入到SOC内部的静态随机存储器,再通过停止使能或非闪存来释放其占用的读写数据管脚和数字逻辑功能管脚。这样,由于这两个管脚可以暂时停止工作,则可以在调测过程中作为调测对象。
本实施例中的SOC 60还可以包括只读存储器608,通过内部存储器总线与存储器控制器连接,并且该只读存储器608上的片选信号输入端与引导存储器片选控制输入管脚604相连。该只读存储器608的起始地址与外部引导存储器的起始地址相同,其中可以保存经过调试和除错后被验证符合设计要求的SOC引导程序。当引导存储器片选控制输入管脚604上的电平为非片外启动电平,即片内启动电平时,例如高电平,则该只读存储器608被使能,微控制器601可以控制存储器控制器从该只读存储器608中读取引导程序,并控制SOC运行该引导程序,以实现SOC的各种功能。这种只读存储器608被使能并且微控制器601读取该只读存储器608中的引导程序的过程可以被称为是片内启动。片内启动过程通常存在于SOC的功能实现过程中。
以上为以或非闪存或者SRAM作为外部引导存储器的情况,本发明也可以采用其他的存储器作为外部引导存储器,只是SOC的结构与上述的实施例1和实施例2略有不同。
实施例3
本实施例中采用诸如安全数字存储(SD,Secure Digital Memory)卡、与非闪存、记忆棒(MS,Memory Stick)、微硬盘等类型的存储器作为外部引导存储器,此时在管脚复用控制器与存储器接口管脚之间增加接口转换控制器。
下面以与非闪存为例进行说明。
图8示出了本实施例中调测系统的结构示意图。参见图8,该调测系统包括:SOC 80和作为外部引导存储器的与非闪存81;并且,该图中的SOC80包括:微控制器801、存储器控制器802、管脚复用控制器803、接口转换控制器804、引导存储器片选控制输入管脚805、存储器接口管脚806。
本实施例中的微控制器801与实施例1中的微控制器401相同。存储器控制器802与实施例中的存储器控制器402之间的不同之处在于,存储器控制器802将微控制器802为与非闪存81分配的地址,通过内部存储器总线传输给接口转换控制器803;以及,在微控制器801的控制下,通过内部存储器总线、接口转换控制器803和存储器接口管脚806,从与非闪存81中读取调测程序。
管脚复用控制器803的输入端与内部存储器总线的地址线以及引导存储器片选控制输入管脚805相连,并且该管脚复用控制器803的输出端与接口转换控制器804的输入端相连;管脚复用控制器803确定引导存储器片选控制输入管脚805上的电平为片外启动电平时,将来自内部存储器总线的与非闪存81的地址信息,传输给接口转换控制器804的地址输入端,并且管脚复用控制器803还将使能与非闪存81的电平,输出给接口转换控制器804,使得与非闪存81进入工作状态。这里引导存储器片选控制输入管脚805可以通过接地或者接外部电源来实现电平的切换。
接口转换控制器804的输入端与管脚复用控制器803的输出端相连;输出端与存储器接口管脚806相连;该接口转换控制器804的数据端的一侧与内部存储器总线的数据线相连,另一侧与存储器接口管脚806相连。接口转换控制器804在接收到与非闪存地址信息后,将该地址信息转换为与非闪存81能够识别的形式,再传输给存储器接口管脚806,到达与非闪存81;当接口转换控制器804通过管脚复用控制器803的输出端电平确定需要使能与非闪存81时,则通过存储器接口管脚806使得与非闪存81进入工作状态;该接口转换控制器804还在存储器控制器的控制下,通过存储器接口管脚806从与非闪存81中读取调测程序,并将读取到的调测程序传输给存储器控制器802。
与非闪存81的功能与实施例1中的或非闪存41以及SRAM相似,均具有易于改写其中内容的特点,因此本实施例一方面能够避免JTAG接口带来的缺陷,另一方面还能够在调测过程中方便快捷地实现程序内容的更新。
与实施例1相比,本实施例的调测过程中增加了接口转换控制器的参与。例如,在步骤501为外部引导存储器分配地址时,当管脚复用控制器接收到与非闪存的地址信息后,将接收到的地址信息传输给接口转换控制器,接口转换控制器将该地址信息转换为与非闪存能够识别的形式,再传输给存储器接口管脚,最后到达与非闪存。在步骤502中使能外部引导存储器时,管脚复用控制器确定引导存储器片选控制输入管脚上的电平为片外启动电平后,通过接口转换器和存储器接口管脚来使能与非闪存。在步骤503中读取调测程序时,微控制器下发的读取指令经过存储器控制器、管脚复用控制器、接口转换控制器以及存储器接口管脚后,到达与非闪存,该读指令对应的调测程序再经过上述路径逆向返回给微控制器,此后再按照步骤504的操作执行调测。
实施例4
本实施例中以实施例2的结构为基础,将图6中的或非闪存替换为与非闪存、MS卡、SD卡、微硬盘等类型的存储器。下面仍然以与非闪存为例进行说明。
图9示出了本实施例中调测系统的结构示意图。参见图9,该调测系统中的SOC在图6的基础上增加了接口转换控制器。
本实施例中的接口转换器904在外部的与非闪存91与SOC 90之间进行接口转换,以实现与非闪存91与SOC 90间信号的顺利交互。具体来说,本实施例中的接口转换器904的输入端与管脚复用控制器903的输出端相连;输出端与数字逻辑功能管脚907相连;该接口转换控制器904的数据端的一侧与内部存储器总线的数据线相连,另一侧与存储器接口管脚906相连。与实施例3相似,接口转换控制器904在地址分配、片外启动以及调测程序的读取过程中均在与非闪存91与管脚复用控制器和存储器控制器之间进行接口转换。
本实施例中的微控制器901、存储器控制器902、引导存储器片选控制输入管脚905以及静态随机存储器908均与实施例2中的对应部件相同;管脚复用控制器903和存储器接口管脚906因接口转换控制器的存在而具有与实施例2略有差异的连接关系。
本实施例的调测方法中,来自于管脚复用控制器903的地址信息在接口转换控制器904中被转换为与非闪存91能够识别的形式,与非闪存91中的调测程序经过接口转换控制器的中转到达内部存储器总线,再保存于静态随机存储器908之中。
当然,本实施例也可以包含只读存储器909,其功能与连接关系均与实施例2中的只读存储器908相同。
上述的实施例3和实施例4中在SOC内部增加了接口转换控制器,为SOC提供适合于外部引导存储器的接口,使得外部引导存储器可以采用任何类型的存储器,兼容性和可扩展性更好。
实施例5
上述实施例2和实施例4中在将外部引导存储器中的调测程序传输至SOC内部的静态随机存储器中后,需要通过将引导存储器片选控制器输入管脚的电平改变为非片外启动电平的方式来改变管脚复用控制器上的片选信号的电平,以停止外部引导存储器的工作状态。通常情况下改变引导存储器片选控制器输入管脚电平的实际措施是通过手动的方式将该管脚由连接地变为连接外部电源或者由连接外部电源变为连接外部地,操作较为复杂。本实施例中在SOC中增加电平恢复模块来实现管脚复用控制器上片选输入端电平的自动变化。具体来说,该电平恢复模块位于引导存储器片选控制输入管脚与管脚复用控制器之间,用于在微控制器的控制下,将引导存储器片选控制输入管脚上的片外启动电平输出给管脚复用控制器,以使能外部引导存储器,并在完成从该外部引导存储器中读取调测程序之后,向管脚复用控制器输出非片外启动电平。
实际应用中,本实施例中的电平恢复模块可以包括引导存储器片选控制寄存器和逻辑门电路,引导存储器片选控制寄存器的默认电平与片外启动电平相同。
下面以片外启动电平和使能或非闪存的电平为低电平、逻辑门电路为或逻辑门为例进行说明。
图10示出了本实施例中调测系统的结构示意图。参见图10,该调测系统中的SOC 100包括:微控制器1001、存储器控制器1002、管脚复用控制器1003、引导存储器片选控制输入管脚1004、存储器接口管脚1005、数字逻辑功能管脚1006、静态随机存储器1007、引导存储器片选控制寄存器1008和或逻辑门1009。
本实施例中的引导存储器片选控制寄存器1008的默认输出电平为低电平,其信号输入端与微控制器1001相连,信号输出端与或逻辑门1009的一个输入端相连;或逻辑门的另一个输入端与引导存储器片选控制输入管脚1004相连,输出端连接至管脚复用控制器1003的片选信号输入端。
由于片外启动电平为低电平,本实施例中的引导存储器片选控制输入管脚可以一直与地连接,保持低电平状态。当微控制器1001确定需要从外部的或非闪存101中读取调测程序时,引导存储器片选控制寄存器1008输出默认的低电平,此时或逻辑门1009的输出端上为低电平,则能够使能或非闪存101;当微控制器1001确定所需的调测程序已从外部的或非闪存中被全部读出后,控制引导存储器片选控制寄存器1008输出高电平,此时或逻辑门1009上与引导存储器片选控制寄存器1008连接的输入端上为高电平,无论另一输入端为何种电平,该或逻辑门1009的输出端均输出高电平,则或非闪存101未被使能,停止工作。
若本实施例中的片外启动电平为高电平,则可以采用与逻辑门替换上述的或逻辑门。此时,引导存储器片选控制输入管脚1004可以一直与外部电源连接,保持高电平状态,并且引导存储器片选控制寄存器的默认电平为高电平。当微控制器1001确定需要从外部的或非闪存101中读取调测程序时,引导存储器片选控制寄存器1008输出高电平,此时与逻辑门的输出端上为高电平,则能够使能或非闪存101;当微控制器1001确定所需的调测程序已从外部的或非闪存中被全部读出后,控制引导存储器片选控制寄存器1008输出低电平,此时与逻辑门1009上与引导存储器片选控制寄存器1008连接的输入端上为低电平,该与逻辑门的输出端输出低电平,则或非闪存101未被使能,停止工作。
进一步,本实施例的SOC中还可以包括与实施例2和4相同的只读存储器1010,该只读存储器1010的片选信号输入端与前述逻辑门电路的信号输出端相连,当或非闪存101未被使能时,使能该制度存储器1010,实现片内启动。
本实施例还可以像实施例3和4中那样,在SOC内部增加接口转换控制器,从而可以采用除或非闪存和SRAM之外的其他类型的存储器作为外部引导存储器。该接口转换控制器与实施例3中的接口转换控制器804和实施例中的接口转换控制器904相同。
上述各实施例中的SOC上可以包含JTAG接口,但SOC的调测不依赖于该JTAG接口。
从上述5个实施例的描述可见,本发明中的SOC利用管脚复用控制器来实现SOC与外部引导存储器之间以读写数据管脚和数字逻辑功能管脚为桥梁的连接,并且通过引导存储器片选控制输入管脚来控制从外部引导存储器启动的时机。这样的方案使得SOC的调测不再以JTAG接口为单一的对外信号交互路径,从而能够有效地避免现有技术中JTAG相关线路故障而导致的调测无法执行的缺陷。另一方面,外部引导存储器参与到SOC调测过程中,使得调测程序的修改更为容易。
考虑到调测的全面性,本发明进一步在SOC内部增加静态随机存储器,保存从外部引导存储器搬运至SOC内部的调测程序,从而能够将外部引导存储器所连接的读写数据管脚和数字即功能管脚释放出来,作为调测对象,避免这两个管脚在调测过程中被占用而无法被调测的问题。
再有,本发明中还可以在SOC内部增加接口转换控制器,以保证各种类型的外存储器都能够与SOC顺利地进行信号交互,从而使得本发明中的调测系统具有良好的兼容性和可扩展性。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。