并行测试

2024-09-21

并行测试(共6篇)

并行测试 篇1

0 引言

并行测试技术是支持下一代自动测试系统的关键技术之一, 相对于传统串行测试系统, 其技术特点与优势在于提高了测试系统的吞吐率、提高了测试仪器资源的利用率、缩短了测试执行时间。实现并行测试技术的关键在于测试任务的调度, 而并行测试任务的分解则为并行测试任务调度的基础。

1 并行测试任务分解的必要性与可行性

在传统的串行自动测试系统中, 测试任务被事先整体规定, 然后测试中按照一定的顺序流程运行, 测试任务的安排由于不涉及并行性, 所以待测任务之间可能无法进行并行测试。因此, 将一个总体的复杂测试任务, 经过分解形成多项容易被测量的子任务, 通过完成子任务测试从而解决复杂测试的思想, 对于并行测试系统来说是尤为必要的。

并行测试系统本身的特点决定了总体的复杂测试任务分解的可行性:对于并行测试系统本身而言, 现阶段的自动测试系统均采用嵌入式计算机控制、模块化的测试仪器资源, 这就使得各个资源模块可以根据测试系统的需求同时单独工作, 相互之间没有影响;新的接口适配器技术, 使得自动测试系统与待测设备间的连接、信号转换更加灵活;计算机多线程与多核处理技术, 使得控制软件能够同时控制运行多个测试任务。上述的这些自动测试系统本身的特点, 均为经分解后的多项子测试任务能够实现并行技术奠定了基础。

2 并行测试任务分解所遵循的原则

子测试任务的大小能够通过增加或减少测试参数来改变, 那么子测试任务的大小即表现为测试任务粒度的粗细。任务粒度能够体现某测试任务集合的层次结构, 同时也能体现整体测试任务的规模与数目。任务粒度与任务数量存在反比关系:任务粒度越大, 任务数量越小;任务粒度越小, 任务数量就越大[1]。反映到并行测试技术上来说, 就是任务粒度与子测试任务的并行性和可求解性质是相关联的:通常来说, 子测试任务的独立性随着任务粒度大小的增加而增加, 但子测试任务的信息接口、交互性、任务之间的并行性却随着子测试任务粒度大小的增加而减少。因此, 测试任务分解, 要控制适宜的子测试任务粒度。

并行测试任务分解的目的是把复杂测试任务分解为多个简单易处理的子任务, 子任务之间尽可能错开资源竞争, 从而有效地加快执行速度, 缩短测试时间。但是过度的分解将使系统中有大量的任务, 经常进行任务的切换, 任务与任务之间还需要很多的同步和互斥控制, 将大量增加系统服务工作, 降低系统的速度和有效性。

因此, 在进行任务分解的过程中, 必须遵循一定的原则。测试任务分解的原则有以下几点[3]:

(1) 独立性:任务应有相对的独立性, 任务间的相互协调、通讯工作应少, 以减少系统的开销;

(2) 层次性:对总体测试任务依次从被测单元、被测参数到具体功能操作进行逐层分解;

(3) 均匀性:任务粒度的大小要适中、均匀, 避免某一任务的执行时间过长, 导致资源负载不均, 同时也要避免任务过细, 导致系统任务切换开销过大;

(4) 相似性:不同的测试任务分解的子任务应尽可能的相似, 以便软件设计时可用相同的程序代码实现, 提高软件编程效率。

实际工程中可根据被测对象的特点, 采用自顶而下逐层分解的策略对测试任务进行分解。被测装备通常会包括多个被测单元, 而被测单元一般会有多个参数需要检测, 在这一层按被测参数对测试任务进行分解, 在各参数的检测中一些参数的检测可能存在相同的初始化操作, 可以提取相同的操作, 提高系统效率。

3 并行测试任务分解策略方法要点

在弄清并行测试任务分解要遵循的原则后, 要明确子测试任务之间可能存在某种关联。那么, 分解后的子测试任务之间是否可以进行并行测试, 如果不能进行并行测试, 子测试任务之间的执行优先顺序又是怎样的。子测试任务之间的相互关联, 决定了上述问题。

在讨论并行测试任务分解策略方法要点与方案之前, 先对测试任务之间的关联引入形式化定义[3]:

定义3.1设t1和t2为两个测试任务, I1和O1分别为t1的输入变量集和输出变量集, I2和O2分别为t2的输入变量集和输出变量集, 若I1与O2, I2与O1, O1与O2之间均无交集, 则称t1与t2数据相关;否则, 称之为数据无关。

定义3.2设t1和t2为两个测试任务, 若t1的测试能够决定t2是否测试, 则称t2控制相关于t1;否则, 称之为控制无关。

定义3.3设t1和t2为两个测试任务, R1和R2分别是t1和t2占用的资源集, 若R1和R2无交集, 则称t1和t2资源相关;否则, 称之为资源无关。

定义3.4设t1, t2, …, tm为测试项目中的各项测试任务, 若t1, t2, …, tm按所有可能的任意顺序测试的结果相同即t1, t2, …, tm任务优先级相同, 且t1, t2, …, tm资源相关, 则称t1, t2, …, tm是可并行测试的。

对上述定义作出说明:对于测试任务t1和t2, 若其满足数据相关, 那么t1和t2是不能够进行并行测试的, 但反过来, 若t1和t2数据无关, 不能肯定t1和t2能够进行并行测试。例如, 两个测试任务中可能含有中间测试变量或任务, 使得t1和t2虽然数据相关条件, 但实际只能依次测试。同理, 对于测试任务t1和t2间满足控制相关也存在相应不能同一时刻进行并行测试的问题。

在明确测试任务之间所能存在的相互关系后, 便可以根据这些相互关系, 对一个总体复杂测试任务进行分解。由于随着被测设备的不同, 一个总体任务能被分解的程度、依据就不同, 因此, 没有一种具体有明确步骤的详细方法, 能通用所有自动测试系统的测试任务分解。通常总体分解方法要点如下:

(1) 详细了解被测设备特点, 明确被测设备的测试需求, 明确各个被测单元以及各被测单元所需测量参数;

(2) 根据被测设备中的某些具体带有测试时序要求的测试任务, 从总体上即采用自顶向下逐层分解的方法对各个被测任务划分层级网络, 明确哪些测试目标任务经层级划分后是复合任务, 哪些是不可在分的测试任务;

(3) 分析初步划分后的测试任务, 看是否有哪些被测参数可以进行层次的调整, 是否能够合并成新的测试任务。例如, 某些参数的检测可能存在相同的初始化操作, 可以对这些操作进行提取公因式, 提高系统效率;

(4) 经细化、合并、调整顺序后, 完成任务分解, 形成测试任务集合。

4 总结

