基于LabVIEW和單片機(jī)的虛擬溫度檢測系統(tǒng)設(shè)計(jì)_第1頁
基于LabVIEW和單片機(jī)的虛擬溫度檢測系統(tǒng)設(shè)計(jì)_第2頁
基于LabVIEW和單片機(jī)的虛擬溫度檢測系統(tǒng)設(shè)計(jì)_第3頁
基于LabVIEW和單片機(jī)的虛擬溫度檢測系統(tǒng)設(shè)計(jì)_第4頁
基于LabVIEW和單片機(jī)的虛擬溫度檢測系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 1 引 言1.1 設(shè)計(jì)背景隨著計(jì)算機(jī)技術(shù)尤其是單片微型機(jī)技術(shù)的發(fā)展,人們已越來越多地采用單片機(jī)來對(duì)一些工業(yè)控制系統(tǒng)中如溫度、流量和壓力等參數(shù)進(jìn)行檢測和控制。pc機(jī)具有強(qiáng)大的監(jiān)控和管理功能,而單片機(jī)則具有快速及靈活的控制特點(diǎn),通過pc機(jī)的rs-232串行接口與外部設(shè)備進(jìn)行通信,是許多測控系統(tǒng)中常用的一種通信解決方案。labview是一個(gè)劃時(shí)代的圖形化編程系統(tǒng),應(yīng)用于數(shù)據(jù)采集與控制、信號(hào)分析等方面,它為不熟悉文本語言編程的專業(yè)科技工作者在測控領(lǐng)域建立計(jì)算機(jī)儀器系統(tǒng)虛擬儀器,提供了一個(gè)便捷、輕松的圖形化設(shè)計(jì)環(huán)境。由于其靈活、簡單易用、開發(fā)效率高等特點(diǎn),正逐漸成為科技工作者進(jìn)行儀器應(yīng)用與開發(fā)的得力工

2、具。數(shù)據(jù)采集是開發(fā)過程中一個(gè)重要的環(huán)節(jié),采用以8位單片機(jī)stc89c51作為前端數(shù)據(jù)采集,通過串口進(jìn)行與labview的數(shù)據(jù)通訊,就可實(shí)現(xiàn)低成本、靈活方便、接口簡單的數(shù)據(jù)采集系統(tǒng)1。這對(duì)于許多信號(hào)頻率不是太高的場合,此方案無疑非常便利。本文所介紹的就是這樣一種利用labview 對(duì)stc89c51的數(shù)據(jù)進(jìn)行分析處理,并通過串口實(shí)現(xiàn)二者之間的數(shù)據(jù)交換、經(jīng)濟(jì)實(shí)用的數(shù)據(jù)采集。1.1.1 溫度的研究背景 傳統(tǒng)靠人工控制的溫度、濕度、液位等信號(hào)的測壓力控系統(tǒng),外圍電路比較復(fù)雜,測量精度較低,分辨力不高,需進(jìn)行溫度校準(zhǔn)(非線性校準(zhǔn)、溫度補(bǔ)償、傳感器標(biāo)定等);且它們的體積較大、使用不夠方便,更重要的是參數(shù)的

3、設(shè)定需要有其它儀表的參與,外界設(shè)備多,成本高,因而越來越適應(yīng)不了社會(huì)的要求。在對(duì)多類型、多通道信號(hào)同時(shí)進(jìn)行檢測和控制中,傳統(tǒng)的測控系統(tǒng)能力有限。如何將計(jì)算機(jī)與各種設(shè)施、設(shè)備結(jié)合,簡化人工操作并實(shí)現(xiàn)自動(dòng)控制,滿足社會(huì)的需求,成為一個(gè)很迫切的問題。溫度檢測是現(xiàn)代檢測技術(shù)的重要組成部分,在保證產(chǎn)品質(zhì)量、節(jié)約能源和安全生產(chǎn)等方面起著關(guān)鍵的作用。由單片集成電路構(gòu)成的溫度傳感器的種類越來越多,測量的精度越來越高,響應(yīng)時(shí)間越來越短,因其使用方便、無需變換電路等特點(diǎn)已經(jīng)得到了廣泛的應(yīng)用。隨著社會(huì)的發(fā)展、科技的進(jìn)步以及人們生活水平的逐步提高,各種方便于生產(chǎn)的自動(dòng)控制系統(tǒng)開始進(jìn)入了人們的生活,以單片機(jī)為核心的溫度

4、采集系統(tǒng)就是其中之一。同時(shí)也標(biāo)志了自動(dòng)控制領(lǐng)域成為了數(shù)字化時(shí)代的一員。它實(shí)用性強(qiáng),功能齊全,技術(shù)先進(jìn),使人們相信這是科技進(jìn)步的成果。溫度是工業(yè)控制中主要的被控參數(shù)之一,特別是在冶金、化工、建材、食品、機(jī)械、石油等工業(yè)中,具有舉足重輕的作用2。隨著電子技術(shù)和微型計(jì)算機(jī)的迅速發(fā)展,微機(jī)測量和控制技術(shù)得到了迅速的發(fā)展和廣泛的應(yīng)用。單片機(jī)具有處理能強(qiáng)、運(yùn)行速度快、功耗低等優(yōu)點(diǎn),應(yīng)用在溫度測量與控制方面,控制簡單方便,測量范圍廣,精度較高。1.1.2 國內(nèi)外發(fā)展現(xiàn)狀 虛擬儀器技術(shù)是儀器技術(shù)和計(jì)算機(jī)技術(shù)深層次相結(jié)合的產(chǎn)物。從20世紀(jì)80年代,虛擬儀器逐漸為工業(yè)界和學(xué)術(shù)界所認(rèn)可。經(jīng)過了近20年的發(fā)展,它已經(jīng)

5、成為21世紀(jì)測試技術(shù)和儀器技術(shù)發(fā)展的主要發(fā)現(xiàn)。所謂虛擬儀器(virtuallnstrument,簡稱),就是用戶在通用計(jì)算機(jī)平臺(tái)上,根據(jù)需求定義和設(shè)計(jì)儀器的測試功能,使得使用者在操作這臺(tái)計(jì)算機(jī)時(shí),就像是在操作一臺(tái)他自己設(shè)計(jì)的測試儀器一樣。虛擬儀器概念的出現(xiàn),打破了傳統(tǒng)儀器由廠家定義,用戶無法改變的工作模式,使得用戶可以根據(jù)自己的需求,設(shè)計(jì)自己的儀器系統(tǒng)。在測試系統(tǒng)和儀器設(shè)計(jì)中盡量用軟件代替硬件,充分利用計(jì)算機(jī)技術(shù)宋實(shí)現(xiàn)和擴(kuò)展傳統(tǒng)測試系統(tǒng)與儀器的功能。“軟件就是儀器”是虛擬儀器概念最簡單,也是最本質(zhì)的表述3。vi技術(shù)的發(fā)展和應(yīng)用源于1986年美國ni公司設(shè)計(jì)的labview。這是一種基于圖像的開

6、發(fā)、調(diào)試和程序的集成開發(fā)環(huán)境,實(shí)現(xiàn)了vi的概念。它的出現(xiàn),使用戶可以自己定義儀器,靈活地設(shè)計(jì)儀器系統(tǒng),滿足多樣化的實(shí)際需求。隨著虛擬儀器技術(shù)軟件開發(fā)平臺(tái)及硬件的發(fā)展,基于虛擬儀器的測試系統(tǒng)開發(fā)周期縮短,費(fèi)用降低,測試速度、準(zhǔn)確度及可復(fù)用性提高,且更便于維護(hù)和擴(kuò)展。目前國內(nèi)外這種軟件主要有美國dsp公司的dadisp軟件,和以實(shí)驗(yàn)后數(shù)據(jù)處理分析和表示見長的美國ni公司的系列虛擬儀器開發(fā)平臺(tái)。美國uatech公司的daslab軟件包和惠普公司的vee軟件平臺(tái),它們都是可以搭建虛擬測試系統(tǒng)的軟件平臺(tái),以圖形化編程和界面靈活見長。華中理工大學(xué)的vi98虛擬儀器系統(tǒng)和哈爾濱工業(yè)大學(xué)的儀器王以虛擬的單個(gè)儀

