当前位置:技术 >> 技术前沿 >> 其他各类技术 >> 正文

软硬件系统可测试性设计的研究

2007-08-14 14:59:20  作者:佚名  来源:青岛机电网  浏览次数:89  文字大小:【】【】【

前言

  建立可测试性设计是开发软硬件系统的关键,尤其是那些对工作可靠性要求高的系统。若没有可测试性设计,在产品正式使用之前就很难发现设计缺陷,而且工作中出现的故障也很难检测和诊断。
  以前通过检测输入/输出特性来评估系统整体性能的方法已不再适用于复杂系统,而且复杂系统的测试设备和测试过程也相应复杂。采用可测试性设计可以增加系统的可测试性,提高产品质量,并减少产品投放市场的时间及测试费用。
  我们把系统理解为由硬件和软件模块组合而成的整体,每个模块都是系统的独立部件,有严格定义的功能。每个模块都是硬件或软件或是它们的组合。DFT观念就是基于这种抽象系统层次上的检测,具备系统所有模块综合可测试性的功能。
  传统上,硬件的设计者和测试工程师注重于设计的制作准确性,查找、排除现场故障两方面。对这类问题,他们已提出了多种有序和有效的解决方法,包括扫描设计和自检。但他们忽略了对设计的验证,设计仅取决于设计者的技巧。然而,设计者们认为,那些测试特征的结构化测试设计不仅有利于制造和维修,还能大大简化产品的设计验证过程,某些情况下能使设计验证周期从几周降至几天。
  与此相反,软件的设计者和测试工程师的目标是设计的有效性和验证性。(与硬件不同的是,软件在使用时不会损耗,因此,工作故障是由于设计错误而形成,而不是由于不正确的复制或磨损。)与增加测试手段不同,软件人员致力于改善程序格式和规范,如模块化设计,程序的结构化,程序通用规范和对象化设计均被证明可以有效地简化测试。
  如果能明确地区分设计的硬件和软件部分,这些处理方法是有效的。但当两部分界限模糊时,就会出现问题。例如,在系统设计初期,我们对系统层次上的测试策略很清楚,但不能确定哪些部分将在硬件中执行,哪些部分将在软件中执行。又如,在通用硬件上运行的功能软件,我们为了增强性能而将它改为硬件实现,设计者就必须确保这是一个可测试的、完整的且与执行选择项无关的设计。支持软、硬件综合设计要求使用“综合测试”技术,将软件和硬件测试技术结合在一起形成一个整体。

  存取问题

  独立模块的存取数目有限,使复杂系统的可测试性能受到限制。虽然多模块系统设计和执行时,可以将它细分成各个部分,但装配到一起以后,复杂系统的状态就成了具有各组成部分的多种复杂性的黑盒子。
  例如,我们可以用一个状态机构来模拟模块的工作。状态包括转换和条件,通过确定所有状态的变化可以测试一个模块的动态响应。一般说来,如果一个模块有N个状态,(N个状态空间),则至少有N个状态变化,相应的,至少要进行N次不同的测试。
  多模块复杂系统的状态数目增长极快。系统黑盒子包含了所有模块的状态空间,例如系统由K个模块组成,每个模块有N个状态,那么系统的状态空间是NK。我们称这种增长模式为状态空间的爆涨。
  显然,如果能独立测试每个模块,模块化系统的可测试性就会大大提高。因此,模块化的软、硬件设计还需包括测试存取通道,以保证能够进行分离的模块测试。研究人员已广泛地采用这种各个击破的处理方式来测试复杂的、模块化数字电路。

  系统级可测试性设计

  系统可测试性设计必须明确分离系统的功能规范和实际软、硬件系统的运行。在设计过程中,我们先制定出系统的功能规范,由这个规范可对系统有明确且详尽的理解(不会被执行的细节弄糊涂)。这样的规范为系统的软、硬件划分和选择合适的组合提供了坚实的基础。
  系统级可测试性设计必须在规范中增加系统级测试要求,以增加系统内部模块的可控性和可观测性。而后,必须将独立的测试要求转变为实际的软、硬件要求。在规范中设置测试要求会对实际系统产生很大影响,一种设计思路是像现有的测试设备一样来实现测试要求,如边界扫描通道测试技术。同时,测试要求也引起了软硬件测试设备的更新。
  设计规范与实际执行相分离是现代设计方法的基本原则。这种方法包括结构化和反向分析设计以及软、硬件综合设计。因此系统级可测试性设计完全适用于这些现代设计方法。

  技术规范中的系统级可测试性

  其基本原则是:通过将系统划分成各个模块来解决系统测试的复杂性。在系统中插入测试功能,先测试单个模块,再测试模块间的相互作用,进而完成整个系统的测试。硬件测试(例如常规测试)就采用了这种原则。

  在系统设计规范中,系统级可测试性设计策略有两部分。

  (1)系统部分:结构化、模块化的设计方法自然可以增加可测试性,但制定系统划分的大体准则可以进一步加强系统的可测试性。

  (2)增加测试功能:这使得在测试时能控制和观测单个模块以及模块间的相互作用。先在设计规范中确定测试功能,不考虑系统的运行细节,在其次的设诗步骤中再将测试功能与实际的软硬件系统运行结合考虑。

  下面我们分别介绍这两部分内容。

  系统划分

  系统划分有多种探索工作和经验准则,其中模块间最小相关性和模块最小相似性原则对改善可测试性很有效。
  模块间最小相关性原则通过减少模块间的相互作用和信息传递,将系统划分成几个独立的模块。这样,在测试过程中就可以将一个模块与周围环境隔离开了。
  利用模块内部最小相似性原则可形成可测试性好的模块。系统复杂程度的标志之一就是模块内部相似性。由前述内容可知,如果一个模块的组件存在相互作用性、并行性和一定数量的状态,则模块的状态数量就会迅速增加,系统状态空间维数迅速增长,使得需测试项目也随之增多。利用相似性最小化原则可减少测试项目数量。
  理论上,可以将系统模拟成一个信息交流处理装置。最小相关性原则主要目的是减小过程中的相互作用,最小相似性原则允许每个模块只对某一单独的连续过程有响应。
  图1是5个模块系统的划分例子。在此,先利用最小相关性原则将系统划分成少量的几个模块,然后用最小相似性原则将复杂模块分割成更小的模块。例如,最初一个复杂模块包含B和C,将其分解以降低测试的复杂性。

  增加测试功能

  可以通过给模块输入激励信号,观测模块边界响应来测试单个模块及模块间的相互作用。这就要求能在外部系统中直接控制和观测模块的边界状态。但一般来说这是不可能的,因此希望能通过其它模块提供测试激励信号,并观测被测模块的响应。例如在图1中,我们既不能控制模块C的边界状态,也不能在外部系统中观测到它们,就要通过其它模块进行测试。

  正是由于受这些控制和观测的限制,极大地约束了系统的可测试性,主要表现在以下几方面:

  (1)必须设置与被测模块相通的测试通道。要做到这一点非常困难。

  (2)当检测到故障时,不能确定它是来自于被测模块还是来自于测试通道。

  (3)在实际系统中,事件的顺序和时间序列是很严格的。因此,在测试时要求控制输入时序并观测输出时序,而要做到这一点,就必须对被测模块进行直接检测。

  为改善可测试性,我们在设计规范中增加了测试功能,并使用以下三种测试功能模式。

  透明的测试模式(TIM)

  如果通向被测模块的通道是透明的(若能不失真地传递信号则称为透明的),就能解决检修方便性的问题。这种通道可以用附加透明测试操作模式扩展模块来实现。当模块转换成TTM模式时,它将按预定形成将输入信号直接传送到输出信号,在模块的输入输出间提供一个透明通道。
  另外,如果从测试仪器到被测模块的所有存取点不可能或不想建立测试通道,就得增加测试响应器。测试响应器在某种程序上是测试通道的反转:它将可控制信号从被测模块返回给测试仪器。
  TTM概念已广泛应用,但也有它的局限性,即通用测试性不高,必须为某一特定模块的测试进行专门设计,不具备通用性。

  内置自检(BIST)

  模块具有自检功能,可以降低它对外部系统可控制性和可观测性的要求。模块的内置自检功能可以向模块提供测试激励信号,观测和确定响应值。内置自检可以从外部系统起动,并受外部系统控制,它能向外部系统返回连续/不连续运行的响应或诊断信息。

  控制和观测点(PCO)

  控制和观察点是指在模块边界插入的控制、观测点,这些点能使我们从外部系统直接控制和观测模块间的相互联 系。一般我们在两个模块的联结处插入一个控制和观察点。图2所示的是一个控制和观察点的三种操作模式,详细内容见表1。(上述概念可参照对比IEEE std 1149.4的测试通道技术标准)。