并行测试系统测试任务分解是并行测试系统实现并行测试任务调度这个NP-HARD难题的前提, 遵循怎样的分解原则和分解测量方法要点对总体测试任务进行分解, 对分解后子测试任务的粒度有着影响。根据本文提出的分解策略方法要点进行并行测试任务分解, 能够较好的控制子任务粒度, 为后续并行测试任务调度打下基础。

摘要:并行测试技术是支持下一代自动测试系统的关键技术之一, 本文分析了并行测试系统测试任务分解的可行性与必要性, 通过介绍并行测试任务分解的原则与并行测试任务形式化定义, 总结给出了并行测试任务分解策略方法要点。

关键词:并行测试,任务分解,分解策略方法,分解策略方案

参考文献

[1]何玉安.基于本体的制造网格任务管理关键技术研究[D].上海:上海大学, 2008.

[2]卓家靖, 孟晨.并行测试系统的任务分解和任务过程模型[J].电子测量技术, 2008, 8, 31 (8) :109-112.

[3]肖明清.自动测试概论[M].北京:国防工业出版社, 2012, 8:108-109.

浅谈隔离网卡的并行测试系统 篇2

近年来, 伴随着互联网的蓬勃发展, 除了使得人们的生活变得更加方便、快捷、舒适之外, 还带来了以网络通信设备为主体的广阔市场。由于该市场发展前景良好, 吸引众多厂商参与到网络通信设备的市场竞争。同时, 由于新技术的不断涌现与产品制造工艺的不断提升, 使得网络通信设备的市场竞争愈演愈烈, 各大厂商为了在这种激烈的竞争中争取一定的市场份额, 会从产品的各个方面进行不断优化进而提升自身的竞争力。纵观整个产品的制造生产流程, 唯有产品测试这个环节几乎不产生附加值, 而同时又需要消耗大量的人力与需要购买昂贵的测试设备, 但为了保证产品品质有不得不进行改进。这又给产品测试制造成本优化带来很大的发展空间, 如何在保证产品品质前提下尽量压缩产品测试成本, 这也是目前产品生产制造环节的一大课题。

针对厂商目前产品测试测试效率提升问题以及现有测试系统维护成本高、响应速度慢的问题, 在厂商现有测试资源下, 研究并分析制约产品测试效率提升的瓶颈与测试系统设计层面上的问题, 同时拟设计与实现一个可行的测试系统及解决方案, 提高目前产品测试系统的稳定性、灵活性、高效性。

二、系统总体架构设计

并行测试系统采用C#开发平台上的基于Dotnet Framework 4的Windows窗体应用程序框架, 根据系统处理流程, 主要分为四个功能模块:基于抽象工厂模式与反射技术的测试指令管理模块、基于脚本解释方式的并行测试执行模块、支持差异化配置的并行测试管理模块、基于隔离网卡的并行数据封包收发控制模块, 并行测试系统的软件体系结构。

支持差异化配置的并行测试管理模块主要是针对每个并行测试实例进行差异化配置, 这是由于需要为每个并行测试实例配置测试网卡名称或者串口端口号等, 需要对其进行配置与维护, 该模块主要包括增加、删除、修改、运行并行测试实例, 保存当前实例配置, 载入预设实例配置。

基于脚本解释方式的并行测试执行模块是由并行测试管理模块启动, 并根据传入的配置参数进行运行单个或者多个并行测设实例, 来完成并行测试的设定测试项目, 各并行测试实例能够互不干扰独立运行。其主要包括测试脚本的解析、测试脚本的执行、脚本变量的定义与引用、测试流程的跳转管理。

基于抽象工厂模式与反射技术的测试指令管理模块主要实现外置测试指令的动态扩展, 由并行测试执行模块中的测试脚本通过指令接口来调用各个测试指令, 完成测试脚本中的测试动作。其主要包括外置测试指令接口的定义、外置测试指令的动态扩展、外置测试指令的识别管理。

基于隔离网卡的并行数据封包收发控制模块主要是为实现并行测试功能的外置测试指令进行协议支持。

三、测试方案

并行测试系统的系统测试分为系统语法与逻辑错误测试、功能测试两个方面。首先并行系统是在C#的Dotnet Framework 4平台上借用Sharp Pcap开源类库基于隔离网卡开发的, 因此系统必须能准确无误的运行Sharp Pcap中被引用的库函数和接口, 并通过测试网卡完成并行数据封包收发, 这样才能实现后续的并行功能;其次开发并行测试系统的目的是网络通信产品实现并行测试, 因此在系统设计中必须保证所有功能能正常实现;最后并行测试系统的最重要的目的是能够稳定、灵活地满足产品测试的需求, 并且通过并行测试来展现测试系统的高效性, 因此并行测试系统的稳定、灵活、高效是衡量系统性能的关键指标。

1. 系统语法与逻辑错误测试。

在系统语法与逻辑错误测试中采用开发工具携带的调试工具进行验证, 并结合白盒与黑盒测试检查系统中的错误信息。

2. 功能测试。

本文通过调用并行数据封包收发控制模块进行扩展外置测试指令来实现SNMP协议的Set Request格式封包与Get Request格式封包, 通过扩展的外置指令并行与多台待测产品进行交互测试, 来进行系统的功能测试。

3. 性能分析。

主要体现在并行测试系统的高效性方面, 本文主要通过与传统的单台产品测试进行比对, 来展现本并行测试系统的测试性能优势。

四、测试环境

1. 硬件环境:

系统硬件实验环境为:普通PC机一台 (内存2G, CPU;P4 3.0GHZ;2张千兆网卡) , 另外需要待测产品2台, 测试用以太网网线2根。

2. 软件环境:系统运行在Windows XP系统下, 实验环境需安装Dotnet Framework 4。

3. 测试环境拓扑结构:

通过一台测试主机的多张网卡同时连接具有相同默认IP地址的待测产品, 来构造IP地址冲突的测试环境, 以此来验证并行测试系统。

五、测试结果的分析

为了说明并行测试系统能有效解决IP地址冲突问题, 在并行测试时使用网络数据封包捕获工具Wireshark侦测两张测试网卡的数据封包, 通过分析是否有两种测试网卡的IP地址与各自相连接的待测产品的IP地址同步并行通信, 来判断测试结果。

六、小结

设计的产品并行测试系统主要这对目前产品测试的人机平衡问题给出较为合理的解决方案, 即能使得产品测试过程中很好的调整人机平衡, 又能不引入多余的切换动作。同时参照现有的脚本语言设计思想与面向对象设计技术, 解决产品测试系统的代码复用问题以及动态扩展问题, 使得测试系统就要更佳的稳定性与灵活性。

参考文献

[1]刘德胜, 唐贵林, 黄芝平, 刘纯武.基于Ethernet网络化测试系统的组建[J].计算机测量与控制, 2012, 20 (1) :28-30.