7、器或儀器庫見長。其中,美國ni公司的labview軟件功能最為完善,labview軟件以簡單、直觀的圖形化編程方式、強(qiáng)大的圖形顯示和數(shù)據(jù)處理能力見長,運(yùn)行速度快、開發(fā)周期短、界面靈活是其又一大優(yōu)勢,所以基于labview的虛擬儀器應(yīng)用相當(dāng)廣泛。虛擬儀器作為新興的儀器儀表,用戶可以定義其結(jié)果和功能,構(gòu)建靈活,轉(zhuǎn)變?nèi)菀?,因此它在各個(gè)領(lǐng)域都得到廣泛的應(yīng)用。國內(nèi)單位和院校正加緊步伐研究和開發(fā)自己的虛擬儀器系統(tǒng)。中國國防科技大學(xué)進(jìn)行了虛擬數(shù)字示波器的設(shè)計(jì)研究,其結(jié)果與hp公司的雙通道臺(tái)式數(shù)字存儲(chǔ)示波器hp54603b相比,增加了頻域分析,測試結(jié)果和波形直接打印輸出等功能。東方振動(dòng)和噪聲技術(shù)研究所研制成了

8、inv303/306智能信號(hào)自動(dòng)采集處理分析儀系統(tǒng),并推出了dasp軟件;重慶大學(xué)開發(fā)了虛擬實(shí)時(shí)噪聲倍頻程分析儀,實(shí)現(xiàn)了對(duì)噪聲總聲壓級(jí)、各種記權(quán)聲壓級(jí)及相應(yīng)倍頻程的實(shí)時(shí)測量和分析;清華大學(xué)利用虛擬儀器技術(shù)構(gòu)建汽車發(fā)動(dòng)機(jī)檢測系統(tǒng),用于汽車發(fā)動(dòng)機(jī)出廠前的自動(dòng)檢測。虛擬儀器已經(jīng)在超大規(guī)模集成電路測試,現(xiàn)代家用電器測試以及軍事、航天、工廠測試等領(lǐng)域得到應(yīng)用4。1.2 溫度檢測系統(tǒng)設(shè)計(jì)研究的意義溫度是生產(chǎn)過程和科學(xué)實(shí)驗(yàn)中普遍而且重要的物理參數(shù),隨著社會(huì)的發(fā)展,科技的進(jìn)步,以及測溫儀器在各個(gè)領(lǐng)域的應(yīng)用,智能化已是現(xiàn)代溫度控制系統(tǒng)發(fā)展的主流方向。特別是近年來,溫度控制系統(tǒng)已應(yīng)用到人們生活的各個(gè)方面,但溫度控

9、制一直是一個(gè)未開發(fā)的領(lǐng)域,卻又是與人們息息相關(guān)的一個(gè)實(shí)際問題。針對(duì)這種實(shí)際情況,設(shè)計(jì)一個(gè)溫度檢測系統(tǒng),具有廣泛的應(yīng)用前景與實(shí)際意義。溫度是一個(gè)重要的物理量,它反映了物體冷熱的程度,與自然界中的各種物理和化學(xué)過程相聯(lián)系。在工、農(nóng)業(yè)生產(chǎn)和日常生活中,各個(gè)環(huán)節(jié)都與溫度緊密相聯(lián),溫度的準(zhǔn)確監(jiān)測及控制占據(jù)著極其重要地位。比如,發(fā)電廠鍋爐的溫度必須控制在一定的范圍之內(nèi);許多化學(xué)反應(yīng)的工藝過程必須在適當(dāng)?shù)臏囟认虏拍苷_M(jìn)行等。沒有合適的溫度環(huán)境,許多電子設(shè)備就不能正常工作,糧倉的儲(chǔ)糧就會(huì)變質(zhì)霉?fàn)€,酒類的品質(zhì)就沒有保障。可見,溫度的測量和控制是非常重要的5。1.3 溫度檢測系統(tǒng)的設(shè)計(jì)方案本論文大致包括兩部分,

10、labview部分(上機(jī)部分)和單片機(jī)部分(下機(jī)部分)。上機(jī)部分包括labview人機(jī)交換頁面和溫度采集,顯示和報(bào)警等方面,主要是將采集到得溫度顯示出來,并與設(shè)置的溫度上下限相比較,進(jìn)而啟動(dòng)警報(bào)。下機(jī)部分主要完成溫度的采集。需要通過單片機(jī)驅(qū)動(dòng)溫度傳感器,采集當(dāng)前溫度,并通過串口通信將溫度傳給labview溫度采集平臺(tái)。2 溫度檢測系統(tǒng)設(shè)計(jì)思路2.1 溫度檢測系統(tǒng)工作原理基于labview和ds1820的溫度測試系統(tǒng)可分為上位機(jī)和下位機(jī)兩部分。上位機(jī)采用labview編程,pc通信自帶串行口,和單片機(jī)進(jìn)行串口通信;下位機(jī)選用51系列單片機(jī),c語言編程,單片機(jī)外圍電路將采集到的溫度信息傳給單片機(jī),

11、單片機(jī)再將其傳導(dǎo)上位機(jī)。上位機(jī)部分是利用labview開發(fā)環(huán)境設(shè)計(jì)pc機(jī)上位機(jī)的監(jiān)控界面,上位機(jī)通過串行口與下位機(jī)的單片機(jī)通信,從而實(shí)現(xiàn)對(duì)過程參數(shù)的測量和采集。該溫度檢測系統(tǒng)設(shè)計(jì)簡單,簡化了系統(tǒng)與硬件結(jié)構(gòu),并且易于修改,具有很好的可擴(kuò)展性6。系統(tǒng)組成框圖如圖2.1。 圖2.1 系統(tǒng)組成框圖上位機(jī)主要包括串口通信程序、溫度預(yù)警系統(tǒng)、數(shù)據(jù)存儲(chǔ)。上位機(jī)程序組成框圖入圖2.2所示。圖2.2 上位機(jī)程序組成框圖下機(jī)位則是驅(qū)動(dòng)ds18b20,進(jìn)行數(shù)據(jù)的采集,而后將采集到的數(shù)據(jù)通過串口通信傳給上機(jī)位。2.2 溫度檢測系統(tǒng)的運(yùn)行步驟溫度提?。簭膫鞲衅鞒鰜淼男盘?hào)要經(jīng)過單片機(jī)才能送至計(jì)算機(jī)中進(jìn)行數(shù)據(jù)的采集,所以在

12、本次設(shè)計(jì)中單片機(jī)是不可或缺的一部分,它起到了連接紐帶的作用。從傳感器出來的信號(hào)接到單片機(jī)的輸入口。利用c語言編程,使得單片機(jī)將溫度傳感器的溫度信號(hào)轉(zhuǎn)換為數(shù)字量。溫度采集:將單片機(jī)輸出的溫度進(jìn)行采集,并通過labview的圖表將得到的溫度實(shí)時(shí)顯示在上面,從而發(fā)現(xiàn)規(guī)律以便以后的使用。溫度處理:單片機(jī)傳入到計(jì)算機(jī)里的數(shù)據(jù)就需要進(jìn)行采集處理了。因?yàn)榇藴囟认到y(tǒng)的核心其實(shí)就是利用這一系統(tǒng)能夠根據(jù)溫度的變化給出相應(yīng)的處理,比如說外部溫度比設(shè)定的溫度高,那么我就需要降低溫度,反之,則需要升高溫度,因此對(duì)得到的溫度進(jìn)行相應(yīng)的處理是這個(gè)系統(tǒng)的核心部分。利用labview將采集到的溫度與設(shè)定值進(jìn)行比較,來判斷警報(bào)燈

