殷金曙, 杜世民
(寧波大學 科學技術學院,浙江 寧波 315212)
數字電路是實踐性很強的課程,數字電路實驗對學生理解和掌握數字電路的理論知識和實踐技能有至關重要的作用[1]。為提高學生的實踐動手能力,很多高校在數字電路實驗改革方面作了大量的探索[2-6]。隨著計算機技術的發展,虛擬仿真技術在電子電路實踐教學中的應用越來廣泛[5-9]。和實物實驗相比,虛擬仿真實驗具有器件全、效率高、成本低等優點,并且不受實驗場地和儀器設備的制約。但它畢竟和實物實驗有很大的區別,比如虛擬實驗使用的虛擬儀器器件與實際實物設備有很大的差異,初學者很難把原理圖中的器件、儀器和具體實物對應起來[6-8]。其次,虛擬實驗不會出現實物實驗中的異?,F象和各種故障,而通過解決排除這些異常和故障可以有效培養學生分析解決問題的能力和實際動手能力[10-12]。
為同時實現仿真實驗和實物實驗的優點,在實驗教學過程中,運用Proteus虛擬仿真建模(Virtual System Module,VSM)技術構建了數字電路常用器件(如74/54系列芯片)的實物模型,可以在Proteus下進行實物圖的仿真實驗,詳見文獻[13]。在此基礎上,本文開發了一個虛實結合的數字電路實驗平臺,在該平臺上能夠將仿真實驗電路和相對應的實物電路進行同步運行,并且將兩個電路的輸出結果在同一虛擬器件中顯示出來。由于實物電路和仿真電路完全同步運行,因此,十分有利于學生查找實物實驗中存在的各種問題并加以解決,從而加深他們對實驗理論的理解,有效提高他們的實際動手能力。
本文所開發的數字電路實驗平臺是一個虛實結合的實驗平臺,所謂“虛實結合”,是指在它上面既可以開展常規的虛擬仿真實驗,也可以發送輸入信號給實物電路,并接收來自實物電路的輸出,將其與仿真電路的運行結果相比較,以驗證電路設計的正確性。整個平臺包括4個部分:控制平臺(虛擬器件)、虛擬的仿真實驗電路、通信與控制電路、以及實物實驗電路,如圖1所示。

圖1 實驗平臺組成
這是實現“虛實結合”功能的一個關鍵器件,需要注意的是,它并不是一個實際電路,而在Proteus運行的一個虛擬器件,采用Proteus 的VSM Models技術進行開發。它有兩方面的功能:一是給虛擬仿真實驗電路和實物實驗電路提供相同的輸入信號,二是接收和顯示虛擬實驗電路和外部實物實驗電路的運行結果。因此,它相當于整個實驗平臺的信號發生器和輸出顯示器。
根據給定的具體實驗任務,在Proteus的ISIS軟件中調用其自帶的電路元件搭建虛擬的仿真實驗電路,或者調用預先設計好的常用器件的實物圖形符號(封裝圖)來搭建電路實物圖的仿真模型,驗證所設計電路的功能,或者與實物實驗電路相比較。
它是為實現Proteus軟件中的控制平臺與實物實驗電路之間進行通信而專門設計的硬件電路。它可以與PC的USB UART以指定的傳輸速率進行通信,將Proteus中控制平臺所產生的輸入信號發送給實物電路,同時將實物電路的運行結果發回到PC的USB UART,由Proteus中虛擬控制平臺進行接收并顯示。
實物實驗電路需要在一個自行開發的配套實驗箱中采用實際的芯片搭建完成。它的輸入信號由PC端Proteus中運行的控制平臺來產生,并經通信與控制電路發送到實物電路的輸入端。同時其運行結果通過通信與控制電路發送回計算機上的Proteus進行顯示,從而實現了“虛實”結合。與傳統實驗箱不同的是,該實驗箱不需自帶數字信號發生和輸出顯示電路。實踐時若將實物電路的輸入和輸出信號分別外接信號發器電路和輸出電路則實物電路可以脫離仿真平臺獨立運行。
實驗平臺的工作原理如下:先在Proteus的ISIS軟件和配套實驗箱上分別搭建仿真實驗電路和實物電路,利用Proteus中的虛擬控制平臺給這兩個電路接入相同的輸入信號,然后獲取這兩個電路的輸出狀態并將它們同時顯示在虛擬控制平臺上(以指示燈和數碼管方式),比較兩者的結果即可驗證所設計電路的正確性。此外,當實物電路運行結果有誤時,可用萬用表檢測實際實驗電路中任何節點的狀態,并與虛擬實驗電路中的對應節點的狀態進行比較,即可快速判斷實物電路的錯誤所在。
由圖1可知,實現這一實驗平臺的關鍵在于虛擬控制平臺和能夠與Proteus通信的新型實驗箱的設計,下面分別介紹這兩個部分的具體設計。
虛擬控制平臺由兩部分構成:信號發生電路和信號接收顯示電路,前者用來產生數字電路中常用的各種輸入信號,如高低電平輸入、脈沖輸入等,后者用來接收并顯示虛擬仿真電路或者實物實驗電路的運行結果。
為滿足實際實驗的需求,信號發生電路部分包括有一組電平設置開關,由16個撥碼開關(用O0~O15表示)組成,每個開關可以用來產生高低電平或脈沖信號。信號接收顯示電路部分由內、外兩部分電路構成,分別用來接收來自虛擬仿真電路和實物實驗電路的運行結果。內、外電路各包括16個LED(用I0~I15表示)和2個數碼管,每個LED均設為高電平點亮,數碼管則可以根據實際需要設置為共陰或共陽極工作方式,如圖2所示。

