基于A/D轉(zhuǎn)換最小二乘法的數(shù)據(jù)采集應(yīng)用
掃描二維碼
隨時(shí)隨地手機(jī)看文章
在工業(yè)污水處理過程當(dāng)中,往往需要監(jiān)測(cè)污水的COD 值,而現(xiàn)場(chǎng)的監(jiān)測(cè)儀器所監(jiān)測(cè)到 的數(shù)據(jù)是通過各種模擬信號(hào)輸出,這些模擬信號(hào)必須通過A/D 轉(zhuǎn)換器變換為數(shù)字信號(hào)后才 能送入上位機(jī)或外接數(shù)據(jù)采集器?;诖?,本文給出了基于A/D 轉(zhuǎn)換器TLC2543 的軟硬件 設(shè)計(jì),并結(jié)合最小二乘法將輸出數(shù)據(jù)進(jìn)行修正,達(dá)到了環(huán)保部分對(duì)有機(jī)污染物監(jiān)測(cè)數(shù)據(jù)精度 的要求。
1 系統(tǒng)硬件設(shè)計(jì)介紹
如圖1所示,是系統(tǒng)電路圖, A/D轉(zhuǎn)換器采用TLC2543,它是12位串行模數(shù)轉(zhuǎn)換器,使用 開關(guān)電容逐次逼近技術(shù)完成A/D轉(zhuǎn)換過程,由于是串行輸入結(jié)構(gòu),能夠節(jié)省51系列單片機(jī)I/O 資源;且價(jià)格適中,分辨率較高,因此在儀器儀表中有較為廣泛的應(yīng)用。其特點(diǎn)如下所述: A/D轉(zhuǎn)換器有12位分辨率;在工作溫度范圍內(nèi)轉(zhuǎn)換時(shí)間為10us;有11個(gè)模擬輸入通道;采用 3路內(nèi)置自測(cè)試方式[1];有轉(zhuǎn)換結(jié)束(EOC)輸出;具有單、雙極性輸出;有可編程的MSB或 LSB前導(dǎo);輸出數(shù)據(jù)長度可以編程設(shè)定為8位、12位或16位。在本系統(tǒng)中采用的輸出長度設(shè) 定為12位。另外TLC2543與外圍電路的連線簡單,它有三個(gè)控制輸入端為CS(片選)、輸入/ 輸出時(shí)鐘(I/O CLOCK)以及串行數(shù)據(jù)輸人端(DATA INPUT);模擬量輸入端AIN0 ~ AIN10 (1 ~ 9 腳、11 ~ 12 腳),11路輸入信號(hào)由內(nèi)部多路器選通,對(duì)于本系統(tǒng),選用了AIN0 模擬輸入端;系統(tǒng)時(shí)鐘由片內(nèi)產(chǎn)生并由I/O CLOCK同步;正、負(fù)基準(zhǔn)電壓(REF+ ,REF-)由外部提供, 通常為VCC和地, 兩者差值決定輸人范圍。在本系統(tǒng)中,輸入模擬信號(hào)為4~20mA 電流的模擬量,也就是轉(zhuǎn)換輸入范圍電壓是0~5V。
單片機(jī)采用AT89LS51,如圖1 所示。AT89LS51 是一個(gè)低功耗,高性能CMOS 8 位單片 機(jī),有40 個(gè)引腳,片內(nèi)含4k Bytes ISP(In-system programmable)的可反復(fù)擦寫1000 次的Flash 只讀程序存儲(chǔ)器,128 bytes 的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),32 個(gè)外部雙向輸入/輸出(I/O) 口,5 個(gè)中斷優(yōu)先級(jí),2 層中斷嵌套中斷,2 個(gè)16 位可編程定時(shí)計(jì)數(shù)器,2 個(gè)全雙工串行通信 口,看門狗(WDT)電路,片內(nèi)時(shí)鐘振蕩器。器件采用ATMEL 公司的高密度、非易失性 存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51 指令系統(tǒng)及80C51 引腳結(jié)構(gòu),芯片內(nèi)集成了通用8 位中 央處理器和ISP Flash 存儲(chǔ)單元。同時(shí)該芯片還具有PDIP、TQFP 和PLCC 等三種封裝形式, 在本系統(tǒng)用采用的是PDIP 封裝形式,輸入/輸出(I/O)口采用了P1 口如圖1 所示,P1 口 是一個(gè)帶內(nèi)部上拉電阻的8 位雙向I/O 口,P1 的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè) TTL 邏輯門電路。對(duì)端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入 口。
1.1 TLC2543 主要引腳說明
AIN0~AIN10,引腳為1~9,11,12:模擬量輸入端。11 路輸入信號(hào)由內(nèi)部多路器選 通(本系統(tǒng)采用通道AIN0)。
DATA OUT,引腳為16,A/D 轉(zhuǎn)換結(jié)果的三態(tài)串行輸出端。為高時(shí)處于高阻抗?fàn)顟B(tài), 為低時(shí)處于激活狀態(tài)。
DATAINPUT,引腳為17,串行數(shù)據(jù)輸入端。由4 位的串行地址輸入來選擇模擬量輸 入通道。
I/O CLOCK,引腳為18,輸入/輸出時(shí)鐘端。I/OCLOCK 接收串行輸入信號(hào)并完成以 下四個(gè)功能:(1)在I/O CLOCK 的前8 個(gè)上升沿,8 位輸入數(shù)據(jù)存入輸入數(shù)據(jù)寄存器;(2) 在I/OCLOCK 的第4 個(gè)下降沿,被選通的模擬輸入電壓開始向電容器充電,直到I/OCLOCK 的最后一個(gè)下降沿為止;(3)將前一次轉(zhuǎn)換數(shù)據(jù)的其余11 位輸出到DATAOUT 端,在 I/OCLOCK 的下降沿時(shí)數(shù)據(jù)開始變化;(4)I/OCLOCK 的最后一個(gè)下降沿,將轉(zhuǎn)換的控制信 號(hào)傳送到內(nèi)部狀態(tài)控制位。
EOC,引腳為19,轉(zhuǎn)換結(jié)束端。在最后的I/OCLOCK 下降沿之后,EOC 從高電平變 為低電平并保持到轉(zhuǎn)換完成和數(shù)據(jù)準(zhǔn)備傳輸為止。EOC 引腳由高變低是在第12 個(gè)時(shí)鐘的 下降沿,它標(biāo)志TLC2543開始對(duì)本次采樣的模擬量進(jìn)行A/ D 轉(zhuǎn)換,轉(zhuǎn)換完成后EOC 變高, 標(biāo)志轉(zhuǎn)換結(jié)束。
1.2 串口輸出電路介紹
如圖2所示,是MAX232芯片與單片機(jī)AT89LS51與PC機(jī)的具體電路圖,外圍元件都是按照 MAX232的標(biāo)準(zhǔn)外圍元件接入,其連接電路簡單,穩(wěn)定;串口針腳的接法也是按照標(biāo)準(zhǔn)工業(yè)的 說明接入,其中第2個(gè)針腳是接入數(shù)據(jù),第3個(gè)針腳是發(fā)送數(shù)據(jù),第5個(gè)針腳接地,其他針腳 懸空。
2 AD轉(zhuǎn)換過程及實(shí)現(xiàn)
如圖1所示,上電后,片選CS 為高, I/ O CLOCK、DATA IN PUT 被禁止, DATA OUT 呈 高阻狀態(tài), EOC為高。使CS 變低, I/ O CLOCK、DATA IN PUT 使能, DATA OUT 脫離高阻 狀態(tài)。12 個(gè)時(shí)鐘信號(hào)從I/ O CLOCK端依次加入,隨著時(shí)鐘信號(hào)的加入,控制字從DATA INPUT 一位一位地在時(shí)鐘信號(hào)的上升沿時(shí)被送入TLC2543 (高位先送入) , 同時(shí)上一周期轉(zhuǎn)換的A/ D 數(shù)據(jù), 即輸出數(shù)據(jù)寄存器中的數(shù)據(jù)從DATA OUT 一位一位地移出。TLC2543收到第4 個(gè) 時(shí)鐘信號(hào)后,通道號(hào)AIN0 也已收到,因此,此時(shí)TLC2543 開始對(duì)選定通道的模擬量進(jìn)行采樣, 并保持到第12 個(gè)時(shí)鐘的下降沿。在第12 個(gè)時(shí)鐘下降沿, EOC 變低,開始對(duì)本次采樣的模擬 量進(jìn)行A/ D 轉(zhuǎn)換,轉(zhuǎn)換時(shí)間約需10μs ,轉(zhuǎn)轉(zhuǎn)完成EOC 變高,轉(zhuǎn)換的數(shù)據(jù)在輸出數(shù)據(jù)寄存器中, 待下一個(gè)工作周期輸出。此后可以進(jìn)行新的工作周期。
3 最小二乘法原理及實(shí)現(xiàn)
最小二乘法是基于隨機(jī)統(tǒng)計(jì)原理,把試驗(yàn)樣本值作為隨機(jī)變量,使其與所求直線的距離的 平方和為最小[2]。它在本系統(tǒng)中直接運(yùn)用就是,當(dāng)有一組(二維) 大小不等的試驗(yàn)數(shù)據(jù),它們之 間具有近似線性的關(guān)系,而需要求出它們之間的線性關(guān)系的表達(dá)式時(shí),首先畫出二維坐標(biāo)系, 把這些以試驗(yàn)數(shù)據(jù)為坐標(biāo)的點(diǎn)在坐標(biāo)系中畫出,就可以利用最小二乘法原理根據(jù)試驗(yàn)數(shù)據(jù)畫 出一條直線,使這條直線到所有點(diǎn)的距離的平方和為最小,那么這條直線的方程就可以最佳地 反映這組試驗(yàn)數(shù)據(jù)的線性關(guān)系。如何畫出這條直線,求出直線的方程和斜率,可以借助excel 數(shù)據(jù)處理工具或其他線性擬合計(jì)算軟件來實(shí)現(xiàn)。
在上面 A/D 轉(zhuǎn)換程序中,buf0~buf7 是轉(zhuǎn)換后數(shù)據(jù)的高8 位,buf8~buf11 是轉(zhuǎn)換后數(shù)據(jù) 的低4 位。由于模擬量的輸入范圍是4~20mA,接入阻抗電阻為250Ω,所以轉(zhuǎn)換后電壓的 范圍是1~5V,又因模擬量4~20mA 與測(cè)量儀器測(cè)出的COD 值成線性關(guān)系,也就是與轉(zhuǎn)換 后1~5V 電壓成線性關(guān)系,因此可以采用最小二乘法求出線性關(guān)系的斜率系數(shù)a 和常數(shù)b,最后求出COD 值,通過串口將COD 值發(fā)送給PC 機(jī)或其他數(shù)據(jù)采集器。轉(zhuǎn)換后電壓算法及 COD 值算法如下:
因 5V 對(duì)應(yīng)的12 位二進(jìn)制數(shù)為111111111111(也就是滿量程的數(shù)4095),將5V 電壓分成4095 分,每一份即為5/4095,在1~5V 之中的電壓與0~4095 之間是一一對(duì)應(yīng)的,因此轉(zhuǎn)換后電 壓可以按(1)式計(jì)算:
?。?)式中斜率a和常數(shù)b采用最小二乘法求出。如下表1所示,是用有機(jī)污染監(jiān)測(cè)儀器監(jiān)測(cè)(型號(hào)為OPM-410A)到的COD值與A/D轉(zhuǎn)換電壓值,它們成線性關(guān)系。
在表1中:U是A/D轉(zhuǎn)換后測(cè)量出來的電壓值;COD是型號(hào)為OPM-410A的有機(jī)污染監(jiān)測(cè)儀器 監(jiān)測(cè)到的COD值。根據(jù)最小二乘法原理,可求出斜率a和常數(shù)b的值分別為125.3和(-50.6), 因此(2)式即為:
COD=125.3*dianya – 50.6 (單位:mg/L)
4 實(shí)際測(cè)試結(jié)果
以下是采用型號(hào)為OPM-410A的有機(jī)污染監(jiān)測(cè)儀監(jiān)測(cè)到的COD數(shù)據(jù)與本系統(tǒng)采集COD數(shù)據(jù)對(duì)比。
表1中 COD1 是指型號(hào)為OPM-410A有機(jī)污染監(jiān)測(cè)儀監(jiān)測(cè)到的COD數(shù)據(jù)數(shù)值; COD2 是采用本嵌入式系統(tǒng)所采集的數(shù)據(jù)數(shù)值;誤差=COD2-COD1;
表2中的數(shù)據(jù)僅僅是本系統(tǒng)在實(shí)際測(cè)試過程中隨機(jī)采集的一部分,從表中可以看出,本 系統(tǒng)所采集到的數(shù)據(jù)低于監(jiān)測(cè)儀器采集到的數(shù)據(jù),誤差不低于-3mg/L,可以滿足環(huán)保部分 對(duì)有機(jī)污染監(jiān)測(cè)的要求,達(dá)到預(yù)期的效果。
結(jié)束語:
基于高精度的12位串行A/D轉(zhuǎn)換器TLC2543的模擬數(shù)據(jù)采集系統(tǒng)具有較好的靈活性和 實(shí)用性,采用TLC2543可以使電路簡單,便于提高性能,降低成本,同時(shí)本系統(tǒng)采用了最小 二乘法對(duì)電壓值與COD值之間進(jìn)行線性擬和,使之所采集到的COD值更接近于有機(jī)污染監(jiān)測(cè)儀 監(jiān)測(cè)到的COD值。經(jīng)實(shí)測(cè),本系統(tǒng)穩(wěn)定可靠,所采集到的數(shù)據(jù)精度滿足環(huán)保部分對(duì)有機(jī)污染 監(jiān)測(cè)儀器精度的要求。
本文作者創(chuàng)新點(diǎn):本文利用最小二乘法對(duì)電壓值與COD值進(jìn)行線性擬合,使采集到的數(shù)據(jù)更 接近于真實(shí)值,在一定范圍內(nèi)滿足環(huán)保部門對(duì)有機(jī)污染物監(jiān)測(cè)儀器精度的要求。另外本系統(tǒng) 基于串行12位A/D轉(zhuǎn)換器TLC2543的模擬數(shù)據(jù)采集系統(tǒng)具有較好的靈活性和實(shí)用性,可實(shí)現(xiàn)對(duì)電壓、電流、溫度、壓力、濕度等多種電量與非電量的高精度采集與處理。