13、是否顯示警報(bào)。溫度存儲(chǔ):當(dāng)警報(bào)燈發(fā)出警報(bào)時(shí),利用labview的表格將超過預(yù)定值得溫度記錄下來,以便查看該情況是否由于意外造成,還是系統(tǒng)發(fā)生故障7。3 溫度檢測系統(tǒng)硬件設(shè)計(jì)方案溫度檢測系統(tǒng)使用到的硬件有單片機(jī)89c51和溫度傳感器(ds18b20)。3.1 單片機(jī)3.1.1 單片機(jī)概述單片機(jī)也被稱作“單片微型計(jì)算機(jī)”、“微控制器”、“嵌入式微控制器”。單片機(jī)一詞最初是源于“single chip microcomputer”,簡稱scm。隨著scm在技術(shù)上、體系結(jié)構(gòu)上不斷擴(kuò)展其控制功能,單片機(jī)已不能用“單片微型計(jì)算機(jī)”來表達(dá)其內(nèi)涵。國際上逐漸采用“mcu”(micro controller u

14、nit)來代替,形成了單片機(jī)界公認(rèn)的、最終統(tǒng)一的名詞。為了與國際接軌,以后應(yīng)將中文“單片機(jī)”一詞和“mcu”唯一對(duì)應(yīng)解釋。在國內(nèi)因?yàn)椤皢纹瑱C(jī)”一詞已約定俗成,故而可繼續(xù)沿用8。3.1.2 stc89c51單片機(jī)簡介stc89c51是宏晶科技公司生產(chǎn)的低電壓,高性能的cmos8位單片機(jī)片內(nèi)4kbytes的可反復(fù)擦寫的只讀程序存儲(chǔ)器(perom)和128bytes的隨機(jī)存儲(chǔ)器(ram),器件采用atmel公司的高密度、非易失存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)mcs-51指令系統(tǒng),片內(nèi)置通用8位中央處理器(cpu)和flash存儲(chǔ)單元,功能強(qiáng)大。at89c51單片機(jī)可為你提供許多高性價(jià)的應(yīng)用場合,可靈活的應(yīng)用于

15、各種控制領(lǐng)域。圖3.1 單片機(jī)at89c51主要性能參數(shù):與mcs-51產(chǎn)品指令系統(tǒng)的全兼容 4k字節(jié)可重擦寫flash閃速存儲(chǔ)器1000次可擦寫周期全靜態(tài)操作:0hz-24mhz三級(jí)加密程序存儲(chǔ)器1288字節(jié)內(nèi)部ram 32個(gè)可編程i/o口線2個(gè)16位定時(shí)/計(jì)數(shù)器6個(gè)中斷源可編程串行uart通道低功耗空閑和掉電模式 stc89c51提供以下標(biāo)準(zhǔn)功能:4k字節(jié)flash閃速存儲(chǔ)器,128字節(jié)內(nèi)部ram,32個(gè)i/o口線,兩個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)5向量中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)震蕩器及時(shí)鐘電路。同時(shí),at89c51可降至0hz的靜態(tài)邏輯操作,并支持兩種軟件的可選的節(jié)電工作模式。空閑

16、方式停止cpu的工作,但允許ram,定時(shí)/計(jì)數(shù)器,竄行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存ram中的內(nèi)容,但震蕩器停止工作并禁止所有部件工作直到下一個(gè)硬件復(fù)位9。3.2 單片機(jī)的串行通信mcs-51單片機(jī)內(nèi)部有一個(gè)全雙工的串行接收和發(fā)射緩沖器(sbuff),這兩個(gè)在物理上獨(dú)立的接收發(fā)射器,即可以接收也可以發(fā)射數(shù)據(jù),但接收緩沖器只可以讀出不能寫入,而發(fā)送緩沖器只能寫入不能讀出,它們的地址是99h。這個(gè)通信口即可以用于網(wǎng)絡(luò)通信,亦可以實(shí)現(xiàn)串行異步通信,還可以構(gòu)成同步移位寄存器使用。如果在串行口的輸入輸出引腳上加上電平轉(zhuǎn)換器,就可以方便的構(gòu)成標(biāo)準(zhǔn)的rs-232接口10。下面我們分別介紹。3.2.1

17、 基本概念數(shù)據(jù)通信的傳輸方式:常用于數(shù)據(jù)通信的傳輸方式有單工、半雙工、全雙和工方式。a 單工方式:數(shù)據(jù)僅按一個(gè)固定的方向傳送。因?yàn)檫@種傳輸方式的用途有限,常用于串行口的打印數(shù)據(jù)傳輸與簡單系統(tǒng)間的數(shù)據(jù)采集。b 雙工方式:數(shù)據(jù)可以實(shí)現(xiàn)雙向傳送,但不能同時(shí)進(jìn)行,實(shí)際的應(yīng)用采用某種協(xié)議實(shí)現(xiàn)收發(fā)開關(guān)轉(zhuǎn)換。c 全雙工方式:允許雙方同時(shí)進(jìn)行數(shù)據(jù)雙向傳送,但一般全雙工電路的線路和設(shè)備比較復(fù)雜。d 多工方式:以上三種傳輸方式都是同一線路傳輸一種頻率信號(hào),為了充分的利用線路資源,可通過使用多路復(fù)用器或多路集線器,采用頻分、時(shí)分、或碼分復(fù)用技術(shù),即可實(shí)現(xiàn)在同一線路上資源共享功能,我們稱之為多工傳輸方式。串行通信的兩

18、種通信形式a. 異步通信 在這種通信方式中,接收器和發(fā)射器有各自的時(shí)鐘,他們的工作是非同步的,異步通信用一幀來表示一個(gè)字符,其內(nèi)容如下:一個(gè)起始位,緊接著是若干個(gè)數(shù)據(jù)位,圖 是傳輸45h的數(shù)據(jù)格式。b. 同步通信 同步通信格式中,發(fā)送器和接收器由同一個(gè)時(shí)鐘源控制,為了克服在異步傳輸中,每傳輸一幀字符都必須加上起始位和停止位,占用了傳輸時(shí)間,在要求傳送的數(shù)據(jù)量較大的c. 串行數(shù)據(jù)通信的傳輸速率:串行數(shù)據(jù)傳輸率有兩個(gè)概念,既美秒傳送的位數(shù)bps(bit per second)和每秒符號(hào)數(shù)-波特率(band rate),在具有調(diào)治解調(diào)器的通信中,波特率與調(diào)治速率有關(guān)。3.2.2 mcs-51的串行和

19、控制寄存器 串行口和控制寄存器mcs-51單片機(jī)串行口專用寄存器結(jié)構(gòu)如下。sbuf為串行口的收發(fā)緩沖器,它是一個(gè)可尋址的專用寄存器,其中包含了接收器和發(fā)射器寄存器,可以實(shí)現(xiàn)全雙工通信。但這兩個(gè)寄存器具有同一地址(99h)。mcs-51的串行數(shù)據(jù)傳輸很簡單,只要向緩沖器寫入數(shù)據(jù)就可發(fā)送數(shù)據(jù)。而從接收緩沖器讀出數(shù)據(jù)既可接收數(shù)據(jù)。此外,接收緩沖器前還加上一級(jí)輸入移位寄存器,mcs-51這種結(jié)構(gòu)的目的在于接收數(shù)據(jù)時(shí)避免發(fā)生重疊現(xiàn)象,文獻(xiàn)稱這種結(jié)構(gòu)為雙緩沖結(jié)構(gòu)。而發(fā)送數(shù)據(jù)就不需要這樣設(shè)計(jì),因?yàn)榘l(fā)送時(shí),cpu是主動(dòng)的,不可能出現(xiàn)這種情況。a:串行通信寄存器在上一節(jié)我們已經(jīng)分析了scon控制寄

