18luck网站

18luck网站電子設計 | 18luck网站Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 18luck网站 >> 18luck平台 >> 單片機 >> 正文

80C51係列單片機仿真器選購指南

作者:佚名    文章來源:本站原創    點擊數:    更新時間:2008-12-3

        第一章   為(wei) 什麽(me) 要使用仿真器? 

        1.1 仿真的概念

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

       在嵌入式係統的設計中,仿真應用的範圍主要集中在對程序的仿真上。例如,在單片機的開發過程中,程序的設計是最為(wei) 重要的但也是難度最大的。一種最簡單和原始的開發流程是:編寫(xie) 程序-燒寫(xie) 芯片-驗證功能,這種方法對於(yu) 簡單的小係統是可以對付的,但在大係統中使用這種方法則是完全不可能的。

      1.2  仿真的種類

       軟件仿真:這種方法主要是使用計算機軟件來模擬運行實際的單片機運行,因此仿真與(yu) 硬件無關(guan) 的係統具有一定的優(you) 點。用戶不需要搭建硬件電路就可以對程序進行驗證,特別適合於(yu) 偏重算法的程序。軟件仿真的缺點是無法完全仿真與(yu) 硬件相關(guan) 的部分,因此最終還要通過硬件仿真來完成最終的設計。

      硬件仿真:使用附加的硬件來替代用戶係統的單片機並完成單片機全部或大部分的功能,使用了附加硬件後用戶就可以對程序的運行進行控製,例如單步,全速,查看資源,斷點等。硬件仿真是開發過程中所必須的。

      1.3  為(wei) 什麽(me) 要使用仿真器?

       在與(yu) 一些有經驗的工程師交談中,我們(men) 會(hui) 發現有相當一部分工程師在開發中不使用或很少仿真器。向他們(men) 詢問原因,得到的回答是“仿真器不可靠”。但是他們(men) 是如何解決(jue) 程序開發中遇到的問題呢?通過深入的交流才明他們(men) 是照這樣的方法來開發程序的:

       (1)   根據自己的設計建立一個(ge) 符合要求的硬件平台,如果該平台涉及的程序比較複雜,還要搭建一個(ge) 人機交流的通道。人機交流通道可能是一個(ge) 簡單的發光二極管,蜂鳴器,複雜的可能是串口通訊口,LCD顯示屏。

      (2)  寫(xie) 一個(ge) 最簡單的程序,例如隻是將發光二極管連續的閃爍。程序編譯後燒寫(xie) 到單片機芯片中,驗證硬件平台是否工作正常。

     (3)  硬件平台正常工作後編寫(xie) 係統最低層的驅動程序,每次程序更改後都重新燒寫(xie) 單片機芯片驗證。如果在程序驗證中遇到問題,則可能在程序中加入一些調試手段,例如通過串口發送一些信息到PC 端的超級終端上,用於(yu) 了解程序的運行情況。

     (4)  係統低層驅動程序完成後再編寫(xie) 用戶框架程序,由於(yu) 這部分已經不涉及到硬件部分,所以程序中的問題用戶一般能夠發現。

       但是更多的調查表明,使用以上方法的工程師總的看來所設計的程序不是很龐大或很複雜。因為(wei) 在做簡單的項目時,我們(men) 可以通過一個(ge) 發光二極管就可以表達出內(nei) 部的信息;如果程序複雜,可能需要更多的信息來表示內(nei) 部的狀態,這樣可能就需要串口協助調試;如果程序更複雜,硬件更多,實時性更強,那工程師就要更多的增強調試手段,串口可能就不能滿足了,需要類似於(yu) 斷點的功能,因為(wei) 我想知道在某一個(ge) 時刻單片機內(nei) 部的狀態究竟是怎樣?

        如果用戶程序的修改非常頻繁,可能一次又一次地的燒寫(xie) 芯片占用的時間就很多,這時用戶就會(hui) 想能下載程序並運行的裝置。到這裏,您會(hui) 看到,隨著用戶要求的越來越高,調試裝置已經越來越象一個(ge) 通用的仿真器了。因此我們(men) 的建議是:不要回避使用仿真器,因為(wei) 使用仿真器能提高您的開發速度。

        但是不能否認的是,用戶回避使用仿真器也是有原因的。因為(wei) 仿真器也是一種電子裝置,非常依賴於(yu) 設計者的水平。如果一個(ge) 仿真器設計者的水平有欠缺,那將給仿真器的使用者帶來很大的問題,因為(wei) 仿真器的使用者將分不清楚究竟是程序的問題還是出在那裏。隨著電子設備的複雜化,設計工程師麵臨(lin) 前所未有的壓力。您可以想象,用戶發現了程序中有一個(ge) 問題,首先懷疑是自己係統中的問題,可能是軟件方麵也可能是硬件方麵。因為(wei) 用戶係統處於(yu) 開發階段,用戶基本上不會(hui) 懷疑仿真器。在這種情況下,用戶將耗費很大的精力在自己的係統中尋找並不存在的問題。如果用戶最終發現問題來源於(yu) 仿真器,並通過燒寫(xie) 芯片驗證確實如此,那這個(ge) 仿真器用戶以後可能會(hui) 逐漸放棄使用仿真器。

       用戶放棄使用仿真器,對用戶的影響是巨大的。因為(wei) 放棄使用一個(ge) 設計不完善的仿真器,也放棄了 使用其它設計完善的仿真器,關(guan) 鍵是放棄了合理的開發方法。因此我們(men) 的建議是:不要回避使用仿真器,但要挑選好的仿真器。

      1.4仿真器的附加服務更加重要

       在購買(mai) 仿真器的同時,還要注意仿真器廠家的服務,這一點很關(guan) 鍵。這裏說的服務包含仿真器本身的服務,例如仿真器使用上的指導服務,仿真器的維修服務。這些都是一個(ge) 產(chan) 品的最基本的服務,對於(yu) 仿真器這種特殊產(chan) 品來將還不是全部的服務。

       使用仿真器來開發產(chan) 品,會(hui) 遇到很多問題:產(chan) 品本身的問題,仿真器的問題,仿真器和用戶係統的問題。如果用戶開發經驗不是很豐(feng) 富,他並不能排除遇到的問題究竟來源於(yu) 哪個(ge) 方麵。這時,他可能求助於(yu) 仿真器生產(chan) 廠商。如果仿真器的生產(chan) 廠商隻專(zhuan) 注於(yu) 仿真器的設計,而對於(yu) 其它的單片機應用不熟悉,他可能對用戶提出的問題不能作出正確的判斷而一味的強調自己的仿真器沒有問題。與(yu) 之相反,一個(ge) 既熟悉仿真器的使用,又有豐(feng) 富開發經驗的仿真器支持廠商則能協助用戶快速的找出問題,實踐證明這兩(liang) 種情況帶來的效果是完全不一樣的。因此我們(men) 的建議是:挑選好的仿真器,更要挑選好的技術支持。

       第二章    仿真器中使用的技術

        仿真器的生產(chan) 在國內(nei) 有十多年的曆史,其中使用的技術根據時間和性能的不同大約分成以下幾種:

       (1) 仿真開發係統

       這種技術主要在仿真器的初級階段使用。由於(yu) 當時沒有好的仿真技術或仿真芯片,仿真器設計成了一個(ge) 雙平台的係統並根據用戶的要求在監控係統和用戶係統中切換。這種仿真係統性能完全依賴於(yu) 設計者的水平,實際的最終性能廠家之間相差很大。不過總的說來需要占用一定的用戶資源並且設計複雜,現在基本上已經淘汰,隻是使用在一些開發學習(xi) 係統中。

       (2)  Bondout 技術

       一般來說,人們(men) 常常說的專(zhuan) 用仿真芯片其實就是 Bondout。這種仿真芯片一般也是一種單片機, 但是內(nei) 部具有特殊的配合仿真的時序。當進入仿真狀態後,可以凍結內(nei) 部的時序運行,可以查看/修改在靜止時單片機內(nei) 部的資源。

       使用Bondout 製作的仿真器一般具有時序運行準確(也有例外),設計製作成本低等優(you) 點;Bondout芯片一般是由單片機生產(chan) 廠家提供的,因此它隻能仿真該廠商指定的單片機,仿真的品種很少。

        (3)  HOOKS 技術

       HOOKS 是PHILIPS擁有的一項仿真技術,主要解決(jue) 不同品種單片機的仿真問題。使用該專(zhuan) 利技術 就可以仿真所有具有HOOKS 特性的單片機,即使該單片機是不同廠家製造的。使用HOOKS 技術製造的仿真器可以兼容仿真不同廠家的多種單片機,而且仿真的電氣性能非常接近於(yu) 真實的單片機。但是HOOKS 技術對仿真器的製造廠家的技術要求特別高,不同的仿真器生產(chan) 廠家同時得到HOOKS 技術的授權,但是設計的仿真器的性能差別很大。

        10 年前國內(nei) 就已經得到了 PHILIPS  的 HOOKS 技術授權,但是受當時技術水準的限製研製的 HOOKS 仿真器還不能實用。即使到了今天,也不是每個(ge) 仿真器廠家都能生產(chan) HOOKS 仿真器,即使生 產(chan) 出來性能也差異很大,用戶應仔細區別。

       (4)  內(nei) 嵌仿真功能的芯片

       隨著芯片技術的發展,很多單片機生產(chan) 廠商在芯片內(nei) 部增加了仿真功能,一般通過JTAG 接口進行控製。為(wei) 了降低成本和增加可靠性,內(nei) 嵌的仿真部分一般功能比較簡單。

       根據當前的發展趨勢,如果隻仿真標準的MCS-51 係列單片機可以選用Bondout 技術的仿真器;如果用戶希望仿真器功能更多更靈活的諸如增強型80C51 係列單片機的話,那麽(me) 必須選用HOOKS 技術仿真器。二者比較而言,采用HOOKS 技術的仿真器性價(jia) 比要高於(yu) Bondout 技術。

      第三章  國內(nei) 仿真器的現狀

        到今天為(wei) 止國內(nei) 的仿真器發展大約有20 年的曆史,總的說來生產(chan) 商的規模都不是很大,在新產(chan) 品 的研製/開發/服務上都不能投入很大的資金。根據仿真器使用的技術來劃分,國內(nei) 仿真器的設計大約可以分成以下幾個(ge) 時期:

      (1)  70 年代末期-80 年代中期 這個(ge) 時期采用的技術主要是仿真開發係統,現在看來技術含量不高,用戶要求也不高。

      (2)  80 年代末期-90 年代末期 這個(ge) 時期主要使用華邦一顆帶有仿真功能的芯片製作,采用的技術應該叫做Bondout。采用這顆芯片能大大簡化仿真器的設計,因此國內(nei) 仿真器的水準有了大的提高,基本上可以不占用用戶資源。

      正是由於(yu) 仿真性能的提高,國內(nei) 的仿真器製作在將近 10 年的時間內(nei) 沒有進步,一直采用這種製作模式。雖然個(ge) 別廠商也嚐試過別的技術來提高仿真水準,例如HOOKS 技術,但是由於(yu) 本身技術的限製沒有成功。相反國外的仿真器較早地使用了HOOKS 技術,在初期由於(yu) HOOKS 技術本身的複雜性,仿 真性能和價(jia) 格不如國內(nei) 采用Bondout 的仿真器。

       隨著IC 技術的發展,國內(nei) 製作HOOKS 技術的條件已經成熟,但是國內(nei) 的幾家主要的生產(chan) 廠商還 陶醉於(yu) Bondout 技術之中。

       (3)  2000 年開始

    2000 年是中國仿真器市場變化最大的時期,其中最引人注目的變化是華邦仿真芯片W78958 的停產(chan) 。

       華邦公司在設計W78958 芯片時,其內(nei) 部的仿真功能隻是為(wei) 了仿真器廠商能製作仿真器以便更好的推廣W78958。但是經過幾年的變化,W78958 演變成為(wei) 一顆仿真器上使用的仿真專(zhuan) 用芯片而不是用戶使用的標準芯片,使用的範圍也僅(jin) 限於(yu) 國內(nei) ,一年不到20000 隻的用量也促使華邦公司在進入2002年後宣布將停產(chan) 該芯片。

       W78958 停產(chan) 以後,國內(nei) 仿真器廠商處於(yu) 一個(ge) 非常尷尬的局麵。由於(yu) W78958 在國內(nei) 使用了將近10 年,國內(nei) 的用戶群非常龐大,這些用戶將無法得到持續的支持特別是維修方麵。另外,國內(nei) 圍繞在W78958 上所做的技術工作也無法得到延續和提高,很多業(ye) 界人士認為(wei) 仿真器行業(ye) 將麵臨(lin) 另起爐灶或重新洗牌的局麵。

       HOOKS 技術無疑是仿真器廠商在失去W78958 後的替代品,但是由於(yu) 沒有長期跟蹤和關(guan) 注,短期內(nei) 多數廠家無法將複雜的HOOKS 技術應用於(yu) 成熟的產(chan) 品中。專(zhuan) 家們(men) 認為(wei) 仿真器廠家的整體(ti) 轉型可能需要2-3 年的周期,並且有相當的仿真器廠家將會(hui) 被淘汰,市場擁有量將主要集中在少數幾個(ge) 仿真器廠家。     

       周立功單片機發展有限公司是PHILIPS 在國內(nei) 最大的代理商,它以獨特的技術銷售引起國內(nei) 乃至全球的注目。周立功公司成立時間不到5 年,但是膨脹很快,現在已然成為(wei) 國內(nei) 單片機行業(ye) 的龍頭,一言一行對整個(ge) 行業(ye) 影響很大。

       2001 年12 月,周立功公司試探性地推出第一款仿真器TKS-764,用於(yu) 支持周立功公司當時的 主打芯片51LPC 係列OTP 單片機。由於(yu) TKS-764 內(nei) 部穩定可靠的設計,並直接直接在Keil 中的調試,所以推出後得到51LPC 用戶的青睞,擁有相當大的用戶群。

        2002 年6 月,周立功旗下的廣州致遠電子有限公司在國內(nei) 率先推出研製達兩(liang) 年之久的HOOKS 仿真器,全麵支持PHILIPS 和其它公司的增強型80C51 係列單片機的仿真問題。該係列仿真器徹底解決(jue) 了國內(nei) 仿真器在仿真低電壓、內(nei) 部64K 程序、靜態和動態關(guan) 閉ALE、靜態和動態切換6/12 Clock、4 個(ge) 中斷優(you) 先級、串口從(cong) 地址自動識別和幀錯誤檢測以及P8xC51 獨具定時器2 等增強性能的難題, 短期內(nei) 使仿真器的用戶群迅速擴大,並在業(ye) 界得到良好的口碑。

       TKS 係列HOOKS 技術仿真器推出後,在仿真器行業(ye) 引起了不小的震動。因為(wei) 周立功公司在公眾(zhong) 前的形象一一直是一個(ge) 優(you) 秀的芯片代理商,在掌握了先進的仿真器技術後將改變整個(ge) 行業(ye) 的格局。國內(nei) 的仿真器生產(chan) 廠商在華邦的仿真芯片停產(chan) 後發現自己處於(yu) 一個(ge) 尷尬的境地,現有的仿真器不能繼續生產(chan) 了。而轉向HOOKS 技術還需要一段研發的過程,即使有些廠家匆匆推出了HOOKS 技術仿真器卻明顯比周立功公司的HOOKS 技術仿真器在性能上有明顯的差距,仿真器行業(ye) 可能會(hui) 重新洗牌。

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

       仿真器是一種很特殊的電子工具,仿真器的性能跟設計者的水平密切相關(guan) 。同樣使用一種仿真器技術,但是最終產(chan) 品的性能差別很大。根據用戶的不同用途,可以照如下標準挑選仿真器:

       如果主要用途是商業(ye) 產(chan) 品開發,使用專(zhuan) 用仿真器比較理想因為(wei) 專(zhuan) 用仿真器隻是仿真某一種或一類芯片,可以做得性能比較高,性能也比較穩定,不用兼顧其它芯片的特殊要求。專(zhuan) 用仿真器可能價(jia) 格高一點,但是對商業(ye) 開發來講良好的性能是第一位的。

       盡量采用技術含量高的仿真技術

       例如,HOOKS 技術由於(yu) 其良好的兼容性以及接近實際芯片的性能,應該成為(wei) 通用和專(zhuan) 用仿真器
