一种集成电路测试仪在线编程的动态配置方法

文档序号:6441530阅读:264来源:国知局
专利名称:一种集成电路测试仪在线编程的动态配置方法
技术领域
本发明属于在线编程技术领域,更为具体地讲,涉及一种集成电路测试仪在线编程的动态配置方法。
背景技术
1、集成电路的测试美国TI公司宣布研制出世界上第一块IC芯片至今已经将近六十多年了。随着集成电路技术及其产业的发展,其推动了计算机技术、软件技术、通信技术、信息技术等高新技术,为国民经济各个产业的发展和现代化建设提供了良好的基础。如今集成电路产品在社会生活中应用越来越广泛,诸如通信设备、航空航天、国防设备、工业制造、数码产品甚至各类家用电器和玩具,集成电路已经成为现代高科技工业的基础。集成电路测试是保证集成电路性能的关键手段之一,在芯片的设计、制造和具体应用的每一个环节,都需要对集成芯片进行测试和检验。一方面,目前芯片的需求量越来越大,另一方面,针对各种各样的应用场合,集成电路的种类也越来越多。目前各个厂家推出的集成电路型号上千种,而每只集成电路在出厂前都必须经过严格测试。因此如何快速且有效地测试各类集成电路对目前集成电路发展具有重要意义。为了满足日益增长的集成电路数量和种类,集成电路测试仪应具有以下特点(1)、快速的进行集成电路测试。O)、用户根据不同集成电路的测试需求,编写测试程序并下载到集成电路测试仪中。2、集成电路测试程序的下载目前,集成电路测试程序的下载主要分为两类(1)、非在线编程这一类方法是将测试程序下载到固定的存储器中,通过专用的烧写器进行测试程序下载,测试程序下载好后用户一般不能随意更改程序。若用户需要更新测试程序则必须将程序存储器从集成电路测试仪的电路板上取下来放入烧写器中,把程序重新固化在程序存储器中。O)、在线编程。在线编程的方法又具体分为两种第一种方法是通过烧写器配合串口、并口线或通过专用接口将测试程序下载到程序存储器里,用户下载测试程序时需要停止目前运行的程序,并且在上位机(一般采用PC机)上进行下载的测试程序的各种测试参数的配置;第二种方法是通过程序存储器中的引导程序将测试程序下载到另一片存储器,即运行存储器中,然后从存储新测试程序中的存储器中启动。用户每次下载测试程序时都必须手动先切换到引导程序的存储器,下载成功后再手动切换回运行存储器,并需要手动复位。第(1)种方法不能实现在线编程,测试程序的更新比较麻烦,已经不能满足目前集成电路测试仪的实际需要。第(2)种方法虽然能实现在线编程,但是其中的第一类方法每次下载程序时都必须用到专门的下载软件,而且下载程序时需要停止目前运行的程序, 因此不满足集成电路测试在线编程的仪动态配置这一需求;第二类方法由于用户可能时常更改测试程序,而下载时每次都需要手动切换选择存储器,这样显然是繁琐的。

发明内容
本发明的目的在于现有技术的不足,提供一种集成电路测试仪在线编程动态的配置方法,以实现测试程序在线快速高效的编程。为实现上述发明目的,本发明集成电路测试仪在线编程的动态配置方法,其特征在于,包括以下步骤(1)、在集成电路测试仪的上位机中,上电后用户可以选择是否重新编写测试程序,如果重新编写测试程序,则上位机将新编写的测试程序进行编译后通过USB接口向下位机下载,下载成功后,等待下位机通过USB接口返回测试结果,如果有返回测试结果,则接收测试结果并保存;如果不需要重新编写测试程序,则直接等待下位机通过USB接口返回测试结果,如果有返回测试结果,则接收测试结果并保存;O)、在集成电路测试仪的下位机中,将微处理器的一外部引脚定义为启动闪存选择引脚,用户在测试程序出错的情况下,将启动闪存选择引脚电平设置NorFlash闪存启动对应的电平,否则,设置为NandFlash闪存启动对应的电平;下位机上电后,微处理器根据启动闪存选择引脚的电平,决定从NorFlash闪还是从NandFlash闪存启动;如果从NandFlash闪存中启动则代表测试仪目前的状态为运行模式,微处理器将 NandFlash闪存中前段的启动程序自动拷贝到它内部的SRAM存储器中,微处理器运行启动程序,把前段的启动程序和后一段的测试程序从NandFlash闪存中拷贝到外接的SDRAM存储器中,然后从SDRAM存储器中取指令开始执行,进行测试任务,然后将测试结果通过USB 接口返回上位机;在测试过程中,如果接收到上位机发送的数据,则判断是否为测试程序, 如果是,则将该测试程序存入NandFlash闪存中并覆盖之前的测试程序,然后自动重启并根据新的测试程序进行测试;如果从NorFlash闪存启动,则代表测试仪器目前的状态为下载模式,微处理器直接从NorFlash闪存中读取引导下载程序并执行,初始化USB接口完成后开始等待测试程序下载,下载成功后微处理器将测试程序直接写入到NandFlash闪存中,覆盖之前的测试程序,然后用户再重新设置启动闪存选择引脚的电平,切换回运行模式,并重新启动。本发明的发明目的是这样实现的本发明集成电路测试仪在线编程的动态配置方法,通过在下位机中设置启动闪存选择引脚,用于在测试程序出错的情况下,微处理器直接从NorFlash闪存中取指令执行, 等待下载测试程序,用于集成电路的测试;而正常的情况下,通过将NandFlash闪存的数据直接拷贝到外接的SDRAM存储器运行,进行测试任务,如果在测试过程中接收到上位机发送的测试程序,则自动将下载的测试程序存入NandFlash闪存中并覆盖之前的测试程序, 然后自动重启并根据新的测试程序进行测试。这样,就不需要进行切换存储器,因此可快速且可根据用户需求动态配置测试环境。此外,用户可以通过上位机将测试程序下载下位机中,这样,集成电路测试仪的下位机可以脱离上位机独立运行,实现快速测试及动态配置。


