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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 用VMLAB進(jìn)行AVR單片機(jī)硬件/軟件協(xié)仿真

          用VMLAB進(jìn)行AVR單片機(jī)硬件/軟件協(xié)仿真

          作者: 時(shí)間:2012-04-19 來(lái)源:網(wǎng)絡(luò) 收藏

          前言

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

          應(yīng)用開發(fā)過(guò)程中,當(dāng)源文件的編譯成功后,就要調(diào)試工作。調(diào)試可分為兩大類--芯片級(jí)和代碼級(jí)仿真。芯片級(jí)仿真是指使用仿真和ICE工具相配合,在實(shí)際仿真調(diào)試工作;而代碼級(jí)仿真則完全在計(jì)算機(jī)上完成,不需要的參與。兩種類型的仿真各有特點(diǎn),使用的場(chǎng)合不同。本文基于,講述了硬件/協(xié)同仿真的方法。

          的全稱為:VisualMicroLab。它針對(duì)于以及ST62系列設(shè)計(jì),是一個(gè)單片機(jī)的虛擬原型(virtualprototype)框架(frame),它可以提供給用戶一個(gè)真正意義上的虛擬微控制器(MCU)設(shè)計(jì)實(shí)驗(yàn)室。它具有強(qiáng)大的多窗口、多文件的編輯器,微控制器的集成開發(fā)環(huán)境,擁有一系列的集成開發(fā)工具,圖形界面調(diào)試器,混合模式的模擬-數(shù)字電路仿真器,代碼質(zhì)量檢查器等等。硬件和應(yīng)用能進(jìn)行并發(fā)仿真,與之相比,在線硬件仿真器(ICE)顯得失去了意義。可以基于MCU,仿真出包括模擬元器件在內(nèi)的更多外圍設(shè)備,并且它具有交互式器件(按鍵,電位計(jì),液晶顯示器)模擬仿真功能。

          在VMLAB中進(jìn)行協(xié)同仿真

          首先,先介紹兩個(gè)概念:

          1)虛擬原型(virtualprototype)

          虛擬原型是一個(gè)具體應(yīng)用的集中體現(xiàn),是包括軟件和硬件在內(nèi)的一個(gè)集合體。虛擬原型的作用是在實(shí)現(xiàn)這種應(yīng)用之前,將其行為實(shí)現(xiàn)模擬出來(lái)。

          2)硬件/軟件協(xié)仿真(hw/swco-simulation)

          硬件/軟件協(xié)仿真是指對(duì)于某一個(gè)特定應(yīng)用而言,包括硬件和軟件在內(nèi)的全部特性都用一個(gè)虛擬原型來(lái)模擬實(shí)現(xiàn)。VMLAB是基于一個(gè)叫做CCCP(ConcurrentCo-simulatorofCircuitsandProcessors)的協(xié)仿真引擎來(lái)實(shí)現(xiàn)協(xié)仿真的。

          采用基于具體應(yīng)用的虛擬原型的一大好處就是:硬件部分可以通過(guò)虛擬原型來(lái)模擬仿真,這無(wú)疑會(huì)提高開發(fā)速度不再需要在線仿真器(ICE)工具,成本無(wú)疑會(huì)大大降低。

          在VMLAB中,仿真是通過(guò)工程文件*。prj來(lái)管理的。工程文件的一些語(yǔ)法關(guān)鍵字如表1所示。

          表1:VMLAB工程文件語(yǔ)法關(guān)鍵字

          仿真實(shí)驗(yàn)需要按如下步驟進(jìn)行:

          1)生成一個(gè)工程文件,選擇單片機(jī)類型,指定源文件。

          2)在工程文件中添加或修改單片機(jī)外圍的硬件連接關(guān)系。

          3)在菜單欄view'CodeNotebook窗口中,新建或者修改源文件代碼。

          4)用菜單欄project'build命令(或者F9鍵)編譯生成硬件/軟件數(shù)據(jù)庫(kù),可以通過(guò)菜單欄view'Messages窗口中的CodeMaker項(xiàng)來(lái)觀察出錯(cuò)或者警告信息。

          5)當(dāng)編譯無(wú)錯(cuò)誤的時(shí)候,VMLAB工具欄中的綠燈便會(huì)點(diǎn)亮。單擊這個(gè)綠燈,仿真便會(huì)一直運(yùn)行下去,可以用工具欄來(lái)控制仿真流程,也可以用菜單欄Run'……來(lái)控制仿真流程。

          6)當(dāng)所有應(yīng)用特性仿真通過(guò)之后,將*。hex文件下載到單片機(jī)上。

          VMLAB中的基本硬件庫(kù)簡(jiǎn)介

          VMLAB中的基本硬件庫(kù)分為四個(gè)部分,每個(gè)部分包含有不同的基本硬件。

          1)基本模擬器件

          包括電阻,接地電容,接地按鍵,LED四種。其中按鍵和LED全部接在控制面板上面,如圖1所示。

          2)電壓產(chǎn)生器

          包括脈沖電壓源,正弦波電壓源,電位計(jì)(滑動(dòng)變阻器)三種。

          3)互式非歸零碼發(fā)生器(NRZ-generator)

          4)其它宏模型(Macro-models)

          包括:運(yùn)算放大器(OPAMP),比較器(COMP),兩輸入或非門(ND2),8位DA轉(zhuǎn)換器(D2A8),RS232,LCD模型,I2C監(jiān)視器,44矩陣鍵盤。

          協(xié)仿真實(shí)例

          如圖2所示,一個(gè)交流小信號(hào)經(jīng)過(guò)運(yùn)放放大,加入到單片機(jī)Atmega16的AD輸入端。

          外圍電路的連接可以通過(guò)在工程文件中添加如下行信息來(lái)實(shí)現(xiàn):

          ;-------------------------------------------------------------

          XopOPAMPampposampnegPA7;添加一個(gè)運(yùn)算放大器

          R1GNDampneg100K;添加R1

          R2PA7ampneg300K;添加R2

          VsinampposVSSSIN(0。40。220);添加一個(gè)信號(hào)源,

          。PLOTV(PA7)V(amppos);在scope窗口中觀察PA7和amppos節(jié)點(diǎn)的電壓

          狀態(tài)

          ;-------------------------------------------------------------

          在VMLAB中,用戶可以自己定義仿真節(jié)點(diǎn)名稱,例如上面的amppos和ampneg就是兩個(gè)用戶自己定義的節(jié)點(diǎn),可以在節(jié)點(diǎn)名稱中使用字母、下劃線和數(shù)字,也可以使用VMLAB中預(yù)先定義好的各種類型單片機(jī)的管腳。

          結(jié)束語(yǔ)

          與其它類似代碼級(jí)仿真工具相比,VMLAB的優(yōu)勢(shì)在于--硬件仿真完全基于計(jì)算機(jī)完成,無(wú)需實(shí)際硬件的加入。作為一個(gè)仿真平臺(tái),VMLAB不但能夠仿真出MCU和其它外圍設(shè)備的大部分特性,而且能夠?qū)ι婕澳M量的應(yīng)用進(jìn)行協(xié)同仿真。VMLAB的仿真功能甚至可以同ICE硬件工具相媲美,VMLAB使用又無(wú)疑會(huì)在開發(fā)成本方面會(huì)大為降低。

          經(jīng)緯儀相關(guān)文章:經(jīng)緯儀原理


          評(píng)論


          相關(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); })();