? 第一章?? 為什么要使用仿真器??
?
??????? 1.1 仿真的概念
??????? 仿真的概念其實使用非常廣,最終的含義就是使用可控的手段來模仿真實的情況。?
????? 在嵌入式系統(tǒng)的設計中,仿真應用的范圍主要集中在對程序的仿真上。例如,在單片機的開發(fā)過程中,程序的設計是最為重要的但也是難度最大的。一種最簡單和原始的開發(fā)流程是:編寫程序-燒寫芯片-驗證功能,這種方法對于簡單的小系統(tǒng)是可以對付的,但在大系統(tǒng)中使用這種方法則是完全不可能的。
????? 1.2? 仿真的種類
???????軟件仿真:這種方法主要是使用計算機軟件來模擬運行實際的單片機運行,因此仿真與硬件無關的系統(tǒng)具有一定的優(yōu)點。用戶不需要搭建硬件電路就可以對程序進行驗證,特別適合于偏重算法的程序。軟件仿真的缺點是無法完全仿真與硬件相關的部分,因此最終還要通過硬件仿真來完成最終的設計。
???? ?硬件仿真:使用附加的硬件來替代用戶系統(tǒng)的單片機并完成單片機全部或大部分的功能,使用了附加硬件后用戶就可以對程序的運行進行控制,例如單步,全速,查看資源,斷點等。硬件仿真是開發(fā)過程中所必須的。
????? 1.3? 為什么要使用仿真器?
?????? 在與一些有經(jīng)驗的工程師交談中,我們會發(fā)現(xiàn)有相當一部分工程師在開發(fā)中不使用或很少仿真器。向他們詢問原因,得到的回答是“仿真器不可靠”。但是他們是如何解決程序開發(fā)中遇到的問題呢?通過深入的交流才明他們是照這樣的方法來開發(fā)程序的:
???? ? (1)?? 根據(jù)自己的設計建立一個符合要求的硬件平臺,如果該平臺涉及的程序比較復雜,還要搭建一個人機交流的通道。人機交流通道可能是一個簡單的發(fā)光二極管,蜂鳴器,復雜的可能是串口通訊口,LCD顯示屏。
????? (2)? 寫一個最簡單的程序,例如只是將發(fā)光二極管連續(xù)的閃爍。程序編譯后燒寫到單片機芯片中,驗證硬件平臺是否工作正常。
???? (3)? 硬件平臺正常工作后編寫系統(tǒng)最低層的驅動程序,每次程序更改后都重新燒寫單片機芯片驗證。如果在程序驗證中遇到問題,則可能在程序中加入一些調(diào)試手段,例如通過串口發(fā)送一些信息到PC 端的超級終端上,用于了解程序的運行情況。
???? (4)? 系統(tǒng)低層驅動程序完成后再編寫用戶框架程序,由于這部分已經(jīng)不涉及到硬件部分,所以程序中的問題用戶一般能夠發(fā)現(xiàn)。
?????? 但是更多的調(diào)查表明,使用以上方法的工程師總的看來所設計的程序不是很龐大或很復雜。因為在做簡單的項目時,我們可以通過一個發(fā)光二極管就可以表達出內(nèi)部的信息;如果程序復雜,可能需要更多的信息來表示內(nèi)部的狀態(tài),這樣可能就需要串口協(xié)助調(diào)試;如果程序更復雜,硬件更多,實時性更強,那工程師就要更多的增強調(diào)試手段,串口可能就不能滿足了,需要類似于斷點的功能,因為我想知道在某一個時刻單片機內(nèi)部的狀態(tài)究竟是怎樣?
??????? 如果用戶程序的修改非常頻繁,可能一次又一次地的燒寫芯片占用的時間就很多,這時用戶就會想能下載程序并運行的裝置。到這里,您會看到,隨著用戶要求的越來越高,調(diào)試裝置已經(jīng)越來越象一個通用的仿真器了。因此我們的建議是:不要回避使用仿真器,因為使用仿真器能提高您的開發(fā)速度。
??????? 但是不能否認的是,用戶回避使用仿真器也是有原因的。因為仿真器也是一種電子裝置,非常依賴于設計者的水平。如果一個仿真器設計者的水平有欠缺,那將給仿真器的使用者帶來很大的問題,因為仿真器的使用者將分不清楚究竟是程序的問題還是出在那里。隨著電子設備的復雜化,設計工程師面臨前所未有的壓力。您可以想象,用戶發(fā)現(xiàn)了程序中有一個問題,首先懷疑是自己系統(tǒng)中的問題,可能是軟件方面也可能是硬件方面。因為用戶系統(tǒng)處于開發(fā)階段,用戶基本上不會懷疑仿真器。在這種情況下,用戶將耗費很大的精力在自己的系統(tǒng)中尋找并不存在的問題。如果用戶最終發(fā)現(xiàn)問題來源于仿真器,并通過燒寫芯片驗證確實如此,那這個仿真器用戶以后可能會逐漸放棄使用仿真器。
?????? 用戶放棄使用仿真器,對用戶的影響是巨大的。因為放棄使用一個設計不完善的仿真器,也放棄了 使用其它設計完善的仿真器,關鍵是放棄了合理的開發(fā)方法。因此我們的建議是:不要回避使用仿真器,但要挑選好的仿真器。
????? 1.4仿真器的附加服務更加重要
????? ?在購買仿真器的同時,還要注意仿真器廠家的服務,這一點很關鍵。這里說的服務包含仿真器本身的服務,例如仿真器使用上的指導服務,仿真器的維修服務。這些都是一個產(chǎn)品的最基本的服務,對于仿真器這種特殊產(chǎn)品來將還不是全部的服務。
?????? 使用仿真器來開發(fā)產(chǎn)品,會遇到很多問題:產(chǎn)品本身的問題,仿真器的問題,仿真器和用戶系統(tǒng)的問題。如果用戶開發(fā)經(jīng)驗不是很豐富,他并不能排除遇到的問題究竟來源于哪個方面。這時,他可能求助于仿真器生產(chǎn)廠商。如果仿真器的生產(chǎn)廠商只專注于仿真器的設計,而對于其它的單片機應用不熟悉,他可能對用戶提出的問題不能作出正確的判斷而一味的強調(diào)自己的仿真器沒有問題。與之相反,一個既熟悉仿真器的使用,又有豐富開發(fā)經(jīng)驗的仿真器支持廠商則能協(xié)助用戶快速的找出問題,實踐證明這兩種情況帶來的效果是完全不一樣的。因此我們的建議是:挑選好的仿真器,更要挑選好的技術支持。
?????? 第二章??? 仿真器中使用的技術
??????? 仿真器的生產(chǎn)在國內(nèi)有十多年的歷史,其中使用的技術根據(jù)時間和性能的不同大約分成以下幾種:
????? ?(1) 仿真開發(fā)系統(tǒng)
?????? 這種技術主要在仿真器的初級階段使用。由于當時沒有好的仿真技術或仿真芯片,仿真器設計成了一個雙平臺的系統(tǒng)并根據(jù)用戶的要求在監(jiān)控系統(tǒng)和用戶系統(tǒng)中切換。這種仿真系統(tǒng)性能完全依賴于設計者的水平,實際的最終性能廠家之間相差很大。不過總的說來需要占用一定的用戶資源并且設計復雜,現(xiàn)在基本上已經(jīng)淘汰,只是使用在一些開發(fā)學習系統(tǒng)中。
???? ? (2)? Bondout 技術
????? ?一般來說,人們常常說的專用仿真芯片其實就是 Bondout。這種仿真芯片一般也是一種單片機, 但是內(nèi)部具有特殊的配合仿真的時序。當進入仿真狀態(tài)后,可以凍結內(nèi)部的時序運行,可以查看/修改在靜止時單片機內(nèi)部的資源。
???? ? 使用Bondout 制作的仿真器一般具有時序運行準確(也有例外),設計制作成本低等優(yōu)點;Bondout芯片一般是由單片機生產(chǎn)廠家提供的,因此它只能仿真該廠商指定的單片機,仿真的品種很少。
?? ???? (3)? HOOKS 技術
????? ?HOOKS 是PHILIPS擁有的一項仿真技術,主要解決不同品種單片機的仿真問題。使用該專利技術 就可以仿真所有具有HOOKS 特性的單片機,即使該單片機是不同廠家制造的。使用HOOKS 技術制造的仿真器可以兼容仿真不同廠家的多種單片機,而且仿真的電氣性能非常接近于真實的單片機。但是HOOKS 技術對仿真器的制造廠家的技術要求特別高,不同的仿真器生產(chǎn)廠家同時得到HOOKS 技術的授權,但是設計的仿真器的性能差別很大。
?????? ?10 年前國內(nèi)就已經(jīng)得到了 PHILIPS? 的 HOOKS 技術授權,但是受當時技術水準的限制研制的 HOOKS 仿真器還不能實用。即使到了今天,也不是每個仿真器廠家都能生產(chǎn)HOOKS 仿真器,即使生 產(chǎn)出來性能也差異很大,用戶應仔細區(qū)別。
???? ? (4)? 內(nèi)嵌仿真功能的芯片
?????? 隨著芯片技術的發(fā)展,很多單片機生產(chǎn)廠商在芯片內(nèi)部增加了仿真功能,一般通過JTAG 接口進行控制。為了降低成本和增加可靠性,內(nèi)嵌的仿真部分一般功能比較簡單。
???? ? 根據(jù)當前的發(fā)展趨勢,如果只仿真標準的MCS-51 系列單片機可以選用Bondout 技術的仿真器;如果用戶希望仿真器功能更多更靈活的諸如增強型80C51 系列單片機的話,那么必須選用HOOKS 技術仿真器。二者比較而言,采用HOOKS 技術的仿真器性價比要高于Bondout 技術。
????? 第三章? 國內(nèi)仿真器的現(xiàn)狀
??????? 到今天為止國內(nèi)的仿真器發(fā)展大約有20 年的歷史,總的說來生產(chǎn)商的規(guī)模都不是很大,在新產(chǎn)品 的研制/開發(fā)/服務上都不能投入很大的資金。根據(jù)仿真器使用的技術來劃分,國內(nèi)仿真器的設計大約可以分成以下幾個時期:
????? (1)? 70 年代末期-80 年代中期 這個時期采用的技術主要是仿真開發(fā)系統(tǒng),現(xiàn)在看來技術含量不高,用戶要求也不高。
????? (2)? 80 年代末期-90 年代末期 這個時期主要使用華邦一顆帶有仿真功能的芯片制作,采用的技術應該叫做Bondout。采用這顆芯片能大大簡化仿真器的設計,因此國內(nèi)仿真器的水準有了大的提高,基本上可以不占用用戶資源。
????? 正是由于仿真性能的提高,國內(nèi)的仿真器制作在將近 10 年的時間內(nèi)沒有進步,一直采用這種制作模式。雖然個別廠商也嘗試過別的技術來提高仿真水準,例如HOOKS 技術,但是由于本身技術的限制沒有成功。相反國外的仿真器較早地使用了HOOKS 技術,在初期由于HOOKS 技術本身的復雜性,仿 真性能和價格不如國內(nèi)采用Bondout 的仿真器。
????? ?隨著IC 技術的發(fā)展,國內(nèi)制作HOOKS 技術的條件已經(jīng)成熟,但是國內(nèi)的幾家主要的生產(chǎn)廠商還 陶醉于Bondout 技術之中。
???? ? (3)? 2000 年開始
??? 2000 年是中國仿真器市場變化最大的時期,其中最引人注目的變化是華邦仿真芯片W78958 的停產(chǎn)。
?????? 華邦公司在設計W78958 芯片時,其內(nèi)部的仿真功能只是為了仿真器廠商能制作仿真器以便更好的推廣W78958。但是經(jīng)過幾年的變化,W78958 演變成為一顆仿真器上使用的仿真專用芯片而不是用戶使用的標準芯片,使用的范圍也僅限于國內(nèi),一年不到20000 只的用量也促使華邦公司在進入2002年后宣布將停產(chǎn)該芯片。
???? ? W78958 停產(chǎn)以后,國內(nèi)仿真器廠商處于一個非常尷尬的局面。由于W78958 在國內(nèi)使用了將近10 年,國內(nèi)的用戶群非常龐大,這些用戶將無法得到持續(xù)的支持特別是維修方面。另外,國內(nèi)圍繞在W78958 上所做的技術工作也無法得到延續(xù)和提高,很多業(yè)界人士認為仿真器行業(yè)將面臨另起爐灶或重新洗牌的局面。
???? ? HOOKS 技術無疑是仿真器廠商在失去W78958 后的替代品,但是由于沒有長期跟蹤和關注,短期內(nèi)多數(shù)廠家無法將復雜的HOOKS 技術應用于成熟的產(chǎn)品中。專家們認為仿真器廠家的整體轉型可能需要2-3 年的周期,并且有相當?shù)姆抡嫫鲝S家將會被淘汰,市場擁有量將主要集中在少數(shù)幾個仿真器廠家。?????
??? ?? 周立功單片機發(fā)展有限公司是PHILIPS 在國內(nèi)最大的代理商,它以獨特的技術銷售引起國內(nèi)乃至全球的注目。周立功公司成立時間不到5 年,但是膨脹很快,現(xiàn)在已然成為國內(nèi)單片機行業(yè)的龍頭,一言一行對整個行業(yè)影響很大。
?????? 2001 年12 月,周立功公司試探性地推出第一款仿真器TKS-764,用于支持周立功公司當時的 主打芯片51LPC 系列OTP 單片機。由于TKS-764 內(nèi)部穩(wěn)定可靠的設計,并直接直接在Keil 中的調(diào)試,所以推出后得到51LPC 用戶的青睞,擁有相當大的用戶群。
??????? 2002 年6 月,周立功旗下的廣州致遠電子有限公司在國內(nèi)率先推出研制達兩年之久的HOOKS 仿真器,全面支持PHILIPS 和其它公司的增強型80C51 系列單片機的仿真問題。該系列仿真器徹底解決了國內(nèi)仿真器在仿真低電壓、內(nèi)部64K 程序、靜態(tài)和動態(tài)關閉ALE、靜態(tài)和動態(tài)切換6/12 Clock、4 個中斷優(yōu)先級、串口從地址自動識別和幀錯誤檢測以及P8xC51 獨具定時器2 等增強性能的難題, 短期內(nèi)使仿真器的用戶群迅速擴大,并在業(yè)界得到良好的口碑。
?????? TKS 系列HOOKS 技術仿真器推出后,在仿真器行業(yè)引起了不小的震動。因為周立功公司在公眾前的形象一一直是一個優(yōu)秀的芯片代理商,在掌握了先進的仿真器技術后將改變整個行業(yè)的格局。國內(nèi)的仿真器生產(chǎn)廠商在華邦的仿真芯片停產(chǎn)后發(fā)現(xiàn)自己處于一個尷尬的境地,現(xiàn)有的仿真器不能繼續(xù)生產(chǎn)了。而轉向HOOKS 技術還需要一段研發(fā)的過程,即使有些廠家匆匆推出了HOOKS 技術仿真器卻明顯比周立功公司的HOOKS 技術仿真器在性能上有明顯的差距,仿真器行業(yè)可能會重新洗牌。
?????? 第五章 如何挑選通用仿真器
?????? 仿真器是一種很特殊的電子工具,仿真器的性能跟設計者的水平密切相關。同樣使用一種仿真器技術,但是最終產(chǎn)品的性能差別很大。根據(jù)用戶的不同用途,可以照如下標準挑選仿真器:
????? ?如果主要用途是商業(yè)產(chǎn)品開發(fā),使用專用仿真器比較理想因為專用仿真器只是仿真某一種或一類芯片,可以做得性能比較高,性能也比較穩(wěn)定,不用兼顧其它芯片的特殊要求。專用仿真器可能價格高一點,但是對商業(yè)開發(fā)來講良好的性能是第一位的。
?????? 盡量采用技術含量高的仿真技術
???? ? 例如,HOOKS 技術由于其良好的兼容性以及接近實際芯片的性能,應該成為通用和專用仿真器
首選。
????? ?慎重選擇仿真芯片裝在外置仿真頭上的結構
???? ?有些仿真器的仿真芯片放置在外置仿真頭的上方,這種方式的優(yōu)點是可以通過更換仿真頭來更換仿真器的仿真性能,通用性比較強,可以仿真不同類型的單片機。一些宣傳中說仿真芯片貼近用戶板,性能是最可靠的,但實際不是這樣的。仿真芯片除了輸出用戶信號外,還要通過復雜的總線由監(jiān)控電路控制,這種控制時序是最重要的。由于控制時序頻率比較高,因此不應該通過較長的仿真電纜輸出到外部仿真頭上,這很容易受到外部的干擾或干擾外部。一旦控制時序出現(xiàn)問題,仿真芯片離用戶板再近也沒有用途。
?????? ?注意仿真器的一些細節(jié)問題。例如:
?????????? (1)? 否支持外部復位信號?
?????????? (2)?? 是否支持用戶板晶振?
?????????? (3)?? 能否在真正仿真內(nèi)部64K 程序 (P0/P2 口仍做I/O 口)?
?????????? (4)?? P0/P2 口是否可以同時用作I/O 口和總線?
?????????? (5)? 仿真器的輸出/輸入口是否有可靠的保護?
?????????? (6)?? 是否支持低電壓的仿真?
?????????? (7)? 是否支持增強型80C51性能?例如內(nèi)部的附加XRAM,雙DPTR,ALE 關閉,6CLK 時鐘等。
?????????? (8)?? 是否支持靜態(tài)關閉和動態(tài)關閉ALE?
?????????? (9)?? 是否靜態(tài)切換和動態(tài)切換6/12 Clock?
?????????? (10)是否支持更高的仿真頻率?
????? 仿真器廠家后續(xù)的技術支持
????? ?由于仿真器在應用中的特殊性,用戶在選購時盡量選擇有強大技術支持的生產(chǎn)廠家。好的技術支持不但能給您帶來仿真器使用上的支持,也能給您在應用項目上的各個方面提出良好的建議和指導,使您能快速準確的完成您目前的項目。但如前所述,國內(nèi)多數(shù)廠商規(guī)模很小,不能給用戶提供全面的技術支持。周立功公司在進入工具行業(yè)后,提出了單片機的一攬子解決方,提供包括工具在內(nèi)的全方位的用戶支持,開辟了一種全新的銷售服務模式。
??????? 第六章 如何測試通用仿真器
??????? 在選擇了仿真器生產(chǎn)廠商后,用戶還需要對仿真器的性能做仔細的測試,保證您選擇的仿真器能夠達到該仿真器保證的性能以及作為仿真器應該達到的性能。
????? ?在選擇一種仿真器前,通過該仿真器的廣告和銷售人員的介紹,用戶能基本上了解該仿真器的突出性能。這些突出性能應該是該仿真器確實存在的功能,雖然可能有被夸大但一般都不會有欺騙的成分。這些性能好不好需要有針對性的一一驗證,這里只能建議用戶將目光注意在實際仿真性能上,而不要過分注意一些與仿真器無關或關系不大的功能。
?????? 很多的仿真器雖然具備一些附加的功能,但是用戶必須要注意到這些仿真器可能在一些最基本的仿真功能卻做不好,這種現(xiàn)象在國產(chǎn)的仿真器中非常普遍!由于用戶并不專業(yè)于仿真器的測試,因此在購買中不知道對這些仿真器的死點進行驗證。等以后在學習特別是在開發(fā)設計中,這些設計中的死點可能給您帶來莫名其妙的問題。您可能要花幾倍的時間來尋找其中的原因,因為您首先懷疑是您系統(tǒng)的問題而不懷疑是仿真器的問題。所以選擇一個性能可靠的仿真器是十分重要的,這需要非常專業(yè)化的測試程序來實現(xiàn)。
????? ?以下的測試程序由廣州致遠電子有限公司提供,經(jīng)過長時間的使用證明能基本上反映出一個仿真器設計水平的高低。廣州致遠電子有限公司在提供這些測試程序時聲明:這些測試程序只是指出仿真器設 計中容易出現(xiàn)的問題,但并不有意攻擊任何含有上述問題的仿真器廠家。
?????
評論
查看更多