基于软件自测试技术的慢速外设高效测试架构及方法与流程

文档序号:13915875阅读:487来源:国知局
基于软件自测试技术的慢速外设高效测试架构及方法与流程

本发明公开电路基于软件自测试技术的慢速外设高效测试架构及方法,属于处理器测试的技术领域。



背景技术:

慢速外设的测试是处理器系统测试的研究方向之一。慢速外设的时钟频率远远低于处理器时钟频率导致处理器在测试慢速外设时长时间处于空闲阶段。

现有的慢速外设(如:UART、I2C、SPI)的时钟频率远低于处理器的时钟频率,例如,处理器的时钟为100M,而外设时钟只有10M、20M,甚至更低。同时又由于采用的是串行的数据传输方式,上述原因导致处理器与这类外设之间进行数据传输时所需等待的时间过长,严重限制了处理器的高速处理性能,也影响了慢速外设的测试效率。

传统的内建自测试、边界扫描技术等,除了需要增加硬件电路开销以外,还有随之而来的功耗开销,同时缺乏灵活的可扩展性。软件自测试技术是利用处理器可编程资源来运行规范的程序以实现测试处理的一种新型处理器测试技术,本发明旨在提出一种新型的基于软件自测试技术的慢速外设高效测试架构及方法。



技术实现要素:

本发明的发明目的是针对上述背景技术的不足,提供基于软件自测试技术的慢速外设高效测试架构及方法,无需另外添加的伪随机数发生器电路,同时利用测试调度算法合理、高效地实现慢速外设的测试,解决了现有慢速外设测试功耗大、可扩展性差的技术问题。

本发明为实现上述发明目的采用如下技术方案:

基于软件自测试技术的慢速外设高效测试系统为具有软件自测功能的微处理器系统,采用该微处理器系统对挂接在外部总线上的外设进行测试,

所述微处理器系统包含:

ROM,存储测试向量生成程序以及测试调度程序;

挂接在外部总线上的微处理器核,调用测试向量生成程序以产生符合各慢速外设测试要求的测试向量集,调用测试调度程序生成用于调整测试地址、调用测试向量生成程序、按照优先测试等待时间最长测试组并利用执行等待时间最长测试组中各测试行为的时间间隔执行其余测试组的原则生成测试向量施加顺序、按序施加测试向量、按序收集测试响应数据的测试指令,所述按序施加测试向量、按序收集测试响应数据的测试指令通过外部总线传输至外设;

RAM,存储微处理器核生成的测试向量集以及慢速外设反馈的测试响应数据。

基于软件自测试技术的慢速外设高效测试方法,采用上述系统实现,具体为:根据慢速外设外部特性生成测试向量集,基于微处理器系统自身指令集生成测试指令,对测试指令进行取指、译码、执行、访存、回写处理以实现测试向量的施加,根据优先测试等待时间最长测试组并利用执行等待时间最长测试组中各测试行为的时间间隔执行其余测试组的原则对外挂在总线上的慢速外设依次进行测试。

基于软件自测试技术的慢速外设高效测试方法中,根据慢速外设外部特性生成测试向量集的方法为:根据被测慢速外设的特性分析并选取线性反馈移位寄存器的初始状态、本原多项式,调用伪随机数发生程序模拟线性反馈移位寄存器以生成位宽满足各慢速外设测试要求的伪随机数,满足各慢速外设测试要求的伪随机数组成测试向量集。

基于软件自测试技术的慢速外设高效测试方法中,基于微处理器系统自身指令集生成测试指令通过修改或添加微处理器系统自身指令集中的定制指令实现。

基于软件自测试技术的慢速外设高效测试方法中,根据优先测试等待时间最长测试组并利用执行等待时间最长测试组中各测试行为的时间间隔执行其余测试组的原则对外挂在总线上的慢速外设依次进行测试的方法为:

首先,安排等待时间最长的测试组进行测试;

