日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機(jī)電之家資源網(wǎng)
單片機(jī)首頁(yè)|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開(kāi)發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開(kāi)發(fā)
培訓(xùn)信息
贊助商
80C51原始IP核內(nèi)部RAM的擴(kuò)展方案
80C51原始IP核內(nèi)部RAM的擴(kuò)展方案
 更新時(shí)間:2009-9-23 15:59:07  點(diǎn)擊數(shù):0
【字體: 字體顏色

引言

  80C51系列單片機(jī)是一類經(jīng)典的8位微處理器,其設(shè)計(jì)方法和體系結(jié)構(gòu)一直是其他各類單片機(jī)設(shè)計(jì)的參考典范,自從20世紀(jì)80年代面世以后,得到了極大的發(fā)展與應(yīng)用。直到今天,市場(chǎng)上還有一大部分單片機(jī)應(yīng)用成品將其作為處理核心。基于80C51系列單片機(jī)無(wú)知識(shí)產(chǎn)權(quán)保護(hù)、市場(chǎng)應(yīng)用廣泛等優(yōu)點(diǎn),對(duì)其進(jìn)行功能拓展,既有利于經(jīng)濟(jì)上節(jié)約成本,也有利于成果的推廣使用。而隨著單片機(jī)應(yīng)用日趨復(fù)雜化,傳統(tǒng)的51系列單片機(jī)在設(shè)計(jì)上的不足逐漸顯現(xiàn)出來(lái)。如在現(xiàn)有128字節(jié)內(nèi)部RAM基礎(chǔ)上,處理一些比較復(fù)雜的算法就顯不足。鑒于此,本文在Oregano公司設(shè)計(jì)的8051 IP核(即下述MC8051)基礎(chǔ)上,進(jìn)行了對(duì)其內(nèi)部RAM高128字節(jié)擴(kuò)展。給出一種新的擴(kuò)展設(shè)計(jì)方法,實(shí)現(xiàn)了對(duì)與一般RAM區(qū)地址空間相連的高128字節(jié)的間接尋址操作,并以此為基礎(chǔ),對(duì)內(nèi)部RAM進(jìn)行了可達(dá)64 KB的擴(kuò)展實(shí)現(xiàn),通過(guò)了相應(yīng)的軟硬件仿真測(cè)試。

1  對(duì)MC8051高位128字節(jié)的擴(kuò)展設(shè)計(jì)

  對(duì)MC8051高位128字節(jié)的擴(kuò)展設(shè)計(jì)主要分3個(gè)方面加以說(shuō)明:一是傳統(tǒng)80C51系列的內(nèi)部基本結(jié)構(gòu);二是高128字節(jié)的尋址方式;三是對(duì)IP核內(nèi)部的RAM地址選擇控制。

1.1  傳統(tǒng)80C51系列的內(nèi)部基本結(jié)構(gòu)

  80C51是經(jīng)典的單片機(jī)系列,具有典型的單片機(jī)體系結(jié)構(gòu),由CPU系統(tǒng)、ROM、RAM、I/O口以及特殊功能寄存器SFR、2個(gè)16位定時(shí)/計(jì)數(shù)器、5個(gè)中斷源和1個(gè)串口組成。針對(duì)本文所要討論的內(nèi)容,這里介紹一下80C51存儲(chǔ)結(jié)構(gòu)和尋址方式:80C51系列單片機(jī)存儲(chǔ)器結(jié)構(gòu)采用哈佛型結(jié)構(gòu),物理上共分片內(nèi)外程序存儲(chǔ)器、片內(nèi)外數(shù)據(jù)存儲(chǔ)器4個(gè)存儲(chǔ)空間。對(duì)于數(shù)據(jù)存儲(chǔ)器,片內(nèi)外數(shù)據(jù)存儲(chǔ)器地址彼此獨(dú)立,指令尋址各自不同,這里主要關(guān)注片內(nèi)數(shù)據(jù)存儲(chǔ)單元的結(jié)構(gòu)。

  8051單片機(jī)共有7種尋址方式,這里只對(duì)其中3種作一下簡(jiǎn)要介紹:立即尋址,操作碼后的一個(gè)字節(jié)就是實(shí)際操作數(shù)本身;寄存器尋址,操作碼后為某一寄存器編號(hào),寄存器的內(nèi)容為操作數(shù);寄存器間接尋址,其與寄存器尋址的區(qū)別在于前者寄存器中的內(nèi)容就是操作數(shù),而后者寄存器中的內(nèi)容為操作數(shù)地址,此地址指向的寄存器中存入的數(shù)據(jù)才是實(shí)際操作數(shù)本身。

