基于SST89C58單片機的仿真器設計與電路構成
單片機仿真器可實(shí)現對單片機程序的單步跟蹤調試,具備斷點(diǎn)或全速等多種調式方式,同時(shí)能夠記錄各種變量以及RAM和寄存器的動(dòng)態(tài)數據,對于程序的執行步驟與效果進(jìn)行實(shí)時(shí)觀(guān)察。此外,其還可實(shí)現對硬件電路的動(dòng)態(tài)調試。當前單片機仿真器已在工業(yè)中得到了廣泛應用,因此加大對其的研究具有重要的現實(shí)意義。
本文引用地址:http://dyxdggzs.com/article/201610/307410.htm1 基于SST89C58單片機的仿真器設計
設計的主要部分是SST89C58單片機,從其構成來(lái)看,內部集成了72 kB大小的SuperFlashEEPROM程序存儲器,涵蓋了64 kB大小的Block0及8 kB大小的Block1的Flash—ROM。該單片機對于傳統使用的SoftICE監控也做出了一定的優(yōu)化處理,其中監控程序共占據了存儲塊Block0大小為1 kB的FC00H~FFFFH,同時(shí)還有Block1中大小為4 kB的0000H~0FF FH。
研究人員在進(jìn)行仿真器調試過(guò)程中,借助IAP的幫助下再應用編程,將用戶(hù)的目標程序從電腦機下載至仿真芯片所剩下的Block0空間之中,大小為63 kB,然后利用SoftICE的作用實(shí)施仿真調試。但需注意的是,在整個(gè)調試過(guò)程中,SoftICE和電腦內部的調試器程序之間始終未中斷正常的通信聯(lián)系。
文中從仿真器仿真的原理進(jìn)行分析,其本質(zhì)就是在程序調試時(shí)根據需要動(dòng)態(tài)的對程序存儲區作相應的修改,也唯有如此才能達到斷點(diǎn)運行或單步運行的良好效果。在仿真芯片中研究人員預先燒入了相應的監控程序,其主要功能在于與計算機之間實(shí)施良好的通訊。等到調試者利用KeilμVision2集成環(huán)境來(lái)實(shí)施仿真的過(guò)程中,后者便會(huì )將SST89C58單片機程序目標代碼利用串口傳輸到仿真器中,然后通過(guò)仿真器中監控程序的作用來(lái)將代碼燒寫(xiě)至監控芯片的程序存儲器。當SST89C58單片機程序在調試時(shí),監控程序也會(huì )在集成開(kāi)發(fā)環(huán)境指令的作用下,對于被調試的程序進(jìn)行適當的改寫(xiě),以便實(shí)現設置斷點(diǎn)及單步運行。在這一過(guò)程中,一旦程序遇到斷點(diǎn)而只能中斷執行后,則此時(shí)監控程序便可獲得CPU的控制權,其不僅需承擔起查看單片機寄存器、RAM以及單片機內部的相關(guān)變量的工作任務(wù),同時(shí)還需觀(guān)察狀態(tài)在串行口的幫助下輸送至集成開(kāi)發(fā)環(huán)境的過(guò)程,判斷其是否可滿(mǎn)足用戶(hù)觀(guān)察的各種需求。
2 電路構成分析
2.1 SSTB9C58單片機
圖中的U1表示的是SST89C58單片機,從其指令來(lái)看與8051單片機完全相同,均使用的是雙列直插封裝方式,且其能與標準的8051管腳之間實(shí)現有效兼容。在整個(gè)電路中,對31引腳采取了接高電平的處理,目的在于確保其僅能訪(fǎng)問(wèn)內部64 kB大小的程序存儲器;在這一構成條件下,利用對內部特殊功能寄存器的有效操作,可達到IAP在應用可編程的效果;系統本身帶有SPI串行接口以及全雙工增強型UART;若處于常規情況下,運行過(guò)程中外部晶振能達到40 MHz。
SST89C58單片機的16引腳可當做普通I/O口來(lái)進(jìn)行使用,研究人員利用按鍵S2接地,與此同時(shí)S2和復位按鍵S1兩者在互相作用下,不僅能實(shí)現仿真器的脫機運行,還可達到仿真運行功能的切換效果。
2.2 晶振與復位電路
如圖1所示,晶振電路中主要包括晶振Y1、電容C5與C6、跳線(xiàn)器J1與J2等幾個(gè)部分。在運行過(guò)程中,仿真器利用J1、J2的作用來(lái)決定是否需要應用外部電路晶振,否則便需要應用仿真器內部電路晶振。但需注意的是,等到跳線(xiàn)器J1及J2“2、3”端受到各種因素的影響發(fā)生短接時(shí),則需采用用戶(hù)板晶振;而一旦J1及J2“1、2”端發(fā)生短接,此時(shí)就需要應用仿真器內部電路晶振。

