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