<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 51單片機存儲器擴展問題

          51單片機存儲器擴展問題

          作者: 時間:2013-01-30 來源:網(wǎng)絡 收藏

          總之,記住三總線傳遞的方式,先尋址,再傳數(shù),由控制總線控制,這個模式,你就容易理解這個了。

          單片機的p2和p0分別傳遞地址的高八位和低八位。同時p0還傳遞數(shù)據(jù)。在時序信號的ALE高電平期間,鎖定地址信息。/PSEN是選通程序的。在/PSEN低電平期間是向程序傳遞程序代碼,/WR和/RD是選通數(shù)據(jù)的,即在/WR和/RD(p3的六腳和七腳)低電平期間把數(shù)據(jù)傳遞給數(shù)據(jù)寄存器。而/PSEN和/WR及/RD是在不同時間變?yōu)榈碗娖降?,沒有重疊的部分。也就是說,當/WR及/RD變成低電平時,/PSEN已經(jīng)恢復高電平了,由P0口傳出的數(shù)據(jù)信息當然只會傳到數(shù)據(jù)存儲器里,因為程序存儲器已經(jīng)不再處于選通狀態(tài)了!!從表面看,都是從p0口傳出的,但因為選通器件的時間不同而不會發(fā)生混亂。當然我說的是片外程序存儲器和數(shù)據(jù)存儲器的的情況,其實對片內(nèi)也一樣,還是三總線的這種控制方式,使它們在不同的時間被選通,而不至于發(fā)生沖突。

          看看單片機的一個電路圖。你會發(fā)現(xiàn)p0既跟74LS373連,又跟8155或8255或鍵盤或數(shù)模轉換器等等連。而8155或8255或鍵盤或數(shù)模轉換器等等對單片機而言是當做數(shù)據(jù)存儲器處理的。74LS373連的多半是程序存儲器。那么p0送出的信號不是兩者都接受了嗎?注意看ALE接74LS373的G接口,鎖存地址用,PSEN有時用有時不用。WR和RD接數(shù)據(jù)存儲器的選通接口。因為WR和RD跟ALE的信號在時間上沒有重疊部分,所以p0的信號不會被程序存儲器和數(shù)據(jù)存儲器同時收到。這是一個舉例說明,具體情況要具體分析。

          四,,存儲器分為數(shù)據(jù)存儲器和程序儲存器,其地址空間、存取指令、和控制信號各有一套,

          51是馮-諾依曼結構

          哈弗結構說的是將程序存儲器和數(shù)據(jù)存儲器地址編碼分開,因而有兩種程序指令總線和數(shù)據(jù)指令總線。請注意這里說的是:地址編碼分開。取指令和取數(shù)據(jù)可以同時進行。

          因為馮-諾依曼結構的數(shù)據(jù)線和指令線是分時復用的,在同一根線上,有時傳送的是數(shù)據(jù)有時是指令,所以它取指令和取數(shù)據(jù)不能同時進行。你看mov,movx,movc,的功能,它告訴cpu什么時候取數(shù)據(jù)什么時候取指令。注意:數(shù)據(jù)和指令的區(qū)別!

          又一種說法 哈佛結構和馮.諾依曼結構都是一種存儲器結構。哈佛結構是將指令存儲器和數(shù)據(jù)存儲器分開的一種存儲器結構;而馮.諾依曼結構將指令存儲器和數(shù)據(jù)存儲器合在一起的存儲器結構。

          哈佛結構是為了高速數(shù)據(jù)處理而采用的,因為可以同時讀取指令和數(shù)據(jù)(分開存儲的)。大大提高了數(shù)據(jù)吞吐率。缺點是結構復雜。

          通用微機指令和數(shù)據(jù)是混合存儲的,結構上簡單,成本低。假設是哈佛結構:你就得在電腦安裝兩塊硬盤,一塊裝程序,一塊裝數(shù)據(jù),內(nèi)存裝兩根,一根儲存指令,一根存儲數(shù)據(jù)……

          是什么結構要看總線結構的。雖然數(shù)據(jù)指令存儲區(qū)是分開的,但總線是分時復用得,所以頂多算改進型的哈佛結構,呵呵。ARM9雖然是哈佛德,但是之前的版本也還是馮諾結構。早期的X86能迅速占有市場,一條很重要的原因,正是靠了馮 諾依曼這種實現(xiàn)簡單,成本低的總線結構。樓上的兄弟有一點說的不確切,現(xiàn)在的處理器雖然外部總線上看是諾依曼結構的,但是由于內(nèi)部CACHE的存在,因此實際上內(nèi)部來看已經(jīng)算是改進型哈佛結構的了。

          這個問題21ic上討論翻了無數(shù)個帖子,沒有什么定論,見仁見智。

          至于優(yōu)缺點,呵呵,樓上的兄弟說的就比較的明白了。哈佛結構就是復雜,對外圍設備的連接與處理要求高,十分不適合外圍存儲器的擴展。所以早期通用CPU難以采用這種結構。而單片機,由于內(nèi)部集成了所需的存儲器,所以采用哈佛結構也未嘗不可。現(xiàn)在的處理器,依托CACHE的存在,已經(jīng)很好的將二者統(tǒng)一起來了。

          很多入門的書上基本上都說:由運算器、控制器、存儲器、輸入設備、輸出設備組成的系統(tǒng)

          都叫馮氏結構。

          也有的說:“程序存儲器的數(shù)據(jù)線地址線”與“數(shù)據(jù)存儲器的數(shù)據(jù)線地址線”共用的話,就

          是馮氏結構,所以51是該結構。(我認為說得太絕對了)

          我認為馮氏結構與哈佛結構的區(qū)別應該在存儲器的空間分別上,哈佛結構的數(shù)據(jù)區(qū)和代碼區(qū)是分開的,它們即使地址相同,但空間也是不同的,主要表現(xiàn)在數(shù)據(jù)不能夠當作代碼來運行。

          口線復用,就將它認為成馮氏結構,我認為這樣不足取,應該是按照空間是否完全重合來辨別。比如PC機的代碼空間和數(shù)據(jù)空間是同一空間,所以是馮氏結構;51由于IO口不夠,但代碼空間和數(shù)據(jù)空間是分開的,所以還是哈佛結構。

          另外,還有的把CISC RISC 和 地址是否復用,是哪種結構 這3這都混到一起。我認為這三者都沒有必然的關系。只不過 RISC因為精簡了指令集,沒有了執(zhí)行復雜功能的指令,為了提高性能,常采用哈佛結構,并且不復用地址線。

          51單片機相關文章:51單片機教程


          存儲器相關文章:存儲器原理



          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();