1.2  高128字節(jié)的尋址方式

  由前面介紹內(nèi)容可知,MC8051內(nèi)部RAM分為地址相連、功能不同的兩部分:低128字節(jié)的內(nèi)部用戶RAM區(qū)和高128字節(jié)的特殊功能寄存器區(qū)(SFR)。這兩部分均可用寄存器直接、間接尋址方式進(jìn)行尋址操作。經(jīng)過(guò)設(shè)計(jì)修改的8051,低128字節(jié)的功能和操作方式完全不變,對(duì)其高128字節(jié),分為地址重疊和功能不同的兩部分,以不同的尋址方式加以區(qū)別,控制操作。高128字節(jié)如果作為內(nèi)部用戶RAM使用,只可以通過(guò)寄存器R0、R1進(jìn)行尋址,以地址為85H的寄存器單元為例,若此時(shí)85H作為SFR,則用命令“MOV 85H, #33H”;若此時(shí)作為一般內(nèi)部用戶RAM單元,則用命令:

  MOV R0,# 85H
  MOV @R0,#33H

  在MC8051中,寄存器R0、R1只應(yīng)用于寄存器間接尋址使用,即R0、R1中存儲(chǔ)的內(nèi)容為間接尋址中操作數(shù)的地址。對(duì)高128地址空間,如果作為一般的RAM寄存區(qū)使用,只采用間接尋址;如果作為特殊功能寄存器區(qū)(SFR),則采取除間接尋址外的其他尋址方式。這樣就可以通過(guò)只對(duì)R0、R1中內(nèi)容進(jìn)行條件判定,確定是否觸發(fā)對(duì)高128地址空間進(jìn)行一般RAM數(shù)據(jù)操作。

1.3  IP核內(nèi)部的RAM地址選擇控制

  在MC8051中,對(duì)低128字節(jié)用戶RAM區(qū)的讀寫有專門的地址輸出ram_address_out。由于1個(gè)字節(jié)的尋址長(zhǎng)度為256,所以ram_address_out只取內(nèi)部地址s_adr低7位,即ram_address_out<=s_adr(6 downto 0),輔以RAM寫使能控制,實(shí)現(xiàn)對(duì)低128字節(jié)的讀寫。這里由于要對(duì)RAM區(qū)擴(kuò)展成為256字節(jié),所以用戶RAM區(qū)的地址應(yīng)該可以尋址256字節(jié)長(zhǎng)度。這就要求對(duì)IP核中對(duì)RAM區(qū)的地址傳遞有相應(yīng)的修改,修改后地址的具體傳遞過(guò)程如圖1所示。

 
