詳解嵌入式系統(tǒng)中DRAM控制器的CPLD解決方案
出處:?jiǎn)纹瑱C(jī)與嵌入式系統(tǒng)應(yīng)用 發(fā)布于:2011-06-22 21:55:38
嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪,適用于應(yīng)用系統(tǒng)對(duì)功能,對(duì)可靠性、成本、體積、功耗有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。嵌入式系統(tǒng)的是嵌入式微處理器。
Intel公司的80C186XL16位嵌入式微處理器廣泛應(yīng)用于電腦終端、程控交換和工控等領(lǐng)域。在該嵌入式微處理器片內(nèi),集成有DRAMRCU單元,即DRAM刷新控制單元。RCU單元可以自動(dòng)產(chǎn)生DRAM刷新總線周期,它工作于微處理器的增益模式下。經(jīng)適當(dāng)編程后,RCU將向?qū)⑻幚砥鞯腂IU(總線接口)單元產(chǎn)生存儲(chǔ)器讀請(qǐng)求。對(duì)微處理器的存儲(chǔ)器范圍編程后,BIU單元執(zhí)行刷新周期時(shí),被編程的存儲(chǔ)器范圍片選有效。
嵌入式微處理器一般就具備以下4個(gè)特點(diǎn):1)對(duì)實(shí)時(shí)任務(wù)有很強(qiáng)的支持能力,能完成多任務(wù)并且有較短的中斷響應(yīng)時(shí)間,從而使內(nèi)部的代碼和實(shí)時(shí)內(nèi)的執(zhí)行時(shí)間減少到限度。2)具有功能很強(qiáng)的存儲(chǔ)區(qū)保護(hù)功能。這是由于嵌入式系統(tǒng)的軟件結(jié)構(gòu)已模塊化,而為了避免在軟件模塊之間出現(xiàn)錯(cuò)誤的交叉作用,需要設(shè)計(jì)強(qiáng)大的存儲(chǔ)區(qū)保護(hù)功能,同時(shí)也有利于軟件診斷。3)可擴(kuò)展的處理器結(jié)構(gòu),以能迅速地開(kāi)發(fā)出滿足應(yīng)用的性能的嵌入式微處理器。4)嵌入式微處理器必須功耗很低,尤其是用于便攜式的無(wú)線及移動(dòng)的計(jì)算和通信設(shè)備中靠電池供電的嵌入式系統(tǒng)更是如此,如需要功耗只有mW甚至μW級(jí)。
存儲(chǔ)器是嵌入式計(jì)算機(jī)系統(tǒng)的重要組成部分之一。通常采用靜態(tài)存儲(chǔ)器,但是在系統(tǒng)需要大容量存儲(chǔ)器的情況下,這種方式將使成本猛增。如果采用DRAM存儲(chǔ)器,則可以大幅度降低系統(tǒng)設(shè)計(jì)成本;但DRAM有復(fù)雜的時(shí)序要求,給系統(tǒng)設(shè)計(jì)帶來(lái)了很大的困難。
為了方便地使用DRAM,降低系統(tǒng)成本,本文提出一種新穎的解決方案:利用80C186XL的時(shí)序特征,采用CPLD技術(shù),并使用VHDL語(yǔ)言設(shè)計(jì)實(shí)現(xiàn)DRAM控制器。
一、80C186XLRCU單元的資源
80C186XL的BIU單元提供20位地址總線,RCU單元也為刷新周期提供20位地址總線。80C186XL能夠產(chǎn)生刷新功能,并將刷新?tīng)顟B(tài)編碼到控制信號(hào)中。

圖1是RCU單元的方框圖。它由1個(gè)9位遞減定時(shí)計(jì)數(shù)器、1個(gè)9位地址計(jì)數(shù)器、3個(gè)控制寄存器和接口邏輯組成。當(dāng)RCU使能時(shí),遞減定時(shí)計(jì)數(shù)器每一個(gè)CLKOUT周期減少1次,定時(shí)計(jì)數(shù)器的值減為1時(shí),則產(chǎn)生刷新總線請(qǐng)求,遞減定時(shí)計(jì)數(shù)器重載,操作繼續(xù)。刷新總線周期具有高優(yōu)先級(jí),旦80C186XL總線有空,就執(zhí)行刷新操作。
設(shè)計(jì)者可將刷新總線周期看成是"偽讀"周期。刷新周期像普通讀周期一樣出現(xiàn)在80C186XL總線上,只是沒(méi)有數(shù)據(jù)傳輸。從引腳BHE/RFSH和A0的狀態(tài)可以判別刷新周期,如表1所列。刷新總線周期的時(shí)序要求如圖2所示。
| 80C186XL引腳 | BHE/RFSH | A0 |
| 引腳狀態(tài) | 1 | 1 |