[2]曾华.基于Winpcap软件测试系统的研究与实现[J].中南大学计算机科学与技术, 2011.

[3]章佳.基于并行设计的工业产品测试设备的设计研究[D].南京航空航天大学, 2011.

多时钟域并行测试控制器的设计 篇3

随着集成电路产业的发展,设计、制造、测试已成为电路中十分关键的技术。测试成本伴随着集成电路规模的增大,已经占到整个生产制造成本的三成以上,并且还有向上增长的趋势[1]。如图1[2]显示了近几年测试数据量的增加。

从上图可以看出,测试数据量正在逐年增加,对测试的要求也会越来越高,因此,是否可以提高测试效率日趋成为集成电路产业的关键。

JTAG(联合测试行动小组)希望可以找到一个通用的解决方案来处理测试问题。该机构推出了IEEE 1149.1这个标准,是IEEE推出用来进行芯片测试的一个标准,现在又发展更新出了IEEE1500及IEEE1687,而业内多使用IEEE1149及IEEE1500作为测试标准[3]。

陈寿宏[4]等通过IEEE1500搭建SOC测试平台对电路进行测试,虽然可以正确地实现测试任务,但若对大规模电路进行测试则会消耗很多的测试时间,增加测试成本。谈恩民等[5]通过使用IEEE1500 wrapper的相关概念设计出可以支持sram故障测试的测试控制器。Elvira K[6]等也认为基于IEEE1500标准可以提高测试质量。本设计中同样采用了IEEE1149、IEEE1500的相关概念,并加入了不同时钟域并行配置通用寄存器的概念,在超大规模集成电路中可以提高测试效率,节省测试时间。

1 TAP控制器的设计[7]

引言提到的IEEE 1149.1标准里,有两类非常重要的寄存器:数据寄存器和指令寄存器。TAP的主要功能就是用来访问芯片的所有数据寄存器和指令寄存器。TAP结构的TMS信号用来控制状态机的转换,TDI、TDO分别为数据的输入和输出。TCK和TRST分别为时钟信号和复位信号。

TAP的状态机如图2所示,状态机的转换是由TMS所控制的,整个TAP Controller在TCK的驱动下,通过TMS=0,1会分别指向不同的次状态。

本设计采用IEEE1149中TAP的相关概念来进行数据寄存器和指令寄存器的配置以此搭建测试平台。

2 IEEE1500 wrapper的设计[8]

IEEE工作组提出了一种称为外壳(wrapper)的结构,它是IEEE1500标准对比IEEE1149标准的重大创新和突破。

wrapper标准测试壳结构包括旁路寄存器(WBY)、指令寄存器(WIR)、边界寄存器(WBR)等。该结构壳的特点在于可以增强内部不可见节点的可观察性,提高测试质量。wrapper的结构图如图3所示[9]。

该外壳在正常工作模式情况下,由于测试功能未被启动,完全不会影响到芯片的正常逻辑功能。具体的实现是通过相应的bypass功能。外壳wrapper通过bypass寄存器单纯将外部电路与内部的function IP正常连接。正常模式下,输入被打入外壳后被输入到bypass寄存器1拍后随后从输出端口输出。只有在测试模式下才会将输入输出连接入相应的扫描链。

3 并行配置通用寄存器的研究

通过在不同时钟域设计并行总线,来满足同时并行配置通用寄存器的要求。每个时钟域同时含有总线WPI,一旦输入相应的并行配置指令,WPI同时作为所有时钟域通用寄存器的输入,对通用寄存器进行配置,对其做如下设计的主要目的是可以提高测试效率,满足同时对通用寄存器配置的需要。其结构简图如图4所示。

4 结果分析

下面将从IEEE1149中tap的实现,IEEE1500中wrapper的实现,以及多时钟域并行配置通用寄存器的实现这3个方面分析结果。

4.1 IR、DR的访问实现

TAP控制器对IR、DR的访问实现verdi波形图如图5所示。

观察该波形图可知,该波形图依次体现了TAP对指令寄存器的访问和对数据寄存器访问的实现,完成了如图2所示TAP状态机的转换,成功实现了IEEE1149 TAP的相关功能。

4.2 IEEE1500 wrapper的仿真实现

IEEE1500 wrapper实现的仿真电路图如图6所示。

上面一系列仿真图是带有wrapper的基于IEEE1500标准测试器的仿真实现。与IEEE1149相比它增加了一个Select WIR signal,从而只用一个CAPTUTURE_DR即可实现CAPUTURE_IR及CAPTURE_DR的功能。SHIFT_DR、UPDATE_DR同理。其中所有测试信号均包上了一层wrapper。

上述仿真图实现了完整的指令寄存器及数据寄存器的访问实现。

4.3 并行配置通用寄存器的仿真实现

实现并行配置通用寄存器的仿真图如图7所示。

所配置的寄存器是5个clock domain均有的通用寄存器,首先不采用并行配置的方法,即各个时钟域以串行的方式配置其值均为’h26e,完成5个时钟域通用寄存器的配置共耗时间0.15 ns;而当采用多个时钟域并行配置通用寄存器的方法,并行配置通用寄存器值为’h34d,则可同时完成5个时钟域的配置,节省掉串行配置寄存器所耗时间,可以提高测试效率。

上图仅以5个时钟域举例,然而在现阶段的大规模集成电路设计中,所用到时钟域往往有几十个,可以推测出此种配置通用寄存器的方法可以大大地节省测试时间。

4.4 测试时间

表1为普通的测试控制器配置通用寄存器消耗的仿真时间随时钟域数目增加的变化(所有时钟域串行配置)。普通的基于IEEE1500标准的测试控制器配置通用寄存器时,所需要消耗的时间会随着clock domain的增加而增加,会消耗大量的测试时间,在大规模集成电路中,所需要配置通用寄存器的时钟域会非常多,通用寄存器数同样也很多,会消耗大量的资源。

表2为增加了不同时钟域并行配置通用寄存器结构的测试控制器配置通用寄存器消耗的仿真时间随时钟域数目增加的变化。

(ns)

(ns)

如上表我们可以清楚地看到,对比表1大量节省了配置通用寄存器的时间,并且节省的测试时间会随着寄存器数目、时钟域数目的增加而增加,可以极大地提高测试效率。

5 结论

本文详细介绍了IEEE1149中TAP及TAP controller,以及IEEE 1500 wrapper的相关概念,并成功实现了基于以上标准的测试控制器的设计,IEEE1500的wrapper的设计实现增强了测试的可控制性和可观测性。同时提出了一种针对多时钟域并行配置寄存器的方法来提高测试效率,缩短测试时间,该方法节省的测试时间会随寄存器数、时钟域数目的增加而增加。

参考文献

