基于CPLD的数字电压表设计
摘 要:双积分型ADC具有转换精度高,速度慢的特点,因而被广泛应用于高精度数字仪器仪表中。该设计的主要创新点是以可编程器件(CPLD)为核心,采用积分电路、检零比较器等组成16位ADC,控制部分采用51单片机,能实现自动量程转换。由于采用了CPLD技术,减少了外界干扰和所占空间,而且大大提高了系统的响应时间,提高了数字电压表的性能。
关键词:CPLD; 数字电压表; 积分电路; OP07
中图分类号:TP216 文献标识码:A
文章编号:1004-373X(2010)11-0164-03
Desing of Digital Voltmeter Based on CPLD
CHEN Shi-xia, JI Ming-xia, QI Fu-feng
(Qingdao Branch, Navy Aeronautical Engineering Academy, Qingdao 266041, China)
Abstract: Since the double integral type of ADC takes on the characteristics of high conversion accuracy and slow speedt, it is widely used in the high-precision digital instruments. The double integral electro circuit, zero-checking comparator and FPGA are adopted in the design to makeup the 16 bit ADC. AT80C51 single chip computer is used in the control section, which is also able to compare zero automatically and carry the transform of capacity rules. Because the interferes from outside and the space occupied by electro circuits are reduced through the employment of FPGA technology, the system response time and the performance of digital voltmeter are improved enormously.
Keywords: CPLD; digital voltmeter; integral circuit; OP07
设计了基于CPLD的数字电压表,采用CPLD器件作为核心处理电路,用单片机进行控制,能较好地减小外界干扰,提高分辨率。该数字电压表能够自动转换量程,从而可提高数字电压表的性能。
1 方案论证与比较
双积分A/D是对输入取样电压和基准电压进行两次积分,以获得与取样电压平均值成正比的时间间隔,同时在此时间间隔内,用计数器对CP记数,计数器的输出结果就是对应的数字量。双积分A/D有精度高,抗干扰能力强和稳定性好的优点,但转换速度较低,因而适用于数字直流电压表等精度较高而转换速度要求不高的仪器。设计的系统框图如图1所示\。为实现该系统功能,可采用以下两种方案。
1.1 方案一
用J-K触发器构成n位二进制异步加法计数器,并采用下降沿触发器FF。但因J-K触发器数目与显示精度有关,若显示精度较高,则所需触发器数目较多,需占大量空间,且易受干扰。若2 V档的最小分辨率为0.1 mV,则有2/(2n-1)=0.1 mV,n≥15,这里取n=16,如图2所示\。
图1 系统设计框图
图2 第一种设计方案
1.2 方案二
采用EDA可编程逻辑器件把16位J-K触发器组成的计数器\和控制电路集成到系统内部,不仅可以消除外界干扰,减小测量误差,且大大节省空间,提高系统的响应速度。CPLD使用方便、快捷,性价比很高[4],如图3所示。
图3 第二种设计方案
对比两种方案的性能,本设计选用方案二。
2 系统设计
2.1 硬件部分
2.1.1 滤波电路
滤波电路采用压控二阶低通滤波器[5],如图4所示。运放采用低温漂高精度运放OP07,取R1=R2=R=1.592 kΩ,C1=C2=10 μF,则fo=10 Hz。
图4 压控二阶低通滤波器
传递函数为:
Au(s)=AuP/{1+[3- AuP] sRC +(sRC)2}
当AuP<3时,电路才能正常工作,不产生自激振荡。令:
s=jω,fo=1/(2πRC)
则电压放大倍数:
Au=AuP/[1+(f/fo)2+j(3- AuP)f/fo]
对直流信号的放大倍数为:
Au=1+R2/R1=2
2.1.2 测量放大器
测量放大器如图5所示\。AD620为低功耗高精度仪表放大器,其增益为:
G=49.4/RG+1
即可通过调节引脚1,8间电阻的大小来调节G。
图5 测量放大器
对于不同大小的信号,单片机通过8选1模拟开关CD4051来选择电阻R1,R2,R3,R4的接入,实现不同增益值。将0.1 mV~2 V分为4个量程,即0.1~2 mV,2 mV~20 mV,20~200 mV,200 mV~2 V,分别放大1 000,100,10,1.1倍,则可选R1=49.45 Ω,R2=499 Ω,R3=5.489 kΩ,R4=494 kΩ。
2.1.3 双积分转换电路[7]
双积分转换电路如图3所示。
(1) 积分器:由R,C和运放组成,分别对输入电压和基准电压进行积分,其输入接AD620输出。
(2) 检零比较器:运放反相端接积分器的输出UA;运放同相端接地。当UA<0时,输出C=1; UA≥0时,C=0。根据C的值控制计数是否开始。
(3) 可编程逻辑器件:EPM7128是CPLD MAX7000S系列器件,内部带有存储器,不需要外接。内部为门控开关、16位计数器、16位数据寄存器和辅助触发器\。门控开关控制计数器开始计数;计数器用来对CP脉冲进行计数,并触发辅助触发器;寄存器寄存计数器数值,等待单片机读取;辅助触发器通过控制S1来控制对取样电压和基准电压的积分。单片机通过Vs对CPLD进行控制。
第1次积分取样时,Qc=0,控制S1掷向输入电压Vi,L=0,控制S2断开,电容放电。积分输出电压为:
Uo=-1/(RC)∫t0Uidt
积分时间T1=2nTc ,T1时刻积分器输出:
Uo1=-1/RC∫t10Uidt=-T1U1/(RC)=-2nTcU1/(RC)
计数器计满2n 后Qc=1,S1掷向-Vref,开始第2次积分。
Uo(t)= Uo1 -1/(RC)∫tT1(-Vref)dt
在t=T1+T2时刻:
Uo(t)=-T1U1/(RC)+T2Vref/(RC)
2.1.4 显示模块
用CA1602A液晶模块显示所测电压值。CA1602A字符型液晶是用5×7点阵图形来显示字符的液晶显示器,它微功耗、体积小、带译码和驱动电路使用方便、人机界面也很直观[8],如图6所示。
图6 显示模块
2.2 软件部分
2.2.1 软件流程图[4]
(1) 主程序如图7所示。
图7 主程序流程图
(2) 子程序包含量程转换(见图8),数据采集(见图9),自动校准(见图10),液晶显示(见图11)4个子程序。
图8 量程转换程序
量程转换:
BC=01时, 1~20 mV 档, 放大100倍;
BC=10时, 20~200 mV档, 放大10倍;
BC=11时, 200 mV~2 V档,放大1倍。
3 系统测试与分析
3.1 测试工具
测试工具包含GOS-6031 30 MHz双踪示波器,Agilent34401A 6位半数字电压表。
图9 数据采集程序
图10 自动校准程序
图11 液晶显示程序
3.2 测试结果
3.2.1 积分波形输出
经测试调整后未发现明显失真。
3.2.2 电压测量
采用6位半电压表进行校准[9],结果如表1所示。
表1 实验结果
此表测量值 /V6位半测量值 /V
0.018 90.0189 26
0.127 40.127 445
0.176 50.176 512
1.287 41.286 989
1.564 91.559 863
1.873 41.873 433
1.953 41.995 341
由以上数据可以看出,设计已完全达到了误差小于等于0.05%±5个字和分辨率为0.1 mV的要求。
4 结 语
该设计较好地实现了所要求的功能,从测试结果看,测量误差较小、分辨率较高。由于采用了CPLD在很大程度上减小了环境干扰。当然该设计还有需要改进的地方,如可增加自动校零功能等。
参考文献
[1]吴金戌.8051单片机实践与应用[M].北京:清华大学出版社,2002.
[2]Markus J.电子电路大全[M].北京:中国计量出版社,1985.
[3]何立民.单片机应用系统设计[M].北京:北京航空航天大学出版社,2000.
[4]杨君,孟志华.基于FPGA的嵌入式语音记录仪的设计[J].电子测量技术,2008(4):190-193.
[5]童诗白.模拟电子技术基础[M].北京:高等教育出版社,2007.
[6]蔡美琴.MCS-51单片机系统及应用[M].北京:高等教育出版社,1994.
[7]王毓银.数字电路逻辑设计[M].北京:高等教育出版社,2007.
[8]高吉祥.全国大学生电子设计竞赛培训系列教程[M].北京:电子工业出版社,2007.
[9]蒋焕文.电子测量 [M].北京:高等教育出版社,2005.
[10]全国大学生电子设计竞赛组委会.全国大学生电子设计竞赛获奖作品汇编[M].北京:北京理工大学出版社,2006.