18luck网站

18luck网站電子設計 | 18luck网站Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 18luck网站 >> 18luck平台 >> EDA開發應用 >> Proteus >> 正文

Proteus 與單片機實時動態仿真

作者:佚名    文章來源:本站原創    點擊數:    更新時間:2016-10-13

0.引言
    Proteus 是由英國Labcenter electronics 公司開發的EDA 工具軟件。它從(cong) 1989 年出現到現在已經有十多年的曆史,在全球廣泛使用。Proteus 安裝以後,主要由兩(liang) 個(ge) 程序組成:Ares和Isis。前者主要用於(yu) PCB 自動或人工布線及其電路仿真,後者主要采用原理布圖的方法繪製電路並進行相應的仿真。除了上述基本應用之外,Proteus 革命性的功能在於(yu) 它的電路仿真是互動的,針對微處理器的應用,可以直接在基於(yu) 原理圖的虛擬原型上編程,並實現軟件代碼級的調試,還可以直接實時動態地模擬按鈕、鍵盤的輸入,LED、液晶顯示的輸出,同時配合虛擬工具如示波器、邏輯分析儀(yi) 等進行相應的測量和觀測。
    Proteus 軟件的應用範圍十分廣泛,涉及PCB 製版、spice 電路仿真、單片機仿真,在最新的6.9 版本中又加入了對ARM7/LPC2000 的仿真。本文主要以單片機的仿真為(wei) 例,使大家初步了解該軟件的強大功能及其在工程實踐和實驗教學中的重要作用。

1.Proteus 仿真功能簡介
    作為(wei) 一款EDA 仿真軟件,Proteus 與(yu) 同類軟件有著很多的相似之處。相比之下,其主要的特點有兩(liang) 個(ge) :一是對動態元件的實時仿真,它對“人機對話”的模擬增強了係統的真實性;二是虛擬工具箱的功能,它能與(yu) 仿真同時進行,測量方便而準確。下麵著重介紹一下該軟件的這兩(liang) 個(ge) 突出特點。

1.1.實時動態仿真
    與(yu) 多數仿真軟件相似,Proteus 有著數量龐大的元件庫。Labcenter 公司與(yu) 相關(guan) 的第三方軟件陣容共同開發了6000 多個(ge) 模擬和數字電路中常用的spice 模型以及各種動態元件,基本元件如電阻、電容、各種二極管、三極管、MOS 管、555 定時器等;74 係列TTL 元件和4000 係列CMOS 元件;存儲(chu) 芯片包括各種常用的ROM, RAM,EEPROM, 還有常見I2C 器件等。在豐(feng) 富的庫元件的支持下,原理布圖時隻要進行相應的調用和連線,通過對每個(ge) 元件的屬性設置完成繪圖,然後即可進行仿真和虛擬測量。關(guan) 於(yu) 原理圖的具體(ti) 繪製方法不是本文討論的重點,請參考軟件提供的幫助教程。
    與(yu) Multisim 等仿真軟件的一大不同,在於(yu) Proteus 支持微處理器的仿真。這些仿真的實現是基於(yu) Labcenter 公司提出的VSM 的概念。
    VSM,Virtual System Modelling,直接譯作“虛擬係統模型”,官方的定義(yi) 是:將spice電路模型、動態外設以及微處理器的仿真結合起來,在物理原型調試之前用於(yu) 仿真整個(ge) 單片機係統的一種設計方法[1]。對動態外設的支持是Proteus在區別於(yu) 其他等仿真軟件最直接的地方。VSM為(wei) 用戶提供了一個(ge) 實時交互的環境,在仿真的過程中,你可以用鼠標去點擊開關(guan) 和按鈕,微處理器根據輸入的信號做出相應的中斷響應,同時輸出運算的結果到顯示終端。整個(ge) 過程與(yu) 真實的硬件調是極其相似的,在動態外設支持下的實時輸入和輸出為(wei) 實驗者呈現了一個(ge) 最接近現實的調試環境。官方資料顯示,一個(ge) 300 MHz Pentium II CPU可以以12MHz的時鍾頻率仿真一個(ge) 基本的8051 係統。

