對于單片機語音芯片來說,仿真器這一專用工具不僅可以調(diào)試您的程序,而且還可以幫助您識別設(shè)計工程中的一些潛在的硬件和軟件問題。仿真器應(yīng)用廣泛這是毋庸置疑的,不僅單片機這一領(lǐng)域,連語音芯片的FPGA、CPLD和嵌入式系統(tǒng)都可以見到它的身影。
當然,想FPGA、CPLD和嵌入式系統(tǒng)這些貨可是自帶仿真功能,這樣更方便設(shè)計更接近實際應(yīng)用環(huán)境,直接就是線路板上調(diào)試,節(jié)省許多麻煩。
對于單片機語音芯片來說,仿真器這一專用工具不僅可以調(diào)試您的程序,而且還可以幫助您識別設(shè)計工程中的一些潛在的硬件和軟件問題。仿真器應(yīng)用廣泛這是毋庸置疑的,不僅單片機這一領(lǐng)域,連語音芯片的FPGA、CPLD和嵌入式系統(tǒng)都可以見到它的身影。
當然,想FPGA、CPLD和嵌入式系統(tǒng)這些貨可是自帶仿真功能,這樣更方便設(shè)計更接近實際應(yīng)用環(huán)境,直接就是線路板上調(diào)試,節(jié)省許多麻煩。那么一般語音芯片所需使用到的仿真器有哪些?和九芯電子的小編一起去看看吧。
獨立仿真器
這類仿真器一般都是采用專用的一個仿真設(shè)備。一般里面使用一顆FPGA,CPLD或者運算能力比你實際要用的芯片運算能力強的芯片。因為一般仿真器的仿真都是用運算和功能強的芯片去模擬實際引用的芯片。主要是因為兩個芯片的指令集不同,用運算能力強的芯片去模擬實際用的指令集?;蛘卟捎靡活w專門的仿真芯片,這個芯片的內(nèi)核是跟實際應(yīng)用的芯片相同,只是它是專門用來仿真的。一般度搜占用一個UART串口來跟電腦進行通信、對程序仿真。
線仿真
線仿真又稱自仿真,是語音芯片內(nèi)部自帶仿真功能,采用一種叫做邊界掃描的方式,講運算的結(jié)果和內(nèi)存里的數(shù)據(jù)等信息傳送到上位機計算機上,達到仿真的目的?,F(xiàn)市場上含ARM、CORTEX-M0-M、COTEX內(nèi)核這類貨芯片一般內(nèi)部具備仿真單元,采用標準的通信接口JTAGE,通過一個轉(zhuǎn)換設(shè)備進行與計算機的通信,來下載寫入程序、調(diào)試程序以及斷點設(shè)置。
單片機仿真器
一、單片機仿真器定義
單片機仿真器是指以調(diào)試單片機軟件為目的而專門設(shè)計制作的一套專用的硬件裝置。單片機仿真器具有基本的輸入輸出裝置,具備支持程序調(diào)試的軟件,使得單片機開發(fā)人員可以通過單片機仿真器輸入和修改程序,觀察程序運行結(jié)果與中間值,同時對與單片機配套的硬件進行檢測與觀察,可以大大提高單片機的編程效率和效果。
二、單片機仿真器有什么作用
1.可以對單片機程序進行單步跟蹤調(diào)試,也可以使用斷點、全速等調(diào)試手段,并可觀察各種變量、RAM及寄存器的實時數(shù)據(jù),跟蹤程序的執(zhí)行情況。
2.使得單片機開發(fā)人員可以通過單片機仿真器輸入和修改程序,觀察程序運行結(jié)果與中間值,同時對與單片機配套的硬件進行檢測與觀察,可以大大提高單片機的編程效率和效果。
3.可以對硬件電路進行實時的調(diào)試。利用單片機仿真器可以迅速找到并排除程序中的邏輯錯誤,大大縮短單片機開發(fā)的周期。
4.對初學(xué)者來說,降低了調(diào)試與開發(fā)難度。非常有利于初學(xué)者學(xué)習(xí)。
三、總結(jié)
以上就是關(guān)于單片機仿真器是什么?有什么作用的全部內(nèi)容分享??偠灾?,單片機仿真器就是以調(diào)試單片機軟件為目的而專門設(shè)計制作的一套專用的硬件裝置,它可以提高單片機的編程效率和效果。
一個理想的 使開發(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)管腳完全一致。
在線仿真器基本功能的實現(xiàn)
單步(Step),全速(Run)
仿真監(jiān)控電路將A/D總線的控制權(quán)交給bond-out MCU,bond-out
MCU先給出指令地址,再使能SRAM讀信號,得到程序代碼,依次解碼并執(zhí)行。
斷點(BreakPoint)
見圖2。斷點電路由存貯斷點位置的SRAM和斷點監(jiān)控電路組成。存貯斷點位置的SRAM與存貯用戶程序的SRAM的地址總線并接,SRAM的某個數(shù)據(jù)位作為斷點信息存貯位,在下載用戶程序的同時將設(shè)置有斷點的地址上該位置為1,其余為0。當仿真器在全速運行時,該SRAM設(shè)為讀狀態(tài),斷點判斷電路監(jiān)控此數(shù)據(jù)位,當其為高時停止仿真器全速運行。
跟蹤記錄已執(zhí)行的程序(Trace)
見圖3。Trace電路由存貯Trace內(nèi)容的SRAM和Trace監(jiān)控電路組成。Trace SRAM的數(shù)據(jù)總線與bond-out
MCU地址總線并接,Trace SRAM的地址控制信號由Trace監(jiān)控電路產(chǎn)生。在仿真器初始化時Trace
SRAM的地址被設(shè)置為0,當用戶要求開始記錄已執(zhí)行的程序,在每個中,Trace SRAM的地址自加一并將bond-out
MCU地址寫入SRAM中。在PC要讀取Trace內(nèi)容時,bond-out
MCU依次執(zhí)行過的程序地址被上載到PC端并對應(yīng)列出該地址上的指令代碼。Trace
的記錄長度受SRAM大小限制,當超出記錄長度時前面的數(shù)據(jù)會被覆蓋。