<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 大容量FLASH在單片機臺標系統中的應用

大容量FLASH在單片機臺標系統中的應用

作者: 時(shí)間:2012-02-10 來(lái)源:網(wǎng)絡(luò ) 收藏

1 引 言

本文引用地址:http://dyxdggzs.com/article/172136.htm

是一種兼有紫外線(xiàn)擦除EPROM和電可擦可編程只讀存儲器(E2PROM)兩者優(yōu)點(diǎn)的新型非易失存儲器。由于它可在線(xiàn)進(jìn)行電可擦除和編程,芯片每區可獨立擦寫(xiě)至少10,000次以上,因而對于需周期性地修改被儲存的代碼和數據表的場(chǎng)合,以及作為一種高密度的、非易失的數據采集和存儲介質(zhì),都是理想的器件選擇。隨著(zhù)其容量越來(lái)越大,對于數字圖像的存儲也具有了一定的能力。筆者所做的機就是用Intel公司生產(chǎn)的64Mbit(8MByte)的FLASH 28F640J5作為圖像的存儲介質(zhì)。下面就以該為例,介紹28F640J5在中的具體。

2 FLASH28F640J5簡(jiǎn)介

2.1 主要性能特點(diǎn)

28F640J5是一種采用ETOXⅡ工藝制成的56引腳的快擦寫(xiě)可用電擦除可編程存儲器,由于首次使用了每單元存儲兩位的技術(shù),因而每位占用的或非門(mén)資源更少,性能價(jià)格比更高。芯片采用分塊結構分成64塊,每塊128kB,這個(gè)特性允許用戶(hù)對其中任意一塊數據進(jìn)行擦除或編程,每塊擦除時(shí)間僅需1秒。在塊擦除過(guò)程中如果需要中斷擦除操作,可暫停擦除,待處理完其它事后再繼續擦除。28F640J5僅需+5V供電電壓,工作電流不大于80mA,典型值為 40mA,備用狀態(tài)時(shí)不大于125μA,典型值為80μA,三態(tài)輸出,與TTL電平兼容??裳h(huán)擦寫(xiě)次數為10萬(wàn)次,一般商業(yè)品工作溫度范圍為-20℃~+70℃。

2.2 芯片結構及引腳信號

芯片采用一種命令用戶(hù)接口CUI(CommandUser Interface)和寫(xiě)狀態(tài)機WSM(WriteState Machine)結構,以此簡(jiǎn)化模塊擦除和編程。命令用戶(hù)接口是微處理器或微控制器與芯片內部操作之間的界面。無(wú)論是模塊擦除還是字節編程,只要向CUI 寫(xiě)入兩個(gè)命令序列,內部的寫(xiě)狀態(tài)機WSM就會(huì )自動(dòng)地定時(shí)執行擦除或編程算法(包括校驗操作),從而減輕了微處理器或微控制器的負擔。另外,為了指示W(wǎng)SM 的狀態(tài)和何時(shí)以及是否成功完成了模塊擦除或字節編程操作,設置了一個(gè)狀態(tài)寄存器SR(State Register)。這樣,狀態(tài)寄存器SR就成了微處理器與寫(xiě)狀態(tài)機之間的接口。芯片引腳A0-A22為地址線(xiàn),當為字操作時(shí)A0不起作用,A1為最低位地址線(xiàn)。DQ0-DQ7為低字節數據總線(xiàn),輸入數據在輸入緩沖區進(jìn)行編程和寫(xiě)操作,輸入命令時(shí)在命令用戶(hù)接口(cui)進(jìn)行寫(xiě)操作,當狀態(tài)機忙時(shí)DQ6-DQ0不起作用,而狀態(tài)寄存器的第7位(SR.7)決定狀態(tài)機的狀態(tài)。DQ8-DQ15為高字節位數據總線(xiàn),在字操作模式中使用到。CE0、CE1、CE2為芯片選通信號,當信號有效時(shí),就激活了器件的控制邏輯、輸入緩沖器、譯碼器和敏感放大器,當器件沒(méi)有選通時(shí),片上電壓自動(dòng)降低到待機電壓。RP#為復位或使電壓回到待機狀態(tài)的信號,當RP#為低時(shí),芯片處于待機模式,此時(shí)芯片禁止寫(xiě)操作,當RP#為高時(shí)可進(jìn)行讀寫(xiě)、擦除等操作,但不要一直將RP#置高,以免影響器件的使用壽命。OE#為輸出選通信號,低電平有效,在讀周期中,輸出緩沖器被選通,數據通過(guò)緩沖器輸出。WE#為寫(xiě)選通信號。STS為狀態(tài)位,它顯示內部狀態(tài)機的狀態(tài)。BYTE#為8位或16 位操作模式選擇信號,當BYTE#為低時(shí),器件工作在8位操作模式,DQ8-DQ15掛起,當BYTE#為高時(shí),器件工作在16位操作模式。VPEN是擦除、編程塊鎖定位操作使能信號,當VPEN<= VPENLK時(shí),存儲器的內容不能改變。

9.jpg

3 與芯片接口的設計