1.2 虛擬工具箱
     Proteus 的虛擬工具箱提供了電路測試中的常用工具和儀(yi) 器,主要用於(yu) 在實時仿真同時的電路參數觀測,測量結果隨仿真動態變化並顯示,可以滿足精度要求不是很高的測量分析,對於(yu) 電路特性的定性分析可以起到事半功倍的效果,大大節約了測試時間和開發成本。軟件提供的虛擬工具和儀(yi) 器如圖1.1 所示。
 
圖1.1 虛擬工具箱
    下麵我們(men) 以示波器為(wei) 例來說明虛擬工具箱的應用。
 
圖1.2 虛擬示波器
    圖中的電路非常簡單,單片機EXAMPLE01 中寫(xie) 入的是一個(ge) 輸出驅動直流電機的PWM方波的程序。我們(men) 把輸出管腳連接到示波器的CH1 通道,運行仿真,用鼠標調節虛擬示波器的Y 軸幅度和X 軸掃描頻率,整個(ge) 調節步驟同真實的示波器完全一樣。當波形穩定時可以觀測到一個(ge) 占空比可調的PWM 方波,如圖所示。

2.Proteus 在單片機仿真中的應用
    基於(yu) VSM 的理論,Proteus 可以仿真很多常用的微處理器。具體(ti) 來講,它支持PIC, 8051,AVR, HC11, ARM7/LPC2000 等係列多種型號的微處理器、微控製器,仿真時隻需在設定元件屬性時指定下載程序的路徑即可進行實時動態仿真。

2.1.Proteus 對AVR 單片機的仿真
    就Atmel 公司的AVR 係列單片機而言,Proteus 支持的型號非常全麵,從(cong) 低端ATtiny10 到高端的ATmega128 均有可以直接調用的庫元件。下麵以ATmega16 為(wei) 例介紹Proteus支持的仿真功能。
 
圖2.1 ATmega16
    圖2.1 是Proteus 中的ATmega16 庫元件,其管腳上的標識與(yu) 該芯片的Datasheet 是基本一致的,唯一的不同是隱去了GND 和VCC 管腳,在繪製原理圖的時候可以不用對其進行連接,係統默認的設置就是將它們(men) 分別連到地和5V 電源上。具體(ti) 可以仿真的功能有:支持所有的I/O 操作,內(nei) 部的定時器、計數器的模擬(包括輸入捕獲、輸出比較、PWM模式),看門狗定時器,串行UART 接口,主、從(cong) 模式串行SPI 接口,支持內(nei) 置數模轉換ADC,支持Atmel 的TWI (Two Wire Interface)通信方式,存貯器方麵支持外部SRAM 擴展以及內(nei) 置EEPROM 的模擬,支持多個(ge) 微控製器的協同工作仿真等等。仿真時,首先繪製原理圖,然後將任何AVR 源程序編譯器(WinAVR 等)生成的下載文件(*.hex 格式)路徑指定給原理圖中的芯片,就可以觀察程序的運行。另外值得一提的是,實時仿真運行的過程中,每個(ge) 管腳的旁邊會(hui) 出現一個(ge) 小正方形的指示,紅色代表高電平,藍色帶表低電平,從(cong) 這個(ge) 小正方形我們(men) 可以不用虛擬工具的測量很直觀的看到每個(ge) 管腳的電平變化,對程序的運行做出最基本的判斷,對於(yu) 簡單的分析可以節省很多的時間。在本文圖1.2 和圖2.2 的例子中,ATmega16 的19 管腳輸出的是方波,所以旁邊可以看到一個(ge) 紅藍交替、以一定頻率閃爍的小正方形。

