引言:
在工业污水处理过程当中,往往需要监测污水的COD 值,而现场的监测仪器所监测到 的数据是通过各种模拟信号输出,这些模拟信号必须通过A/D 转换器变换为数字信号后才 能送入上位机或外接数据采集器。基于此,本文给出了基于A/D 转换器TLC2543的软硬件 设计,并结合最小二乘法将输出数据进行修正,达到了环保部分对有机污染物监测数据精度 的要求。
1 系统硬件设计介绍
如图1所示,是系统电路图, A/D转换器采用TLC2543,它是12位串行模数转换器,使用 开关电容逐次逼近技术完成A/D转换过程,由于是串行输入结构,能够节省51系列单片机I/O 资源;且价格适中,分辨率较高,因此在仪器仪表中有较为广泛的应用。其特点如下所述: A/D转换器有12位分辨率;在工作温度范围内转换时间为10us;有11个模拟输入通道;采用 3路内置自测试方式[1];有转换结束(EOC)输出;具有单、双极性输出;有可编程的MSB或 LSB前导;输出数据长度可以编程设定为8位、12位或16位。在本系统中采用的输出长度设 定为12位。另外TLC2543与外围电路的连线简单,它有三个控制输入端为CS(片选)、输入/ 输出时钟(I/O CLOCK)以及串行数据输人端(DATA INPUT);模拟量输入端AIN0 ~ AIN10 (1 ~ 9 脚、11 ~ 12 脚),11路输入信号由内部多路器选通,对于本系统,选用了AIN0 模拟输入端;系统时钟由片内产生并由I/O CLOCK同步;正、负基准电压(REF+ ,REF-)由外部提供, 通常为VCC和地, 两者差值决定输人范围。在本系统中,输入模拟信号为4~20mA 电流的模拟量,也就是转换输入范围电压是0~5V。
单片机采用AT89LS51,如图1 所示。AT89LS51 是一个低功耗,高性能CMOS 8 位单片 机,有40 个引脚,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000 次的Flash 只读程序存储器,128 bytes 的随机存取数据存储器(RAM),32 个外部双向输入/输出(I/O) 口,5 个中断优先级,2 层中断嵌套中断,2 个16 位可编程定时计数器,2 个全双工串行通信 口,看门狗(WDT)电路,片内时钟振荡器。器件采用ATMEL 公司的高密度、非易失性 存储技术制造,兼容标准MCS-51 指令系统及80C51 引脚结构,芯片内集成了通用8 位中 央处理器和ISP Flash 存储单元。同时该芯片还具有PDIP、TQFP 和PLCC 等三种封装形式, 在本系统用采用的是PDIP 封装形式,输入/输出(I/O)口采用了P1 口如图1 所示,P1 口 是一个带内部上拉电阻的8 位双向I/O 口,P1 的输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入 口。
1.1 TLC2543 主要引脚说明
AIN0~AIN10,引脚为1~9,11,12:模拟量输入端。11 路输入信号由内部多路器选 通(本系统采用通道AIN0)。
DATA OUT,引脚为16,A/D 转换结果的三态串行输出端。为高时处于高阻抗状态, 为低时处于激活状态。
DATAINPUT,引脚为17,串行数据输入端。由4 位的串行地址输入来选择模拟量输 入通道。
I/O CLOCK,引脚为18,输入/输出时钟端。I/OCLOCK 接收串行输入信号并完成以 下四个功能:(1)在I/O CLOCK 的前8 个上升沿,8 位输入数据存入输入数据寄存器;(2) 在I/OCLOCK 的第4 个下降沿,被选通的模拟输入电压开始向电容器充电,直到I/OCLOCK 的最后一个下降沿为止;(3)将前一次转换数据的其余11 位输出到DATAOUT 端,在 I/OCLOCK 的下降沿时数据开始变化;(4)I/OCLOCK 的最后一个下降沿,将转换的控制信 号传送到内部状态控制位。
EOC,引脚为19,转换结束端。在最后的I/OCLOCK 下降沿之后,EOC 从高电平变 为低电平并保持到转换完成和数据准备传输为止。EOC 引脚由高变低是在第12 个时钟的 下降沿,它标志TLC2543开始对本次采样的模拟量进行A/ D 转换,转换完成后EOC 变高, 标志转换结束。
1.2 串口输出电路介绍
如图2所示,是MAX232芯片与单片机AT89LS51与PC机的具体电路图,外围元件都是按照 MAX232的标准外围元件接入,其连接电路简单,稳定;串口针脚的接法也是按照标准工业的 说明接入,其中第2个针脚是接入数据,第3个针脚是发送数据,第5个针脚接地,其他针脚 悬空。
2 AD转换过程及实现
如图1所示,上电后,片选CS 为高, I/ O CLOCK、DATA IN PUT 被禁止, DATA OUT 呈 高阻状态, EOC为高。使CS 变低, I/ O CLOCK、DATA IN PUT 使能, DATA OUT 脱离高阻 状态。12 个时钟信号从I/ O CLOCK端依次加入,随着时钟信号的加入,控制字从DATA INPUT 一位一位地在时钟信号的上升沿时被送入TLC2543 (高位先送入) , 同时上一周期转换的A/ D 数据, 即输出数据寄存器中的数据从DATA OUT 一位一位地移出。TLC2543收到第4 个 时钟信号后,通道号AIN0 也已收到,因此,此时TLC2543 开始对选定通道的模拟量进行采样, 并保持到第12 个时钟的下降沿。在第12 个时钟下降沿, EOC 变低,开始对本次采样的模拟 量进行A/ D 转换,转换时间约需10μs ,转转完成EOC 变高,转换的数据在输出数据寄存器中, 待下一个工作周期输出。此后可以进行新的工作周期。
3 最小二乘法原理及实现
最小二乘法是基于随机统计原理,把试验样本值作为随机变量,使其与所求直线的距离的 平方和为最小[2]。它在本系统中直接运用就是,当有一组(二维) 大小不等的试验数据,它们之 间具有近似线性的关系,而需要求出它们之间的线性关系的表达式时,首先画出二维坐标系, 把这些以试验数据为坐标的点在坐标系中画出,就可以利用最小二乘法原理根据试验数据画 出一条直线,使这条直线到所有点的距离的平方和为最小,那么这条直线的方程就可以最佳地 反映这组试验数据的线性关系。如何画出这条直线,求出直线的方程和斜率,可以借助excel 数据处理工具或其他线性拟合计算软件来实现。
在上面 A/D 转换程序中,buf0~buf7 是转换后数据的高8 位,buf8~buf11 是转换后数据 的低4 位。由于模拟量的输入范围是4~20mA,接入阻抗电阻为250Ω,所以转换后电压的 范围是1~5V,又因模拟量4~20mA 与测量仪器测出的COD 值成线性关系,也就是与转换 后1~5V 电压成线性关系,因此可以采用最小二乘法求出线性关系的斜率系数a 和常数b,最后求出COD 值,通过串口将COD 值发送给PC 机或其他数据采集器。转换后电压算法及 COD 值算法如下:
因 5V 对应的12 位二进制数为111111111111(也就是满量程的数4095),将5V 电压分成4095 分,每一份即为5/4095,在1~5V 之中的电压与0~4095 之间是一一对应的,因此转换后电 压可以按(1)式计算:
(2)式中斜率a和常数b采用最小二乘法求出。如下表1所示,是用有机污染监测仪器监测(型号为OPM-410A)到的COD值与A/D转换电压值,它们成线性关系。
在表1中:U是A/D转换后测量出来的电压值;COD是型号为OPM-410A的有机污染监测仪器 监测到的COD值。根据最小二乘法原理,可求出斜率a和常数b的值分别为125.3和(-50.6), 因此(2)式即为:
COD=125.3*dianya – 50.6 (单位:mg/L)
4 实际测试结果
以下是采用型号为OPM-410A的有机污染监测仪监测到的COD数据与本系统采集COD数据对比。
表1中 COD1 是指型号为OPM-410A有机污染监测仪监测到的COD数据数值; COD2 是采用本嵌入式系统所采集的数据数值;误差=COD2-COD1;
表2中的数据仅仅是本系统在实际测试过程中随机采集的一部分,从表中可以看出,本 系统所采集到的数据低于监测仪器采集到的数据,误差不低于-3mg/L,可以满足环保部分 对有机污染监测的要求,达到预期的效果。
结束语:
基于高精度的12位串行A/D转换器TLC2543的模拟数据采集系统具有较好的灵活性和 实用性,采用TLC2543可以使电路简单,便于提高性能,降低成本,同时本系统采用了最小 二乘法对电压值与COD值之间进行线性拟和,使之所采集到的COD值更接近于有机污染监测仪 监测到的COD值。经实测,本系统稳定可靠,所采集到的数据精度满足环保部分对有机污染 监测仪器精度的要求。
本文作者创新点:本文利用最小二乘法对电压值与COD值进行线性拟合,使采集到的数据更 接近于真实值,在一定范围内满足环保部门对有机污染物监测仪器精度的要求。另外本系统 基于串行12位A/D转换器TLC2543的模拟数据采集系统具有较好的灵活性和实用性,可实现对电压、电流、温度、压力、湿度等多种电量与非电量的高精度采集与处理。