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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 44b0存儲(chǔ)器擴(kuò)展徹底研究——nWE, nWBE, nBE三者關(guān)系

          44b0存儲(chǔ)器擴(kuò)展徹底研究——nWE, nWBE, nBE三者關(guān)系

          作者: 時(shí)間:2016-11-20 來源:網(wǎng)絡(luò) 收藏
          1.存儲(chǔ)器擴(kuò)展地址、數(shù)據(jù)線的連接方法重點(diǎn)參見2440手冊(cè),主要涉及地址對(duì)齊問題,較容易理解,此處不作論述。

          2. nWE, nWBE, nBE三者之間的關(guān)系

          本文引用地址:http://www.ex-cimer.com/article/201611/318888.htm

          (1)nWE為寫使能信號(hào)。

          (2)nWBE為“寫字節(jié)使能(write byte enable)”信號(hào),而nBE 為高/低字節(jié)選擇信號(hào)。nWBE與nBE共用引腳,可以通過對(duì)相關(guān)寄存器設(shè)置來進(jìn)行功能選擇。

          (3)什么時(shí)候需要nWBE而不是nWE?

          nWE和nWBE都帶有寫使能的功能。但既然有nWE,為什么還需要nWBE?這是因?yàn)?,?dāng)使用幾片儲(chǔ)存芯片進(jìn)行數(shù)據(jù)位擴(kuò)展時(shí),有時(shí)需要對(duì)芯片分開寫數(shù)據(jù),此時(shí)可使用nWBE。

          在圖5-4中,僅有一片8bit的ROM,因此僅需要nWE,而不需要nWBE。而在圖5-5中,用了2片8bit的ROM,如果不使用nWBE,則寫操作是對(duì)2片ROM同時(shí)進(jìn)行的,這樣,當(dāng)執(zhí)行寫字節(jié)指令時(shí)可能會(huì)破壞另一芯片中的數(shù)據(jù)。(注意nWBE的信號(hào)是自動(dòng)產(chǎn)生的。)從這個(gè)角度來說,nWBE有字節(jié)數(shù)據(jù)屏蔽的功能。

          后面我們也會(huì)看到,SDRAM中有DQM信號(hào)也是用來進(jìn)行數(shù)據(jù)屏蔽作用的,那么它們之間區(qū)別何在?

          (4)nWBE, nBE有什么區(qū)別?什么時(shí)候應(yīng)該配置成nBE?

          根據(jù)手冊(cè)描述“nBE[3:0] is the AND signal nWBE[3:0] and nOE”,即nBE是nWBE和nOE的“與”信號(hào),這句話給了我們非常重要的啟示,應(yīng)該說深刻揭示出了nWBE, nBE之間的本質(zhì)、內(nèi)涵。

          首先看一下真值表:

          nWBE

          nOE

          nBE

          說明

          1

          1

          1

          nWBE, nOE均無效(低電平有效),于是nBE無效

          0

          0

          0

          nWBE, nOE任意一個(gè)有效(低電平有效),則nBE有效

          1

          0

          0

          0

          1

          0

          注意到nWBE[3:0],nOE僅一根信號(hào)線。由此可見,nBE就是字節(jié)選通信號(hào)(讀、寫選通)。讀的時(shí)候,多片均選通,寫的時(shí)候,分片進(jìn)行選通。其實(shí)質(zhì),nBE可看作字節(jié)片選信號(hào)。

          那么,能不能把上圖5-5中nWBE換成nBE?

          如果這樣連接,我們思考一下有什么問題:注意表格陰影行,當(dāng)nWBE無效而nOE有效,nBE有效,這會(huì)使存儲(chǔ)器的nWE有效,致使讀寫信號(hào)混亂,顯然不行。

          事實(shí)上,到底用什么,應(yīng)該根據(jù)存儲(chǔ)器芯片來決定。

          究竟什么時(shí)候需要nBE呢?手冊(cè)上給出的SRAM連接圖5-8,5-9給出了示例。同樣我們要問,圖5-8中能不能把SRAM的nWE接nWBE?

          如果這樣接,芯片的nBE信號(hào)就無法解決,因?yàn)閚BE和nWBE不能同時(shí)工作,這樣就無法單獨(dú)操控片內(nèi)的高字節(jié)與低字節(jié)讀寫。這里的nBEx就像是片內(nèi)的高字節(jié)與低字節(jié)的片選信號(hào)。

          再問,能否將圖5-8中nBE信號(hào)換成nWBE信號(hào)(硬件連接不變,寄存器配置改變)?

          當(dāng)按字節(jié)寫芯片,沒有問題,這時(shí)候可以產(chǎn)生有效的nWBE信號(hào),以選擇U/L字節(jié);而當(dāng)需要按字節(jié)讀芯片時(shí),nWBE無效,無法提供正確的nUB/nLB選擇信號(hào),就無法讀出數(shù)據(jù),可見行不通。注意,似乎無法真正做到按字節(jié)讀芯片,因?yàn)橹灰猲OE有效,nBE一定有效,這樣勢(shì)必造成nBE0,nBE1同時(shí)有效。即便如此,應(yīng)該不會(huì)有什么麻煩,大不了將不需要的字節(jié)數(shù)據(jù)丟棄即可。

          3. 下面附上手冊(cè)中所給出的其它存儲(chǔ)器擴(kuò)展圖。

          (1)ROM

          (2)SDRAM

          注意nSCS[1:0]就是nGSC[7:6],參看三星官方評(píng)估板電路圖。

          這里重點(diǎn)關(guān)注DQM[3:0]。經(jīng)查2440手冊(cè),DQM與nWBE引腳是復(fù)用的。參考友善之臂提供的mini2440手冊(cè)中所提供的SDRAM電路(同三星官方):

          可見,DQM正是連接到了nWBE。又參考SDRAM的數(shù)據(jù)手冊(cè),對(duì)DQM的描述:“Controls output buffers in read mode and masks input data in write mode(即:在讀模式下控制輸出緩沖;在寫模式下屏蔽輸入數(shù)據(jù)。)”。

          我們的問題是:為什么DQM連的是nWBE而不是nBE?能不能為nBE?

          下圖是SDRAM的數(shù)據(jù)手冊(cè)中截取的真值表,從中可以發(fā)現(xiàn),讀寫控制和DQM毫無關(guān)系。DQM主要在讀、寫時(shí)起屏蔽作用。讀-寫是通過nWE的電平狀態(tài)來控制的。

          倘若DQM連nBE,需要寫字節(jié)屏蔽信號(hào),則與nWBE沒有分別;讀的時(shí)候,若nWBE無效,nBE是否有效取決于2440的nOE——如果nOE無效,那么nBE完全與nWBE一致,而此處確實(shí)不需要nOE,所以我個(gè)人的結(jié)論認(rèn)為它連nBE也是可行的(未知對(duì)否?需通過寫程序驗(yàn)證)。

          另外還有個(gè)問題:nWBE是什么時(shí)候有效的?讀SDRAM時(shí),需要控制的只是使nWE為高,但這時(shí)候nWBE會(huì)自動(dòng)有效嗎?需要程序控制嗎?(較容易設(shè)想的是nWE為低時(shí)nWBE自動(dòng)根據(jù)讀寫字寬確定是否有效)。這個(gè)問題看看2440的時(shí)序圖就了然了。

          附2440時(shí)序圖(早沒發(fā)現(xiàn)它;早發(fā)現(xiàn)它早清楚了J):

          另外,ROM/SRAM的時(shí)序圖:

          附網(wǎng)友帖子(講得太膚淺):

          這個(gè)一點(diǎn)也不復(fù)雜。 內(nèi)存的這種接法,使它可以以8位訪問,也可以16位訪問,也可以32位訪問 那4個(gè)信號(hào)nWBE3~0,正是字節(jié)選通控制。 按8位訪問,也就是代碼中若有: *(unsigned char *) 0x30000000 = 0x78; 就是一個(gè)字節(jié)寫,這時(shí)只有nBWE0信號(hào)有效 如果是0x30000001,則只有nBWE1有效(低),其它無效(高)。 再舉個(gè)例,如果是按16位訪問呢? 如果是16位訪問,代碼一般就是: *(unsigned short *)0x30000000 = 0x1978; 這是一個(gè)16位寫。但此時(shí)要注意,最低位必須是0,而不能是1,比如地址0x30000001就會(huì)使CPU異常,因?yàn)楸仨?6位對(duì)齊! dat16 = *(unsigned short *)0x30000002; 這是一個(gè)16位讀 在16位訪問時(shí),0x30000000地址寫操作中,nWBE1, 0 = 低,nWBE3, 2 = 高。當(dāng)0x30000002時(shí),則是nWBE3,2為低,nWBE1,0為高(無效) 32位時(shí)則是4字節(jié)對(duì)齊,也就是最低的兩個(gè)地址位A1,A0必須為0,即對(duì)于32位訪問,0x30000001, 0x30000002, 0x30000003都會(huì)導(dǎo)致異常(出錯(cuò)) 對(duì)于32位訪問,0x30000000的下一個(gè)地址是0x30000004,因?yàn)檫@個(gè)地址是字節(jié)地址,但一下子就訪問了0x30000000~0x30000003四個(gè)字節(jié),也就是nWBE3~0四個(gè)信號(hào)一起反應(yīng)?。?! 不同的CPU訪問的機(jī)制是不一樣的,這要具體看手冊(cè)了,是分開片選的


          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();