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