首選。

       慎重選擇仿真芯片裝在外置仿真頭上的結構

      有些仿真器的仿真芯片放置在外置仿真頭的上方,這種方式的優(you) 點是可以通過更換仿真頭來更換仿真器的仿真性能,通用性比較強,可以仿真不同類型的單片機。一些宣傳(chuan) 中說仿真芯片貼近用戶板,性能是最可靠的,但實際不是這樣的。仿真芯片除了輸出用戶信號外,還要通過複雜的總線由監控電路控製,這種控製時序是最重要的。由於(yu) 控製時序頻率比較高,因此不應該通過較長的仿真電纜輸出到外部仿真頭上,這很容易受到外部的幹擾或幹擾外部。一旦控製時序出現問題,仿真芯片離用戶板再近也沒有用途。

        注意仿真器的一些細節問題。例如:

           (1)  否支持外部複位信號?

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

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

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

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

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

           (7)  是否支持增強型80C51性能?例如內(nei) 部的附加XRAM,雙DPTR,ALE 關(guan) 閉,6CLK 時鍾等。

           (8)   是否支持靜態關(guan) 閉和動態關(guan) 閉ALE?

           (9)   是否靜態切換和動態切換6/12 Clock?

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

      仿真器廠家後續的技術支持

       由於(yu) 仿真器在應用中的特殊性,用戶在選購時盡量選擇有強大技術支持的生產(chan) 廠家。好的技術支持不但能給您帶來仿真器使用上的支持,也能給您在應用項目上的各個(ge) 方麵提出良好的建議和指導,使您能快速準確的完成您目前的項目。但如前所述,國內(nei) 多數廠商規模很小,不能給用戶提供全麵的技術支持。周立功公司在進入工具行業(ye) 後,提出了單片機的一攬子解決(jue) 方,提供包括工具在內(nei) 的全方位的用戶支持,開辟了一種全新的銷售服務模式。

        第六章 如何測試通用仿真器

        在選擇了仿真器生產(chan) 廠商後,用戶還需要對仿真器的性能做仔細的測試,保證您選擇的仿真器能夠達到該仿真器保證的性能以及作為(wei) 仿真器應該達到的性能。

       在選擇一種仿真器前,通過該仿真器的廣告和銷售人員的介紹,用戶能基本上了解該仿真器的突出性能。這些突出性能應該是該仿真器確實存在的功能,雖然可能有被誇大但一般都不會(hui) 有欺騙的成分。這些性能好不好需要有針對性的一一驗證,這裏隻能建議用戶將目光注意在實際仿真性能上,而不要過分注意一些與(yu) 仿真器無關(guan) 或關(guan) 係不大的功能。

       很多的仿真器雖然具備一些附加的功能,但是用戶必須要注意到這些仿真器可能在一些最基本的仿真功能卻做不好,這種現象在國產(chan) 的仿真器中非常普遍!由於(yu) 用戶並不專(zhuan) 業(ye) 於(yu) 仿真器的測試,因此在購買(mai) 中不知道對這些仿真器的死點進行驗證。等以後在學習(xi) 特別是在開發設計中,這些設計中的死點可能給您帶來莫名其妙的問題。您可能要花幾倍的時間來尋找其中的原因,因為(wei) 您首先懷疑是您係統的問題而不懷疑是仿真器的問題。所以選擇一個(ge) 性能可靠的仿真器是十分重要的,這需要非常專(zhuan) 業(ye) 化的測試程序來實現。

       以下的測試程序由廣州致遠電子有限公司提供,經過長時間的使用證明能基本上反映出一個(ge) 仿真器設計水平的高低。廣州致遠電子有限公司在提供這些測試程序時聲明:這些測試程序隻是指出仿真器設 計中容易出現的問題,但並不有意攻擊任何含有上述問題的仿真器廠家。

      1.單步性能的測試

       測試說明:單步是仿真器設計中比較難實現的功能。照通常的理解,用戶每執行一個(ge) 單步應該準確實現理想運行的單步性能。例如,運行一個(ge) 機器周期的指令,內(nei) 部的所有時序應該都動作一個(ge) 機器周 期而不能出現不動作或動作過度的現象。不過很遺憾的看到國內(nei) 的仿真器多數不能達到這個(ge) 指標。

       測試程序:

                ORG        0000H

                SETB       TR0                        /*  打開定時器0 */

     TestStart:

                NOP                                   /* 定時器0 運行1個(ge) 機器周期, TL0 加1 */

                MOV        A,#0FFH                    /* 定時器0 運行1個(ge) 機器周期, TL0 加1 */

                MUL        AB                         /* 定時器0 運行4 個(ge) 機器周期, TL0 加4 */

                LJMP       TestStart                  /* 定時器0 運行2 個(ge) 機器周期, TL0 加2 */

                END

       測試步驟

      (1)  照您當前使用的仿真器要求測試上麵的程序;

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

      (3)  使用當前仿真器環境提供的單步功能開始單步運行;

      (4)  單步運行後檢查TL0 變化的數值是否與(yu) 指令的周期數相同。

       測試結論:仿真器如果沒有照嚴(yan) 格正規的設計,程序的單步運行性能將不準確,一般會(hui) 出現實際運行時間變長的現象,這在時間要求較高的單步運行將不能仿真程序的真正運行。

       2.中斷性能的測試

       測試說明:中斷是一種非正常的程序跳轉,單步仿真有一定的難度,尤其在低檔仿真器中。在當前采用Bondout 技術製作的仿真器中一般可以做到正確仿真,但是仍有一些仿真器不能正確單步仿真中斷。

         測試程序:

                ORG       0000H

                LJMP      TestStart

                ORG        000BH                     /*  定時器0 的中斷服務程序 */

                RETI

    TestStart:

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

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

    TestLoop:

                SETB      TF0                        /*  設置T0 的中斷標誌 */

                INC       A                          /* A 數值加一,以便觀察程序持續運行 */

                LJMP      TestLoop                   /* 連續運行 */

                END

       測試步驟

     (1)  照您當前使用的仿真器要求測試上麵的程序。

     (2)  每次SETB TF0 後程序將進入T0 的中斷服務程序,執行完畢後返回主程序繼續運行。

     (3)   主程序能在TestLoop 中連續運行,因此A 能連續加一,但是每循環一次就進入一次中斷。

       測試結論:仿真器如果沒有照嚴(yan) 格正規設計,程序的中斷性能將不準確。可能出現程序不能跳轉到中斷服務程序,或沒有返回到正確的主程序,或A 不能每次循環連續的加1。

       3.連續中斷性能的測試

       測試說明:在80C51 的中斷係統中,串口中斷比較特殊。進入串口中斷服務程序後中斷標誌TI或RI不會(hui) 自動清除,如果用戶程序不對TI 或RI進行清除操作則可能會(hui) 出現連續進入中斷服務程序的情況。根據80C51 的中斷處理,在退出中斷後必須執行完一條指令後才能重新進入中斷服務程序,因此即使連續中斷的情況下主程序也能得到連續執行。

       測試程序:

                ORG       0000H

                LJMP      TestStart

                ORG        0023H                     /*  定時器0 的中斷服務程序 */

                RETI

    TestStart:

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

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

                SETB      TI

