首页> 中国专利> 硬件测试模块和增加硬件测试速度的方法

硬件测试模块和增加硬件测试速度的方法

摘要

本发明涉及一种硬件测试模块,它以并行操作的方式,于一环状暂存器上进行测试数据的存取,本发明以中断服务程序来存入测试数据,而以主应用程序来处理测试数据,并利用主应用程序在处理数据的期间,同时开启中断服务程序来接收数据,而且由于此并行操作的方式,减少了所需的测试时间,并且能减少所需的暂存器容量。

著录项

  • 公开/公告号CN1266227A

    专利类型发明专利

  • 公开/公告日2000-09-13

    原文格式PDF

  • 申请/专利权人 英业达股份有限公司;

    申请/专利号CN99103620.4

  • 发明设计人 林光信;陈玄同;烟束;

    申请日1999-03-05

  • 分类号G06F11/22;

  • 代理机构72001 中国专利代理(香港)有限公司;

  • 代理人王勇;李亚非

  • 地址 台湾省台北市

  • 入库时间 2023-12-17 13:42:02

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-03-01

    未缴年费专利权终止 IPC(主分类):G06F11/22 授权公告日:20030702 终止日期:20180305 申请日:19990305

    专利权的终止

  • 2017-10-10

    专利权的转移 IPC(主分类):G06F11/22 登记生效日:20170918 变更前: 变更后: 申请日:19990305

    专利申请权、专利权的转移

  • 2017-10-10

    著录事项变更 IPC(主分类):G06F11/22 变更前: 变更后: 申请日:19990305

    著录事项变更

  • 2003-07-02

    授权

    授权

  • 2000-09-13

    公开

    公开

  • 1999-08-25

    实质审查请求的生效

    实质审查请求的生效

查看全部

说明书

本发明涉及一种硬件测试模块,特别是关于一种以并行操作进行的测试方法。

就现行的测试软件而言,对调制解调器(Modem)、串/并行口、软硬件驱动器等硬件设备的测试过程中,其执行过程往往先直接由电脑向被测硬件写入测试信息,然后等待来自被测硬件的响应(response),并将之接收再作对比及查验的作业。换言之,现有技术的测试方法首先将「测试信息」由「电脑」传向「被测硬件」,而后再由「被测硬件」将「测试信息」转交给「主应用程序」处理以产生一「结果」。此「结果」再经由「被测硬件」传回「电脑」,以记录、显示测试结果。上述过程如「图1」所示,开始测试(步骤10)之后,首先向被测硬件传送数据以交由主应用程序处理(步骤11),而后再处理测试信息时,须等待硬件响应数据(步骤12)。第四步骤则是显示所得的响应数据(步骤13)。在第五步骤使用者可输入指令以作更进一步的处理(步骤14),继而由电脑执行所输入的指令(步骤15)。最后检查是否已完成整个测试(步骤16)。若否,则再继续作整个测试流程;若已完成,则结束或进行下一个被测硬件的测试(步骤17)。

由上所述,可知现有技术是以一「串行操作」的方法来进行测试流程。简单的说,各步骤执行的程序是「依次进行」的,所以每一个步骤必需等待上一个步骤完成之后,才能进行。而这也就是现有技术的主要缺点。由于各步骤的执行需等待上一个步骤完成之后才能进行,因此在整个速度上不免较慢。以调制解调器(Modem)为例,假设调制解调器以每毫秒一个字符(character,一个英文字符或符号需要一个字节“Byte”的长度储存)的速度向应用程序发送字串「 This is a test.」,共15个字符,四个单字。应用程序根据英文字母间的空格或标点符号来区分每个单字。应用程序的处理模式是以「单字」作为基本单位,其每处理一个单字需时3毫秒。由于内存操作(包括程序执行及数据存取)的速度相当快(以纳秒为单位),故可忽略而不计其所占用的时间。

在现有技术的串行测试方法中,如「图1」流程所示,需要先将整串测试字符完全接收后,才能进行其处理。故此,其调制解调器所需要的时间为接收15个字符的时间(15毫秒),再加上处理四个单字的时间(4×3=12毫秒),一共27毫秒。

此外,由于需先将测试字符完全接收,因此其所需的存储器空间至少需有15个字符的内存空间。此外,由于这是串行操作,因此在应用程序处理完成之前,使用者无从得知其现况。因此当错误或当故障的情况发生时,往往无法得知而浪费时间。此现象在测试调制解调器时,由于其工作速率变化范围很大(由110波特~11520波特),因此响应的时间便会有很大的差别。特别是当调制解调器运行于不同的CPU及显示卡上时,极易造成时序配合上的混乱。另外,数据的传送总是有一定的误码率,这种差错会造成接收数据内容及长度的变化。为了接收这种未知长度的数据,采用现有技术方法「接收----处理----再接收----再处理----直至结束」的模式,只能通过加大暂存空间的方法来解决,造成存储空间的浪费。

发明目的及概述

本发明的主要目的,在于提出一种能提高硬件测试速率的测试模块,并且可以提供清楚的数据流向,以及减少测试所需的存储器空间。

