仿真器—模擬系統(tǒng)的外在表現(xiàn)
仿真器概述
在嵌入式系統(tǒng)的設(shè)計(jì)中,仿真應(yīng)用的范圍主要集中在對(duì)程序的仿真上。例如,在單片機(jī)的開發(fā)過程中,程序的設(shè)計(jì)是最為重要的但也是難度最大的一種最簡單和原始的開發(fā)流程是:編寫程序燒寫芯片驗(yàn)證功能,這種方法對(duì)于簡單的小系統(tǒng)是可以對(duì)付的,但在大系統(tǒng)中使用這種方法則是完全不可能的。
仿真器種類
1)軟件仿真:這種方法主要是使用計(jì)算機(jī)軟件來模擬運(yùn)行,實(shí)際的單片機(jī)運(yùn)行因此仿真與硬件無關(guān)的系統(tǒng)具有一定的優(yōu)點(diǎn)。用戶不需要搭建硬件電路就可以對(duì)程序進(jìn)行驗(yàn)證,特別適合于偏重算法的程序。軟件仿真的缺點(diǎn)是無法完全仿真與硬件相關(guān)的部分,因此最終還要通過硬件仿真來完成最終的設(shè)計(jì)。
2)硬件仿真:使用附加的硬件來替代用戶系統(tǒng)的單片機(jī)并完成單片機(jī)全部或大部分的功能。使用了附加硬件后用戶就可以對(duì)程序的運(yùn)行進(jìn)行控制,例如單步,全速,查看資源斷點(diǎn)等。硬件仿真是開發(fā)過程中所必須的。
仿真器原理
仿真器內(nèi)部的P口等硬件資源和51系列單片機(jī)基本是完全兼容的。仿真主控程序被存儲(chǔ)在仿真器芯片特殊的指定空間內(nèi),有一段特殊的地址段用來存儲(chǔ)仿真主控程序,仿真主控程序就象一臺(tái)電腦的操作系統(tǒng)一樣控制仿真器的正確運(yùn)轉(zhuǎn)。仿真器和電腦上的上位機(jī)軟件(即KEIL)是通過串口相連的,通過仿真器芯片的RXD和TXD負(fù)責(zé)接收電腦主機(jī)發(fā)來的控制數(shù)據(jù),TXD負(fù)責(zé)給電腦主機(jī)發(fā)送反饋信息。控制指令由KEIL發(fā)出,由仿真器內(nèi)部的仿真主控程序負(fù)責(zé)執(zhí)行接收到的數(shù)據(jù),并且進(jìn)行正確的處理。進(jìn)而驅(qū)動(dòng)相應(yīng)的硬件工作,這其中也包括把接收到的BIN或者其它格式的程序存放到仿真器芯片內(nèi)部用來存儲(chǔ)可執(zhí)行程序的存儲(chǔ)單元(這個(gè)過程和把程序燒寫到51芯片里面是類似的,只是仿真器的擦寫是以覆蓋形式來做的),這樣就實(shí)現(xiàn)了類似編程器反復(fù)燒寫來試驗(yàn)的功能!不同的是通過仿真主控程序可以做到讓這些目標(biāo)程序做特定的運(yùn)行,比如單步、指定斷點(diǎn)、指定地址等,并且通過KEIL可時(shí)時(shí)觀察到單片機(jī)內(nèi)部各個(gè)存儲(chǔ)單元的狀態(tài)。仿真器和電腦主機(jī)聯(lián)機(jī)后就象是兩個(gè)精密的齒輪相互咬合的關(guān)系,一量強(qiáng)行中斷這種聯(lián)系(比如強(qiáng)行給仿真器手動(dòng)復(fù)位或都撥支聯(lián)機(jī)線等),電腦就會(huì)提示聯(lián)機(jī)出現(xiàn)問題,這也體現(xiàn)了硬件仿真的特性,即"所見即所得"。這些都是編程器無法做到的。這些給調(diào)試、修改、以及生成最終程序創(chuàng)造了比較有力的保證,從而實(shí)現(xiàn)較高的效率。
總結(jié)
仿真器(emulator)以某一系統(tǒng)復(fù)現(xiàn)另一系統(tǒng)的功能。與計(jì)算機(jī)模擬(Computer Simulation)的區(qū)別在于,仿真器致力于模仿系統(tǒng)的外在表現(xiàn)、行為,而不是模擬系統(tǒng)的抽象模型。
檢索范圍: |
關(guān) 鍵 字: |