[1]吴明行,韩银和,李晓维.基于CTL的SOC IP核的测试技术[J].计算机工程与科学,2005(4):43-45.

[2]向刚.So C测试优化及其应用技术研究[D].哈尔滨:哈尔滨工业大学,2011.

[3]薛利兴,张展,左德承,等.基于JTAG的硬件故障注入工具[J].智能计算机与应用,2011(4):40-43,48.

[4]陈寿宏,颜学龙,陈凯.基于IEEE 1500的数字SOC测试系统的设计与实现[J].计算机测量与控制,2013(5):1140-1142.

[5]谈恩民,马江波,秦昌明.So C的存储器Wrapper设计及故障测试[J].微电子学与计算机,2011(6):122-125.

[6]ELVIRA K,MARYNA K,OLESIA G,et al.Fault Coverage Improving for So C Based on IEEE1500 SECT standard.IEEE;2006.

[7]IEEE Standard Test Access Port and Boundary-Scan Architecture.IEEE Std 1149.1-2001.2001

[8]IEEE 1500Group.IEEE Standard Testability Method for Embed-ded Core Based Integrated Circuits.2005

并行测试 篇4

随着武器装备对自动测试需求的提高,自动测试系统(ATS)正在成为现代装备维修的主要手段。并行测试技术是下一代ATS的关键技术之一,它不仅可以同时对多个被测试对象进行测试,还可以同时对1个被测对象的多个参数进行测试。通过并行测试,大幅度提高了测试资源的利用率,提高了测试系统的吞吐量,降低了测试成本[1]。在采用并行测试的过程中,需要考虑多任务同时并行调度引起的资源冲突、任务之间的时序约束以及测试总时间的最优化等问题。并行测试任务调度是一个难题。

将智能算法应用于并行测试任务调度问题,是目前研究的热点之一,文献[2]将遗传算法、文献[3]将蚁群算法、文献[4]将混合遗传禁忌算法分别应用于并行测试任务调度,取得了良好的效果。文章将粒子群算法(Particleswarmoptimization,PSO)应用于并行测试任务调度中,并对粒子群算法进行改进。通过实验验证,该算法在最优解或者近似最优解搜索的过程中,是有效和便于实现的。

1并行测试任务调度问题描述

并行测试任务调度问题可以进行如下描述:已知测试任 务集T= {t1,t2…tm}和测试资 源集R={r1,…rn},任务可以来自于多个被测设备或同一个被测设备,在给定各项任务所需的测试资源、任务之间的时序约束和测试时间集τ={τ1,τ2…τm}的前提下,确定测试调度方案,使得并行测试所需的总时间最短。在测试过程中,某一时刻一个资源只能被一项任务占用。

基于以上论述,建立如下模型:

(1)任务资源矩阵TRm×n:若TR(i,j)=1,则任务ti占用了资源rj,否则ti不占用资源rj;

(2)任务约束矩阵TSm×m:若TS(i,j)=1,则任务ti需先于tj执行,否则ti无需先于tj执行;

(3)任务调度矩阵Tpn×c:此矩阵为输出矩阵,横坐标表示资源,纵坐标表示执行步骤,若资源i在第j步调度中被任务k占用,则若Tp(i,j)=k,c为最大执行步骤。

2粒子群算法设计

2.1粒子群算法

粒子群算法由Eberhart和Kennedy在1995年提出,是一种基于群体智能的全局优化方法,通过模拟鸟群飞行觅食时的合作与竞争,指导优化搜索[5]。粒子群算法实现简单,所需参数少,全局优化能力强,在很多领域都得到了应用。

粒子群算法中的每个粒子都是解空间中一点,不同的粒子具有不同的速度和位置,由此决定个体适应度。通过粒子间的信息共享和相互学习,粒子根据自身的历史最佳适应度和群体的最佳适应度来更新速度和位置,从而向最优点靠拢。速度-位置更新公式如式(1)和式(2)所示:

其中,i为迭代次数,ω为惯性权重,random()为(0,1)之间的随机数,c1和c2为学习因子,合适的学习因子可以加快收敛速度且不易陷入局部最优,一般情况下取c1=c2=2;pi为当前粒子迄今为止搜索到的最优位置,g为整个粒子群搜索到的最优位置。

2.2粒子编码与解码

定义一个二维粒子如表1所示。

其中,第一维用自然数1,2…m表示任务,第二维用实数表示粒子的位置。因此第i个粒子可以用向量表示,其中j=1,2,…,m,表示待执行的任务,xij∈[1,C]为一个实数,C为最大执行步骤。

在对粒子进行解码时,对粒子的第二维即粒子位置xij进行取整操作,用INT(xij)表示。取整后的xij即表示任务j所对应的执行步骤。

2.3适应度函数

适应度函数为任务调度的总测试用时,即为各资源占用时间总和的最大值,各资源占用时间包括任务执行 时间和空 闲时间,表示为tTp(i,j)表示任务等待时间或资源空闲时间。

约束条件:a.若TS(i,j)=1,则N(Tp,ti)>N(Tp,tj);b.若R(TR,ti)=R(TR,tj),则N(Tp,ti)!=N(Tp,tj)。

a表示优先级高的任务先测试,条件b表示若2个任务所需资源冲突,则不能同时测试。

2.4对粒子群算法的改进

基本粒子群算法初期收敛速度快,但在后期却易陷入局部最优,需要很多次的迭代才能跳出。针对这个缺陷,众多学者提出了改进的方法[6]。文章提出了搜索邻域最佳粒子 代替当前 粒子的改 进方法。在粒子群迭代的前期,或者当所求得的最优解未达到期望 中的解时,粒子进行 正常的全 局开拓(exploration);在粒子群迭代的后期,或是当所求得的最优解达到期望中的解时,寻找当前粒子邻域中的K各点(K为指定常数),并找出其中适应值最小的那个点;若该点适应值比当前点更优,则替换当前点。这样,粒子在专注于自身最优解和全局最优解的基础上,能对粒子 的邻域进 行更进一 步的开掘(exploitation),从而以更快的速度跳出局部最优解并能提高求解的精度。

(1)粒子第d维的邻域作如下的定义:a.当前粒子第d维位置与群体最优粒子第d维位置相差大于某个预先指定的常数时,粒子主要在小范围内开掘,邻域的半径定义为下面3个值的最小值;当前粒子与群体最优粒子的距离、当前粒子与个体最优粒子的距离、当前粒子与边界的距离;b.当粒子第d维位置与群体最优粒子第d维位置相差小于指定常数时,粒子将在更大的范围内开掘,邻域的半径定义为上述3个值的最大值。

(2)对第i个粒子邻域的开掘采用式(3):

