一种仿真器及其与目标板接口的适配方法

文档序号:6559062阅读:168来源:国知局
专利名称:一种仿真器及其与目标板接口的适配方法
技术领域
本发明是有关于一种仿真器,且特别是有关于一种对于目标板的接口具
有可组态功能的仿真器,其利用内嵌微控制器(MCU)及其执行的固件程 序作为与目标板间多重接口的控制机制。
背景技术
仿真器(In-Circuit Emulation,简称为ICE )是设计用来连接目标板(Target Board)及主机(Host),并提供二者之间数据传递的装置,主要应用层面 为不同接口的除错系统。请参照图1,其所示为一种传统的仿真器的方框图。 仿真器100包括主机接口单元110、仿真器(ICE)功能单元120及目标板 接口单元130,其中ICE功能单元120包括主控制单元121及中断点控制单 元122。在一些比较高阶的仿真器中,ICE功能单元120还会包括直接存储 器存取(DMA)控制单元123或追踪緩冲区(TraceBuffer)控制单元124。
主机接口单元no负责跟主机沟通并将信息传给ICE功能单元120,其 例如是通用串行总线(USB)、并行端口或以太网(Ethernet)传输接口 。 ICE 功能单元120内的主控制单元121通过中断点控制单元122、 DMA控制单 元123或追踪緩冲区控制单元124负责执行仿真器100所需功能,并将上述 相关执4于动作及结果跟目标板接口单元130沟通。目标板接口单元130接收 ICE功能单元120的信息并负责跟目标板沟通,其例如是JTAG、 EJTAG或 BDM接口 。
在ICE功能单元120中,中断点控制单元122负责设定指令中断点、数 据中断点或软件中断点,例如欲设定软件中断点,则主控制单元121会将中 断点地址传给中断点控制单元122,中断点控制单元122便会回应主控制单 元121,先读取此地址原本的指令码并储存起来,再把软件中断点指令码写 至中断点地址,待中断点完成后再将原先储存的指令码写回中断点地址。DMA控制单元123执行直接存储器存取,即根据存储器读取或写入的地址 要求主控制单元121读取或写入数据至目标板存储器,而且DMA控制单元 123可以内建一个緩冲区,以便在主机接口单元110跟目标板接口单元130 速度不一致时,先将数据暂存于此緩冲区再输出至目标板。追踪緩冲区控制 单元124负责将程序执行过程记录于追踪緩沖区,并在主4几要求时将数据经 由主控制单元121传给主机。
图2所示为另 一种传统的仿真器的方框图,其为Green Hills Software公 司的产品。请参照图2,仿真器200包括主机接口单元210、 ICE功能单元
220、 目标板接口单元230,其中ICE功能单元220包括中央处理器(CPU)
221、 动态随机存取存储器(DRAM) 222、闪存存储器223及现场可编程门 阵列(FPGA) 224。
主机接口单元210负责跟主机沟通并将信息传给ICE功能单元220,在 此产品中主机接口单元210包括USB、 RS-232及以太网(Ethernet)三种传 输接口。 ICE功能单元220内的中央处理器221负责执行仿真器200所需功 能,其分别利用动态随机存取存储器222及闪存存储器223储存控制程序及 条件式且复杂的中断点。通过程序化现场可编程门阵列224再搭配目标接口 单元230,使得CPU221能够再组态(reconfigured)以应付不同接口的目标 板。
如图l所示的仿真器100,其缺点在于目标板接口单元130只有单一接 口跟目标板进行连接,若连接到另一个不同接口的目标板则必须重新设计或 更换不同的仿真器。另外,目标板接口单元130—般不可以同时连接两个以 上不同接口的目标板,即仿真器IOO—次只能处理一个目标板。而如图2所 示的仿真器200,其缺点在于当使用者欲使用自定义接口的目标板时,势必 要仿真器设计公司的介入及帮助,重新设计电路并烧录到现场可编程门阵列 224才有可能。

