新聞中心

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

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

        作者: 時間:2012-02-10 來源:網絡 收藏

        1 引 言

        本文引用地址:http://www.104case.com/article/172136.htm

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

        2 FLASH28F640J5簡介

        2.1 主要性能特點

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

        2.2 芯片結構及引腳信號

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

        9.jpg

        3 與芯片接口的設計

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

        10.jpg

        4 軟件設計

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

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

        11.jpg

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

        12.jpg

        5 結束語

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

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



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 海城市| 繁峙县| 巨野县| 元朗区| 基隆市| 盐源县| 安远县| 赤水市| 蛟河市| 翁源县| 绿春县| 南涧| 曲周县| 公主岭市| 沅江市| 岑溪市| 南城县| 南召县| 响水县| 阳城县| 丰宁| 恭城| 湖南省| 德惠市| 新竹县| 白沙| 栾川县| 临西县| 甘洛县| 阿拉善左旗| 会昌县| 博乐市| 桂阳县| 安图县| 黄冈市| 惠来县| 丰都县| 库尔勒市| 定兴县| 南陵县| 枝江市|