接着,当等待时间次长的测试组在等待时间最长的测试组中各测试行为执行时间的间隔中能够完成时,在所述时间间隔中将等待时间次长的测试组中各测试行为安排在紧邻等待时间最长测试组中对应测试行为的空闲时钟,否则,将等待时间次长的测试组中各测试行为安排在等待时间最长测试组中对应测试行为完成后的第一个空闲时钟,依次类推,完成所有测试组执行顺序的排列;

最后,按测试组执行顺序依次向外挂在总线上的慢速外设传输测试指令,并按序取回各慢速外设的测试响应数据。

本发明采用上述技术方案,具有以下有益效果:

(1)本发明提出了一种无需增加额外特定测试硬件电路即可实现慢速外设高效测试的架构,减小了系统开销;

(2)采用伪随机数生成程序模拟线性反馈移位寄存器以生成满足各慢速测试要求的测试图形,消除了增加额外特定测试硬件电路的需求,可灵活配置本原多项式,运用微处理器自身指令集完成测试图形的产生和施加,并依据优先测试等待时间最长测试组并利用执行等待时间最长测试组中各测试行为的时间间隔执行其余测试组的原则排列各慢速外设测试组的测试顺序,使得多个外设的总测试时间能够尽量地缩减,提高处理器的空闲利用率。

附图说明

图1为基于软件自测的慢速设备测试系统整体框图。

图2为测试流程图。

图3为外设测试调度算法的伪代码。

图4为长等待时间最长测试组优先调度算法的框图。

具体实施方式

下面详细描述本发明的实施方式,下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。为便于对本发明实施例的理解,下面将结合附图以几个具体实施例为例做进一步的解释说明,且各个实施例并不构成对本发明实施例的限定。本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。

基于软件自测试的慢速外设高效测试架构由微处理器核和慢速外设挂接在外部总线上形成。外设的测试向量由微处理器核产生;根据等待时间最长测试组优先测试的原则,微处理器核通过外部总线控制测试图形施加于各自对应的慢速外设的顺序,并有序地取回外设反馈的测试响应数据,存储测试向量以及测试响应数据于指定的数据RAM中,从而实现慢速外设的高效测试。

这种测试架构基于紧凑的微处理器系统搭建而成。这个处理器系统包括微处理器核、外部总线、ROM以及RAM,慢速外设挂接在外部总线上,微处理器核与慢速外设的数据交互通过总线接口得以实现,ROM存储了控制整个测试流程的测试调度程序,RAM存储了施加于被测外设的测试向量和被测外设的测试响应数据。而微处理器核内部是五级流水线工作,每一条指令都包括取指、译码、执行、访存和回写五个阶段,其中,取指阶段负责根据微处理器核的运行状态取得微处理器核执行的每一条用于测试外设的指令,设计的测试程序通过编译器编译后生成测试指令,测试指令存储在指令存储器中;译码阶段将测试指令翻译成微处理器核能够执行的测试行为,并传输数据和控制信号至其它阶段;执行阶段根据测试指令的要求执行操作数,比如,测试地址的循环叠加和循环递减、测试数据的配置、外设存取的数据传输等;访存阶段负责存储各个外设的测试图形,同时管理微处理器核与外设的接口;回写阶段根据测试指令,在执行阶段的执行结果和访存阶段读取的测试图形之间进行选择,将结果送回目标寄存器。在测试外设时,处理器按照测试执行程序的测试指令从总线上读写数据,以便完成慢速外设的测试。

以图1所给出的慢速外设测试系统框图为基础,阐述基于软件自测试的慢速外设高速测试方法,测试方法流程图如图2所示:

首先,准备测试:

根据伪随机数发生器电路的原理编写测试向量生成程序,测试向量生成程序能产生符合各慢速外设测试要求的不同位宽的测试向量;