圖1  RAM地址傳遞控制

  一個(gè)完整的執(zhí)行過(guò)程如下所述:首先CPU從ROM讀取指令,然后到內(nèi)部狀態(tài)機(jī)進(jìn)行指令解釋,送入譯碼器執(zhí)行具體的數(shù)據(jù)和地址的存取操作(譯碼器中通過(guò)地址多路選擇器adr_mux和數(shù)據(jù)多路選擇器data_mux來(lái)實(shí)現(xiàn)對(duì)地址和數(shù)據(jù)的控制)。如果此時(shí)命令不涉及寄存器間接尋址,由圖1可知,取到的RAM地址就是一般8051的執(zhí)行結(jié)果。如果此時(shí)進(jìn)行寄存器間接尋址,則可分為兩種情況:一是對(duì)高128字節(jié)的間接尋址,此時(shí)的操作目的,是要對(duì)高128字節(jié)進(jìn)行一般RAM的數(shù)據(jù)操作;二是除第一種情況外的一般寄存器間接尋址操作。由于SFR不能使用寄存器間接尋址,所以這兩種情況可以根據(jù)R0、R1中存儲(chǔ)的地址的最高位進(jìn)行判別。

  第一種情況:最高位為“1”時(shí),說(shuō)明高128字節(jié)(80H~FFH)作為一般RAM來(lái)使用,此時(shí)把R0、R1中的地址賦給RAM地址,同時(shí)置RAM使能控制ram_write_en為“1”,實(shí)現(xiàn)對(duì)某一高位地址的寫操作。還以85H為例,執(zhí)行指令“MOV R0, #85H”, R0中內(nèi)容變?yōu)?5H,然后執(zhí)行“MOV @RO,#33H”,此時(shí)R0用作間接寄存器,進(jìn)行間接尋址,且寄存器中的字節(jié)最高位為“1”,對(duì)RAM區(qū)操作的地址就是間接寄存器中寄存的地址85H,從而實(shí)現(xiàn)對(duì)85H的數(shù)據(jù)存儲(chǔ)。

  第二種情況:最高位為“0”時(shí),說(shuō)明只是對(duì)低128字節(jié)進(jìn)行間接尋址操作,執(zhí)行過(guò)程如一般8051。

2  64 KB內(nèi)部RAM的擴(kuò)展設(shè)計(jì)

  通過(guò)對(duì)一個(gè)特殊移存器(選取84H,記為SRAM0)的軟件配置,在高128字節(jié)內(nèi)部RAM擴(kuò)展設(shè)計(jì)的基礎(chǔ)上,可以實(shí)現(xiàn)內(nèi)部64 KB RAM的擴(kuò)展。在對(duì)高128字節(jié)內(nèi)部RAM的擴(kuò)展設(shè)計(jì)中,通過(guò)對(duì)s_address_ram最高位進(jìn)行判斷,確定地址信號(hào)s_address1,進(jìn)而作為內(nèi)部RAM地址ram_address_out輸出。以這個(gè)方法為基礎(chǔ),將ram_address_out改為16位長(zhǎng),SRAM0中內(nèi)容與s_address1的值并置作為ram_address_out輸出,即ram_address_out<= SRAM0&s_address1,可以實(shí)現(xiàn)對(duì)內(nèi)部RAM 64 KB的擴(kuò)展。此時(shí)對(duì)數(shù)據(jù)進(jìn)行存取時(shí),每次對(duì)84H賦值后,CPU對(duì)數(shù)據(jù)進(jìn)行存取,對(duì)64 KB內(nèi)部RAM的尋址,就相當(dāng)于以SRAM0為頁(yè)地址指針,以256字節(jié)為頁(yè)深度進(jìn)行頁(yè)面尋址操作。相比較于以XRAM作為數(shù)據(jù)存儲(chǔ)區(qū),本設(shè)計(jì)有兩個(gè)優(yōu)勢(shì): 其一,除SRAM0中為全0的情況,其余地址空間均可直接尋址,而XRAM地址空間只能間接尋址,在進(jìn)行大量數(shù)據(jù)反復(fù)存儲(chǔ)調(diào)用時(shí),可以縮短代碼長(zhǎng)度,有效提高執(zhí)行速度;其二,由于內(nèi)部數(shù)據(jù)傳輸指令MOV大多為單指令周期指令,而外部數(shù)據(jù)傳輸指令MOVX全部是雙指令周期指令,所以在進(jìn)行大量數(shù)據(jù)存取時(shí),執(zhí)行速度會(huì)有較大提高。