TestLoop:

                NOP

                NOP

                INC        A                         /* A 數值加一,以便觀察程序持續運行 */

                LJMP      TestLoop                   /* 連續運行 */

                END

      測試步驟

     (1)   照您當前使用的仿真器要求測試上麵的程序。

     (2)   進入TestLoop 後,每次單步運行完一條程序都會(hui) 進入串口中斷,退出後繼續運行一條下麵的程序,然後又進入中斷服務程序,A 的數值可以得到遞增。

     (3)   主程序能在TestLoop 中連續運行,因此A 能連續加一,但是每循環一次就進入一次中斷。

       測試結論:仿真器如果沒有照嚴(yan) 格正規設計,程序連續運行中斷程序性能將不準確。可能出現程序不能跳轉到中斷服務程序,或沒有返回到正確的主程序,或A 不能每次循環連續的加1。

       測試小結

       上述的幾個(ge) 測試程序對仿真器的性能要求很高,如果仿真器通過測試說明被測試的仿真器仿真性能指標較高;如果仿真器沒有通過測試隻能判斷仿真器性能不是最好,具體(ti) 的綜合性能要有待其它檢驗。

       第七章    如何挑選測試HOOKS 技術仿真器

        HOOKS 技術是國外普遍采用的一種仿真技術,同Bondout 技術相比較,仿真器的適用範圍可以更廣。HOOKS 技術在10年前已經被國內(nei) 引進,並被當時的仿真器廠家試圖采用。但是由於(yu) HOOKS 技術本身的複雜性,當時國內(nei) 眾(zhong) 仿真器廠家竟無法設計出可以使用的仿真器,致使國內(nei) 的仿真技術遠遠落後於(yu) 國外。

        2002年,周立功旗下的廣州致遠電子有限公司推出了研製多年的TKS 係列HOOKS 仿真器,並在性能上全麵超過國外同類型的HOOKS 仿真器,國內(nei) 的用戶能以低廉的價(jia) 格購買(mai) 到技術先進的HOOKS技術仿真器。在TKS 係列HOOKS 仿真器麵市以後,國內(nei) 的仿真器廠商紛紛加強研發力量研製HOOKS技術,經過了一段時間後也宣布供應采用HOOKS 技術的仿真器。用戶需要注意的是:HOOKS 技術隻是一個(ge) 基本的仿真技術,要最終作成仿真器還必須依靠設計工程師精心的設計,因此市場上HOOKS 技術的仿真器性能指標可能有很大的差別,有的不占用用戶資源,有的就做不到;有的仿真頻率可以到很高,但是有的不行。因此用戶應仔細加以挑選和鑒別。

       根據HOOKS 技術本身的特點,用戶應該對以下的幾個(ge) 方麵加以注意和測試。

        能否運行外部用戶目標板上的程序

       由於(yu) HOOKS 技術中P0/P2 口是重新構造的,因此P0/P2 口上的時序處理是整個(ge) 設計中的難點。P0/P2 的I/O 特性和數據總線特性相對容易實現一點,但是程序總線很難正確實現,這是由於(yu) HOOKS的技術結構決(jue) 定的。一般HOOKS 仿真器在實現仿真內(nei) 部64K 代碼空間比較容易,但是仿真內(nei) 部4K (類似89C51)/8K (類似89C54)/16K (類似89C54)/32K (類似89C58)等能外擴ROM 空間的MCU類型則無法實現。在國內(nei) 外所有的HOOKS 技術的仿真器中,隻有廣州致遠公司的TKS 仿真器B 係列能真正做到穩定運行外部用戶目標板上的程序。運行外部用戶目標板上的程序是非常必要的,因為(wei) 用戶可能在外部擴充了一般的用戶程序,需要實際仿真一下來驗證整個(ge) 係統的正確性;也可能在外部放置了大容量的(可能超過64K 的物理地址限製)分組字庫,而這種特性是仿真器內(nei) 部無法實現的;也可能是外部有分組的BANK 方式的運行代碼,這種方式要求仿真器必須有運行外部程序代碼的能力。

        P0/P2 口能否同時用作總線和I/O

        這種特性是芯片本來的性能,但是由於(yu) HOOKS 技術的難度,有很多HOOKS 仿真器不能做到這一點,導致用戶在使用時無法全麵滿足要求。該性能一般不需要測試,可以直接閱讀仿真器的性能說明或向生產(chan) 廠商或代理商詢問。作者檢測過國內(nei) 外知名仿真器廠家的多種HOOKS 仿真器,幾乎都沒有完美做到P0/P2 口的準確仿真。

        P0/P2 口的直流參數

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

       測試程序:

                ORG         0000H