2.2.Proteus 與(yu) 其他單片機仿真軟件的比較
    AVR 係列單片機可以可用很多的軟件進行仿真。常用的有AVR Studio 和Vmlab。AVR Studio、Vmlab 和Proteus 都屬於(yu) 代碼級的仿真軟件,與(yu) 芯片級仿真不同,代碼級仿真完全在計算機上完成,不需要硬件的參與(yu) ,主要用於(yu) 查看代碼的執行過程和參數變化。在具體(ti) 功能上,這三款軟件各有千秋。
    AVR Studio 是一款完全免費的AVR 單片機集成開發環境,包括AVR Assembler 編譯器和AVR Studio 調試功能,AVR Prog 串行、並行下載功能和Jtag ICE 仿真功能。它最主要的功能是觀察代碼執行過程中單片機內(nei) 部各個(ge) 寄存器值的變化,尤其是一些寄存器關(guan) 鍵位的置位、複位操作與(yu) 代碼的關(guan) 係。利用單步調試功能可以更細致的檢查代碼的執行過程。對於(yu) 內(nei) 部的定時中斷也可以較好的仿真,使實驗者清楚了解中斷對於(yu) 整個(ge) 程序流程的影響。但是對於(yu) 外部中斷和輸入捕獲等需要動態外設配合的功能,AVR Studio 就顯得無能為(wei) 力了。同時該軟件使用黑色、白色的方塊來表示1 和0,用以反映寄存器值的變化,當需要觀察某些波形時,這樣的仿真結果顯得很不直觀。Vmlab 在這方麵要做得好一些。
    VMLAB 的全稱為(wei) :Visual Micro Lab。它針對於(yu) AVR 以及ST62 係列單片機設計,是一個(ge) 單片機的虛擬原型框架。它具有強大的多窗口、多文件的編輯器,微控製器的集成開發環境,擁有一係列的集成開發工具,圖形界麵調試器,混合模式的模擬-數字電路仿真器,代碼質量檢查器等等。硬件和應用軟件能進行並發仿真。與(yu) Proteus 最為(wei) 相似的一點是它可以以單片機為(wei) 核心仿真出包括模擬元器件在內(nei) 的一些動態外設(按鍵,LED,液晶顯示器等),具有圖形顯示和波形顯示的功能。
    如果就單片機及一些簡單的動態外設而言,Vmlab 和Proteus 有著很大的相似,最多隻是軟件本身的操作方法有著很大的不同。但是Proteus 不僅(jin) 僅(jin) 是一個(ge) AVR 單片機的仿真軟件,它所支持的大量常用芯片模型為(wei) 單片機和其他芯片協同仿真複雜的完整係統提供了極大的方便。請看下麵的例子,如圖2.2 所示。
 
圖2.2 步進電機驅動
    這是一個(ge) 完整的步進電機驅動電路,L297 和L298 是常用的步進電機驅動芯片,前者用於(yu) 產(chan) 生符合電機各個(ge) 相位正確時序的方波,後者主要用於(yu) 電流放大,為(wei) 電機產(chan) 生合適的驅動電流。單片機EXAMPLE02 在本例中隻相當於(yu) 一個(ge) 信號源,提供L297 的時鍾信號。這樣完整的係統仿真是其他單片機仿真軟件所不能獨立完成的。這時,Proteus 為(wei) 我們(men) 提供的不僅(jin) 僅(jin) 是一個(ge) 單片機的仿真環境,稱其為(wei) 一個(ge) 虛擬的單片機實驗室是完全合適的,隻要我們(men) 能充分的利用Proteus 提供的實驗器件就可以完成一個(ge) 比較完整的單片機係統。

3.Proteus 仿真實例分析
    單片機、矩陣鍵盤和字符型液晶的組合是單片機實驗中最常用的簡單係統之一,是很多最小係統板的核心部分。在開發實際的單片機係統時,“人機對話”部分主要靠這個(ge) 係統來實現。在編寫(xie) 這部分程序時要進行頻繁的測試從(cong) 而更改一些參數使係統達到良好的工作狀態,常見的問題有:顯示界麵的布局、菜單層次的設置、按鍵靈敏度和防抖的參數等。有了下麵介紹的Proteus 仿真,這些測試和一些經驗值的調整就可以不需要進行頻繁的硬件測試了,而隻需要改動源程序中的一些函數調用。這個(ge) 係統可以稍加改動輕鬆應用於(yu) 其他各類係統的輸入和輸出部分,具有普遍意義(yi) 。