本发明的精神,在于以「并行操作」取代现有技术「串行操作」的方式来执行硬件测试。在现有技术中,应用程序需等待全部的测试信息接收完毕之后,才能开始对这些测试信息进行处理。然而,对应用程序而言,其处理测试信息的方式,是将字母一个一个的来处理,而非一次就处理整个测试信息。换言之,对应用程序而言,其信息处理的过程只需要有部份测试信息就可开始进行。所以在本发明中,在接收测试信息的同时,就开始令应用程序去由存储器中取出字符来进行处理。换言之,利用应用程序处理信息上的特性,使得信息的接收及信息的处理能同时进行,而减少整个测试所需的时间。

为此,本发明运用直接截取硬件中断的手法,先规划出一个环形暂存器,利用「Put指针」及「Take指针」来操作信息的存取,并提供一「中断服务」,使得应用程序在处理测试信息时,接收程序仍能逐个继续地接收测试信息。

此外,对于应用程序而言,由于测试信息不需要一次就全部读写进存储器中,因此所需存储器的空间也可较现有技术来得少。同时,由于利用环形暂存器及「Put指针」、「Take指针」两个指针,因此应用程序将以一定频率去监测环形暂存器的现况。所以透过应用程序,使用者也能够随时了解目前测试进行的状况,因此能避免万一发生故障(down)时的无谓等待。

为让本发明的上述和其他目的、特征、和优点能更明显易懂,下文特举一较佳实施例,并配合附图,作详细说明如下。

附图说明

图1为现有技术测试方法的方块图;

图2为实施例的功能方块图;

图3为整体流程图;

图4为中断服务流程图;

图5为主应用程序取数据流程图;

图6为等待并动态处理数据的流程图。

实施例说明

参见「图2」为第一实施例的功能方块图。环形暂存器21上规划有数个存储单元,其每一个皆是硬件每次发送的最小单位,其字节(Byte)数依不同硬件类型而定。此外有一Put指针22,其用以标定每次进行信息存入时的位置,它会随着信息的存入向前移,移至底部时,则会再返回起始点。另外有Take指针23用以标定读取信息时的位置。类似于Put指针22,Take指针23亦会随着信息的读取向前移,移至底部时,则会再返回起始点。

在执行时,相关数据将由被测硬件内的存储器,传向中断服务程序24,通过Put指针22的指示由起始位置依次将数据存入环形暂存器21中。而主应用程序25则是通过Take指针23,将信息依次取出并加以处理。一旦Put指针22或Take指针23超过环形暂存器21的底部,则自动返回环形暂存器21的起始位置。在读取的判断上,设定若Take指针23的位置不同于Put指针22,则代表有未读取的信息;在存入的判断上,设定若Put指针22追上Take指针23,则表示环形暂存器21的空间已满。利用上述的两个判断原则,可以避免读过头或是写过头的问题。

「图3」为实施例的总流程图。其中主应用程序31负责处理使用者输入信息,并且监测通信缓冲区33的状态,并依此进行数据的读取,以及通过控制中断服务程序32而相对应地控制硬件当前的状态。通信缓冲区33会接受被测硬件暂存器的变化以及测试数据的写入。主应用程序31及中断服务程序32则是两个并行的程序,但若二者同时存取(access)通信缓冲区33,则将造成信息的混乱。因此,为了使中断服务程序32及主应用程序31两者在通信缓冲区33上互斥,因此设定主应用程序在使用环状暂存器时,先关闭中断服务程序32,以阻止其对于通信缓冲区33的写入;完成之后再打开中断服务程序32以继续接收数据。

「图4」为中断服务流程图,首先针对被测硬件,逐个读入被测硬件内的暂存器值,以视其是否有数据将传送(步骤41)。判断暂存器值是否有变化(步骤42),如有变化则记录其变化情况并作一标记(步骤43)以便主应用程序识别。判断是否读完所有的值(步骤44),如果没有,则返回步骤41继续读取;如果已读完所有的值,则继续判断中断服务程序是否收到新的数据(步骤45)。如果有,则将所接收到的数据依Put指针的指示存入环状暂存器中,并更新Put指针的位置(步骤46)。然后,判断暂存器是否将溢出(步骤47)。若是,则命令硬件暂停发送数据,并设定硬件为暂停状态(步骤48)后中断返回。若中断服务程序未收到新数据(步骤45),则直接返回。

「图5」为主应用程序读取数已存入环状暂存器内的数据的流程。程序开始之后,通过监测Put指针及Take指针的位置判断暂存器中是否有新数据(步骤51)。如果有,则关闭中断服务程序(步骤52),以避免在主应用程序取数据时,又有新数据写入。然后,由环状暂存器中逐单元取出数据,完成后改变环状暂存器的Take指针(步骤53),并开启中断服务程序(步骤54)以继续接收新的数据。然后设定取数据成功标记(步骤55),然后返回(步骤56)。如果环状暂存器中没有新的数据,则先设一取数据失败标记(步骤57)以判断硬件是否处于暂停状态(步骤58)。若是,则向硬件发出继续传送数据的指令,并将硬件设定为发送状态(步骤59),然后返回(步骤56);如果硬件处于正常状态则直接返回(步骤56)。

