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