圖2 虛擬控制平臺用戶界面
該虛擬器件采用Proteus中VSM Models進行創建。Proteus中有兩類VSM Models:電氣模型(ELECTRICAL MODEL)和繪圖模型(GRAPHICAL MODEL),其中電氣模型實現元件的電氣特性,按規定的時序接收數據和輸出數據。繪圖模型實現仿真時與用戶的交互,例如LCD的顯示。Proteus為VSM模型提供了一些C++抽象類接口,用戶創建元件時需要在動態鏈接庫(Dynamic Link Library, DLL)中調用相應的抽象類。VSM模型和Proteus系統通信的原理如圖3所示[14-15]。

圖3 Proteus VSM數字模型的工作原理
圖中,繪圖模型和電氣模型是Proteus 提供的虛擬器件模型,它們分別是IACTIVEMODEL和IDSIMMODEL的繼承類。 GRAPHICAL MODEL通過ISIS內部的活動組件對象ICOMPONET和ISIS交換數據,用以實現虛擬器件的繪圖及用戶交互功能。PROSPICE是Proteus VSM的核心,它是一個結合SPICE3F5模擬仿真器和DSIM(基于快速事件驅動的數字仿真模型)的混合仿真系統。IINSTANCE是一個PROSPICE仿真原始模型,它可以為電氣模型提供訪問屬性、模擬節點和數據引腳的服務,還允許模型通過仿真日志發出警告和錯誤信息。ELECTRICAL MODEL是DSIM的繼承類。IDSIMPIN、IDSIMCKT和IDSIMMODEL是虛擬數字模型的接口類,其中,IDSIMPIN提供模型器件的引腳狀態和創建輸出實物事件的服務, IDSIMCKT為虛擬數字模型訪問數字系統的變量、創建回調函數和掛起仿真,IDSIMMODEL用于實現引腳狀態變化的判斷和回調事件的處理。
利用Proteus VSM仿真模型開發虛擬元件的步驟如下:
(1) 繪制元件圖形、引腳和相關符號。
(2) 制作元件,設置元件屬性。
(3) 用C++編寫元件,實現電氣和繪圖模型,編譯生成DLL。
(4) 搭建電路仿真測試。
為實現數字電路實驗平臺的“虛實結合”特性,提高學生的實際動手能力,專門開發了配套的數字電路實驗箱。該實驗箱帶有通信與控制電路模塊,可以和計算機上Proteus 中運行的的虛擬信號發生和接收電路進行通信,其組成結構如圖4所示。

