应用于晶体管图示仪的CPLD控制器设计
晶体管图示仪是电路设计中常用的电子仪器,它能够显示晶体管的输入特性、输出特性和转移特性等多种曲线和参数。它不仅可以测量晶体二极管和三极管,还可以测量场效应管、隧道二极管、单结晶体管、可控硅和光耦等器件。但传统的晶体管图示仪存在着电路复杂,体积庞大,示波管的显示屏小,功耗大,价格昂贵等缺点。随着计算机软硬件技术、单片机技术和EDA技术的不断发展及其在电工电子测量技术的应用,晶体管图示仪在结构、工作原理和功能上发生很大变化,成为数字化和智能化的虚拟仪器。本文设计的晶体管图示仪就是这样一种新型仪器,除改善了原有仪器不足之外,还扩展了仪器功能,具有图形保存,数据处理,界面显示灵活,可操作性强,性能价格比高等优点。
1 系统结构框图
1.1 传统晶体管图示仪结构及工作原理
在传统的晶体管图示仪中,各模块单元完全由模拟电路和脉冲数字电路组成,属于全硬件结构,如图1所示。它主要包括阶梯电流发生器、扫描电压发生器、垂直放大、水平放大和示波管等。图中W是负载电阻,R是电流采样电阻,T是被测三极管。所谓三极管输出特性曲线是:在基极电流不变的条件下,集电极电压和电流之间的关系。在测量三极管输出特性曲线时,阶梯电流发生器对T的基极施加阶梯电流信号,在阶梯电流的每一个台阶时间内,扫描电压发生器对T的集电极回路施加扫描电压。扫描电压是50 Hz交流电经整流得到。T的集电极电流在采样电阻R上的压降(代表集电极电流)经垂直放大后加到示波管垂直偏转板上,T的集电极电压经水平放大后加到示波管的水平偏转板上。当施加的阶梯电流和扫描电压周期性地重复出现时,三极管输出特性曲线就可以显示在示波管上。
1.2 本图示仪结构框图
本图示仪的构成见图2。与图1相比不同的是:“垂直放大”、“水平放大”和“示波管”取消了,其功能由上位机承担;同时增加了单片机、CPLD、存储器和A/D转换器等部件,组成数据采集电路。工作时上位机向单片机发出数据采集命令,单片机通过阶梯电流发生器对T的基极施加阶梯电流信号,通过扫描电压发生器对T的集电极回路施加扫描电压;与此同时,CPLD控制器控制A/D转换器和存储器快速采集和存储电压电流数据。当存储器数据存满后,CPLD控制器向单片机发出采集结束信号,单片机再将存储器中的数据通过串口传送到上位机进行处理和显示。一个完整的图形需要多次这样的过程才能实现。
该系统若不使用CPLD和存储器等器件也可实现数据采集,但由于单片机工作速度相对较慢,在有限时间(扫描电压的上升段,5 ms)内采集的点数较少,曲线不够准确。使用了CPLD和存储器之后,采得的点数密集,曲线更加真实。本系统的关键是设计CPLD控制器,以解决单片机、存储器和A/D转换器之间的时序配合关系。
2 数据采集电路功能模块确定
数据采集电路的构成如图3所示。除了包含单片机、控制器、存储器、和A/D转换器外,还有地址计数器和数据锁存器。
2.1 A/D转换器和数据锁存器
A/D转换器是数据采集电路重要的部件之一,本系统的A/D转换器采用Maxim公司的MAX197。
MAX197是一款多量程的12位A/D转换器,8路模拟信号输入,输出数据线8条,分为高4位和低8位输出,由HBEN端控制。当时钟频率为2 MHz时,转换时间为6μs。MAXl97在启动转换时,需要输入一个8位控制字,这个控制字若由单片机提供将使启动时间延长,难以提高采集速度,所以这里用到一个数据锁存器74LS373来保存控制字。
2.2 存储器和地址发生器
存储器采用两片2114,它是一款4 b×1K静态随机存储器。2114在存取数据时,除了需要外部提供片选信号和读写信号外,还需要提供地址信号。地址信号由地址发生器产生,地址发生器实际上是一个计数器。
2.3 控制器
控制器是数据采集电路的核心,由CPLD内部模块实现。这里的CPLD选用Altera公司的EPM7064。EPM7064有64个宏单元,1 250个可用门类,36个I/O脚。从可行性方面来说,RAM、地址发生器、74LS373和控制器都可以同时做到CPLD中,但RAM需要100个节,用CPLD来实现将占用大量资源,仅一片EPM7064就不够用。所以为了节省资源,降低成本,这里采用外接RAM2114。74LS373也采用外接方式,主要是考虑端口不够用。因此在CPLD内部仅安排了控制器和地址发生器(图3虚线框内)。
3 控制器结构设计
3.1 采集点数的确定及控制器接口要求
晶体管特性曲线中,输出特性曲线是最复杂的。输出特性曲线一般由8~10条线组成。在本系统中,每条线由50个点连接而成。每个点由一个电压值和_个电流值确定,每个电压(或电流)数据占两字节存储单元(数字量12位),则每条曲线的电压值(或电流值)就占100个字节。电压值和电流值本应该在同一时刻采集,但为了节省A/D转换器和其他硬件,这里把电压和电流安排在不同的扫描周期内采集,只要采集时间与各自的扫描周期起始时间间隔一一对应就可以保证精度,时间误差在1μs之内。
每一组电压或电流数据的采集都是在一个扫描电压的上升时间段完成。扫描电压是把50 Hz交流电压经整流产生,所以每个扫描电压所占时间是10 ms,扫描电压的上升段时间就是5ms。如果5 ms时间内要采集50个数据,则每个数据占用时间为100μs。10条曲线将占用20个扫描周期。
在每个数据采集时间(100μs)内,控制器首先从锁存器74LS373中读取“控制字”送入A/D转换器,启动A/D转换器工作,进入转换等待状态。当转换结束时,控制器从A/D转换器分别读取数据的高字节和低字节存入RAM中,然后等待下一个采集周期。待50个数据采集结束后,控制器向单片机发出采集结束信号。所以控制器要产生74LS373的读信号、A/D转换器的片选和读写信号、存储器片选和读写信号、地址发生器的时钟和清零信号等,还要接受单片机的采集指令信号和50 Hz交流电同步信号,返回单片机采集结束信号等。
3.2 控制器内部构成
控制器内部(见图4)主要模块有计数器、脉冲分配器和触发器。计数器为100进制,输入时钟周期为1μs,这样计数器计满一个循环就是100μs(即一个数据采集的时间)。脉冲分配器的作用是对100 μs内的时间再进行细分,使每1μs时间都可以输出脉冲(根据需要)。触发器由脉冲分配器触发产生任意宽度的脉冲(见图5)。图中COUNT100_Y18模块实现了100进制计数器和脉冲分配器的功能,DFFA1~DFFA4是增强的D触发器模块,DFFA2的R1~R3是清0端,S1~S3是置1端,DFFA2,DFFA3和DFFA4结构相同。
连接RAM的控制信号有两个,即读写信号SRAM_OE和片选信号SRAM_WE。连接A/D转换器的控制信号有4个,即片选信号A/D_CE、写信号A/D_WR、读信号A/D_RD和高低字节选择信号A/D_HEEN。地址计数器和74LS373锁存器的控制信号也要与上述时序配合。
3.3 控制器的工作过程
控制器输出端时序图如图5所示。单片机先向锁存器存入一个控制字,设置输入模拟通道、输入通道量程、掉电模式和内外时钟选择等信息,然后向控制器发出采集指令(Start_A/D变为高电平)。当扫描电压到来时(图中TB50 Hz变为高电平),COUNT100_Y18开始计数并输出脉冲,通过触发器在不同时间产生不同宽度的脉冲。COUNT100_Y18的第1~4个脉冲产生A/D转换器片选信号A/D_CS和74LS373读信号(图5波形1),第2个脉冲产生A/D转换器写信号A/D_WR(图5波形2),把74LS373的数据写入MAX197,启动A/D开始转换。待转换结束(第8个脉冲结束转换)后,COUNT100_Y18的第10H~14H脉冲产生A/D转换器片选信号A/D_CS和RAM2片选信号SRAM_CE(图5波形3和5),第11H~14H脉冲产生A/D转换器的读信号A/D_RD(图5波形7)。第15H脉冲把A/D_HEEN置为高电平,选通数据的高字节,而第17H~1BH脉冲再次产生A/D_CS,SRAM_CE,A/D_RD和SRAM_WE(图5波形4,6,8和10),把数据的高4位存入存储器中。这样一个数据的采集宣告结束。
当时间达100μs时,重复上述过程,进行下一个数据的采集。当RAM存满100个字节后,控制器向单片机返回采集结束信号,单片机通过串口将100个字节的数据批量传递给上位机。
4 结 语
在设计过程中,首先用VHDL语言编写COUNT100_Y18和DFFA1~DFFA4等模块,经Max+PlusⅡ编译和仿真通过,再连接各模块形成顶层图形文件(图5)。对顶层图形文件再进行编译和仿真,通过后将程序下载到芯片中。单片机主要编写显示程序、阶梯电流驱动程序和串口通信程序,均调试通过。上位机界面用VB语言实现,画面清晰美观,控制方便。结论表明,把CPLD技术用于改造传统晶体管图示仪,效果是明显的,仪器性能有很大提高。