新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 基于FPGA的F-RAM防掉電設計

        基于FPGA的F-RAM防掉電設計

        作者: 時間:2016-10-18 來源:網絡 收藏

        摘要 在復雜實驗條件下,需采用非易失性鐵電存儲器記錄重要數據。為防止二次上電時實驗數據被覆蓋,需設計功能。文中介紹了一種F-RAM的防棹電設計思路,并基于實現,板級驗證工作正常,并已在相關項目中得到應用且達到了預期功能。

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

        關鍵詞 ;;

        在彈載、密閉艙等某些復雜實驗條件下,為記錄實驗數據,國內外通常采用SRAM加后備電池、EEPROM、NVRAM的3種方式。其中SRAM加后備電池的方法增加了硬件的復雜性,同時又降低了系統的可靠性;EEPROM的寫操作時間較長;NVRAM的價格限制了其的普及應用。鑒于以上情況,越來越多的設計者將注意力投向了新型的非易失性鐵電存儲器(F-RAM)。非易失性鐵電存儲器具有實時寫入,讀寫操作簡單,可擦寫次數可達億次量級,并具有低功耗等突出優點。

        系統實驗中可能會出現二次上電情況,此時系統再次正常工作,將向F-RAM中重新寫入數據,造成已采集有效數據的覆蓋,為避免數據覆蓋的發生設計中需增加功能。本文主要介紹一款F-RAM芯片的硬件配置、讀寫操作時序,闡明了防掉電設計思路及其FPGA實現,同時驗證了方法的正確性。

        1 F-RAM及FPGA

        本文選擇FM23MLD16的8 Mbit F-RAM存儲器,48個管腳BGA封裝,可抗高過載,作為FPGA的外設器件。首先器件配置應正確,硬件配置決定了軟件的控制及時序。根據手冊,本文選擇如圖1所示的配置方式。

        基于FPGA的F-RAM防掉電設計

        硬件上

        基于FPGA的F-RAM防掉電設計

        接為低電平、CE2接為高電平,程序中將UB、LB接成低電平以配置成數據位寬16bit模式。根據硬件配置,讀寫操作利用

        基于FPGA的F-RAM防掉電設計

        基于FPGA的F-RAM防掉電設計

        兩信號控制,且時序關系確定,如圖2和圖3所示。硬件配置中需注意的是

        基于FPGA的F-RAM防掉電設計

        上拉電阻務必要加入,以保證在上電及掉電時

        基于FPGA的F-RAM防掉電設計

        信號不為低電平。

        基于FPGA的F-RAM防掉電設計
        基于FPGA的F-RAM防掉電設計

        設計需滿足時序要求,對F-RAM的讀寫時鐘最終確定為5 MHz。由圖2可知該配置下,讀操作相對簡單,

        基于FPGA的F-RAM防掉電設計

        為低,

        基于FPGA的F-RAM防掉電設計

        為高,地址變化即可;寫操作需注意

        基于FPGA的F-RAM防掉電設計

        的上升沿與地址、數據間滿足建立時間、保持時間要求,文中

        基于FPGA的F-RAM防掉電設計

        的上升沿處于數據中段。

        FPGA既具有門陣列的高邏輯密度和高可靠性,又具有用戶可編程特性,可減少系統設計和維護的風險,降低產品成本,并縮短設計周期。FPGA有著規整的內部邏輯塊陣列和豐富的連線資源,適合于細粒度和高并行度結構特點的數字信號處理任務,可大幅提高系統處理速度。管腳資源豐富是采用FPGA實現的重要原因,且時序控制方便。

        2 防掉電設計思路

        正常的讀寫操作,在所選擇硬件配置下滿足時序要求即可。防掉電功能通過在寫模式上電后,首先以判斷標志位的方式實現,若標志位未寫入標志信息,則執行寫操作,否則進入空閑模式不再寫入。而讀模式將存儲器內數據正常讀出即可。設計增加擦除模式,將F-RAM中所有數據清零,且標志位也清零。

        讀寫及擦除模式間的切換是通過兩外置管腳的輸入電平來控制的,兩管腳可實現4種組合滿足本文的需要,上電時通過判斷管腳電平進入相應模式。其設計流程如圖4所示。

        基于FPGA的F-RAM防掉電設計

        圖4中E、WOR為兩個外置的控制管腳,0、1代表高低電平。為數據分析方便,設計每包數據均加幀頭、幀尾標志信息。最初的設計思路為在標志位寫固定值,上電寫操作模式下先讀取該標志位,擦除也只是將標志位清零。后經分析可將幀頭作為標志信息,這樣大幅簡化了設計復雜度。每包數據幀頭均由4個16'h007E構成,將其作為標志位,則寫模式下,判斷初始4個地址中是否為該標志位即可判別是否已寫入數據,實現防掉電功能。擦除模式下將所有存儲數據均清為0。每次上電后系統重新判斷E、WOR狀態,而讀寫地址均從0開始重新變化。

        3 板級驗證

        由于該器件為FPGA外置芯片,因此讀寫操作的正確性需在信號處理板上進行調試,設計中的仿真只保證讀寫時序與設計思路一致。

        板級驗證方法:實驗前控制E、WOR為擦除模式,數據清空。再接為寫模式,則可正常寫入數據,重新上電,仍處于寫模式,此時標志位已寫入標志信息,則結束進入空模式而不再重新寫入,最后再進入讀模式。具體步驟為:(1)進行擦除操作,然后系統掉電。(2)讀操作看是否將F-RAM中數據清為0,然后系統掉電。(3)寫操作重復寫入同一組已知格式的數據(16 bit位寬),本文采用:4個幀頭(16'h007E)+數據(16'd 1、2、…、800)+2個幀尾作為第一組數據,寫滿后系統掉電。(4)二次寫操作,仍保持E、WOR為低電平,此時每幀數據封裝格式不變,將數據調整為800,799,…,1,然后系統掉電。(5)讀操作,從F-RAM中讀取數據,若為第一組數據則結果正確。實驗結果如圖5(a)~圖5(c)所示,分別對應(1)~(5)步實驗步驟。

        基于FPGA的F-RAM防掉電設計

        圖5為使用同一bit文件觀測,圖中相關信號的說明如表1所示。

        基于FPGA的F-RAM防掉電設計

        實驗結果說明,圖5(a)為第一步擦除操作,E、WOR均接為低電子,擦除即將每個地址中均寫入數據0,對應d_writein均為0,按寫地址順序變化。圖5(b)為第二步讀取操作,E、WOR均接為高電平,讀取過程中讀地址(r_addr_d1)順序變化,此時讀出數據均為0(read_data),說明第一步擦除有效已將標志位清零。圖5(c)為第三步寫第一組數據,如圖所示寫地址隨數據順序增加,寫F-RAM時wewe上升沿與數據及地址對齊,oeoe為低電平。圖5(d)為系統二次上電E、WOR均接為低電平,仍為寫模式,寫入第二組數據,由于在第三步中標志位已寫入標志信息,系統進入空閑模式,結束對F-RAM的操作(oeoe拉高,讀寫使能均為低電平)。圖5(c)為第五步讀取操作,讀數據時,需并串轉換后經異步串口將數據輸出,發送完一個數據后將再讀出另一個,串口速率比讀時鐘慢,因此圖中讀一個數顯示占用了若干周期。

        圖5(c)的結果說明讀出數據為實驗第三步即第一次寫入的數據,重復驗證結果不變,說明達到了防掉電的目的,且讀寫功能正常,符合設計要求。

        設計中考慮試驗時可能遇到的E、WOR線斷情況,故給兩控制管腳均接入下拉電阻,避免了控制寫操作時E、WOR變為高電平,進而防止了誤操作的發生。

        4 結束語

        本文介紹了F-RAM的基本讀寫時序,并著重說明了基于FPGA實現防掉電的設計思路。設計利用數據幀頭信息作為標志位,簡化了邏輯復雜度。該方法已應用于相關項目中,為實驗數據記錄分析及查找問題提供了方便。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 达拉特旗| 任丘市| 阿拉善左旗| 象州县| 德江县| 郁南县| 昭苏县| 呼伦贝尔市| 保山市| 子洲县| 静乐县| 苏尼特左旗| 丽江市| 昂仁县| 申扎县| 子洲县| 日喀则市| 康乐县| 武冈市| 无为县| 江源县| 保德县| 屏东市| 阜康市| 墨脱县| 新昌县| 花莲市| 乳山市| 乌苏市| 东明县| 青龙| 当阳市| 舟曲县| 海伦市| 清远市| 屏东县| 阜平县| 高邮市| 永新县| 揭西县| 武宣县|