应用于晶体管图示仪的CPLD控制器设计
2 数据采集电路功能模块确定
数据采集电路的构成如图3所示。除了包含单片机、控制器、存储器、和A/D转换器外,还有地址计数器和数据锁存器。本文引用地址://m.amcfsurvey.com/article/191839.htm
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交流电同步信号,返回单片机采集结束信号等。
评论