圖4 配套實驗箱模塊架構
(1) 電源模塊。配套實驗箱需提供實際實驗時所需的相關電源。實驗箱有兩種類型的電源:+5 V和±12 V電源。+5 V電壓采用兩種方式來產生:一是用1A電流的穩壓電源,二是直接用計算機的USB口進行供電?!?2 V電源直接采用+5 V轉+12 V和-12 V模塊來產生。
(2) 通信與控制電路。通信電路中的USB轉TTL轉換芯片采用FT232,該芯片工作可靠,驅動安裝方便??刂齐娐凡捎肁VR單片機來實現,為保證通信的可靠性和電路的響應速度,晶振頻率設為11.059 2 MHz,波特率采用115 200 bit/s,測試結果表明這組參數可以滿足實際實驗的要求。
(3) 控制電路及接口與指標電路??刂齐娐凡捎肁VR單片機接收來自仿真平臺的信號狀態并傳送給對應的實驗電路,同時把實驗電路的狀態信號發送到計算機上的仿真平臺。接口電路是為配套實驗箱可以脫離于仿真平臺(即作為一個獨立的數字實驗箱使用)而設計的電路。指示電路采用LED發光二極管顯示輸入輸出狀態,以便于查看端口的工作狀態。
(4) 電路搭建模塊。電路搭建模塊采用雙列直插式插座(Dual InLine-Pin, DIP),根據實際實驗項目所用到芯片的管腳數和器件種類進行合理布置,使所用到的芯片在不同的的實驗中基本不需調換,便于維護,降低芯片損耗。
下面以JK觸發器組成五進制減法計數器這一具體的實驗項目為例說明所設計平臺的實驗過程和操作方法。
(1) 根據時序電路的一般設計方法[16],采用JK觸發器和門電路設計出電路原理圖。
(2) 在Proteus的ISIS中輸入該電路原理圖,將虛擬信號發生電路中的O8作為電路的CLK時鐘輸入,O9接到電路的清零端和置數端,計數結果Q2Q1Q0同時接到虛擬信號接收內電路中的I10~I8指示燈和數碼管,啟動仿真并觀察電路的運行結果,驗證所設計電路的功能是否正確,如圖5所示。

圖5 五進制減法計數器的虛擬仿真原理圖
(3) 為幫助學生更好的掌握實際JK觸發器芯片的邏輯功能和使用方法,可以調用事先制作的74112的實物封裝模型[8],在Proteus中繪制出該電路的實物連接圖進行仿真,如圖6所示。
(4) 根據圖6的實物連接仿真電路,在配套實驗箱中完成實物電路的線路連接,并按圖7所示連接實物電路的輸入信號和輸出信號。注意,圖7實驗箱左下方黃色方框區域是實驗箱的16個插孔用來接入實物電路的輸入信號,它們的狀態取決于Proteus中的虛擬信號發生電路的16個開關O0~O15的狀態(O8~O15控制上面一行,O0~O7控制下面一行)。右下方白色方框區域為實驗箱的16個插孔用來做輸出信號,這些信號的狀態會通過通信電路發送到Proteus中虛擬信號接收電路中的外部16個LED I0~I15上(上面一行輸出到I8~I15,下面一行輸出到I0~I7)。然后在Proteus啟動仿真,觀察并比較兩個電路的運行結果。由圖8可知,虛擬接收電路中的內、外輸出結果相同,即虛擬仿真電路和實物電路的運行結果相一致,說明實物電路連接是正確的。若虛擬接收電路上內、外顯示結果不一致,說明外部的實物實驗電路有問題,這時可以參考實物連接仿真電路所指示的各個節點狀態用萬用表檢查實際線路,快速判斷實際電路的問題所在。

圖6 五進制減法計數器的實物連接仿真電路
本文采用Proteus VSM技術構建了一個“虛實結合”的數字電路實驗平臺。學生在該平臺上既可以進行虛擬的原理圖或實物連接圖的仿真實驗,還可以搭建實際電路進行實物實驗,并且將這虛擬實驗電路和實物實驗電路的運行結果在自行設計的虛擬控制平臺中同步顯示出來,以驗證所設計電路的正確性。因此,該平臺結合了虛擬實驗和實物實驗的優點,并且可以簡化實物實驗中繁瑣的線路檢查問題。實際運行結果表明,該平臺可以有效提高學生對數字電路實驗的興趣和實踐動手能力。