基于SST89C58單片機(jī)的仿真器設(shè)計(jì)與電路構(gòu)成
單片機(jī)仿真器可實(shí)現(xiàn)對(duì)單片機(jī)程序的單步跟蹤調(diào)試,具備斷點(diǎn)或全速等多種調(diào)式方式,同時(shí)能夠記錄各種變量以及RAM和寄存器的動(dòng)態(tài)數(shù)據(jù),對(duì)于程序的執(zhí)行步驟與效果進(jìn)行實(shí)時(shí)觀察。此外,其還可實(shí)現(xiàn)對(duì)硬件電路的動(dòng)態(tài)調(diào)試。當(dāng)前單片機(jī)仿真器已在工業(yè)中得到了廣泛應(yīng)用,因此加大對(duì)其的研究具有重要的現(xiàn)實(shí)意義。
本文引用地址:http://www.ex-cimer.com/article/201610/307410.htm1 基于SST89C58單片機(jī)的仿真器設(shè)計(jì)
設(shè)計(jì)的主要部分是SST89C58單片機(jī),從其構(gòu)成來看,內(nèi)部集成了72 kB大小的SuperFlashEEPROM程序存儲(chǔ)器,涵蓋了64 kB大小的Block0及8 kB大小的Block1的Flash—ROM。該單片機(jī)對(duì)于傳統(tǒng)使用的SoftICE監(jiān)控也做出了一定的優(yōu)化處理,其中監(jiān)控程序共占據(jù)了存儲(chǔ)塊Block0大小為1 kB的FC00H~FFFFH,同時(shí)還有Block1中大小為4 kB的0000H~0FF FH。
研究人員在進(jìn)行仿真器調(diào)試過程中,借助IAP的幫助下再應(yīng)用編程,將用戶的目標(biāo)程序從電腦機(jī)下載至仿真芯片所剩下的Block0空間之中,大小為63 kB,然后利用SoftICE的作用實(shí)施仿真調(diào)試。但需注意的是,在整個(gè)調(diào)試過程中,SoftICE和電腦內(nèi)部的調(diào)試器程序之間始終未中斷正常的通信聯(lián)系。
文中從仿真器仿真的原理進(jìn)行分析,其本質(zhì)就是在程序調(diào)試時(shí)根據(jù)需要?jiǎng)討B(tài)的對(duì)程序存儲(chǔ)區(qū)作相應(yīng)的修改,也唯有如此才能達(dá)到斷點(diǎn)運(yùn)行或單步運(yùn)行的良好效果。在仿真芯片中研究人員預(yù)先燒入了相應(yīng)的監(jiān)控程序,其主要功能在于與計(jì)算機(jī)之間實(shí)施良好的通訊。等到調(diào)試者利用KeilμVision2集成環(huán)境來實(shí)施仿真的過程中,后者便會(huì)將SST89C58單片機(jī)程序目標(biāo)代碼利用串口傳輸?shù)椒抡嫫髦?,然后通過仿真器中監(jiān)控程序的作用來將代碼燒寫至監(jiān)控芯片的程序存儲(chǔ)器。當(dāng)SST89C58單片機(jī)程序在調(diào)試時(shí),監(jiān)控程序也會(huì)在集成開發(fā)環(huán)境指令的作用下,對(duì)于被調(diào)試的程序進(jìn)行適當(dāng)?shù)母膶?,以便?shí)現(xiàn)設(shè)置斷點(diǎn)及單步運(yùn)行。在這一過程中,一旦程序遇到斷點(diǎn)而只能中斷執(zhí)行后,則此時(shí)監(jiān)控程序便可獲得CPU的控制權(quán),其不僅需承擔(dān)起查看單片機(jī)寄存器、RAM以及單片機(jī)內(nèi)部的相關(guān)變量的工作任務(wù),同時(shí)還需觀察狀態(tài)在串行口的幫助下輸送至集成開發(fā)環(huán)境的過程,判斷其是否可滿足用戶觀察的各種需求。
2 電路構(gòu)成分析
2.1 SSTB9C58單片機(jī)
圖中的U1表示的是SST89C58單片機(jī),從其指令來看與8051單片機(jī)完全相同,均使用的是雙列直插封裝方式,且其能與標(biāo)準(zhǔn)的8051管腳之間實(shí)現(xiàn)有效兼容。在整個(gè)電路中,對(duì)31引腳采取了接高電平的處理,目的在于確保其僅能訪問內(nèi)部64 kB大小的程序存儲(chǔ)器;在這一構(gòu)成條件下,利用對(duì)內(nèi)部特殊功能寄存器的有效操作,可達(dá)到IAP在應(yīng)用可編程的效果;系統(tǒng)本身帶有SPI串行接口以及全雙工增強(qiáng)型UART;若處于常規(guī)情況下,運(yùn)行過程中外部晶振能達(dá)到40 MHz。
SST89C58單片機(jī)的16引腳可當(dāng)做普通I/O口來進(jìn)行使用,研究人員利用按鍵S2接地,與此同時(shí)S2和復(fù)位按鍵S1兩者在互相作用下,不僅能實(shí)現(xiàn)仿真器的脫機(jī)運(yùn)行,還可達(dá)到仿真運(yùn)行功能的切換效果。
2.2 晶振與復(fù)位電路
如圖1所示,晶振電路中主要包括晶振Y1、電容C5與C6、跳線器J1與J2等幾個(gè)部分。在運(yùn)行過程中,仿真器利用J1、J2的作用來決定是否需要應(yīng)用外部電路晶振,否則便需要應(yīng)用仿真器內(nèi)部電路晶振。但需注意的是,等到跳線器J1及J2“2、3”端受到各種因素的影響發(fā)生短接時(shí),則需采用用戶板晶振;而一旦J1及J2“1、2”端發(fā)生短接,此時(shí)就需要應(yīng)用仿真器內(nèi)部電路晶振。
復(fù)位電路的主要功能在于仿真器的上電復(fù)位以及強(qiáng)制復(fù)位。從構(gòu)成上講,復(fù)位電路中涵蓋了大小為0.1μF的電容C7、按鍵S1以及10 kΩ的R1。一旦系統(tǒng)上電,就會(huì)自動(dòng)選擇電容C7充電,單片機(jī)的復(fù)位引腳RST就能獲得一個(gè)高電平脈沖,而等到C7充電結(jié)束后,復(fù)位引腳轉(zhuǎn)變成低電平,就可完成上電復(fù)位作用;在SST89C58工作時(shí),若根據(jù)實(shí)際情況必須對(duì)系統(tǒng)采取強(qiáng)制復(fù)位,工作人員可選擇S1,復(fù)位腳電平便會(huì)從原先的低電平轉(zhuǎn)變成高電平,而電容C7則會(huì)被瞬間放電,等到S1鍵被松開后,VCC就會(huì)開始對(duì)電容C7進(jìn)行充電,以確保復(fù)位腳的高電平可持續(xù)一定的時(shí)間,因此最終完成強(qiáng)制復(fù)位功能。
2.3 電平轉(zhuǎn)換電路
研究選擇RS-232標(biāo)準(zhǔn)作為仿真器和計(jì)算機(jī)之間的串行通信。其中SST89C58單片機(jī)的邏輯電平常與TTL電平之間是兼容的,不過在RS-232標(biāo)準(zhǔn)中要求的邏輯電平和TTL電平之間,無論在極性還是幅度上均存在著一定的差異性,故需要采取電平轉(zhuǎn)換。
文中選擇的集成芯片是MAX232D,即圖中的U2,其電平轉(zhuǎn)換電路主要包括內(nèi)部的電源電壓變換器及外部電容等,主要目的在于實(shí)現(xiàn)電腦的232電平及SST89C58單片機(jī)的TTL電平之間的順利轉(zhuǎn)換。為達(dá)到這一目的,應(yīng)當(dāng)將輸入的+5 V大小電源電壓轉(zhuǎn)變到±9 V。SST89C58單片機(jī)的串行通信傳輸信號(hào)是TXD,具體運(yùn)行時(shí)需由U2的10引腳T2IN中開始進(jìn)行輸入,然后當(dāng)其已經(jīng)轉(zhuǎn)變?yōu)?32電平后,便可通過7引腳T2OUT來進(jìn)行輸出,在此基礎(chǔ)上就可實(shí)現(xiàn)與電腦串行口接收端之間的連接;電腦的串口發(fā)送信號(hào)則需通過U2的8引腳R2IN才可進(jìn)行輸入,等到已轉(zhuǎn)變?yōu)門TL電平后就可通過9引腳R2OUT來進(jìn)行輸出,然后與SST89C58單片機(jī)的接收引腳RXD之間實(shí)現(xiàn)互相連接。其具體情況如圖2所示。
2.4 邏輯電平測(cè)試電路
設(shè)計(jì)時(shí)還可在仿真器上增加相應(yīng)的集成邏輯筆功能,目的在于對(duì)電路中電平狀態(tài)實(shí)現(xiàn)動(dòng)態(tài)的測(cè)量,給SST89C58單片機(jī)實(shí)驗(yàn)實(shí)訓(xùn)及技術(shù)開發(fā)過程中工作人員及時(shí)的進(jìn)行電路調(diào)試和硬件故障排除等創(chuàng)造了良好條件。邏輯電平測(cè)試電路除了有SN74HC00D(U3)之外,還包括發(fā)光二極管指示燈L1與L5,以及電阻R5~R9等幾個(gè)部分。運(yùn)行過程中只需通過測(cè)試線將測(cè)試端J4(V-IN)和相應(yīng)的被測(cè)點(diǎn)之間進(jìn)行有效連接。若發(fā)現(xiàn)被測(cè)電平處于高電平狀態(tài),則U3A和非門便會(huì)開始輸出低電平,此時(shí)紅燈L1亮起,而若U3C和非門開始輸出高電平,則此時(shí)綠燈L2不亮,所代表的含義就是此時(shí)處于高電平狀態(tài);若輸入端已與低電平之間實(shí)現(xiàn)有效連接時(shí),則此時(shí)綠燈L2亮,而紅燈L1則處于不亮狀態(tài);等到測(cè)試輸入端空載,則無論是紅燈或是綠燈均處于不亮狀態(tài);若系統(tǒng)中連接的測(cè)試信號(hào)為脈沖,則會(huì)發(fā)生一種紅燈和綠燈一起閃爍的現(xiàn)象,工作人員只需利用對(duì)閃爍的速率及明暗程度進(jìn)行觀察,就可較為準(zhǔn)確地估測(cè)出被測(cè)信號(hào)的頻率大小及占空比情況。
3 結(jié)束語
SST89C58單片機(jī)與KeilμVision2集成開發(fā)軟件間的有機(jī)結(jié)合,提供了一種功能過硬的單片機(jī)仿真器,其可實(shí)現(xiàn)仿真器的脫機(jī)運(yùn)行以及仿真運(yùn)行功能的切換,從而完成對(duì)電路中電平狀態(tài)的動(dòng)態(tài)測(cè)量,且具有較高的應(yīng)用價(jià)值。
評(píng)論