基于Max+PlusⅡ与VHDL的数字电压表设计(2)
该模块将A/D转换结果分为高低4位,查表依次得到其BCD码后再进行计算,计算结果与A/D转换器的位宽和参考电压Vref均有关。本文选用8位转换器ADC0804,参考电压为5.12V,故能输出从0~5.12V按照0.02V步进变化的256(28)个离散值。如表1所示。
电压离散值可用8位二进制(或2位十六进制数)表示,表1中列出了输出数字电压高4位及低4位可能出现的16个值。如果CPLD从ADC20804接收到信号01101000B(即68H),对照表1高4位0110B是1.92V,而低4位1000B是0.16V,则最后的电压输出结果是1.92+0.16=2.08V。
本文要求精确到两位小数0.01V,故将输出电压表示成12位的BCD码形式。如上述的1.92V是(000110010010)BCD,0.16V是(000000010110)BCD,相加结果2.08V是(001000001000)BCD。同理,若CPLD转换数据01110000B(即70H),则计算结果2.24 V是(001000100100)BCD。因此计算模块的设计主要包括一个12位的加法器及与之对应的存储器。
主要VHDL语句如下:
3 仿真结果
CPLD设计完成后,用Max+Plus II软件编译和仿真,波形如图3所示。由图3可知,CPLD工作时,先启动控制模块,它对模数转换的一次控制由四个状态组成。在状态S0,选定ADC0804,为模数转换做准备;在状态S1,使ADC0804进行转换,当CPLD的INTR信号端由高电平转为低电平时,模数转换结束进入下一状态S2,为读取转换结果做准备;在状态S3,CPLD读取模数转换结果。接着,CPLD的计算模块工作,求出二进制模数转换数据的12位BCD码。最后启动显示驱动模块,用数码管显示有两位小数的数字电压值。例如,模数转换结果即CPLD的输入信号Din[7..0]若为68H,则输出电压Dout[11..0]是2.08V,Din[7..0]为70H时,输出电压Dout[11..0]是2.24V,符合设计要求。
4 结 语
本文数字电压表的功能由VHDL程序决定,用Max+PlusⅡ软件编译、仿真和逻辑综合后,下载到CPLD芯片EPF10K10LC84-4。CPLD工作主频为100 MHz,逻辑综合占用了174个逻辑单元,资源利用率为30%。本文所设计的数字电压表电路板已通过硬件测试,能测量和显示0~5V的弱电压信号,准确度为0.02V,并已在我校EDA工程实训中心测试成功。保持CPLD芯片不变,将输入信号改为温度信号、湿度等信号分别测试时,均能显示相应的数字值,因此,基于这种设计方法的数字电子系统具有很强的灵活性。
非常好我支持^.^
(0) 0%
不好我反对
(0) 0%
相关阅读:
- [FPGA/ASIC技术] VHDL语言中信号的不同形式设置 2011-10-06
- [EDA/IC设计] EDA技术在数字系统设计分析中的应用 2011-09-27
- [EDA/IC设计] 基于EDA技术的数字频率计的设计 2011-09-27
- [FPGA/ASIC技术] 基于VHDL及FPGA的自动售货机控制模块设计 2011-09-27
- [EDA/IC设计] 基于MAX+plusⅡ开发平台的EDA设计方法 2011-09-16
- [FPGA/ASIC技术] 基于VHDL的异步FIFO设计 2011-08-18
- [FPGA/ASIC技术] 用VHDL语言开发的出租车计费系统设计 2011-07-20
- [FPGA/ASIC技术] 用VHDL设计有限状态机的方法 2011-05-28
( 发表人:叶子 )