版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 基于LabVIEW的數(shù)據(jù)采集系統(tǒng)的設計與實現(xiàn)</p><p> [摘要]:利用圖形化編程工具LabVIEW和EDA工具Proteus設計了一個溫度數(shù)據(jù)采集仿真系統(tǒng)。該系統(tǒng)中上位機與下位機通過虛擬串口進行通信,下位機將采集到的現(xiàn)場數(shù)據(jù)傳送到上位機后,上位機即可顯示并判斷是否超限報警。設計表明,基于該兩種軟件建立一個仿真系統(tǒng)可以有效驗證項目設計的正確性,從而縮短項目開發(fā)時間,降低項目開發(fā)成本。
2、</p><p> [關鍵詞]:LabVIEW;Proteus;單片機;數(shù)據(jù)采集;仿真 </p><p> The Design and Realization of Data Acquisition</p><p> System Based on LabVIEW</p><p> Abstract:Use of LabVIEW
3、graphical programming tools and EDA tools Proteus designed a data acquisition simulation system. The system of upper computer and lower computer through a virtual serial communication, the next crew will be collected on-
4、site data to the host computer, the host computer to display and to determine whether the limit alarm. Design showed that the two software based on a simulation system can verify the correctness of the project design to
5、reduce project development time, red</p><p> Key words:LabVIEW; Proteus; MCU; data collection; Simulation</p><p><b> 目錄</b></p><p><b> 0 引言3</b></p>
6、;<p> 1 相關軟件簡介3</p><p> 1.1 LabVIEW簡介3</p><p> 1.2 LabVIEW的開發(fā)環(huán)境3</p><p> 1.3 Proteus簡介3</p><p> 1.4 VISA 簡介4</p><p> 1.5 LabVIEW及其調用VISA的
7、條件4</p><p> 2 數(shù)據(jù)采集系統(tǒng)的設計方案4</p><p> 2.1 數(shù)據(jù)采集系統(tǒng)設計方案概述4</p><p> 2.1.1 接口技術發(fā)展現(xiàn)狀5</p><p> 2.1.2 USB接口技術及傳感器技術原理簡介5</p><p> 2.1.2.1 USB接口發(fā)展史5</p>
8、;<p> 2.1.2.2 USB接口技術簡介6</p><p> 2.1.2.3 傳感器技術簡介6</p><p> 2.2 數(shù)據(jù)采集系統(tǒng)設計方案論證7</p><p> 2.3 單片機程序流圖7</p><p> 3 數(shù)據(jù)采集系統(tǒng)的設計與實現(xiàn)8</p><p> 3.1 基于La
9、bVIEW的上位機虛擬儀器界面設計8</p><p> 3.2 基于Proteus的下位機單片機系統(tǒng)設計9</p><p> 3.3 聯(lián)調演示9</p><p><b> 4 總結11</b></p><p><b> 參考文獻12</b></p><p>
10、<b> 附錄13</b></p><p><b> 0 引言</b></p><p> 隨著計算機技術的迅速發(fā)展,虛擬儀器正逐漸成為測試領域的發(fā)展方向。虛擬儀器的概念是由美國NI公司提出來的,是指在通用的計算機平臺上,用戶根據(jù)自己的需求定義和設計具有測試功能的儀器系統(tǒng),即虛擬儀器是由用戶利用一些基本硬件及軟件編程技術組成的各種各樣的儀器
11、系統(tǒng)。虛擬儀器的三大主要功能是:數(shù)據(jù)采集;數(shù)據(jù)測試和分析;結果輸出顯示。數(shù)據(jù)采集是一切測試測量過程的第一步。</p><p><b> 1 相關軟件簡介</b></p><p> 1.1 LabVIEW簡介</p><p> LabVIEW是目前較為成功、應用廣泛的虛擬儀器軟件開發(fā)環(huán)境,LabVIEW[1](Laboratory Virt
12、ual Instrument Engineering Workbench,實驗室虛擬儀器工作平臺)是NI公司在1986年首次推出的,最新版本為LabVIEW8.6。它是一個高效的圖形化程序設計環(huán)境,結合了簡單易用的圖形式開發(fā)環(huán)境與靈活強大的G編程語言;提供了一個直覺式的環(huán)境,與測量緊密結合,在這個平臺上,各種領域的專業(yè)工程師和科學家們通過定義和連接代表各種功能模塊的圖標來方便迅速地建立高水平的應用程序;支持多種系統(tǒng)平臺,在任何一個平臺上
13、開發(fā)的LabVIEW應用程序可直接移植到其它平臺上。</p><p> 實驗室虛擬儀器開發(fā)平臺的簡稱LabVIEW,是一種業(yè)界領先的工業(yè)標準圖形化編程工具,它是專門為工程師和科學家而設計的直觀圖形化編程語言。它將軟件和各種不同的測量儀器硬件及計算機集成在一起,建立虛擬儀器系統(tǒng),形成用戶自定義的解決方案,成為專門數(shù)據(jù)采集與儀器控制,數(shù)據(jù)分析和數(shù)據(jù)表達而設計的圖形化編程軟件,使創(chuàng)建的程序模塊化,易于調試,理解和維護
14、,而且程序編程簡單、直觀,因此特別適用于數(shù)據(jù)采集處理系統(tǒng)。</p><p> 1.2 LabVIEW的開發(fā)環(huán)境</p><p> LabVIEW的開發(fā)環(huán)境分為三部分:前面板(panel)、框圖程序(Diagram Programme)和圖標/連接端口(Icol/rerminal)。前面板就是圖形化用戶界面,用于設置輸入數(shù)值和輸出觀察量。在前面板中,輸入量被稱為控制(Control),輸
15、出量被稱為指示(Indicator),他們通過各種圖標如按鈕、旋鈕、開關、圖標等出現(xiàn)在前面板上,模擬真實儀器。框圖程序由節(jié)點(Node)和數(shù)據(jù)連線(Wire)組成,它利用圖形語言對前面板上的控制對象即輸入量和輸出量進行控制,節(jié)點用來實現(xiàn)函數(shù)和功能調用,數(shù)據(jù)連線表示程序執(zhí)行過程中的數(shù)據(jù)流,它定義了程序框圖內的數(shù)據(jù)流向。圖標/連接端口用于把LabVIEW程序定義為一個子程序,從而實現(xiàn)模塊化編程,圖標是子程序在其他程序框圖中被調用的節(jié)點表示形
16、式,連接端口則表示節(jié)點數(shù)據(jù)的輸入、輸出口。</p><p> LabVIEW具有3個可移動的圖形化工具模板:工具模板(Tool Palette)、控件模板(Controls Palette)和功能模板(Function Palette)。工具模板提供了用于圖形操作的各種工具,比如定位、標注、斷電、連線、文字注釋等;控件模板提供了前面編輯所需要的圖像圖標、一些特殊的圖形;功能模板則提供了一些基本的數(shù)學函數(shù)和其他功
17、能函數(shù)。這三個模板是LabVIEW編程的主要工具。</p><p> 1.3 Proteus簡介</p><p> Proteus[2]是由英國LabcenterElectronics公司開發(fā)的EDA工具軟件,是目前世界上較先進完整的嵌入式系統(tǒng)設計和仿真平臺。Proteus與其他單片機仿真軟件不同,它不僅能仿真單片機CPU的工作情況,也能仿真單片機外圍電路或沒有單片機參與的其他電路的工
18、作情況??梢灾苯釉诨谠韴D的虛擬原型上編程,并實現(xiàn)軟件源碼級得實時調試,實時觀察運行效果,真正實現(xiàn)了在沒有目標原型時就可對系統(tǒng)進行調試、測試和驗證,因此在仿真和程序調試時,關心的不再是某些語句執(zhí)行時單片機寄存器和存儲器內容的改變,而是從工程的角度直接看程序運行和電路工作的過程和結果。這種仿真是將實驗和實際工程應用練習在一起,因而大大提高了企業(yè)的開發(fā)效率,降低了開發(fā)風險。</p><p> 1.4 VISA 簡
19、介</p><p> NI-VISA(Virtual Instrument Software Architecture,以下簡稱為"VISA")是美國國家儀器NI(National1nstrLlrnent)公司開發(fā)的一種用來與各種儀器總線進行通信的高級應用編程接口。VISA軟件是一個綜合軟件包,不受平臺、總線和環(huán)境的限制,可用來對USB、GPIB、串口、VXI、PXI和以太網系統(tǒng)進行配置、編
20、程和調試。VISA是虛擬儀器系統(tǒng)I/O接口軟件?;谧缘紫蛏辖Y構模型的VISA創(chuàng)造了一個統(tǒng)一形式的I/O控制函數(shù)集。一方面,對初學者或是簡單任務的設計者來說, VISA提供了簡單易用的控制函數(shù)集,在應用形式上相當簡單;另一方面,對復雜系統(tǒng)的組建者來說,VISA提供了非常強大的儀器控制功能與資源管理。</p><p> 1.5 LabVIEW及其調用VISA的條件</p><p> La
21、bVIEW(Laboratory Virtual Instrument Engineering Workbench)是NI公司開發(fā)的一種基于圖形程序的編程語言。用戶利用創(chuàng)建和調用子程序的方法編寫程序,使創(chuàng)建的程序模塊化,而且程序編制簡單、直觀。一個LabVIEW程序分為3部分:前面板、框圖程序和圖標/接線端口。前面板用于模擬真實儀器的前面板;框圖程序是利用圖形語言對前面板上的控件對象(分為控制量和指示量兩種)進行控制;圖標/接線端口用于
22、把LabVlEW程序定義成一個子程序,從而實現(xiàn)模塊化編程。當進行USB通信時,VISA提供了兩類函數(shù)供LabVIEW調用,USBINSTR設備與USB RAW設備。USBINSTR設備是符合USBTMC協(xié)議的USB設備,可以通過使用USB INSTR類函數(shù)控制,通信時無需配置NI-VISA;而USB RAW設備是指除了明確符合USBTMC規(guī)格的儀器之外的任何USB設備,通信時要配置NI-VISA。</p><p>
23、; (1)配置NI-VISA的步驟:</p><p> 1)使用Driver Development wizard(驅動程序開發(fā)向導)創(chuàng)建INF文檔。</p><p> 2)安裝INF文檔,并安裝使用INF文檔的USB設備。</p><p> 3)使用NI-VISA Interaction Control(NI-VISA互動控制工具)對設備進行測試,以證實U
24、SB設備已正確安裝,并獲得USB設備的各屬性值。</p><p> (2)與NI-VISA相配合的LabVIEW模板中的VI子節(jié)點</p><p> ViOpen,打開并指定VISA resource name的設備的連接。</p><p> ViProperty,VISA設備的屬性子節(jié)點,可以設置端點或傳輸方式。</p><p>
25、ViWrite,向VISA resource name指定的設備寫入數(shù)據(jù)。</p><p> Viread,從VISA resource name指定的設備讀出數(shù)據(jù)。</p><p> Viclose,結束設備讀寫并關閉與指定設備的連接。</p><p> (3)USB RAW設備讀寫的操作次序</p><p> USB RAW設備的
26、讀寫次序為:打開VISA設備、設定VISA設備的屬性節(jié)點參數(shù)、讀寫USB RAW、關閉VISA。</p><p> 2 數(shù)據(jù)采集系統(tǒng)的設計方案</p><p> 2.1 數(shù)據(jù)采集系統(tǒng)設計方案概述</p><p> 信號采集是控制過程的關鍵環(huán)節(jié),是系統(tǒng)控制的根本出發(fā)點和最終衡量系統(tǒng)控制性能的重要依據(jù)。在一個完善的閉環(huán)控制系統(tǒng)當中,首先要檢測當前被控對象的狀態(tài),就
27、必須對被控對象的狀態(tài)信息(比如常見的溫度,流量,速度,液位等信息)進行采集,并能夠將此信息還原為實際的溫度,流量等信息,并以此作為控制的根本出發(fā)點??刂平Y果與目標的一致性也必須通過信號采集來衡量,只有采集當前的狀態(tài)信息,并對該信息進行分析才能了解控制過程的好壞,做出進一步的優(yōu)化。所以說信號采集在系統(tǒng)控制中起著至關重要的作用。</p><p> 隨著數(shù)字化的普及和控制技術水平的不斷進步,數(shù)字化控制已成為現(xiàn)代控制的
28、主流,數(shù)字信號的采集成為數(shù)字控制系統(tǒng)的重要單元。</p><p> 2.1.1 接口技術發(fā)展現(xiàn)狀</p><p> 隨著現(xiàn)代電子技術的飛速發(fā)展和廣泛應用,數(shù)據(jù)傳輸接口器件發(fā)展也十分迅速,以至于外部接口規(guī)格十分“繁華”。例如鍵盤要AT接口或PS/2的接口,鼠標要接COM口或PS/2接口,Modem要接另一個COM接口、打印機要接Parallel Port(并口),而搖桿則要跟MIDI裝置
29、共搶Game/MIDI口。每種接口類型都是外設通過各自獨有的傳輸方式,根據(jù)一定的數(shù)據(jù)傳輸協(xié)議單獨地與PC機進行通訊。當然,由于每種接口類型都有其不可替代的優(yōu)越性,所以無論電子技術如何發(fā)展,在某些特定的場合,各類接口仍在繼續(xù)使用。目前常見的接口類型:有并口(也有稱之為IEEE 1284,Centronics)、串口(也有稱之為RS-232接口的)和USB接口。</p><p> 并口又稱為并行接口。目前,并行接口
30、主要作為打印機端口,采用的是25針D形接頭。所謂“并行”,是指8位數(shù)據(jù)同時通過并行線進行傳送,這樣數(shù)據(jù)傳送速度大大提高,但并行傳送的線路長度受到限制,因為長度增加,干擾就會增加,數(shù)據(jù)也就容易出錯。目前計算機基本上都配有并口。</p><p> 串口叫做串行接口,現(xiàn)在的PC機一般有兩個串行口COM1和COM2。串行口不同于并行口之處在于它的數(shù)據(jù)和控制信息是一位接一位地傳送出去的。雖然這樣速度會慢一些,但傳送距離較
31、并行口更長,因此若要進行較長距離的通信時,應使用串行口。通常COM1使用的是9 針D 形連接器,也稱之為RS-232接口,而COM2 有的使用的是老式的DB25 針連接器,也稱之為RS-422接口,不過目前已經很少使用。</p><p> USB接口即“Universal Serial Bus ”,中文名稱為通用串行總線。這是近幾年逐步在PC 領域廣為應用的新型接口技術。由于USB接口與串型接口相比具有連接方便
32、,無需外接電源,即插即用,支持熱插拔,動態(tài)加載驅動程序等特有優(yōu)點,目前已經在各類外部設備中廣泛的被采用。目前USB接口有兩種:USB1.1和USB2.0。理論上USB1.1的傳輸速度可以達到12Mbps/秒,而USB2.0則可以達到速度480Mbps/秒,并且可以向下兼容USB1.1。</p><p> 通過上述對比發(fā)現(xiàn),USB作為一種新的PC機互連協(xié)議,使外設到計算機的連接更加高效、便利。這種接口適合于多種設
33、備,不僅具有快速、即插即用、支持熱插拔的特點,還能同時連接多達127個設備,解決了如資源沖突、中斷請求(IRQs)和直接數(shù)據(jù)通道(DMAs)等問題。也是計算機外設接口的發(fā)展趨勢,將逐漸取代PC機上的RS232協(xié)議串口,因此很多傳統(tǒng)的RS232接口設備都將面臨一個向USB 接口轉換的問題,此次基于USB總線的溫度采集系統(tǒng)的設計也是一種非常實用的數(shù)據(jù)采集方式。</p><p> 2.1.2 USB接口技術及傳感器技
34、術原理簡介</p><p> 2.1.2.1 USB接口發(fā)展史</p><p> USB的發(fā)展歷史,要從1994年說起,當時由英特爾、康柏、IBM、Microsoft等多家公司聯(lián)合提出,并于當年11月11日發(fā)表USB V0.7版本,經歷了多年的發(fā)展,到現(xiàn)在已經發(fā)展為3.0版本。</p><p> USB1.0在1996年推出,礙于水平的限制,這個版本的速度只有
35、1.5Mb/s,后來升級為USB1.1,速度也跟著提升到12Mb/s。也正是1.1版本的出現(xiàn),使得USB接口的使用范圍逐漸普及。大部分的MP3產品為此類接口類型。</p><p> 作為更高級的版本,USB2.0的規(guī)范是從USB1.1規(guī)范演變而來的。它的最顯著優(yōu)點是480Mbps,折算為MB為60MB/s,足以滿足大多數(shù)外設的速率要求。人們使用USB2.0產品傳輸文件,尤其是傳說超大文件的用時大大縮短。進幾年出
36、現(xiàn)的比較熱門的USB轉網卡接口、USB無線網卡基本上都是使用2.0,就目前來說,USB2.0接口還是電腦配件里應用最廣泛的USB版本接口。</p><p> 隨著技術的發(fā)展,Vsita、高清、DX10正在逐漸普及,USB2.0遭遇到了與USB1.1時代后期相同的問題,480mbps的傳輸速度對于現(xiàn)在的應用環(huán)境來說已經不足以滿足我們的要求了,于是,由Intel、微軟、惠普、德州儀器、NEC、ST-NXP等業(yè)界巨頭
37、組成的USB3.0推廣組宣布制定新的USB標準,并于2010年推出消費級的USB3.0產品。USB3.0的傳輸速度可達到USB2.0的10倍,即理論傳輸速度高達625MB/s,也就是官方號稱的5Gb/s,這種超高速的傳輸速度使得傳輸一部15GB的電影只要24秒。不過,就目前的設備發(fā)展水平來說,硬盤設備還無法提供如此超高的傳輸速度與之匹配。</p><p> 2.1.2.2 USB接口技術簡介</p>
38、<p> USB規(guī)范描述了總線特性、協(xié)議定義、編程接口以及其它設計和構建系統(tǒng)時所要求的特性。USB是一種主從總線,工作時USB主機處于主模式,設備處于從模式。USB系統(tǒng)所需要的唯一的系統(tǒng)資源是,USB系統(tǒng)軟件所使用的內存空間、USB主控制器所使用的內存地址空間(I/O地址空間)和中斷請求(IRQ)線。USB設備可以是功能性的,如顯示器、鼠標或者集線器之類。它們可以作低速或者高速設備實現(xiàn)。低速設備最大速率限制在1.5 Mb
39、/s,每一個設備有一些專有寄存器,也就是端點(endpoint)。在進行數(shù)據(jù)交換時,可以通過設備驅動間接訪問它。每一個端點支持幾種特殊的傳輸類型,并且有一個唯一的地址和傳輸方向。不同的是端點0 僅用作控制傳輸,并且其傳輸可以是雙向的。</p><p> 系統(tǒng)上電后,USB主機負責檢測設備的連接與拆除、初始化設備的列舉過程,并根據(jù)設備描述表安裝設備驅動后自動重新配置系統(tǒng),收集每個設備的狀態(tài)信息。設備描述表標識了設
40、備的屬性、特征并描述了設備的通信要求。USB主機根據(jù)這些信息配置設備、查找驅動,并且與設備通信。</p><p> 典型的USB數(shù)據(jù)傳輸是由設備驅動開始的,當它需要與設備通信時,設備驅動提供內存緩沖區(qū),用來存放設備收到或者即將發(fā)送的數(shù)據(jù)。USB驅動提供USB設備驅動和USB主控制器之間的接口,并將傳輸請求轉化為USB事務,轉化時需要與帶寬要求及協(xié)議結構保持一致。某些傳輸是由大塊數(shù)據(jù)構成的,這時需要先將它劃分為幾
41、個事物再進行傳輸。</p><p> 具有相似功能的設備可以組成一類,這樣便于分享共有的特性和使用共同的設備驅動程序。每個類可以定義其自己的描述符,如:HID類描述符和 Report描述符。HID類是由人控制計算機系統(tǒng)的設備組成的,它定義了一個描述HID設備的結構,并且表明了設備的通信要求。HID設備描述符必須支持端點輸入中斷,固件也必須包括一個報告描述符,表明接收和發(fā)送數(shù)據(jù)的格式。</p>&l
42、t;p> 目前,由于USB移動存儲設備的使用已經非常普遍,因此在一些需要轉存數(shù)據(jù)的設備、儀器上使用USB移動存儲設備接口的芯片便相繼產生了。為了縮短開發(fā)周期,各大廠商紛紛研制出了愈來愈智能化的USB接口芯片。如Philips公司的PDIUSBD12、ISP1581以及National公司的USBN9602、南京沁恒公司的CH372、CH375等。這類USB接口芯片價格較低、接口方便、靈活性高,針對不同的硬件環(huán)境可以配合多種MCU
43、使用,如單片機、DSP、FPGA都可以。</p><p> 2.1.2.3 傳感器技術簡介</p><p> 智能傳感器(smartsensor)利用微計算機技術使傳感器智能化。它是一個或多個敏感元件與信號處理電路集成在同一硅片或GaAs片上的器件,具有一種或多種敏感功能,能夠完成信號探測、變換處理、邏輯判斷、功能計算、雙向通信內部可實現(xiàn)自檢、自校、自補償、自診斷的器件。</p&
44、gt;<p> 智能傳感器系統(tǒng)的主要特點:把計算機技術和現(xiàn)代通信技術融人傳感器系統(tǒng)中,其目的是為了適應計算機測控系統(tǒng)的發(fā)展,滿足系統(tǒng)對傳感器提出的更高要求,因此認為智能傳感器是指傳感器與微處理器賦予智能的結合,兼有信息檢測、信息處理及通信功能的傳感器系統(tǒng)。在結構上,智能傳感器系統(tǒng)將傳感器、信號調理電路、微控制器及數(shù)字信號接口組合為一整體。傳感元件將被測非電量轉換為電信號,信號調理電路對傳感器輸出的電信號進行調理并轉換為數(shù)
45、字信號后送人微控制器,由微控制器處理后的測量結果經數(shù)字信號接口輸出。在智能傳感器系統(tǒng)中不僅有硬件作為實現(xiàn)測量的基礎,還有強大的軟件支持來保證測量結果的正確性和高精度。以數(shù)字信號形式作為輸出易于和計算機測控系統(tǒng)接口,并具有很好的傳輸特性和很強的抗干擾能力。</p><p> 智能傳感器的功能是通過模擬人的感官和大腦的協(xié)調動作,結合長期以來測試技術的研究和實際經驗而提出來的,是一個相對獨立的智能單元,它出現(xiàn)對原來硬
46、件性能的苛刻要求有所減輕,而靠軟件幫助可以使傳感器的性能大幅度提高。其功能主要包括:數(shù)據(jù)處理功能、自診斷功能、組態(tài)功能、存儲功能、數(shù)字通訊接口功能、復合敏感功能、自適應功能、人機對話功能、顯示和報普功能和掉電保護功能等。</p><p> 2.2 數(shù)據(jù)采集系統(tǒng)設計方案論證</p><p> 傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)大多數(shù)是以單片機作為控制核心再加上一些常用外圍電路來構建系統(tǒng)的, 數(shù)據(jù)顯示也多
47、是應用數(shù)碼管瞬時記錄或近距離范圍內應用RS232/485等通信方式直接上傳PC機上供用戶參考。然而隨著用戶對數(shù)據(jù)監(jiān)控的距離、數(shù)據(jù)采集的速率及人機交互界面的要求越來越高,傳統(tǒng)的系統(tǒng)己不能滿足更多用戶的需要.目前,美國國家儀器公司(NI)開發(fā)的LabVIEW技術在數(shù)據(jù)采集技術領域中由于其高速采集性能、豐富的圖像化編程語言等諸多顯著特性無疑己處于遙遙領先的地位,但此類技術大都是建立在LabVIEW支持的價格昂貴的數(shù)據(jù)采集硬件基礎之上的,因此在
48、普及應用方面受到很大的制約。</p><p> 但是,基于LabVIEW和Proteus兩種軟件共同設計的數(shù)據(jù)采集系統(tǒng)可以有效的解決此類問題。本次數(shù)據(jù)采集系統(tǒng)的設計分為下位機數(shù)據(jù)采集部分和上位機數(shù)據(jù)實時監(jiān)測部分。下位機部分主要完成溫度信息的采集功能,上位機部分通過利用LabVIEW軟件設計界面,完成將接收的數(shù)據(jù)進行簡單處理后實時顯示,并且可以實現(xiàn)串口調試,溫度上下限設置以及超限報警等功能,這樣在下位機中就可以省
49、去很多單元電路,比如報警電路、按鍵設置電路,顯示電路等。通過監(jiān)測歷史描述曲線等信息有效地提高事故的預見性和工作效率。以AT89C52單片機和DS18B20數(shù)字溫度傳感器為核心的下位機,實現(xiàn)了對溫度的采集和發(fā)送,通過虛擬串口軟件VSPDXP5產生一對虛擬串口COM3、COM4,這樣就可以將上位機和下位機連接起來實現(xiàn)對溫度的采集并且在上位機中通過虛擬儀器顯示出來。設計中采用LabVIEW實驗室虛擬儀器開發(fā)平臺,它是一個高效的圖形化程序設計環(huán)
50、境,結合了簡單易用的圖形式開發(fā)環(huán)境與靈活強大的G編程語言,提供了一個直覺式的環(huán)境,與測量緊密結合。</p><p> 2.3 單片機程序流圖</p><p> 單片機程序流圖如圖2.1所示</p><p> 圖2.1 單片機程序流圖</p><p> 3 數(shù)據(jù)采集系統(tǒng)的設計與實現(xiàn)</p><p> 3.1 基
51、于LabVIEW的上位機虛擬儀器界面設計</p><p> 在LabVIEW中開發(fā)程序包括前面板和程序框圖兩部分。前面板是圖形用戶界面,該界面上有交互式的輸入和輸出兩類控件。輸入控件包括按鈕、數(shù)值、文本和輸入設備等輸入對象 ,輸出控件包括圖形、數(shù)值、文本、LED和其他顯示輸出對象。程序框圖是實現(xiàn)虛擬儀器邏輯功能的圖形化源代碼,框圖中的編程元素除了包括與前面板的控件對應的連線端子外,還有函數(shù)、常數(shù)、結構和連線等。
52、</p><p> 串口通信程序通過VISA來設計,它是美國NI公司開發(fā)的一種用來與各種儀器總線進行通信的高級應用編程接口。LabVIEW8.2以上版本中自帶VISA,裝完VISA驅動后就可以利用它對USB、GPIB、VXI、PXI、串口和以太網等系統(tǒng)進行配置、編程和調試。VISA提供了簡單易用的控制函數(shù)集,具有強大的儀器控制與資源管理功能,在應用形式上也非常簡單。</p><p>
53、本系統(tǒng)設計了一個溫度虛擬儀器系統(tǒng),前面板如圖3.1所示,程序框圖如圖3.2所示 </p><p> 圖3.1 溫度采集系統(tǒng)上位機的前面板</p><p> 圖3.2 溫度采集系統(tǒng)上位機的程序框圖</p><p> 前面板具有串口測試、波形顯示、數(shù)據(jù)設置以及報警等功能。程序框圖中通過VISA來配置、讀寫以及關閉串口。串口測試按鈕和數(shù)據(jù)采集按鈕通過
54、與非門和與門來實現(xiàn)互鎖,在波形圖表前添加當前時間設置功能。</p><p> 3.2 基于Proteus的下位機單片機系統(tǒng)設計</p><p> 利用Proteus設計了一個簡單的單片機仿真系統(tǒng),如圖3.3所示。</p><p> 圖3.3 溫度采集系統(tǒng)下位機仿真系統(tǒng)</p><p> P2口通過一個上拉電阻與溫度傳感器相連,這可以模
55、擬從A/D轉換器中讀入現(xiàn)場數(shù)據(jù)。串口部分在仿真時可以省略TTL電平向RS-232電平轉換的電路,通過虛擬串口設置與上位機進行通信,可接受上位機發(fā)送的數(shù)據(jù),并將P2口采集的數(shù)據(jù)不加任何處理直接傳送到上位機,再由上位機進行顯示和處理,這樣可以利用上位機強大的數(shù)據(jù)處理功能來完成相關運算。</p><p><b> 3.3 聯(lián)調演示</b></p><p> 要將上位機與
56、下位機通信需要配置一下串口,由于一般PC機只有COM1一個串口,不便于仿真測試,所以通過虛擬串口軟件VSPD XP5來生成一對虛擬串口COM3、COM4,打開該軟件如圖3.4所示</p><p> 圖3.4 虛擬串口設置</p><p> 它的左上方COM1、COM2是PC機實際的物理串口,下面的是虛擬串口,在未設置前是空的。點擊Add pair按鈕,在下面就會出現(xiàn)COM3、COM4,
57、這兩個串口是一對虛擬串口,而且符合RS-232標準,設置完成后COM3、COM4就虛擬的連接起來了,功能定義與使用方法完全與PC機自帶物理串口相同,這些功能都是有虛擬串口軟件VSPD XP5來支持的,并不需要人為管理,這在仿真時非常有用,但在做實物時將COM3、COM4分別換成COM1數(shù)據(jù)線的兩端接插頭就可以了。</p><p> 在這里介紹下VSPD的使用方法:</p><p> (
58、1)首先在KEIL里編譯寫好的程序。</p><p> ?。?)打開VSPD,界面如圖3.4所示。</p><p> ?。?)把KEIL和虛擬出來的串口綁定,現(xiàn)在把COM3和KEIL綁定。在KEIL中進入DEBUG模式,在下面的COMMAND命令行中輸入MODE COM3 4800,0,8,1,(設置串口3的波特率,奇偶校驗位,數(shù)據(jù)位,停止位,打開COM3串口,這里設置的波特率要和程序中設
59、置的波特率應該一樣),ASSIGN COM3 <SIN> SOUT(把單片機的串口和COM3綁定到一起)。</p><p> (4)打開串口調試助手,可以看到虛擬出來的串口COM3、COM4,選擇COM4,設置為波特率4800,無校驗位,8位數(shù)據(jù)位,1位停止位,打開COM4。</p><p> 在上位機中選擇COM4、波特率、數(shù)據(jù)位、停止位等參數(shù)見圖3.1.在下位機中,打開
60、串口COMPIM的屬性,選擇串口COM3,其他配置如圖3.5所示。</p><p> 圖3.5 C0MPIM屬性配置</p><p> 打開單片機的屬性,將單片機晶振設置為11.0592MHz,以便獲得準確的4800bps的波特率。將以下源程序用編譯軟件生成HEX文件并下載到單片機,如圖3.6所示</p><p> 圖3.6 單片機屬性配置</p>
61、<p> 單片機源程序見附錄。 </p><p> 運行Proteus,正常后再運行LabVIEW,同時觀察運行效果。在上位機中關閉數(shù)據(jù)采集按鈕,打開串口調試助手,下位機將溫度傳感器上的溫度傳至上位機,如圖3.7所示</p><p> 圖3.7 系統(tǒng)仿真結果</p><p> 從圖3.7虛擬示波器的數(shù)據(jù)可以看到,下位機發(fā)送的數(shù)據(jù)已經傳至上位機中
62、。在上位機界面中,選擇串口COM4,波特率設置為4800bps,選定開始采集按鈕,運行LabVIEW軟件,就可以看到由下位機發(fā)送的溫度數(shù)據(jù)。設置合適的溫度上下限,當溫度超過/低于此溫度時會報警,并且上位機界面中的相應指示燈會點亮。在下位機單片系統(tǒng)中,通過手動改變DS18B20上的溫度,可以在上位機界面中看到溫度隨之改變。到此,該仿真系統(tǒng)的功能已經實現(xiàn)并且仿真成功。</p><p><b> 4 總結&
63、lt;/b></p><p> 利用LabVIEW開發(fā)上位機界面操作簡單、快捷,并且功能強大,使用者可以集中時間和精力用于實驗的執(zhí)行,數(shù)據(jù)的分析及結論的總結上,而不用將大量的時間花費在實驗系統(tǒng)設備的搭建上。因此LabVIEW既適合于科學研究,又適合于工程應用。利用Proteus建立單片機仿真系統(tǒng)快速、方便,可以直觀運行結果,在沒有目標原型時就可以對系統(tǒng)進行調試、測試和驗證,和實際工程應用相接近。由此可以看
64、出,在實際的項目開發(fā)中,先基于該兩種軟件建立一個數(shù)據(jù)采集仿真系統(tǒng),可以有效驗證項目設計的正確性,從而大大縮短開發(fā)時間,降低設計成本。</p><p><b> 參考文獻</b></p><p> [1] 蔡春麗.虛擬儀器技術及其軟件開發(fā)平臺LabVIEW.重慶職業(yè)技術學院學報,2004</p><p> [2] 周潤景,張麗娜.基于Pro
65、teus的電路及單片機系統(tǒng)設計與仿真[M].北京:北京航空航天大學出版社,2006.185-193.</p><p> [3] 杜玉玲.基于LabVIEW和PCI-7422的數(shù)據(jù)采集系統(tǒng)設計.淮海工學院學報,2004.</p><p> [4] 候國屏,王坤,葉齊鑫.LabVIEW8.5編程與虛擬儀器設計.清華大學出版社,2005.</p><p> [5]
66、周林,殷俠等.數(shù)據(jù)采集與分析技術.西安電子科技大學出版社, 2005.</p><p> [6] 石博,強編著. LabVIEW6.1編程技術實用教程[M].北京:中國鐵道出版社,2002.50-62.</p><p> [7] 王建群,基于LabVIEW的虛擬儀器開發(fā)[J].計算機工程與應用,2003.</p><p> [8] 陳錫輝,張銀鴻.LabVIE
67、W8.5程序設計從入門到精通[M].北京:清華大學出版社,2007.</p><p> [9] 金陽.LabVIEW在數(shù)據(jù)采集中的應用.湖北汽車工業(yè)學院學報,2002</p><p> [10] 王文海.基于Proteus的PC機與單片機串口通信的仿真[J].科技咨詢導報,2007(26):1-3.</p><p> [11] 楊樂平,李海濤,楊磊.LabVI
68、EW程序設計與應用[M].2版.北京:電子工業(yè)出版社,2005.</p><p> [12] 劉軍華.基于LabVIEW的虛擬儀器設計[M].北京:電子工業(yè)出版社,2003.</p><p> [13] 林正盛.虛擬儀器技術及其應用[J].電子技術應用,1997,(3):12-15.</p><p> [14] 楊樂平,李海濤.LabVIEW的高級程序設計[M
69、].北京:清華大學出版社,2003.390-399.</p><p> [15] 雷振山.LabVIEWExpress使用技術教程[M].北京:中國鐵道出版社,2004.260-265.</p><p> [16] Robert H. Bishop LabVIEW 6i實用教程[M].北京:電子工業(yè)出版社,2003.185-196.</p><p> [17]
70、 M K Hu.Pattem Recognition by Moment Invariants[J].Proc IRE.Trans Information Theory.1962.179-187.</p><p><b> 附錄:</b></p><p><b> 單片機源程序</b></p><p> #inclu
71、de <reg52.h></p><p> #include <intrins.h></p><p> #defineINT8Uunsigned char</p><p> #defineINT16Uunsigned int</p><p> sbit DQ = P2^5; </p&g
72、t;<p> bit presence;</p><p> float f_temp;</p><p> unsigned int tempds = 0;</p><p> unsigned char temp_value[4] = {0,0,0,0};</p><p> unsigned char temp_dat
73、a[2] = {0,0};</p><p> unsigned char T_flag;</p><p> void delay1(INT16U i)</p><p><b> {</b></p><p> for(;i>0;i--); </p><p><b>
74、}</b></p><p> void Delay(unsigned char time) //12M晶振,延時時間30us * time</p><p><b> {</b></p><p> unsigned char m,n;</p><p> for(n=0;n<time;n++)&
75、lt;/p><p> for(m=0;m<2;m++)</p><p><b> {}</b></p><p><b> }</b></p><p> /*初始化ds1820 */</p><p&
76、gt; bit DS18B20_Init(void)</p><p><b> { </b></p><p><b> EA = 0;</b></p><p> DQ = 1 ; //DQ復位</p><p> Delay(1) ; //稍做延時</p>
77、<p> DQ = 0 ; //單片機將DQ拉低</p><p> Delay(30) ; //精確延時 大于 480us</p><p> DQ = 1 ; //拉高總線</p><p> Delay(3) ;</p><p> presence = DQ ; //如果=0則初始化成功 =
78、1則初始化失敗</p><p> Delay(28) ;</p><p><b> DQ = 1 ; </b></p><p><b> EA = 1;</b></p><p> return presence ; //返回信號,0=presence,1= no presence</
79、p><p><b> } </b></p><p> /* 讀一個字節(jié) */</p><p> unsigned char ReadOneChar(void)</p><p><b> {</b></p><p> unsign
80、ed char i = 0 ;</p><p> unsigned char dat = 0 ;</p><p><b> EA = 0;</b></p><p> for (i = 8 ; i > 0 ; i--)</p><p><b> {</b></p><
81、p> DQ = 0 ; // 給脈沖信號</p><p> dat >>= 1 ;</p><p> DQ = 1 ; // 給脈沖信號 </p><p><b> if(DQ)</b></p><p> dat |= 0x80 ;</p><p> Delay(7)
82、 ;</p><p><b> }</b></p><p><b> EA = 1;</b></p><p> return (dat) ;</p><p><b> }</b></p><p> /* 寫一個字節(jié)
83、 */</p><p> void WriteOneChar(unsigned char dat)</p><p><b> {</b></p><p> unsigned char i = 0 ;</p><p><b> EA = 0;</b&
84、gt;</p><p> for (i = 8 ; i > 0 ; i--)</p><p><b> {</b></p><p><b> DQ = 0 ;</b></p><p> DQ = dat&0x01 ;</p><p> Delay(7)
85、 ;</p><p><b> DQ = 1 ;</b></p><p><b> dat>>=1 ;</b></p><p><b> }</b></p><p><b> EA = 1;</b></p><p&g
86、t;<b> }</b></p><p> /* 讀取溫度 */</p><p> void Read_Temperature()</p><p><b> {</b></p><p><b> do</b><
87、;/p><p><b> {</b></p><p> DS18B20_Init() ;</p><p><b> }</b></p><p> while(presence != 0);</p><p> WriteOneChar(0xCC) ; // 跳過讀序號
88、列號的操作</p><p> WriteOneChar(0x44) ; // 啟動溫度轉換</p><p><b> Delay(6);</b></p><p><b> do</b></p><p><b> {</b></p><p>
89、DS18B20_Init() ;</p><p><b> }</b></p><p> while(presence != 0);</p><p> WriteOneChar(0xCC) ; //跳過讀序號列號的操作</p><p> WriteOneChar(0xBE) ; //讀取溫度寄存器</p
90、><p><b> Delay(6);</b></p><p> temp_data[0] = ReadOneChar() ; //溫度低8位</p><p> temp_data[1] = ReadOneChar() ; //溫度高8位 </p><p> if(temp_data[1] & 0x8
91、0)</p><p> T_flag = 1; //溫度為負</p><p> else T_flag = 0; //溫度為正 </p><p><b> }</b></p><p> void Temp_Change() //溫度轉化函數(shù)</p><p&
92、gt;<b> {</b></p><p><b> EA = 0;</b></p><p> if(!T_flag)</p><p> f_temp = (temp_data[1] * 256 + temp_data[0]) * 0.0625;</p><p><b> els
93、e </b></p><p> f_temp = ((~(temp_data[1] * 256 + temp_data[0]) + 1)) * 0.0625;</p><p> tempds = f_temp * 100;</p><p> temp_value[0] = tempds / 1000;</p><p> t
94、emp_value[1] = tempds % 1000 / 100;</p><p> temp_value[2] = tempds % 100 / 10;</p><p> temp_value[3] = tempds % 10;</p><p><b> EA = 1;</b></p><p><b&g
95、t; }</b></p><p> void StartUART( void )</p><p> { //波特率4800</p><p> SCON = 0x50;</p><p> TMOD = 0x20;</p><p> TH1 = 0xFA;</p>&l
96、t;p> TL1 = 0xFA;</p><p> PCON = 0x00;</p><p><b> TR1 = 1;</b></p><p><b> }</b></p><p> void R_S_Byte(INT8U R_Byte)</p><p>&
97、lt;b> {</b></p><p> SBUF = R_Byte; </p><p> while( TI == 0 );//查詢法</p><p><b> TI = 0;</b></p><p><b> }</b></p><p&
98、gt; void main(void)</p><p><b> {</b></p><p> INT8U i =0;</p><p> Read_Temperature();</p><p> Temp_Change();</p><p> StartUART();</p>
99、;<p><b> while(1)</b></p><p><b> {</b></p><p> Read_Temperature();</p><p> Temp_Change(); </p><p> R_S_Byte(temp_value[0]);</p>
100、;<p> Delay(100);</p><p> R_S_Byte('+');</p><p> Delay(100);</p><p> R_S_Byte(temp_value[1]);</p><p> Delay(100);</p><p> R_S_Byte(
101、9;-');</p><p> Delay(100);</p><p> R_S_Byte(temp_value[2]);</p><p> Delay(100);</p><p> R_S_Byte('*');</p><p> Delay(100);</p><
102、p> R_S_Byte(temp_value[3]);</p><p> Delay(100);</p><p> R_S_Byte('/');</p><p> Delay(100); </p><p><b> }</b></p><p><b>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設計(論文)+基于labview的數(shù)據(jù)采集系統(tǒng)的設計與實現(xiàn)
- 基于labview的數(shù)據(jù)采集系統(tǒng)設計【畢業(yè)設計】
- 基于labview的數(shù)據(jù)采集系統(tǒng)設計【畢業(yè)設計】
- 基于labview的聲卡數(shù)據(jù)采集系統(tǒng)設計畢業(yè)設計論文
- 畢業(yè)設計基于labview的溫度采集系統(tǒng)
- labview數(shù)據(jù)采集系統(tǒng)設計與實現(xiàn)
- 基于LabVIEW的USB數(shù)據(jù)采集系統(tǒng)的設計與實現(xiàn).pdf
- 基于LabVIEW的浪高數(shù)據(jù)采集系統(tǒng)設計與實現(xiàn).pdf
- 基于LabVIEW數(shù)據(jù)采集系統(tǒng)的設計.pdf
- 基于usb總線數(shù)據(jù)采集系統(tǒng)設計與實現(xiàn)畢業(yè)設計
- 基于labview的遠程數(shù)據(jù)采集系統(tǒng)設計 畢業(yè)論文
- 畢業(yè)設計(論文)+基于can總線數(shù)據(jù)采集系統(tǒng)的設計與實現(xiàn)
- 基于USB接口的LabVIEW數(shù)據(jù)采集與傳輸系統(tǒng)的設計與實現(xiàn).pdf
- 基于labview的數(shù)據(jù)采集與處理系統(tǒng)設計
- 畢業(yè)設計---基于labview和數(shù)據(jù)采集卡的船舶機艙監(jiān)控系統(tǒng)
- 基于labview的數(shù)據(jù)采集系統(tǒng)設計-文獻綜述
- 基于LabVIEW的通用數(shù)據(jù)采集系統(tǒng)的設計.pdf
- 基于labview與usb2.0的dsp數(shù)據(jù)采集與處理系統(tǒng)的設計實現(xiàn)
- 畢業(yè)設計---基于無線傳輸?shù)臄?shù)據(jù)采集系統(tǒng)設計
- 畢業(yè)設計---基于無線傳輸?shù)臄?shù)據(jù)采集系統(tǒng)設計
評論
0/150
提交評論