图2 控制和观点(PCO)(a)和PCO的操作模式;(b)透明;(c)观测;(d)测试

模式

功能

透明

在常规操作(不要求观测及控制)时使用这种模式,PCO输入直接传到PCO输出,是完全透明的。该模式无控制输入和观测输出。

观测

这种模式用于常规操作时对系统进行监视。PCO输入同时传递到PCO和观测输出端。观测输出监视数据经由外疗系统PCO传送出来。该模式也无控制输入。

测试

这种模式用于测试与外部隔离的模块。PCO输入传给观测输出端,控制输入传给PCO输出。利用PCO从PCO输入观测发送模块并在PCO输出控制接收模块。由于控制和观测过程是相互独立的,因此可同时测试两个模块。



  一个完整的控制和观测点一般包括以上三种操作模式,但也有只执行其中两种模式的情况存在,如单点观测(PO)只含有透明和观测两种模式。控制和观测点除了用于观测和控制模块相互联结,还能和数据存储器一起,在测试模式中读写数据。
  在一个系统中,可以通过模式的输入单独控制每个控制和观测点,但一个通用的模式选择可控制许多控制和观测点。
  透明的测试模式和控制观测点功能在外部系统和内部模块之间提供了通道。该通道不仅传递测试信息,而且传递系统的管理信息,如程序的更新和数据等。

  标准化的解决方案

  ISO和ITU(国际标准化组织和国际电信组织)在IS0-10164-14草案中制定了有关测试的电信管理原则及应用标准。这种技术称作资源边界测试(见图3)。
  这个概念起源于硬件的边界扫描测试技术。

  实验

  TRIBUNE(宽带用户网接口的测试、批准及相互影响)计划就包含了一个实际应用PCO的实例,即2081Race计划(欧洲发达通讯技术研究)。
  在TRIBUNE计划中,12个欧洲公司一起开发了一种基于异步传输模式技术的宽带ISDN系统测试环境,并初步在ITU宽带协议规范基础上设计、执行、测试了通信系统。TRIBUNE系统的信号级包括5个协议层及子层(L3AS,SSCS,CPAAIds,ATM,PHY)。

  测试结构

  本次实验中采用了一个特殊的测试接口来联结整个系统。这个测试接口的功能与前所描述的标准化测试端口类似,但是它只能作为测试用。图4就是TRI-BUNE的测试框图。测试系统将测试数据按TCP/IP协议(传输控制协议,互联网协议)传递给被测系统。
  TCP/IP通道的多路传输数据流控制及数据和控制信号之间的鉴别工作则由一个简单的管理协议来执行。被测系统将信号分离后分别送往相应的PCO。

  TRIBUNE系统运行一定数量的PCO。每个PCO都放置在通讯接口处,对被测试的协议层行为(被测试的执行过程)有观测和控制功能。图5显示了一个有两个相同开关元件的PCO在接口处对信息流进行的双向控制。这种技术是基于硬件测试的IEEE标准化扫描概念发展而来的。因此在图4中需要有两个PCO来全面地检测被测试过程(L3AS和SSCS),而且还可以方便地增加一些PCO点。

  控制和观测点(PCO)设计

  PCO的控制部分使用单独的信号来交换数据和控制信息(见图5)。这些控制信号可直接传送到PCO开关元件,但必须在测试的上下层接口中将数据改编为原始服务代码。这些接口转换器的工作与运行过程密切相关。两个开关控制开关元件内的信息流。开关S1用于控制测试系统是否观测输入信息流,S1的状态由一个观测或不观测控制信号来设置。开关S2控制输入信息流能否不失真地传给相邻层,S2的状态由一个联结或断开控制信号来设置。对每个开关元件,4种不同的开关状态组合可产生4种不同的模式(或状态)。

  实验评估

  TRIBUNE测试结构具备了多种常规测试技术无法完成的测试结构,它不仅能直接测试内部模块,还能在不使用应用软件的基础上很方便地对信息存储器内部操作进行测试。图4的测试结构表示出如何用多层次局部测试方法对L3AS和SSCS组合进行测试。这个测试系统能控制,上部(L3AS)和下部(SSCS)的测试器,这样,需传递的状态数目也就相应增加,这种测试就更有效。与常规测试技术相比,这种技术能测试和完成的内容是常规测试的两倍,且由于并行序列长度的减少,更缩短了实际测试的过程。
  被测试系统直接测试功能的增强也增加了一些额外的费用和时间。我们用程序代码来表征费用。当用正式规范的标准语言(SDL)说明TRIBUNE系统时,可以用SDL行数来计算代码长度。平均一个协议层要用约5(则行SDL代码,单个的控制和观测点约要800行,被动控制功能要500行,增加一些控制和观测点约要80行新代码。因此,一个含有一组满足协议要求的5层和5个控制和观测点被测系统共需要266620行代码,其中测试功能占696左右。

  实现方式:

  下面讨论一下从设计规范到软硬件实现的步骤,主要是如何实现软硬件中给定的测试功能。当系统的软硬件结构完成后,我们可以对系统进行循环测试(图6)。对于所有的测试和诊断控制,这个结构都能提供以下功能,且适用于每一层的测试。

  (1)初始化系统、子系统、模块、元件(模式的设置,复位)。

  (2)进人并控制系统每层的次级元件。

  (3)传递测试激励信号。

  (4)控制内置测试结构。

  (5)采集测试结果。

  (6)识别元件。

  一般在分层测试结构中有两种策略结合使用:集中和分布。集中式策略是从一个单独的顶层测试控制模块进入并控制系统所有较低层次,而分布式策略则是尽量将测试的控制分布到每个层次。两者各有优缺点,在这里我们主要讨论分布式策略。
  集中式策略提供了一种简单低耗的测试结构,不要求每个测试层都要有相应的配置和相应的知识对模块进行专门测试。但由于它的中心测试模块包含有全部的测试内容,我们不能随意用功能相同但使用技术不同的其它模块替换。因此集中式策略是不可变的,且它要在层次之间的测试数据传递基础上才能进行有效通信。
  分布式测试策略更富变化性,因为它的测试技术定位于单个的系统级,这有利于并行测试以减少测试时间。测试功能的分布还降低了系统测试控制模块的复杂程度,且将操作技术限于独立地执行单个测试级激励,因为系统测试控制器能在一个独立层次操作,这省却了复杂的专用测试接口。为提供标准化的通用测试接口,分布式策略能方便地使用可替换的商品化产品,用这种方式可很容易地开发出测试性能很高的系统。这种优点使得分布式处理非常适合于测试复杂系
统。
  集中式和分布式策略描述的是极端状况。实际使用中,设计者经常使用同时具有两者特性的综合性策略。
  软硬件设计者已开发出多种DFT技术。硬件DFT主要是仪器,软件DFT主要用于设计规范。
  这些技术的单独使用并不能得到令人满意的系统级可测试性能。一个单独的DFT技术需要同所有其它的DFT处理结合起来才更有效果。
  由模块组成的模块化系统对于测试者并没有什么有利之处,除非能对系统每部分分别进行测试。模块化设计意味着模块化测试。今后面临的挑战是开发出一个完整的设计过程,能够提供满足规范要求的可单独执行的可测试性,如同测试码的传送、机内自检、PCO等。我们必须将软硬件系统执行的可测试性要求结合起来考虑。这意味着将高水平的可测试性要求转变为已有的或新的测试功能执行。

责任编辑:

[青岛机电网版权申明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。文章版权归我站和作者共有。
转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。
特别注意:本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有,文章若有侵犯作者版权,请与我们联系,我们将立即删除修改。]