图1是集成电路测试仪的总体结构图;图2是本发明集成电路测试仪在线编程动态的配置方法的一具体实施方式
的流程图;图3是集成电路测试仪运行模式下上电启动过程一具体实例原理框图;图4是集成电路测试仪程序下载过程一具体实例原理框图;图5是动态配置过程的以具体实施方式
流程图;图6是集成电路测试仪自动配置过程一具体实例原理框图;图7是看门狗连接示意图。
具体实施例方式下面结合附图对本发明的具体实施方式
进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。图1是集成电路测试仪的总体结构图如图1所示,在本实施例中,集成电路测试仪由上位机、以及下位机的ARM核心板、 显示面板、功能子板、测试板、背板、分选机等硬件组成,其中ARM核心板由NorFlash闪存、 NandFlash闪存、SDRAM存储器、ARM微处理器以及USB接口组成。由总体结构图1可以看出,显示面板同ARM核心板相连,和功能子板、测试板等一起插到背板上,各个功能子板都通过背板内的总线相连,USB接口负责上位机和ARM核心板的通信。ARM核心板是整个集成电路测试仪的主控部分,在本实施例中,选择了 ARM微处理器S3C2440作为硬件的核心处理器,S3C2440微处理器是基于ARM920T的处理器,稳定时钟频率高达 400MHz。ARM 核心板由 NorFlash、NandFlash、SDRAM 和 ARM 组成。其中 NandFlash 是一种大容量的闪存,程序不能直接在NandFlash中运行,当程序需要运行时需要将程序先拷贝到SDRAM中。NandFlash的写入擦除速度很快,并且每个块的最大擦写次数高达一百万次。根据NandFlash的特点,将NandFlash用来存储测试程序。由于测试系统一上电就需要进入等待测试状态,所以将微处理器S3C2440设置成上电后从NandFlash启动; NorFlash由于容量一般较小,并且写入擦除速度也远远低于NandFlash,但是NorFlash的接口与内存相似,可以直接在NorFlash中运行程序,而且可靠性远远高于NandFlash,因此在NorFlash中存储不太常用到的引导下载程序。显示面板主要用来显示测试结果以及完成一些基本控制,显示如所测芯片数量、 合格率、上位机是否在线等;控制包括启动、停止、计数清零和复位。功能子板主要用于测试系统中的激励施加,如施加电流或施加电压;测试板用于测试具体器件的硬件电路,如模拟测试板用于测试运算放大器、比较器及模拟开关。分选机根据测试结果对待测器件进行自动的分拣和筛选。从上料,到测试,再到分类,实现整个测试流程的自动化。图2是本发明集成电路测试仪在线编程动态配置方法的一具体实施方式
的流程图。如图2所示,在本实施例中,集成电路测试仪分为上位机和下位机两部分,它们分别独立运行,通过USB接口进行数据交换。上位机的运行流程为上电后用户可以选择是否重新编写测试程序,如果重新编写测试程序,则上位机将新编写的测试程序进行编译后通过USB接口向下位机下载,下载成功后,等待下位机通过USB接口返回测试结果,如果有返回测试结果,则接收测试结果并保存;如果不需要重新编写测试程序,则直接等待下位机通过USB接口返回测试结果,如果有返回测试结果,则接收测试结果并保存。下位机在测试过程中,用户可以随时更改测试程序并下载,上位机和下位机独立运行互不影响。下位机运行流程为在上电时,ARM处理器通过其外部引脚的电平决定从哪片 Flash启动的。在本实施例中,定义其外部引脚0M[1:0]为启动闪存选择引脚,0M[1:0]= 01表示OMW]为高电平,0M[1]为低电平,当引脚0M[1:0] = 01时从NorFlash启动,当 OM[1:0] =00 时从 NandFlash 启动。下位机上电后,如果从NandFlash闪存中启动则代表测试仪目前的状态为运行模式,ARM处理器NandFlash闪存中前段的启动程序自动拷贝到它内部的SRAM存储器中。ARM 处理器运行启动程序,把前段的启动程序和后一段的测试程序从NandFlash闪存中拷贝到外接的SDRAM存储器中,判断是否有下载测试程序,如果没有,从SDRAM存储器中取指令开始执行,进行测试任务,然后将测试结果通过USB接口返回上位机,然后,再判断是否有下载测试程序。如有下载测试程序,则将该测试程序存入NandFlash闪存中并覆盖之前的测试程序,然后自动重启并根据新的测试程序进行测试。在未出错的情况下,集成电路测试仪都是采用NandFlash闪存启动的模式。在测试过程中,如果接收到上位机发送的数据,则判断是否为测试程序,如果是,则将该测试程序存入NandFlash闪存中并覆盖之前的测试程序,然后自动重启并根据新的测试程序进行测试。如果从NorFlash闪存启动,则代表测试仪器目前的状态为下载模式,ARM处理器直接从NorFlash闪存中读取引导下载程序并执行,初始化USB接口完成后开始等待测试程序下载,下载成功后微处理器将测试程序直接写入到NandFlash闪存中,覆盖之前的测试程序,然后用户再重新设置启动闪存选择引脚的电平,切换回运行模式,并重新启动。测试完成后分选机自动分开优劣元器件,同时下位机将测试结果通过USB接口发送到上位机并实时将结果显示到面板上,之后转入下一次测试。一、动态配置具体实现步骤1. 1动态配置的三个步骤集成电路测试仪的动态配置过程实现分为三个步骤,分别为上电启动、程序下载以及自动复位。分别如图3、4、5所示。1.2上电启动图3为集成电路测试仪运行模式下上电后第一步,主要做两个工作第一集成电路测试仪一上电,下位机微处理器,即ARM处理器,把存储在 NandFlash闪存中的启动程序自动拷贝到它内部的SRAM存储器中运行,启动程序的目的是对下位机硬件进行初始化,例如禁止看门狗、禁止外部中断、初始化SDRAM等,这些工作都将在ARM处理器的内部SRAM中执行,然后复制启动程序、测试程序到SDRAM的A区,如图3 黑色粗线条。第二 由图3可知,在本实施例中,SDRAM存储器被划分为三个区,A区为存储在正常运行模式下从NandFlash拷贝过来的启动程序和测试程序;中间部分的大片内存分区为预留给测试仪使用的分区,用以满足变量空间的分配以及中断处理过程栈区的分配等;剩下的B区用于存放下载的测试程序。然后判断是否接收到测试程序,如有则进进入程序下载。1. 3程序下载在本实施例中,数字集成电路测试仪采用基于USB1. 1传输协议的USB数据传输。 采用USB传输有两个原因一是因为目前几乎所有的PC机都提供了 USB接口,这样设计使用范围更广;二是因为下位机的ARM处理器内部集成了 USB1. 1接口,其传输速度能达到 12Mbps,速度能很好的满足需求。USB的通信模式大致可分为批量传输、中断传输、等时传输以及控制传输四种模式。在本实施例中,数字集成电路测试仪中使用了其中的两种模式,即控制传输和中断传输。控制传输主要用于建立上下位机通信;中断模式用于数字集成电路测试仪数据传输。 USB协议规定传输过程中必须进行CRC校验,因此数据的可靠性非常高。图4显示了数字集成电路测试仪的测试程序下载的具体流程。其中黑色粗实线箭头给出了上位机,即PC机传入的数据流向。在内存中开辟的另外一个分区B区用于缓存来自上位机,即PC机通过USB传入的数据,其大小为从SDRAM存储器顶部往下的48MB,起始地址为0x31000000,在本实施例中,SDRAM存储器起始地址0x30000000,总大小为64MB。在对接收到的数据进行判断,如果是测试程序,则进行校验后,将测试程序写入到NandFlash 闪存中。图4中PC机,即上位机给下位机传输的数据是经过上位机处理后带特殊格式的数据,如表1所示。
第0字节第4到第7字节 ·.最后4字节帧头代码长度(包括校验位)真正的代码数据段校验位表 1表1为上下位机组织的数据帧格式。表1中的帧头用于区分数据类型,根据其数据不同执行不同的操作。下位机在接收到来自USB接口的第一次中断时,首先从USB缓冲区 (FIFO)中读取第一字节,根据帧头信息判断是否为动态配置代码,如果为动态配置代码,在本实施例中,定义为type = 100,则将余下数据送入SDRAM存储器中B区的第一字节开始后的区域。由表1中可知接下来的第四到第七的四字节为代码的长度,用以判断数据是否接收完成。最后4个字节为校验位,其处理流程如图5所示。如图5所示,首先对上位机发送来的数据进行判断,如果是动态配置代码,则发送来的是测试程序,对测试程序进行接收,并送入SDRAM的B区缓存;接收完毕后,即全部存放到SDRAM存储器的B区后进行校验,进行校验,如果不正确,则返回信息给上位机,让其重新发送,如果正确,则将其从SDRAM的B区写入到NandFlash闪存中。测试程序写入NandFlash 闪存后,需要将读出写入的测试程序,检验写入是否正确,如果不正确,则重新写入,如果正确,则启动看门狗,看门狗为一定时器,当达到设置时间后,复位ARM处理器,自动重启,然后下位机根据新的测试程序进行测试。在本实施例中,测试程序总共在两个地方进行了校验。第一次是在测试程序从上位机传输完成后,这次校验的重要性在于判断数据传输过程中的完整性,如果出错,下位机将向上位机发送数据重传请求;第二次校验发生在将正确测试程序写入NandFlash闪存中,这一步的校验工作由硬件自动进行,校验位需要写入约定好的NandFlash中的spare 区。再次从NandFlash闪存中读出测试程序时每读一页(NandFlash闪存储存以页的机制存储)需与校验位进行对比,如果两者相同,则写入的测试程序正确,否则写程序出错,进而对刚才写入的测试程序进行重写。这样的双重校验很好的保证了数字集成电路测试仪的稳定性。1. 4系统重启如图5、6所示,在本实施例中,动态配置的最后一步的系统重启基于看门狗技术, 首先了解一下看门狗的工作原理。看门狗(watchdog timer)是一个定时器电路,其连接示意图如图7所示。首先需要对看门狗计数器预置一个初值,ARM处理器正常工作时,看门狗计数器WDT对输入时钟 CLK进行计数,ARM处理器每隔一段时间输出一个信号对WDT清零,如果超过预置时间不进行清零,WDT将发生溢出并产生复位信号对ARM处理器复位。看门狗一般用于防止程序发生死循环。外部复位电路用于对ARM处理器的复位。在本实施例中,选用的S3C2440内部集成了看门狗电路,如图5、6、7所示,在配置了看门狗计数器寄存器和看门狗控制器后即可启动看门狗。为了数字集成电路测试仪的正常运行,在平时测试过程中关闭了看门狗。在进入处理动态配置过程的第二阶段中,即把下载的测试程序写入到NandFlash闪存以及校验成功后,此时开启看门狗。经过系统时钟的分频,看门狗的输入时钟设为50MHz,计数初值设为100000,测试仪进入等待复位状态。经过计算可知2ms后计数器将发生溢出,此时系统自动复位。复位后运行的新测试程序就更新为用户需要的测试代码了,从而达到动态配置功能。动态重新配置成功后,就运行在用户编写的新测试程序环境下了。这时候用户可以通过发送命令让下位机按照用户自己的指令返回测试数据。测试结果可以通过查看测试仪上的显示面板,也可以通过命令的形式让下位机把数据传回上位机显示在PC机的特定软件上。一、出错维护系统出错的原因主要有两种一种是NandFlash闪存的硬件机制导致容易出现坏块,因此NandFlash闪存中的数据很有可能因为外部因素而发生改变,进而系统不能正常工作;另一种是在对NandFlash写测试程序的过程中突然被外部因素中断,导致测试程序只有部分写到NandFlash,由于测试程序的不完整性不能从NandFlash闪存启动。在系统出错的情况下,本发明提供了一个维护方案=NorFlash闪存中固化了一段引导下载程序,用以向NandFlash闪存写数据——即当系统不能从NandFlash闪存中正常启动后,手动调节 0M[1:0]的状态使测试仪处于下载模式,从NorFlash闪存启动,然后通过NorFlash闪存的引导程序再次对NandFlash闪存进行测试程序的写入,写入后,手动将测试仪置于运行模式。
尽管上面对本发明说明性的具体实施方式
进行了描述,以便于本技术领的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式
的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
权利要求
1.一种集成电路测试仪在线编程的动态配置方法,其特征在于,包括以下步骤(1)、在集成电路测试仪的上位机中,上电后用户可以选择是否重新编写测试程序,如果重新编写测试程序,则上位机将新编写的测试程序进行编译后通过USB接口向下位机下载,下载成功后,等待下位机通过USB接口返回测试结果,如果有返回测试结果,则接收测试结果并保存;如果不需要重新编写测试程序,则直接等待下位机通过USB接口返回测试结果,如果有返回测试结果,则接收测试结果并保存;O)、在集成电路测试仪的下位机中,将微处理器的一外部引脚定义为启动闪存选择引脚,用户在测试程序出错的情况下,将启动闪存选择引脚电平设置NorFlash闪存启动对应的电平,否则,设置为NandFlash闪存启动对应的电平;下位机上电后,微处理器根据启动闪存选择引脚的电平,决定从NorFlash闪还是从 NandFlash闪存启动;如果从NandFlash闪存中启动则代表测试仪目前的状态为运行模式,微处理器将 NandFlash闪存中前段的启动程序自动拷贝到它内部的SRAM存储器中,微处理器运行启动程序,把前段的启动程序和后一段的测试程序从NandFlash闪存中拷贝到外接的SDRAM存储器中,然后从SDRAM存储器中取指令开始执行,进行测试任务,然后将测试结果通过USB 接口返回上位机;在测试过程中,如果接收到上位机发送的数据,则判断是否为测试程序, 如果是,则将该测试程序存入NandFlash闪存中并覆盖之前的测试程序,然后自动重启并根据新的测试程序进行测试;如果从NorFlash闪存启动,则代表测试仪器目前的状态为下载模式,微处理器直接从 NorFlash闪存中读取引导程序和下载程序并执行,初始化USB接口完成后开始等待测试程序下载,下载成功后微处理器将测试程序直接写入到NandFlash闪存中,覆盖之前的测试程序,然后用户再重新设置启动闪存选择引脚的电平,切换回运行模式,并重新启动。
2.根据权利要求1所述的集成电路测试仪在线编程的动态配置方法,其特征在于,所述的SDRAM存储器分为三个区A区、B区以及A区、B区之间的区域;A区为存储在正常运行模式下从NandFlash拷贝过来的启动程序和测试程序;中间部分的大片内存分区,即A区、B区之间的区域为预留给测试仪使用的分区,用以满足变量空间的分配以及中断处理过程栈区的分配;剩下的B区用于存放下载的测试程序;所述的下载成功后微处理器将测试程序直接写入到NandFlash闪存中,先将测试程序存放到SDRAM存储器的B区进行缓存,然后在写入到NandFlash闪存中。
3.根据权利要求2所述的集成电路测试仪在线编程的动态配置方法,其特征在于,测试程序接收完毕后,即全部存放到SDRAM存储器的B区后进行校验,如果不正确,则返回信息给上位机,让其重新发送,如果正确,则将其从SDRAM的B区写入到NandFlash闪存中;测试程序写入NandFlash闪存后,需要读出写入的测试程序,检验写入是否正确,如果不正确,则重新写入。
全文摘要
本发明公开了一种集成电路测试仪在线编程动态配置方法,通过在下位机中设置启动闪存选择引脚,用于在测试程序出错的情况下,微处理器直接从NorFlash闪存中取指令执行,等待下载测试程序,用于集成电路的测试;而正常的情况下,通过将NandFlash闪存的数据直接拷贝到外接的SDRAM存储器运行,进行测试任务,如果在测试过程中接收到上位机发送的测试程序,则自动将下载的测试程序存入NandFlash闪存中并覆盖之前的测试程序,然后自动重启并根据新的测试程序进行测试。这样,就不需要进行存储器切换,因此可快速且可根据用户需求动态配置测试环境。同时,集成电路测试仪的下位机可以脱离上位机独立运行,实现快速测试及动态配置。
文档编号G06F9/445GK102565671SQ20111042294
公开日2012年7月11日 申请日期2011年12月16日 优先权日2011年12月16日
发明者古军, 周建, 商洪亮, 康波, 杨建军, 王寅, 罗时雨, 詹惠琴 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1