发明内容
有鉴于此,本发明的目的就是在提供一种仿真器及其适配方法,其对于 目标板的接口具有可组态的功能,因此针对不同接口的目标板不再需要重新
设计或更换仿真器。
基于上述及其他目的,本发明提出一种仿真器,用以提供一主机及当 前目标板之间数据的传递。此仿真器包括一主机接口单元、 一仿真器功能单 元、 一非易失存储器及一微控制器。主机接口单元耦接于主机及仿真器功能 单元之间,用以跟主机沟通并将信息传给仿真器功能单元。仿真器功能单元 耦接于主机接口单元及微控制器之间,用以执行仿真器所需功能,包含设定 指令中断点、数据中断点或软件中断点。非易失存储器耦接于仿真器功能单 元及微控制器之间,用以存放一固件程序。微控制器耦接到仿真器功能单元、 非易失存储器及当前目标板,用以执行固件程序来跟当前目标板沟通,并将 执行仿真器所需功能的信息传给当前目标板。
基于上述及其他目的,本发明提出 一种仿真器与目标板接口的适配方 法,该仿真器存放有一固件程序,并连接在一主机及当前目标板之间,该方
法包括以下步骤仿真器中的微处理器判断该固件程序是否支持当前目标 板,如果支持,微处理器执行该固件程序并进行该主机及该当前目标板间的 数据传输,结束。如果不支持,判断该主机是否有其他新的固件程序,如杲 没有,连接失败,如果有,该主机更新该仿真器上存放的该固件程序,仿真 器中的微处理器重新判断该固件程序是否支持当前目标板。
上述仿真器的适配方法尚包括下列步骤如果该固件程序不支持该 当前目标板,则先判断该固件程序是否还支持其他接口,如果支持,该固件 程序切换到下一个支持的接口 。
本发明因利用内嵌微控制器执行预先存放在非易失存储器内的固件程 序,使得此仿真器对于目标板具有可组态的多重接口。这样一来,不但可以 节省仿真器开发者在开发相关产品的时间与成本,同时可以排除使用者在使
用上造成的不便的情形发生。对仿真器设计者而言,未来扩充性仅需考虑固 件程序的维护或更新,即可利用单一元件达成设计需求,进而降^f氐终端产品 的成本。
为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举优 选实施例,并配合附图作详细说明如下。


