朱葉
摘 要: 數(shù)字氣壓計是一種精確測量壓力大小的工具,運用單片機的數(shù)字氣壓計攜帶方便,操作簡單,精確度高,安全性好,具有良好的應(yīng)用前景。對基于單片機控制的數(shù)字氣壓計進行詳細介紹,分析氣壓計的總體結(jié)構(gòu),介紹氣壓計的軟硬件實現(xiàn)方法和數(shù)字氣壓計系統(tǒng)的調(diào)試與仿真,保障數(shù)字氣壓計系統(tǒng)功能的可靠性和穩(wěn)定性。
關(guān)鍵詞: 數(shù)字氣壓計; 軟件實現(xiàn)方法; 硬件實現(xiàn)方法; 結(jié)構(gòu)分析
中圖分類號: TN43?34 文獻標識碼: A 文章編號: 1004?373X(2015)16?0100?03
Design of digital barometer controlled by single chip microcomputer
ZHU Ye
(Xian Railway Vocational and Technical Institute, Xian 710014, China)
Abstract: Digital barometer is an accurate pressure measurement tool. The digital barometer with microcontroller is convenient to be carried, and has simple operation, high accuracy, good safety and good application prospect. The digital barometer controlled on single chip microcomputer is introduced in detail. The overall structure of the barometer is analyzed. then introduce The method to realize software and hardware of the barometer is described. The debugging and simulation methods of digital barometer system elaborated to guarantee the reliability and stability of digital barometer function.
Keywords: digital barometer; software realization method; hardware realization method; structural analysis\
0 引 言
氣壓計是一種運用壓敏元件將待測氣壓轉(zhuǎn)化成易被檢測和傳輸?shù)碾妷弘娏餍盘?,通過后續(xù)電路處理將數(shù)據(jù)顯示出來的一種測量工具。氣壓計的核心器件是氣壓傳感器,其在監(jiān)測壓力大小、控制壓力變化和對其他物理數(shù)量測量多個方面都有十分重要的作用。氣壓計通過不同高度時的氣壓變化獲取氣壓數(shù)值。根據(jù)氣象學規(guī)定,作用于單位面積上空空氣柱的重量被稱為大氣壓力。根據(jù)氣象學研究,垂直方向上氣壓隨著海拔高度的上升而下降。在近地地區(qū),每上升100 m氣壓降低10 hPa,在距地面5~6 km的空中每上升100 m高度氣壓降低7 hPa;在距地面9~10 km的高空中每上升100 m氣壓降低5 hPa。當空氣中有下降氣流的時候氣壓會增加,反之會減小。
數(shù)字氣壓計廣泛應(yīng)用于工礦企業(yè)、電子產(chǎn)品和戶外作業(yè)之中,經(jīng)過長時間的發(fā)展其精確度越來越高,功能更加多樣化,逐步向智能化、多功能化方向發(fā)展,筆者認為基于單片機控制的數(shù)字氣壓計發(fā)展前景很好。
1 氣壓計的總體結(jié)構(gòu)分析
本文介紹的數(shù)字氣壓計采用集成的單片機控制,測量時待測氣壓被氣壓傳感器轉(zhuǎn)換成可檢測的電壓輸出,通過V/F轉(zhuǎn)化器將氣壓傳感器輸出的電壓信號轉(zhuǎn)化成有特定頻率的脈沖信號,單片機接收脈沖信號,根據(jù)其單位時間內(nèi)接收的脈沖數(shù)和電壓頻率的線性關(guān)系式計算出相應(yīng)的氣壓值,最后氣壓值顯示在LED屏幕上。
在這個流程中有以下3點需要注意:根據(jù)實際需求和氣壓傳感器的具體參數(shù)選擇合適的氣壓傳感器芯片;選擇合適的V/F轉(zhuǎn)換器,確保氣壓傳感器輸出的模擬電壓電流信號轉(zhuǎn)換成能被識別的數(shù)字信號;設(shè)計合理的單片機與各模塊的接口電路。數(shù)字氣壓計測量出的氣壓值是在氣壓傳感器的線性范圍內(nèi)的絕對氣壓值。
2 數(shù)字氣壓計的硬件實現(xiàn)
數(shù)字氣壓計的硬件構(gòu)建需要考慮其穩(wěn)定性、復雜性、制造成本、維護成本等多種因素。本節(jié)要對數(shù)字氣壓計的硬件設(shè)施的組成進行介紹,建立一套穩(wěn)定的、系統(tǒng)的硬件設(shè)施。
2.1 氣壓傳感器
氣壓傳感器在整個氣壓計結(jié)構(gòu)中處于核心地位,其選擇需要考慮測量精度、測量范圍、溫度變化、絕對氣壓值等因素。數(shù)字氣壓計測量的是絕對氣壓值,因此需要能測量絕對氣壓值的氣壓傳感器;為了簡化電路設(shè)計,提高氣壓計的穩(wěn)定性和抗干擾能力,還需要氣壓傳感器具有溫度補償。
根據(jù)上述要求,在本數(shù)字氣壓計中選擇Motorda的MAX4100A型氣壓傳感器。這種氣壓傳感器的溫度補償范圍為-40~125 ℃,承壓范圍為20~1 050 kPa,在這個壓力范圍內(nèi)有良好的線性,電壓輸出信號范圍為0.3~4.65 V。本氣壓傳感器可以用于測量絕對氣壓值,其輸出關(guān)系具體如下:
Vout=Vs(0.010 59P-0.152 8)±Error
式中:Vs是工作電壓;P是大氣壓值;Vout為輸出電壓。
2.2 V/F轉(zhuǎn)換
待測氣壓被氣壓傳感器測出的是電壓電流信號,但是其不能被單片機識別,這時候就需要V/F器件把輸入進來的電壓值轉(zhuǎn)換成可被單片機識別的脈沖串。雖然V/F器件本身不是量化器,但是定時器和計數(shù)器的存在可以實現(xiàn)A/D的轉(zhuǎn)換,將模擬電壓信號轉(zhuǎn)化成抗干擾能力強、可實現(xiàn)遠距離傳輸、可直接輸入計算機的脈沖串。endprint
本文根據(jù)外圍電路相關(guān)性能標準和實現(xiàn)的難易程度選取LM331電壓/脈沖轉(zhuǎn)換芯片,這種器件采用的是溫度補償能隙基準電路,溫漂最大能達到50 ppm/℃,溫度穩(wěn)定性非常好,而且這種器件輸出的脈沖串兼容性好,可以和任何邏輯形式兼容;LM331可以使用單雙電源供電,電壓允許范圍為5~40 V,最大非線性誤差為0.01%。LM331的壓頻轉(zhuǎn)化關(guān)系為:
fo=KVi
其中,K=[Rs2.09RtCtRL],Rs=Rs1+Rs。
圖1為LM331外圍電路連接圖。
圖1 LM331外圍電路連接圖
其中R的作用是調(diào)節(jié)電路的轉(zhuǎn)換增益,K的值由設(shè)計者根據(jù)具體情況具體設(shè)定??紤]到單片機要使用測頻率法測量fo,為保證頻率信號的測量精度,在LM331中K=2 000,Rs=28.424 kΩ。對于不同元件的參數(shù)有著不同的要求,設(shè)計者要根據(jù)數(shù)字氣壓計的實際使用需求來選擇元件的參數(shù)和測量精度。需要注意的是在選擇V/F器件時要選取漏電流小的電容器,使用低通濾波器減小輸出電壓中的干擾脈沖,提高數(shù)據(jù)精度。
2.3 單片機
在本設(shè)計中,氣壓計需要單片機的P1口和P3口的一部分和中斷源、定時器、計數(shù)器各一個。因此在本設(shè)計中選取AT89S52控制器,該控制器具有低功耗、高性能的優(yōu)點,具有8 KB的FLASH和可編程的存儲器。AT89S52控制器是Atmel公司生產(chǎn)的高密度非易失性存儲器,與其他模塊可以完全兼容。AT89S52具有以下的性能標準:8 KB FLASH,256 B RAM,32位的I/O口線,具有2個數(shù)據(jù)指針、3個16位計數(shù)器、1個看門狗定時器、1個6向量2級中斷結(jié)構(gòu)、片內(nèi)晶振和時鐘電路。除此之外,AT89S52支持兩種軟件工作模式,可以降到靜態(tài)邏輯操作模式以節(jié)省電量。在空閑模式下,CPU工作停止,RAM、計數(shù)器、定時器可以保持工作;當發(fā)生掉電現(xiàn)象時,RAM的內(nèi)容被自動保存下來,單片機內(nèi)一切運轉(zhuǎn)終止,防止意外的發(fā)生。
該單片機有40條引腳,按照功能來分可分為電源和時鐘引腳、控制引腳、輸入和輸出引腳,其中P1口和P3口對應(yīng)的輸入和輸出引腳在整個單片機結(jié)構(gòu)中處于核心地位。P1口是一組8位準雙向I/O口,內(nèi)部有上拉電阻,將上拉電阻拉到高電平,P1口就具有輸入口的功能;P3口是一組8位雙向I/O口,內(nèi)部有上拉電阻,其輸出緩沖級可以驅(qū)動4個TTL邏輯門電路,將上拉電阻拉到高電平,P3口就具有輸入口的功能。不僅如此,P3口還承擔著許多第二功能。AT89S52控制器可以直接對LED顯示屏輸出數(shù)據(jù),還有可編程的串行通信口,具有體積小、價格低、耗能低、性能高等優(yōu)點。
2.4 LED顯示
每一個LED都是由7段發(fā)光二極管組成的顯示單位,其具有10個引腳,分別對應(yīng)發(fā)光二極管的7個段、1個小數(shù)點和2個公共端。發(fā)光二極管有共陽極接法和共陰極接法2種,本設(shè)計需要4個LED組成一個顯示單元,并采用動態(tài)顯示的方式。由于同時使用4個單個LED構(gòu)成顯示單元的連線比較復雜,而且給單片機的端口驅(qū)動帶來很大壓力,這就需要加裝專門的驅(qū)動芯片。由于4個LED是連體的,所以可以使用共陽極接法,這樣的顯示單元具有12個引腳、7個發(fā)光二極管段、4個公共端,再加裝1個三極管驅(qū)動電路可以提高數(shù)碼管的亮度。圖2為本設(shè)計中的LED顯示單元電路圖。
圖2 LED顯示單元電路圖
根據(jù)顯示單元的電路圖可以看出電阻R和Ra太大或太小都會使LED正常顯示,所以需要選擇適合的電阻以保障LED的亮度??紤]到印制板布線的便捷,可以選擇貼片電阻和排阻的形式節(jié)省版布線的空間。
3 數(shù)字氣壓計的軟件實現(xiàn)
對于單片機來說,其輸入信號是具有一定頻率的脈沖序列,單片機的計數(shù)器可以獲取脈沖序列的頻率并將其換算成具體的氣壓值。所以本節(jié)將著重介紹單片機的軟件設(shè)計,分析其中的計算原理?;趩纹瑱C的數(shù)字氣壓計的程序流程設(shè)計圖如圖3所示。
圖3 程序流程設(shè)計圖
具體的信號轉(zhuǎn)換過程如下:
首先,待測氣壓被氣壓傳感器轉(zhuǎn)換成電壓輸出,根據(jù)氣壓傳感器的資料可知,輸出電壓Vout和氣壓P存在如下關(guān)系:
Vout=VCC(0.01P-0.09)
由于VCC是+5 V,所以上式可以轉(zhuǎn)化為:
Vout=5×(0.01P-0.09)
然后氣壓傳感器輸出的電壓Vout作為V/F的輸入電壓Vin轉(zhuǎn)換成具體一定頻率的脈沖序列fo,而這二者又存在fo=KVin的關(guān)系。根據(jù)Vout=Vin的關(guān)系可以得出:
[P=fo5K+0.090.01=20foK+9]
式中K為V/F轉(zhuǎn)換增益,K=2 000,根據(jù)上式可以將脈沖序列的頻率換算成氣壓值。
本設(shè)計的軟件程序設(shè)計采用C語言編程。C語言是一種編譯型的結(jié)構(gòu)化程序設(shè)計語言,其語法結(jié)構(gòu)簡單,處理功能強大,有編譯效率高、可讀性強、運行速度高等多方面優(yōu)點,可以讓編程者實現(xiàn)對系統(tǒng)硬件的直接操作。運用C語言編寫數(shù)字氣壓計的系統(tǒng)軟件,可以大大縮短單片機的研發(fā)周期,增強軟件的可讀性,也便于對軟件內(nèi)容進行改進和變更,有利于應(yīng)用系統(tǒng)的大規(guī)模開發(fā)和高效率的利用。其具體的代碼為:
void spi_proc(void)
{unsigned int xdata c1,c2,c3,c4,c5,c6; long xdata utmp;
float xdata dt,temp,off,sens,x,p;
float xdata temp2,p2;
c1=(w1 >> 1) & 0x7FFF;
c2=((w3 << 6) & 0x0FC0)+(w4 & 0x003F);
c3=((w4 >> 6) & 0x03FF);
c4=((w3 >> 6) & 0x03FF);
c5=((w1 << 10)& 0x0400) +((w2>>6)&0x03FF);
c6=(w2 & 0x003F);
utmp=8*c5+20224;
dt=(float)(d2-utmp);
temp=200+dt*(c6+50)/1024;
off=c2*4+((c4-512)*dt)/4096;
sens=c1+(c3*dt)/1024+24576;
x=(sens*(d1-7168))/16384?off;
p=x*10/32+2500;
if(temp>450)
{temp2=3*(c6+24)*(450-temp)*(450-temp)/1048576; p2=temp2*(p-10000)/8192; }
else if(temp<200)
{temp2=11*(c6+24)*(200-temp)* (200-temp)/1048576; p2=3*temp2*(p-3500)/16384; }
else
{temp2=0; p2=0; }
temp=temp-temp2;
p=p-p2; }
4 系統(tǒng)的調(diào)試與仿真
為保障本文設(shè)計的數(shù)字氣壓計的可靠性和穩(wěn)定性,還需要對整體系統(tǒng)進行調(diào)試與仿真。使用Keil軟件和Proteus軟件相結(jié)合進行仿真。使用Proteus軟件對系統(tǒng)的總體執(zhí)行效果進行調(diào)試,主要調(diào)試單片機的電源供應(yīng)和電路復位。單片機的電源電路、復位電路和晶振電路是單片機乃至整個數(shù)字氣壓計正常運轉(zhuǎn)的基礎(chǔ),要首先保證這幾部分的正常工作。在調(diào)試中,單片機時鐘的頻率保持在11.059 2 MHz上。然后是應(yīng)用Proteus軟件對電氣規(guī)則功能進行檢查,檢測其連接是否正確并得出檢查報告,一旦發(fā)現(xiàn)原理圖中存在錯誤要立刻根據(jù)錯誤點進行改正。在原理圖的連接沒有問題時,再進行器件連接調(diào)試,對電路中所有器件的名字、參數(shù)、器件之間的連接網(wǎng)絡(luò)進行全面檢查,確認每一個器件的正確和之間關(guān)系的合理。之后對PCB圖進行檢查,檢查PCB設(shè)計、PCB電氣特性和物理特性、印制板和導線圖形檢查。最后對整個程序進行調(diào)試和仿真。
5 結(jié) 語
本文對基于單片機的數(shù)字氣壓計進行分析,在硬件設(shè)施上,需要選擇合適的氣壓傳感器、V/F轉(zhuǎn)換器、單片機和LED顯示,設(shè)計合理的硬件電路,并通過C語言編譯出能將脈沖序列的的頻率轉(zhuǎn)換為可讀取的氣壓值信號。使用V/F變換信號和編程克服了測量中穩(wěn)定性差、精確度低的缺點,為設(shè)計出功能易于擴展、可靠而又穩(wěn)定的數(shù)字氣壓計提供了一種全新的思路。
參考文獻
[1] 曹萬丹.基于AVR的智能數(shù)字氣壓計的優(yōu)化設(shè)計[D].武漢:武漢科技大學,2009.
[2] 沈紹祥,胡愛華.基于單片機控制的數(shù)字氣壓計設(shè)計與實現(xiàn)[J].國外電子元器件,2004(7):66?69.
[3] 田海燕,賴春強,賀思橋.基于MS5534C的數(shù)字氣壓計設(shè)計[J]. 兵工自動化,2012(9):86?88.
[4] 楊智.低功耗數(shù)字氣壓計的設(shè)計[J].沈陽航空工業(yè)學院學報,2007(3):72?73.
[5] 孫艷玲,劉亞麗.基于MPX4105芯片的數(shù)字氣壓計設(shè)計[J].中國儀器儀表,2007(11):62?65.
[6] 方劉海,文繼國.基于BMP085的精密數(shù)字氣壓計設(shè)計[J].電子設(shè)計工程,2014(24):69?71.endprint