用PIC16C73单片机实现十二位A/D转换器
扫描二维码
随时随地手机看文章
为监测海洋生态环境,研制了用于海水有机磷农药现场监测的生物传感器。为测定生物传感器的信号,使传感器可用于船载及台站的海洋生态环境现场自动监测,需要对整个的采样和排液装置进行控制以及对传感器来的信号进行实时采集处理,形成有机磷的浓度传给上位机。为此,开发了以PIC16C73单片机为核心的小型测控仪器,很好的完成了上述功能。PIC1673单片机自带8位的A/D转换器,但不能满足系统对精度的要求,本设计在单片机自带8位A/D基础上加少量的硬件和软件开销,使其扩展为十二位A/D转换器,满足了系统的要求。
2 系统构成原理
PIC16C73单片机最大的特点是自带8位A/D转换部件,共有5路A/D通道模拟输入。这些多通道模拟输入共用一个采样/保持电路,采样/保持电路的输出是A/D转换器的输入。A/D转换器采用逐次逼近法进行模数转换。其模拟基准电压可软件编程选择,即从RA3/VREF引脚上外加电压值,以满足更高转换精度的需要。
2.1采样系统的硬件原理
在本应用中,我们用RA0口作为浓度电压信号模拟输入通道。为了减小模拟电压信号高频部分的影响,我们在RA0口前接了一高频滤波电路,滤除高频部分的干扰信号。整个海
水样品数据采集部分由基准电压产生电路,传感器前置偏移调整电路和扩展十二位A/D转换器电路组成。
2.1.1基准电压产生电路
A/D转换精度首先要依赖于有高稳定度的基准参考电压,调节芯片为LM336-2.5,其动态电阻的典型值为0.2Ω,且温度稳定度很高,在常温25℃时,几乎不随温度的改变而变化。其应用电路如图1,调节VR1使输出的基准电压VREF为2.55V。
2.1.2 传感器前置偏移调整电路
由于本系统所采用的电位型生物传感器可以等效为一个电压源与输出阻抗的并联,其输出阻抗很高,可达,远远大于常规信号放大电路的输入阻抗。如果直接连接,阻抗不匹配,将很难得到准确的电压信号。同时,海水有机磷生物传感器输出的电压信号,其范围是-204.8mV到+204.7mV,而单片机A/D采集的模拟输入电压必须在 VDD与VSS之间,信号不符合A/D输入模拟电压的要求。因此,在放大电路前,设计了一级传感器前置偏移调整电路,如图2所示。
其中由运算放大器U2组成射极跟随器,进行阻抗变换。运算放大器选用7650,其共模输入阻抗高达可达,故转换网络的的输入阻抗可达,输出阻抗很小,可以保证传感器电位差信号不衰减的传输至跟随器的输出端。采用 U3组成的加法器调整电压的范围,调整VR35和VR37使OUT端的输出电压范围为0~-0.4095V,再经下一级放大传输至A/D输入端。
2.1.3 十二位A/D转换器扩展电路
因PIC1673B内部自带的8位A/D转换器采用逐次逼近法进行模数转换,所以实现精度扩展的电路也采用逐次逼近的方法。硬件原理如图3所示,由精密运放ICL7650,模拟开关74HCT4066及精密可调电阻组成。
2.1.4 电阻参数选择
由图3可知,运算放大器U1的输出作为A/D转换器的输入,在4066的所有的开关都关闭的情况下,则输出的模拟电压:
,(U2为前置偏移调整电路的输出) (1)
取R3=10R2则,运算放大器U1输出数据的范围在0~4.095V之间,因基准电压为2.55V,如果输入的数据大于等于2.55V,则A/D转换之后读入的值为0FFH,此时转换的数值就大于八位,在程序中置位RA4、 RA5 、RA2、RA1中的某一位使模拟开关打开,此时运放U1的输出电压U0可表示为:
(2)
当RA1置1使相连的模拟开关导通时,所接电阻VR5的值应使
(3)
即VR5导通时所接到运算放大器输入端的电压为十六进制数为800H所对应的电压。而RA2、RA4、 RA5置1使相连的模拟开关导通时,所接到运算放大器输入端的电压依次为十六进制数400H,200H,100H所对应的电压。相应的各电阻值和VR5及VR2之间的关系为
(4)
2.2扩展A/D转换器软件原理
在程序中启动A/D转换后,等待A/D转换结束,读取八位转换结果,若为0FFH,说明输入端RA0/AN0已大于或等于基准VREF ,此时从高四位的最高位开始试探,先使最高位即RA1对应的位置1,然后再次转换,如果转换后的结果依然等于0FFH,则保留最高位的1,使次高位即RA2对应的位置1;如果转换后的结果为00H,则把最高位清零,使次高位即RA2对应的位置1。再次读取转换的结果,如果还等于0FFH则保留RA2的1,使RA4对应的位置1;若读取的转换结果为0,则清零RA2,置位RA4。依次循环完四位,得到最终高四位的值。程序流程如图4所示。
3 结束语
通过软件和硬件的配合,在PIC1673自带的八位A/D转换器基础上,扩充了十二位的A/D转换器,既满足了系统测试精度的要求,又用了很少的硬件开销。此方法用在有机磷的测试系统上,经实验,速度和精度都能满足系统要求。此方法也可以用在其它需要扩充A/D转换精度的控制系统中,不失为一种很好的解决精度扩展的方案。