基于晶体管图示仪的CPLD控制器设计
个电流值确定,每个电压(或电流)数据占两字节存储单元(数字量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技术用于改造传统晶体管图示仪,效果是明显的,仪器性能有很大提高。
- 用CPLD实现DSP与PLX9054之间的连接(07-23)
- 用CPLD实现FIR数字滤波器的设计(08-07)
- 基于DSP+CPLD的交流电机调速在水处理控制中的应用(11-27)
- 一种基于DSP的张力、深度、速度测量系统(04-15)
- 用双端口RAM实现与PCI总线接口的数据通讯(05-06)
- 基于DSP和CPLD的宽带信号源的设计(07-26)