<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 測試測量 > 學(xué)習方法與實(shí)踐 > 80C51系列單片機仿真器選購指南(下)

80C51系列單片機仿真器選購指南(下)

——
作者: 時(shí)間:2007-11-22 來(lái)源:?jiǎn)纹瑱C資訊網(wǎng) 收藏
第六章 如何測試通用 

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

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

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

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

      1.單步性能的測試 

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

       測試程序: 

                ORG        0000H 

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

     TestStart: 

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

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

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

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

                END 

       測試步驟 

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

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

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

      (4)  單步運行后檢查T(mén)L0 變化的數值是否與指令的周期數相同。 

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

       2.中斷性能的測試 

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

         測試程序: 

                ORG       0000H 

                LJMP      TestStart 

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

                RETI 

    TestStart: 

                SETB      EA                         /* 開(kāi)放全局中斷允許 */ 

                SETB      ET0                        /* 開(kāi)放T0 中斷允許 */ 

    TestLoop: 

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

                INC       A                          /* A 數值加一,以便觀(guān)察程序持續運行 */ 

                LJMP      TestLoop                   /* 連續運行 */ 

                END 

       測試步驟 

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

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

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

       測試結論:仿真器如果沒(méi)有照嚴格正規設計,程序的中斷性能將不準確??赡艹霈F程序不能跳轉到中斷服務(wù)程序,或沒(méi)有返回到正確的主程序,或A 不能每次循環(huán)連續的加1。 {{分頁(yè)}} 

       3.連續中斷性能的測試 

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

       測試程序: 

                ORG       0000H 

                LJMP      TestStart 

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

                RETI 

    TestStart: 

                SETB      EA                         /* 開(kāi)放全局中斷允許 */ 

                SETB      ES                         /* 開(kāi)放串口中斷允許 */ 

                SETB      TI 

TestLoop: 

                NOP 

                NOP 

                INC        A                         /* A 數值加一,以便觀(guān)察程序持續運行 */ 

                LJMP      TestLoop                   /* 連續運行 */ 

                END 

      測試步驟 

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

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

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

       測試結論:仿真器如果沒(méi)有照嚴格正規設計,程序連續運行中斷程序性能將不準確??赡艹霈F程序不能跳轉到中斷服務(wù)程序,或沒(méi)有返回到正確的主程序,或A 不能每次循環(huán)連續的加1。 

       測試小結 

       上述的幾個(gè)測試程序對仿真器的性能要求很高,如果仿真器通過(guò)測試說(shuō)明被測試的仿真器仿真性能指標較高;如果仿真器沒(méi)有通過(guò)測試只能判斷仿真器性能不是最好,具體的綜合性能要有待其它檢驗。 

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

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

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

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

       能否運行外部用戶(hù)目標板上的程序 

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

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

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

        P0/P2 口的直流參數 

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

       測試程序: 

                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)  照您當前使用的仿真器要求測試上面的程序,仿真器不接任何用戶(hù)設備。 

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

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

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

       是否占用用戶(hù)資源 

       設計優(yōu)良的HOOKS 仿真器不會(huì )占用任何用戶(hù)資源,但是由于設計技術(shù)的差別,有一些采用HOOKS技術(shù)的仿真器不能達到這樣的性能,一般會(huì )占用部分資源。占用資源將在使用中限制用戶(hù)的使用,用戶(hù)可能無(wú)法通過(guò)該仿真器實(shí)現正常程序的功能。該性能一般不需要測試,可以直接閱讀仿真器的性能說(shuō)明或向生產(chǎn)廠(chǎng)商或代理商詢(xún)問(wèn)。 

       ALE 信號的關(guān)閉/開(kāi)啟 

       HOOKS 技術(shù)的一個(gè)突出優(yōu)點(diǎn)是能支持增強性能的仿真,而ALE 信號的關(guān)閉/開(kāi)啟是增強性能的一個(gè)典型范例。由于在HOOKS 技術(shù)中,依賴(lài)ALE 信號能大大簡(jiǎn)化信號的處理,因此一般采用HOOKS 技術(shù)的仿真器都不能關(guān)閉ALE 信號,否則會(huì )引起仿真時(shí)序的全面紊亂。該性能一般在仿真器的性能說(shuō)明中沒(méi)有詳細說(shuō)明,因此需要用戶(hù)自己進(jìn)行測試。 

      下面的測試程序以PHILIPS 的P89C52X2 仿真芯片為例。 

      測試程序: 

               ORG        0000H 

               LJMP      TestStart 

TestStart:  MOV         P2,#55H                     /* 先對P1 進(jìn)行設置 */ 

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

               NOP 

               MOV       P2,#55H 

               NOP 

               ANL       AUXR,#0FEH                 /* 開(kāi)啟ALE 信號 */ 

               NOP 

               MOV       P2,#0AAH 

               NOP 

               LJMP      TestLoop                     /* 連續運行 */ 

               END 

     測試步驟 

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

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

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

     測試結論:仿真器如果不能支持ALE 的關(guān)閉將無(wú)法通過(guò)上面的測試程序。 

     雙倍速時(shí)鐘的動(dòng)態(tài)/靜態(tài)切換 

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

      下面的測試程序以PHILIPS 的P89C52X2 仿真芯片為例。 

      測試程序: 

               ORG       0000H 

               LJMP      TestStart 

TestStart:  MOV         P2,#55H                          /* 先對P2 進(jìn)行設置 */ 

TestLoop:  ORL          CKCON,#01H          &am


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>