|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
在电子设备运行过程中,存储器发生故障或失效,不仅导致经济损失,而且还有可能导致灾难性的后果。因此存储器的测试也成为当今世界的一个重要问题,在军事装备中存储器正扮演着很重要的角色。目前,基于虚拟仪器设计的自动测试系统已成为主流,而软件则是虚拟仪器的核心。在此,以LabVIEW为软件工具,结合相应的数字I/O卡,开发一套用于某装备存储器检测的检测系统。
<strong>1 总体方案及硬件设计</strong>
1.1 需求分析
该系统所选的被测对象是某型装备中的公用存储器,测试通道有地址总线18根、数据总线18根,控制线3根(控制线共7根,其中3根有效)。其中,状态输出信号表示读/写信号是否有效;读/写信号表示对RAM的读/写操作;数据输出有效信号表示数据输出是否有效。容量8 KB,读周期400 ns,写周期500 ns,供电电压5 V。
1.2 系统硬件设计
该硬件系统,以中心计算机为主体,以插入其中的数字I/O卡为功能部件。通过计算机控制数字 I/O卡进行数字信号的输出和测量。由此可知,系统平台的搭建关键是选择合适的数字I/O卡。该系统测试的主要信号有地址信号、数据信号和控制信号。考虑到输出位数和速度,用NI公司的数字波形发生器/分析仪6542,它具有32路可双向控制的通道,可方便地进行信号输出和对信号的采集。该模块每个通道都有1 Mb,8 Mb和64 Mb的板载内存,便于测试信息的存储。
1.3 接口适配器设计和端口的分配
接口适配器用于连接被测设备和测试平台。设计时只选用一块6542模块,所以只有32个输出通道,不能实现所有信号的有效同步输出,设计时需采用数据线和地址线共用的原则予以解决。接口适配器的组成框图如图1所示。选择6542的portO~port2作为公用的地址线和数据线,port3作为控制线。锁存器选择双向锁存器,通过锁存方向控制数据的输入/输出,片选控制线控制数据的锁存,锁存输出控制线控制锁存器里的数据读出。
<strong>2 存储器测试算法分析</strong>
2.1 存储器故障类型
存储器故障总体可以分为单个单元的故障和单元之间的故障两类。单个单元的故障包括:粘滞故障(SAF)一个阵列总是0或1;转换故障(TF),即一个特定单元在一定转换序列后不能进行0/1翻转;数据保持故障(DFR),即一个单元在一段时间后不能保持它的逻辑值等。单元之间的故障主要是耦合故障 (CF),它包括字间故障和字内故障。
<ignore_js_op>
2010-3-22 13:27:47 上传
<strong>下载附件</strong> (19.81 KB)
</ignore_js_op>
2.2.March算法
针对存储器不同的故障类型,提出了多种存储器的测试算法,如March算法、Walking算法、Calloping算法等。其中,March算法具有较高的故障覆盖率,较小的时间复杂度,在存储器测试中得到广泛应用。其基本步骤用公式表示如下:
<ignore_js_op>
2010-3-22 13:27:48 上传
<strong>下载附件</strong> (3.21 KB)
</ignore_js_op>
式中:Cij表示第i行,第j列的存储单元;R表示读操作;W表示写操作;表示全部C的集合;∑表示,集内的总和;逗号“,”是公式内各有序操作之间的分隔符;0或1表示背景数据和操作数据。根据公式可以算出测试的复杂度为5N。简单说就是按照一定的规则向存储器写入和读出数据。针对不同的故障模型,在测试中添加不同的数据背景可以实现相应的故障覆盖。通常,一种算法不能覆盖所有的故障类型,所以测试时要用两种或两种以上的算法。
2.3 March算法在检测系统中的应用
一般的March算法都是以位进行操作的,而被测对象是18位的数据通道,存储方式为字节存储,因此应该对March算法进行扩展。测试时不仅要考虑到字间故障,而且也应该考虑一个字内多个位之间的耦合故障。面对这种情况就应该增加March算法的测试数据。对于N位的存储器,共有log2N+1种测试数据,文献给出了数据背景的计算公式。被测对象有18位存储器,通过计算有5组测试数据:
<ignore_js_op>
2010-3-22 13:27:48 上传
<strong>下载附件</strong> (14.94 KB)
</ignore_js_op>
<strong>3 系统的软件设计</strong>
3.1 软件总体方案
该系统软件部分基于虚拟仪器技术进行开发。选择LabVIEW作为测试程序开发工具,Access作为数据库工具。整个软件由主控程序、人机界面、测试模块、诊断模块、数据库模块组成。主控程序负责各个模块之间的调用和协调;人机界面实现用户与测试系统的交互;测试模块完成数字信号的输出和采集;数据库模块主要用于实现整个系统数据的管理。
3.2 主程序
主程序依托LabVIEW软件,采用模块化的设计思想,主要包括程序初始、测试数据、读/写数据、取消设置、和错误判断五个部分。程序初始模块,用于进行面板参数设置和板卡设置;测试数据模块。用于:通过对数据库数据的查询,提取地址和数据等信息;通过对读/写信息的判断,选择数据信息输出的读入。如果测试时出现异常现象,则由程序输出自定义错误,通过自定义错误传递故障信息,同时跳出读/写循环;取消设置,用来恢复测试时改变的各个参数;错误判断模块,用于判断错误类型,通过判断自定义错误携带的信息判断故障类型,并反馈给人机界面。图2是主程序的程序框图。
<ignore_js_op>
2010-3-22 13:27:48 上传
<strong>下载附件</strong> (44.69 KB)
</ignore_js_op>
3.3 测试程序
对存储器测试时采用March算法。March算法的特点是向存储器顺序地写入和读出数据,通过分析数据判断存储器的故障。因此在测试程序的编制过程中,数字信号的输入/输出较为关键。图3是读/写操作的程序框图。根据适配器的实际方案.数据的输入/输出在设计时也有一定的要求。向存储器写数据时分为三个步骤:向锁存器写地址,向锁存器写数据,锁存器和状态输出。读取存储器的数据分为4个步骤:向锁存器写地址,锁存器和状态输出,检测数据输出有效信号,读锁存器数据。实际应用时,可以根据不同的芯片,设置不同的延迟时间,以满足读/写周期的要求。
<ignore_js_op>
2010-3-22 13:27:48 上传
<strong>下载附件</strong> (17.06 KB)
</ignore_js_op>
3.4 数据库设计
软件设计时,采用主控程序与测试信息分离的思想,通过数据库来存储测试信息。数据库采用比较常用的数据库Access。测试时,根据不同的测试算法,将不同测试数据编绘到数据库中。测试时主程序通过SQL语言对数据库进行调用,控制数字信号的输入/输出,从而实现测试内容的可扩展性。根据 Marct,算法的规则,设计数据表时,要设计编号、读/写操作、地址、数据和结束标志5列。编号用来实现Marcrt算法的顺序执行;读/写操作用于主程序中判断数据的读/写操作;地址用于存储地址信息;数据用于存储数据信息;结束标志用于结束本算法的测试。数据库存储表格如图4所示。第一行表示第一次读/写操作,向0地址写入数据80。
<ignore_js_op>
2010-3-22 13:27:47 上传
<strong>下载附件</strong> (24.55 KB)
</ignore_js_op>
<strong>4 结 语</strong>
采用NI系列PXI板卡及灵活方便的LabVIEW软件平台,构建了一套某装备存储器的检测系统。通过数据库实现了测试算法与测试程序的独立性,可以根据不同的March算法进行测试。实验结果表示,该系统具有自动测试性强,容易操作,可扩展性强等特点,有效提高了对某装备存储器的测试效率。
<strong>参考文献</strong>
1. 陈思,黄亚宇.虚拟仪器技术概述[J].机电产品开发与创新,2007(20):51-53.
2. 卢松升,刘正之.基于LabVI EW和数字I/O卡的逻辑分析技术[J].微计算机信息,2006,22(20):85-86.
3. 田勇,孙晓凌,申华.基于FPGA的SRAM测试电路的设计与实现[J].电子工程师,2008,34(12):57-59.
4. Niraj Jha,Sandeep Gupta.Test of Digital Systems[M].England:Cambridge University Press,2003.
5. 左正军,程新明,李加庆,等.基于March算法的存储器测试控制器设计[J].微计算机信息,2007,23(23):107-109.
6. 孙华义,郑学仁,闾晓晨,等.嵌入式存储器内建自测试的一种新型应用[J].中国集成电路,2007(11):82-86.
7. 冯国臣,沈绪榜,刘春燕.基于MarchX算法的SRAM BIST的设计[J].微电子学与计算机,2005(22):44-47.
8. 刘贵喜,邵明礼,刘先红.基于PXI平台的弹上计算机自动测试系统[J].仪器仪表学报,2005(8):265-266.
9. 胡金华,袁湘辉,张卫,等.LabVIEW中数据采集系统的开发应用[J].仪表技术,2008(7):21-23.
10. 陈锡辉,张银鸿.LabVIEW 8.20程序设计[M].北京:清华大学出版,2007.
作者:王天辉马立元张延生 (军械工程学院,河北,石家庄,050003)
来源:现代电子技术 2009 32(24) |
|