單片機(jī)的單CPU仿真器的設(shè)計(jì)
發(fā)布時(shí)間:2008/6/3 0:00:00 訪問次數(shù):594
    
     摘要:本文基于對(duì)8051單片機(jī)存儲(chǔ)空間結(jié)構(gòu)的深層次分析,提出了一種基于單片機(jī)的單cpu仿真器設(shè)計(jì)方案。該方案實(shí)用廉價(jià),工程實(shí)踐性強(qiáng),可用于設(shè)計(jì)新的教學(xué)設(shè)備。
    引言
    單片機(jī)以它的廉價(jià)、體積小、可塑性強(qiáng)、穩(wěn)定性高的特性,有著廣闊的市場(chǎng)前景。 在用單片機(jī)開發(fā)產(chǎn)品時(shí),雖然許多廠家設(shè)計(jì)了可編程isp單片機(jī),但是從安全與便捷方面考慮,單片機(jī)仿真器仍然是開發(fā)人員不可或缺的工具。單片機(jī)仿真器在產(chǎn)品開發(fā)階段可用來替代單片機(jī)進(jìn)行軟硬件調(diào)試,從而迅速發(fā)現(xiàn)、糾正程序中的錯(cuò)誤,大大縮短單片機(jī)開發(fā)的周期。但實(shí)際中仿真器過于昂貴,因此,設(shè)計(jì)制作出一款廉價(jià)且實(shí)用的仿真器有著廣泛的市場(chǎng)。
    傳統(tǒng)的單片機(jī)仿真器硬件系統(tǒng)一般有三種實(shí)現(xiàn)方法。一、采用專用仿真的單片機(jī)。二、采用兩套單片機(jī),一個(gè)單片機(jī)用于仿真,并完成諸如通訊,中斷等功能;另一個(gè)單片機(jī)則用于目標(biāo)單片機(jī),這樣其資源不會(huì)被占用。三、用目標(biāo)單片機(jī)作為仿真器,單片機(jī)即仿真器也作目標(biāo)機(jī)的單片機(jī)用,其實(shí)質(zhì)是一種rom監(jiān)控器。第三種方法會(huì)占用單片機(jī)的部分資源,但結(jié)構(gòu)簡(jiǎn)單,對(duì)于特定的開發(fā)者來說,實(shí)用性強(qiáng),性價(jià)比高,且易于自行制作。本文開發(fā)設(shè)計(jì)的仿真器正是基于第三種原理,巧妙實(shí)現(xiàn)了數(shù)據(jù)空間與程序空間的互換,設(shè)計(jì)出一款實(shí)用廉價(jià)的仿真器,工程實(shí)踐性強(qiáng)。
    原理及系統(tǒng)結(jié)構(gòu)
    仿真器工作時(shí),要把程序從pc機(jī)下載到仿真器的存儲(chǔ)器中。在此先詳細(xì)分析51單片的存儲(chǔ)器結(jié)構(gòu)和尋址方法,再分析片外存儲(chǔ)器的擴(kuò)展,最后給出設(shè)計(jì)原理并分析系統(tǒng)結(jié)構(gòu)。
    
    圖1 存儲(chǔ)空間分布
    51單片機(jī)存儲(chǔ)器結(jié)構(gòu)分析
    8051單片機(jī)的存儲(chǔ)器在物理結(jié)構(gòu)上分為程序存儲(chǔ)器空間和數(shù)據(jù)存儲(chǔ)器空間,共有4個(gè)存儲(chǔ)空間:片內(nèi)程序存儲(chǔ)器、片外程序存儲(chǔ)器以及片內(nèi)數(shù)據(jù)存儲(chǔ)器、片外數(shù)據(jù)存儲(chǔ)器空間。這種程序存儲(chǔ)和數(shù)據(jù)存儲(chǔ)分開的結(jié)構(gòu)形式被稱為哈佛結(jié)構(gòu)。但從用戶的角度,8051存儲(chǔ)器地址空間可分為3類:片內(nèi)、片外統(tǒng)一編址0000h~ffffh的64kb程序存儲(chǔ)器地址空間(用16位地址);64kb片外數(shù)據(jù)存儲(chǔ)器地址空間,地址也從0000h~ffffh(用16位地址)編址;256b片內(nèi)數(shù)據(jù)存儲(chǔ)器地址空間(用8位地址)。
    上述4個(gè)存儲(chǔ)空間地址是重疊的,如圖1所示。8051的指令系統(tǒng)設(shè)計(jì)了不同的數(shù)據(jù)傳送指令以區(qū)別這4個(gè)不同的邏輯空間:cpu訪問片內(nèi)、片外rom指令用movc,訪問片外ram指令用movx,訪問片內(nèi)ram指令用mov。
    程序存儲(chǔ)器用于存放編好的程序和表格常數(shù)。程序通過16位程序計(jì)數(shù)器尋址,尋址能力為64kb。這使得指令能在64kb的地址空間內(nèi)任意跳轉(zhuǎn),但不能使程序從程序存儲(chǔ)器空間轉(zhuǎn)移到數(shù)據(jù)存儲(chǔ)器空間。
    實(shí)際上,當(dāng)引腳ea接高電平時(shí),8051的程序計(jì)數(shù)器pc執(zhí)行片內(nèi)rom中的程序,當(dāng)指令地址超過片內(nèi)rom地址時(shí),就自動(dòng)轉(zhuǎn)向片外rom中去取指令。當(dāng)引腳ea接低電平(接地)時(shí),8051片內(nèi)rom不起作用,cpu只能從片外rom中取指令,地址可以從0000h開始編址。8051從片內(nèi)程序存儲(chǔ)器和片外程序存儲(chǔ)器取指時(shí)的執(zhí)行速度相同。
    存儲(chǔ)器外擴(kuò)
    用p0口作地址/數(shù)據(jù)復(fù)用總線,用p2口的口線作高位地址線,最多可以擴(kuò)展64kb的存儲(chǔ)器?刂菩盘(hào)線包括:使用ale作為地址鎖存的選通信號(hào),以實(shí)現(xiàn)低8位地址的鎖存;以psen信號(hào)作為擴(kuò)展程序存儲(chǔ)器的讀選通信號(hào);以ea信號(hào)作為內(nèi)、外程序存儲(chǔ)器的選擇信號(hào);以ea和作為擴(kuò)展數(shù)據(jù)存儲(chǔ)器和i/o端口的讀、寫選通信號(hào)。執(zhí)行movx指令時(shí),rd和wr信號(hào)分別自動(dòng)有效。片外數(shù)據(jù)存儲(chǔ)器ram的讀和寫由8051的rd(p3.7)和wr(p3.6)信號(hào)控制,而片外程序存儲(chǔ)器的輸出允許(oe)由讀選通psen信號(hào)控制。盡管片外數(shù)據(jù)存儲(chǔ)器和片外程序存儲(chǔ)器共處同一地址空間,但由于控制信號(hào)及使用的數(shù)據(jù)傳送指令不同,故不會(huì)發(fā)生總線沖突。
    
    圖2 仿真器原理圖
    仿真器原理與結(jié)構(gòu)
    由于現(xiàn)在以8051為內(nèi)核的單片機(jī)幾乎都帶有內(nèi)部的flash程序存儲(chǔ)器。如本設(shè)計(jì)中要用到的at89c51或at89s51均自帶4kb的flash程序存儲(chǔ)器,有的單片機(jī)帶有20kb甚至更大容量的程序存儲(chǔ)器。因此在單片機(jī)開發(fā)中,很少用專門的程序存儲(chǔ)器芯片來擴(kuò)展外部程序存儲(chǔ)器,通常也沒有必要;谝陨线@些因素,下面分析本文中的仿真器實(shí)現(xiàn)的原理。
    下載程序時(shí),ea
    
     摘要:本文基于對(duì)8051單片機(jī)存儲(chǔ)空間結(jié)構(gòu)的深層次分析,提出了一種基于單片機(jī)的單cpu仿真器設(shè)計(jì)方案。該方案實(shí)用廉價(jià),工程實(shí)踐性強(qiáng),可用于設(shè)計(jì)新的教學(xué)設(shè)備。
    引言
    單片機(jī)以它的廉價(jià)、體積小、可塑性強(qiáng)、穩(wěn)定性高的特性,有著廣闊的市場(chǎng)前景。 在用單片機(jī)開發(fā)產(chǎn)品時(shí),雖然許多廠家設(shè)計(jì)了可編程isp單片機(jī),但是從安全與便捷方面考慮,單片機(jī)仿真器仍然是開發(fā)人員不可或缺的工具。單片機(jī)仿真器在產(chǎn)品開發(fā)階段可用來替代單片機(jī)進(jìn)行軟硬件調(diào)試,從而迅速發(fā)現(xiàn)、糾正程序中的錯(cuò)誤,大大縮短單片機(jī)開發(fā)的周期。但實(shí)際中仿真器過于昂貴,因此,設(shè)計(jì)制作出一款廉價(jià)且實(shí)用的仿真器有著廣泛的市場(chǎng)。
    傳統(tǒng)的單片機(jī)仿真器硬件系統(tǒng)一般有三種實(shí)現(xiàn)方法。一、采用專用仿真的單片機(jī)。二、采用兩套單片機(jī),一個(gè)單片機(jī)用于仿真,并完成諸如通訊,中斷等功能;另一個(gè)單片機(jī)則用于目標(biāo)單片機(jī),這樣其資源不會(huì)被占用。三、用目標(biāo)單片機(jī)作為仿真器,單片機(jī)即仿真器也作目標(biāo)機(jī)的單片機(jī)用,其實(shí)質(zhì)是一種rom監(jiān)控器。第三種方法會(huì)占用單片機(jī)的部分資源,但結(jié)構(gòu)簡(jiǎn)單,對(duì)于特定的開發(fā)者來說,實(shí)用性強(qiáng),性價(jià)比高,且易于自行制作。本文開發(fā)設(shè)計(jì)的仿真器正是基于第三種原理,巧妙實(shí)現(xiàn)了數(shù)據(jù)空間與程序空間的互換,設(shè)計(jì)出一款實(shí)用廉價(jià)的仿真器,工程實(shí)踐性強(qiáng)。
    原理及系統(tǒng)結(jié)構(gòu)
    仿真器工作時(shí),要把程序從pc機(jī)下載到仿真器的存儲(chǔ)器中。在此先詳細(xì)分析51單片的存儲(chǔ)器結(jié)構(gòu)和尋址方法,再分析片外存儲(chǔ)器的擴(kuò)展,最后給出設(shè)計(jì)原理并分析系統(tǒng)結(jié)構(gòu)。
    
    圖1 存儲(chǔ)空間分布
    51單片機(jī)存儲(chǔ)器結(jié)構(gòu)分析
    8051單片機(jī)的存儲(chǔ)器在物理結(jié)構(gòu)上分為程序存儲(chǔ)器空間和數(shù)據(jù)存儲(chǔ)器空間,共有4個(gè)存儲(chǔ)空間:片內(nèi)程序存儲(chǔ)器、片外程序存儲(chǔ)器以及片內(nèi)數(shù)據(jù)存儲(chǔ)器、片外數(shù)據(jù)存儲(chǔ)器空間。這種程序存儲(chǔ)和數(shù)據(jù)存儲(chǔ)分開的結(jié)構(gòu)形式被稱為哈佛結(jié)構(gòu)。但從用戶的角度,8051存儲(chǔ)器地址空間可分為3類:片內(nèi)、片外統(tǒng)一編址0000h~ffffh的64kb程序存儲(chǔ)器地址空間(用16位地址);64kb片外數(shù)據(jù)存儲(chǔ)器地址空間,地址也從0000h~ffffh(用16位地址)編址;256b片內(nèi)數(shù)據(jù)存儲(chǔ)器地址空間(用8位地址)。
    上述4個(gè)存儲(chǔ)空間地址是重疊的,如圖1所示。8051的指令系統(tǒng)設(shè)計(jì)了不同的數(shù)據(jù)傳送指令以區(qū)別這4個(gè)不同的邏輯空間:cpu訪問片內(nèi)、片外rom指令用movc,訪問片外ram指令用movx,訪問片內(nèi)ram指令用mov。
    程序存儲(chǔ)器用于存放編好的程序和表格常數(shù)。程序通過16位程序計(jì)數(shù)器尋址,尋址能力為64kb。這使得指令能在64kb的地址空間內(nèi)任意跳轉(zhuǎn),但不能使程序從程序存儲(chǔ)器空間轉(zhuǎn)移到數(shù)據(jù)存儲(chǔ)器空間。
    實(shí)際上,當(dāng)引腳ea接高電平時(shí),8051的程序計(jì)數(shù)器pc執(zhí)行片內(nèi)rom中的程序,當(dāng)指令地址超過片內(nèi)rom地址時(shí),就自動(dòng)轉(zhuǎn)向片外rom中去取指令。當(dāng)引腳ea接低電平(接地)時(shí),8051片內(nèi)rom不起作用,cpu只能從片外rom中取指令,地址可以從0000h開始編址。8051從片內(nèi)程序存儲(chǔ)器和片外程序存儲(chǔ)器取指時(shí)的執(zhí)行速度相同。
    存儲(chǔ)器外擴(kuò)
    用p0口作地址/數(shù)據(jù)復(fù)用總線,用p2口的口線作高位地址線,最多可以擴(kuò)展64kb的存儲(chǔ)器?刂菩盘(hào)線包括:使用ale作為地址鎖存的選通信號(hào),以實(shí)現(xiàn)低8位地址的鎖存;以psen信號(hào)作為擴(kuò)展程序存儲(chǔ)器的讀選通信號(hào);以ea信號(hào)作為內(nèi)、外程序存儲(chǔ)器的選擇信號(hào);以ea和作為擴(kuò)展數(shù)據(jù)存儲(chǔ)器和i/o端口的讀、寫選通信號(hào)。執(zhí)行movx指令時(shí),rd和wr信號(hào)分別自動(dòng)有效。片外數(shù)據(jù)存儲(chǔ)器ram的讀和寫由8051的rd(p3.7)和wr(p3.6)信號(hào)控制,而片外程序存儲(chǔ)器的輸出允許(oe)由讀選通psen信號(hào)控制。盡管片外數(shù)據(jù)存儲(chǔ)器和片外程序存儲(chǔ)器共處同一地址空間,但由于控制信號(hào)及使用的數(shù)據(jù)傳送指令不同,故不會(huì)發(fā)生總線沖突。
    
    圖2 仿真器原理圖
    仿真器原理與結(jié)構(gòu)
    由于現(xiàn)在以8051為內(nèi)核的單片機(jī)幾乎都帶有內(nèi)部的flash程序存儲(chǔ)器。如本設(shè)計(jì)中要用到的at89c51或at89s51均自帶4kb的flash程序存儲(chǔ)器,有的單片機(jī)帶有20kb甚至更大容量的程序存儲(chǔ)器。因此在單片機(jī)開發(fā)中,很少用專門的程序存儲(chǔ)器芯片來擴(kuò)展外部程序存儲(chǔ)器,通常也沒有必要。基于以上這些因素,下面分析本文中的仿真器實(shí)現(xiàn)的原理。
    下載程序時(shí),ea
熱門點(diǎn)擊
- 基于MC9S08GB32的便攜式無水阻槳頻船
- 關(guān)于DS18B20測(cè)量溫度的幾個(gè)問題
- 單片機(jī)顯控系統(tǒng)中的漢字輸入
- RFMD®擴(kuò)展了業(yè)界領(lǐng)先的EDGE產(chǎn)
- AD8302在幅相檢測(cè)系統(tǒng)中的應(yīng)用
- ATSC制數(shù)字電視機(jī)頂盒研究
- 采用高速高分辨率信號(hào)采集卡構(gòu)成超聲探傷系統(tǒng)
- 基于數(shù)字移相的高精度脈寬測(cè)量系統(tǒng)
- 理想的非編與非編的理想(上)
- 基礎(chǔ)儀器的示波器:領(lǐng)舞電子測(cè)試市場(chǎng)(下)
推薦技術(shù)資料
- CV/CC InnoSwitch3-AQ 開
- URF1DxxM-60WR3系
- 1-6W URA24xxN-x
- 閉環(huán)磁通門信號(hào)調(diào)節(jié)芯片NSDRV401
- SK-RiSC-SOM-H27X-V1.1應(yīng)
- RISC技術(shù)8位微控制器參數(shù)設(shè)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究