根据被测外设的个数、独立测试时间长度编写测试调度程序,测试调度程序能够变化测试地址、调用测试向量生成程序,按照等待时间最长测试组优先的原则(伪代码如图3所示)生成微处理器向各外设施加测试图形的顺序,微处理器核调度该程序后向各慢速外设按序施加测试图形并按序取回各慢速外设的测试响应数据;

设计好的测试调度程度通过编译器编译后产生微处理器核能够执行的二进制代码(即为测试指令),下载测试向量生成程序以及测试指令到指令ROM;

接着,激活测试:

微处理器核读取各慢速外设的测试特征信号(特征信号表明了线性反馈移位寄存器的初始图形以及本原多项式),慢速外设的数量决定了测试向量的数量,从指令ROM中调用测试向量生成程序(软件模拟线性反馈移位寄存器电路)以产生各个慢速外设的测试向量(即为测试图形),然后存储于数据RAM中以备调用;

然后,开始测试:

微处理器读取各慢速外设响应施加在其自身测试向量的时间,调用测试调度程序生成包含测试地址、CPU时钟分配信息、向各慢速外设施加测试图形顺序的测试指令,从存储器RAM按序读取测试向量,按序向各慢速外设施加测试向量,在一个外设处于占用等待的时候,处理器操作总线向另一个外设送测试向量,在占用等待结束时按序读回各慢速外设的测试响应数据,并存储测试响应数据于数据RAM中。

采用软件方式实现用于生成随机测试图形的线性反馈移位寄存器。对于4位线性反馈移位寄存器,根据本原多项式x4+x+1的系数连接反馈所形成的电路,可以生成最大长度的伪随机序列,而且序列的每一位不具有周期性。当给予1个初始状态0001后,程序可以依次产生1000,0100,0010,1001,1100,0110,1011,0101,1010,1101,1110,1111,0111,0011,0001,最长为24-1的伪随机序列。相比硬件实现的线性反馈移位寄存器,软件实现的程序的优点是:不需要增加额外的硬件电路,直接通过处理器指令实现伪随机图形生成;易于配置初始状态和总共产生的序列数量。而本架构采取的方法是,通过编写一个基于处理器指令集的伪随机数生成程序来模拟硬件的伪随机生成硬件结构,优点是基于程序生成随机数,可灵活配置本原多项式,又无需额外硬件电路。

以图4所示外设测试采用的调度算法框图阐述高效的慢速外设测试方法。设定对每个外设的一组测试为(W,R)即(写,读)操作。由于外设工作在远低于处理器的频率范围,所以每一组(W,R)操作的写和读之间需要等待相应长的时间。期间,处理器处于空闲。本方法的目的是利用一个外设测试等待的时间,进行另一外设的读或写操作,从而使得多个外设的总测试时间能够尽量地缩减,提高处理器的空闲利用率。本方法采用等待时间最长测试组优先测试的调度算法,即最先安排所需等待时间最长的测试组(W1,R1)。接着安排所需等待时间第二长的测试组,将W2紧接着W1之后的第一个空闲时钟,同时,如果R2能够在R1执行之前的一个时钟执行,则将R2安排在R1之前的一个时钟,如果不能,则R2安排在R1之后的一个时钟。执行上一步骤,直到最后一组测试(Wn,Rn)。

给出测试实例如下,测试对象为三片EEPROM,它们都通过I2C总线与总线接口电路相连,测试的地址宽度为256bit。处理器的时钟频率为100MHz,EEPROM0的时钟频率为10MHz,EEPROM1的时钟频率为20MHz,EEPROM2的时钟频率为25MHz。三片EEPROM完成一次写或者读操作需要40个I2C时钟周期。单独进行EEPROM0的测试所需的测试时间为100ns×40×256×2=2048000ns。(100ns是EEPROM0的时钟周期,40是一次读或写操作占用总线周期的个数,256表示测试的数据有256个,2代表一次读遍历和一次写遍历),实验结果如下表所示:

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1