其中,ppjd表示开掘出的第j个粒子第d维的位置,pid表示第i个粒子的第d维的位置,rd表示第d维的邻域半径,random()是0~1之间的随机实数,djd表示方向,且

2.5算法描述

由于并行测试任务调度的特殊性,在进行算法描述前,需考虑如下几个问题:

(1)由于采用的是实数编码的方式,二维向量中的xij取整后为[1,C]中的随机整数,并不能保证生成的调度方案满足约束条件。

(2)由于粒子的位置取整后即为执行步骤,因此生成的调度方案可能会跳过中间某一步骤,从而成为不可行方案。不可行调度方案如表2所示。

文章采用以下方法来解决上述问题:

(1)初始化时,采用随机的方式生成各粒子的速度和位置,如果生成的方案为不可行方案,则重新生成,直到可行为止。

(2)采用惩罚的方法,即在计算的过程中,如果某个粒子所生成的调度方案为不可行调度方案,该粒子的适应值设定为一个较大的值。

(3)如果粒子更新后的位置超出了边界,则在最大值和最小值之间随机取值,保证粒子的多样性。

利用粒子群算法求解并行测试任务调度的流程可表示如下:

(1)设定粒子种群数量和最大迭代次数,对粒子群中的粒子的位置和速度进行初始化。

(2)对粒子进行解码生成调度方案,计算粒子的适应值,即最大结束时间,如果某个粒子所生成的调度方案为不可行调度方案,将该粒子的适应值设定为1个较大的值。

(3)是否达到一定的迭代次数或达到期望中的解?如果是,转(2),否则转(5)。

(4)根据公式(3)和(4)对粒子邻域进行开掘,并找出其中的最佳粒子,若该粒子比当前粒子更优,则替换之,转(6)。

(5)根据公式(1)和(2)对粒子群中粒子的位置和速度进行计算,如果被更新的粒子超过了被限制范围,那么就随机取值。

(6)是否达到最大迭代次数?如果是,输出全局最优粒子和最小的最大结束时间,根据全局最优粒子生成最佳调度方案;否则转向(2)。

3仿真实验

为了验证所提算法的可行性,以文献[7]中的实例进行测试。

3.1实验数据

3.2实验参数

实验以VC+ +6.0为仿真环 境,在Pentium-IV3G的PC上完成。粒子的种群大小设为50,惯性的权重ω采用线性递减,ωmin=0.4,ωmax=0.9,c1=c2=2,最大迭代次数为500。

3.3实验结果及分析

采用粒子群算法后得到的最优解为:

算法运行50次,所得的最 优解与文 献中的TaskScheduler-T算法和标 准遗传算 法 (SGA)一样,均为34s。同时,粒子群算法在种群多样性上有一定程度的改进,能够接受恶化解,可以更快地跳出局部最优解,具有更快的收敛速度。可见,粒子群算法可以较好地解决此类优化问题。

4结束语

并行测试 篇5

1 数字微流控芯片相关研究

数字微流控芯片的测试研究主要集中于故障分类和故障建模, 并针对相应故障进行测试诊断。数字微流控芯片的故障分为突变性故障和参数性故障[2]。突变性故障会使液滴不能移动而造成系统无法工作, 如绝缘体击穿, 相邻电极短路, 电极板断路等故障。参数性故障主要造成系统运行时出现较大的偏差, 如尺寸参数误差, 液滴包容介质的黏性变化等。针对这些故障, 文献[2]指出可通过将液滴在芯片的阵列单元上移动实现故障检测。

文献[3~4]先后分别提出基于整数线性规划法和基于汉密尔顿图的测试方法, 然而以上两种方法都无法检测出电极短路故障。因此为达到测试该类故障的目的, 文献[5]提出了基于欧拉回路的测试方法。该方法虽然能够侦测到电极短路故障, 但是由于采用单个液滴进行测试, 应用花费时间较长。文献[6]提出了一种并行扫描式的测试方法, 即采用多个测试液滴对芯片阵列进行并行扫描, 虽能有效地减少测试时间, 但该方法更适合用于离线测试。文献[7]提出了一种并行在线测试方法, 将芯片阵列等分为多个子阵列, 在不干扰生化实验的限制下, 利用实验的空隙时间, 对空闲子阵列进行合并和调度, 实现芯片阵列的并行测试, 有效缩短在线测试应用时间。

上文提到的测试方案都是针对芯片的所有阵列单元进行液滴遍历, 然而这种测试需要花费更长的测试时间和更多的储液池、废液池等硬件消耗。且随着芯片阵列规模的增加, 全芯片测试花费的时间也呈指数增长。然而实际的生化实验中, 实验液滴仅会在综合后的路径上传输。因此在线测试也仅需对实验所需的阵列单元群进行测试, 防止实验液滴由于故障而在运输路径上停止, 而无需花费多余的时间测试未使用的阵列单元。对此, 本文提出一种针对实验路径测试的方案, 该方案采用并行液滴测试, 能够大量减少芯片的测试应用时间, 且适用于在线测试。由于芯片的实验路径具有灵活性高, 路径与路径之间纵横交错等特点, 较类似于网络节点, 而蚁群算法作为群体智能的一个典型, 具有正反馈、易于作分布式计算、以及建设性的“贪婪”启发式应用特性[8], 能较好地解决此类问题, 因此本文采用蚁群算法优化测试液滴的调度。

2 测试方案

由上文的研究可知, 数字微流控芯片的测试是利用微控制器对电极施加时序电压从而控制和追踪测试液滴的运动来检测故障。测试液滴从储液池出发, 遵循测试规则, 通过遍历阵列单元最终到达测试终点。在终点端增加电容检测电路, 以电容电压变化判断测试液滴到达, 即完成故障测试。如若存在故障单元, 则测试液滴停止在故障单元位置, 而无法到达检测电路, 从而表明存在故障, 反之检测到液滴到达表明芯片测试正常, 具体流程如图1所示。

所以数字微流控生物芯片的测试是对芯片阵列单元的遍历, 以检测电极与液滴之间的控制是否存在故障, 因此该种遍历问题可转换为网络问题, 即将阵列单元结构抽象为图论中的图模型。

2.1 测试模型

将芯片经过综合后的实验模块和路径映射为二维带权图G (V, E) , 其中V表示实验中的液滴储液池、废液池、融合区等实验模块;E表示各模块之间的路径, 若两模块之间有路径相连, 则相应的节点连通, 路径上的权值表示两模块之间所经过的阵列单元数, 如图2所示。

由于图G (V, E) 为非完全连通图, 所以将图G中任意两点间的最短长度作为两点间边的权值, 并以此构造出一个完全连通图G'。采用Floyd算法求此最短路径。具体步骤如下: (1) 从任意一条单边路径开始。所有两点之间的距离是边的权, 如果两点之间没有边相连, 则权为无穷大。 (2) 对于每一对顶点U和V, 是否存在一个顶点W使得从U到W再到V的路径长度比已知的更短, 如果存在则更新。将得到的无向完全图G'作为问题模型, 利用蚁群算法寻找多条优化测试路径。

