新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 學(xué)習(xí)方法與實(shí)踐 > 80C51 系列單片機(jī)仿真器選購(gòu)指南

80C51 系列單片機(jī)仿真器選購(gòu)指南

——
作者: 時(shí)間:2007-10-26 來(lái)源:網(wǎng)絡(luò) 收藏
第一章   為什么要使用? 
1.1 仿真的概念 

    仿真的概念其實(shí)使用非常廣,最終的含義就是使用可控的手段來(lái)模仿真實(shí)的情況。 

    在嵌入式系統(tǒng)的設(shè)計(jì)中,仿真應(yīng)用的范圍主要集中在對(duì)程序的仿真上。例如,在的開發(fā)過程中,程序的設(shè)計(jì)是最為重要的但也是難度最大的。一種最簡(jiǎn)單和原始的開發(fā)流程是:編寫程序-燒寫芯片-驗(yàn)證功能,這種方法對(duì)于簡(jiǎn)單的小系統(tǒng)是可以對(duì)付的,但在大系統(tǒng)中使用這種方法則是完全不可能的。

1.2  仿真的種類 

    軟件仿真:這種方法主要是使用計(jì)算機(jī)軟件來(lái)模擬運(yùn)行實(shí)際的運(yùn)行,因此仿真與硬件無(wú)關(guān)的系統(tǒng)具有一定的優(yōu)點(diǎn)。用戶不需要搭建硬件電路就可以對(duì)程序進(jìn)行驗(yàn)證,特別適合于偏重算法的程序。軟件仿真的缺點(diǎn)是無(wú)法完全仿真與硬件相關(guān)的部分,因此最終還要通過硬件仿真來(lái)完成最終的設(shè)計(jì)。 

    硬件仿真:使用附加的硬件來(lái)替代用戶系統(tǒng)的并完成單片機(jī)全部或大部分的功能,使用了附加硬件后用戶就可以對(duì)程序的運(yùn)行進(jìn)行控制,例如單步,全速,查看資源,斷點(diǎn)等。硬件仿真是開發(fā)過程中所必須的。

1.3  為什么要使用

    在與一些有經(jīng)驗(yàn)的工程師交談中,我們會(huì)發(fā)現(xiàn)有相當(dāng)一部分工程師在開發(fā)中不使用或很少。向他們?cè)儐栐颍玫降幕卮鹗恰胺抡嫫鞑豢煽俊?。但是他們是如何解決程序開發(fā)中遇到的問題呢?通過深入的交流才明他們是照這樣的方法來(lái)開發(fā)程序的:

     (1)   根據(jù)自己的設(shè)計(jì)建立一個(gè)符合要求的硬件平臺(tái),如果該平臺(tái)涉及的程序比較復(fù)雜,還要搭建一個(gè)人機(jī)交流的通道。人機(jī)交流通道可能是一個(gè)簡(jiǎn)單的發(fā)光二極管,蜂鳴器,復(fù)雜的可能是串口通訊口,LCD顯示屏。

      (2)  寫一個(gè)最簡(jiǎn)單的程序,例如只是將發(fā)光二極管連續(xù)的閃爍。程序編譯后燒寫到單片機(jī)芯片中,驗(yàn)證硬件平臺(tái)是否工作正常。

      (3)  硬件平臺(tái)正常工作后編寫系統(tǒng)最低層的驅(qū)動(dòng)程序,每次程序更改后都重新燒寫單片機(jī)芯片驗(yàn)證。如果在程序驗(yàn)證中遇到問題,則可能在程序中加入一些調(diào)試手段,例如通過串口發(fā)送一些信息到PC 端的超級(jí)終端上,用于了解程序的運(yùn)行情況。

      (4)  系統(tǒng)低層驅(qū)動(dòng)程序完成后再編寫用戶框架程序,由于這部分已經(jīng)不涉及到硬件部分,所以程序中的問題用戶一般能夠發(fā)現(xiàn)。 

    但是更多的調(diào)查表明,使用以上方法的工程師總的看來(lái)所設(shè)計(jì)的程序不是很龐大或很復(fù)雜。因?yàn)樵谧龊?jiǎn)單的項(xiàng)目時(shí),我們可以通過一個(gè)發(fā)光二極管就可以表達(dá)出內(nèi)部的信息;如果程序復(fù)雜,可能需要更多的信息來(lái)表示內(nèi)部的狀態(tài),這樣可能就需要串口協(xié)助調(diào)試;如果程序更復(fù)雜,硬件更多,實(shí)時(shí)性更強(qiáng),那工程師就要更多的增強(qiáng)調(diào)試手段,串口可能就不能滿足了,需要類似于斷點(diǎn)的功能,因?yàn)槲蚁胫涝谀骋粋€(gè)時(shí)刻單片機(jī)內(nèi)部的狀態(tài)究竟是怎樣? 

    如果用戶程序的修改非常頻繁,可能一次又一次地的燒寫芯片占用的時(shí)間就很多,這時(shí)用戶就會(huì)想能下載程序并運(yùn)行的裝置。到這里,您會(huì)看到,隨著用戶要求的越來(lái)越高,調(diào)試裝置已經(jīng)越來(lái)越象一個(gè)通用的仿真器了。因此我們的建議是:不要回避使用仿真器,因?yàn)槭褂梅抡嫫髂芴岣吣拈_發(fā)速度。 

    但是不能否認(rèn)的是,用戶回避使用仿真器也是有原因的。因?yàn)榉抡嫫饕彩且环N電子裝置,非常依賴于設(shè)計(jì)者的水平。如果一個(gè)仿真器設(shè)計(jì)者的水平有欠缺,那將給仿真器的使用者帶來(lái)很大的問題,因?yàn)榉抡嫫鞯氖褂谜邔⒎植磺宄烤故浅绦虻膯栴}還是出在那里。隨著電子設(shè)備的復(fù)雜化,設(shè)計(jì)工程師面臨前所未有的壓力。您可以想象,用戶發(fā)現(xiàn)了程序中有一個(gè)問題,首先懷疑是自己系統(tǒng)中的問題,可能是軟件方面也可能是硬件方面。因?yàn)橛脩粝到y(tǒng)處于開發(fā)階段,用戶基本上不會(huì)懷疑仿真器。在這種情況下,用戶將耗費(fèi)很大的精力在自己的系統(tǒng)中尋找并不存在的問題。如果用戶最終發(fā)現(xiàn)問題來(lái)源于仿真器,并通過燒寫芯片驗(yàn)證確實(shí)如此,那這個(gè)仿真器用戶以后可能會(huì)逐漸放棄使用仿真器。 

    用戶放棄使用仿真器,對(duì)用戶的影響是巨大的。因?yàn)榉艞壥褂靡粋€(gè)設(shè)計(jì)不完善的仿真器,也放棄了 使用其它設(shè)計(jì)完善的仿真器,關(guān)鍵是放棄了合理的開發(fā)方法。因此我們的建議是:不要回避使用仿真器,但要挑選好的仿真器。

