岳 洋,焦運(yùn)良,邢計(jì)元
(華北計(jì)算機(jī)系統(tǒng)工程研究所,北京 100083)
智能數(shù)據(jù)采集是將被采集對(duì)象的特征量通過(guò)相應(yīng)的傳感器做適當(dāng)變換后,再經(jīng)過(guò)信號(hào)調(diào)理等步驟,最終送到處理器中去進(jìn)行處理的一個(gè)過(guò)程。它是計(jì)算機(jī)在檢測(cè)、管理和控制的過(guò)程中取得原始數(shù)據(jù)的主要手段[1]。雖然市面上有很多關(guān)于數(shù)據(jù)采集系統(tǒng)成熟的解決方案,但是往往價(jià)格很高,而且在采集數(shù)據(jù)的過(guò)程中,又會(huì)遇到不同的使用環(huán)境。所以低功耗、便攜化和高性能的要求是必需的。單片機(jī)具有良好的開(kāi)發(fā)環(huán)境和成熟的外圍電路資源,它對(duì)數(shù)字電路和模擬電路都有很好的處理能力。所以課題使用單片機(jī)作為主控芯片,發(fā)揮其低功耗的特點(diǎn),并且適合在多種測(cè)量環(huán)境下使用。
數(shù)據(jù)采集系統(tǒng)由數(shù)據(jù)采集部分、數(shù)據(jù)傳輸部分、數(shù)據(jù)處理部分以及顯示部分組成。電壓電流等模擬量由A/D將其轉(zhuǎn)換成數(shù)字信號(hào)再傳輸?shù)絾纹瑱C(jī)進(jìn)行數(shù)據(jù)處理,最后顯示采集結(jié)果。系統(tǒng)設(shè)計(jì)框圖如圖1所示。
圖1 系統(tǒng)流程圖
信號(hào)輸入部分包括傳感器采集輸出的電壓、電流以及八路開(kāi)關(guān)量。信號(hào)調(diào)理部分主要是對(duì)輸入信號(hào)進(jìn)行調(diào)理,使其在A/D的輸入范圍之內(nèi)。A/D模塊主要是對(duì)采集的模擬信號(hào)轉(zhuǎn)化為數(shù)字信號(hào),其中A/D的工作電壓范圍和位數(shù)決定了采樣的精度。傳輸通道是把A/D轉(zhuǎn)化輸出的數(shù)字信號(hào)傳輸?shù)絾纹瑱C(jī)進(jìn)行數(shù)據(jù)處理。數(shù)據(jù)處理部分是對(duì)數(shù)字信號(hào)進(jìn)行處理,還原出調(diào)理前的原始數(shù)據(jù)。數(shù)據(jù)顯示部分是將處理后的數(shù)據(jù)顯示出來(lái)。
系統(tǒng)硬件模塊主要由主控模塊、開(kāi)關(guān)量采集模塊、模擬量采集模塊和顯示模塊四部分組成。
系統(tǒng)采用MSP430單片機(jī)作為主控模塊,其外圍電路如圖2所示。晶振對(duì)單片機(jī)的正常運(yùn)行起著至關(guān)重要的作用。方案中采用雙晶振配合使用,其中Y2為8 MHz的高速晶振,如果將其直接加到單片機(jī)上,雖然單片機(jī)能工作,但是會(huì)產(chǎn)生干擾信號(hào),對(duì)系統(tǒng)的穩(wěn)定性產(chǎn)生影響,所以在其兩端增加兩個(gè)電容已達(dá)到穩(wěn)頻的效果[2];Y1為32 768 Hz的低速晶振,其內(nèi)部的雜散電容構(gòu)成回路可以看做是已經(jīng)加過(guò)電容,所以可以將其直接接入單片機(jī)。
圖2 MSP430原理圖
此外,因?yàn)镸SP430單片機(jī)內(nèi)置了ADC12模塊,所以選擇ADC12作為模數(shù)轉(zhuǎn)換器。ADC12具有諸多優(yōu)點(diǎn),完全能夠滿足本次采集系統(tǒng)的需求。它的分辨率能夠達(dá)到1/212,采樣的速度為200 kbit/s;而且ADC12中還內(nèi)置了采樣保持電路,節(jié)省了外部電路成本;它還有四種轉(zhuǎn)換模式,支持超低功耗模式,能夠關(guān)閉其內(nèi)核[3]。
本系統(tǒng)的模擬量采集中擬采集4~20 mA的電流信號(hào)、1~5 V和0~10 V的電壓信號(hào)。因?yàn)?~20 mA、1~5 V信號(hào)是我國(guó)使用最廣泛的DDZ-III型電動(dòng)儀表所采用的標(biāo)準(zhǔn),它是沿用的國(guó)際電工委員會(huì)(IEC)規(guī)定的過(guò)程控制系統(tǒng)模擬信號(hào)標(biāo)準(zhǔn)[4]。模擬量采集電路如圖3所示。
圖3 模擬量采集電路
對(duì)于電壓量,首先數(shù)據(jù)采集系統(tǒng)要求電壓的輸入量程為兩擋:0~10 V擋和1~5 V擋,所以在設(shè)計(jì)中通過(guò)控制雙路選擇開(kāi)關(guān)選出要采集的擋位。當(dāng)0~10 V電壓輸入時(shí),電壓應(yīng)從規(guī)定好的10 V輸入口P4輸入,然后通過(guò)電阻分壓為原信號(hào)的1/2后送入后級(jí)電路。當(dāng)1~5 V電壓輸入時(shí),電壓應(yīng)從AIN+和AIN-端接入,以實(shí)現(xiàn)對(duì)不同量程電壓的測(cè)量。
對(duì)于電流信號(hào),4~20 mA電流信號(hào)同樣從AIN+和AIN-端接入,通過(guò)R11將其轉(zhuǎn)換為電壓量后送入后級(jí)電路。同時(shí),為使轉(zhuǎn)換的電壓量符合輸入量程,由歐姆定律可得出R11的阻值應(yīng)該被設(shè)計(jì)為250 Ω。
考慮到阻抗會(huì)對(duì)電路產(chǎn)生一定的影響,甚至可能會(huì)影響到信號(hào)采集電路的準(zhǔn)確性,所以在電路中加入了兩級(jí)跟隨器電路來(lái)對(duì)電路進(jìn)行阻抗變換,以提高電路的驅(qū)動(dòng)能力和穩(wěn)定性[5]。在電路末端反向串聯(lián)了兩個(gè)二極管,形成保護(hù)電路,將電壓鉗制在安全的范圍內(nèi),以免出現(xiàn)意外燒壞內(nèi)部器件的情況。
開(kāi)關(guān)量采集電路是以光電耦合器為核心,采集通、斷信號(hào)并將其傳輸?shù)絾纹瑱C(jī)的I/O口線中。如圖4所示,開(kāi)關(guān)量采集使用TLP521-4光電耦合器。開(kāi)關(guān)量由P3和P5輸入,有信號(hào)輸入時(shí),光電耦合器一側(cè)導(dǎo)通,點(diǎn)亮發(fā)光二極管促使光敏三極管基極導(dǎo)通,從而使光電耦合器另一側(cè)有高電平輸出[6]。
圖4 開(kāi)關(guān)量采集電路原理圖
同時(shí),光電耦合器在電路中也起到了隔離作用。如果沒(méi)有加光電耦合器而是直接把開(kāi)關(guān)量接到單片機(jī)上,可能會(huì)由于開(kāi)關(guān)量輸出的電壓或電流超過(guò)單片機(jī)的正常工作電壓從而對(duì)單片機(jī)造成損傷。
LCD分為段碼型和點(diǎn)陣型兩種,點(diǎn)陣型又分為字符點(diǎn)陣型和圖形點(diǎn)陣型。因?yàn)長(zhǎng)CD1602型液晶屏幕是字符型液晶,顯示內(nèi)容豐富,而且具有較小的體積,接口方便使用,故選擇它作為顯示模塊。
LCD1602有16個(gè)接口,在本系統(tǒng)中采用3.3 V電壓驅(qū)動(dòng),所以不需要其他電源電路;而且MSP430單片機(jī)的I/O接口較為充裕,所以選擇將LCD1602的接口直接與單片機(jī)I/O接口相連[7]。
系統(tǒng)要具體實(shí)現(xiàn)所需功能,不僅僅要搭建好硬件電路基礎(chǔ),而且還需要對(duì)所需軟件程序進(jìn)行良好的設(shè)計(jì)。本系統(tǒng)軟件設(shè)計(jì)部分主要有主程序、開(kāi)關(guān)量采集程序、A/D轉(zhuǎn)換程序和LCD顯示程序四個(gè)部分。
主程序負(fù)責(zé)其余三個(gè)程序的調(diào)配和數(shù)據(jù)交換工作,主程序流程圖如圖5所示。首先應(yīng)對(duì)整個(gè)系統(tǒng)進(jìn)行復(fù)位,再初始化主程序;然后初始化各模塊子程序,隨后打開(kāi)系統(tǒng)中斷,利用中斷的方式調(diào)用其余子程序。
圖5 系統(tǒng)軟件模塊流程圖
A/D轉(zhuǎn)換子程序負(fù)責(zé)將采集到的模擬信號(hào)進(jìn)行模數(shù)轉(zhuǎn)換。首先初始化A/D轉(zhuǎn)換模塊,等待系統(tǒng)打開(kāi)中斷后開(kāi)始對(duì)采集的數(shù)據(jù)進(jìn)行A/D轉(zhuǎn)換。其中初始化部分主要完成A/D轉(zhuǎn)換和定時(shí)器的初始化功能設(shè)置,如參考電壓、模擬量的輸入口等。
LCD顯示程序負(fù)責(zé)對(duì)LCD的初始化和液晶模塊操作。其中LCD初始化包括造作控制引腳置高或置低,使控制指令和數(shù)據(jù)能夠正常寫(xiě)入顯示模塊;液晶模塊操作包括發(fā)送指令、顯示數(shù)據(jù)、顯示位置設(shè)置、顯示內(nèi)容設(shè)置等。
由于開(kāi)關(guān)量經(jīng)過(guò)光電耦合器之后可以直接接到單片機(jī),單片機(jī)只需判斷引腳的高低電平就可以讀取數(shù)據(jù)。所以開(kāi)關(guān)量采集程序相對(duì)簡(jiǎn)單,只需將單片機(jī)相應(yīng)引腳置為輸入,然后讀取數(shù)據(jù)即可。
在系統(tǒng)設(shè)計(jì)之前,對(duì)電路進(jìn)行了模擬仿真;在系統(tǒng)設(shè)計(jì)完成之后,對(duì)系統(tǒng)進(jìn)行了調(diào)試。
在硬件電路仿真時(shí)使用Multisim軟件,分別對(duì)模擬量采集電路進(jìn)行了仿真,仿真結(jié)果均表明電流量、5 V電壓量和10 V電壓量輸入電路后,電路輸出端接收到的電壓量均為理想值,其中5 V電壓量仿真結(jié)果如圖6所示。電路能夠正常運(yùn)行,并完成系統(tǒng)所需的采集任務(wù)。
圖6 5 V電壓仿真
在本系統(tǒng)的調(diào)試中,對(duì)系統(tǒng)功能進(jìn)行了測(cè)試,結(jié)果如表1、表2、表3所示。其中電流的單位為毫安(mA),電壓的單位是伏特(V)。
表1 1~5 V電壓測(cè)量結(jié)果
表2 0~10 V電壓測(cè)量結(jié)果
表3 4~20 mA電流測(cè)量結(jié)果
由于測(cè)量部分都是模擬電路,因此與實(shí)際的電壓值相比會(huì)存在一定的誤差,經(jīng)過(guò)分析可能有以下幾方面因素導(dǎo)致誤差:
(1)電阻值精度不高,與標(biāo)值之間會(huì)有一定的誤差。因?yàn)殡娐分胁捎昧硕鄠€(gè)分壓電阻,所以導(dǎo)致在分壓過(guò)程中產(chǎn)生一定的誤差。
(2)穩(wěn)定誤差及干擾誤差等[8]。
(3)器件誤差,如在電路中運(yùn)用到的二極管、三極管等計(jì)算時(shí)的誤差。
模擬電路中遇到誤差是常見(jiàn)的,而經(jīng)過(guò)分析,測(cè)量電路誤差較小,基本能夠滿足本系統(tǒng)的采集需求。