2.2 蚁群算法搜索测试路径

针对大规模的数字微流控生物芯片, 单液滴测试会耗费较长的应用时间, 因此需采用多液滴并行测试提高效率。经过上文所述的模型映射后, 芯片的测试问题可以转换为MTSP问题, 即m个测试液滴从起点出发, 根据分配的多组测试路径, 分头去访问n-2个节点, 最终到达终点。而蚁群算法中, 每只蚂蚁均可构造问题的一个解, 因此将采用m组蚂蚁共同搜索并行测试路径, 每组蚂蚁有k只[9]。

2.2.1 并行策略

对于第i (i=1, 2, …, m) 组的蚂蚁j (j=1, 2, …, k) , 从储液池出发, 访问mij个节点后到达废液池, 其中mij是蚂蚁j出发之前按一定规则随即生成的整数, 表示其能经过的节点数。因此mij需满足

该式表示蚂蚁所经过的节点数必须超过2个, 且一组蚂蚁所经过的节点需覆盖除储液池和废液池外的全部阵列单元。同时, 为第i (i=1, 2, …, m) 组的每一只蚂蚁j (j=1, 2, …, k) 分配路径表eji, 记录蚂蚁j当前已遍历的节点。当eji中的元素个数等于mji时, 蚂蚁停止搜索并直接到达废液池。当所有的路径{e1i, e2i, …, eki}, (i=1, 2, …, m) 完成后, 即可构成了相应的测试路径。每次迭代中m组蚂蚁可生成m组解。

2.2.2 概率选择策略

选择策略采用伪随机比例规则既可利用关于问题的先验知识, 即关于节点之间距离长度的启发信息以及以信息素形式存储已经获得的信息, 又可进行有倾向性的探索, 使蚂蚁寻找出更多可能的路径, 保证解的多样性, 提高全局搜索的能力。因此定义如下:

时刻t时每只蚂蚁在单元i选择下一个即将遍历的单元j时按照伪随机比例规则选择

其中, α和β分别决定了信息素和启发式信息的相对影响力;allowedk表示位于节点i的蚂蚁下一步可以选择的节点的集合;ηij (t) 为启发函数, ;q是均匀分布在区间[0, 1]的一个随机变量, 参数q0决定算法对新路径的探索度 (0≤q0≤1) ;J为根据式 (3) 的概率所选择的阵列单元。

2.2.3 信息素更新策略

信息素更新分为局部更新和全局更新。蚂蚁每从点i移动到j, 就会减少 (i, j) 上一定量的信息素, 以增加蚂蚁探索其他路径的可能性, 这一过程称为信息素局部更新

其中, ξ和τ0是两个参数;ξ表示信息素挥发因子, 满足0<ξ<1;τ0是信息素的初始值, 当为时, 算法具有较好的性能;n为所需遍历的阵列单元中的所有节点数;Cnn表示由最近邻方法得到的路径长度。局部更新规则可有效地避免蚂蚁收敛到同一条路径。

信息素的挥发和信息素的释放只在至今最优解路径上进行。当所有的蚂蚁都构建出一条完整路径后, 只更新至今最优蚂蚁所走路径的信息素, 该过程叫信息素全局更新

其中, Tbs为全局最优的路径;Lbs为全局最优路径的长度。

算法流程图如图3所示。

3 实验与分析

以文献[10]中的生化实验模型为例, 进行该测试方法的图解说明和有效性验证。已知一个二维平面数字微流控生物芯片, 如图4所示。该模型中4个液滴a, b, c, d分别需要移动到相应的目标点。测试目标即为利用k组测试液滴从起点开始实施并行测试, 使得测试液滴能够覆盖所有行进路径, 最终到达终点。

该模型的路径可转换为网络节点图, 其中权值为节点与节点之间所经过的电极单元数。

获得模型的网络节点图后, 利用Floyd算法求各节点之间最短路径, 转换为完全连通图, 表1为该图的邻接矩阵。

假设Dc为起始点, Sa为终点, 利用蚁群算法寻找多条并行测试路径, 以实现液滴并行测试。实验各参数为m=40, q0=0.9, α=1, β=2, ξ=0.1, ρ=0.1, NC=1 000。当k取2, 3, 4时获得结果如表2所示, 其中路径长度为液滴所经过的电极单元总数。

当k=3时, 即3条并行测试路径, 其中, 蚁群算法分配到每组的节点后, 将各组节点之间的路径分配到未使用的路径上, 如若存在未分配到的路径, 则测试液滴再由起始点出发, 遍历该路径后回到终点。另外由于数字微流控芯片中两液滴不能处于直接邻近或对角邻近的阵列单元, 否则会导致液滴融合, 所以需保证液滴之间有一定的间隔距离。因此各组测试液滴之间存在优先级, 权值最大, 即路径长度最长的液滴拥有最高优先级, 该液滴具有优先遍历电极单元的级别, 其他低等级的液滴若相遇则进入等待状态, 依次类推。最终测试路径如图5所示, 花费时间分别为26、30、36个单位时间。单位时间是液滴移动到相邻阵列单元所花费的时间。

4 实验结果

实验结果表明, 基于蚁群算法的并行测试方法能够灵活、有效地减少针对实验路径测试所花费的时间。本方法还可以利用测试液滴分裂的特性进行测试优化, 以减少重复路径的遍历。例如图5中可对交叉点e, f, g, h进行液滴优化, 使2倍体积的测试液滴在该处分裂为两个1倍体积的液滴并行测试以减少行走重复路径所花费的时间。本文对该芯片以全阵列测试和实验路径测试两种测试形式进行实验结果比较。选取Dc端为出发点, Da端为终点。实验结果如表3所示, 本文提出针对实验路径的测试策略运用在实际实验中, 能够大量减少测试时间, 加快实验的工作流程、节约液滴容量、降低实验消耗。

5 结束语

本文主要进行了基于蚁群算法的数字微流控芯片的并行测试研究。目前其他的研究文献都是对数字微流控芯片全阵列进行测试, 花费时间长, 算法负杂度高。本文提出的方法有针对性的对实际实验中已经经过综合后的实验路径进行测试, 采用蚁群算法, 利用其分布式计算的特性, 寻找多液滴测试路径, 完成对路径的测试, 测试花费时间大幅减少, 对于大规模的数字微流控芯片, 测试效果更加明显。

