日韩欧美视频第二区,秋霞成人午夜鲁丝一区二区三区,美女日批视频在线观看,av在线不卡免费

電子開發網

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

Proteus 與單片機實時動態仿真

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

還可以輸入 200 個字
[ 查看全部 ] 網友評論
關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁面
下到頁底
晶體管查詢
主站蜘蛛池模板: 靖边县| 新巴尔虎右旗| 清徐县| 光泽县| 连州市| 贡嘎县| 红原县| 铜梁县| 竹山县| 大石桥市| 沙田区| 蓬安县| 新巴尔虎右旗| 古浪县| 邵阳市| 时尚| 巩义市| 和政县| 宁国市| 田林县| 丁青县| 石柱| 南涧| 宿松县| 万载县| 江北区| 罗江县| 皮山县| 兰州市| 普兰县| 北碚区| 增城市| 余干县| 福建省| 成安县| 泸水县| 修水县| 凌源市| 略阳县| 高安市| 太保市|