嵌入式系統(tǒng)中DRAM控制器的CPLD解決方案
有下一個(gè)降沿,狀態(tài)機(jī)B采樣總線狀態(tài)信號(hào)。如果狀態(tài)信號(hào)仍然有效,則此狀態(tài)為等待狀態(tài)Tw,狀態(tài)機(jī)B保持在狀態(tài)B1。如果這個(gè)狀態(tài)是等待狀態(tài),并且RAS有效(DRAM訪問),RAS保持有效;如果狀態(tài)為等待狀態(tài),并且UCAS和LCAS有效(DRAM讀或?qū)懀琔CAS和LCAS保持有效。
在等待狀態(tài)的上升沿,狀態(tài)機(jī)A繼續(xù)等待狀態(tài)機(jī)B來中斷此序列。如果MUX有效(DRAM讀或?qū)懀瑒t它在T3狀態(tài)里保持有效。
如果微處理器狀態(tài)信號(hào)無效,這個(gè)狀態(tài)則是一個(gè)T4狀態(tài),狀態(tài)機(jī)B從B1轉(zhuǎn)到B2.如果狀態(tài)是一個(gè)T4狀態(tài),并且RAS有效(DRAM訪問),則RAST4狀態(tài),并且RAS有效(DRAM訪問),則RAS邏輯也檢測(cè)無效狀態(tài)信號(hào),并且XC95C36關(guān)閉RAS信號(hào);如果狀態(tài)是一個(gè)T4狀態(tài),并且UCAS和LCAS有效(DRAM讀或?qū)懀?,則CAS邏輯也采樣總線狀態(tài)信號(hào);如果狀態(tài)信號(hào)無效,則XC95C36關(guān)閉UCAS和LCAS信號(hào)。
在T4的上升沿,狀態(tài)機(jī)A采樣狀態(tài)機(jī)B的狀態(tài)。在狀態(tài)機(jī)B處于B2狀態(tài)的情況下,狀態(tài)機(jī)A從A2狀態(tài)(DRAM訪問)或A3狀態(tài)(存儲(chǔ)器讀或?qū)懀皇荄RAM訪問)轉(zhuǎn)到A0。如果MUX有效,MUX邏輯檢查RAS的狀態(tài);如果RAS無效(指示一個(gè)終止周期),XC95C36關(guān)閉MUX。
在下一個(gè)CLKOUT下降沿,狀態(tài)機(jī)B無條件地從狀態(tài)B2轉(zhuǎn)到B0,終止DRAM序列??刂妻D(zhuǎn)移給狀態(tài)機(jī)A。
三、80C186XL RCU單元的編程
要使DRAM正常工作,就必須對(duì)80C186XL中與DRAM刷新有關(guān)的寄存器進(jìn)行正確編程。這些寄存器包括:刷新時(shí)鐘間隔寄存器(RFTIME寄存器)、刷新基地址寄存器(RFBASE寄存器)和刷新控制寄存器(RFCON寄存器)。
刷新時(shí)鐘間隔寄存器(RFTIME寄存器)的編程公式為:Trefresh×fcpu/(Rrow+Rrows×補(bǔ)償因子)。V53C8258的技術(shù)參數(shù)規(guī)定,其刷新周期Trefresh為8ms,存儲(chǔ)陣列行數(shù)Rrows為512。考慮到RCU取得總線控制權(quán)的延時(shí),補(bǔ)償因子取0.05。因此,微處理器在fcpu=20MHz工作頻率下,RFTIME寄存器的取值為:0.008×20×10 6/(512+512×0.05),約為297.
刷新基地址寄存器(RFBASE寄存器)的編程。該寄存器的高7位,規(guī)定了DRAM容量大小。系統(tǒng)使用兩片V53C8258情況下,RFBASE的取值為00H,DRAM占用微處理器的存儲(chǔ)空間的00000H~7FFFFH(512KB)。
最后通過將刷新控制寄存器(RFCON寄存器)的REN位置位,來啟動(dòng)刷新控制單元。
若使用80C186XL的節(jié)電模式,則要求重新編程這些值。在寫節(jié)電控制寄存器前,必須先用要時(shí)鐘分頻值去除原先設(shè)置在刷新間隔寄存器的值,來重新設(shè)置寄存器。
四、結(jié)束語(yǔ)
現(xiàn)在DRAM、CPLD的價(jià)格非常低,這樣設(shè)計(jì)者有機(jī)會(huì)在嵌入式計(jì)算機(jī)系統(tǒng)設(shè)計(jì)中考慮采用DRAM。80C186XL嵌入式微處理器廣泛應(yīng)用于嵌入式計(jì)算機(jī)、程控通信和工業(yè)控制系統(tǒng)中,具有良好的性價(jià)比,其性能和功能是80C31、80C196等單片機(jī)無法比擬的,并能充分利用大量的PC平臺(tái)軟件。本解決方案已在家庭電子證券產(chǎn)品中采用,獲得了良好的經(jīng)濟(jì)效益和社會(huì)效益。
掌握CPLD技術(shù)和VHDL語(yǔ)言設(shè)計(jì)技巧是提升產(chǎn)品技術(shù)含量的重要途徑。上述CPLD還留在一些引腳和內(nèi)部資源未使用,只要設(shè)計(jì)者將VHDL源代碼稍微作一些修改,就可以用這些引腳控制新增加的DRAM,提供總線準(zhǔn)備輸出信號(hào)或DMA響應(yīng)信號(hào)。
如果采用引腳數(shù)和宏單元較多的XC9672或XC95108CPLD,就可以將D觸發(fā)器(74HC74)、多路地址切換器(74HC157)、數(shù)據(jù)收發(fā)器(74HC245)和地址總線鎖存器(74HC373)等其它分立邏輯器件的功能全部集成到CPLD中,這樣系統(tǒng)集成度和可靠性將更加提高。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論