1.4仿真器的附加服務(wù)更加重要 

    在購(gòu)買仿真器的同時(shí),還要注意仿真器廠家的服務(wù),這一點(diǎn)很關(guān)鍵。這里說的服務(wù)包含仿真器本身的服務(wù),例如仿真器使用上的指導(dǎo)服務(wù),仿真器的維修服務(wù)。這些都是一個(gè)產(chǎn)品的最基本的服務(wù),對(duì)于仿真器這種特殊產(chǎn)品來(lái)將還不是全部的服務(wù)。 

    使用仿真器來(lái)開發(fā)產(chǎn)品,會(huì)遇到很多問題:產(chǎn)品本身的問題,仿真器的問題,仿真器和用戶系統(tǒng)的問題。如果用戶開發(fā)經(jīng)驗(yàn)不是很豐富,他并不能排除遇到的問題究竟來(lái)源于哪個(gè)方面。這時(shí),他可能求助于仿真器生產(chǎn)廠商。如果仿真器的生產(chǎn)廠商只專注于仿真器的設(shè)計(jì),而對(duì)于其它的單片機(jī)應(yīng)用不熟悉,他可能對(duì)用戶提出的問題不能作出正確的判斷而一味的強(qiáng)調(diào)自己的仿真器沒有問題。與之相反,一個(gè)既熟悉仿真器的使用,又有豐富開發(fā)經(jīng)驗(yàn)的仿真器支持廠商則能協(xié)助用戶快速的找出問題,實(shí)踐證明這兩種情況帶來(lái)的效果是完全不一樣的。因此我們的建議是:挑選好的仿真器,更要挑選好的技術(shù)支持。 {{分頁(yè)}}

