張振華,夏 琳
(中國(guó)電子科技集團(tuán)公司第四十七研究所,沈陽110032)
·大規(guī)模集成電路設(shè)計(jì)、制造與應(yīng)用·
A28C040 4M位E2PROM存儲(chǔ)器功能驗(yàn)證系統(tǒng)
張振華,夏 琳
(中國(guó)電子科技集團(tuán)公司第四十七研究所,沈陽110032)
驗(yàn)證系統(tǒng)分別以A28C040芯片作為程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器進(jìn)行了全功能驗(yàn)證。通過不同命令分別驗(yàn)證讀程序存儲(chǔ)器、讀寫數(shù)據(jù)存儲(chǔ)器、解鎖和擦除數(shù)據(jù)存儲(chǔ)器等。驗(yàn)證系統(tǒng)控制CPU為AT89S52單片機(jī),硬件主要包含串口通信、液晶顯示、地址編碼等模塊。
驗(yàn)證系統(tǒng);8051系列;串口通信
A28C040是一款電可擦寫的只讀存儲(chǔ)器芯片,它含有4M位的存儲(chǔ)單元,也即512K×8bit的存儲(chǔ)量。該芯片可應(yīng)用于計(jì)算機(jī)系統(tǒng)中作只讀程序存儲(chǔ)器或非易失性數(shù)據(jù)存儲(chǔ)器,芯片支持連續(xù)最多256字節(jié)的寫操作,寫時(shí)間最大10ms,另外還支持頁擦除和全片擦除功能,擦除時(shí)間最大不超過10ms。根據(jù)芯片功能設(shè)計(jì)的驗(yàn)證系統(tǒng)中,使用了兩片A28C040,一片作為程序存儲(chǔ)器,另外一片作為數(shù)據(jù)存儲(chǔ)器;CPU芯片選擇8051系列Atmel公司的AT89S52作為系統(tǒng)控制器。
驗(yàn)證系統(tǒng)中采用的8051系列8位單片機(jī)最大訪問程序空間為64K,被驗(yàn)證的A28C040為512K,為了達(dá)到全地址程序訪問功能,方案中采用撥碼開關(guān)編碼后作為選擇程序執(zhí)行的段。根據(jù)8051的外部程序、數(shù)據(jù)存儲(chǔ)器的讀寫時(shí)序,系統(tǒng)中需要進(jìn)行低位地址鎖存,兼顧兩個(gè)存儲(chǔ)器芯片讀寫信號(hào)的時(shí)序,增加組合邏輯芯片控制端。硬件設(shè)計(jì)上保證能隨機(jī)讀取、擦除或?qū)懩承┐鎯?chǔ)器區(qū)域。采用RS232串口進(jìn)行通信,通過串口軟件傳輸命令和監(jiān)測(cè)讀取的數(shù)據(jù),另外硬件上增加一個(gè)顯示模塊方便觀察程序正在執(zhí)行的狀態(tài)。系統(tǒng)功能驗(yàn)證框圖如圖1所示。

圖1 系統(tǒng)功能驗(yàn)證框圖
3.1 電源電路
為了安全和攜帶方便,采用9V電源適配器給系統(tǒng)供電。考慮交流和直流適配器的通用性,設(shè)計(jì)上增加整流橋;A28C040的工作電壓范圍為4.5V-5.5V;硬件設(shè)計(jì)上采用LM7805穩(wěn)壓到5V給整個(gè)系統(tǒng)供電,具體見圖2穩(wěn)壓電路。

圖2 穩(wěn)壓電路
3.2 通信接口
AT89S52單片機(jī)內(nèi)部帶有一個(gè)UART的全雙工串行通信模塊,管腳分配在P3.0-RXD和P3.1-TXD,輸出為TTL電平,計(jì)算機(jī)本身帶有DB9串行口,兩者之間需要一個(gè)電平轉(zhuǎn)換芯片以實(shí)現(xiàn)串口通信;轉(zhuǎn)換芯片選擇MAX232,詳細(xì)電路如圖3所示。