20、存器,它是一個(gè)可尋址的專用寄存器,用于串行數(shù)據(jù)通信的控制,單元地址是98h,其結(jié)構(gòu)格式如下:表3.1 scon寄存器結(jié)構(gòu)表1 寄存器scon結(jié)構(gòu)scond7d6d5d4d3d2d1d0sm0sm1sm2rentb8rb8tiri位地址9fh9eh8dh9ch9bh9ah99h98h下面我們對(duì)個(gè)控制位功能介紹如下:(1)sm0、sm1:串行口工作方式控制位 smo sm1 工作方式 功能說明 0 0 方式0 移位寄存器方式(用于i/o擴(kuò)展) 0 1 方式1 8位uart,波特率可變(t1溢出率/ n) 1 0 方式2 9 位uart,波特率為fosc/64或fosc/321 1 方式3 9位ua

21、rt,波特率可變(t1溢出率/ n) (2)sm2:多機(jī)通信控制位多機(jī)通信是工作方式2和方式3,sm2位主要用于方式2和方式3。接收狀態(tài),當(dāng)串行口工作方式2或3,以及sm2=1時(shí),只有當(dāng)接收到第9位數(shù)據(jù)(rb8)為1時(shí),才把接收的前8位數(shù)據(jù)送入sbuf,且置位ri發(fā)出中斷申請(qǐng),否則會(huì)將收到的數(shù)據(jù)放棄。當(dāng)sm2=0時(shí),只有在接收到有效停止位時(shí)才啟動(dòng)ri,若沒接收到有效停止位,則ri清“0”。在方式0中sm2應(yīng)該為“0”。ren:允許接收控制位。由軟件置“1”時(shí),允許接收;軟件置“0”時(shí),不許接收。tb8:在方式3和方式3中要發(fā)送的第9位數(shù)據(jù),需要時(shí)用軟件置位和清零。tb8:在方式2和方式3中是接

22、收到的第9位數(shù)據(jù)。在方式1時(shí),如sm2=0,rb8接收到的停止位。在方式0中,不使用rb8。ti:發(fā)送中斷標(biāo)志。由硬件在方式0發(fā)送完第8位時(shí)置“1”,或在其它方式中串行發(fā)送停止位的開始時(shí)置“1”。必須由軟件清“0”。ri:接收中斷標(biāo)志。由硬件在方式0串行發(fā)射第8位結(jié)束時(shí)置“1”b:特殊功能寄存器pconpcon:主要是是chmos型單片機(jī)的電源控制而設(shè)置的專用寄存器,單元地址為87h其機(jī)構(gòu)格式如下表:表3.2 特殊功能寄存器pcon pcond7d6d5d4d3d2d1d0位符號(hào)smodgf1gf0pdidl在chmos型單片機(jī)中,除smod位外其它位均為虛設(shè)的,smod是串行波特率倍增位,當(dāng)

23、smod=1時(shí)串行口波特率加倍,系統(tǒng)復(fù)位默認(rèn)為smod=0。c:中斷允許寄存器ie中斷允許寄存器這里重述一下對(duì)串行口有影響的位es。es為串行中斷允許控制位,es=1允許串行中斷,es=0,禁止串行中斷。 串行口工作方式串行口具有4種工作方式,我從應(yīng)用和畢業(yè)設(shè)計(jì)的角度,重點(diǎn)討論方式1發(fā)送。串行口定義為方式1時(shí)傳送1幀數(shù)據(jù)為10位,其中1位起始地址、8位數(shù)據(jù)位(先低位后高位)、1位停止位方式1的波特率可變,波特率=(t1的溢出率)11.12.13。表3.3 中斷允許寄存器符號(hào)eaeset1ex1etoex0位地址afhaehadhachabhaaha8ha8h3.3 ds18b20

24、溫度傳感器簡介3.3.1 溫度傳感器的歷史及簡介溫度的測量是從金屬(物質(zhì))的熱脹冷縮開始。水銀溫度計(jì)至今仍是各種溫度測量的計(jì)量標(biāo)準(zhǔn)。可是它的缺點(diǎn)是只能近距離觀測,而且水銀有毒,玻璃管易碎。代替水銀的有酒精溫度計(jì)和金屬簧片溫度計(jì),它們雖然沒有毒性,但測量精度很低,只能作為一個(gè)概略指示。不過在居民住宅中使用已可滿足要求。在工業(yè)生產(chǎn)和實(shí)驗(yàn)研究中為了配合遠(yuǎn)傳儀表指示,出現(xiàn)了許多不同的溫度檢測方法,常用的有電阻式、熱電偶式、pn結(jié)型、輻射型、光纖式及石英諧振型等。它們都是基于溫度變化引起其物理參數(shù)(如電阻值,熱電勢等)的變化的原理。隨著大規(guī)模集成電路工藝的提高,出現(xiàn)了多種集成的數(shù)字化溫度傳感器14。3.

25、3.2 ds18b20的工作原理ds18b20工作時(shí)序根據(jù)ds18b20的通訊協(xié)議,主機(jī)控制ds18b20完成溫度轉(zhuǎn)換必須經(jīng)過三個(gè)步驟:1. 每一次讀寫之前都必須要對(duì)ds18b20進(jìn)行復(fù)位;2. 復(fù)位成功后發(fā)送一條rom指令;3. 最后發(fā)送ram指令,這樣才能對(duì)ds18b20進(jìn)行預(yù)定的操作。復(fù)位要求主cpu將數(shù)據(jù)線下拉500微秒,然后釋放,ds18b20收到信號(hào)后等待1560微秒左右后發(fā)出60240微秒的存在低脈沖,主cpu收到此信號(hào)表示復(fù)位成功。其工作時(shí)序包括初始化時(shí)序、寫時(shí)序和讀時(shí)序,具體工作方法如圖3.2,3.3,3.4所示15。(1) 初始化時(shí)序圖3.2 初始化時(shí)序總線上

26、的所有傳輸過程都是以初始化開始的,主機(jī)響應(yīng)應(yīng)答脈沖。應(yīng)答脈沖使主機(jī)知道,總線上有從機(jī)設(shè)備,且準(zhǔn)備就緒。主機(jī)輸出低電平,保持低電平時(shí)間至少480us,以產(chǎn)生復(fù)位脈沖。接著主機(jī)釋放總線,4.7k上拉電阻將總線拉高,延時(shí)1560us,并進(jìn)入接受模式,以產(chǎn)生低電平應(yīng)答脈沖,若為低電平,再延時(shí)480us。(2) 寫時(shí)序圖3.3 寫時(shí)序 寫時(shí)序包括寫0時(shí)序和寫1時(shí)序。所有寫時(shí)序至少需要60us,且在2次獨(dú)立的寫時(shí)序之間至少需要1us的恢復(fù)時(shí)間,都是以總線拉低開始。寫1時(shí)序,主機(jī)輸出低電平,延時(shí)2us,然后釋放總線,延時(shí)60us。寫0時(shí)序,主機(jī)輸出低電平,延時(shí)60us,然后釋放總線,延時(shí)2us。(3) 讀時(shí)