LJMP      TestStart

TestStart:       MOV      P0,#0FFH

TestLoop:       MOV       P0,#00H

                NOP

                MOV       A,#0FFH

                MOV       DPTR,#0FFFFH

                MOVX      @DPTR,A

                NOP

                MOV       P0,#00H

                SJMP      TestLoop

                END

       測試步驟

        (1)  照您當前使用的仿真器要求測試上麵的程序,仿真器不接任何用戶設備。

       (2)  單步運行完TestStart 的程序行,P0 的數值設置為(wei) 0FFH。這時使用電壓表測量一下P0的任意一個(ge) 管腳(例如P0.0)的電壓,記錄為(wei) V1,V1 的數值一般小於(yu) 當前的電源電壓。然後使用一個(ge) 2K 電阻,一端接仿真器提供的地,另一端接P0.0,使用電壓表測量一下P0.0 的電壓,記錄為(wei) V2,V2的電壓越接近與(yu) 0 說明該仿真器P0 在I/O 口方式下的特性越好(接近於(yu) 開漏)。如果V2 大於(yu) 1伏說明P0 口的輸入電阻在10K 以下,該仿真器P0 口在I/O 下性能較差。

       (3)  在TestLoop 中連續全速運行,仍保持2K 電阻接在P0.0。使用示波器觀察P0.0 引腳,可以看到占空比較小的正電平脈衝(chong) ,該正電平脈衝(chong) 是有P0 輸出的低8 位地址和數據輸出引起的,因為(wei) 處於(yu) 總線方式,P0 口的驅動能力應該較強。保持示波器的正常顯示,然後將2K 電阻不斷的接觸/脫離P0.0 引腳,觀察P0.0 腳脈衝(chong) 信號幅度的變化。如果該信號在2K 電阻接入後幅度降低很大,例如1V 以上,說明該仿真器P0 口驅動能力不足,無法滿足用戶的正常的需要。

       測試結論:HOOKS 仿真器要同時仿真I/O 口和總線模式而且保持良好的驅動特性是比較困難的,但是可以作到的。一般的HOOKS 仿真器一般不敢宣稱同時仿真I/O 口和總線方式,但是用戶需要注意即使宣稱可以同時仿真I/O 和總線,用戶也需要照上述的方法進行測試,防止廠家采取驅動折中的方法掩蓋。根據作者的測試結果,國內(nei) 所有的HOOKS 仿真器隻有TKS 係列可以作到真正同時仿真I/O 口和總線方式,重要的是仍保持了良好的驅動特性。

       是否占用用戶資源

       設計優(you) 良的HOOKS 仿真器不會(hui) 占用任何用戶資源,但是由於(yu) 設計技術的差別,有一些采用HOOKS技術的仿真器不能達到這樣的性能,一般會(hui) 占用部分資源。占用資源將在使用中限製用戶的使用,用戶可能無法通過該仿真器實現正常程序的功能。該性能一般不需要測試,可以直接閱讀仿真器的性能說明或向生產(chan) 廠商或代理商詢問。

       ALE 信號的關(guan) 閉/開啟

       HOOKS 技術的一個(ge) 突出優(you) 點是能支持增強性能的仿真,而ALE 信號的關(guan) 閉/開啟是增強性能的一個(ge) 典型範例。由於(yu) 在HOOKS 技術中,依賴ALE 信號能大大簡化信號的處理,因此一般采用HOOKS 技術的仿真器都不能關(guan) 閉ALE 信號,否則會(hui) 引起仿真時序的全麵紊亂(luan) 。該性能一般在仿真器的性能說明中沒有詳細說明,因此需要用戶自己進行測試。

      下麵的測試程序以PHILIPS 的P89C52X2 仿真芯片為(wei) 例。

      測試程序:

               ORG        0000H

               LJMP      TestStart