圖3 MAX232串口通信電路
3.3 程序存儲(chǔ)器接口電路
8051系統(tǒng)最大支持64K系統(tǒng)程序,A28C040最多可以放置8段程序。為了驗(yàn)證各個(gè)區(qū)(Sector)沒有錯(cuò)誤且具有統(tǒng)一性,因此設(shè)計(jì)八段相同的程序。為了標(biāo)示執(zhí)行的程序段,上電后單片機(jī)會(huì)通過串口傳送給PC機(jī),波特率為9600,顯示處在哪個(gè)Sector運(yùn)行,顯示內(nèi)容為:“8051 Verification System!—Start from Sector3”;編譯完成之后合并成一個(gè)二進(jìn)制文件,燒寫到整個(gè)A28C040芯片中,讓程序分別在不同的sector執(zhí)行,最后結(jié)果應(yīng)當(dāng)一致。
上電后從某段開始執(zhí)行程序,程序段由撥碼開關(guān)進(jìn)行選擇,經(jīng)過74HC148編碼之后,連接到程序存儲(chǔ)器的最高三位地址,詳細(xì)電路如圖4所示。
程序存儲(chǔ)器的其他地址和數(shù)據(jù)與CPU接口設(shè)計(jì):設(shè)計(jì)電路之前,首先要考慮存儲(chǔ)器的讀寫時(shí)序如何與51系列的單片機(jī)時(shí)序進(jìn)行銜接,A28C040的讀寫時(shí)序如圖5所示;8051系列單片機(jī)的P0口地址、數(shù)據(jù)線分時(shí)復(fù)用,因此低八位地址需要鎖存才能產(chǎn)生A28C040的低八位地址,地址被鎖存后,P0口作為數(shù)據(jù)線使用。硬件設(shè)計(jì)上鎖存芯片采用74HC573,不選擇74HC373是因?yàn)閮烧吖δ芟嗤枪苣_排列不一樣,74HC573芯片在電路板布局上要比74HC373方便很多。單片機(jī)的P2口單獨(dú)作為高八位地址與存儲(chǔ)器的地址線連接。

圖4 段地址編碼電路
關(guān)鍵的讀控制信號(hào),設(shè)計(jì)思想如下:雖然作為程序存儲(chǔ)器可以當(dāng)作指令被CPU自動(dòng)讀入控制器內(nèi),但CPU還可以通過MOVC、MOVX等指令,讀取程序段的指令數(shù)據(jù),因此既要關(guān)心PSEN信號(hào),也要考慮到RD信號(hào),設(shè)計(jì)電路見圖6。程序存儲(chǔ)器由于不能被寫操作,因此寫信號(hào)直接被上拉成高電平。
3.4 數(shù)據(jù)存儲(chǔ)器接口電路
單獨(dú)作為數(shù)據(jù)存儲(chǔ)器的A28C040與CPU連接相對(duì)比較簡(jiǎn)單,其寫時(shí)序如下:地址線A15—A0、數(shù)據(jù)線D7-D0,與程序存儲(chǔ)器連接相同,不同的地方在于高三位地址和控制線,具體設(shè)計(jì)如圖7所示。
3.5 顯示電路
系統(tǒng)中的顯示部分采用LCD16201模塊,該模塊主要由液晶驅(qū)動(dòng)芯片BM1621和液晶顯示單元共同組成。寫時(shí)序?yàn)镾PI協(xié)議,寫操作時(shí)序如圖8所示,當(dāng)片選CS為低時(shí),使能芯片然后才可以寫入數(shù)據(jù),寫信號(hào)的上升沿打入數(shù)據(jù),下圖時(shí)序中的101代表此次操作為寫寄存器,接下來跟著一個(gè)6位的串行寄存器地址A5-A0和一個(gè)4位的串行數(shù)據(jù)D0-D3。使用單片機(jī)普通I/O口可以模擬該時(shí)序來驅(qū)動(dòng)芯片,因此硬件設(shè)計(jì)上模塊與CPU接口也比較簡(jiǎn)單,與CPU的P1.0-P1.2直接相連。

圖5 A28C040讀寫時(shí)序

圖6 程序存儲(chǔ)器接口電路

圖7 數(shù)據(jù)存儲(chǔ)器接口電路

圖8 BM1621寫操作時(shí)序
3.6 單片機(jī)復(fù)位和振蕩電路
單片機(jī)復(fù)位電路采用上電復(fù)位,另外支持手動(dòng)復(fù)位;振蕩電路部分由于需要串口通信,因此選擇可以產(chǎn)生多種波特率的11.0592M晶體,為了使時(shí)鐘穩(wěn)定、抗干擾性強(qiáng),匹配電容選擇30PF;為了調(diào)試時(shí)方便,EA管腳設(shè)計(jì)成可用短路塊選擇片內(nèi)還是片外模式;具體電路如圖9所示。

