一個理想的 使開發(fā)者能觀察到單片機內(nèi)部的操作,仿真器是使替代單片機并使單片機操作可視化的硬件工具。
一個ICE應(yīng)包括兩個接口,一個是連接到目標板上的MCU插座,另一個與PC相連。仿真器應(yīng)該與目標MCU在電氣及物理上等價,并能在開發(fā)系統(tǒng)中替代MCU。目標系統(tǒng)的操作可由PC得以控制及觀察。在開發(fā)初期,開發(fā)系統(tǒng)依靠仿真器工作,當目標功能完善后,仿真器將被真正的MCU取代。
ICE的功能及特性:
在主機與目標系統(tǒng)間產(chǎn)生對應(yīng)的程序區(qū),host memory作為仿真程序區(qū)(emulator memory)或Shadow memory
脫離目標硬件實時測試代碼
單步(Step),全速(Run),從特定的狀態(tài)運行到特定的狀態(tài)或到斷點(BreakPoint)。這通常指特定的地址,但也可以是特定的觸發(fā)條件。
修改MCU Register值
在線修改Memory內(nèi)容
實時跟蹤記錄已執(zhí)行的程序(Trace)
ICE設(shè)計中的難點及局限性:
ICE功能的實現(xiàn)需要與MCU的data bus,address bus,control bus相連,而實際芯片三往往不連外部引腳
電氣上:ICE的驅(qū)動能力及時序需要與MCU完全相同,而ICE的外加電纜及電路必將降低負載能力及改變時序特性,引起一些目標系統(tǒng)在極限狀態(tài)下與ICE聯(lián)調(diào)往往會失敗。
一個常見的現(xiàn)象是一個系統(tǒng)用ICE調(diào)試完成最終用實際MCU取代ICE可保證運行,但若硬件開發(fā)過程中未用ICE,為了調(diào)試軟件問題在中途使用了ICE,往往會在時序及負載上出現(xiàn)問題。
理想的是所以的引腳的所以功能與MCU相同,而實際上不少低端仿真器占用了一個中斷資源以控制監(jiān)控程序的運行
使用ICE的主要優(yōu)點在于:
軟件設(shè)計及實時測試可先于實際硬件完成
提供了修改,顯示memory及register的功能,提供了系統(tǒng)的開發(fā)效率
bond-out
MCU是芯片設(shè)計公司為實現(xiàn)其商用MCU的仿真功能,將內(nèi)部的數(shù)據(jù),地址及控制總線連接到芯片的管腳上,使得外部仿真邏輯可以監(jiān)視和控制MCU內(nèi)部的狀態(tài)。一個ICE的質(zhì)量很大程度上依賴于它與其要仿真的MCU之間的吻合程度,bond-out
MCU能最大程度上提供ICE與商用MCU的無差別替換。
基于bond-out MCU的在線仿真器的結(jié)構(gòu)
見圖1。系統(tǒng)包括三部分,bond-out MCU,存貯用戶程序的SRAM及仿真監(jiān)控電路。bond-out
MCU的數(shù)據(jù),地址總線連接到SRAM,作為外部程序儲存器。同時數(shù)據(jù),地址及控制總線連接到仿真監(jiān)控電路,使ICE可以監(jiān)視和控制bond-out
MCU的運行狀態(tài)。與PC相連的通訊接口根據(jù)速度及成本可選用串口,并口或USB接口。bond-out
MCU從本質(zhì)上將是商用MCU的一種擴展,它包括所有商用MCU上的I/O并提供給用戶使用,其電氣與時序上應(yīng)保證與商用MCU對應(yīng)管腳完全一致。
1、早期的單片機內(nèi)部沒有ROM,比如8031、8032,這種單片機只能外部擴展紫外擦除的EPROM存儲器,就是芯片上帶窗口的ROM。紫外擦除的ROM需要用紫外燈照射較長時間(10分鐘或者更多)才能擦掉芯片中的內(nèi)容以便寫入新的程序。
2、有的單片機內(nèi)部ROM是一次寫入成型的,比如8751,程序?qū)懭雴纹瑱C的ROM之后就不能被擦除。
h1654155282.3538 ? 來源:網(wǎng)絡(luò)整理 ? 2018-04-13 17:28 ? 12148次閱讀
仿真器出現(xiàn)的原因
1、早期的單片機內(nèi)部沒有ROM,比如8031、8032,這種單片機只能外部擴展紫外擦除的EPROM存儲器,就是芯片上帶窗口的ROM。紫外擦除的ROM需要用紫外燈照射較長時間(10分鐘或者更多)才能擦掉芯片中的內(nèi)容以便寫入新的程序。
2、有的單片機內(nèi)部ROM是一次寫入成型的,比如8751,程序?qū)懭雴纹瑱C的ROM之后就不能被擦除。
仿真器的種類
1、軟件仿真器
這種方法主要是使用計算機軟件來模擬運行,實際的單片機運行因此仿真與硬件無關(guān)的系統(tǒng)具有一定的優(yōu)點。用戶不需要搭建硬件電路就可以對程序進行驗證,特別適合于偏重算法的程序。軟件仿真的缺點是無法完全仿真與硬件相關(guān)的部分,因此最終還要通過硬件仿真來完成最終的設(shè)計。
2、硬件仿真器
使用附加的硬件來替代用戶系統(tǒng)的單片機并完成單片機全部或大部分的功能。使用了附加硬件后用戶就可以對程序的運行進行控制,例如單步,全速。
單片機仿真器是什么
單片機仿真器是指以調(diào)試單片機軟件為目的而專門設(shè)計制作的一套專用的硬件裝置。
單片機仿真器的作用
單片 機仿真器是一種在電子產(chǎn)品開發(fā)階段代替單片機芯片進行軟硬件調(diào)試的開發(fā)工具。配合集成開發(fā)環(huán)境使用仿真器可以對單片機程序進行單步跟蹤調(diào)試,也可以使用斷點、全速等調(diào)試手段,并可觀察各種變量、RAM及寄存器的實時數(shù)據(jù),跟蹤程序的執(zhí)行情況。
同時還可以對硬件電路進行實時的調(diào)試。利用單片機仿真器可以迅速找到并排除程序中的邏輯錯誤,大大縮短單片機開發(fā)的周期。在現(xiàn)場只利用燒錄器反復燒寫單片機,通過肉眼觀察結(jié)果進行開發(fā)的方法大大增加了調(diào)試的難度,延長了整個開發(fā)周期,并且不容易發(fā)現(xiàn)程序中許多隱含的錯誤,特別對于單片機開發(fā)經(jīng)驗不豐富的初學者來說更加困難,由此可見,單片機仿真器單片機系統(tǒng)開發(fā)中發(fā)揮著重要的作用。
單片機仿真器的工作原理
仿真器內(nèi)部的P口等硬件資源和51系列單片機基本是完全兼容的。仿真主控程序被存儲在仿真器芯片特殊的指定空間內(nèi),有一段特殊的地址段用來存儲仿真主控程序,仿真主控程序就象一臺電腦的操作系統(tǒng)一樣控制仿真器的正確運轉(zhuǎn)。
仿真器和電腦的上位機軟件(即KEIL)是通過串口相連的,通過仿真器芯片的RxD和TxD端口和電腦的串行口做聯(lián)機通訊,RxD負責接收電腦主機發(fā)來的控制數(shù)據(jù),TxD負責給電腦主機發(fā)送反饋信息??刂浦噶钣蒏EIL發(fā)出,由仿真器內(nèi)部的仿真主控程序負責執(zhí)行接收到的數(shù)據(jù),并且進行正確的處理。進而驅(qū)動相應(yīng)的硬件工作,這其中也包括把接收到的BIN或者其他格式的程序存放到仿真器芯片內(nèi)部用來存儲可執(zhí)行程序的存儲單元(這個過程和把程序燒寫到51芯片里面是類似的,只是仿真器的擦寫是以覆蓋形式來做的),這樣就實現(xiàn)了類似編程器反復燒寫來試驗的功能!
不同的是,通過仿真主控程序可以做到讓這些目標程序,做特定的運行,比如單步、指定端點、指定地址的等,并且通過KEIL可是時時觀察到單片機內(nèi)部各個存儲單元的狀態(tài)。仿真器和電腦主機聯(lián)機后就象是兩個精密的齒輪互相咬合的關(guān)系,一旦強行中斷這種聯(lián)系(比如強行給仿真器手動復位或者拔去聯(lián)機線等),電腦就會提示聯(lián)機出現(xiàn)問題,這也體現(xiàn)了硬件仿真的鮮明特性,即“所見即所得”。這些都是編程器無法做到的。這些給調(diào)試、修改、以及生成最終程序創(chuàng)造了比較有力的保證,從而實現(xiàn)較高的效率。
單片機仿真器的發(fā)展
最早的單片機仿真器是一套獨立裝置,具有專用的鍵盤和顯示器,用于輸入程序并顯示運行結(jié)果;隨著PC機的普及,新一代的仿真器大多數(shù)都是利用PC機作為標準的輸入輸出裝置,而仿真器本身成為微機和目標系統(tǒng)之間的接口而已,仿真方式也從最初的機器碼發(fā)展到匯編語言、C語言仿真,仿真環(huán)境也與PC機上的高級語言編程與調(diào)試環(huán)境非常類似了。
仿真機一般具有一個仿真頭,用于取代目標系統(tǒng)中的單片機,也就是用這個插頭模仿單片機,這也是單片機仿真器名稱的由來。
目前,隨著單片機的小型化,貼片化和具有ISP,IAP等功能的單片機的廣泛應(yīng)用,傳統(tǒng)單片機仿真器的應(yīng)用范圍也有所縮小。而軟件單片機仿真器(即單片機仿真程序)的應(yīng)用逐漸廣泛,單片機仿真程序即在個人計算機上運行的特殊程序,可在一定程度上模擬單片機運行的硬件環(huán)境,并在該環(huán)境下運行單片機目標程序,并可對目標程序進行調(diào)試、斷點、觀察變量等操作,可大大提升單片機系統(tǒng)的調(diào)試效率。純軟件單片機仿真器往往與硬件設(shè)計程序集成在一起發(fā)布,使得開發(fā)者可以對單片機硬件與軟件進行同步開發(fā)。
單片機仿真器是一種用于測試和驗證單片機(MCU)程序的電子設(shè)備,它可以模擬MCU在實際硬件上的工作狀態(tài),從而實現(xiàn)單片機程序的調(diào)試、測試和驗證。
單片機仿真器的工作原理
單片機仿真器的工作原理主要是通過建立一種類似于虛擬機的環(huán)境,將單片機的硬件和軟件模擬出來,從而實現(xiàn)對單片機程序的模擬和調(diào)試。具體來說,單片機仿真器主要包括以下幾個部分:
仿真器芯片:負責將電腦與單片機連接起來,并傳遞指令和數(shù)據(jù)。
仿真器軟件:負責將單片機程序加載到仿真器芯片中,并根據(jù)指令和數(shù)據(jù)模擬出單片機的運行狀態(tài)。
目標板:用于連接單片機和仿真器芯片,并模擬出單片機的硬件環(huán)境。
當單片機程序被加載到仿真器軟件中后,仿真器軟件會將指令和數(shù)據(jù)發(fā)送到仿真器芯片,仿真器芯片根據(jù)指令和數(shù)據(jù)再將其傳遞給目標板。目標板在接收到指令和數(shù)據(jù)后,通過模擬單片機的硬件環(huán)境,將其轉(zhuǎn)化為單片機的實際運行狀態(tài)。仿真器軟件再根據(jù)單片機的實際運行狀態(tài),模擬出單片機的輸出結(jié)果,從而實現(xiàn)對單片機程序的模擬和調(diào)試。
單片機仿真器的應(yīng)用
單片機仿真器是一種非常重要的電子工具,主要應(yīng)用于以下方面:
單片機程序的開發(fā)和調(diào)試:通過單片機仿真器,可以快速、準確地測試和驗證單片機程序。
單片機故障分析:當單片機發(fā)生故障時,可以通過單片機仿真器對其進行診斷和分析。
單片機應(yīng)用系統(tǒng)的調(diào)試和優(yōu)化:單片機仿真器可以幫助工程師對單片機應(yīng)用系統(tǒng)進行調(diào)試和優(yōu)化,提高其性能和穩(wěn)定性。
總的來說,單片機仿真器在單片機開發(fā)、測試和應(yīng)用中發(fā)揮著非常重要的作用,對提高單片機的效率、可靠性和穩(wěn)定性具有重要的意義。