單片機(jī)控制的動(dòng)態(tài)數(shù)據(jù)緩存器的DRAM刷新過程與管理
動(dòng)態(tài)存儲(chǔ)器的一個(gè)顯著特點(diǎn)就是存儲(chǔ)的數(shù)據(jù)具有易失性,必須在規(guī)定時(shí)間內(nèi)對(duì)其刷新。在本系統(tǒng)中采用8031的定時(shí)器1定時(shí)中斷實(shí)現(xiàn)對(duì)DRAM的刷新。其定時(shí)中斷刷新的程序如下:
刷新時(shí),先將Tl置1,在DEC 70H語句的取指周期,8031從外部程序存儲(chǔ)器EPROM取指令,PSEN有效,此時(shí)Tl為高,使RAS有效;同時(shí),存儲(chǔ)指令的EPROM地址也送到了地址線上,其低9位也作為行地址同時(shí)送給DRAM,實(shí)現(xiàn)對(duì)DRAM -行的刷新。由于DEC 70H語句是對(duì)內(nèi)部RAM的操作,此時(shí)地址線上不會(huì)有其他地址,連續(xù)執(zhí)行OlOOH條DEC 70H語句(0200H個(gè)字節(jié)),可實(shí)現(xiàn)對(duì)1 MB DRAM的刷新(1 MB DRAM需9位刷新地址)。
進(jìn)入中斷程序,立即重設(shè)定時(shí)器1參數(shù)并打開定時(shí)器,使定時(shí)連續(xù)。定時(shí)器1的計(jì)數(shù)輸入信號(hào)來自內(nèi)部的時(shí)鐘脈沖,計(jì)數(shù)速率是振蕩器頻率的1/12。若用12 MHz石英晶體作振蕩器,則計(jì)數(shù)速率為1MHz。設(shè)定時(shí)參數(shù)為FFFFH - F63BH一09C4H,則定時(shí)刷新周期為2.5 ms。目前一般1 MB DRAM刷新周期為16 ms,所以定時(shí)參數(shù)值還可設(shè)置得大些。
數(shù)據(jù)緩存器管理
數(shù)據(jù)緩存器的管理可采用循環(huán)隊(duì)列的方式。由主程序向上位機(jī)發(fā)送數(shù)據(jù),并根據(jù)隊(duì)列的頭尾指針位置及前后標(biāo)志判斷隊(duì)列的情況,利用中斷接收新數(shù)據(jù)和刷新DRAM。這種邊接收、邊發(fā)送的運(yùn)行方式可使緩存器保持高效率。刷新DRAM的中斷源級(jí)別應(yīng)高于接收數(shù)據(jù)的中斷申請(qǐng),以保證DRAM的按時(shí)刷新。