基于單片機(jī)的便攜遠(yuǎn)程多路數(shù)據(jù)采集系統(tǒng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引言:
在工業(yè)生產(chǎn)和各種科學(xué)技術(shù)研究過(guò)程中,常常要對(duì)各種數(shù)據(jù)進(jìn)行采集和處理,通常用的采集方式是在PC機(jī)或者工控機(jī)內(nèi)安裝數(shù)據(jù)采集卡,例如 A/D卡及RS-422卡、RS-485卡。采集卡易受機(jī)箱內(nèi)環(huán)境的影響,以及計(jì)算機(jī)插槽數(shù)量和地址、中斷資源的限制,不能掛接很多設(shè)備。尤其是在進(jìn)行油井壓裂作業(yè)時(shí),因?yàn)閴毫压ぷ鳜F(xiàn)場(chǎng)比較危險(xiǎn),而又同時(shí)需要對(duì)壓裂時(shí)的各種數(shù)據(jù)進(jìn)行采集和處理,以便進(jìn)行遠(yuǎn)程實(shí)時(shí)監(jiān)控,因此利用工控機(jī)進(jìn)行遠(yuǎn)程數(shù)據(jù)采集處理,就難以滿足遠(yuǎn)程數(shù)據(jù)傳輸和便攜的要求。本文探討一種基于單片機(jī)和手提電腦的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng),既可以進(jìn)行遠(yuǎn)程數(shù)據(jù)采集,而且靈活輕便利于攜帶,同時(shí)也減低了設(shè)備成本。
1 主要芯片介紹
AT89C52是一個(gè)低功耗,高性能CMOS 8位單片機(jī),片內(nèi)含8k Bytes的可反復(fù)擦寫(xiě)1000次的Flash只讀程序存儲(chǔ)器。器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)制造。AT89C52有128 bytes的On-Chip隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),32個(gè)外部雙向輸入/輸出(I/O)口,1個(gè)6向量?jī)杉?jí)中斷結(jié)構(gòu),3個(gè)16位可編程定時(shí)計(jì)數(shù)器,1個(gè)全雙工串行通信口,片內(nèi)時(shí)鐘振蕩器。此外,AT89C52還設(shè)計(jì)和配置了振蕩頻率可為0Hz并可通過(guò)軟件設(shè)置的省電模式。空閑模式下,CPU暫停工作,而RAM定時(shí)計(jì)數(shù)器、串行口、外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而保存RAM的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復(fù)位。
AD574是美國(guó)模擬數(shù)字公司(Analog)推出的單片高速12位逐次比較型A/D轉(zhuǎn)換器,內(nèi)置雙極性電路構(gòu)成的混合集成轉(zhuǎn)換芯片,具有外接元件少,功耗低,精度高等特點(diǎn),并且具有自動(dòng)校零和自動(dòng)極性轉(zhuǎn)換功能,只需外接少量的阻容件即可構(gòu)成一個(gè)完整的A/D轉(zhuǎn)換器,其模擬電壓輸人范圍有四種:0- 10V和0-20V,0±5V和0-±10V,數(shù)據(jù)輸出格式為12位和8位可選,本文采用12位數(shù)據(jù)格式,這樣可以提高數(shù)據(jù)的精度。
MAX485接口芯片是MAXIM公司的一種RS-485芯片,它完成將TTL電平轉(zhuǎn)換為RS-485電平的功能。采用單一電源+5V工作,額定電流為300μA,采用半雙工通訊方式,數(shù)據(jù)傳輸率高達(dá)2.5Mbps。在一條RS-485總線上可以掛接最多32個(gè)MAX485收發(fā)器。這樣可以通過(guò)編程利用一臺(tái)手提電腦通過(guò)RS-485總線同時(shí)對(duì)多套該系統(tǒng)進(jìn)行數(shù)據(jù)采集。
2 系統(tǒng)硬件設(shè)計(jì)
整個(gè)采集系統(tǒng)分為數(shù)據(jù)采集發(fā)送端和數(shù)據(jù)接收端。數(shù)據(jù)采集發(fā)送端主要由AT89C52單片機(jī)、AD574A A/D采樣芯片、MAX354故障保護(hù)模擬開(kāi)關(guān)和MAX485芯片構(gòu)成,完成多路信號(hào)的采集和串行數(shù)據(jù)的發(fā)送功能。數(shù)據(jù)接收端由一個(gè)RS-485電平轉(zhuǎn) RS-232C電平的電路,以及一臺(tái)便攜式手提電腦構(gòu)成。數(shù)據(jù)采集端和發(fā)送端通過(guò)一條屏蔽的雙絞線電纜連接。
2.1 數(shù)據(jù)采樣電路
采樣電路由AD574和MAX354組成,在一個(gè)采樣周期內(nèi),連續(xù)對(duì)8路輸入數(shù)據(jù)按順序進(jìn)行一輪采樣,采樣電路與單片機(jī)的連接如圖1所示。
圖-1 數(shù)據(jù)采樣電路
采用8通道故障保護(hù)模擬開(kāi)關(guān)MAX354對(duì)采樣通道進(jìn)行選擇,這可以通過(guò)89C52地址線A0,A1,A2來(lái)控制,信號(hào)通過(guò)模擬開(kāi)關(guān)后被送到AD574的輸入端。
AD574內(nèi)部具有三態(tài)數(shù)據(jù)鎖存器,可以和89C52單片機(jī)的P0數(shù)據(jù)口直接相連,它內(nèi)部具有參考電壓和時(shí)鐘電路,因此無(wú)需任何元器件即可獨(dú)立完成 A/D轉(zhuǎn)換。A/D轉(zhuǎn)換結(jié)束后,AD574向89C52的中斷INT0發(fā)出中斷申請(qǐng),然后系統(tǒng)對(duì)轉(zhuǎn)換后的數(shù)據(jù)進(jìn)行處理。AD574的12/8端子固定接地,A0端口與89C52的地址線A7相連,這樣在地址線A7的控制下分兩次通過(guò)8位數(shù)據(jù)總線來(lái)讀取l2位的轉(zhuǎn)換結(jié)果。
2.2 數(shù)據(jù)發(fā)送與接收電路
為了避免在長(zhǎng)距離的數(shù)據(jù)傳輸過(guò)程中,數(shù)據(jù)受到現(xiàn)場(chǎng)的干擾,該系統(tǒng)采用MAX485芯片將信號(hào)電平轉(zhuǎn)換為RS-485電平,采用RS-485接口進(jìn)行遠(yuǎn)程數(shù)據(jù)傳輸。RS-485是美國(guó)電氣工業(yè)聯(lián)合會(huì)(EIA)制定的利用平衡雙絞線作傳輸線的多點(diǎn)通訊標(biāo)準(zhǔn)。它采用差分信號(hào)進(jìn)行傳輸;最大傳輸距離可以達(dá)到 1.2 km;最大可連接32個(gè)驅(qū)動(dòng)器和收發(fā)器;接收器最小靈敏度可達(dá)±200 mV;最大傳輸速率可達(dá)2.5 Mb/s。同時(shí),RS-485協(xié)議正是針對(duì)遠(yuǎn)距離、高靈敏度、多點(diǎn)通訊制定的標(biāo)準(zhǔn)。這也為今后該數(shù)據(jù)采集系統(tǒng)進(jìn)行多點(diǎn)數(shù)據(jù)采集的功能擴(kuò)展奠定了基礎(chǔ)。
MAX485芯片的結(jié)構(gòu)和引腳都非常簡(jiǎn)單,內(nèi)部含有一個(gè)驅(qū)動(dòng)器和接收器。RO和DI端分別為接收器的輸出和驅(qū)動(dòng)器的輸入端,與單片機(jī)連接時(shí)只需分別與單片機(jī)的RXD和TXD相連即可;/RE和DE端分別為接收和發(fā)送的使能端,當(dāng)/RE為邏輯0時(shí),器件處于接收狀態(tài);當(dāng)DE為邏輯1時(shí),器件處于發(fā)送狀態(tài),因?yàn)镸AX485工作在半雙工狀態(tài),所以只需用單片機(jī)的一個(gè)管腳控制這兩個(gè)引腳即可;A端和B端分別為接收和發(fā)送的差分信號(hào)端,當(dāng)A引腳的電平高于B 時(shí),代表發(fā)送的數(shù)據(jù)為1;當(dāng)A的電平低于B端時(shí),代表發(fā)送的數(shù)據(jù)為0。在與單片機(jī)連接時(shí)接線非常簡(jiǎn)單。只需要一個(gè)信號(hào)控制MAX485的接收和發(fā)送即可。同時(shí)將A和B端之間加匹配電阻,一般可選100Ω的電阻。
圖-2 數(shù)據(jù)發(fā)送電路
圖-3 “看門(mén)狗”電路
在數(shù)據(jù)接收端,手提電腦上的串行接口采用的是RS-232C電平,因此還需要將RS-485電平進(jìn)行轉(zhuǎn)換。由于在數(shù)據(jù)接收端采用的手提電腦需要攜帶方便,因此這里采用的是市面上比較小巧緊固的電平轉(zhuǎn)換接口,這里就不做贅述。
2.3 主要的抗干擾措施
對(duì)MAX354的輸入端采用隔離放大器進(jìn)行信號(hào)隔離,采用隔離放大器的變壓器將信號(hào)磁耦合 ,隔離了通路的線路連接,從而切斷了干擾源。這樣對(duì)壓裂設(shè)備上發(fā)動(dòng)機(jī)的干擾有了一定效果的屏蔽作用。
同時(shí),為了防止單片機(jī)受干擾影響而發(fā)生“死機(jī)”等現(xiàn)象,系統(tǒng)還利用MAX706芯片設(shè)計(jì)了“看門(mén)狗”電路,提高了系統(tǒng)的抗干擾能力,如圖-3。 MAX706是一種性能優(yōu)良的低功耗CMOS監(jiān)控電路芯片,其內(nèi)部電路由上電復(fù)位、可重觸發(fā)“看門(mén)狗”定時(shí)器及電壓比較器等組成。MAX706只要在 1.6秒時(shí)間內(nèi)檢測(cè)到WCI引腳有高低電平跳變信號(hào),則“看門(mén)狗”定時(shí)器清零并重新開(kāi)始計(jì)時(shí);若超出1.6秒后,WCI引腳仍無(wú)高低電平跳變信號(hào),則“看門(mén)狗”定時(shí)器溢出,WDO引腳輸出低電平,進(jìn)而觸發(fā)MR手動(dòng)復(fù)位引腳,使MAC706復(fù)位,從而使“看門(mén)狗”定時(shí)器清零并重新開(kāi)始計(jì)時(shí),WDO引腳輸出高電平,MAX706的RST復(fù)位輸出引腳輸出大約200毫秒寬度的低電平脈沖,使單片機(jī)控制系統(tǒng)可靠復(fù)位,重新投入正常運(yùn)行。MAX706的控制只需要利用單片機(jī)的P1.5引腳通過(guò)簡(jiǎn)單編程實(shí)現(xiàn)。
3 系統(tǒng)軟件設(shè)計(jì)
軟件設(shè)計(jì)包括兩方面:筆記本電腦的主機(jī)程序和單片機(jī)數(shù)據(jù)采集和發(fā)送的固件程序。其中,主機(jī)程序的編寫(xiě)可以利用VB語(yǔ)言編寫(xiě),串口通信是通過(guò) Microsoft Visual Basic的通信編程控件MSComm實(shí)現(xiàn)的。在讀取完串口數(shù)據(jù)后,需要將每通道10次采集的數(shù)據(jù)進(jìn)行數(shù)學(xué)平均計(jì)算,這樣可以在一定程度上減小干擾數(shù)據(jù)的影響。
89C52的串行通訊采用工作方式1,波特率是9600bit/s,發(fā)送數(shù)據(jù)采用定時(shí)查詢方式,可以根據(jù)需要適當(dāng)調(diào)節(jié)發(fā)送數(shù)據(jù)的時(shí)間,定時(shí)周期性地讀取存儲(chǔ)的采樣數(shù)據(jù),以串行方式通過(guò)RS-485接口發(fā)送到上位機(jī)。程序采用可讀性較強(qiáng)的C51語(yǔ)言編寫(xiě),程序流程圖見(jiàn)固件流程圖-4。在編寫(xiě)89C52 的程序時(shí),需要對(duì)采樣數(shù)據(jù)進(jìn)行處理。由于采集的油溫、油壓、井口壓力等數(shù)據(jù)與信號(hào)電壓是線性關(guān)系,通過(guò)給定標(biāo)準(zhǔn)信號(hào)電壓測(cè)量一個(gè)最大值和一個(gè)最小值,就能得出各種數(shù)據(jù)的信號(hào)電壓與測(cè)量數(shù)據(jù)之間的比例關(guān)系。數(shù)據(jù)處理程序是根據(jù)線性比例關(guān)系,先將A/D轉(zhuǎn)換器AD574 采集到的12位二進(jìn)制數(shù)據(jù)轉(zhuǎn)換成實(shí)際測(cè)量值,并將此值按照ANSI/IEEE標(biāo)準(zhǔn)754-1985轉(zhuǎn)換成32位浮點(diǎn)數(shù),保存在設(shè)定的存儲(chǔ)區(qū),總共有8組數(shù)據(jù),需要32字節(jié)的空間來(lái)存儲(chǔ)采樣數(shù)據(jù)。
一個(gè)標(biāo)準(zhǔn)浮點(diǎn)數(shù)占用一個(gè)雙字(32位)。最高位(第31位)位浮點(diǎn)數(shù)的符號(hào)位,最高位為“0”是為正數(shù),位“1”時(shí)為負(fù)數(shù);8位指數(shù)占23-30 位;因?yàn)橐?guī)定尾數(shù)的正數(shù)部分總是為“1”,只保留的尾數(shù)的小數(shù)部分(0~22位)。浮點(diǎn)數(shù)的優(yōu)點(diǎn)是利用很小的存儲(chǔ)空間(4B)可以表示出精確度很高的非常大和非常小的數(shù),在進(jìn)行數(shù)據(jù)處理和運(yùn)算時(shí)提高了精確度。
圖-4 單片機(jī)固件主程序流程圖
4 結(jié)束語(yǔ)
該套數(shù)據(jù)采集系統(tǒng)在油田壓裂設(shè)備上成功運(yùn)用。實(shí)踐證明,與傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)相比,該采集系統(tǒng)不僅輕便易攜帶,能有效防止現(xiàn)場(chǎng)環(huán)境的干擾,而且利用 RS-485總線進(jìn)行遠(yuǎn)程數(shù)據(jù)采集,將油井壓裂作業(yè)過(guò)程中的壓裂車(chē)的油溫、油壓、井口壓力、泥漿密度,以及其它數(shù)據(jù)保存到筆記本電腦上,增強(qiáng)了數(shù)據(jù)的實(shí)時(shí)處理能力,工程技術(shù)人員能夠及時(shí)分析數(shù)據(jù)結(jié)果,減少了在油井壓裂作業(yè)過(guò)程中的事故率