第二章    仿真器中使用的技術(shù) 

    仿真器的生產(chǎn)在國(guó)內(nèi)有十多年的歷史,其中使用的技術(shù)根據(jù)時(shí)間和性能的不同大約分成以下幾種:

      (1) 仿真開發(fā)系統(tǒng) 

    這種技術(shù)主要在仿真器的初級(jí)階段使用。由于當(dāng)時(shí)沒有好的仿真技術(shù)或仿真芯片,仿真器設(shè)計(jì)成了一個(gè)雙平臺(tái)的系統(tǒng)并根據(jù)用戶的要求在監(jiān)控系統(tǒng)和用戶系統(tǒng)中切換。這種仿真系統(tǒng)性能完全依賴于設(shè)計(jì)者的水平,實(shí)際的最終性能廠家之間相差很大。不過總的說來(lái)需要占用一定的用戶資源并且設(shè)計(jì)復(fù)雜,現(xiàn)在基本上已經(jīng)淘汰,只是使用在一些開發(fā)學(xué)習(xí)系統(tǒng)中。

      (2)  Bondout 技術(shù) 

    一般來(lái)說,人們常常說的專用仿真芯片其實(shí)就是 Bondout。這種仿真芯片一般也是一種單片機(jī), 但是內(nèi)部具有特殊的配合仿真的時(shí)序。當(dāng)進(jìn)入仿真狀態(tài)后,可以凍結(jié)內(nèi)部的時(shí)序運(yùn)行,可以查看/修改在靜止時(shí)單片機(jī)內(nèi)部的資源。 

    使用Bondout 制作的仿真器一般具有時(shí)序運(yùn)行準(zhǔn)確(也有例外),設(shè)計(jì)制作成本低等優(yōu)點(diǎn);Bondout芯片一般是由單片機(jī)生產(chǎn)廠家提供的,因此它只能仿真該廠商指定的單片機(jī),仿真的品種很少。

      (3)  HOOKS 技術(shù) 

    HOOKS 是PHILIPS擁有的一項(xiàng)仿真技術(shù),主要解決不同品種單片機(jī)的仿真問題。使用該專利技術(shù) 就可以仿真所有具有HOOKS 特性的單片機(jī),即使該單片機(jī)是不同廠家制造的。使用HOOKS 技術(shù)制造的仿真器可以兼容仿真不同廠家的多種單片機(jī),而且仿真的電氣性能非常接近于真實(shí)的單片機(jī)。但是HOOKS 技術(shù)對(duì)仿真器的制造廠家的技術(shù)要求特別高,不同的仿真器生產(chǎn)廠家同時(shí)得到HOOKS 技術(shù)的授權(quán),但是設(shè)計(jì)的仿真器的性能差別很大。 

    10 年前國(guó)內(nèi)就已經(jīng)得到了 PHILIPS  的 HOOKS 技術(shù)授權(quán),但是受當(dāng)時(shí)技術(shù)水準(zhǔn)的限制研制的 HOOKS 仿真器還不能實(shí)用。即使到了今天,也不是每個(gè)仿真器廠家都能生產(chǎn)HOOKS 仿真器,即使生 產(chǎn)出來(lái)性能也差異很大,用戶應(yīng)仔細(xì)區(qū)別。

      (4)  內(nèi)嵌仿真功能的芯片 

    隨著芯片技術(shù)的發(fā)展,很多單片機(jī)生產(chǎn)廠商在芯片內(nèi)部增加了仿真功能,一般通過JTAG 接口進(jìn)行控制。為了降低成本和增加可靠性,內(nèi)嵌的仿真部分一般功能比較簡(jiǎn)單。 

    根據(jù)當(dāng)前的發(fā)展趨勢(shì),如果只仿真標(biāo)準(zhǔn)的MCS-51 系列單片機(jī)可以選用Bondout 技術(shù)的仿真器;如果用戶希望仿真器功能更多更靈活的諸如增強(qiáng)型80C51 系列單片機(jī)的話,那么必須選用HOOKS 技術(shù)仿真器。二者比較而言,采用HOOKS 技術(shù)的仿真器性價(jià)比要高于Bondout 技術(shù)。

