單片機外文翻譯-基于MCS-51單片機結構中16MB尋址空間的設計【中文4345字】【PDF+中文WOrd
單片機外文翻譯-基于MCS-51單片機結構中16MB尋址空間的設計【中文4345字】【PDF+中文WOrd,中文4345字,單片機,外文,翻譯,基于,MCS,51,結構,16,MB,尋址,空間,設計,中文,4345,PDF,WOrd
【中文4345字】
基于MCS-51單片機結構中16MB尋址空間的設計
景偉良,胡越利,曹家林(音譯)
上海大學微電子研究與開發(fā)中心
中國上海市延長路149號,郵編200072
郵編:huyueli@shumchip.com ,電話:086- 021- 56331271
翻譯:武俊宏 191001班,103568號
摘要:
本文所介紹的是一種基于MCS-51結構的MCU(微處理器,即單片機)進行16M字節(jié)尋址空間的設計。外部數(shù)據和程序存儲容量從64KB擴大到到16MB而時分復用地址總線卻沒有增量這樣的改變使得整個指令集趨于更好。因此,一個有著大量數(shù)據和復雜算法的程序可以在這個單片機上處理和運行。在前邊的設計成功模擬之后, 在Nios(軟核處理器)開發(fā)板實地實驗驗證了該設計是正確的。此外,此設計的增益在實際應用中效果良好,并允許單片機來控制一個擁有超過64KB的程序和巨大的數(shù)據的圖像處理系統(tǒng)。
關鍵字:MCS51單片機,單片機,程序地址,尋址空間
1. 簡介
一個SCMP(單芯片多處理器)架構在我們的“皮膚診斷“機器視覺芯片得到應用。它的每一個子處理器都有自己的責任,包括機器視覺的常用算法,數(shù)據庫和知識庫管理等,無需用戶參與,而主處理器直接面向用戶。其指令集與MCS-51系列完全兼容,可同樣執(zhí)行MCS-51的指令為用戶處理某些圖像處理算法。由于系統(tǒng)應用工程師不再需要學習專業(yè)的圖像處理知識,而有關機器視覺的培訓和編程就可以實現(xiàn)某些相關功能,因此機器視覺技術可以很容易的使用在各種單片機領域。
為了實現(xiàn)上述目標,一個單片機必須能夠控制和處理復雜的計算。它機器視覺芯片的核心和基本組成部分。眾所周知,,MCS-51的使用歷史悠久,為滿足各種各樣的應用領域并且數(shù)量眾多的第三方軟件和仿真工具,因此,一個MCS-51結構的單片機被設計了出來。但MCS-51的程序空間和數(shù)據容量分別只有64 Kb[1]。這樣的尺寸不能滿足圖像處理所需求的巨大數(shù)據量和復雜算法。如果51單片機的尋址空間可擴大而并不改變指令集和端口或引腳的定義, 那么MCS-51結構的單片機性能會在很大程度上得到改善和增強。本文提出了一種時分復用方法設計并實現(xiàn)16MB的數(shù)據空間和16MB程序地址空間。
2.16MB尋址空間的設計
2.1方案
2.1.1數(shù)據存儲器
一個8位的SFR(特殊功能寄存器)“DPTR_PAGE”數(shù)據指針到被添加的一個16MB的外部數(shù)據存儲器的頁面地址,以便單片機訪問這個16MB的空間。每一頁的大小是64KB而16MB的數(shù)據存儲器被分為256(28)頁。作為一個標準的MCS-51單片機的尋址方法在每一頁都是一樣的。頁面地址發(fā)出的Port2為最高的8位,通過Port0和Port2發(fā)送的中8位地址和低8位地址,就是作為一個標準的8051發(fā)送的16位地址。
圖 1 外部數(shù)據存儲器與單片機連接
單片機的連接方法及其外部數(shù)據存儲器如圖1所示。地址鎖存1鎖存低8位地址,地址鎖存2鎖存高8位地址。在高8位地址被鎖存后,中8位地址會發(fā)送出去。
2.1.2程序存儲器
開始前構思的關于使得單片機能夠訪問16MB程序存儲器的兩個設計想法:
其一是改變指令集。例如,原LCALL/LJMP addr16指令有16位操作數(shù),我們可以改變它們?yōu)橛?4位操作數(shù)LCALL/LJMP addr24指令,而且在16MB的尋址空間中允許一個PA(程序地址)跳到另一個程序模塊或者調用另一個任意子模塊。這是在此設計議題下相對容易的修改,但標準的MCS-51編譯程序必須進行修改,甚至重新設計。否則,原指令在標準的編譯器下不能被正確解碼。因此,這樣修改指令集后的單片機難以廣泛使用,也不利于它們的傳播和兼容性使用。
另一種方案是對一個程序存儲器進行邏輯分割,而不改變MCS-51的任何指令。一個可尋址的16MB程序存儲空間包括256個數(shù)據塊,而每一個數(shù)據塊地址可確定24位地址中最高的8位。在每一個64KB的數(shù)據塊中任何特定的地址包含了一個24位程序地址的中8位和低8位,而一個PC(程序計數(shù)器)保存這個程序地址中的低16位數(shù)據。
圖 2 程序存儲器的空間結構
為了使單片機設計具有更好的兼容性,我們采用第二種方法,即標準的MCS-51指令集是不變的還有額外的8位地址線也不添加。圖2顯示了擴展程序存儲器的內存尋址空間結構。
2.2一個數(shù)據存儲器的16MB尋址空間
2.2.1數(shù)據指針寄存器(DPTR)
一個數(shù)據指針由三個八位寄存器組成,分別是:DPTR_PAGE,DPTR_LOW和DPTR_HIGH。
DPTR_PAGE的地址為95H,該寄存器可以由用戶自定義,它存儲一個24位程序地址的高8位。
DPTR_LOW/DPTR_HIGH的地址是82H和83H,這兩個寄存器也可以由用戶自定義。它們保持一個24位程序地址的低8位和中8位。
2.2.2自動檢測邏輯
這項工作提出了自動檢測邏輯實現(xiàn)跨頁的方式。
“ DEC DPTR ”指令,其地址為A5H ,是添加到單片機的。當單片機訪問外部數(shù)據存儲器時, INC DPTR / DEC DPTR指令可能導致DPTR的低16位的值從FFFFH改變?yōu)?000H或從0000H變成FFFFH以及跨頁的情況業(yè)可能發(fā)生。在這樣的情況下一個自動檢測邏輯將會增加或減少DPTR_PAGE的內容,因此,數(shù)據可以被正確地寫入或讀出在16MB的數(shù)據存儲器中的上一個或下一個頁面。編碼中實現(xiàn)跨頁功能一些部分會在圖3中顯示 。其中,PC_CON [0]是“INC_DPTR”指令的一個解碼信號而PC_CON [1]是“DEC_DPTR”指令的是一個解碼信號。 CCLK信號是單片機的一個工作時鐘。
圖 3 一個自動檢測邏輯的部分代碼
2.3程序存儲器的16M尋址空間
在單片機中, PC / PA / PRO_BLOCK / DPTR控制模塊的設計計算和存下一個指令存儲單元的地址。生成一個8位數(shù)據塊地址,形成一個24位的程序地址和一個16位的程序計數(shù)器而DPTR就被這四個部分控制和管理。
2.3.1 PA(程序地址)和PC(程序計數(shù)器)
為了加快單片機的處理速度,就采取了一種預取技術。讀取下一個指令的24位地址的第三階段處于當前指令的最后一個機器周期。而程序存儲器的每個內部單元地址來自一個PA根據所有被傳輸和存儲的指令操作碼和操作數(shù)這二者的地址。當MCU復位或電源供電時,24位PA的初始值是000000H 。
程序計數(shù)器(PC)是一個16位專用寄存器,并且可以使單片機處理一個64KB的空間。當MCU復位或電源供能時,一個16位PC的初始值為0000H 。 PC寄存器獨立寄存器且不能訪問用戶[2]。
一個PA的低16位地址和整個PC的16位地址是一樣的,除了當MOVCS指令執(zhí)行時。例如,就像“ MOVC A,@A+PC”或“MOVC A,@A+DPTR”指令正在執(zhí)行時,PC不發(fā)生變化,而PA的內容必須更改為(A+PC)或(A+DPTR)的值,以使MCU可以在更新后的地址讀取數(shù)據并分配它們到累加器。因此,PC的控制邏輯電路和PA的有一些細微的不同之處。
2.3.2塊地址生成器
塊地址發(fā)生器負責產生PA的高8位地址,因此,塊地址源順的序設計正確與否將直接決定程序是否可以正常運行。塊地址有三個來源除了默認值“00H”還有:用戶可以自定義數(shù)據;RET / RETI指令執(zhí)行后,從外部或內部PA的堆棧數(shù)據;程序跳轉到相鄰塊后程序塊地址的更新。請看圖4:塊地址生成器結構。
圖 4 塊地址生成器的結構
2.3.2.1 PRO_BLOCK 特殊功能寄存器
用戶應該在LJMP/LCALL指令處理前定義確定的塊地址,這是為了跳過其他模塊或調用位于其它塊的子模塊。實現(xiàn)這一目標的具體方法是在單片機中添加一個名為PRO_BLOCK的新的特殊功能寄存器,其地址為FFH ,并且系統(tǒng)復位后,它的值將會被設置為00H。用戶可以在運行LJMP / LCALL指令前寫一個8位的塊地址到這個SFR(特殊功能寄存器)中。在圖4中,PRO_BLOCK_W是一個允許寫入信號而REG_RESULT則存儲由用戶自定義的塊地址。
2.3.2.2中斷/調用后的塊地址
如圖4所示,Xramdi存儲的塊地址是從堆棧中彈出的一個外部數(shù)據存儲器中的值,而Source_di中存儲的塊地址是從堆棧中彈出的一個內部數(shù)據存儲器中的值。RET/RETI指令結束時,最初存儲在外部或內部存儲器中的塊地址從堆棧中彈出并發(fā)送PRO_BLOCK SFR。
2.3.2.3一個塊地址的自動增量
在圖4中,下一個塊地址(PRO_BLOCK+1)被存儲在ROM_0。當程序運行時有序通過兩個相鄰的塊,PRO_BLOCK SFR的值會自動更新到的ROM_0使得單片機在下一個塊初就可以正確讀取下一個操作碼或操作數(shù)。
2.3.2.4相對跳轉后的塊地址
上一個塊地址值( PRO_BLOCK - 1 )被存儲在圖4所示ROM_1中。當程序跳轉到相對前一個塊時, PRO_BLOCK SFR的值會自動更新到ROM_1。而當程序跳轉到下一個塊的相對塊時, PRO_BLOCK的值更改到ROM_0。
3.仿真和驗證
3.1在工作站上的仿真
工作站上對軟核進行的仿真相對徹底(SUNW SUNW, ULTRA-60;SPARC SUN4U)。該工作站上的仿真工具是Verilog -XL(Cadence)。匯編語言代碼測試CJNE指令的部分如圖5中所描述。Test_bench的目的是驗證16MB程序尋址空間的設計方案是正確的。當某個程序運行有序的通過兩個相鄰塊時,PRO_BLOCK的值會自動增一。任何程序都可以在每塊或整個區(qū)塊不僅自由而且準確的進行相對跳躍。
圖 5 CJNE指令的測試代碼
測試結果的波形圖如下所示。STATE是MCU狀態(tài)機的一個信號和PROGA一樣是24位PA 。
圖 6 CPL 0D3H
圖6是測試代碼的起始波形,PORT0發(fā)送數(shù)據和一個PA的低8位的每一個其他階段數(shù)。“B2 D3”是“CPL 0D3H”的機器代碼。
圖 7 CJNE @ R0, #01H, ADD0
在圖7中,“B6 01 66”是“CJNE @ R0,#01H,ADD0”的機器代碼。在該指令結束時,PROGA顯示ADD0“1900C4H”的地址和“MOV P1,0D0H '將被處理。
圖 8 MOV P1, 11H
在圖8中,“B5 11 90”是“MOV P1,11H”的機器代碼。由于如跳躍或調用這類指令沒有處理,PROGA 從BLOCK_19到BLOCK_1A將會自增一。
圖 9 CJNE @R1, #0E7H, ADD4
在圖9中,“B7 E7 F2”是“CJNE @R1,#0E7H,ADD4”的機器代碼。在該指令結束時,PRO_BLOCK從BLOCK_1A到BLOCK_19自減一,相對相鄰塊的跳轉實現(xiàn)。
3.2 FPGA驗證
軟核在Altera Nios FPGA開發(fā)板上也被驗證。一個特定的測試環(huán)境的描述如下:
外部中斷源為零(IT0)設置為優(yōu)先于外部中斷源一(IT1)。該主程序運行時,IT1的有效信號比IT0的更早出現(xiàn)。而隨著IT1子模塊被處理,IT0產生有效信號。IT1的優(yōu)先級較低,所以它的中斷子模塊將暫停而IT0的中斷子模塊將被執(zhí)行。當IT0的子模塊完成后,PA將會被改變到IT1子模塊已被停止處而該模塊將繼續(xù)執(zhí)行,直到執(zhí)行到該子模塊的底部。到那時,主程序將被再次激活。 IT0和IT1由一個Nios板上的兩個乒乓鍵提供。該IT1子模塊的作用是使LED的數(shù)字'1'有序的顯示M次,而IT0子模塊可以讓LED的數(shù)字“0”有序的顯示N次(M>>N)。主程序的功能是激活電路板上的蜂鳴器。中斷入口的地址均位于block_0上和這三個模塊被放在不同的塊中。
在設計通過在Quartus平臺(阿爾特拉公司)上的編譯和仿真后,RTL(寄存器傳輸?shù)燃壖?單片機的RTL(寄存器傳輸?shù)燃壖?代碼就是FPGA中的代碼它和測試機代碼被放在一個主板上的閃存里。
這個實驗的目的是驗證程序可以返回block_0以及24位的指針可以正確地推入或彈出堆棧。實驗結果與我們預期的一樣,實現(xiàn)這一功能的設計被證明是正確的。
4.結論
這個擁有16MB的數(shù)據和16MB尋址空間的單片機是基于MCS-51結構的單片機所設計的。該指令集與標準8051完全兼容,因此那些支持51系列的工具和第三方軟件都可以使用。工作站和FPGA的仿真已驗證了該設計是正確的。作為IP (知識產權)內核, MCU已被嵌入到SCMP(單芯片多處理器)結構的圖像處理系統(tǒng)芯片中。成本低,功能強大,兼容性好和巨大的尋址空間,這些優(yōu)點使這種MCU具有非常廣泛的應用領域。
致謝
作者感謝包括邏輯、合成、位置、線路、CAD和測試產品工程師為整個設計團隊所做的貢獻。
參考資料
[1] 英特爾公司單片機手冊,MCS-51Family,英特爾公司 (1984), pp. 6-8.
[2] Myke Predko,8051單片機的編程和自定義, McGraw-Hill (1999), pp. 7-8.
景偉良,1980出生于中國上海。2003年在中國上海大學獲得電氣工程工學學士學位。
他目前就讀于上海大學,攻讀微電子和固體電子學碩士學位,他的研究興趣是具有高設計性能和圖像處理系統(tǒng)的SCMP結構單片機。
胡越利,1982年在上海科技大學獲得應用物理的理學學士學位,1989年獲得電氣工程專業(yè)的工程碩士學位。
目前他以副教授的身份工作于上海大學微電子研發(fā)中心。他的研究領域包括數(shù)字IC設計,影像處理與機器視覺。
曹家林,上海大學微電子研發(fā)中心主任,上海大學副校長。
作為一位教授,他的研究領域包括圖案識別和VLSI電路。
收藏
編號:233075393
類型:共享資源
大?。?span id="kywiwiy4em" class="font-tahoma">197.77KB
格式:ZIP
上傳時間:2023-10-02
12
積分
- 關 鍵 詞:
-
中文4345字
單片機
外文
翻譯
基于
MCS
51
結構
16
MB
尋址
空間
設計
中文
4345
PDF
WOrd
- 資源描述:
-
單片機外文翻譯-基于MCS-51單片機結構中16MB尋址空間的設計【中文4345字】【PDF+中文WOrd,中文4345字,單片機,外文,翻譯,基于,MCS,51,結構,16,MB,尋址,空間,設計,中文,4345,PDF,WOrd
展開閱讀全文
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
裝配圖網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。