当前位置:首页 期刊杂志

电荷平衡式ADC设计与Proteus仿真

时间:2024-08-31

陈李津

(中华人民共和国厦门海关,福建厦门361000)

模数转换器(ADC)和单片机在数字仪表和计算机控制等领域有广泛应用,常用的ADC有:逐次比较式、积分式、并行比较式、电荷平衡式(或压频变换式)、ΣΔ 式和流水线式,其中电荷平衡式ADC具有精度高、价格低、分辨率高、抗干扰能力强、接口简单等优点,广泛应用于低速、精密测量等领域[1-2],如数字电压表等. 单片机的发展趋势则是SoC化,主流的单片机内部均集成有逐次比较式模数转换器[3],但多数单片机内部的模数转换器只有10位,精度较低,不适合用于低速、精密测量等领域. AT89C51是使用最为广泛的单片机之一,其内部没有模数转换器,文献[4]介绍了用AT89C51 与I2C 总线8 位逐次比较式ADC 模块TLC549 的接口电路设计,并用Proteus 平台进行软硬件仿真与测试,详细分析TLC549 的重要参数. 本文在Proteus 平台下,用AT89C51 和电压比较器LM393 设计了电荷平衡式模数转换器,在此基础上构建一个直流电压测量系统,量程为0~5 V,用于测试该模数转换器的性能,验证设计.

1 电荷平衡式ADC原理

使用模拟比较器和定时器可构成电荷平衡式ADC,其工作原理如图1 所示. Vin 为输入模拟电压(直流缓变信号),Vref 为参考电压,用模拟比较器的比较结果CMPRES 控制电容C 的充放电,当Vin 高于电容电压Vc 时,比较结果CMPRES=1,参考电压对电容C 充电,Vc 上升;当Vin 低于电容电压Vc 时,比较结果CMPRESS=0,电容C放电,Vc下降. 假设一个A/D转换周期为Tadc,电容充电(即比较结果CMPRES=1的状态)的时间为Tp,如果Vin没有超量程,且积分时间RC<

图1 电荷平衡式ADC原理Fig.1 Charge balance ADC principle

2 用AT89C51和LM393设计电荷平衡式ADC

如图2 所示电路,在Proteus8.6 平台上,用智能原理图输入系统ISIS 软件设计直流电压测量与显示系统,其中用AT89C51 和模拟电压比较器LM393 构成电荷平衡式ADC,C0 为积分电容,P2.7 引脚作为C0 的充放电控制开关,参考电压Vref 取VCC=5.0 V;4 位数码管和六非门74HC04 构成动态数码显示电路,VCC经电位器RV1后的电压Vin由ADC转换后在数码显示器上显示,显示格式为:X.XXX,单位伏.

图2 用AT89C51和LM393构成电荷平衡式ADC原理Fig.2 Using AT89C51 and LM393 to form the charge balance ADC

电荷平衡式A/D 转换器的核心是电容C0 的充放电控制及充电时间Tp 计时,将AT89C51 的定时/计数器T1 设置成溢出时间为40 us 的定时器,并以T1 的溢出时间为充放电计时基准TC,设A/D 转换周期由5 000个T1溢出时钟构成,则Tadc = 200 ms. 一方面,该Tadc既满足Tadc等于工频周期的整数倍,也满足Tadc>>积分时间R0 * C0;另一方面按图2参数,在T1的1个溢出时钟TC内,电容C0的充放电导致其端电压的最大变化量ΔVc_max = 20 mV,因此可控制平衡时电容电压Vc 在Vin 左右20 mV 内波动,满足Vc ≈Vin条件. 设置定时器T1溢出中断为高优先级中断,在T1的中断服务程序中根据比较结果P26的逻辑值控制电容C0的充放电,并作充电时间Tp计时. 当A/D转换过程结束,由(1)式计算转换结果、设置转换结束标志、重启新的转换过程.

基于电荷平衡式ADC的直流电压测量与显示系统的代码由五个函数构成:主函数void main()、数码动态扫描函数void disp()、定时器T0初始化函数void T0_Init()、定时器T1初始化函数(即电荷平衡式ADC)void CMP_Init()和定时器T1 中断服务函数void T1_Isr(),最后两个函数是核心,这两个函数的代码如下:

3 测试

在Keil uVision4 平台上进行软件工程创建、代码输入、编译,生成目标代码,在Proteus8.6 平台上调用目标代码,进行软件硬仿真联合调试.

调试结束后,在Proteus8.6 平台上对电压测量系统进行仿真测试. 如图2 所示,在电路中放置电压探针Vin和CMP-,用于测量Vin和Vc;放置虚拟示波器,用于监测电容充放电控制引脚P2.7的脉冲信号和电容电压Vc. 通过点击电位器RV1 边上的↑和↓按钮,缓慢调整电位器RV1 的抽头位置,改变输入电压Vin,从其电压探针读出Vin 的值,电压测量结果由数码显示器读出,测试结果如表1 所示. 从表1 可见,在20%~90%量程范围内,电荷平衡式ADC 的转换测量精度和线性度均优于1%. 电压测量系统呈负偏差,其原因是AT89C51的I/O端口拉电流(充电过程)负载能力比灌电流(放电过程)负载能力弱.

表1 电荷平衡式ADC仿真测试结果Tab.1 Simulation results of charge balance ADC

图2中的虚拟示波器用于观测电荷平衡式ADC的工作波形,按如下方式设置虚拟示波器:1)A通道,分辨率20 mV/DIV、AC 耦合,观测Vc 波形;2)B 通道,分辨率1V/DIV、DC 耦合,观测充放电控制引脚P2.7 的脉冲信号;3)扫描,水平分辨率40 us/DIV、B 通道触发源、自动触发. 当电位器RV1 的抽头位置分别置于20%、50%、80%情况下,电荷平衡式ADC 内部工作波形输出打印结果如图3 所示((a)抽头位置20%;(b)抽头位置50%;(c)抽头位置80%),波形与电荷平衡式ADC 的工作原理完全一致;平衡时Vc 的起伏小于20 mV,与电路设计分析一致.

图3 Vc信号波形Fig.3 Vc Signal waveform

4 结论

经Proteus8.6 平台上的虚拟仿真与测试,本文提出的用AT89C51 和模拟电压比较器LM393 设计电荷平衡式模数转换器的方案可行. 该方案有四个特点:1)适用于低速、精密测量,模数转换精度和线性度均优于1%;2)高性价比,所用器件均为基础元件,无特殊要求,成本低廉;3)电路结构和控制程序简单;4)抗工频干扰能力强. 本设计方法不限于AT89C51单片机,也适用于其它系列的单片机.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!