第三章  國(guó)內(nèi)仿真器的現(xiàn)狀 

    到今天為止國(guó)內(nèi)的仿真器發(fā)展大約有20 年的歷史,總的說來(lái)生產(chǎn)商的規(guī)模都不是很大,在新產(chǎn)品 的研制/開發(fā)/服務(wù)上都不能投入很大的資金。根據(jù)仿真器使用的技術(shù)來(lái)劃分,國(guó)內(nèi)仿真器的設(shè)計(jì)大約可以分成以下幾個(gè)時(shí)期:

      (1)  70 年代末期-80 年代中期 這個(gè)時(shí)期采用的技術(shù)主要是仿真開發(fā)系統(tǒng),現(xiàn)在看來(lái)技術(shù)含量不高,用戶要求也不高。

      (2)  80 年代末期-90 年代末期 這個(gè)時(shí)期主要使用華邦一顆帶有仿真功能的芯片制作,采用的技術(shù)應(yīng)該叫做Bondout。采用這顆芯片能大大簡(jiǎn)化仿真器的設(shè)計(jì),因此國(guó)內(nèi)仿真器的水準(zhǔn)有了大的提高,基本上可以不占用用戶資源。 

    正是由于仿真性能的提高,國(guó)內(nèi)的仿真器制作在將近 10 年的時(shí)間內(nèi)沒有進(jìn)步,一直采用這種制作模式。雖然個(gè)別廠商也嘗試過別的技術(shù)來(lái)提高仿真水準(zhǔn),例如HOOKS 技術(shù),但是由于本身技術(shù)的限制沒有成功。相反國(guó)外的仿真器較早地使用了HOOKS 技術(shù),在初期由于HOOKS 技術(shù)本身的復(fù)雜性,仿 真性能和價(jià)格不如國(guó)內(nèi)采用Bondout 的仿真器。 

    隨著IC 技術(shù)的發(fā)展,國(guó)內(nèi)制作HOOKS 技術(shù)的條件已經(jīng)成熟,但是國(guó)內(nèi)的幾家主要的生產(chǎn)廠商還 陶醉于Bondout 技術(shù)之中。

      (3)  2000 年開始 

    2000 年是中國(guó)仿真器市場(chǎng)變化最大的時(shí)期,其中最引人注目的變化是華邦仿真芯片W78958 的停產(chǎn)。 

    華邦公司在設(shè)計(jì)W78958 芯片時(shí),其內(nèi)部的仿真功能只是為了仿真器廠商能制作仿真器以便更好的推廣W78958。但是經(jīng)過幾年的變化,W78958 演變成為一顆仿真器上使用的仿真專用芯片而不是用戶使用的標(biāo)準(zhǔn)芯片,使用的范圍也僅限于國(guó)內(nèi),一年不到20000 只的用量也促使華邦公司在進(jìn)入2002年后宣布將停產(chǎn)該芯片。 

    W78958 停產(chǎn)以后,國(guó)內(nèi)仿真器廠商處于一個(gè)非常尷尬的局面。由于W78958 在國(guó)內(nèi)使用了將近10 年,國(guó)內(nèi)的用戶群非常龐大,這些用戶將無(wú)法得到持續(xù)的支持特別是維修方面。另外,國(guó)內(nèi)圍繞在W78958 上所做的技術(shù)工作也無(wú)法得到延續(xù)和提高,很多業(yè)界人士認(rèn)為仿真器行業(yè)將面臨另起爐灶或重新洗牌的局面。 

    HOOKS 技術(shù)無(wú)疑是仿真器廠商在失去W78958 后的替代品,但是由于沒有長(zhǎng)期跟蹤和關(guān)注,短期內(nèi)多數(shù)廠家無(wú)法將復(fù)雜的HOOKS 技術(shù)應(yīng)用于成熟的產(chǎn)品中。專家們認(rèn)為仿真器廠家的整體轉(zhuǎn)型可能需要2-3 年的周期,并且有相當(dāng)?shù)姆抡嫫鲝S家將會(huì)被淘汰,市場(chǎng)擁有量將主要集中在少數(shù)幾個(gè)仿真器廠家。     

    周立功單片機(jī)發(fā)展有限公司是PHILIPS 在國(guó)內(nèi)最大的代理商,它以獨(dú)特的技術(shù)銷售引起國(guó)內(nèi)乃至全球的注目。周立功公司成立時(shí)間不到5 年,但是膨脹很快,現(xiàn)在已然成為國(guó)內(nèi)單片機(jī)行業(yè)的龍頭,一言一行對(duì)整個(gè)行業(yè)影響很大。 

    2001 年12 月,周立功公司試探性地推出第一款仿真器TKS-764,用于支持周立功公司當(dāng)時(shí)的 主打芯片51LPC 系列OTP 單片機(jī)。由于TKS-764 內(nèi)部穩(wěn)定可靠的設(shè)計(jì),并直接直接在Keil 中的調(diào)試,所以推出后得到51LPC 用戶的青睞,擁有相當(dāng)大的用戶群。 

    2002 年6 月,周立功旗下的廣州致遠(yuǎn)電子有限公司在國(guó)內(nèi)率先推出研制達(dá)兩年之久的HOOKS 仿真器,全面支持PHILIPS 和其它公司的增強(qiáng)型80C51 系列單片機(jī)的仿真問題。該系列仿真器徹底解決了國(guó)內(nèi)仿真器在仿真低電壓、內(nèi)部64K 程序、靜態(tài)和動(dòng)態(tài)關(guān)閉ALE、靜態(tài)和動(dòng)態(tài)切換6/12 Clock、4 個(gè)中斷優(yōu)先級(jí)、串口從地址自動(dòng)識(shí)別和幀錯(cuò)誤檢測(cè)以及P8xC51 獨(dú)具定時(shí)器2 等增強(qiáng)性能的難題, 短期內(nèi)使仿真器的用戶群迅速擴(kuò)大,并在業(yè)界得到良好的口碑。 

    TKS 系列HOOKS 技術(shù)仿真器推出后,在仿真器行業(yè)引起了不小的震動(dòng)。因?yàn)橹芰⒐驹诠娗暗男蜗笠灰恢笔且粋€(gè)優(yōu)秀的芯片代理商,在掌握了先進(jìn)的仿真器技術(shù)后將改變整個(gè)行業(yè)的格局。國(guó)內(nèi)的仿真器生產(chǎn)廠商在華邦的仿真芯片停產(chǎn)后發(fā)現(xiàn)自己處于一個(gè)尷尬的境地,現(xiàn)有的仿真器不能繼續(xù)生產(chǎn)了。而轉(zhuǎn)向HOOKS 技術(shù)還需要一段研發(fā)的過程,即使有些廠家匆匆推出了HOOKS 技術(shù)仿真器卻明顯比周立功公司的HOOKS 技術(shù)仿真器在性能上有明顯的差距,仿真器行業(yè)可能會(huì)重新洗牌。{{分頁(yè)}}

