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