<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 電源與新能源 > 設(shè)計應(yīng)用 > 一種基于 MCS51 的低成本LabVIEW實驗教學(xué)系統(tǒng)

          一種基于 MCS51 的低成本LabVIEW實驗教學(xué)系統(tǒng)

          作者: 時間:2013-08-01 來源:網(wǎng)絡(luò) 收藏

          0 引言

          本文引用地址:http://www.ex-cimer.com/article/174877.htm

          NI 公司于20 世紀(jì)70 年代提出了虛擬儀器的概念。虛擬儀器是在以計算機(jī)為核心的平臺上,由用戶設(shè)計,具有虛擬面板,由軟件實現(xiàn)測試功能的計算機(jī)儀器系統(tǒng),是計算機(jī)與測試儀器相結(jié)合的產(chǎn)物。虛擬儀器最常用的編程語言為LabVIEW,是NI公司的基于圖形化編程語言的虛擬儀器開發(fā)工具,利用它可以輕松組建一個測試系統(tǒng)而無需進(jìn)行繁瑣的代碼編寫。因此虛擬儀器大大突破了傳統(tǒng)儀器在靈活性,以及數(shù)據(jù)處理、顯示、存儲等方面的不足,其主要優(yōu)勢在于:用戶能夠根據(jù)需求靈活的進(jìn)行功能修改和擴(kuò)展;人機(jī)界面為視窗界面,形象直觀;網(wǎng)絡(luò)連接簡單易行,便于組建測控網(wǎng)絡(luò)。

          目前虛擬儀器在、汽車、測控等行業(yè)得到了廣泛的應(yīng)用。相應(yīng)的各大高校也在NI公司的支持下,陸續(xù)開設(shè)了虛擬儀器課程,組建了相關(guān)的實驗室,如西安交大利用虛擬儀器講授信號處理;天津大學(xué)開設(shè)的智能檢測儀器課程。

          目前國內(nèi)高校教授虛擬儀器課程使用的信號采集板多為NI 公司的數(shù)據(jù)采集板卡,如USB600X,USB92XX,PCI62XX 系列。這類板卡雖然性能優(yōu)良,配套軟件齊備,但是作為高校教學(xué)也存在不足之處。首先NI公司只賣板卡不賣技術(shù),這樣在教學(xué)中教師和學(xué)生只能使用板卡,而不能掌握虛擬儀器硬件系統(tǒng)的具體結(jié)構(gòu)和技術(shù)細(xì)節(jié);其次這類板卡一般價格較貴,普遍在2 000元以上,相對高校而言開課成本太高,這一點對于欠發(fā)達(dá)地區(qū)的一般學(xué)校尤為突出。

          本文利用廉價的MCS51設(shè)計了包含常用、數(shù)據(jù)采集模塊與USB 接口的LabVIEW 實驗教學(xué)系統(tǒng),并編制了常用的實驗案例程序,滿足了本科生虛擬儀器實驗教學(xué)的需要,且成本相對于NI的產(chǎn)品大大降低,針對高校市場具有良好的推廣前景。

          1 系統(tǒng)結(jié)構(gòu)

          整個系統(tǒng)由前端數(shù)據(jù)采集以及USB接口幾部分組成,如圖1所示。

          1.1 前端傳感系統(tǒng)

          虛擬儀器實驗系統(tǒng)的前端將待測的物理量轉(zhuǎn)換成電量(電流或電壓),作為后面采集處理系統(tǒng)的輸入信號,是整個測試系統(tǒng)與外界的接口與橋梁。本實驗系統(tǒng)集成了溫度、光強(qiáng)與電阻傳感器,并預(yù)留了擴(kuò)展接口以外接其他傳感器。其中溫度傳感器為數(shù)字溫敏器件DS18B20,能夠在-55~125 ℃的范圍內(nèi)提供9~12 b分辨率的溫度數(shù)據(jù),具有0.5 ℃的精度,適合于一般場合的應(yīng)用,其優(yōu)點在于能夠直接提供數(shù)字溫度值,可以與后端MCU直接接口,省去了調(diào)理電路。而電阻測量采用串聯(lián)分壓法,即將待測電阻Rx與已知電阻串聯(lián)后外加固定電壓Vref,將Rx上的分壓V作為待測信號,后端采集與處理系統(tǒng)只需測得V 就可以根據(jù)比例關(guān)系求出Rx.光強(qiáng)傳感器則使用光敏電阻,具體電路如圖2所示。

          1.2 數(shù)據(jù)采集與通信

          數(shù)據(jù)采集使用12 位ADC 器件TLC2543,該器件具有11位模擬輸入端,可通過控制字靈活選擇不同輸入端口,適合于多傳感器輸入應(yīng)用。器件控制字輸入和轉(zhuǎn)換數(shù)據(jù)輸出都為串行模式,可以與51以盡可能少的連線接口。51 單片機(jī)與上位機(jī)使用USB 接口通信。USB接口基于單一的總線接口來滿足多種應(yīng)用領(lǐng)域的需求,其具有的即插即用、支持熱插拔、易于擴(kuò)展等特性極大地方便了用戶,已逐漸成為現(xiàn)代數(shù)據(jù)傳輸?shù)闹髁鳌S捎?1 單片機(jī)自身不擁有USB 接口,所以需要外接USB 控制器。

          本系統(tǒng)使用PL2303 來實現(xiàn)USB 和RS 232串行端口之間的轉(zhuǎn)換。PL2303擁有2個獨(dú)立的大型緩沖進(jìn)行兩種總線的連接。大型數(shù)據(jù)緩沖器用于USB的批量數(shù)據(jù)傳輸,而串行通信可使用自動握手模式,因而可以達(dá)到遠(yuǎn)大于標(biāo)準(zhǔn)UART 控制器的波特率。PL2303 支持USB電源管理和遠(yuǎn)程喚醒協(xié)議,當(dāng)主機(jī)掛起時消耗極小的電能;芯片亦可以安裝在電纜線中,用戶只需將其連入主機(jī)USB 或USB HUB 上,就可以實現(xiàn)與單片機(jī)RS232串口的通信。單片機(jī)與TLC2543和PL2303的具體接口電路如圖3所示。

          2 實驗程序設(shè)計

          傳統(tǒng)的開發(fā)USB 應(yīng)用系統(tǒng)的步驟是:先用Win-dows DDK(設(shè)備驅(qū)動程序開發(fā)包)或第三方開發(fā)工具(如DriverStudio)開發(fā)USB驅(qū)動程序,然后用Visual C++編寫DLL(動態(tài)連接庫),最后再調(diào)用DLL來開發(fā)應(yīng)用程序。顯然,這對Windows編程不熟悉的人來說有一定的難度。VISA(Virtual Instrument Software Architecture)是NI公司開發(fā)的一種用來與各種儀器總線進(jìn)行通信的高級應(yīng)用編程接口。VISA是一個綜合軟件包,不受平臺、總線和環(huán)境的限制,可用來對USB、GPIP、串口、VXI、PXI和以太網(wǎng)系統(tǒng)進(jìn)行配置、編程和調(diào)試。LabVIEW通過調(diào)用VISA函數(shù)來實現(xiàn)USB設(shè)備的控制和通信。在這里主要使用了VISA Open,VISA Write,VISA Read,VI-SA Close這4個VISA 函數(shù)。與USB 設(shè)備的通信過程分為4個步驟:

          (1)由VISA Open 函數(shù)打開VISA resource name 端口指定的USB設(shè)備;

          (2)通過VISA Write函數(shù)向USB設(shè)備發(fā)送控制命令啟動設(shè)備工作,USB設(shè)備接收到控制命令后開始采集數(shù)據(jù)并將采集到的數(shù)據(jù)按要求發(fā)送到數(shù)據(jù)緩沖區(qū);

          (3)通過VISA Read函數(shù)將數(shù)據(jù)讀出;

          (4)通過VISA Close 函數(shù)關(guān)閉設(shè)備。PC 主機(jī)與USB 設(shè)備進(jìn)行通信的LabVIEW 程序框圖如圖4所示,而51單片機(jī)的程序結(jié)構(gòu)如圖5所示。

          3 結(jié)語

          虛擬儀器實驗教學(xué)系統(tǒng)是虛擬儀器課程教學(xué)中不可或缺的設(shè)備,本文針對NI等主流數(shù)據(jù)采集板卡存在的價格昂貴且技術(shù)屏蔽問題,利用廉價的MCS51 單片機(jī)設(shè)計了包含常用傳感器、數(shù)據(jù)采集模塊與USB通信接口的LabVIEW實驗教學(xué)系統(tǒng)。



          關(guān)鍵詞: 傳感器 通信 單片機(jī)

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();