第五章 如何挑選通用仿真器 

    仿真器是一種很特殊的電子工具,仿真器的性能跟設(shè)計(jì)者的水平密切相關(guān)。同樣使用一種仿真器技術(shù),但是最終產(chǎn)品的性能差別很大。根據(jù)用戶的不同用途,可以照如下標(biāo)準(zhǔn)挑選仿真器: 

    如果主要用途是商業(yè)產(chǎn)品開發(fā),使用專用仿真器比較理想因?yàn)閷S梅抡嫫髦皇欠抡婺骋环N或一類芯片,可以做得性能比較高,性能也比較穩(wěn)定,不用兼顧其它芯片的特殊要求。專用仿真器可能價(jià)格高一點(diǎn),但是對(duì)商業(yè)開發(fā)來(lái)講良好的性能是第一位的。 

    盡量采用技術(shù)含量高的仿真技術(shù) 

    例如,HOOKS 技術(shù)由于其良好的兼容性以及接近實(shí)際芯片的性能,應(yīng)該成為通用和專用仿真器
首選。 

    慎重選擇仿真芯片裝在外置仿真頭上的結(jié)構(gòu) 

    有些仿真器的仿真芯片放置在外置仿真頭的上方,這種方式的優(yōu)點(diǎn)是可以通過更換仿真頭來(lái)更換仿真器的仿真性能,通用性比較強(qiáng),可以仿真不同類型的單片機(jī)。一些宣傳中說仿真芯片貼近用戶板,性能是最可靠的,但實(shí)際不是這樣的。仿真芯片除了輸出用戶信號(hào)外,還要通過復(fù)雜的總線由監(jiān)控電路控制,這種控制時(shí)序是最重要的。由于控制時(shí)序頻率比較高,因此不應(yīng)該通過較長(zhǎng)的仿真電纜輸出到外部仿真頭上,這很容易受到外部的干擾或干擾外部。一旦控制時(shí)序出現(xiàn)問題,仿真芯片離用戶板再近也沒有用途。 

    注意仿真器的一些細(xì)節(jié)問題。例如:

           (1)  否支持外部復(fù)位信號(hào)?

           (2)   是否支持用戶板晶振?

           (3)   能否在真正仿真內(nèi)部64K 程序 (P0/P2 口仍做I/O 口)?

           (4)   P0/P2 口是否可以同時(shí)用作I/O 口和總線?

           (5)  仿真器的輸出/輸入口是否有可靠的保護(hù)?

           (6)   是否支持低電壓的仿真?

           (7)  是否支持增強(qiáng)型80C51性能?例如內(nèi)部的附加XRAM,雙DPTR,ALE 關(guān)閉,6CLK 時(shí)

                鐘等。

           (8)   是否支持靜態(tài)關(guān)閉和動(dòng)態(tài)關(guān)閉ALE?

           (9)   是否靜態(tài)切換和動(dòng)態(tài)切換6/12 Clock?

           (10)是否支持更高的仿真頻率? 

     仿真器廠家后續(xù)的技術(shù)支持 

    由于仿真器在應(yīng)用中的特殊性,用戶在時(shí)盡量選擇有強(qiáng)大技術(shù)支持的生產(chǎn)廠家。好的技術(shù)支持不但能給您帶來(lái)仿真器使用上的支持,也能給您在應(yīng)用項(xiàng)目上的各個(gè)方面提出良好的建議和指導(dǎo),使您能快速準(zhǔn)確的完成您目前的項(xiàng)目。但如前所述,國(guó)內(nèi)多數(shù)廠商規(guī)模很小,不能給用戶提供全面的技術(shù)支持。周立功公司在進(jìn)入工具行業(yè)后,提出了單片機(jī)的一攬子解決方,提供包括工具在內(nèi)的全方位的用戶支持,開辟了一種全新的銷售服務(wù)模式。