27、序圖3.4 讀時(shí)序總線器件僅在主機(jī)發(fā)出讀時(shí)序是,才向主機(jī)傳輸數(shù)據(jù),所以,在主機(jī)發(fā)出讀數(shù)據(jù)命令后,必須馬上產(chǎn)生讀時(shí)序,以便從機(jī)能夠傳輸數(shù)據(jù)。所有讀時(shí)序至少需要60us,且在2次獨(dú)立的讀時(shí)序之間至少需要1us的恢復(fù)時(shí)間。每個(gè)讀時(shí)序都由主機(jī)發(fā)起,至少拉低總線1us。主機(jī)在讀時(shí)序期間必須釋放總線,并且在時(shí)序起始后的15us之內(nèi)采樣總線狀態(tài)。主機(jī)輸出低電平延時(shí)2us,然后主機(jī)轉(zhuǎn)入輸入模式延時(shí)12us,然后讀取總線當(dāng)前電平,然后延時(shí)50us。 rom操作命令當(dāng)主機(jī)收到dsl8b20 的響應(yīng)信號(hào)后,便可以發(fā)出rom 操作命令之一,這些命令如表3.4:rom操作命令。表3.4:rom操作命令。指

28、令約定代碼功能讀rom33h讀ds18b20 rom中的編碼符合rom55h發(fā)出此命令之后,接著發(fā)出64位rom編碼,訪問單線總線上與該編碼相對(duì)應(yīng)的ds18b20 使之作出響應(yīng),為下一步對(duì)該ds18b20的讀寫作準(zhǔn)備搜索rom0f0h用于確定掛接在同一總線上ds18b20的個(gè)數(shù)和識(shí)別64位rom地址,為操作各器件作好準(zhǔn)備跳過rom0cch忽略64位rom地址,直接向ds18b20發(fā)溫度變換命令,適用于單片工作告警搜索命令0ech執(zhí)行后,只有溫度超過設(shè)定值上限或者下限的片子才做出響應(yīng)溫度變換44h啟動(dòng)ds18b20進(jìn)行溫度轉(zhuǎn)換,轉(zhuǎn)換時(shí)間最長為500ms,結(jié)果存入內(nèi)部9字節(jié)ram中讀暫存器0beh

29、讀內(nèi)部ram中9字節(jié)的內(nèi)容寫暫存器4eh發(fā)出向內(nèi)部ram的第3,4字節(jié)寫上、下限溫度數(shù)據(jù)命令,緊跟讀命令之后,是傳送兩字節(jié)的數(shù)據(jù)復(fù)制暫存器48h將e2pram中第3,4字節(jié)內(nèi)容復(fù)制到e2pram中重調(diào)2pram0bbh將e2pram中內(nèi)容恢復(fù)到ram中的第3,4字節(jié)讀供電方式0b4h讀ds18b20的供電模式,寄生供電時(shí)ds18b20發(fā)送“0”,外接電源供電ds18b20發(fā)送“1”3.3.3 ds18b20的測溫原理 ds18b20的測溫原理每一片dsl8b20在其rom中都存有其唯一的48位序列號(hào),在出廠前已寫入片內(nèi)rom 中。主機(jī)在進(jìn)入操作程序前必須用讀rom(33h)命令將

30、該dsl8b20的序列號(hào)讀出。程序可以先跳過rom,啟動(dòng)所有dsl8b20進(jìn)行溫度變換,之后通過匹配rom,再逐一地讀回每個(gè)dsl8b20的溫度數(shù)據(jù)。ds18b20的測溫轉(zhuǎn)換時(shí)間表如圖2.4所示,表24 ds18b20溫度轉(zhuǎn)換時(shí)間表r1r0分辨率/位溫度最大轉(zhuǎn)向時(shí)間/ms00993.750110187.510113751112750圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器2的脈沖輸入,圖中還隱含著計(jì)數(shù)門,當(dāng)計(jì)數(shù)門打開時(shí),ds18b20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖后進(jìn)行計(jì)

31、數(shù),進(jìn)而完成溫度測量。計(jì)數(shù)門的開啟時(shí)間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55 所對(duì)應(yīng)的基數(shù)分別置入減法計(jì)數(shù)器1和溫度寄存器中,減法計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55 所對(duì)應(yīng)的一個(gè)基數(shù)值。減法計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)減法計(jì)數(shù)器1的預(yù)置值減到0時(shí)溫度寄存器的值將加1,減法計(jì)數(shù)器1的預(yù)置將重新被裝入,減法計(jì)數(shù)器1重新開始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測溫度。圖2.3中的斜率累加器用于補(bǔ)償和修正測溫過程中的非線性,其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)門仍未關(guān)

32、閉就重復(fù)上述過程,直至溫度寄存器值達(dá)到被測溫度值. 另外,由于ds18b20單線通信功能是分時(shí)完成的,他有嚴(yán)格的時(shí)隙概念,因此讀寫時(shí)序很重要。系統(tǒng)對(duì)ds18b20的各種操作必須按協(xié)議進(jìn)行。操作協(xié)議為:初始化ds18b20(發(fā)復(fù)位脈沖)發(fā)rom功能命令發(fā)存儲(chǔ)器操作命令處理數(shù)據(jù)。減法計(jì)數(shù)器斜坡累加器減到0減法計(jì)數(shù)器預(yù) 置低溫度系數(shù)振 蕩 器高溫度系數(shù)振 蕩 器計(jì)數(shù)比較器預(yù) 置溫度寄存器減到0圖34 測溫原理內(nèi)部裝置 ds18b20的測溫流程初始ds18b20跳過rom匹配溫度變換延時(shí)1s跳過rom匹配讀暫存器轉(zhuǎn)換成數(shù)碼圖3.5 ds18b20測溫流程3.4 溫度測試系統(tǒng)工作流程圖系統(tǒng)

33、程序主要包括主程序,讀出溫度子程序。1)主程序主程序的主要功能是負(fù)責(zé)經(jīng)子程序傳來的溫度送入緩沖區(qū)中,并構(gòu)建起與電腦的串口通信,將溫度傳送給電腦。采集到的溫度每一分鐘發(fā)送一次,其程序流程見圖5.1所示。發(fā)送到串口圖5.1 主程序流程圖2)讀出溫度子程序讀出溫度子程序的主要功能是讀出ram中的9字節(jié),在讀出時(shí)需進(jìn)行crc校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫。此程序中包括ds18b20的初始化,讀取ds18b20采集到得溫度,校驗(yàn)溫度,設(shè)置溫度采集的上下限(保護(hù)ds18b20)。ds18b20的各個(gè)命令對(duì)時(shí)序的要求特別嚴(yán)格,所以必須按照所要求的時(shí)序才能達(dá)到預(yù)期的目的,同時(shí),要注意讀進(jìn)來的是高位在后低

34、位在前,共有12位數(shù),小數(shù)4位,整數(shù)7位,還有一位符號(hào)位。本次只讀取溫度的整數(shù)部分。并且在采集溫度過程中ds18b20的每秒采集一次。ds18b20初始化跳過rom匹配命令寫入子程序溫度轉(zhuǎn)換命令寫入子程序校驗(yàn)溫度設(shè)置溫度上限 圖5.2 讀出溫度子程序3)全部程序。在程序中使用到了大量輔助的程序,以保證程序的正確運(yùn)行,如延時(shí)函數(shù)就有三種不同的形式出現(xiàn),在此就不具體陳述。主程序見附錄i,讀取溫度程序見附錄;4 溫度測試系統(tǒng)程序設(shè)計(jì)4.1 虛擬儀器national instruments(美國國家儀器有限公司)在業(yè)界率先提出“虛擬儀器”(virtual instrumentation)概念至今已有2