图1所示为一种传统的仿真器的方框图。
图2所示为另一种传统的仿真器的方框图。 图3至图5所示为依照本发明不同实施例的仿真器的方框图。 图6及图7所示为依照本发明不同实施例的仿真器中,微控制器对辅助 硬件电路的控制方式示意图。
图8所示为依照本发明一实施例的仿真器的适配方法的流程图。
具体实施例方式
图3所示为依照本发明一实施例的仿真器的方框图。请参照图3,仿真 器300包括主机接口单元310、仿真器(ICE )功能单元320、微控制器(MCU) 330、易失存储器340及非易失存储器350,其中易失存储器340例如是动 态随机存取存储器(DRAM),而非易失存储器350例如是闪存存储器。
主机接口单元310负责跟主机沟通并将信息传给仿真器功能单元320, 其例如是USB接口、并行端口或以太网传输接口。仿真器功能单元320负 责执行仿真器300所需功能,并将上述相关执行动作及结杲通过微控制器 330跟目标板沟通。其中,仿真器功能单元320可以如同图1的仿真器功能 单元120—般,其包括主控制单元、中断点控制单元及可选的DMA控制单 元、追踪緩冲区控制单元。主控制单元执行仿真器300所需功能,例如通过 中断点控制单元设定指令中断点、数据中断点或软件中断点,通过DMA控 制单元执行直接存储器存取,或通过追踪緩沖区控制单元将程序执行过程记 录于追踪緩冲区以便在主机需要时将数据回传。
在本发明中,仿真器300内嵌微控制器330,以取代图1中的目标板接 口单元130作为控制目标板接口的装置。仿真器功能单元320将执行动作与 结果输入微控制器330,然后微控制器330搭配供其存取数据或程序的易失 存储器340来执行预先存放在非易失存储器350的固件程序,并且根据支持 的目标板接口信号少见格,利用通用输入输出端口 ( General Purpose Input Output,简称为GPIO)跟目标板进行沟通。
除此之外,内嵌的微控制器330可以用来做仿真器300的自我诊断。当
仿真器300或目标板发生问题,利用微控制器330即可解决,若无法解决 也可先把一些信息提取出来以便加速理清问题。例如,仿真器300跟目标板 之间的时钟是由仿真器300决定频率并送出,若仿真器300跟目标板因频率 不合无法连接,则在微控制器330发现无法连上时可以主动切换至较低频 率,达成自动调校频率功能而无须使用者介入。相反地,传统的仿真器在跟 目标板因频率不合无法连接时,通常都必须由使用者去更换震荡器或是由主 机下命令指定适当频率。
再者,当使用者使用自定义接口的目标板时,为了符合自定义的目标板 接口,使用者可以修改存放在非易失存储器350中微控制器330的固件程 序,或者可以设计成根据使用者规定的目标板接口信号由软件程序自动产 生,如此只要更新固件即可。但是,传统的如图2的仿真器200在面对使用 者自定义的目标板接口时,必须由仿真器设计公司重新设计电路并烧录到 FPGA224才能够符合自定义的目标板接口。此外,应用微控制器330的中 断可使得仿真器300在使用上更具弹性,特殊事件可以即时通知微控制器 300处理。例如,追踪緩沖区一般来说如果溢满就会覆盖到先前的数据而造 成先前的数据流失,此时若利用中断通知微控制器330,发出中断使目标板 的工作暂停,先将追踪緩冲区的数据送到主机存起来后,再恢复目标板的工 作。
至于存放在非易失存储器350中的固件程序的更新方式,可以由主机将 更新的固件程序通过仿真器功能单元320直接将非易失存储器350程序化, 如此仅需由软件操作即可达到更新效果,兼具扩充性与便利性。仿真器300 的固件程序也可以为一特定的启动程序,使微控制器330启动后通过主机 接口单元310跟主机沟通,以便更换不同目标板接口所需的微控制器程序及 数据,以如此动态载入程序的方式更免除了固件更新的需求。
藉由微控制器330的GPIO端口足够多,仿真器300可以同时接上两个 或以上目标板,使得仿真器300可以一次处理两个或以上接口不同的目标 板。例如图4的实施例中,仿真器300通过微控制器330同时连接两个不同 的目标*反。
考虑到GPIO端口速度问题,应需求可在微控制器330旁加上一个数据
转换或命令模式的辅助硬件电路(Glue Logic),例如图5的辅助硬件电路 360。在图5的实施例中,微控制器330不直接输出目标板接口信号,而是 将数据经由此电路输出。辅助硬件电路360接受微控制器330控制的方式, 其中一种是转换成命令才莫式来进行,如图6所示。微控制器330将所需进 行动作利用命令模式,可能包含命令、地址、数据等经由GPIO端口传送给 辅助硬件电路360进行沟通,辅助硬件电路360再根据执行结果回应微控制 器330。另一种是如图7所示,GPIO端口每一信号代表不同的命令,例如 各自代表设定指令中断点、设定数据中断点、以及设定软件中断点等不同命 令。微控制器330将所需信息经由数据緩沖区单元370与辅助硬件电路360 沟通,并以GPIO端口通知辅助硬件电路360进行所需动作,辅助硬件电路 360再根据执行结果回应微控制器330。在一实施例中,辅助硬件电路360 是一个可编程装置,例如FPGA,若需变更硬件,则可将辅助硬件电路360 的编程数据输入到微控制器330,再经由微控制器330去编程辅助硬件电 路360。
图8所示为图3所示仿真器300的适配方法的流程图。请同时参照图3 与图8,在步骤S801,仿真器300与主机及目标板连接。接着,使用者选择 业界标准(例如JTAG、 EJTAG、 BDM)或自定义的目标板接口 ,经由主机 通知微控制器330。然后,在步骤S802,微控制器330执行预先存放在非 易失存储器350内的固件程序,判断是否支持目前的目标板接口。若固件程 序支持目前的目标板接口 ,则在步骤S803将对应程序复制到易失存储器340 以加快微控制器330执行速度,其中微控制器330可以利用GPIO接口与 目标板进行沟通,此时到步骤S804:此时连接主机及目标板成功,进行数 据传输。
若固件程序不支持目前的目标^L接口 ,则在步骤S805判断固件程序是 否还支持其他接口。当固件程序设计成具有多种接口,则到步骤S806将固 件程序切换到下一个接口,再回到步骤S802继续执行。当固件程序支持的 接口均不符合目标板接口或只支持一种接口 ,则只能到步骤S807看主机是 否有其他新的固件程序。再来,若主机有新的固件程序则在步骤S808可以 用来更新非易失存储器350内的固件程序,再回到步骤S802继续执行。反
之,若主机没有新的固件程序,则到步骤S809此时连接主机及目标板失败。
综上所述,本发明利用内嵌微控制器执行预先存放在非易失存储器内的 固件程序,使得此仿真器对于目标板具有可组态的多重接口。这样一来,不 但可以节省仿真器开发者在开发相关产品的时间与成本,同时可以排除使用 者在使用上需重新设计或更换仿真器等所造成的不便的情形发生。对仿真器 设计者而言,未来扩充性仅需考虑固件程序的维护或更新,即可利用单一元 件达成设计需求,进而降低终端产品的成本。
虽然本发明已以优选实施例揭露如上,然其并非用以限定本发明,任何 熟习此技术者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰, 因此本发明的保护范围当视后附的权利要求范围所界定的为准。
权利要求
1、一种仿真器,用以提供一主机及当前目标板之间数据的传递,该仿真器包括一仿真器功能单元,用以执行该仿真器所需功能;一主机接口单元,耦接至该主机及该仿真器功能单元,用以跟该主机沟通并将信息传给该仿真器功能单元;一非易失存储器,耦接至该仿真器功能单元,用以存放一固件程序;以及一微控制器,耦接至该仿真器功能单元、该非易失存储器及该当前目标板,用以执行该固件程序来跟该当前目标板沟通,并将执行该仿真器所需功能的信息传给该当前目标板。
2、 如权利要求1所述的仿真器,其中还包括一易失存储器,耦接至该仿真器功能单元及该微控制器,用以暂存该微 控制器欲执行的程序。
3、 如权利要求2所述的仿真器,包含设定一指令中断点、 一数据中断 点或一软件中断点。
4、 如权利要求1所述的仿真器,其中还包括一辅助硬件电路,耦接至该微控制器,用以辅助该微控制器及该当前目 标+反间的沟通。
5、 如权利要求1所述的仿真器,其中该仿真器功能单元包括一中断点控制单元,用以设定一指令中断点、 一数据中断点或一软件中 断点;以及一主控制单元,耦接至该主机接口单元、该微控制器及该中断点控制单 元,用以控制该中断点控制单元,并执行该仿真器所需功能。
6、 如权利要求5所述的仿真器,其中该仿真器功能单元还包括一直接存储器存取控制单元,耦接至该主控制单元,用以执行直接存储 器存取。
7、 如权利要求5所述的仿真器,其中该仿真器功能单元还包括 一追踪緩冲区控制单元,耦接至该主控制单元,用以记录该仿真器工作过程的信息于追踪緩冲区,并在该主机要求时将数据经由该主控制单元传 给该主才几。
8、 权利要求5所述的仿真器,其中该微控制器包括当前通用输入输出端口,耦接至该当前目标板,用以沟通该微控制器及 该当前目标板。
9、 一种仿真器与目标板接口的适配方法,该仿真器存放有一固件程序, 并连接在一主机及当前目标板之间,该方法包括(a) 仿真器中的微处理器判断该固件程序是否支持当前目标板,如果 支持,执行步骤(c),如果不支持,执行步骤(b);(b) 判断该主机是否有其他新的固件程序,如果有,该主机更新该仿 真器上存放的该固件程序,返回步骤(a),否则,连接失败。(c) 微处理器执行该固件程序并进行该主机及该当前目标板间的数据 传输,结束。
10、 如权利要求9所述的方法,其中所述步骤(a)中,如果该固件程 序不支持该当前目标板,则先判断该固件程序是否还支持其他接口,如果支 持,该固件程序切换到下一个支持的接口,返回步骤(a);如果已不支持 其他接口,再执行步骤(b)。
11、 如权利要求9所述的方法,其中步骤(c)中,先将该固件程序中 支持该当前目标板的对应程序从该仿真器的一非易失存储器复制到该仿真 器的一易失存储器,以加快该对应程序的执行速度。
全文摘要
一种仿真器(ICE)及其适配方法,包括主机接口单元、ICE功能单元、微控制器(MCU)、易失存储器及非易失存储器。主机接口单元负责跟主机沟通并将信息传给ICE功能单元。ICE功能单元负责执行仿真器所需功能,例如设定指令中断点、数据中断点或软件中断点等,并将上述相关执行动作及结果通过MCU跟目标板沟通。本发明利用MCU搭配供其存取数据或程序的易失存储器来执行预先存放在非易失存储器内的固件程序,使得此仿真器对于目标板具有可组态的多重接口。从而,不但可以节省仿真器开发者在开发相关产品的时间与成本,同时可以排除使用者在使用上造成的不便的情形发生。
文档编号G06F11/36GK101097541SQ20061008678
公开日2008年1月2日 申请日期2006年6月26日 优先权日2006年6月26日
发明者高敏富, 黄一桓, 黄明权 申请人:凌阳科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1