引言
在高校电子类专业实验教学中,数字集成电路的使用十分频繁。学生每年在实验、课程设计和课外创新等实践活动中,需要使用大量的数字集成芯片,用以完成各种实验和设计任务。每次实验用过的芯片,只要未受损坏,原则上是可以再利用的,可以节省不少的实验成本。为使芯片能够重复使用,需要有效的工具检测芯片的好坏,因为故障芯片会给电路调试造成很大的麻烦,导致时间和精力上毫无意义的浪费。一般来说,芯片故障的测试可以选择以下3种方案,即专用集成电路测试仪,功能较强,但价格较贵,不利于普及;逻辑分析仪,操作复杂,使用不便;自制集成芯片测试仪,可以依据个性化需求定制系统功能,且成本较低,利于推广。通过比较,选择第3种方案,即自制集成芯片测试仪解决实验室芯片的测试问题。
根据多年数字电路教学和实验方面的经验,学生在不熟悉芯片性能,缺乏对芯片逻辑和时序关系的感性认识的前提下,设计和调试时往往会遇到不少困难,容易挫伤学习的信心。因此,在确定集成电路测试仪功能时,要求其不仅能完成常规逻辑和时序验证功能,而且要具有简单的逻辑分析功能,学生可以自由设计激励数据,通过波形图观察相应结果。整个测试与分析过程方便、快捷、直观,学生在测试芯片的同时,可以尝试各种输入观察其逻辑时序关系,验证与自己的预期设想是否一致,加深对芯片功能和数字电路理论的理解。
1、系统结构
系统由上位机和测试控制器两部分组成,结构如图1所示。上位机提供用户界面,用户在其上设置串口,输入芯片型号和封装信息,发送测试命令,查看测试结果。该界面还提供了数据编辑和波形显示功能。测试控制器接收上位机发来的配置信息,读取固化其内部的测试矢量或用户编辑的数据,完成测试任务,将结果返回给上位机。测试控制器与上位机间通过USB总线通信,有效避免了传统RS 232通信方式对上位机接口类型的限制,使系统具有更强的适用性。
2、测试控制器设计
2.1 硬件电路设计
硬件电路由单片机、通信电路和芯片接口电路组成,结构如图2所示。
2.1.1 单片机
单片机的主要任务是通信和测试控制,是测试控制器的核心部分,其性能优劣对整个系统有着至关重要的影响。对于较复杂的逻辑,尤其是时序逻辑,所需的测试矢量较多,测试时间也比较长,因而存储空间和处理速度是制约系统性能的关键因素。综合考虑成本和性能因素,选择STC12C5A60S2单片机作为控制核心。STC12C5A60S2指令代码完全兼容传统的8051,但速度快了8~10倍,内部FLASH空间达到60 KB,能很好地满足本设计的需求。
2.1.2 芯片接口电路
集成电路测试的主要对象是实验室常用的74系列芯片。该类型芯片封装形式有DIP14和DIF16两种,需要设计芯片接口电路解决不同封装形式的电源和地管脚上电问题。由于不论是DIP14,还是DIP16封装,其电源和地引脚相对于芯片的位置都是固定的,因此可将测试插座的第8脚固定为地,对不同封装仅需确定电源管脚的位置。另外,由于故障芯片内部有短路的可能,芯片接口单元还要考虑过流保护问题,以防止短路故障损坏测试仪硬件。
综合上述需求,选择SN754410实现电源引脚的上电控制,其内部逻辑如图3所示。SN754410是TI公司的电机驱动芯片,输出电流可达1A,其4路输出驱动器分成2组,每组由同1路输入逻辑控制。每组输出由1个使能端控制,具有三态输出功能。设计中将第1组驱动器的输出“1Y”接至被测芯片插座第14脚,第2组驱动器的输出“3Y”接至第16脚。“1Y”和“3Y”分别由输入“1A”和“3A”控制。系统空闲时,单片机控制2个使能端均为低,将输出置为高阻,断开测试插座与电源的连接。收到上位机发来的封装信息后,如果是DIP14封装,则将“1A”置高,置位使能端“1,2EN”,“1Y”输出为高,给第14脚上电。反之,对DIP16封装,将“3A”置高,控制“3Y”为第16脚加电。
对故障芯片内部可能存在的短路情况,系统具备双重保护功能,一是与2个电源管脚串接的限流电阻;二是SN754410自身具有热保护功能,当电流过大导致温升超出限度时会自动关断,保护芯片和电源不受损害。
2.1.3 通信电路
单片机系统与上位机传统上采用RS 232总线通信,但目前很多计算机尤其是笔记本电脑已不支持串口。如仍采用RS 232通信方式,则会给测试仪的应用带来极大的不便。为提高测试仪的适用性能,采用FT232设计了RS 232与USB的接口,为测试仪提供了即插即用和热插拔的良好特性。使用FT232与上位机连接前,需要事先安装相应的驱动程序。驱动装好后会在系统中产生一个虚拟串口,上位机软件可通过这个虚拟串口与测试仪建立连接。
测试仪上设计了可供选择的两路电源接口。一路通过外部稳压电源接入,另一路取自USB接口。一般情况下USB接口可以提供500 mA以下的电流,足够测试仪使用,可以免去外接电源。
2.2 测试软件设计
单片机软件采用C语言编写,以便于程序维护和扩展。软件流程图如图4所示。单片机上电后处于空闲等待状态,被测芯片插座与电源断开。当收到上位机发来的测试命令、芯片型号和封装等信息后,首先根据封装类型给对应电源管脚上电,再根据命令类型选择测试矢量来源(即决定使用固化的数据还是用户数据)。测试完毕后,如果先前命令是“功能测试”,仅将判别好坏的结果返回上位机,如果是“逻辑分析”,则需将响应矢量发回上位机,由上位机根据响应矢量数据生成波形图。
2.3 测试矢量与响应矢量设计
测试矢量和响应矢量是测试操作的基本数据结构。测试矢量是欲向芯片管脚施加的激励数据,响应矢量是单片机从芯片管脚读回的数据。两者均为16位,与芯片管脚一一对应。测试矢量的16位数据中对应于芯片输入管脚的那些数据位是激励位,对应于输出管脚的数据位是功能正确时的响应。对于功能测试,测试矢量预先根据真值表生成并存于单片机FLASH中。如果是逻辑分析,测试矢量由用户提供。响应矢量中仅对应于芯片输出管脚的那些数据位有意义,单片机通过读取芯片管脚状态获得响应矢量。
一个完整的测试过程包含施加测试矢量、读取响应矢量、响应矢量比较3个步骤。为了简化操作,单片机采用端口读写方式,这样一个16位的矢量只需2次8位读或写操作即可完成。需要注意的是,响应矢量与测试矢量的比较仅对其中的芯片输出位有意义,由于程序中采用字节比较方式,应采取措施屏蔽掉输入位对比较结果的影响。针对这个问题,设置了16位的屏蔽矢量,该矢量将对应于芯片输入管脚的数据位置“0”,对应于芯片输出管脚的数据位置“1”。在执行比较操作前,先将测试矢量和响应矢量分别与屏蔽矢量进行位与后再比较,从而消除了输入位对比较结果的影响。屏蔽输入位的流程如图5所示。
3、上位机软件设计
上位机软件提供了一个操作友好的人机界面,使用LabVIEW平台开发。LabVIEW是图形化编程工具,内置有各种仪器驱动程序和操作面板控件,非常适合测试与控制系统的设计。利用LabVIEW开发上位机软件需要重点解决2个问题:一是通信功能的实现;二是测试数据编辑和波形显示的实现。
LabVIEW中实现串行通信十分方便,仅需调用串口配置、串口写、串口读等函数,对函数参数简单设置即可,整个过程完全图形化操作,简便快捷。测试数据编辑和波形图显示是本设计的一个特色,利用LabVIEW中的数字数据(Digital Data)和数字波形图(Digital Wave Gragh)控件可以十分容易地实现这2个功能。数字数据控件类似于一张真值表,用户可以任意添加和删除数据。数字波形图将测试响应以图形的方式直观显示出来,横轴代表时间,纵轴代表信号,不同信号配以不同的颜色,便于识别与分析。开发的软件界面如图6所示。软件包括功能测试和逻辑分析2部分。功能测试位于界面左侧,用于快速判别芯片有无故障,用户仅需设置好芯片型号、封装类型、串口号等参数,按下“开始测试”按钮启动测试。如果功能正常,则会显示绿灯表明测试结果正确。反之显示红灯,指示芯片故障。界面右侧是逻辑分析部分,用户预先在数据窗口中编辑好测试向量,按下“发送数据”按钮启动测试,待测试完成后即可看到用波形图显示的响应结果。
4、结语
本设计利用LabVIEW开发平台和单片机系统,实现了一个性价比良好,界面美观,操作方便,体积小巧的集成电路测试分板仪。该仪器在传统功能测试的基础上加以扩展,增加了芯片逻辑分析功能,并辅以波形图的直观显示方式。经测试,系统功能正确,运行稳定,各项指标均达到要求,为数字电路实验教学和管理提供了有力工具,具有良好的推广与应用价值。
相关文章