因為80C320的地址線(xiàn)只能有16根,僅能尋址64K外存空間。而28F640的內部芯片地址線(xiàn)有23根,所以在設計時(shí)對FLASH采取分段設計的方法,設有存儲器段寄存器(高位地址寄存器)“WHDZ”。由于的地址空間中既有寄存器,又有存儲器,為了方便起見(jiàn),將單片機的P1.7口定義為寄存器“IO”或存儲器訪(fǎng)問(wèn)的區分標志“IORAM”。當“IORAM”為1時(shí),單片機的低八位地址線(xiàn)有效,通過(guò)EPLD尋址FLASH的高八位地址(實(shí)際為7位),當“IORAM”為0時(shí),單片機80C320尋址存儲器低十六位地址空間。這樣,單片機的64K外存空間連續尋址配合高位地址寄存器 WHDZ使用,存儲器空間的尋址范圍可達16MByte。單片機對存儲器讀寫(xiě)的操作步驟如下:(1)置“IORAM”位,寫(xiě)段地址寄存器“WHDZ”,定義所操作存儲器的高位地址。(2)清“IORAM”位,對選擇的存儲器在段內進(jìn)行讀寫(xiě)。

10.jpg

4 軟件設計

28F640J5的操作命令比較多,共有14條,如表1所示。

表1中的讀陣列、讀標識碼、讀狀態(tài)寄存器、清狀態(tài)寄存器、寫(xiě)緩沖區、塊擦除、字/字節編程、塊擦除掛起、塊擦除繼續是Intel公司28F系列 FLASH的基本命令集,其它命令為28F640的擴展命令集。Intel28F640 FLASH存儲器采用了并行編程技術(shù):在28F640的命令集中由于添加了寫(xiě)緩沖區的命令以及相應的32字節硬件寫(xiě)緩沖資源(程序流程圖如圖2所示),與傳統的字/字節編程方式相比(程序流程圖如圖3所示),寫(xiě)緩沖區方式一次性可寫(xiě)入32字節,在單片機寫(xiě)入確定寫(xiě)緩沖區數據到FLASH的命令D0H后,再由FLASH以并行編程的方式自動(dòng)寫(xiě)入,中間無(wú)需退出寫(xiě)緩沖區命令。而字/字節編程方式每寫(xiě)入一個(gè)數據后需要重新寫(xiě)字/字節編程指令。寫(xiě)緩沖區指令的建立以及并行編程算法的采用,使得寫(xiě)入FLASH的速度比原來(lái)提高了近20倍。由于寫(xiě)緩沖區一次最多寫(xiě)入32個(gè)字節,所以當器件為字節模式寫(xiě)緩沖區時(shí),計數N =00H-1FH,當器件為字模式寫(xiě)緩沖區時(shí),計數N=00H-0FH。為了最大限度地發(fā)揮并行編程的功能,降低器件的功耗,在使用寫(xiě)緩沖區命令時(shí)一般將 A4-A0的地址線(xiàn)置為0,也就是編程起始地址為×0,0000B。

11.jpg

在臺標機系統中,其臺標先是在PC機上用Photoshop、3DMAX等圖像處理軟件做好,然后由PC機傳給臺標機。為了保證傳送速度采用 57600的波特率,這樣,傳送一副128行*128列大小的臺標僅需13秒左右。盡管28F640采用了并行編程技術(shù),但由于波特率太高,數據并不能及時(shí)處理,所以在系統中采用了256K空間的SRAM作為緩沖區。臺標圖像數據首先在SRAM中存儲,待臺標圖像傳送結束再由臺標機自身將數據由SRAM寫(xiě)進(jìn)FLASH。對于滿(mǎn)屏圖像SRAM并不能完全存儲,同時(shí)FLASH的地址空間對用戶(hù)來(lái)說(shuō)并不是完全連續的,芯片的第一塊的前四個(gè)字節和后面塊的前三個(gè)字節都為芯片自身所占用,所以在傳送滿(mǎn)屏圖像時(shí)采用分塊傳送的方法,每次傳送22行數據,其數據量為720列*22行*4=61.875K,4是指每個(gè)像素點(diǎn)信息由R、BG、B、透明度4個(gè)字節組成。結合前面設置的FLASH的高八位地址寄存器WHDZ,每傳一次改變WHDZ的值。對于滿(mǎn)屏圖像從FLASH 傳送到VRAM(視屏存儲器)顯示滿(mǎn)屏圖像也采用分塊傳送的方式,不過(guò)此時(shí)傳送具體數據的方式不同,單片機并不需要將數據從FLASH一個(gè)個(gè)讀出寫(xiě)往 VRAM,它只需將數據的FLASH起始地址,以及VRAM的開(kāi)始點(diǎn)和終止點(diǎn)坐標給出,數據傳送由硬件采用雙字傳送實(shí)現,從而加快了傳送的速度。

12.jpg

5 結束語(yǔ)

在本臺標機系統中,我們用8M的FLASH存儲器存放了10幅像素點(diǎn)128*128的小臺標,4幅動(dòng)畫(huà)臺標,兩幅滿(mǎn)屏圖像,基本上滿(mǎn)足了中小型電視臺的要求.隨著(zhù)存儲器技術(shù)的快速發(fā)展,各大芯片廠(chǎng)商一定會(huì )推出性能價(jià)格比更同、速度更快,容量更大的FLASH存儲器。

參考文獻
1 何立民,單片機系統設計,北京:北京航天航空大學(xué)出版社,1992
2 http://www.intel.com.intel 28f640jd datasheet.1998



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>