35、0年了。在這20年里,ni逐步改變了全世界工程師和科學(xué)家們對(duì)于測量和自動(dòng)化的方法。今天,全世界的工程師和科學(xué)家們正在成千上萬個(gè)應(yīng)用系統(tǒng)中使用“虛擬儀器技術(shù)”,從而達(dá)到縮短開發(fā)時(shí)間、提高產(chǎn)品品質(zhì)并降低生產(chǎn)成本的共同目的。同時(shí),虛擬儀器技術(shù)也正逐漸趨于成熟和完善的境界16。 虛擬儀器系統(tǒng)的基本構(gòu)架包括功能強(qiáng)大的軟件、模塊化的測量硬件及標(biāo)準(zhǔn)商業(yè)科技(如個(gè)人計(jì)算機(jī)和網(wǎng)際網(wǎng)絡(luò))。虛擬儀器技術(shù)包含了專為控制應(yīng)用設(shè)計(jì)的軟件及針對(duì)不同頻率與精確度范圍的通用測量硬件,因此,工程師可以在測試或控制應(yīng)用中自行定義測量功能。這些軟硬件工程工具能緊密地與開放式的商業(yè)計(jì)算機(jī)平臺(tái)整合使用,充分利用不斷進(jìn)步的計(jì)算機(jī)科技以獲取

36、高效率、高性能及低成本的利益。同時(shí),其應(yīng)用范圍極其廣泛,從汽車到消費(fèi)電子,從石油到燃料能源,橫跨數(shù)百個(gè)工業(yè)領(lǐng)域。 隨著莫爾定律的持續(xù)發(fā)展及個(gè)人計(jì)算機(jī)技術(shù)的日新月異,虛擬儀器系統(tǒng)的功能也越來越強(qiáng)大。個(gè)人計(jì)算機(jī)的內(nèi)存、影像處理、輸入輸出及中央處理單元的性能每年都在提高,而這些技術(shù)都有利于“虛擬”的測量和自動(dòng)化系統(tǒng)的發(fā)展。從15年前個(gè)人計(jì)算機(jī)的出現(xiàn)至今,其性能已提高了1000倍,而其價(jià)格卻不斷地下降,因此,這些功能強(qiáng)大、性能可靠、成本低廉的計(jì)算機(jī)系統(tǒng)被廣泛應(yīng)用到實(shí)驗(yàn)室的產(chǎn)品研發(fā)及生產(chǎn)線上產(chǎn)品的制程中。個(gè)人計(jì)算機(jī)的不斷發(fā)展進(jìn)步不僅使得虛擬儀器系統(tǒng)成為一種低成本、高彈性的解決方案,更大大提升了企業(yè)生產(chǎn)率

37、,而這是傳統(tǒng)獨(dú)立的儀器設(shè)備所無法比擬的優(yōu)勢。 4.2 labview的開發(fā)虛擬儀器實(shí)際上是一個(gè)按照儀器需求組織的數(shù)據(jù)采集系統(tǒng)。虛擬儀器的研究中涉及的基礎(chǔ)理論主要有計(jì)算機(jī)數(shù)據(jù)采集和數(shù)字信號(hào)處理。目前在這一領(lǐng)域內(nèi),使用較為廣泛的計(jì)算機(jī)語言是美國ni公司的labview17。虛擬儀器的起源可以追溯到20世紀(jì)70年代,那時(shí)計(jì)算機(jī)測控系統(tǒng)在國防、航天等領(lǐng)域已經(jīng)有了相當(dāng)?shù)陌l(fā)展。pc機(jī)出現(xiàn)以后,儀器級(jí)的計(jì)算機(jī)化成為可能,甚至在microsoft公司的windows誕生之前,ni公司已經(jīng)在macintosh計(jì)算機(jī)上推出了labview2.0以前的版本。對(duì)虛擬儀器和labview長期、系統(tǒng)、有效的研究開發(fā)使得該

38、公司成為業(yè)界公認(rèn)的權(quán)威。目前l(fā)abview的最新版本為labview8.6,labview 8.6為多線程功能添加了更多特性,這種特性在1998年的版本5中被初次引入。使用labview軟件,用戶可以借助于它提供的軟件環(huán)境,該環(huán)境由于其數(shù)據(jù)流編程特性、labview real-time工具對(duì)嵌入式平臺(tái)開發(fā)的多核支持,以及自上而下的為多核而設(shè)計(jì)的軟件層次,是進(jìn)行并行編程的首選。labview(laboratory virtual instrument engineering workbench)是一種用圖標(biāo)代替文本行創(chuàng)建應(yīng)用程序的圖形化編程語言。傳統(tǒng)文本編程語言根據(jù)語句和指令的先后順序決定程序的

39、執(zhí)行順序,而labview則采用數(shù)據(jù)流編程方式,程序框圖中節(jié)點(diǎn)之間的數(shù)據(jù)決定了程序的執(zhí)行順序。他用圖標(biāo)表示函數(shù),用連線雕飾數(shù)據(jù)流向18。labview提供很多外觀與傳統(tǒng)儀器(如示波器,萬用表)類似的控件,可用來方便地創(chuàng)建用戶界面。用戶界面在labview中稱為前面板。使用圖標(biāo)和連線,可以通過編程對(duì)前面板上的對(duì)象進(jìn)行控制。這就是圖形化源代碼,又稱g(graphisc)代碼。labview的圖形化源代碼在某種程度上類似于數(shù)據(jù)流程圖,因此又被稱作程序框圖代碼。前面板上的每一個(gè)控件對(duì)應(yīng)程序框圖中的一個(gè)對(duì)象,當(dāng)數(shù)據(jù)“流向”該控件時(shí),控件就會(huì)根據(jù)自己的特性以一定的方式顯示數(shù)據(jù)例如開關(guān),數(shù)字和圖形。labv

40、iew程序被成為vi(virtual instrument),即虛擬儀器,這是因?yàn)樗暮芏嘟缑婵丶c操作都模擬了現(xiàn)實(shí)世界中的儀器,例如示波器與萬用表。labview的核心概念就是“軟件即是儀器”,即虛擬儀器的概念。labview還包含了大量的工具與函數(shù)用于數(shù)據(jù)采集、分析、顯示與存儲(chǔ)。這些工具都是向?qū)降墓ぞ?,用戶只需要一步步按照提示就可以?shí)現(xiàn)與儀器的連接和參數(shù)的設(shè)置。而程序員也不用去記憶這些大量的函數(shù),因?yàn)檫@些函數(shù)都以圖標(biāo)與名稱的形式存在于一個(gè)小小的函數(shù)面板上,當(dāng)然要用到某個(gè)函數(shù)時(shí)把它從函數(shù)面板上拖到程序框圖中就可以了。這一切都是圖形化帶來的好處19.20。4.2.1 labview的作用由于

41、labview可以用來創(chuàng)建通用的應(yīng)用程序,因此被成為一種通用的編程語言。但是它在測試、測量和自動(dòng)化等領(lǐng)域具有更大的優(yōu)勢,因?yàn)閘abview提供了大量的工具與函數(shù)用于數(shù)據(jù)采集、分析、顯示和存儲(chǔ)。同時(shí)他還提供了大量常用于自動(dòng)化測試測量領(lǐng)域的圖形控件。這使得用戶可以在數(shù)分鐘內(nèi)完成一套完整的從儀器連接、數(shù)據(jù)采集到分析、現(xiàn)實(shí)和存儲(chǔ)的自動(dòng)化測試測量系統(tǒng)。因此它被廣泛的應(yīng)用于汽車、通信、航空、半導(dǎo)體、電子設(shè)計(jì)生產(chǎn)、過程控制和生物醫(yī)學(xué)等各個(gè)領(lǐng)域,涵蓋了從研發(fā)、測試、生產(chǎn)到服務(wù)的產(chǎn)品開發(fā)所有階段。今天歐美的許多高校非計(jì)算機(jī)專業(yè)的學(xué)生選修g語言并用它開發(fā)應(yīng)用的軟件的人已經(jīng)超過c等文本語言。近年來我國高校g語言教學(xué)

