应用于晶体管图示仪的CPLD控制器设计
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结构相同。本文引用地址://m.amcfsurvey.com/article/191839.htm
连接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技术用于改造传统晶体管图示仪,效果是明显的,仪器性能有很大提高。
评论