摘 要:設計一種基于水溫壓力檢測的數據采集系統,能夠對某些關鍵參數進行不同采樣間隔的數據采集和保存以供分析處理,要求系統可隨時更改數據采樣間隔,保存形成歷史數據文件。現場單片機系統與上位機能夠進行實時串行通信。主要介紹其中的單片機的硬件和軟件設計。該系統整體結構簡單,數據處理快捷。通過實踐證明,系統能達到較高的精度,能夠很好地滿足工程的需要。
關鍵詞:數據采集;AT89C2051;溫度壓力檢測;精度
Data Collection System Based on the Water Temperature and Pressure Examination
BAI Shenyi,WEI Jincheng,MU Tao,LIAO Tianquan
(School of Electrical and Information Engineering,Xihua University,Chengdu,610039,China
Abstract:The data acquisition system based on the water temperature and pressure examination is designed.It is possible that collects and keeps some key parameters in different sample partition to provide the analytical processing,it is requested that the system can change the data sample partition andkeep data to form the history data document at any time.The live MCU system can he live serial communicate with and the host computer.This paper mainly introduces the hardware and software design.The general structure of this system is simple,and the data processing is flexible and rapid.Practice certificates that the system can attain higher accuracy and satisfy the demand of the project.
eywords:data collection;AT89C2051;temperature and pressure examination;precision
1 引 言
在石油、化工、冶金、電力、紡織、輕工、水利等工業及科研領域中,都必須進行相關的壓力檢測和溫度的測試。該數據采集系統主要用于油田油井,氣井,注水井。其是油田測試井下壓力與溫度變化情況必不可少的。隨著科學技術的發展與普及,數字設備正越來越多地取代模擬設備,在生產過程控制和科學研究等廣泛領域,計算機控制技術正發揮著越來越重要的作用,然而外界的大部分信息是以連續變化的物理量形式出現的,例如溫度,壓力,速度等。要將這些信息送入計算機進行處理,就必須先將這些連續的物理量離散化,并進行量化編碼,從而變成數字量,這個過程即是數據采集[1]。本單片機系統的工作原理是通過一個壓力、溫度傳感器接受外部的壓力信號、溫度信號。這兩個信號送A/D轉換器,經過信號的放大、調制、濾波。最終轉化為計算機可處理和運算的數字信號。單片機既可以直接與計算機進行通信,也可以暫時把記錄數據存儲到系統的存儲器內,然后通過RS 232串行通信口把數據回放到計算機以供使用者對其進行處理。整個系統中單片機系統的硬件和軟件設計是主要的設計任務。
2 系統硬件設計
硬件電路主要由壓力傳感器,溫度傳感器,A/D轉換芯片、單片機、存儲器、通信接口組成。其中主單片機是系統的核心部件,主單片機控制系統的數據采集、數據存取、時間參數設置與主機通信等。時鐘信號也是由單片機產生,定時對主單片機產生復位信號,使主單片機完成一次數據采集,然后又進入休眠狀態。當主單片機進入休眠狀態后,除定時器還在繼續工作外,系統的其他部分進入掉電狀態。掉電狀態由單片機控制,定時器的工作參數也是由主單片機進行設置。
其中單片機AT89C2051是美國Atmel公司生產的一種低電壓,高性能CMOS 8位單片機,片內含2 kB的可反復擦寫的只讀FLASH程序存儲器和128 B的隨機存取數據存儲器RAM,該器件采用Atmel公司的高密度、非易失性存儲技術生產,兼容標準MCS 51指令系統,片內置通用8位中央處理器和2 kB FLASH存儲單元, AT89C2051單片機是一個功能強大的單片機,它有20個引腳,15個雙向輸入/輸出(I/O)端口,其中P1是一個完整的8位雙向I/O口,2個外中斷口,2個16位可編程定時計數器,2個全雙向串行通信口,一個模擬比較放大器。同時AT89C2051的時鐘頻率可以為零,即具備可用軟件設置的睡眠省電功能,系統的喚醒方式有RAM,定時/計數器,串行口和外中斷口,系統喚醒后即進入繼續工作狀態。省電模式中,片內RAM將被凍結,時鐘停止振蕩,所有功能停止工作,直至系統被硬件復位方可繼續運行[2]。對于其他元件的選擇,電路中所用元件都選用體積小,功耗低,耐高溫、穩定性好的器件。這些器件為數據采集系統和供電系統的長時間工作提供了一種有效的辦法。系統原理圖如圖1所示,壓力傳感器使用美國Motorola公司生產的MPX2100半導體壓力傳感器。它可以把壓力轉換成毫伏級的差模電壓信號,該壓力傳感器具有良好的線性度,它的輸出電壓與所加壓力成精確的正比例關系。有利于提高測試壓力的精度,另外,MPX2100所具有的溫度補償特性克服半導體壓力敏感器件存在的溫度漂移問題。溫度測量采用二極管IN4148作為傳感器。A/D轉換接口采用能達到高精度要求的A/D轉換芯片A/D7705[3]。A/D7705與單片機通信原理圖如圖2所示,存儲器采用的是256 kb串行電可擦除的可編程只讀存儲器CAT24C256:256 kb串行CMOS E2PROM(32768x8b,8引腳雙排直插式封裝,具有結構緊湊、存儲容量大等特點,特別適用于本數據采集系統,內部可以組成32 kB×8存儲單元,2線串行接口,雙向數據傳送協議,硬件寫保護引腳和軟件數據保護功能,有64 B頁寫入緩沖器,支持標準100 kHz和快速400 kHz I2C協議,工作電壓1.8~5.5 V,對全部存儲器進行硬件寫保護,在I2C總線輸入端(SCL和SDA含有施密特觸發器和噪音抑制濾波器,采用低功耗CMOS工藝,可編程/擦除100萬次,數據保存期100年,ROHS兼容的Green和Gold的8腳PDIP,SOIC,TSSOP和TDFN封裝。
3 系統軟件設計
軟件設計部分分為計算機軟件和儀器下位機軟件,其中計算機軟件需要在PC機中運行,而儀器下位機軟件則是存放在儀器電路板上的CPU中。這2部分軟件的流程圖如圖3所示。
溫度壓力采集是系統的主要部分,它工作情況的好壞將直接影響到整個系統能否正常運行。該過程主要由單片機控制其啟動工作。轉換速率與A/D轉換芯片有關。采樣間隔可以由人工通過軟件設定。在本系統中,單片機和存儲器都選用帶串行口的芯片,所以系統采用I2C串行總線技術進行數據傳送。I2C總線上傳輸的數據信號是廣義的,既包括地址信號,又包括真正的數據信號[4]。I2C總線數據傳輸時必須遵守規定的數據格式。按照總線規定,起始信號表明1次數據傳送的開始,其后為尋址字節,尋址字節由高7位地址和最低1位方向位組成,高7位地址是被尋址的從機地址,方向位是表示主機和從機之間的數據傳送方向,方向位為0表示主機發送數據寫,為1表示讀。在尋址字節后是將要傳送的數據字節與應答位,在數據傳送完成后主機必須發送終止信號。但是,如果主機希望繼續占用總線進行新的數據傳送,則可以不產生終止信號,馬上再次發出起始信號對另一從機進行尋址。溫度壓力數據采集[5]流程圖如圖4所示。
4 單片機與上位機通信設計
本系統與上位機通信的實現是利用PC機自帶的RS 232接口與AT89C2051的RXD和TXD實現。在最簡單的RS 232直接通信中,只要發送和接收雙方同時準備好,僅用信號發送端TXD,信號接收端RXD,地線GND 3根線即可進行通信。由于RS 232的電平是:-3~-15 V(邏輯1),3~15 V(邏輯0);而單片機串口信號電平為TTL電平,邏輯1大于3.6 V,邏輯0小于0.3 V。因此,PC機與單片機之間通過RS 232通信必須進行電平轉換。MAX232可以完成這個功能。它使用+5 V的工作電源,配接5個0.1 μF的電容。轉換完畢的串口TXD、RXD的信號直接和AT89C2051的串行口連接。單片機與上位機通信連接圖如圖5所示。
波特率的確定:
模式1和模式3的移位時鐘脈沖由定時器T1的溢出率決定,故波特率由定時器T1的溢出率與SMOD共同確定,即:模式1和模式3的波特率=2SMOD /32*T1的溢出率,當T1作波特率發生器使用時,最典型的用法是使T1工作在模式2定時方式。此時,定時器T1工作在模式2時的初值為:
本系統采用的波特率是1 200 b/s,使用的晶振頻率為3.686 3 MHz,所以初值X=248。
RS 232通信程序:
RS232INT:
CLR EA
CLR P1.0
JBC TI,TEM
CLR RI
MOV A,SBUF
MOV B,A
MOV A,B
CJNE A,#013H,DIYICI ;IF B != 13 THE FIRST
MOV COMU_FLAGH,#012H
MOV COMU_FLAGL,#034H
JB RCV32BYT,UB16 ;IS FLAG OF UB16B?
MOV A,SBUF
CJNE A,#0BBH,PJDRBF ;SECEND IS BB?
SETB BUSSY;IS UB16B,MAR FLAG FOR UB16B
SETB RCV32BYT
MOV R1,#MTD
NOP
NOP
AJMP SINTRET
COM WRRITE INTERRRUPT
5 硬件調試
硬件設計完后,對硬件各部分按設計要求進行調試,然后對單片機進行固化,即輸入程序。在本系統中無論傳感器還是電路中都存在不同程度的溫漂,如果不進行補償,測量結果的誤差就會很大。要獲得相當精確的壓力溫度數據資料,就必須進行溫漂校正。因此在對儀器電路進行必要調整的同時還需要用軟件的方法進行溫漂校正。
經過校正后采集到的數據就很容易達到系統所要求的精度,若還有誤差比較大的壓力點,則可以通過手動調整,調整的方法是利用插值法或者最小二乘法進行計算,再與標定系數進行比較,根據比較結果調整原來的標定系數。調完后再把新的標定文件寫入儀器,再在PC機上回放數據看結果。若結果還不行則繼續調整,直到達到要求為止。
6 結 語
本系統以AT89C2051單片機為核心,集成電路全部采用CMOS器件。與傳統的8031單片機數據采集器相比,AT89C2051單片機數據采集器硬件結構簡單,價格低廉。由于采用16位的A/D7705,精度高,能夠滿足測量要求。特別是該數據采集器配有串行通信接口,與微機相聯后能夠極大地提高測試系統的數據處理能力,容易實現誤差的計算與補償、校準測量儀器的非線性等[5]。由于在測試壓力和溫度過程中,對測試數據準確度要求很高,而這種單片機控制的數據采集系統克服了精度低、滯差大、走時短等缺點,并且功耗低、性能可靠,可以長時間連續工作,有著非常廣的應用空間。
數據采集系統是計算機與外部世界聯系的橋梁。數據采集技術是以傳感器技術、信號檢測與處理、電子學、計算機技術等方面技術為基礎而形成的一個綜合應用技術學科,已廣泛應用于國民經濟和國防建設的各個領域,并且隨著科學技術的發展,尤其是計算機技術的發展與普及,數據采集技術將會有著更廣闊的發展前景。
參 考 文 獻
[1]馮旭.單片機控制的數據采集系統[J].信息技術,2006,35(3:19-20.
[2]梅麗鳳,王艷秋.單片機原理及接口技術[M].北京:清華大學出版社,2004.
[3]肖忠祥.數據采集原理[M].西安:西北工業大學出版社,2002.
[4]楊將新,李華軍,劉東駿.單片機程序設計及應用從基礎到實踐[M].北京:電子工業出版社,2006.
[5]郭淵.數據采集系統設計[D].鄭州:中原工學院,2006.