42、實(shí)踐正在迅速開展。labview不僅可以用來快速搭建小型自動(dòng)化測試測量系統(tǒng),還可以用來開發(fā)大型的分布式數(shù)據(jù)采集控制系統(tǒng)。在美國lawrence livermore國家實(shí)驗(yàn)室,一共花費(fèi)了2000萬美金的極為復(fù)雜的飛秒激光切割系統(tǒng)就是基于labview開發(fā)的。該系統(tǒng)中,4臺(tái)windows nt 工作站用網(wǎng)絡(luò)連接起來,labview用來給激光提供測量、控制和自動(dòng)程序,同時(shí)作為半熟練操作者的高層用戶界面。幾乎安裝了所有類別的i/o硬件:daq、gpib、串口、遠(yuǎn)程控制scxi、vme/vxi以及imaq成像。由于這個(gè)項(xiàng)目的極端重要性,因此本項(xiàng)目采取了正式的軟件質(zhì)量保證過程。軟件開發(fā)總共用了4個(gè)年度,創(chuàng)

43、建了約600個(gè)vi。4.2.2 labview的優(yōu)點(diǎn)選擇labview開發(fā)測試和測量用程序的一大決定性因素是其開發(fā)速度。通常,使用labview開發(fā)應(yīng)用系統(tǒng)的速度比使用其他編程語言快410倍。這一驚人速度背后的原因在于labview易用易學(xué),它所提供的工具使創(chuàng)建測試和測量應(yīng)用變得更為輕松21。labview的具體優(yōu)勢主要體現(xiàn)在以下幾個(gè)方面。(1)提供了豐富的圖形化控件,并采用圖形化的編程方法,徹底把工程師們從負(fù)責(zé)苦澀的文本編程中解放出來。(2)內(nèi)建的編譯器在用戶編寫程序的同時(shí)就在后臺(tái)自動(dòng)完成了編譯。因此用戶在編寫程序的過程中如果有錯(cuò)誤,它會(huì)被立即顯示出來。(3)由于采用數(shù)據(jù)流模型,它實(shí)現(xiàn)了自動(dòng)

44、的多線程,從而能充分利用處理器尤其是多處理器的處理能力。(4)通過dll、cin節(jié)點(diǎn)、activex、.net或matlab腳本節(jié)點(diǎn)等技術(shù),可以輕松實(shí)現(xiàn)labview與其它編程語言混合編程。(5)通過應(yīng)用程序生成器可以輕松地發(fā)布exe、動(dòng)態(tài)鏈接庫或安裝包。(6)labview提供了大量的驅(qū)動(dòng)與專用工具,幾乎能與任何借口硬件輕松連接。(7)labview內(nèi)建了大量600多個(gè)分析函數(shù),用于數(shù)據(jù)分析和信號(hào)處理。(8)ni同時(shí)提供了豐富的附加模塊,用戶與擴(kuò)展labview在不同領(lǐng)域中的應(yīng)用,例如實(shí)時(shí)模塊、pda模塊、fpga模塊、數(shù)據(jù)記錄與監(jiān)控(dsc)模塊、機(jī)器視覺模塊與觸摸屏模塊。4.2.3 la

45、bview的起源與發(fā)展歷程早在20世紀(jì)80年代初引入計(jì)算機(jī)之前,幾乎所有使用可編程一起的實(shí)驗(yàn)室都通過專門的儀器控制器用于控制他們的測試系統(tǒng)。這些價(jià)格昂貴而且功能單一的控制器通過一個(gè)必備的端口控制使用ieee-488總線(即gpib總線)的儀器。到了1983年,隨著個(gè)人計(jì)算機(jī)的出現(xiàn),national instruments公司成為個(gè)人計(jì)算機(jī)gpib硬件接口的主要供貨商。然而當(dāng)時(shí)用于控制儀器的軟件變現(xiàn)不太好,當(dāng)幾乎100%的儀器控制程序都是用basic語言開發(fā)的。雖然basic有一定的優(yōu)勢,例如簡單、可讀性強(qiáng)的指令集以及可互交功能等,但是它存在一個(gè)根本性的問題:像其他文本編程語言一樣,如果要通過計(jì)

46、算機(jī)控制儀器,無論是科學(xué)家、工程師還是技術(shù)人員都必須懂的編程。他們必須把他們的應(yīng)用軟件和儀器使用的知識(shí)轉(zhuǎn)化為文本,而這種過程多半是繁重而單調(diào)乏味的,尤其是對(duì)那些從來沒有編程經(jīng)驗(yàn)的人來說。national instruments公司有一個(gè)專門致力于開發(fā)出一種用于開發(fā)儀器軟件程序的工具,以減輕儀器編程工作壓在工程師和科學(xué)家身上的負(fù)擔(dān),但是他們當(dāng)時(shí)并沒有一個(gè)具體明確的概念。當(dāng)1984年蘋果公司推出了macintosh計(jì)算機(jī)之后,情況出現(xiàn)了重要的轉(zhuǎn)機(jī)。他們看到了這臺(tái)小機(jī)器上的圖形化特性后,就知道“圖形化”就是他們今后要走的道路。因?yàn)橄鄬?duì)于輸入一串串的命令進(jìn)行操作,人們使用鼠標(biāo)和圖形化界面時(shí)所發(fā)揮的創(chuàng)造

47、力和高效率是前所未有的。圖形化前面板是人與測量程序互交的最佳途徑。前面板與實(shí)際儀器的面板十分相似,實(shí)際上,這些程序就是虛擬儀器。1985年6月他們開始編寫程序代碼,到10月完成了原型。1986年正式宣布了labview的誕生,同時(shí)ni的名字首次出現(xiàn)在雜志封面上。不過他們低估了后期調(diào)試所耗費(fèi)的大量時(shí)間,因此直到1986年10月labview 1.0才正式發(fā)布。自labview 1.0發(fā)布的20多年以來,labview從來沒有停止過創(chuàng)新的步伐。不斷地改進(jìn)、更新與擴(kuò)展,使labview牢牢占據(jù)了自動(dòng)化測試、測量領(lǐng)域的領(lǐng)先地位。自labview 1.0發(fā)布后,1992年ni公司又推出了用于sun和pc

48、的labview 2.0版本,此后,每一個(gè)重大版本的發(fā)布都包括里程碑意義的特性和功能上的飛躍。在1998年發(fā)布的labview 5.0中已經(jīng)提供了多線程支持功能,為現(xiàn)在的多處理器技術(shù)打下基礎(chǔ);labview的首個(gè)可以發(fā)布到實(shí)時(shí)os的版本于1999年誕生;2003年labview 7 express引入了波形數(shù)據(jù)類型,以及一些互交性更強(qiáng)的、基于配置的函數(shù);2005年推出了labview 8實(shí)現(xiàn)了分布式智能22。4.3 串口程序編譯labview提供了功能強(qiáng)大的visa庫。visa(virtual instrument software architecture虛擬儀器軟件構(gòu)架),是用于儀器編程的

49、標(biāo)準(zhǔn)i/o函數(shù)庫及其相關(guān)規(guī)范的總稱。visa庫駐留于計(jì)算機(jī)系統(tǒng)中,完成計(jì)算機(jī)與儀器之間的連接,用以實(shí)現(xiàn)對(duì)儀器的程序控制,其實(shí)質(zhì)是用于虛擬儀器系統(tǒng)的標(biāo)準(zhǔn)的api。visa本身不具備編程能力,它是一個(gè)高層api,通過調(diào)用底層驅(qū)動(dòng)程序來實(shí)現(xiàn)對(duì)儀器的編程,其層次如圖4.2(a)所示。visa是采用vpp標(biāo)準(zhǔn)的i/o接口軟件,其軟件結(jié)構(gòu)應(yīng)包含三部分,如圖4.2(b)所示6.27.28。 (a)visa內(nèi)部機(jī)制 (b)虛擬儀器的軟件體系結(jié)構(gòu)圖4.2 visa內(nèi)部機(jī)制與虛擬儀器軟件體系結(jié)構(gòu)與其它現(xiàn)存的i/o接口軟件相比,visa的i/o控制功能具有如下幾個(gè)特點(diǎn):適用于各種儀器類型如vxi