摘要:可靠性是数字微流控生物芯片的一项重要指标, 尤其是在安全性要求较高的应用领域。因此, 芯片需要在生产制造后或生化实验前进行充分测试, 以排除故障, 确保实验结果准确。文中针对芯片的结构故障, 提出了一种基于蚁群算法的并行测试方案, 实现对较大规模的数字微流控芯片进行多液滴并行测试。该方案首先将芯片模型转化为MTSP模型, 并利用蚁群算法分布式计算特性搜索多组优化的测试路径, 完成对数字微流控芯片实验路径的测试。实验结果表明, 该方案可用于在线测试, 并能有效地减少大规模芯片的测试时间, 且提高了工作效率。

关键词:蚁群算法,数字微流控芯片,并行测试

参考文献

[1]ZHAO Y, CHKRABARTY K.On-line testing of lab-onchip using reconfigurable digital-microfluidic compactors[J].International Journal of Parallel Porgramming, 2009, 37 (4) :370-388.

[2]SU F, OZEV S, CHAKRABARTY K.Testing of dropletbased microelectrofluidics systems[C].Charlotte:Proceeding IEEE International Test Conference, 2003:1192-1200.

[3]SU F, OZEV S, CHAKRABARTY K.Concurrent testing of droplet-based microfluidic systems for multiplexed biomedical assays[C].Charlotte:Proceeding IEEE International Test Conference, 2004:883-892.

[4]SU F, OZEV S, CHAKRABARTY K.Test planning and test resource optimization for droplet-based microfluidic systems[J].Journal of Electronic Testing:Theory and Applications, 2006, 22 (2) :199-210.

[5]SU F, HWANG W, MUKHERJEE A, et al.Testing and diagnosis of realistic defects in digital microfluidic biochips[J].Journal of Electronic Testing:Theory and Applications, 2007, 23 (2-3) :219-233.

[6]XU T.CHAKRABARTY K.Paralled scan-like testing and fault diagnosis techniques for digital microfluidic biochips[J].IEEE Transactions Biomed Circuits System, 2007, 1 (2) :148-158.

[7]张玲, 邝继顺, 林静, 等.数字微流控生物芯片的并行在线测试[J].上海交通大学学报, 2013, 47 (1) :98-102, 107.

[8]李智, 许川佩, 莫玮, 等.基于蚂蚁算法和遗传算法的同步时序电路初始化[J].电子学报, 2003, 31 (8) :1276-1280.

[9]黄席樾, 胡小兵.蚁群算法在K-TSP问题中的应用[J].计算机仿真, 2004, 21 (12) :162-164.

并行测试 篇6

FLASH卡产品已发展成为目前消费类电子产品市场上炙手可热的产品,许多国际大公司纷纷推出和改进自己的产品,使得FLASH卡发展迅速,具有广阔的市场[1,2]。近年来多种FLASH卡标准并存的情况依然存在,SD/MMC卡发展前景较好,已经成为最主要的标准,MS卡和XD卡占据的市场份额较固定,SM卡、CF卡和PC卡的市场份额下降较快。所以研究SD/MMC卡的测试系统具较强的实用价值且应用前景广阔。

目前国际上有专门做测试系统的公司,产品功能强大而且性能好,时序用硬件实现速度快,测试时可以检测到管脚上通过的电流,得到命令执行时间,适合量产。但由于需要成熟的标准[3,4,5],系统的升级不方便,开发费用也高。为了规范FLASH卡测试流程,提高工作效率,以更严格可靠的测试手段保证FLASH卡的质量,同时从灵活度和性价比考虑开发高性能、低成本的测试系统。

本文的研究为中小型客户测试FLASH卡片提供了从硬件到软件的解决方案,具有较强的实用价值,课题的应用前景广阔。

1系统设计原理

本系统的功能主要是测试SD/MMC卡,整体上分为软件和硬件两大模块。其中软件主要是进行时序控制及生产测试,硬件则是连接PC和FLASH卡及为信号提供驱动。基于PC并行口的FLASH卡测试系统原理图如图1所示。

基于PC并行口的FLASH卡测试系统的基本原理是测试人员将命令序列输入电脑,保存到系统同目录下的command_script.txt文件,系统软件将其调入内存并转化为被测FLASH存储卡能识别的控制信号,同时收取FLASH存储卡的响应信号,然后将响应信号以易读的形式输出并将命令执行信息存入同目录下的log_file.txt文件,系统的核心是:

(1)软件上为并行口建立输入输出缓冲,硬件上将并行口的管脚连到FLASH卡插座的管脚上并与并行口的缓冲对应。

(2)时序产生和命令发送。

(3)接收响应信息。

(4)处理响应并输出结果。

2系统硬件设计

测试系统的原理图用Protel99 SE绘制[6,7,8],使用MENTOR GRAPHICS设计PCB。

2.1器件的选择及其功能

测试系统硬件是并口板,主要由2个SN74HC244、1个SN74HC245、2个4.7k的排阻、1个DCDC等组成,SN74HC244和SN74HC245的功能是开关电路和驱动信号,排阻用做上拉电阻使信号的初始状态符合协议。并口板用USB线供电,由于PC机USB的口的输出电压为+5 V,而协议规定的电压不超过3.6 V,所以需要电源芯片来降低电压,要连接PC的并行口所以需要一个25针的D型阳头,为了测试方便还需要一个双排插针,另外还有稳压和滤波用的电容,电阻,FLASH卡插座,指示灯。

2.2原理图绘制

并口板同时能作为符合SD/MMC/MMC4.0协议的Flash卡测试系统的硬件平台,SD/MMC和MMC4.0协议不同所以电路不一样,因此并行板用阻值为0的电阻焊接与否来选择不同的电路,使并口板有良好的兼容性和扩展性。

2.2.1 数据通道

在MMC4.0模式下数据通道是并行口的0—7数据线与卡座的0—7数据线通过SN74HC245连接,传送方向受并行口的Ctrl1控制。SD/MMC和MMC4.0模式的数据通道是不同的,SD/MMC数据的输出通道是并行口的1—4数据线和卡座的0-3数据线通过SN74HC244连接,受并行口的Data0线控制,数据的输入通道是卡座的0—3数据线和并行口的Stat4-Stat7通过SN74HC244连接(总是通路)。

2.2.2 命令和时钟通道

MMC4.0模式下命令输出是并行口的Ctrl3和卡座的HCMD线通过SN74HC244连接,发送受并行口的Ctrl2控制,命令返回信息的输入是由卡座的HCMD和并行口的Stat3通过SN74HC244连接,时钟是并行口的Ctrl0和卡座的HCLK线通过SN74HC244连接的,命令返回信息输入线和时钟输出线的控制位接地(总是开通),SD/MMC和MMC4.0模式的命令、时钟线连接在同一SN74HC244的同一管脚上,只是并行口端连接不同,通过阻值为0的电阻的焊接与否选择对应模式下的命令和时钟线。在数据线和命令线上要接上拉电阻,以符合协议。