圖9 單片機(jī)復(fù)位和振蕩電路
4.1 軟件設(shè)計(jì)方案
軟件設(shè)計(jì)上根據(jù)芯片的功能,分別設(shè)計(jì)了以下程序模塊:程序存儲(chǔ)器讀操作、數(shù)據(jù)存儲(chǔ)器讀操作、解鎖操作、寫操作、頁擦除和全片擦除。通過串口調(diào)試助手發(fā)送給驗(yàn)證系統(tǒng)相關(guān)命令,然后驗(yàn)證系統(tǒng)解析后,在液晶顯示和通信上分別給出響應(yīng),詳細(xì)的命令操作以及含義如下:
(1)讀取程序存儲(chǔ)器一頁數(shù)據(jù)命令:>CXXX
讀取程序存儲(chǔ)器XXX頁的數(shù)據(jù),通過RS232把數(shù)據(jù)返回到串口調(diào)試助手;
如發(fā)送命令:>C003,下位機(jī)返回程序存儲(chǔ)器芯片003頁的程序。
(2)讀取數(shù)據(jù)存儲(chǔ)器一頁數(shù)據(jù)命令:>PXXX
讀取數(shù)據(jù)存儲(chǔ)器的XXX頁,通過RS232把一頁數(shù)據(jù)傳輸?shù)酱谡{(diào)試助手;
如發(fā)送命令:>P008,下位機(jī)返回以ASCⅡ的格式返回?cái)?shù)據(jù)存儲(chǔ)器第8頁的數(shù)據(jù)。
(3)擦除命令:>EXXX
擦除數(shù)據(jù)存儲(chǔ)器的XXX頁,執(zhí)行完命令后,該頁數(shù)據(jù)全為00
如發(fā)送命令:>E008
(4)連寫多個(gè)數(shù)據(jù)命令:>W(wǎng)XYAAALL
該命令對(duì)于奇偶地址寫入不同的數(shù)據(jù),
偶地址寫入的數(shù)據(jù)是XX(X為0-F的十六進(jìn)制數(shù))
奇地址寫入的數(shù)據(jù)是YY(Y為0-F的十六進(jìn)制數(shù))
AAA為十六進(jìn)制地址,即表示數(shù)據(jù)存儲(chǔ)器從AAA00地址開始寫入數(shù)據(jù)XXYY
LL為寫入數(shù)據(jù)的長(zhǎng)度(00代表寫入256個(gè)字節(jié))
如發(fā)送命令:>W(wǎng)5ACD570表示寫入交叉數(shù)據(jù)55H,AAH
從CD500H地址開始連續(xù)寫入70H個(gè)數(shù)據(jù)
(5)解除保護(hù)命令:>T10
邏輯設(shè)計(jì)為上電即為保護(hù),因此只有使用該命令解除保護(hù)之后,數(shù)據(jù)存儲(chǔ)器才能寫入數(shù)據(jù)
(6)單個(gè)字節(jié)寫命令:>S3A01030
寫入3A數(shù)據(jù)到數(shù)據(jù)存儲(chǔ)器的01030H地址
(7)連寫多頁命令:>MXXXNAB
從數(shù)據(jù)存儲(chǔ)器的XXX頁開始寫入數(shù)據(jù)
終止地址為:(1)N=1-F代表寫入頁的個(gè)數(shù)
(2)N=0代表從XXX頁以后,寫滿整個(gè)SECTOR
寫入的數(shù)據(jù)為AABB
4.2 程序流程圖
驗(yàn)證系統(tǒng)程序使用C語言進(jìn)行編程,編譯軟件為KeilUv2;所設(shè)計(jì)程序的流程圖如圖10所示。

圖10 程序流程圖
該驗(yàn)證系統(tǒng)分別從硬件和軟件方面綜合考慮A28C040的功能時(shí)序,并兼顧模擬用戶的應(yīng)用環(huán)境,對(duì)芯片在解鎖、讀、寫、頁擦除和全片擦除等功能進(jìn)行了全面驗(yàn)證。其中國(guó)外樣片AT28C040與我所設(shè)計(jì)的A28C040在該驗(yàn)證系統(tǒng)上,驗(yàn)證結(jié)果一致。
[1]沈紅衛(wèi).單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)實(shí)例與分析[M].北京:北京航空航天大學(xué)出版社,2003-1.
[2]周立功,夏宇聞.單片機(jī)與CPLD綜合應(yīng)用技術(shù)[M].北京:北京航空航天大學(xué)出版社,2003-8.
[3]趙亮,侯國(guó)銳.單片機(jī)C語言編程與實(shí)例[M].北京:人民郵電出版社發(fā)行,2003-9.
Verification System of A28C040 4M Bit E2PROM Memory
ZHANG Zhen-hua,XIA Lin
(The 47th Research Institute of China Electronics Technology Group Corporation,Shenyang 110032,China)
The A28C040 chip is fully verified as the program memory and data memory in the verification system.The chips,including read program memory,read and write datamemory,unlock and erasedatamemory,etc.are verified by different command.AT89S52 is chosen as the system control unit.The hardware consists of serial port communication,LCD display,address encoding and othermodule.
The system of verification;8051;Serial port communication
10.3969/j.issn.1002-2279.2014.03.001
TN4
:B
:1002-2279(2014)03-0001-04
張振華(1982-),男,山東省陽谷縣人,學(xué)士,工程師,主研方向:數(shù)字集成電路設(shè)計(jì)。
2013-09-17