50、儀器、gpib儀器、rs-232 串行儀器、消息基器件、寄存器器件、存儲(chǔ)器器件等儀器);適用于各種硬件接口類型;適用于單、多處理器結(jié)構(gòu)或分布式網(wǎng)絡(luò)結(jié)構(gòu);適用于多種網(wǎng)絡(luò)機(jī)制。visa的i/o的軟件庫的源程序是唯一的,其與操作系統(tǒng)及編程語言無關(guān),只是提供了標(biāo)準(zhǔn)形式的api文件作為系統(tǒng)的輸出。visa庫中的串口函數(shù):本文用到的主要的串口通訊函數(shù)調(diào)用路徑為:函數(shù) 儀器i/ovisa串口。(1)visa 串口配置(如圖4.3所示)。圖4.3 visa串口配置圖標(biāo)及其端口該節(jié)點(diǎn)主要用于將visa資源名稱指定的串口按特定設(shè)置初始化。使用哪一個(gè)多態(tài)實(shí)例將由連接至visa資源名稱輸入端的visa類決定。主要參數(shù)

51、意義如下:visa資源名稱:指定要打開的資源。該控件也可指定會(huì)話句柄和類。波特率:波特率是傳輸速率。默認(rèn)值為9600。數(shù)據(jù)比特:數(shù)據(jù)比特是輸入數(shù)據(jù)的位數(shù)。 數(shù)據(jù)比特的值介于5和8之間。默認(rèn)值為8。奇偶:奇偶是指定要傳輸或接收的每一幀所使用的奇偶校驗(yàn)。奇偶校驗(yàn)位,默認(rèn)值為無校驗(yàn)、偶校驗(yàn)等。停止位:停止位是指定用于表示幀結(jié)束的停止位的數(shù)量。設(shè)置停止位,可以為1、1.5、2。流控制:流控制用于設(shè)置傳輸機(jī)制使用的控制類型。visa資源名稱輸出:visa資源名稱輸出是由visa函數(shù)返回的visa資源名稱的副本。2)visa讀?。ㄈ鐖D4.4所示)。圖4.4 visa讀取設(shè)備并寫入文件函數(shù)及其端口該節(jié)點(diǎn)為串

52、口讀子vi,為本文中的主要節(jié)點(diǎn),將串口中的數(shù)據(jù)讀出,然后利用labview的強(qiáng)大數(shù)據(jù)處理功能對(duì)其進(jìn)行分析處理。主要參數(shù)意義如下:visa資源名稱:設(shè)置串口號(hào),指定要打開的資源。該控件也可指定會(huì)話句柄和類。字節(jié)總數(shù):字節(jié)總數(shù)是要讀取的字節(jié)數(shù)量。該節(jié)點(diǎn)用于設(shè)置讀取字節(jié)數(shù)。visa資源名稱輸出:visa資源名稱輸出是由visa函數(shù)返回的visa資源名稱的副本。讀取緩沖區(qū):讀取緩沖區(qū)是指從設(shè)備讀取的數(shù)據(jù)。返回?cái)?shù):返回?cái)?shù)是指包含實(shí)際讀取的字節(jié)數(shù)。由于labview的串行通訊子vi只允許對(duì)字符串的讀寫,因此本文中在進(jìn)行數(shù)據(jù)處理時(shí),必須要實(shí)現(xiàn)字符串與數(shù)字之間的正確轉(zhuǎn)換。此外,若要讀入當(dāng)前串口中的所有字符,則

53、要先執(zhí)行“組串”子vi,用以確定將要讀入的確切的字節(jié)數(shù),然后將其輸出作為visa讀取節(jié)點(diǎn)的輸入即可29。3)visa寫入節(jié)點(diǎn)(如圖4.5所示)。 圖4.5 visa寫入函數(shù)及其端口該模塊用于將寫入緩沖區(qū)的數(shù)據(jù)寫入visa資源名稱指定的設(shè)備或接口中。visa資源名稱:visa資源名稱用于指定要打開的資源。該控件也可指定會(huì)話句柄和類。寫入緩沖區(qū):寫入緩沖區(qū)用于設(shè)置要寫入設(shè)備的數(shù)據(jù)。返回?cái)?shù):用于輸入實(shí)際寫入的字節(jié)數(shù)。4)visa關(guān)閉 (如圖4.6所示)。該模塊用于對(duì)串行端口進(jìn)行關(guān)閉任務(wù)操作需要調(diào)用visa關(guān)閉函數(shù)。圖4.6 visa關(guān)閉函數(shù)及其端口4.4 程序設(shè)計(jì)4.4.1 主程序系統(tǒng)主監(jiān)控圖如圖4

54、.7(a)所示。運(yùn)行程序,選定好串口,然后點(diǎn)擊前面板的開始鍵,就開始進(jìn)行溫度的采集。溫度上限和溫度下限可以自由設(shè)定,高于上限或低于下限時(shí)就會(huì)通過表格進(jìn)行數(shù)據(jù)記錄,并且布爾指示燈會(huì)顯示此時(shí)溫度是高于上限還是低于下限。溫度表則可以顯示當(dāng)前的溫度。單片機(jī)只是向labview中傳送當(dāng)前溫度,labview不向單片機(jī)發(fā)送指令30。圖4.7(a)程序主監(jiān)控圖前面板程序框圖如圖4.7(b),其中端口選擇用于設(shè)置用到的串行口,用來接受下位機(jī)單片機(jī)發(fā)送的數(shù)據(jù)。波形圖控件用于顯示采集到的溫度值。串口的初始化設(shè)置:波特率為默認(rèn)值9600,8位數(shù)據(jù)位,1位停止位,無校驗(yàn)位,串口號(hào)為1。當(dāng)系統(tǒng)開啟時(shí),通過visa接受溫

55、度。由于labview的串行通信子vi只允許對(duì)字符串的讀寫,因此在數(shù)據(jù)處理時(shí),必須進(jìn)行字符串與數(shù)字之間的正確轉(zhuǎn)換,在這里我們通過調(diào)用一個(gè)“組串”子vi來實(shí)現(xiàn)此轉(zhuǎn)換。上位機(jī)通過visa讀取節(jié)點(diǎn)讀取單片機(jī)的溫度,來完成溫度的采集31。 圖4.7(b) 串口程序框圖4.4.2 溫度采集部分如圖4.8所示,從串口通信得到的信息進(jìn)入visa中,并經(jīng)由visa讀操作進(jìn)入數(shù)據(jù)緩沖區(qū)。由于在數(shù)據(jù)傳送中設(shè)置為asc 碼,則在后續(xù)的數(shù)據(jù)采集中需要與0的asc碼相比較,從而得出當(dāng)前溫度32。圖4.8 溫度采集部分4.4.3 溫度報(bào)警部分如圖4.9所示,溫度上限值和下限值可以自由設(shè)定,分別與采集到的數(shù)據(jù)進(jìn)行比較,當(dāng)采集到得溫度高于“溫度上限值”時(shí)執(zhí)行比較運(yùn)算“真”,“超過上限”指示燈變亮;當(dāng)采集到的溫度低于“溫度下限值”時(shí)執(zhí)行比較運(yùn)算“真”,“低于下限”指示燈同樣變亮;當(dāng)采集到的溫度高于 “溫度上限值”或低于“溫度下限值”時(shí)執(zhí)行布爾運(yùn)算為“真”時(shí),表格會(huì)記錄超出的溫度。圖4.9 溫度報(bào)警5 系統(tǒng)調(diào)試及溫度采集早晨采集到得溫度如圖5.1圖5.1 早晨六點(diǎn)左右(室內(nèi))上圖中,在左上

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論