TestStart:  MOV         P2,#55H                     /* 先對P1 進行設置 */

TestLoop:  ORL          AUXR,#01H                   /*  關(guan) 閉ALE 信號 */

               NOP

               MOV       P2,#55H

               NOP

               ANL       AUXR,#0FEH                 /* 開啟ALE 信號 */

               NOP

               MOV       P2,#0AAH

               NOP

               LJMP      TestLoop                     /* 連續運行 */

               END

     測試步驟

     (1)  照您當前使用的仿真器要求測試上麵的程序。

     (2)  進入TestLoop 後,連續單步運行,程序應該能照正確的程序流程運行,而且對P2 的操作能正確在P2 口反映出來。

     (3)  在TestLoop 中連續全速運行,然後停止程序運行,觀察當前程序位置是否是在TestLoop 內(nei) 的有效位置,P2 是否是前一個(ge) 對P2 操作的數值。

     測試結論:仿真器如果不能支持ALE 的關(guan) 閉將無法通過上麵的測試程序。

     雙倍速時鍾的動態/靜態切換

       PHILIPS、SST 等一些MCU 廠商在自己的增強型51 產(chan) 品中增加了雙倍速時鍾的功能,使51 內(nei) 核的速度提高了兩(liang) 倍。而且在有的型號中同時具有6/12Clock 時鍾切換的功能,用戶在使用中有了更多的靈活性。因此,這種變化要求HOOKS 仿真器必須同時滿足6/12Clock 兩(liang) 種方式之一的仿真(靜態切換),更高的要求則是能在用戶程序運行中變換6/12Clock 模式(動態切換)。能同時滿足動態/靜態切換的仿真器難度很大,在國內(nei) 除TKS 宣布掌握這一技術外,沒有見到其它廠家有類似的報道。時鍾的靜態切換功能可以直接查閱仿真器的性能說明或向生產(chan) 廠商/代理商詢問,也可以用下麵的程序進行測試:

      下麵的測試程序以PHILIPS 的P89C52X2 仿真芯片為(wei) 例。

      測試程序:

               ORG       0000H

               LJMP      TestStart

TestStart:  MOV         P2,#55H                          /* 先對P2 進行設置 */

TestLoop:  ORL          CKCON,#01H                       /*  切換為(wei) 6Clock 模式 */

               NOP

               MOV       P2,#55H

               NOP

               ANL       CKCON,#0FEH                      /* 切換為(wei) 6Clock 模式*/

               NOP

               MOV        P2,#0AAH

NOP

                LJMP      TestLoop                             /* 連續運行 */

                END

     測試步驟

     (1)   照您當前使用的仿真器要求測試上麵的程序。

     (2)  進入TestLoop 後,連續單步運行,程序應該能照正確的程序流程運行,而且對P2 的操作能正確在P2 口反映出來。

     (3) 在TestLoop 中連續全速運行,然後停止程序運行,觀察當前程序位置是否是在TestLoop 內(nei) 的有效位置,P2 是否是前一個(ge) 對P2 操作的數值。

       測試結論:仿真器如果不能支持6/12Clock 的切換將無法通過上麵的測試程序。

Tags:單片機,仿真器,選購指南  
責任編輯:admin
請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個字
[ 查看全部 ] 網友評論
關於我們 - 聯係我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁麵
下到頁底
晶體管查詢