第六章 如何測(cè)試通用仿真器 

    在選擇了仿真器生產(chǎn)廠商后,用戶還需要對(duì)仿真器的性能做仔細(xì)的測(cè)試,保證您選擇的仿真器能夠達(dá)到該仿真器保證的性能以及作為仿真器應(yīng)該達(dá)到的性能。 

    在選擇一種仿真器前,通過該仿真器的廣告和銷售人員的介紹,用戶能基本上了解該仿真器的突出性能。這些突出性能應(yīng)該是該仿真器確實(shí)存在的功能,雖然可能有被夸大但一般都不會(huì)有欺騙的成分。這些性能好不好需要有針對(duì)性的一一驗(yàn)證,這里只能建議用戶將目光注意在實(shí)際仿真性能上,而不要過分注意一些與仿真器無(wú)關(guān)或關(guān)系不大的功能。 

    很多的仿真器雖然具備一些附加的功能,但是用戶必須要注意到這些仿真器可能在一些最基本的仿真功能卻做不好,這種現(xiàn)象在國(guó)產(chǎn)的仿真器中非常普遍!由于用戶并不專業(yè)于仿真器的測(cè)試,因此在購(gòu)買中不知道對(duì)這些仿真器的死點(diǎn)進(jìn)行驗(yàn)證。等以后在學(xué)習(xí)特別是在開發(fā)設(shè)計(jì)中,這些設(shè)計(jì)中的死點(diǎn)可能給您帶來(lái)莫名其妙的問題。您可能要花幾倍的時(shí)間來(lái)尋找其中的原因,因?yàn)槟紫葢岩墒悄到y(tǒng)的問題而不懷疑是仿真器的問題。所以選擇一個(gè)性能可靠的仿真器是十分重要的,這需要非常專業(yè)化的測(cè)試程序來(lái)實(shí)現(xiàn)。 

    以下的測(cè)試程序由廣州致遠(yuǎn)電子有限公司提供,經(jīng)過長(zhǎng)時(shí)間的使用證明能基本上反映出一個(gè)仿真器設(shè)計(jì)水平的高低。廣州致遠(yuǎn)電子有限公司在提供這些測(cè)試程序時(shí)聲明:這些測(cè)試程序只是指出仿真器設(shè) 計(jì)中容易出現(xiàn)的問題,但并不有意攻擊任何含有上述問題的仿真器廠家。

1.單步性能的測(cè)試 

    測(cè)試說明:?jiǎn)尾绞欠抡嫫髟O(shè)計(jì)中比較難實(shí)現(xiàn)的功能。照通常的理解,用戶每執(zhí)行一個(gè)單步應(yīng)該準(zhǔn)確實(shí)現(xiàn)理想運(yùn)行的單步性能。例如,運(yùn)行一個(gè)機(jī)器周期的指令,內(nèi)部的所有時(shí)序應(yīng)該都動(dòng)作一個(gè)機(jī)器周 期而不能出現(xiàn)不動(dòng)作或動(dòng)作過度的現(xiàn)象。不過很遺憾的看到國(guó)內(nèi)的仿真器多數(shù)不能達(dá)到這個(gè)指標(biāo)。

     測(cè)試程序:

                ORG        0000H

                SETB       TR0                        /*  打開定時(shí)器0 */

     TestStart:

                NOP                                   /* 定時(shí)器0 運(yùn)行1個(gè)機(jī)器周期, TL0 加1 */

                MOV        A,#0FFH                    /* 定時(shí)器0 運(yùn)行1個(gè)機(jī)器周期, TL0 加1 */

                MUL        AB                         /* 定時(shí)器0 運(yùn)行4 個(gè)機(jī)器周期, TL0 加4 */

                LJMP       TestStart                  /* 定時(shí)器0 運(yùn)行2 個(gè)機(jī)器周期, TL0 加2 */

                END

     測(cè)試步驟

      (1)  照您當(dāng)前使用的仿真器要求測(cè)試上面的程序;

      (2)  在運(yùn)行前打開TL0 的顯示,以便單步運(yùn)行后能觀察TL0 的變化;

      (3)  使用當(dāng)前仿真器環(huán)境提供的單步功能開始單步運(yùn)行;

      (4)  單步運(yùn)行后檢查TL0 變化的數(shù)值是否與指令的周期數(shù)相同。 

    測(cè)試結(jié)論:仿真器如果沒有照嚴(yán)格正規(guī)的設(shè)計(jì),程序的單步運(yùn)行性能將不準(zhǔn)確,一般會(huì)出現(xiàn)實(shí)際運(yùn)行時(shí)間變長(zhǎng)的現(xiàn)象,這在時(shí)間要求較高的單步運(yùn)行將不能仿真程序的真正運(yùn)行。

2.中斷性能的測(cè)試 

    測(cè)試說明:中斷是一種非正常的程序跳轉(zhuǎn),單步仿真有一定的難度,尤其在低檔仿真器中。在當(dāng)前采用Bondout 技術(shù)制作的仿真器中一般可以做到正確仿真,但是仍有一些仿真器不能正確單步仿真中斷。

     測(cè)試程序:

                ORG       0000H

                LJMP      TestStart

                ORG        000BH                     /*  定時(shí)器0 的中斷服務(wù)程序 */

                RETI

    TestStart:

                SETB      EA                         /* 開放全局中斷允許 */

                SETB      ET0                        /* 開放T0 中斷允許 */

    TestLoop:

                SETB      TF0                        /*  設(shè)置T0 的中斷標(biāo)志 */

                INC       A                          /* A 數(shù)值加一,以便觀察程序持續(xù)運(yùn)行 */

                LJMP      TestLoop                   /* 連續(xù)運(yùn)行 */

                END

     測(cè)試步驟

     (1)  照您當(dāng)前使用的仿真器要求測(cè)試上面的程序。

     (2)  每次SETB TF0 后程序?qū)⑦M(jìn)入T0 的中斷服務(wù)程序,執(zhí)行完畢后返回主程序繼續(xù)運(yùn)行。

     (3)   主程序能在TestLoop 中連續(xù)運(yùn)行,因此A 能連續(xù)加一,但是每循環(huán)一次就進(jìn)入一次中斷。 

    測(cè)試結(jié)論:仿真器如果沒有照嚴(yán)格正規(guī)設(shè)計(jì),程序的中斷性能將不準(zhǔn)確。可能出現(xiàn)程序不能跳轉(zhuǎn)到中斷服務(wù)程序,或沒有返回到正確的主程序,或A 不能每次循環(huán)連續(xù)的加1。