二、80C186XLDRAM控制器的設(shè)計(jì)與運(yùn)行
DRAM存在著大量、復(fù)雜的時(shí)序要求,其中訪問(wèn)時(shí)間的選擇、等待狀態(tài)以及刷新方法是至關(guān)重要的。DRAM控制器必須正確響應(yīng)80C186XL的所有總線周期,必須能將DRAM的部周期和其它訪問(wèn)周期分辨出來(lái),其訪問(wèn)速度必須足夠快,以避免不必要的等待周期。
CPLD(Complex Programmable Logic Device)復(fù)雜可編程邏輯器件,是從PAL和GAL器件發(fā)展出來(lái)的器件,相對(duì)而言規(guī)模大,結(jié)構(gòu)復(fù)雜,屬于大規(guī)模集成電路范圍。是一種用戶根據(jù)各自需要而自行構(gòu)造邏輯功能的數(shù)字集成電路。其基本設(shè)計(jì)方法是借助集成開(kāi)發(fā)軟件平臺(tái),用原理圖、硬件描述語(yǔ)言等方法,生成相應(yīng)的目標(biāo)文件,通過(guò)電纜("在系統(tǒng)"編程)將代碼傳送到目標(biāo)芯片中,實(shí)現(xiàn)設(shè)計(jì)的數(shù)字系統(tǒng)。
本設(shè)計(jì)采用XC95C36-15CPLD與4Mbits的V53C8258DRAM作范例。15ns的CPLD,速度相對(duì)較高。用它設(shè)計(jì)成的DRAM控制器允許80C186XL的工作速度高達(dá)20MHz,并且XC95C36有異步時(shí)鐘選擇項(xiàng)。
圖3是80C186XLDRAM控制器與存儲(chǔ)器的功能框圖。

DRAM控制器由80C186XL狀態(tài)信號(hào)S2、S1和S0的解碼來(lái)檢測(cè)總線的開(kāi)始、類型和結(jié)束。這些狀態(tài)線是在CLKOUT的上升沿開(kāi)始有效,在CLKOUT的下降沿失效的。DRAM控制器發(fā)出的RAS和CAS信號(hào)應(yīng)該在CLKOUT的下降沿同時(shí)有效,行列地址應(yīng)該在CLKOUT上升沿附近提供。
DRAM控制器應(yīng)該在CLKOUT的兩個(gè)沿都應(yīng)能正常操作。通過(guò)啟用XC95C36的異步時(shí)鐘選擇項(xiàng),每個(gè)XC95C36宏單元可以從可編程與陣列獲得時(shí)鐘。DRAM控制器使用80C186XL的CLKOUT信號(hào)作時(shí)鐘輸入。
DRAM控制器的狀態(tài)圖如圖4所示,狀態(tài)機(jī)A和B的起始條件分別是A0和B0.狀態(tài)機(jī)A初始化DRAM控制器的序列,狀態(tài)機(jī)B終止該序列。

