全曉莉,古良玲
(重慶理工大學 電氣與電子工程學院,重慶 400054)
在我國高等教育的發(fā)展中,實踐教學已成為高校教育一個至關(guān)重要的環(huán)節(jié)。實驗在電子信息專業(yè)的教學中占有十分重要的地位,電子信息類的很多課程是以實驗課為基礎的。實驗可以增強學生學習的興趣、加深對理論知識的理解;可以培養(yǎng)學生的實踐動手技能、課程設計技能以及在實踐中發(fā)現(xiàn)問題、分析問題和解決問題的能力;可以培養(yǎng)學生的探索精神、協(xié)作精神和創(chuàng)新能力。在教學中,只有通過足夠的驗證性實驗和綜合設計實驗,才可以加快學生掌握所學的理論知識和應用技術(shù)[1]。與時俱進地開發(fā)虛擬仿真實驗教學系統(tǒng)來進行實驗教學,可以達到提高學生動手能力和創(chuàng)新意識的目標[2]。
筆者在對傳統(tǒng)實驗教學方式進行分析的基礎上,探索將虛擬儀器仿真技術(shù)用于電子類實驗教學中,利用LabVIEW開發(fā)平臺設計出一套低成本、高收益、方便升級的電子類教學虛擬仿真實驗系統(tǒng)。
LabVlEW是基于圖形化編程語言的開發(fā)環(huán)境,由美國國家儀器公司(NI)開發(fā)。LabVlEW類似于VC語言和VB語言[3],不同的是LabVIEW采用圖形化的編程語言而非文本編程語言。在LabVIEW開發(fā)環(huán)境下,程序設計采用框圖格式。LabVIEW提供了大量外觀與傳統(tǒng)儀器類似的控件,在創(chuàng)建用戶界面時,使用連線的方式即可對數(shù)據(jù)進行鏈接和操作[4]。
基于LabVIEW的電子類虛擬實驗系統(tǒng)包括虛擬儀器和虛擬實驗兩部分。
虛擬儀器是采用可視化的圖形編程語言和平臺,以在計算機屏幕上建立圖形化的軟面板來替代傳統(tǒng)的儀器面板。軟面板上具有與實際儀器相似的旋鈕、開關(guān)、指示燈及其他控制部件。它充分利用計算機系統(tǒng)強大的數(shù)據(jù)處理能力,在基本硬件的支持下,用戶通過鼠標或鍵盤操作軟面板來完成信號采集與控制、信號分析與處理、測量結(jié)果的存儲、顯示與輸出等功能,通過軟、硬件的配合來實現(xiàn)傳統(tǒng)儀器的各種功能[5]。用戶可以根據(jù)自己的需要靈活地定義儀器的功能,通過不同功能模塊的組合可構(gòu)成多種儀器,而不必受限于儀器廠商提供的特定功能;可以方便地與網(wǎng)絡、外設及其他應用連接,還可利用網(wǎng)絡進行多用戶數(shù)據(jù)共享;充分利用了計算機的存儲能力,從而使虛擬儀器具有極大的數(shù)據(jù)記錄容量;基于軟件的體系結(jié)構(gòu)還大大節(jié)省了開發(fā)和維護費用。
虛擬仿真實驗是電子信息類專業(yè)基礎課程(如電路基礎[6]、數(shù)字電路[7]、模擬電路、信號與系統(tǒng)[8]和數(shù)字信號處理[9]等)的實驗。電子信息類專業(yè)課程中的公式多、計算量大、概念抽象且不易理解,學生學習的難度較大。通過將LabVIEW軟件引入實驗教學環(huán)節(jié),可以將抽象的概念轉(zhuǎn)變成形象、生動、直觀的圖形和實例。通過仿真實驗可以把課程中晦澀難懂的理論知識變得易于理解,更易激發(fā)學生學習課程知識的興趣,加深對抽象概念的理解,提高發(fā)現(xiàn)問題、分析問題和解決問題的能力。圖1為虛擬實驗系統(tǒng)的結(jié)構(gòu)圖,圖中虛擬儀器包括實驗室中常用的一些儀器,例如信號發(fā)生器、示波器和頻譜分析儀等。虛擬實驗中的每一個實驗項目模塊都是一個獨立的實驗子系統(tǒng),可以完成特定的實驗內(nèi)容。
圖1 電子類虛擬實驗系統(tǒng)的結(jié)構(gòu)
以虛擬儀器中“信號發(fā)生器和數(shù)字電路”課程中的七段譯碼顯示器實驗子系統(tǒng)為例,介紹用LabVIEW開發(fā)電子類虛擬實驗系統(tǒng)的基本思路。
信號發(fā)生器是實驗教學中經(jīng)常用到的通用儀器,根據(jù)大學實驗課程的教學要求,利用虛擬儀器軟件LabVIEW中集成的信號處理模塊,設計出與常規(guī)信號發(fā)生器功能相吻合的虛擬信號發(fā)生器。該儀器不僅可以輸出1 Hz~100 kHz的正弦波、三角波、鋸齒波和方波等基本信號,還可以利用公式輸出所需要的任意信號以及通過選擇噪聲類型輸出多種噪聲信號[10-12]。
圖2和圖3分別為虛擬信號發(fā)生器的前面板和程序框圖。用戶可以通過前面板選擇信號類型、頻率、幅度、相位、方波占空比、采樣頻率和采樣點數(shù)等參數(shù),有些參數(shù)既可以通過旋鈕調(diào)節(jié),也可以鍵入數(shù)字,并用數(shù)字顯示器顯示。此外,虛擬信號發(fā)生器還具有對輸出的信號進行保存和打印等功能。
圖2 虛擬信號發(fā)生器前面板
圖3 虛擬信號發(fā)生器的程序框圖
在程序框圖中采用事件結(jié)構(gòu)(event structure)、While循環(huán)結(jié)構(gòu)和Case條件結(jié)構(gòu)完成運行、保存、打印、退出和Panel Close等5個事件的響應。其中運行事件里主要調(diào)用了基本波形發(fā)生器子程序.vi、Formula Waveform.vi、Gaussian White Noise Waveform.vi和Gamma Noise Waveform.vi等函數(shù),產(chǎn)生基本信號、公式信號和噪聲信號;保存事件里主要調(diào)用了File Dialog.vi(選擇信號保存路徑)、Open/Create/Replace.vi(確定信號保存文件名字)和Write File.vi等函數(shù)完成信號存儲功能;打印事件里需要調(diào)用節(jié)點Invoke Node中Print Panel To Printer完成打印功能;退出事件里需要調(diào)用Current VI’s Path、Open VI Reference、Invoke Node中Close FP和Close Reference完成獲取當前運行程序路徑后關(guān)閉前面板和停止運行功能。
譯碼是編碼的逆過程,它的功能是將具有特定含義的二進制碼轉(zhuǎn)換成對應的輸出信號,具有譯碼功能的電路稱為譯碼器。
根據(jù)七段譯碼器的需要,在前面板的Controls Palette中選擇它所需要的4個布爾輸入鍵Vertical Switch(A、B、C、D)與相應的4個8位整型數(shù)字顯示鍵Numeric Indicator,3個控制鍵Labeled Square Button來完成運行、退出和信息幫助功能,7個輸出鍵Square LED與對應數(shù)字顯示器。七段譯碼器輸入4位BCD碼,輸出7位顯示,它利用不同的發(fā)光組合方式,顯示0—9,而A—F并不采用。其中D表示高位,A表示低位。
為了直觀地顯示出數(shù)字,譯碼輸出的七位需排列成8字型。因而利用Tools Palette和Controls Palette中的相關(guān)功能制作前面板,使前面板更接近于真實的儀器。制作后的前面板如圖4所示。七段顯示譯碼器的主程序設計如圖5所示,整個程序框圖中主要調(diào)用了循環(huán)結(jié)構(gòu)(While)、條件結(jié)構(gòu)(Case Structure)和事件結(jié)構(gòu)(Event Structure)。將條件結(jié)構(gòu)放在While循環(huán)結(jié)構(gòu)之中,并在事件結(jié)構(gòu)中添加運行、退出、幫助和Panel Close等4個事件。由于七段譯碼器的功能是通過A、B、C、D輸入不同BCD碼時,abcdefg產(chǎn)生不同的顯示,同時為了為防止BCD輸入(1010)2~(1111)2時產(chǎn)生錯誤,設置此時abcdefg二極管熄滅。在運行事件結(jié)構(gòu)中利用Boolean To(0,1)、Number To Decimal String和Concatenate Strings編寫相應的程序,實現(xiàn)七段譯碼器的功能。
圖4 七段譯碼器演示儀前面板
圖5 七段譯碼器演示儀的程序
在幫助事件中完成了對七段顯示譯碼器的功能和使用方法介紹;在退出事件結(jié)構(gòu)中,運用Current VI’s Path、Open VI Reference、Invoke Node和Close Reference,在關(guān)閉前面板的同時也結(jié)束整個程序的運行。需要特別說明的是:由于退出鍵、運行鍵和幫助鍵分別綁定了F4、F5和F6快捷鍵,因此在對應鍵的右擊快捷選單中的Advanced→Key Navigation...→Key Assignment 需要選擇出相應的快捷功能鍵。
在對虛擬實驗室的結(jié)構(gòu)和框架進行全面的研究后,利用LabVIEW構(gòu)建的仿真型電子類虛擬實驗系統(tǒng),主要對基本信號處理實驗進行設計研究,包括各類波形發(fā)生器、數(shù)字濾波器、信號的相/幅頻響應等,針對電子實驗領域中的一些重要實驗(支路電流法、節(jié)點電壓法、3-8線譯碼器、8選1數(shù)據(jù)選擇器、同步二進制計數(shù)器、波形發(fā)生器等)進行仿真設計。這是實驗教學的新嘗試,不僅提升了學生的程序設計水平,而且可以解決課程教學中的實際問題,提高教學質(zhì)量。
References)
[1] 蔣漪漣.基于LabVIEW電子信息類實驗教學系統(tǒng)的設計與實現(xiàn)[J].現(xiàn)代電子技術(shù),2011,34(16):152-154.
[2] 程麗平.基于LabVIEW的虛擬實驗教學系統(tǒng)開發(fā)[J].中國科技信息,2012(20):84-85.
[3] 胡仁喜,高海賓.LabVIEW 2010中文版虛擬儀器從入門到精通[M].北京:機械工業(yè)出版社,2011.
[4] 陳國順.精通LabVIEW程序設計[M].北京:電子工業(yè)出版社,2012.
[5] 樸成日,崔漢國,高誠.多功能虛擬儀器軟面板的設計與實現(xiàn)[J].海軍工程大學學報,2006(6):82-85.
[6] 王文婷,趙錦成,谷志鋒,等.LabVIEW在《電路分析基礎》課程教學中的應用[J].實驗科學與技術(shù),2014,12(3):49-51.
[7] 許力,張波,陶薇薇,等.基于LabVIEW的數(shù)字電路實驗教學平臺設計[J].實驗室科學,2011,14(4):98-100.
[8] 周敬森,汪鳳嬌,朱博航,等.基于LabVIEW的“信號與系統(tǒng)”實驗軟平臺構(gòu)建[J].現(xiàn)代電子技術(shù),2011(23):169-174.
[9] 陳玲玲,劉陽,秦麗敏.基于labVIEW的數(shù)字信號處理實驗平臺設計[J].吉林化工學院學報,2011,28(11):66-69.
[10] 趙華,張代遠.基于LabVIEW的虛擬任意信號發(fā)生器設計[J].計算機技術(shù)與發(fā)展,2013,23(7):218-221.
[11] 張黎,蔡亮.基于LabVIEW的虛擬信號發(fā)生器的設計與實現(xiàn)[J].國外電子測量技術(shù),2014,33(1):82-85.
[12] 范海英,楊嘉,張金鳳,等.基于LabVIEW的虛擬信號發(fā)生器和示波器設計[J].實驗科學與技術(shù),2013,11(4):41-42.