3.連續(xù)中斷性能的測(cè)試 

    測(cè)試說明:在80C51 的中斷系統(tǒng)中,串口中斷比較特殊。進(jìn)入串口中斷服務(wù)程序后中斷標(biāo)志TI或RI不會(huì)自動(dòng)清除,如果用戶程序不對(duì)TI 或RI進(jìn)行清除操作則可能會(huì)出現(xiàn)連續(xù)進(jìn)入中斷服務(wù)程序的情況。根據(jù)80C51 的中斷處理,在退出中斷后必須執(zhí)行完一條指令后才能重新進(jìn)入中斷服務(wù)程序,因此即使連續(xù)中斷的情況下主程序也能得到連續(xù)執(zhí)行。

    測(cè)試程序:

                ORG       0000H

                LJMP      TestStart

                ORG        0023H                     /*  定時(shí)器0 的中斷服務(wù)程序 */

                RETI

    TestStart:

                SETB      EA                         /* 開放全局中斷允許 */

                SETB      ES                         /* 開放串口中斷允許 */

                SETB      TI

TestLoop:

                NOP

                NOP

                INC        A                         /* A 數(shù)值加一,以便觀察程序持續(xù)運(yùn)行 */

                LJMP      TestLoop                   /* 連續(xù)運(yùn)行 */

                END

     測(cè)試步驟

     (1)   照您當(dāng)前使用的仿真器要求測(cè)試上面的程序。

     (2)   進(jìn)入TestLoop 后,每次單步運(yùn)行完一條程序都會(huì)進(jìn)入串口中斷,退出后繼續(xù)運(yùn)行一條下面的程序,然后又進(jìn)入中斷服務(wù)程序,A 的數(shù)值可以得到遞增。

     (3)   主程序能在TestLoop 中連續(xù)運(yùn)行,因此A 能連續(xù)加一,但是每循環(huán)一次就進(jìn)入一次中斷。 

    測(cè)試結(jié)論:仿真器如果沒有照嚴(yán)格正規(guī)設(shè)計(jì),程序連續(xù)運(yùn)行中斷程序性能將不準(zhǔn)確。可能出現(xiàn)程序不能跳轉(zhuǎn)到中斷服務(wù)程序,或沒有返回到正確的主程序,或A 不能每次循環(huán)連續(xù)的加1。 

    測(cè)試小結(jié) 

    上述的幾個(gè)測(cè)試程序?qū)Ψ抡嫫鞯男阅芤蠛芨?,如果仿真器通過測(cè)試說明被測(cè)試的仿真器仿真性能指標(biāo)較高;如果仿真器沒有通過測(cè)試只能判斷仿真器性能不是最好,具體的綜合性能要有待其它檢驗(yàn)。 {{分頁(yè)}}

