基于C8051F340的非易失大容量數據存儲方案
4.3 軟件編程
K9WAG08UOA的編程比通常的串、并行存儲器復雜。實(shí)際應用中將頁(yè)編程子程序、塊擦除子程序、讀操作字程序編寫(xiě)成子程序,在需要時(shí)進(jìn)行調用。由圖5 看出,C8051F340對K9WAG08UOA的讀寫(xiě)操作均通過(guò)通用I/O進(jìn)行。C805lF340對I/O端口的操作通過(guò)訪(fǎng)問(wèn)對應的端口數據寄存器。向端口寫(xiě)入時(shí),數據被鎖存到端口數據寄存器中,以保持引腳上的輸出數據值不變;讀端口數據寄存器將返回端口輸入引腳的邏輯狀態(tài)。具體舉例來(lái)說(shuō),比如P0=0x80,表示Ox80被鎖存到端口數據寄存器中,把CE引腳拉低,引腳產(chǎn)生一個(gè)上升沿,數據就被寫(xiě)入K9WAG 08UOA中的數據/命令寄存器。Ox8O為命令還是數據取決于CLE和ALE的狀態(tài),CLE為高,ALE為低,表示Ox80為命令字段;CLE為低,ALE為高,表示Ox80為數據。下面對K9WAG08UOA的頁(yè)編程、頁(yè)讀、塊擦除做詳細的說(shuō)明。

4.3.1 頁(yè)編程
K9WAG08UOA的頁(yè)編程是以頁(yè)為單位的,它允許在一個(gè)頁(yè)編程周期里寫(xiě)入1~2 112字節的數據。數據被加載到數據寄存器,然后調用內部寫(xiě)入過(guò)程寫(xiě)入正確的單元。在寫(xiě)入之前必須擦除,否則出錯。頁(yè)編程的步驟為:1)寫(xiě)入串行輸入指令0x80;2)分5次寫(xiě)入編程首地址;3)寫(xiě)人數據,一次最多2 112字節;4)最后寫(xiě)入頁(yè)編程指令0x1O。啟動(dòng)內部編程操作。為了反饋寫(xiě)入操作是否成功,K9WAG08UOA的內部狀態(tài)寄存器記錄了寫(xiě)入狀態(tài),通過(guò)查詢(xún)寄存器狀態(tài)位O,判斷寫(xiě)入是否成功。
4.3.2 頁(yè)讀操作
K9WAG08UOA讀頁(yè)面的操作過(guò)程為寫(xiě)入0x00到命令寄存器,然后輸入5個(gè)字節的地址,再寫(xiě)入命令Ox30啟動(dòng)頁(yè)讀操作。選中頁(yè)面的2 112個(gè)字節的數據不是立即輸出到I/0口,而先被復制到K9WAG08UOA的數據寄存器。通過(guò)檢測R/B引腳狀態(tài)來(lái)判斷復制操作是否完成。一旦R/B 為高電平后,表示復制完成。微處理器器控制RE不斷的高低變化,數據寄存器中的數據將按照在芯片中的地址排列依次鎖存輸出到I/O口,此時(shí)讀取I/O口電平即可。
4.3.3 塊擦除
K9WACO8UOA的擦除操作以塊為單位進(jìn)行。首先寫(xiě)入擦除指令Ox60,然后分3次寫(xiě)入行地址。載入行地址后執行擦除確認指令0xd0來(lái)初始化內部擦除操作。通過(guò)狀態(tài)引腳R/B了解擦除的進(jìn)度,R/B為高電平表示內部擦除完成。通過(guò)檢測狀態(tài)位(I/O0)來(lái)檢查擦除操作是否發(fā)生錯誤。
4.4 應用舉例
本設計的單片機P1口與K9WAGO8UOA直接連接,其他控制引腳與PO口的引腳連接。為防止存儲器誤操作,在單片機復位后要進(jìn)行初始化設置。 K9WAGO8UOA最大的優(yōu)點(diǎn)是容量大,低功耗。海洋潛標在水下工作的時(shí)間通常為3個(gè)月以上,累計的數據量通常上百兆,K9WAG08UOA能夠勝
任這樣的容量要求。在實(shí)驗室水池進(jìn)行多次長(cháng)時(shí)間測試,K9WAG08UOA記錄的數據可靠。
5 結束語(yǔ)
利用C805lF340豐富的接口資源,可以方便地擴展大容量的存儲器。本文介紹的3種存儲器擴展方案采用不同的硬件連接方式,但都具有非易失、低功耗的特點(diǎn),又各有特點(diǎn),可以根據系統開(kāi)發(fā)的具體需求,進(jìn)行選擇使用。通過(guò)實(shí)踐,總結以下經(jīng)驗:1)提高系統存取效率,加入FIFO緩存。數據按時(shí)間順序寫(xiě)入 FIFO,大到一定容量后再由處理器以塊形式讀出。這樣可以避免MCU頻繁進(jìn)入中斷,提高處理器的工作效率。2)在控制印刷電路板面積及布線(xiàn)復雜度上,使用I2C接口最為簡(jiǎn)潔,SPI接口次之。3)讀寫(xiě)速度上,并口Flash最快,適應于微秒級存??;SPI接口次之,提高時(shí)鐘頻率也可達到微秒級;I2C接口最慢,適合毫秒級的訪(fǎng)問(wèn)。4)容量上,NAND架構閃存(K9WAG08UOA)的存儲單元采用串行結構,一頁(yè)包含若干字節,若干頁(yè)組成儲存塊,這種結構最大的優(yōu)點(diǎn)是使得容量可以做得很大。因此,在容量和存儲密度上,NAND閃存比其他結構的存儲器大。僅從容量考慮時(shí),優(yōu)先選擇NAND架構的閃存。
本文引用地址:http://dyxdggzs.com/article/162599.htm
評論