3  軟硬件仿真測(cè)試

  采用由Model技術(shù)公司開(kāi)發(fā)的ModelSim SE 6.0進(jìn)行功能仿真,利用Keil公司的Keil uVision2編寫51匯編測(cè)試程序,編譯產(chǎn)生可執(zhí)行文件載入ROM進(jìn)行功能測(cè)試,最終的仿真結(jié)果與Keil uVision2中編譯執(zhí)行結(jié)果相對(duì)照,驗(yàn)證設(shè)計(jì)功能的正確性。對(duì)設(shè)計(jì)的測(cè)試采取黑盒測(cè)試法,測(cè)試程序是已有的一些比較復(fù)雜的算法,如DES、AES。以DES為例,明密文存取、密鑰生成、中間值暫存和結(jié)果都放在高128字節(jié)來(lái)處理,僅用到低128字節(jié)區(qū)的可位尋址區(qū),密文地址空間為90H~97H ,明文地址空間為98H~9FH, 明文數(shù)據(jù)為38H、33H、32H、37H、31H、34H、32H、33H,密鑰地址空間為80H~87H,密鑰數(shù)據(jù)為00H、31H、31H、33H、34H、35H、36H、07H,最后將80H~87H和90H~97H地址空間中的數(shù)據(jù)結(jié)果送入地址空間48H~5FH中,如圖2所示。

  將二進(jìn)制.dua可執(zhí)行文件載入ROM,使用ModelSim對(duì)其進(jìn)行功能仿真,結(jié)果如圖3所示。

 
圖2  Keil運(yùn)行結(jié)果

 
圖3  ModelSim仿真結(jié)果

  兩方結(jié)果對(duì)照:128~135這8個(gè)高位寄存數(shù)為:00H、00H、7EH、E1H、CCH、F0H、00H、8EH,144~159這16個(gè)高位寄存數(shù)為:26H、33H、21H、3DH、31H、0FH、1DH、4DH、00H、88H、1EH、5FH、E6H、E7H、21H、F1H,圖中的160~163位, 是用于暫存32位圈子密鑰的,這里不作詳細(xì)介紹,通過(guò)對(duì)照可知結(jié)果正確。硬件實(shí)現(xiàn)采用Altera公司的CycloneII系列的EP2C35F672C6器件作為設(shè)計(jì)載體,在QuartusII 5.0下對(duì)系統(tǒng)進(jìn)行編譯綜合下載,使用RS232串口,在每次復(fù)位時(shí),對(duì)RAM的明文和初始密鑰進(jìn)行重新配置,利用串口輸出驗(yàn)證結(jié)果。實(shí)驗(yàn)結(jié)果均正確。

結(jié)語(yǔ)

  針對(duì)8051現(xiàn)有的RAM內(nèi)部數(shù)據(jù)緩存不能滿足實(shí)際應(yīng)用要求的現(xiàn)況,本文給出了一種新的對(duì)內(nèi)部RAM高128字節(jié)的擴(kuò)展實(shí)現(xiàn)方案,并以此為基礎(chǔ),對(duì)內(nèi)部RAM進(jìn)行了64 KB的擴(kuò)展設(shè)計(jì);通過(guò)了相應(yīng)的軟、硬件仿真測(cè)試,驗(yàn)證了設(shè)計(jì)的正確性。

參考文獻(xiàn)

[1]  http://oregano.at/ip/ip12.htm.
[2]  吳炳勝,王桂梅,等.80C51單片機(jī)原理與應(yīng)用[M]. 北京: 冶金工業(yè)出版社,2001.
[3]  盧毅,賴杰.VHDL與數(shù)字電路設(shè)計(jì)[M]. 北京:科學(xué)出版社.2001:99139.

溫圣軍、王簡(jiǎn)瑜(碩士研究生),主要研究方向?yàn)槊艽a學(xué)與密碼工程;
張魯國(guó)(副教授、碩士生導(dǎo)師),主要研究方向?yàn)榍度胧叫畔踩到y(tǒng)與密碼工程。

  • 上一篇: 單片機(jī)系統(tǒng)硬件抗干擾常用方法實(shí)踐
  • 下一篇: 沒(méi)有了
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁(yè)  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1