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