3.1.1602 字符型液晶簡介
    該顯示模塊由字符型液晶顯示屏(LCD),控製驅動主電路HD44780 及其擴展驅動電路HD44100,少量阻、容元件,結構件等裝配在PCB 板上而成。液晶顯示屏是以若幹個(ge) 5×8或5×11 點陣塊組成的顯示字符群。每個(ge) 點陣塊為(wei) 一個(ge) 字符位,字符間距和行距都為(wei) 一個(ge) 點的寬度。
    該字符型LCD 具有字符發生器ROM 可顯示192 種字符(160 個(ge) 5×7 點陣字符和32 個(ge) 5×10 點陣字符)具有64 個(ge) 字節的自定義(yi) 字符RAM,可自定義(yi) 8 個(ge) 5×8 點陣字符或四個(ge) 5×11點陣字符。且具有80 個(ge) 字節的RAM。可以分兩(liang) 行、每一行顯示16 個(ge) ASCII 字符,足以應付簡單用戶界麵(主要由數字和英文字母組成)的開發和係統參數的顯示。

3.2.4*4 矩陣鍵盤
    4*4 矩陣鍵盤有4 行4 列,鍵盤上有4*4=16 個(ge) 按鍵,而它隻需要占用4+4=8 個(ge) I/O口,這樣的設計大大節省了單片機寶貴的I/O口資源[2]。單片機提供一定頻率的掃描信號並對用戶的按鍵值進行分析和處理,達到正確判斷16 個(ge) 按鍵的目的。對於(yu) 一般的單片機係統,16 個(ge) 按鍵足以滿足多數應用的需求。因此,它可以作為(wei) 很多係統的按鍵輸入工具。

3.3.係統綜合分析
    根據以上的分析,以及各器件的工作原理,繪製係統原理圖3.1。
 
圖3.1 液晶和鍵盤綜合應用
    單片機EXAMPLE03 是這個(ge) 係統的核心,下載的程序是液晶和鍵盤的驅動。其中PC0-PC2 分別連接液晶的三個(ge) 控製使能端,通過它們(men) 的譯碼組合來實現液晶讀寫(xie) 指令和數據的控製。PB0-PB7 連接液晶的八位數據端,負責控製命令和讀寫(xie) 字符的數據傳(chuan) 輸。PA0-PA3是輸出端,連接鍵盤的4 列,輸出列掃描信號;PA4-PA7 是輸入端,連接鍵盤的4 行,捕捉用戶的按鍵作為(wei) 行信號,通過行列信號的組合可以唯一確定16 個(ge) 按鍵之一,從(cong) 而供單片機處理。
    圖中模擬的情況是,液晶的第一行顯示預置的字符串信息“BUPT_Information”,第二行第一列顯示當前的按鍵值,此時鼠標按下了數字健“6”。當鼠標按下其他的健時,液晶的顯示會(hui) 同步更新,這就是Proteus 實時動態仿真的神奇之所在!

4.結語
    本文所介紹的隻是Proteus 強大功能中很初步的一部分。Proteus 還具有環境模擬、圖表分析、噪聲分析等高級應用。Proteus 軟件的安裝目錄中有很多經典的範例,讀者通過自學可以進一步了解該軟件在EDA 設計的各個(ge) 領域的綜合應用。同時,Proteus 的出現也為(wei) 單片機教學工作和單片機虛擬實驗室的建設提供了一條方便、快捷、節約成本的新思路。相信隨著越來越多的人對Proteus 的了解和使用,它會(hui) 對我們(men) 的學習(xi) 、科研和工作帶來越來越多的便利。

參考文獻
[1] https://www.labcenters.co.uk
[2] 黃任,《AVR 單片機與(yu) CPLD/FPGA 綜合應用入門》,.北京:北京航空航天大學出版社 2004

Tags:Proteus,單片機實時動態仿真  
責任編輯:admin
請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個字
[ 查看全部 ] 網友評論
關於我們 - 聯係我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁麵
下到頁底
晶體管查詢