「图6」为数据存取流程。首先判断是否有待处理的数据(步骤61)若有则处理更新标记所指定的数据,同时清除更新标记(步骤62)直到完成所有数据的处理。接着判断硬件是否得到了预期的回应,回应的数据应与所传送的数据相同(步骤63),如果没有则延时等待硬件做出回应(步骤64)。判断等待的时间(步骤65),如果未到等待时间的上限就已再次收到硬件回应,则返回程序起始点,重新再做一次「是否有新数据需处理」的判断。相反,如果等候超过了等待时间上限,则将状态设定为超时(步骤66),然后返回处理结果(步骤68)。如果硬件已做出预期的回应,其设置硬件回应值(步骤67),直接返回处理结果(步骤68)。

若同样的以调制解调器(Modem)为例,假设调制解调器以每毫秒一个字符(Character,需要长度为一个字节Byte的储存空间)的速度向应用程序发送字串「This is a test.」,共15个字符,四个单字。应用程序根据英文字母间的空格或标点符号来区分每个单字。应用程序的处理模式是以「单字」作为基本单位,其每处理一个单字需时3毫秒。由于内存操作(包括程序执行及数据存取)的速度相当快(以纳秒为单位),故可忽略而不计其所占用的时间。环状暂存器的容量为8个Byte。则本实施例以「This is a test」为例的操作步骤如下:

1.如「图6」所示,在初始状态下,Take指针及Put指针指在环状暂存器的顶部,即第1个Byte处;

2.中断服务程序将接收到的数据「This」,共五个字符置入暂存器的第1至第5个Byte,并将Put指针移至下一次存放字符处(此例即为第6个Byte处),此过程需时5毫秒;

3.主应用程序判断取数据指针(Take指针)的位置不同于Put指针,因此判定为有数据待处理。主应用程序读出「This」,并因其内含有空隔「  」,因此自动判定已读出一完整的单字,同时将Take指针移至下一个取单字处(此例即为第6个Byte处);

4.主应用程序开始处理所读取的单字「This」,此过程将耗时3毫秒,在主应用程序处理单字时,由于中断服务程序仍并行地接收数据,因此在主应用程序完成单字的处理时(3毫秒),又将「is」存入环状暂存器中第6~8个Byte中。为了避免暂存器溢出,故将Put指针再移至第1个Byte处;

5.主应用程序取出「is」,根据「  」来判断其收到一完整的单字,并将Take指针移向第1个Byte处;

6.主应用程序处理单字「is」,同时中断服务程序将接收到的「at」存入第1至第3个Byte,并将Put指针移至第4个Byte,此过程耗时3毫秒;

7.取出单字「a」,将Take指针移向第3个Byte。

8.处理单字「a」,同时中断服务程序将接收到的「est」存入于第4至第6个Byte,并将Put指针移至第7个Byte处,过程耗时3毫秒;

9.依Take指针,自第3个Byte处取出「test」,但由于未收到间隔符号,表明所取出的数据可能不完整,故先开启中断服务程序,等待其接收下一个字符,并保持于监测状态;

10.中断程序将下一个收到的字符「.」存入第7个Byte,此过程耗时1毫秒,并将Put指针移至第8个Byte;

11.主应用程序收到字符「.」,经判断为间隔符号后,表示「test」为一完整的单字,故将Take指针移至第8个Byte;

12.处理单字「test」,耗时3毫秒。因此,总计时间为5+3+3+3+1+3=18(毫秒)。较现有技术方法27毫秒为快。同时所需的暂存器空间也由15个Byte减为8个Byte。可见得本发明确能达到加快速度及减低所需暂存器空间的目的。

附图符号说明10  开始11  向被测硬件发送数据12  等待硬件响应数据13  显示响应数据14  有无用户输入15  显示、处理用户输入16  是否测试完毕17  返回21  环形暂存器22  Put指针23  Take指针24  中断服务程序25  主应用程序31  主应用程序32  中断服务程序33  通信缓冲区41  逐个读入暂存器值42  判断暂存器值是否发生变化43  更新并做标记44  判断是否读完全部的数据45  判断是否收到新数据46  将数据放入环形暂存器并更新Put指针的位置47  判断暂存器是否将溢出48  命令硬件暂停发送数据,并将之设定为暂停状态51  判断是否有新数据52  关闭中断服务程序53  取出数据并更新Take指针的位置54  开启中断服务程序55  设置取数据成功标记56  返回57  设置取数据失败标记58  判断硬件是否处于暂停状态59  向硬件发出继续传送指令,并设定硬件为发送状态61  判断是否有待处理的数据62  处理更新标记指定的数据,并清除数据的更新标记63  判断是否接收到预期的回应。64  延时等待65  判断是否已到了等待时间的上限66  设定超时状态67  设定回应值68  返回

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号