- 相關(guān)推薦
基于PLD的嵌入式系統(tǒng)外存模塊設(shè)計(jì)
摘要:以MCS-96系列單片機(jī)為例,介紹了一種采用可編程邏輯器件(PLD)的存儲(chǔ)器模塊的設(shè)計(jì)方案,該模塊包含了Flash閃存和RAM。提出了一種方便的存儲(chǔ)器擴(kuò)展方法,該方法有效地解決了嵌入式系統(tǒng)尤其是數(shù)據(jù)采集、存儲(chǔ)等系統(tǒng)中存在的存儲(chǔ)空間不足問(wèn)題。該方案具有通用性強(qiáng)、讀寫(xiě)控制簡(jiǎn)單等特點(diǎn),具有很強(qiáng)的實(shí)用性。關(guān)鍵詞:PLD 存儲(chǔ)器 RAM 單片機(jī) 閃存
在嵌入式系統(tǒng)中,由于設(shè)計(jì)成本和體積等因素的限制,往往會(huì)使CPU(包括DSP、單片機(jī)等)存在地址空間不足的問(wèn)題。很多文獻(xiàn)(如參考文獻(xiàn)[1]都有相關(guān)的存儲(chǔ)器擴(kuò)展方法的介紹, 目前已有的方法通常是借助于CPU的I/0接口產(chǎn)生片選或者高位地址信號(hào),利用這些信號(hào)將內(nèi)存分頁(yè),但當(dāng)頁(yè)間跳轉(zhuǎn)時(shí)將給程序設(shè)計(jì)帶來(lái)不便。對(duì)于沒(méi)有內(nèi)部存儲(chǔ)器并且采用統(tǒng)一編址的CPU,如80C196KC20[1],這種頁(yè)間切換將造成CPU無(wú)法繼續(xù)執(zhí)行當(dāng)前程序而產(chǎn)生錯(cuò)誤(見(jiàn)圖1)。在CPU執(zhí)行頁(yè)面切換操作后,本應(yīng)該繼續(xù)執(zhí)行頁(yè)面1的指令,可是卻錯(cuò)誤地執(zhí)行了頁(yè)面2中的相應(yīng)指令,這種結(jié)果不是所需要的。因此尋找一個(gè)有效的存儲(chǔ)器擴(kuò)展方法是實(shí)際應(yīng)用中亟待解決的問(wèn)題。
1 存儲(chǔ)器擴(kuò)展方法解決方案
在對(duì)MCS-96系列單片機(jī)的使用中發(fā)現(xiàn),64K字節(jié)的存儲(chǔ)空間用來(lái)存放程序能滿足絕大多數(shù)的使用需求(通常用戶的應(yīng)用程序不到10K字節(jié)),但如果使用其進(jìn)行數(shù)據(jù)存儲(chǔ)控制,則會(huì)帶來(lái)存儲(chǔ)空間上的嚴(yán)重不足。通過(guò)對(duì)實(shí)際應(yīng)用的統(tǒng)計(jì)分析發(fā)現(xiàn),在很多情況下,數(shù)據(jù)的
存取僅限于順序的連續(xù)操作。利用這個(gè)特點(diǎn),可以對(duì)數(shù)據(jù)存儲(chǔ)空間進(jìn)行簡(jiǎn)化設(shè)計(jì),具體的說(shuō)就是通過(guò)對(duì)同一個(gè)地址連續(xù)讀或者連續(xù)寫(xiě)來(lái)進(jìn)行批量數(shù)據(jù)的存取,從而節(jié)省地址空間。在16位CPU中,可以將任何一段64K字(2的16次方)的存儲(chǔ)空間映射到兩個(gè)地址(一個(gè)作為讀取的位置,一個(gè)作為寫(xiě)入的位置),采用這樣的映射方法可以將內(nèi)存最大擴(kuò)展到2G字(2的31次方),但這樣的設(shè)計(jì)同時(shí)也帶來(lái)了諸多邏輯控制上的困難。隨著可編程邏輯器件(PLD)包括FPGA、EPLDE4[4]、CPLD等的迅速發(fā)展,數(shù)字邏輯電路的設(shè)計(jì)得到了大大簡(jiǎn)化,從而使這種存儲(chǔ)器擴(kuò)展想法可以得到實(shí)現(xiàn)。
2 存儲(chǔ)器擴(kuò)展方法的具體實(shí)現(xiàn)
下面以筆者設(shè)計(jì)的系統(tǒng)為例來(lái)詳細(xì)說(shuō)明這種存儲(chǔ)器擴(kuò)展方法的實(shí)現(xiàn)。該系統(tǒng)是一個(gè)多功能數(shù)據(jù)采集設(shè)備,能夠以最高40k次/s的速率進(jìn)行12位A/D轉(zhuǎn)換,并且可以將采集到的數(shù)據(jù)保存至Flash ROM中,以防止掉電丟失。技術(shù)參數(shù)要求如下:①最多可以保存32K字節(jié)的采樣數(shù)據(jù);②可以同時(shí)存儲(chǔ)4段系統(tǒng)工作配置程序,每段4K字節(jié),共計(jì)16K字節(jié);③由于Flash ROM自身的特點(diǎn),在寫(xiě)人數(shù)據(jù)后的編程階段不能進(jìn)行讀寫(xiě)操作,因此為了保證系統(tǒng)采樣和單片機(jī)運(yùn)行的正常進(jìn)行,需要額外增加32K字節(jié)的RAM作為數(shù)據(jù)緩存;④系統(tǒng)程序、中斷服務(wù)程序等共占用56K字節(jié)(Flash ROM和RAM各保留28K字節(jié)),總計(jì)需要存儲(chǔ)空間136K字節(jié)。這個(gè)需求已經(jīng)超過(guò)96系列單片機(jī)的64K字節(jié)尋址范圍,為此設(shè)計(jì)了一個(gè)存儲(chǔ)器模塊,其結(jié)構(gòu)如圖2所示。
圖2
Flash ROM采用ATMEL公司的AT29C1024,容量為128K字節(jié),數(shù)據(jù)線寬度為16位;RAM存儲(chǔ)器由兩片CY7C199組成,數(shù)據(jù)線寬度為16位,容量為64K字節(jié)。80C196單片機(jī)的ALE為地址鎖存信號(hào),/WE為寫(xiě)有效信號(hào),/RD為讀有效信號(hào),READY為準(zhǔn)備就緒信號(hào)。MCS-96系列單片機(jī)支持8位和16位兩種工作模式,為了提高系統(tǒng)的
[1] [2] [3] [4] [5]
【基于PLD的嵌入式系統(tǒng)外存模塊設(shè)計(jì)】相關(guān)文章:
基于嵌入式列車油量遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)04-28
基于FPGA的嵌入式系統(tǒng)FLASH接口設(shè)計(jì)與實(shí)現(xiàn)05-02
基于JN5121無(wú)線ZiGBee模塊瓦斯巡檢系統(tǒng)設(shè)計(jì)05-02
基于ARM的船舶現(xiàn)場(chǎng)監(jiān)控模塊的設(shè)計(jì)05-02
基于FPGA的數(shù)字系統(tǒng)設(shè)計(jì)04-27
基于VB的GPS信息數(shù)據(jù)的處理模塊設(shè)計(jì)05-01
基于OpenGL的城市管線GIS系統(tǒng)三維模塊開(kāi)發(fā)04-27
基于AVR的嵌入式數(shù)字圖像水印檢測(cè)系統(tǒng)04-28