PCB设计不再赘述,如图2所示为PCB布线。

3系统软件设计

系统的软件分为四个模块:加载并行口驱动模块、输入输出模块、时序发生模[9,10]块、命令发送模块。

3.1加载并行驱动模块

加载并行口驱动模块主要是为PortTalk.sys建立函数接口,并把它创建为系统进程。系统默认的并口驱动是为打印机提供服务的,需要另外创建一个端口驱动,下载得到PortTalk.sys后启动它提供的服务。加载并行口驱动模块由outportb、inportb、InstallPortTalkDriver、StartPortTalkDriver、OpenPortTalk、ClosePortTalk函数组成,测试系统要用到即打开并行口、传送数据、接收数据、关闭并行口四种服务。

其中InstallPortTalkDriver函数作用是注册系统服务,在NT操作系统中,所有的后台服务全都由服务控制管理器进行统一管理,这些后台服务的状态数据都保存在服务控制管理器数据库中。要创建一个新的后台服务,在应用程序的主模块里应首先调用函数OpenSCManager打开该数据库,得到服务控制管理器句柄。再调用函数CreateService在此数据库中创建一个新的服务线程对象,并将该线程对象启动属性设置为随系统启动自动加载。

3.2输入输出模块

输入输出模块负责将用户命令和写入数据的输入以及输出系统产生的结果。输入模块的功能是以固定格式从文件读入数据,读入的数据分两种一种是命令数据,另一种是写入存储单元和寄存器里的数据。

输入模块输入命令文本的过程如下:

(1)读入前三个字符,判断是否是CMD,如果不是就报错;

(2)读入命令序号,判断是否是0—9,如果不是就报错,如果是就存入数组COMMAND_FROM_FILE,供命令发送模块使用;

(3)读掉空格;

(4)读入10个字符,判断是不是ARGUMENT0X,如果是就存入数组ARGUMENT_FROM_FILE,如果不是就报错;

(5)读掉空格,读入11个字符,判断是不是EXCEPTION0X,如果是就存入数组EXCEPTION_FROM_FILE供输出模块使用,如果读入的都是空格就换行,如果是其它就报错。

(6)重复以上步骤直到文本结束。

输出模块的功能是处理和输出测试结果,由于命令返回信息是二进制的要处理成易读的形式,数据有三个流向:通过管道重定向截获核心程序的输出并在窗口中显示;将命令的执行结果过程存入日志文件;将读出的数据存入Read_Buffer_File.txt文件。系统使用管道重定向技术读取窗口管道的内容并在窗口显示。

3.3时序发生模块

时序发生模块是测试系统软件中最核心的模块,负责时序的产生和返回信息的接收,产生三类时序。

3.3.1 写时序

写数据分为单块写和多块写,在初始状态WT_PREPARE,程序准备往SD/MMC写数据,如果卡没准备好,程序将退出状态循环,经过X1个时钟周期,程序进入开始写数据状态(WT_START)并打开数据口,如果没有发停止信号,程序进入写数据状态将事先从Write_Buffer_File文件输入的数据写入SD/MMC,写完数据程序开始写CRC,最后程序接收从卡发回的CRC信息,如果数据线0不为‘0’,程序回到WT_PREPARE继续写数据。在多块写循环中无论何时收到停止信号,程序都将进入WT_RD_BUSY状态(数据线0置‘0’)。

3.3.2 读时序

在初始状态RD_PREPARE,程序准备从SD/MMC读数据,经过Y1周期程序进入等待读状态直到数据线显示‘0’,数据线置‘0’表示SD/MMC开始发送数据,程序开始读数据,读完数据和CRC后程序进入RD_END状态,如果是单块读或者有停止信号,则程序进入IDLE状态,如果是多块读,则程序进入RD_PREPARE状态,继续读数据。在多块读过程中任何时候有停止信号,程序都将进入RD_END状态。

3.3.3 命令和响应时序

命令按位发送,每个时钟周期发送一位,整个命令发送要48个脉冲周期,SD/MMC通过命令线发送返回信息,每个时钟周期发送一位。

3.4命令发送模块

命令发送模块要将用户输入的命令序列发送到FLASH卡,它是在时序模块的基础上进行的,时序产生函数tick(ubyte ~Z,ubyte CMD,ubyte Z,ubyte DATA),~Z控制命令的发送,当~Z=0时打开SN74HC244发送命令数据,~Z=1时截止,函数每执行一次发送一位;Z控制数据的发送;每次发送四位。命令由48位数据组成,要连续调用48次tick(~Z,tmp,Z,0)。

3.5PC端程序软件

PC端应用程序是通过向测试系统发送操作指令,测试系统根据收到的指令完成一系列的文本操作包括命令文本、写入数据的编写,命令编译执行等。编译执行实际上是在窗口中调用核心程序的EXE文件并让其输出到窗口中显示。PC端应用程序的操作流程如图3所示。

4系统实验与结论

作者参与导师楼向雄副教授在百立(杭州)电子系统公司的一个具有市场竞争力和前瞻性的FLASH卡测试系统方案的开发设计,使用图4的FLASH ID Test List进行实验验证,实验结果如图5所示,系统性能稳定可靠,具有较强的实用价值,已经成功投入工业化生产。

参考文献

[1] Hennessy J L,Patterson D A.Computer Architecture A QuantitativeApproach.Morgan Kaufmann Publishers,2003

[2] Klapproth P.General architectural concepts for IP core re-use.Proceedings of ASP-DAG 2002.7th Asia and South Pacific andthe 15th International Conference on VLSI Design—Proceedings,2002

[3]李振华.FLASH卡生产测试开发探析.技术与市场,2008;15(10):69

[4]李振华.FLASH卡生产测试系统并行接口板的硬件设计.技术与市场,2009;16(8):25

[5]沈美丽,陈殿仁.基于并口的驱动程序开发.电子器件,2005;28(2):394—397

[6] Koyama T,Inoue K,Hanaki H,et al.A 250 MHz single-chip multi-processor for audio and video signal processing.IEEE J Solid-stateCircuits,2001

[7]陈静.现代机载雷达I/O接口模块的研究与实现.西安:西北工业大学硕士论文,2001

[8]方小明.用于Flash卡生产的SOC平台关键技术研究.西安:西安电子科技大学硕士论文,2006

[9]贺小琳,张善从.基于VxWorks的SD卡驱动程序的设计与实现.计算机工程与设计,2010;31(16):3573—3575

【并行测试】推荐阅读:

并行模型05-21

并行计算05-24

并行诊断06-12

并行编码06-19

数据并行06-19

并行机制07-05

并行优化08-09

并行系统08-09

并行协同08-19

并行调度08-26

上一篇:第三方机构下一篇:选址条件论文