復位電路的主要功能在于仿真器的上電復位以及強制復位。從構成上講,復位電路中涵蓋了大小為0.1μF的電容C7、按鍵S1以及10 kΩ的R1。一旦系統上電,就會(huì )自動(dòng)選擇電容C7充電,單片機的復位引腳RST就能獲得一個(gè)高電平脈沖,而等到C7充電結束后,復位引腳轉變成低電平,就可完成上電復位作用;在SST89C58工作時(shí),若根據實(shí)際情況必須對系統采取強制復位,工作人員可選擇S1,復位腳電平便會(huì )從原先的低電平轉變成高電平,而電容C7則會(huì )被瞬間放電,等到S1鍵被松開(kāi)后,VCC就會(huì )開(kāi)始對電容C7進(jìn)行充電,以確保復位腳的高電平可持續一定的時(shí)間,因此最終完成強制復位功能。
2.3 電平轉換電路
研究選擇RS-232標準作為仿真器和計算機之間的串行通信。其中SST89C58單片機的邏輯電平常與TTL電平之間是兼容的,不過(guò)在RS-232標準中要求的邏輯電平和TTL電平之間,無(wú)論在極性還是幅度上均存在著(zhù)一定的差異性,故需要采取電平轉換。
文中選擇的集成芯片是MAX232D,即圖中的U2,其電平轉換電路主要包括內部的電源電壓變換器及外部電容等,主要目的在于實(shí)現電腦的232電平及SST89C58單片機的TTL電平之間的順利轉換。為達到這一目的,應當將輸入的+5 V大小電源電壓轉變到±9 V。SST89C58單片機的串行通信傳輸信號是TXD,具體運行時(shí)需由U2的10引腳T2IN中開(kāi)始進(jìn)行輸入,然后當其已經(jīng)轉變?yōu)?32電平后,便可通過(guò)7引腳T2OUT來(lái)進(jìn)行輸出,在此基礎上就可實(shí)現與電腦串行口接收端之間的連接;電腦的串口發(fā)送信號則需通過(guò)U2的8引腳R2IN才可進(jìn)行輸入,等到已轉變?yōu)門(mén)TL電平后就可通過(guò)9引腳R2OUT來(lái)進(jìn)行輸出,然后與SST89C58單片機的接收引腳RXD之間實(shí)現互相連接。其具體情況如圖2所示。

2.4 邏輯電平測試電路
設計時(shí)還可在仿真器上增加相應的集成邏輯筆功能,目的在于對電路中電平狀態(tài)實(shí)現動(dòng)態(tài)的測量,給SST89C58單片機實(shí)驗實(shí)訓及技術(shù)開(kāi)發(fā)過(guò)程中工作人員及時(shí)的進(jìn)行電路調試和硬件故障排除等創(chuàng )造了良好條件。邏輯電平測試電路除了有SN74HC00D(U3)之外,還包括發(fā)光二極管指示燈L1與L5,以及電阻R5~R9等幾個(gè)部分。運行過(guò)程中只需通過(guò)測試線(xiàn)將測試端J4(V-IN)和相應的被測點(diǎn)之間進(jìn)行有效連接。若發(fā)現被測電平處于高電平狀態(tài),則U3A和非門(mén)便會(huì )開(kāi)始輸出低電平,此時(shí)紅燈L1亮起,而若U3C和非門(mén)開(kāi)始輸出高電平,則此時(shí)綠燈L2不亮,所代表的含義就是此時(shí)處于高電平狀態(tài);若輸入端已與低電平之間實(shí)現有效連接時(shí),則此時(shí)綠燈L2亮,而紅燈L1則處于不亮狀態(tài);等到測試輸入端空載,則無(wú)論是紅燈或是綠燈均處于不亮狀態(tài);若系統中連接的測試信號為脈沖,則會(huì )發(fā)生一種紅燈和綠燈一起閃爍的現象,工作人員只需利用對閃爍的速率及明暗程度進(jìn)行觀(guān)察,就可較為準確地估測出被測信號的頻率大小及占空比情況。
3 結束語(yǔ)
SST89C58單片機與KeilμVision2集成開(kāi)發(fā)軟件間的有機結合,提供了一種功能過(guò)硬的單片機仿真器,其可實(shí)現仿真器的脫機運行以及仿真運行功能的切換,從而完成對電路中電平狀態(tài)的動(dòng)態(tài)測量,且具有較高的應用價(jià)值。
評論