在T2的下降沿,RAS邏輯采樣狀態(tài)機(jī)A的狀態(tài),鎖存的地址線和總經(jīng)狀態(tài)信號(hào)。如果狀態(tài)機(jī)A在A1狀態(tài)(存儲(chǔ)器讀、寫(xiě)或刷新周期)并且總線周期為DRAM使用,則XC95C36插入RAS信號(hào)。
在T2的上升沿,狀態(tài)機(jī)A也采樣鎖存的地址線。如果總線周期被DRAM占用,狀態(tài)機(jī)A將從狀態(tài)A1轉(zhuǎn)移到A2,否則狀態(tài)機(jī)A轉(zhuǎn)換到A3.至此控制轉(zhuǎn)移到狀態(tài)機(jī)B.MUX邏輯采樣RAS和BHE引腳的狀態(tài)。如果RAS有效(指示DRAM在訪問(wèn)),并且總線周期下是刷新周期,XC95C36將插入MUX.MUX在行列地址之間切換,以便進(jìn)行DRAM的讀寫(xiě)操作。
在T3的下降沿,狀態(tài)機(jī)B采樣狀態(tài)機(jī)A.如果狀態(tài)機(jī)A處于狀態(tài)A2(DRAM訪問(wèn))或狀態(tài)A3(存儲(chǔ)器讀或?qū)?,但不是DRAM訪問(wèn)),狀態(tài)機(jī)B從狀態(tài)B0轉(zhuǎn)到B1.如果總線周期是一個(gè)DRAM訪問(wèn)周期,XC95C36繼續(xù)保持RAS有效。CAS邏輯采樣MUX的狀態(tài)、鎖存地址A0、BHE和總線周期狀態(tài)。如果MUX有效(指示DRAM讀或?qū)懀?,并且訪問(wèn)低字節(jié),則XC95C36插入LCAS;如果MUX有效,并且微處理器訪問(wèn)高字節(jié),XC95C36插入U(xiǎn)CAS.DRAM讀訪問(wèn)和DRAM刷新訪問(wèn)不同之處在于:對(duì)刷新來(lái)說(shuō),不需要MUX、UCAS和LCAS.
在T3的上升沿,狀態(tài)機(jī)A等待狀態(tài)機(jī)B中斷此序列。如果MUX有效(DRAM讀或?qū)懀?,它將保持有效?/P>
有下一個(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訪問(wèn)),RAS保持有效;如果狀態(tài)為等待狀態(tài),并且UCAS和LCAS有效(DRAM讀或?qū)懀?,UCAS和LCAS保持有效。
在等待狀態(tài)的上升沿,狀態(tài)機(jī)A繼續(xù)等待狀態(tài)機(jī)B來(lái)中斷此序列。如果MUX有效(DRAM讀或?qū)懀?,則它在T3狀態(tài)里保持有效。
在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訪問(wèn))或A3狀態(tài)轉(zhuǎn)到A0.如果MUX有效,MUX邏輯檢查RAS的狀態(tài);如果RAS無(wú)效(指示一個(gè)終止周期),XC95C36關(guān)閉MUX.
在下一個(gè)CLKOUT下降沿,狀態(tài)機(jī)B無(wú)條件地從狀態(tài)B2轉(zhuǎn)到B0,終止DRAM序列。控制轉(zhuǎn)移給狀態(tài)機(jī)A.
三、80C186XLRCU單元的編程
要使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×106/(512+512×0.05),約為297.
刷新基地址寄存器(RFBASE寄存器)的編程。該寄存器的高7位,規(guī)定了DRAM容量大小。系統(tǒng)使用兩片V53C8258情況下,RFBASE的取值為00H,DRAM占用微處理器的存儲(chǔ)空間的00000H~7FFFFH(512KB)。
通過(guò)將刷新控制寄存器(RFCON寄存器)的REN位置位,來(lái)啟動(dòng)刷新控制單元。
若使用80C186XL的節(jié)電模式,則要求重新編程這些值。在寫(xiě)節(jié)電控制寄存器前,必須先用要時(shí)鐘分頻值去除原先設(shè)置在刷新間隔寄存器的值,來(lái)重新設(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ī)無(wú)法比擬的,并能充分利用大量的PC平臺(tái)軟件。如果采用引腳數(shù)和宏單元較多的XC9672或XC95108CPLD,就可以將D觸發(fā)器(74HC74)、多路地址切換器(74HC157)、數(shù)據(jù)收發(fā)器(74HC245)和地址總線鎖存器(74HC373)等其它分立邏輯器件的功能全部集成到CPLD中,這樣系統(tǒng)集成度和可靠性將更加提高。本解決方案已在家庭電子證券產(chǎn)品中采用,獲得了良好的經(jīng)濟(jì)效益和社會(huì)效益。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 什么是氫氧燃料電池,氫氧燃料電池的知識(shí)介紹2025/8/29 16:58:56
- SQL核心知識(shí)點(diǎn)總結(jié)2025/8/11 16:51:36
- 等電位端子箱是什么_等電位端子箱的作用2025/8/1 11:36:41
- 基于PID控制和重復(fù)控制的復(fù)合控制策略2025/7/29 16:58:24
- 什么是樹(shù)莓派?一文快速了解樹(shù)莓派基礎(chǔ)知識(shí)2025/6/18 16:30:52
- 編碼器的工作原理及作用1
- 超強(qiáng)整理!PCB設(shè)計(jì)之電流與線寬的關(guān)系2
- 三星(SAMSUNG)貼片電容規(guī)格對(duì)照表3
- 電腦藍(lán)屏代碼大全4
- 國(guó)標(biāo)委發(fā)布《電動(dòng)汽車(chē)安全要求第3部分:人員觸電防護(hù)》第1號(hào)修改單5
- 通俗易懂談上拉電阻與下拉電阻6
- 繼電器的工作原理以及驅(qū)動(dòng)電路7
- 電容單位8
- 跟我學(xué)51單片機(jī)(三):?jiǎn)纹瑱C(jī)串口通信實(shí)例9
- 一種三極管開(kāi)關(guān)電路設(shè)計(jì)10
- PCB高頻高速信號(hào)布線設(shè)計(jì)核心規(guī)范(實(shí)操版)
- 基于FPGA的FIR濾波器硬件實(shí)現(xiàn):架構(gòu)優(yōu)化與資源管理
- 工業(yè)自動(dòng)化設(shè)備連接器選型指南
- 提高電源管理IC可靠性的設(shè)計(jì)方法
- MOSFET柵極驅(qū)動(dòng)電路設(shè)計(jì)技巧
- PCB電源完整性設(shè)計(jì)核心規(guī)范(PowerIntegrity)
- 工業(yè)電源與消費(fèi)級(jí)電源的差異
- 機(jī)器學(xué)習(xí)在濾波器設(shè)計(jì)中的應(yīng)用:自動(dòng)化優(yōu)化與性能預(yù)測(cè)
- 連接器失效的常見(jiàn)原因分析
- 過(guò)流、過(guò)壓保護(hù)在電源IC中的實(shí)現(xiàn)









