基于單片機(jī)的超大容量存儲(chǔ)器接口設(shè)計(jì)
0 引言
隨著信息技術(shù)的發(fā)展,在工業(yè)應(yīng)用領(lǐng)域中需要采集存儲(chǔ)的信息越來(lái)越多,相應(yīng)地使用了各種數(shù)據(jù)采集裝置,以獲得被研究對(duì)象的相關(guān)信息。有時(shí)為了節(jié)約時(shí)間和計(jì)算機(jī)資源,一般并不是在當(dāng)?shù)亓⒓刺幚磉@些信息數(shù)據(jù),而是將數(shù)據(jù)傳向后臺(tái)由后臺(tái)計(jì)算機(jī)進(jìn)行處理、分析。它們之間的數(shù)據(jù)傳輸媒介有有線傳輸、無(wú)線傳輸和硬盤(pán)等幾種型式。當(dāng)采集現(xiàn)場(chǎng)條件不允許時(shí),比如地形復(fù)雜且離后臺(tái)距離較遠(yuǎn),有線、無(wú)線傳輸均不適用。此外,有時(shí)周?chē)h(huán)境會(huì)出現(xiàn)高濕度、高粉塵的惡劣情況,在這種條件下硬盤(pán)驅(qū)動(dòng)器就難以可靠工作。為了滿(mǎn)足實(shí)際生產(chǎn)中在特定條件下數(shù)據(jù)采集系統(tǒng)的要求,通過(guò)長(zhǎng)時(shí)間的研究,設(shè)計(jì)出一種基于單片機(jī)超大容量存儲(chǔ)器l.該存儲(chǔ)器容量可達(dá)4 Mb,基本可以滿(mǎn)足復(fù)雜環(huán)境下信息采集存儲(chǔ)的需要。
1 系統(tǒng)設(shè)計(jì)
基于單片機(jī)存儲(chǔ)器存取數(shù)據(jù)的整體結(jié)構(gòu)框圖如圖1所示。
圖1中單片機(jī)是控制核心,存儲(chǔ)器是控制對(duì)象,所有電路均為二者服務(wù)。由于存儲(chǔ)器是4 Mb的,單片機(jī)的地址線已經(jīng)不夠用了,為了進(jìn)行擴(kuò)展,加入地址擴(kuò)展電路。為了加快存儲(chǔ)器中的數(shù)據(jù)導(dǎo)入計(jì)算機(jī),特加入了并機(jī)接口電路。譯碼電路是為了增加I/O的口數(shù)量。
1.1 中央處理器(CPU)
采用W78E516B單片機(jī),內(nèi)部包含有:64 kBE2PROM,可省去最小系統(tǒng),節(jié)省了并行口。
1.2 存儲(chǔ)器
靜態(tài)存儲(chǔ)器的核心是存儲(chǔ)器芯片,國(guó)內(nèi)市場(chǎng)有2種類(lèi)型:
?。?)芯片內(nèi)部有自帶電池的NVRAM.
(2)自己設(shè)計(jì)掉電保護(hù)電路使用普通的SRAM,DRAM.閃速存儲(chǔ)器是一種非易失性存儲(chǔ)器,即使切斷供電電源以后也能保持所存儲(chǔ)的數(shù)據(jù),在不加電的情況下存儲(chǔ)在內(nèi)的信息可長(zhǎng)達(dá)lO年之久。閃速存儲(chǔ)器可以隨機(jī)尋址、訪問(wèn)時(shí)間很短,能抵抗強(qiáng)烈的碰撞,具有很強(qiáng)的環(huán)境適應(yīng)性,可靠性好,平均無(wú)故障時(shí)間可達(dá)數(shù)百萬(wàn)小時(shí)。因此可以取代硬盤(pán)用于可移動(dòng)設(shè)備、工業(yè)電子產(chǎn)品領(lǐng)域及惡劣環(huán)境中,其性能價(jià)格比很好。系統(tǒng)選用Atmel公司生產(chǎn)的閃速存儲(chǔ)AT29C040芯片,它是國(guó)外新一代產(chǎn)品,容量可達(dá)4 Mb,采用分頁(yè)管理方式,這種芯片的讀/寫(xiě)與一般RAM有所不同。對(duì)芯片的基本操作如下:
讀:當(dāng)CE和OE為低,WE為高時(shí),由地址決定的存儲(chǔ)器單元將數(shù)據(jù)輸出;當(dāng)CE或OE為高時(shí),輸出為高阻態(tài)。這種雙線控制為設(shè)計(jì)者防止總線爭(zhēng)用提供了靈活性。
字節(jié)裝入:用于輸入要編程的128 B(一個(gè)扇區(qū))數(shù)據(jù)或保護(hù)數(shù)據(jù)軟件代碼。當(dāng)OE為高時(shí),對(duì)WE加一負(fù)脈沖同時(shí)CE為低,或?qū)E加負(fù)脈沖同時(shí)WE為低時(shí),將地址在CE或WE首先下降的一個(gè)下降沿鎖定,數(shù)據(jù)由CE和WE首先上升的上升沿鎖定。
編程:芯片編程以扇區(qū)為單位。如果要改變扇區(qū)中的一個(gè)數(shù)據(jù),扇區(qū)中所有的數(shù)據(jù)都要重新裝入芯片,扇區(qū)中所有沒(méi)有裝入的字節(jié)在編程中都將被擦寫(xiě)為FFH.一旦一個(gè)扇區(qū)中的所有字節(jié)都裝入芯片,芯片立即在編程周期中對(duì)其進(jìn)行編程,在第一個(gè)字節(jié)裝入后,后續(xù)字節(jié)以同樣方式裝入。每一個(gè)新裝入字節(jié)的WE由高到低的跳變必須在前一個(gè)字節(jié)WE信號(hào)由低變高的150μs以?xún)?nèi)。如果在上個(gè)裝入字節(jié)后150μs內(nèi)沒(méi)有檢測(cè)到WE由高向低跳變,裝入周期終止,內(nèi)部編程周期開(kāi)始。A7~A16確定扇區(qū)地址,在WE由高到低的變化中必須有效,A0~A6確定扇區(qū)內(nèi)的字節(jié)地址,裝入字節(jié)可以任意次序,不必順序裝入。
軟件數(shù)據(jù)保護(hù):在AT29C04O中應(yīng)用了軟件控制保護(hù)數(shù)據(jù)的功能,一旦對(duì)芯片使用軟件保護(hù),則在芯片編程之前必須按一定算法進(jìn)行操作。軟件保護(hù)可以由用戶(hù)啟動(dòng)或停止。啟動(dòng)軟件保護(hù)由一組3個(gè)編程命令組成,對(duì)特定地址送特定數(shù)據(jù)。啟動(dòng)軟件保護(hù)以后每次對(duì)芯片編程都必須在編程周期前送相同的3個(gè)編程命令。一旦啟動(dòng)軟件保護(hù),它將一直保持直到執(zhí)行停止命令,上電掉電不能改變軟件保護(hù)的狀態(tài)。因此在電源變化期間,為防止誤編程,啟動(dòng)保護(hù)后,沒(méi)有3 B命令的寫(xiě)操作無(wú)效,但在twc期間,讀操作為有效操作。
硬件數(shù)據(jù)保護(hù):AT29C040硬件防止誤編程通過(guò)以下途徑:
如果電源電壓低于3.8 V,禁止編程;
電源電壓上電到達(dá)3.8 V以上后,芯片自動(dòng)延時(shí)5 ms后才開(kāi)始編程;
OE為低或CE為高或WE為高禁止編程周期;
如果WE或CE是小于15 ns的脈沖則不會(huì)啟動(dòng)編程周期。
1.3 接口電路設(shè)計(jì)
通過(guò)上述分析,設(shè)計(jì)大容量存儲(chǔ)器的接口電路如圖2所示。
該接口電路圖為實(shí)際工程應(yīng)用中的剪切圖,其中單片機(jī)采用的是華邦W78E516B,由于8位單片機(jī)I/O口數(shù)量有限,在工程應(yīng)用中一般不能滿(mǎn)足要求(圖中沒(méi)連線的I/O口已被用作其他用途),因此采用74LS138進(jìn)行了擴(kuò)展。由于29C040為4 Mb的容量,所以單片機(jī)的16位數(shù)據(jù)線已不能滿(mǎn)足要求,為了進(jìn)行大容量存儲(chǔ)器的擴(kuò)展,采用8255來(lái)擴(kuò)展存儲(chǔ)器的地址線及訪問(wèn)的范圍00000~7FFFF.在此基礎(chǔ)上,可以設(shè)計(jì)存儲(chǔ)容量從4 Mb到數(shù)Gb的存儲(chǔ)器。
評(píng)論