基于FPGA的F-RAM防掉電設(shè)計
摘要 在復雜實驗條件下,需采用非易失性鐵電存儲器記錄重要數(shù)據(jù)。為防止二次上電時實驗數(shù)據(jù)被覆蓋,需設(shè)計防掉電功能。文中介紹了一種F-RAM的防棹電設(shè)計思路,并基于現(xiàn)場可編程門陣列實現(xiàn),板級驗證工作正常,并已在相關(guān)項目中得到應用且達到了預期功能。
本文引用地址:http://2s4d.com/article/201610/308466.htm關(guān)鍵詞 非易失鐵電存儲器;防掉電;現(xiàn)場可編程門陣列
在彈載、密閉艙等某些復雜實驗條件下,為記錄實驗數(shù)據(jù),國內(nèi)外通常采用SRAM加后備電池、EEPROM、NVRAM的3種方式。其中SRAM加后備電池的方法增加了硬件的復雜性,同時又降低了系統(tǒng)的可靠性;EEPROM的寫操作時間較長;NVRAM的價格限制了其的普及應用。鑒于以上情況,越來越多的設(shè)計者將注意力投向了新型的非易失性鐵電存儲器(F-RAM)。非易失性鐵電存儲器具有實時寫入,讀寫操作簡單,可擦寫次數(shù)可達億次量級,并具有低功耗等突出優(yōu)點。
系統(tǒng)實驗中可能會出現(xiàn)二次上電情況,此時系統(tǒng)再次正常工作,將向F-RAM中重新寫入數(shù)據(jù),造成已采集有效數(shù)據(jù)的覆蓋,為避免數(shù)據(jù)覆蓋的發(fā)生設(shè)計中需增加防掉電功能。本文主要介紹一款F-RAM芯片的硬件配置、讀寫操作時序,闡明了防掉電設(shè)計思路及其FPGA實現(xiàn),同時驗證了方法的正確性。
1 F-RAM及FPGA
本文選擇FM23MLD16的8 Mbit F-RAM存儲器,48個管腳BGA封裝,可抗高過載,作為FPGA的外設(shè)器件。首先器件配置應正確,硬件配置決定了軟件的控制及時序。根據(jù)手冊,本文選擇如圖1所示的配置方式。
硬件上
接為低電平、CE2接為高電平,程序中將UB、LB接成低電平以配置成數(shù)據(jù)位寬16bit模式。根據(jù)硬件配置,讀寫操作利用
、
兩信號控制,且時序關(guān)系確定,如圖2和圖3所示。硬件配置中需注意的是
上拉電阻務必要加入,以保證在上電及掉電時
信號不為低電平。
設(shè)計需滿足時序要求,對F-RAM的讀寫時鐘最終確定為5 MHz。由圖2可知該配置下,讀操作相對簡單,
為低,
為高,地址變化即可;寫操作需注意
的上升沿與地址、數(shù)據(jù)間滿足建立時間、保持時間要求,文中
的上升沿處于數(shù)據(jù)中段。
FPGA既具有門陣列的高邏輯密度和高可靠性,又具有用戶可編程特性,可減少系統(tǒng)設(shè)計和維護的風險,降低產(chǎn)品成本,并縮短設(shè)計周期。FPGA有著規(guī)整的內(nèi)部邏輯塊陣列和豐富的連線資源,適合于細粒度和高并行度結(jié)構(gòu)特點的數(shù)字信號處理任務,可大幅提高系統(tǒng)處理速度。管腳資源豐富是采用FPGA實現(xiàn)的重要原因,且時序控制方便。
2 防掉電設(shè)計思路
正常的讀寫操作,在所選擇硬件配置下滿足時序要求即可。防掉電功能通過在寫模式上電后,首先以判斷標志位的方式實現(xiàn),若標志位未寫入標志信息,則執(zhí)行寫操作,否則進入空閑模式不再寫入。而讀模式將存儲器內(nèi)數(shù)據(jù)正常讀出即可。設(shè)計增加擦除模式,將F-RAM中所有數(shù)據(jù)清零,且標志位也清零。
讀寫及擦除模式間的切換是通過兩外置管腳的輸入電平來控制的,兩管腳可實現(xiàn)4種組合滿足本文的需要,上電時通過判斷管腳電平進入相應模式。其設(shè)計流程如圖4所示。
圖4中E、WOR為兩個外置的控制管腳,0、1代表高低電平。為數(shù)據(jù)分析方便,設(shè)計每包數(shù)據(jù)均加幀頭、幀尾標志信息。最初的設(shè)計思路為在標志位寫固定值,上電寫操作模式下先讀取該標志位,擦除也只是將標志位清零。后經(jīng)分析可將幀頭作為標志信息,這樣大幅簡化了設(shè)計復雜度。每包數(shù)據(jù)幀頭均由4個16'h007E構(gòu)成,將其作為標志位,則寫模式下,判斷初始4個地址中是否為該標志位即可判別是否已寫入數(shù)據(jù),實現(xiàn)防掉電功能。擦除模式下將所有存儲數(shù)據(jù)均清為0。每次上電后系統(tǒng)重新判斷E、WOR狀態(tài),而讀寫地址均從0開始重新變化。
3 板級驗證
由于該器件為FPGA外置芯片,因此讀寫操作的正確性需在信號處理板上進行調(diào)試,設(shè)計中的仿真只保證讀寫時序與設(shè)計思路一致。
板級驗證方法:實驗前控制E、WOR為擦除模式,數(shù)據(jù)清空。再接為寫模式,則可正常寫入數(shù)據(jù),重新上電,仍處于寫模式,此時標志位已寫入標志信息,則結(jié)束進入空模式而不再重新寫入,最后再進入讀模式。具體步驟為:(1)進行擦除操作,然后系統(tǒng)掉電。(2)讀操作看是否將F-RAM中數(shù)據(jù)清為0,然后系統(tǒng)掉電。(3)寫操作重復寫入同一組已知格式的數(shù)據(jù)(16 bit位寬),本文采用:4個幀頭(16'h007E)+數(shù)據(jù)(16'd 1、2、…、800)+2個幀尾作為第一組數(shù)據(jù),寫滿后系統(tǒng)掉電。(4)二次寫操作,仍保持E、WOR為低電平,此時每幀數(shù)據(jù)封裝格式不變,將數(shù)據(jù)調(diào)整為800,799,…,1,然后系統(tǒng)掉電。(5)讀操作,從F-RAM中讀取數(shù)據(jù),若為第一組數(shù)據(jù)則結(jié)果正確。實驗結(jié)果如圖5(a)~圖5(c)所示,分別對應(1)~(5)步實驗步驟。
圖5為使用同一bit文件觀測,圖中相關(guān)信號的說明如表1所示。
實驗結(jié)果說明,圖5(a)為第一步擦除操作,E、WOR均接為低電子,擦除即將每個地址中均寫入數(shù)據(jù)0,對應d_writein均為0,按寫地址順序變化。圖5(b)為第二步讀取操作,E、WOR均接為高電平,讀取過程中讀地址(r_addr_d1)順序變化,此時讀出數(shù)據(jù)均為0(read_data),說明第一步擦除有效已將標志位清零。圖5(c)為第三步寫第一組數(shù)據(jù),如圖所示寫地址隨數(shù)據(jù)順序增加,寫F-RAM時wewe上升沿與數(shù)據(jù)及地址對齊,oeoe為低電平。圖5(d)為系統(tǒng)二次上電E、WOR均接為低電平,仍為寫模式,寫入第二組數(shù)據(jù),由于在第三步中標志位已寫入標志信息,系統(tǒng)進入空閑模式,結(jié)束對F-RAM的操作(oeoe拉高,讀寫使能均為低電平)。圖5(c)為第五步讀取操作,讀數(shù)據(jù)時,需并串轉(zhuǎn)換后經(jīng)異步串口將數(shù)據(jù)輸出,發(fā)送完一個數(shù)據(jù)后將再讀出另一個,串口速率比讀時鐘慢,因此圖中讀一個數(shù)顯示占用了若干周期。
圖5(c)的結(jié)果說明讀出數(shù)據(jù)為實驗第三步即第一次寫入的數(shù)據(jù),重復驗證結(jié)果不變,說明達到了防掉電的目的,且讀寫功能正常,符合設(shè)計要求。
設(shè)計中考慮試驗時可能遇到的E、WOR線斷情況,故給兩控制管腳均接入下拉電阻,避免了控制寫操作時E、WOR變?yōu)楦唠娖?,進而防止了誤操作的發(fā)生。
4 結(jié)束語
本文介紹了F-RAM的基本讀寫時序,并著重說明了基于FPGA實現(xiàn)防掉電的設(shè)計思路。設(shè)計利用數(shù)據(jù)幀頭信息作為標志位,簡化了邏輯復雜度。該方法已應用于相關(guān)項目中,為實驗數(shù)據(jù)記錄分析及查找問題提供了方便。
評論