第七章    如何挑選測(cè)試HOOKS 技術(shù)仿真器 

    HOOKS 技術(shù)是國(guó)外普遍采用的一種仿真技術(shù),同Bondout 技術(shù)相比較,仿真器的適用范圍可以更廣。HOOKS 技術(shù)在10年前已經(jīng)被國(guó)內(nèi)引進(jìn),并被當(dāng)時(shí)的仿真器廠家試圖采用。但是由于HOOKS 技術(shù)本身的復(fù)雜性,當(dāng)時(shí)國(guó)內(nèi)眾仿真器廠家竟無(wú)法設(shè)計(jì)出可以使用的仿真器,致使國(guó)內(nèi)的仿真技術(shù)遠(yuǎn)遠(yuǎn)落后于國(guó)外。 

    2002年,周立功旗下的廣州致遠(yuǎn)電子有限公司推出了研制多年的TKS 系列HOOKS 仿真器,并在性能上全面超過國(guó)外同類型的HOOKS 仿真器,國(guó)內(nèi)的用戶能以低廉的價(jià)格購(gòu)買到技術(shù)先進(jìn)的HOOKS技術(shù)仿真器。在TKS 系列HOOKS 仿真器面市以后,國(guó)內(nèi)的仿真器廠商紛紛加強(qiáng)研發(fā)力量研制HOOKS技術(shù),經(jīng)過了一段時(shí)間后也宣布供應(yīng)采用HOOKS 技術(shù)的仿真器。用戶需要注意的是:HOOKS 技術(shù)只是一個(gè)基本的仿真技術(shù),要最終作成仿真器還必須依靠設(shè)計(jì)工程師精心的設(shè)計(jì),因此市場(chǎng)上HOOKS 技術(shù)的仿真器性能指標(biāo)可能有很大的差別,有的不占用用戶資源,有的就做不到;有的仿真頻率可以到很高,但是有的不行。因此用戶應(yīng)仔細(xì)加以挑選和鑒別。 

    根據(jù)HOOKS 技術(shù)本身的特點(diǎn),用戶應(yīng)該對(duì)以下的幾個(gè)方面加以注意和測(cè)試。 

    能否運(yùn)行外部用戶目標(biāo)板上的程序 

    由于HOOKS 技術(shù)中P0/P2 口是重新構(gòu)造的,因此P0/P2 口上的時(shí)序處理是整個(gè)設(shè)計(jì)中的難點(diǎn)。P0/P2 的I/O 特性和數(shù)據(jù)總線特性相對(duì)容易實(shí)現(xiàn)一點(diǎn),但是程序總線很難正確實(shí)現(xiàn),這是由于HOOKS的技術(shù)結(jié)構(gòu)決定的。一般HOOKS 仿真器在實(shí)現(xiàn)仿真內(nèi)部64K 代碼空間比較容易,但是仿真內(nèi)部4K (類似89C51)/8K (類似89C54)/16K (類似89C54)/32K (類似89C58)等能外擴(kuò)ROM 空間的MCU類型則無(wú)法實(shí)現(xiàn)。在國(guó)內(nèi)外所有的HOOKS 技術(shù)的仿真器中,只有廣州致遠(yuǎn)公司的TKS 仿真器B 系列能真正做到穩(wěn)定運(yùn)行外部用戶目標(biāo)板上的程序。運(yùn)行外部用戶目標(biāo)板上的程序是非常必要的,因?yàn)橛脩艨赡茉谕獠繑U(kuò)充了一般的用戶程序,需要實(shí)際仿真一下來(lái)驗(yàn)證整個(gè)系統(tǒng)的正確性;也可能在外部放置了大容量的(可能超過64K 的物理地址限制)分組字庫(kù),而這種特性是仿真器內(nèi)部無(wú)法實(shí)現(xiàn)的;也可能是外部有分組的BANK 方式的運(yùn)行代碼,這種方式要求仿真器必須有運(yùn)行外部程序代碼的能力。 

    P0/P2 口能否同時(shí)用作總線和I/O 

    這種特性是芯片本來(lái)的性能,但是由于HOOKS 技術(shù)的難度,有很多HOOKS 仿真器不能做到這一點(diǎn),導(dǎo)致用戶在使用時(shí)無(wú)法全面滿足要求。該性能一般不需要測(cè)試,可以直接閱讀仿真器的性能說明或向生產(chǎn)廠商或代理商詢問。作者檢測(cè)過國(guó)內(nèi)外知名仿真器廠家的多種HOOKS 仿真器,幾乎都沒有完美做到P0/P2 口的準(zhǔn)確仿真。 

    P0/P2 口的直流參數(shù) 

    如果需要檢測(cè)的仿真器根本做不到同時(shí)仿真I/O 和總線方式,則沒有必要檢測(cè)P0/P2 的直流參數(shù)。如果要檢測(cè)的仿真器宣稱能夠同時(shí)仿真I/O 和總線方式,用戶還必須分別在I/O 和總線兩種方式下對(duì)直流參數(shù)進(jìn)行測(cè)試。根據(jù)作者的HOOKS 仿真器測(cè)試經(jīng)驗(yàn),有的仿真器雖然宣稱能夠同時(shí)仿真I/O 和總線方式,但是根本不區(qū)分這兩種方式驅(qū)動(dòng)能力,采用的是一種平均方式,這樣在作為I/O 時(shí)高電平驅(qū)動(dòng)能力過大,而作為總線時(shí)驅(qū)動(dòng)能力過小。用戶在使用這類仿真器作為輸入時(shí),必須加大外部信號(hào)的驅(qū)動(dòng)能力,這跟實(shí)際芯片的驅(qū)動(dòng)能力相差太遠(yuǎn);在作為總線使用時(shí),如果外部的總線(包括地址總線和數(shù)據(jù)總線)個(gè)數(shù)稍多,總線電平將嚴(yán)重下降而無(wú)法工作。用戶可以使用下面的測(cè)試程序配合示波器檢查。

     測(cè)試程序:

                ORG         0000H

LJMP      TestStart

TestStart:       MOV      P0,#0FFH

TestLoop:       MOV       P0,#00H

                NOP

                MOV&a
蜂鳴器相關(guān)文章:蜂鳴器原理


評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