朱葉
摘 要: 數(shù)字氣壓計(jì)是一種精確測(cè)量壓力大小的工具,運(yùn)用單片機(jī)的數(shù)字氣壓計(jì)攜帶方便,操作簡(jiǎn)單,精確度高,安全性好,具有良好的應(yīng)用前景。對(duì)基于單片機(jī)控制的數(shù)字氣壓計(jì)進(jìn)行詳細(xì)介紹,分析氣壓計(jì)的總體結(jié)構(gòu),介紹氣壓計(jì)的軟硬件實(shí)現(xiàn)方法和數(shù)字氣壓計(jì)系統(tǒng)的調(diào)試與仿真,保障數(shù)字氣壓計(jì)系統(tǒng)功能的可靠性和穩(wěn)定性。
關(guān)鍵詞: 數(shù)字氣壓計(jì); 軟件實(shí)現(xiàn)方法; 硬件實(shí)現(xiàn)方法; 結(jié)構(gòu)分析
中圖分類號(hào): TN43?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 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 引 言
氣壓計(jì)是一種運(yùn)用壓敏元件將待測(cè)氣壓轉(zhuǎn)化成易被檢測(cè)和傳輸?shù)碾妷弘娏餍盘?hào),通過(guò)后續(xù)電路處理將數(shù)據(jù)顯示出來(lái)的一種測(cè)量工具。氣壓計(jì)的核心器件是氣壓傳感器,其在監(jiān)測(cè)壓力大小、控制壓力變化和對(duì)其他物理數(shù)量測(cè)量多個(gè)方面都有十分重要的作用。氣壓計(jì)通過(guò)不同高度時(shí)的氣壓變化獲取氣壓數(shù)值。根據(jù)氣象學(xué)規(guī)定,作用于單位面積上空空氣柱的重量被稱為大氣壓力。根據(jù)氣象學(xué)研究,垂直方向上氣壓隨著海拔高度的上升而下降。在近地地區(qū),每上升100 m氣壓降低10 hPa,在距地面5~6 km的空中每上升100 m高度氣壓降低7 hPa;在距地面9~10 km的高空中每上升100 m氣壓降低5 hPa。當(dāng)空氣中有下降氣流的時(shí)候氣壓會(huì)增加,反之會(huì)減小。
數(shù)字氣壓計(jì)廣泛應(yīng)用于工礦企業(yè)、電子產(chǎn)品和戶外作業(yè)之中,經(jīng)過(guò)長(zhǎng)時(shí)間的發(fā)展其精確度越來(lái)越高,功能更加多樣化,逐步向智能化、多功能化方向發(fā)展,筆者認(rèn)為基于單片機(jī)控制的數(shù)字氣壓計(jì)發(fā)展前景很好。
1 氣壓計(jì)的總體結(jié)構(gòu)分析
本文介紹的數(shù)字氣壓計(jì)采用集成的單片機(jī)控制,測(cè)量時(shí)待測(cè)氣壓被氣壓傳感器轉(zhuǎn)換成可檢測(cè)的電壓輸出,通過(guò)V/F轉(zhuǎn)化器將氣壓傳感器輸出的電壓信號(hào)轉(zhuǎn)化成有特定頻率的脈沖信號(hào),單片機(jī)接收脈沖信號(hào),根據(jù)其單位時(shí)間內(nèi)接收的脈沖數(shù)和電壓頻率的線性關(guān)系式計(jì)算出相應(yīng)的氣壓值,最后氣壓值顯示在LED屏幕上。
在這個(gè)流程中有以下3點(diǎn)需要注意:根據(jù)實(shí)際需求和氣壓傳感器的具體參數(shù)選擇合適的氣壓傳感器芯片;選擇合適的V/F轉(zhuǎn)換器,確保氣壓傳感器輸出的模擬電壓電流信號(hào)轉(zhuǎn)換成能被識(shí)別的數(shù)字信號(hào);設(shè)計(jì)合理的單片機(jī)與各模塊的接口電路。數(shù)字氣壓計(jì)測(cè)量出的氣壓值是在氣壓傳感器的線性范圍內(nèi)的絕對(duì)氣壓值。
2 數(shù)字氣壓計(jì)的硬件實(shí)現(xiàn)
數(shù)字氣壓計(jì)的硬件構(gòu)建需要考慮其穩(wěn)定性、復(fù)雜性、制造成本、維護(hù)成本等多種因素。本節(jié)要對(duì)數(shù)字氣壓計(jì)的硬件設(shè)施的組成進(jìn)行介紹,建立一套穩(wěn)定的、系統(tǒng)的硬件設(shè)施。
2.1 氣壓傳感器
氣壓傳感器在整個(gè)氣壓計(jì)結(jié)構(gòu)中處于核心地位,其選擇需要考慮測(cè)量精度、測(cè)量范圍、溫度變化、絕對(duì)氣壓值等因素。數(shù)字氣壓計(jì)測(cè)量的是絕對(duì)氣壓值,因此需要能測(cè)量絕對(duì)氣壓值的氣壓傳感器;為了簡(jiǎn)化電路設(shè)計(jì),提高氣壓計(jì)的穩(wěn)定性和抗干擾能力,還需要?dú)鈮簜鞲衅骶哂袦囟妊a(bǔ)償。
根據(jù)上述要求,在本數(shù)字氣壓計(jì)中選擇Motorda的MAX4100A型氣壓傳感器。這種氣壓傳感器的溫度補(bǔ)償范圍為-40~125 ℃,承壓范圍為20~1 050 kPa,在這個(gè)壓力范圍內(nèi)有良好的線性,電壓輸出信號(hào)范圍為0.3~4.65 V。本氣壓傳感器可以用于測(cè)量絕對(duì)氣壓值,其輸出關(guān)系具體如下:
Vout=Vs(0.010 59P-0.152 8)±Error
式中:Vs是工作電壓;P是大氣壓值;Vout為輸出電壓。
2.2 V/F轉(zhuǎn)換
待測(cè)氣壓被氣壓傳感器測(cè)出的是電壓電流信號(hào),但是其不能被單片機(jī)識(shí)別,這時(shí)候就需要V/F器件把輸入進(jìn)來(lái)的電壓值轉(zhuǎn)換成可被單片機(jī)識(shí)別的脈沖串。雖然V/F器件本身不是量化器,但是定時(shí)器和計(jì)數(shù)器的存在可以實(shí)現(xiàn)A/D的轉(zhuǎn)換,將模擬電壓信號(hào)轉(zhuǎn)化成抗干擾能力強(qiáng)、可實(shí)現(xiàn)遠(yuǎn)距離傳輸、可直接輸入計(jì)算機(jī)的脈沖串。endprint
本文根據(jù)外圍電路相關(guān)性能標(biāo)準(zhǔn)和實(shí)現(xiàn)的難易程度選取LM331電壓/脈沖轉(zhuǎn)換芯片,這種器件采用的是溫度補(bǔ)償能隙基準(zhǔn)電路,溫漂最大能達(dá)到50 ppm/℃,溫度穩(wěn)定性非常好,而且這種器件輸出的脈沖串兼容性好,可以和任何邏輯形式兼容;LM331可以使用單雙電源供電,電壓允許范圍為5~40 V,最大非線性誤差為0.01%。LM331的壓頻轉(zhuǎn)化關(guān)系為:
fo=KVi
其中,K=[Rs2.09RtCtRL],Rs=Rs1+Rs。
圖1為L(zhǎng)M331外圍電路連接圖。
圖1 LM331外圍電路連接圖
其中R的作用是調(diào)節(jié)電路的轉(zhuǎn)換增益,K的值由設(shè)計(jì)者根據(jù)具體情況具體設(shè)定??紤]到單片機(jī)要使用測(cè)頻率法測(cè)量fo,為保證頻率信號(hào)的測(cè)量精度,在LM331中K=2 000,Rs=28.424 kΩ。對(duì)于不同元件的參數(shù)有著不同的要求,設(shè)計(jì)者要根據(jù)數(shù)字氣壓計(jì)的實(shí)際使用需求來(lái)選擇元件的參數(shù)和測(cè)量精度。需要注意的是在選擇V/F器件時(shí)要選取漏電流小的電容器,使用低通濾波器減小輸出電壓中的干擾脈沖,提高數(shù)據(jù)精度。
2.3 單片機(jī)
在本設(shè)計(jì)中,氣壓計(jì)需要單片機(jī)的P1口和P3口的一部分和中斷源、定時(shí)器、計(jì)數(shù)器各一個(gè)。因此在本設(shè)計(jì)中選取AT89S52控制器,該控制器具有低功耗、高性能的優(yōu)點(diǎn),具有8 KB的FLASH和可編程的存儲(chǔ)器。AT89S52控制器是Atmel公司生產(chǎn)的高密度非易失性存儲(chǔ)器,與其他模塊可以完全兼容。AT89S52具有以下的性能標(biāo)準(zhǔn):8 KB FLASH,256 B RAM,32位的I/O口線,具有2個(gè)數(shù)據(jù)指針、3個(gè)16位計(jì)數(shù)器、1個(gè)看門狗定時(shí)器、1個(gè)6向量2級(jí)中斷結(jié)構(gòu)、片內(nèi)晶振和時(shí)鐘電路。除此之外,AT89S52支持兩種軟件工作模式,可以降到靜態(tài)邏輯操作模式以節(jié)省電量。在空閑模式下,CPU工作停止,RAM、計(jì)數(shù)器、定時(shí)器可以保持工作;當(dāng)發(fā)生掉電現(xiàn)象時(shí),RAM的內(nèi)容被自動(dòng)保存下來(lái),單片機(jī)內(nèi)一切運(yùn)轉(zhuǎn)終止,防止意外的發(fā)生。
該單片機(jī)有40條引腳,按照功能來(lái)分可分為電源和時(shí)鐘引腳、控制引腳、輸入和輸出引腳,其中P1口和P3口對(duì)應(yīng)的輸入和輸出引腳在整個(gè)單片機(jī)結(jié)構(gòu)中處于核心地位。P1口是一組8位準(zhǔn)雙向I/O口,內(nèi)部有上拉電阻,將上拉電阻拉到高電平,P1口就具有輸入口的功能;P3口是一組8位雙向I/O口,內(nèi)部有上拉電阻,其輸出緩沖級(jí)可以驅(qū)動(dòng)4個(gè)TTL邏輯門電路,將上拉電阻拉到高電平,P3口就具有輸入口的功能。不僅如此,P3口還承擔(dān)著許多第二功能。AT89S52控制器可以直接對(duì)LED顯示屏輸出數(shù)據(jù),還有可編程的串行通信口,具有體積小、價(jià)格低、耗能低、性能高等優(yōu)點(diǎn)。
2.4 LED顯示
每一個(gè)LED都是由7段發(fā)光二極管組成的顯示單位,其具有10個(gè)引腳,分別對(duì)應(yīng)發(fā)光二極管的7個(gè)段、1個(gè)小數(shù)點(diǎn)和2個(gè)公共端。發(fā)光二極管有共陽(yáng)極接法和共陰極接法2種,本設(shè)計(jì)需要4個(gè)LED組成一個(gè)顯示單元,并采用動(dòng)態(tài)顯示的方式。由于同時(shí)使用4個(gè)單個(gè)LED構(gòu)成顯示單元的連線比較復(fù)雜,而且給單片機(jī)的端口驅(qū)動(dòng)帶來(lái)很大壓力,這就需要加裝專門的驅(qū)動(dòng)芯片。由于4個(gè)LED是連體的,所以可以使用共陽(yáng)極接法,這樣的顯示單元具有12個(gè)引腳、7個(gè)發(fā)光二極管段、4個(gè)公共端,再加裝1個(gè)三極管驅(qū)動(dòng)電路可以提高數(shù)碼管的亮度。圖2為本設(shè)計(jì)中的LED顯示單元電路圖。
圖2 LED顯示單元電路圖
根據(jù)顯示單元的電路圖可以看出電阻R和Ra太大或太小都會(huì)使LED正常顯示,所以需要選擇適合的電阻以保障LED的亮度??紤]到印制板布線的便捷,可以選擇貼片電阻和排阻的形式節(jié)省版布線的空間。
3 數(shù)字氣壓計(jì)的軟件實(shí)現(xiàn)
對(duì)于單片機(jī)來(lái)說(shuō),其輸入信號(hào)是具有一定頻率的脈沖序列,單片機(jī)的計(jì)數(shù)器可以獲取脈沖序列的頻率并將其換算成具體的氣壓值。所以本節(jié)將著重介紹單片機(jī)的軟件設(shè)計(jì),分析其中的計(jì)算原理。基于單片機(jī)的數(shù)字氣壓計(jì)的程序流程設(shè)計(jì)圖如圖3所示。
圖3 程序流程設(shè)計(jì)圖
具體的信號(hào)轉(zhuǎn)換過(guò)程如下:
首先,待測(cè)氣壓被氣壓傳感器轉(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è)計(jì)的軟件程序設(shè)計(jì)采用C語(yǔ)言編程。C語(yǔ)言是一種編譯型的結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言,其語(yǔ)法結(jié)構(gòu)簡(jiǎn)單,處理功能強(qiáng)大,有編譯效率高、可讀性強(qiáng)、運(yùn)行速度高等多方面優(yōu)點(diǎn),可以讓編程者實(shí)現(xiàn)對(duì)系統(tǒng)硬件的直接操作。運(yùn)用C語(yǔ)言編寫數(shù)字氣壓計(jì)的系統(tǒng)軟件,可以大大縮短單片機(jī)的研發(fā)周期,增強(qiáng)軟件的可讀性,也便于對(duì)軟件內(nèi)容進(jìn)行改進(jìn)和變更,有利于應(yīng)用系統(tǒng)的大規(guī)模開(kāi)發(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è)計(jì)的數(shù)字氣壓計(jì)的可靠性和穩(wěn)定性,還需要對(duì)整體系統(tǒng)進(jìn)行調(diào)試與仿真。使用Keil軟件和Proteus軟件相結(jié)合進(jìn)行仿真。使用Proteus軟件對(duì)系統(tǒng)的總體執(zhí)行效果進(jìn)行調(diào)試,主要調(diào)試單片機(jī)的電源供應(yīng)和電路復(fù)位。單片機(jī)的電源電路、復(fù)位電路和晶振電路是單片機(jī)乃至整個(gè)數(shù)字氣壓計(jì)正常運(yùn)轉(zhuǎn)的基礎(chǔ),要首先保證這幾部分的正常工作。在調(diào)試中,單片機(jī)時(shí)鐘的頻率保持在11.059 2 MHz上。然后是應(yīng)用Proteus軟件對(duì)電氣規(guī)則功能進(jìn)行檢查,檢測(cè)其連接是否正確并得出檢查報(bào)告,一旦發(fā)現(xiàn)原理圖中存在錯(cuò)誤要立刻根據(jù)錯(cuò)誤點(diǎn)進(jìn)行改正。在原理圖的連接沒(méi)有問(wèn)題時(shí),再進(jìn)行器件連接調(diào)試,對(duì)電路中所有器件的名字、參數(shù)、器件之間的連接網(wǎng)絡(luò)進(jìn)行全面檢查,確認(rèn)每一個(gè)器件的正確和之間關(guān)系的合理。之后對(duì)PCB圖進(jìn)行檢查,檢查PCB設(shè)計(jì)、PCB電氣特性和物理特性、印制板和導(dǎo)線圖形檢查。最后對(duì)整個(gè)程序進(jìn)行調(diào)試和仿真。
5 結(jié) 語(yǔ)
本文對(duì)基于單片機(jī)的數(shù)字氣壓計(jì)進(jìn)行分析,在硬件設(shè)施上,需要選擇合適的氣壓傳感器、V/F轉(zhuǎn)換器、單片機(jī)和LED顯示,設(shè)計(jì)合理的硬件電路,并通過(guò)C語(yǔ)言編譯出能將脈沖序列的的頻率轉(zhuǎn)換為可讀取的氣壓值信號(hào)。使用V/F變換信號(hào)和編程克服了測(cè)量中穩(wěn)定性差、精確度低的缺點(diǎn),為設(shè)計(jì)出功能易于擴(kuò)展、可靠而又穩(wěn)定的數(shù)字氣壓計(jì)提供了一種全新的思路。
參考文獻(xiàn)
[1] 曹萬(wàn)丹.基于AVR的智能數(shù)字氣壓計(jì)的優(yōu)化設(shè)計(jì)[D].武漢:武漢科技大學(xué),2009.
[2] 沈紹祥,胡愛(ài)華.基于單片機(jī)控制的數(shù)字氣壓計(jì)設(shè)計(jì)與實(shí)現(xiàn)[J].國(guó)外電子元器件,2004(7):66?69.
[3] 田海燕,賴春強(qiáng),賀思橋.基于MS5534C的數(shù)字氣壓計(jì)設(shè)計(jì)[J]. 兵工自動(dòng)化,2012(9):86?88.
[4] 楊智.低功耗數(shù)字氣壓計(jì)的設(shè)計(jì)[J].沈陽(yáng)航空工業(yè)學(xué)院學(xué)報(bào),2007(3):72?73.
[5] 孫艷玲,劉亞麗.基于MPX4105芯片的數(shù)字氣壓計(jì)設(shè)計(jì)[J].中國(guó)儀器儀表,2007(11):62?65.
[6] 方劉海,文繼國(guó).基于BMP085的精密數(shù)字氣壓計(jì)設(shè)計(jì)[J].電子設(shè)計(jì)工程,2014(24):69?71.endprint