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