?

基于串行FRAM的固態存儲器構建

2015-02-20 08:15張小鳴
計算機工程 2015年3期
關鍵詞:存儲單元緩沖器測試數據

張小鳴,宋 磊

(常州大學信息科學與工程學院,江蘇常州213164)

基于串行FRAM的固態存儲器構建

張小鳴,宋 磊

(常州大學信息科學與工程學院,江蘇常州213164)

為簡化嵌入式系統利用NAND閃存保存大容量數據的設計復雜性,提出一種利用鐵電隨機存儲器(FRAM)構建固態存儲器實現快速高效存取的方法。制定串行FRAM與RAM相結合的最優存儲協議,給出查詢存儲器塊的概念和串行FRAM存儲數據的快速查詢算法,介紹串行FRAM與RAM相結合的存儲協議和FM24W256的塊讀寫算法。51單片機的電機驅動總成載重測試儀設計與工業性實驗結果表明,利用FRAM設計的固態存儲器,具有軟硬件開銷小、存取速度快、實現簡單可靠的特點,能滿足嵌入式系統長期存儲的要求。

固態存儲器;鐵電隨機存儲器;存儲協議;I2C總線;數據查詢;塊讀/寫

1 概述

目前嵌入式系統擴展固態(不易失)存儲器的類型主要有3種:EEPROM存儲器,NAND FLASH存儲器,FRAM存儲器。這3種固態存儲器各有優缺點,應用場合不盡相同。EEPROM的字節存取速度慢(毫秒級),寫入一般需要5 ms~10 ms的等待數據寫入時間,功耗大(毫安級),可擦寫有限次(約10萬次),容量千比特級,適合小數據量的慢速、非頻繁存儲[1]。NAND FLASH(NAND閃存)存儲器的字節存取速度快(納秒級),功耗小(毫安級),可擦寫有限次(約100萬次),容量兆比特級,適合大數據量的快速、頻繁存儲[2]。鐵電存儲器(Ferroelectric Random Access Memory,FRAM)是一種兼備隨機存儲器和非易失性存儲器特性的高性能不易失存儲器,字節存取速度快(串行FRAM為微妙級~毫秒級,并行FRAM為納秒級),功耗極低(微安級),可擦寫無限次(100兆以上,即1014次),容量千比特級,寫入后無需任何延時等待,適合小數據量快速、頻繁存儲[3]。

鑒于串行FRAM存儲器種類更多,接口更簡單,應用領域更廣,本文提出一種串行FRAM與RAM

相結合的存儲協議,并在此基礎上給出串行FRAM快速存取算法,克服串行FRAM存儲器數據查詢繁瑣的局限。

2 背景介紹

電可擦除可編程只讀存儲器(Electrically Erasable Programmable Read-Only Memory,EEPROM)兼備了RAM和ROM的基本特點,既可隨機讀寫,也可斷電后數據不易失。EEPROM分為串行EEPROM和并行EEPROM,串行EEPROM因占用引腳少、容量擴展配置靈活以及讀寫操作相對簡單而在嵌入式系統中作為一種固態存儲器得到了廣泛應用。目前,較為常用的串行EEPROM是24C系列,但是由于串行EEPROM的讀寫速度較慢,主要用于保存設備所需要的配置數據等存取頻率不高的場合[4]。

NAND FLASH存儲器容量大,已成為嵌入式系統的大容量存儲器。但是,NAND FLASH存儲器由于生產工藝的原因可能存在無效塊,需要通過軟件檢測跳過無效塊,無形中增加了軟件開銷[5]。NAND FLASH存儲器只能按頁寫(每頁由256 Byte~2 048 Byte組成),按塊(32頁)擦除,存取不靈活,塊擦除時間與頁讀寫時間相對長[6]。文獻[7]介紹了一種基于FPGA控制器對多片NAND FLASH并行總線控制實現高速大容量存儲的設計方法,但實現方法復雜。為了解決NAND閃存存儲器按頁長時間存儲與A/D實時采樣頻率之間的矛盾,文獻[8]采用主、從單片機分別控制A/D轉換器實時采集數據和NAND閃存存儲器的實時存儲,通過雙口RAM實現采集數據共享和實時存儲。采用雙口RAM芯片成本較高,接口控制較復雜。

串行FRAM存儲容量在0.5 KB~2 MB之間[9],超低功耗,I/O接口簡單,成本低,體積小,存儲數據安全穩定,已經成為嵌入式系統長時間保存數據的首選固態存儲器。文獻[10]介紹了Linux下的串行FRAM驅動程序的設計方法,但沒有介紹FRAM的存儲協議等核心存儲技術。文獻[11]介紹一種基于單片機的I2C總線FRAM存儲器的軟硬件設計方法,但未提及數據采集模塊的實現以及與FRAM模塊的存取關系。文獻[12]介紹了基于DSP控制器的I2C總線FM24L64存儲器的接口設計方法,存儲數據來自GPS接收機RS232串口接收的彈載數據。文獻[13]介紹了基于單片機的無線壓力檢測系統設計,利用壓力傳感器檢測到超閾值壓力信號觸發喚醒平時處于休眠狀態的無線壓力傳感器節點,激活采集功能模塊,將超閾值壓力值存儲到I2C總線FRAM存儲器中。文獻[14]介紹了基于藍牙通信技術的人行動軌跡采集記錄系統設計,將人行動軌跡數據實時保存到I2C總線1Mb FRAM存儲器中,并周期性發送到服務器。文獻[15]介紹了智能水質濁度分布式測量系統的設計,利用I2C總線FRAM芯片FM24CL16存儲水質濁度數據,由于水質濁度號變化緩慢,對A/D轉換器的采樣實時性要求不高。文獻[16]介紹了基于PIC單片機的漿果沖擊記錄裝置設計,利用SPI接口FRAM芯片FM25V10(128 KB)存儲每次漿果跌落的加速度采集數據。每次跌落實驗間隔足以保證A/D采集時序與FRAM存儲時序分時進行。文獻[17]介紹了基于無線傳感器網絡的康復治療用人體運動檢測裝置,應用I2C總線FRAM芯片FM24V10(128 KB)來存儲各種配置參數和算法參數等,但沒有用來存儲實時采集數據。

隨著嵌入式系統對實時性處理要求越來越高,如何充分發揮FRAM存儲器的快速存儲、存儲穩定的優點來滿足實時性的要求成為一個現實的問題。到目前為止,FRAM存儲器作為嵌入式系統的固態存儲器受到2個限制:

(1)并行FRAM存儲器,存取速度快,價格較高,在讀操作后必須有個預充電過程,來恢復數據位。與傳統SRAM在時序上有所不同而不能直接替換。

(2)串行FRAM存儲器,存取速度較快,價格較低,種類多,分I2C接口2線FM24系列和SPI接口3線FM25兩大系列,時序與傳統的24、25型的EEPROM芯片兼容,可以直接替換。SPI存取速度比I2C要快一個數量級,還可實現全雙工。但串行FRAM的存儲數據查詢繁瑣,須加載到系統內存RAM中才能查詢,軟件開銷較大。

3 電機驅動總成載重測試儀系統框圖

電機驅動總成測試儀是電機總成驅動測試臺的配套設備,用于不定期抽檢一個批次電機驅動總成的載重特性數據,并長期保存在FM24W256中,以備查詢,便于分析該批次電機驅動總成的售后質量。通常要求保存期限為1年~2年。電機驅動總成的載重特性數據包括載重實驗周期中的最大載重量、最大電機電流、最大電機外殼溫升,最大、最小、平均電機轉速。測試儀由單片機采集板、單片機顯示鍵盤板、熱敏微型打印機等組成,系統結構框圖如圖1所示。

圖1 電機驅動總成載重測試儀系統結構框圖

由圖1可見,測試儀采用主、從雙單片機結構,滿足實時處理要求。主單片機控制A/D轉換器周期采樣稱重傳感器調理信號,霍爾電流傳感器調理信號,溫度傳感器調理信號,累計單位時間內電機轉速脈沖個數,進行標度變換和BCD變換,變換為BCD碼格式測試數據,快速發送給從單片機進行數據緩存、實時顯示、數據保存。主、從單片機通過模擬SPI接口進行實時通信。制定多字節同步字符通信協議和從機防死鎖機構,實現了同步、可靠通信。

內存RAM開辟顯示數據緩存區和查詢數據緩沖區。顯示數據緩存區存放實時采集的測試數據、實時時鐘時間值和實時計算產生的載重特性數據。鍵盤與LCD交互菜單中的測試數據命令激活實時顯示測試數據、載重特性數據以及測試周期累計值。保存命令激活單片機與FM24W256之間建立I2C總線讀寫時序操作,將測試開始實時時鐘時間值,載重特性數據和測試周期累計值一起作為一條測試記錄保存到FM24W256指定存儲區。查詢命令激活單片機與FM24W256之間建立I2C總線讀時序操作,將FM24W256中對應查詢關鍵字可能覆蓋的一個局部存儲塊中的所有記錄均讀到查詢數據緩沖區中,以便在內存中高效查詢,快速找到相匹配的一條或若干條測試記錄,送LCD屏調閱顯示。打印命令可以將調閱的歷史記錄打印輸出。

4 串行FRAM存取特性

串行FRAM存儲結構和存取特性決定了查詢數據必須先讀出后加載到系統存儲級內存才能查詢。串行FRAM的存取特性由串行FRAM串行數據幀格式、讀寫時序以及讀/寫速率共同決定。

4.1 串行FRAM數據幀格式

以FM24W256為例,FM24W256的多字節連續寫操作串行數據幀格式與傳統的24系列EEPROM芯片24C256的一致,如圖2所示。

圖2 FM24W256多字節寫數據幀格式

但是,FM24W256的多字節連續讀操作串行數據幀格式與24C256有所不同:FM24W256的連續讀操結束非應答位“1”由微控制器主動發出,而不是由FM24W256發出。24C256采用頁讀操作,每當連續讀到64個字節為1頁后,24C256自動發出讀操結束的非應答位“1”,因此,若需要連續讀64個以上的字節長度時,必須分頁讀,導致存取效率大大降低。

FM24W256的連續讀操作數據幀格式只須寫I2C總線的同一器件從地址,接著就可從現行存儲地址+1開始,順序讀后續地址存儲單元的字節,連續讀串行數據幀格式如圖3所示。

圖3 FM24W256多字節讀數據幀格式

FM24W256現行存儲地址既可以由隨機讀操作確定,也可以由單字節寫操作時序確定。一般來說, FM24W256的連續讀操作與一次隨機讀操作配合使用,即先執行一次隨機讀操作來確定要順序讀的首地址,即現行存儲地址。隨機讀操作數據幀格式不僅要求寫I2C總線的指定器件從地址,而且要求寫指定存儲單元的15位地址,最后讀出該存儲單元的8位數據, FM24W256的隨機讀串行數據幀格式如圖4所示。

圖4 FM24W256隨機讀數據幀格式

4.2 串行FRAM讀/寫時序

與傳統24C256相比,FM24W256讀寫時序有2個重大改進:(1)在讀寫時序上不需要任何延時(即使延時也無妨),而24C256必須有至少6 ms以上的延時。(2)FM24C256的連續讀/寫時序對順序讀字節長度沒有限制,而24C256只限為64個字節為一頁的頁讀/寫,因此,FM24W256的連續讀字節長度完全可以覆蓋整個芯片存儲容量,為鐵電存儲器的高效、快速查詢奠定了硬件基礎。FM24W256的I2C總線最高速率為1 MHz。FM24W256與單片機接口電路實例如圖5所示,其中,SCL是串行時鐘輸入線;SDA是串行輸入輸出數據線。

圖5 FM24W256接口電路實例

5 內存與FRAM存儲協議

由于串行FRAM采用串行總線存取,數據讀/寫要經歷一個串并轉換(讀)和并串轉換(寫)的過程,因此保存到FRAM的測試數據,必須先緩存在RAM內存中,查詢FM24W256中保存的測試紀錄,讀出并加載到RAM內存中。制定最好的RAM和FRAM存儲協議就顯得非常關鍵。最好的存儲協議應包括查詢關鍵字存取歷史記錄最快捷,最簡單,適合嵌入式系統內存空間相對較小,微處理器運行速度相對較慢,不能實現復雜查詢算法的特點,即要設計出相對簡單,易于實現查詢算法的存儲協議。

5.1 內存存儲協議

內存存儲協議包括制定測試數據存儲格式, RAM和FRAM的映射圖等。

(1)測試數據存儲格式

測試數據除了應包含實時測試數據外,還應包含查詢關鍵字和索引號,對于測試儀來說,測試數據都是時間觸發事件,最有效的查詢關鍵字就是測試時間信息,例如測試開始時刻的年、月、日、小時、分等。索引號包括月記錄號和日記錄號。假設測試數據包含實時測試數據字節和測試周期共計n個字節,測試數據開始時間信息為5個字節(年、月、日、時、分),月記錄號為1個字節,日記錄號為1個字節,則一組測試數據占用的字節長度為L字節(n+ 7)。采用小端模式設計的測試數據存儲格式如圖6所示。

圖6 RAM緩沖器測試數據存儲格式

在圖6中,偏移地址+0的存儲單元在FRAM中映射為月記錄號,即1個月中的記錄總條數,應根據FRAM存儲的現有月記錄號基礎上遞增更新回寫,到該保留字節。偏移地址+(L–1)的存儲單元在FRAM中映射為日記錄號,即一天中的記錄總條數,應根據FRAM存儲的現有日記錄號基礎上遞增更新回寫到該保留字節。測試數據采用BCD碼格式存放是為了便于轉換成LCD碼顯示。

(2)RAM和FRAM的映射圖

在測試日期下,RAM緩沖器暫存的實時測試數據,用保存命令陸續寫入FRAM的不同存儲空間。故只需設置一個內存RAM緩沖器,但索引號要根據FRAM存放的對應年、月上一條記錄的索引號來計算確定,并加載到RAM緩沖器測試數據的索引號單

元中。索引號的計算公式為:

若本測試數據的日號=上一條測試記錄的日號,且上一條測試記錄的日記錄號<日記錄號上限,且上一條測試記錄的月記錄號<月記錄號上限,則本測試數據日記錄號=(上一條測試記錄的日記錄號+1),且本測試數據月記錄號=(上一條測試記錄的月記錄號+1),否則,本測試數據不能保存。

若本測試數據的日號(上一條測試記錄的日號,且上一條測試記錄的月記錄號<月記錄號上限,則本測試數據日紀錄號=1,本測試數據月記錄號= (上一條測試記錄的月記錄號+1),否則,本測試數據不能保存。

RAM和FRAM的映射圖如圖7所示。RAM數據空間的查詢存儲塊內存緩沖器用于緩存從FRAM讀出的多條測試記錄,便于高效查詢。

圖7 RAM和FRAM的映射圖

5.2 FRAM存儲協議

FRAM存儲協議包括制定測試記錄存儲格式,確定查詢存儲器塊容量,設置查詢索引號單元等。

(1)測試記錄存儲格式

由圖7可知,FRAM的測試記錄存儲格式就是內存測試數據存儲格式的連續映射。由串行FRAM的存取特性可知,從FRAM存儲器中一次連續讀多條記錄的效率遠遠大于一次讀一條記錄。又從內存存儲協議可知,每條記錄保存有月記錄號和日記錄號,將一個月的所有記錄作為一個查詢存儲器塊一次連續讀出加載到內存再查詢,綜合查詢效率最高。因此,可確定一個查詢存儲器塊容量Sb為:

其中,N為月記錄號;D為日記錄號。

將FRAM存儲器按每年12個月劃分為12個存儲器塊,就可以制定出測試記錄存儲格式。以典型I2C總線串行FM24W256為例,存儲器容量為256 KB,即32 KB×8位。假設每條記錄占用的最大字節長度L=32(20H),規定一天最多允許保存4條測試記錄,一個月最多允許測試保存40條記錄,則一個查詢存儲器塊的容量為500H。12個月占用的存儲器塊容量為3C00H。因此,FM24W256可以保存2年的測試記錄,將32 KB平分為2個16KB,低16KB (0x0000~0x3FFF)空間存儲奇年測試記錄,高16KB (0x4000~0x7FFF)空間存儲偶年測試記錄,例如: 2013年數據存于低16 KB內存單元,2014年數據存于高16 KB內存單元。為了簡化查詢算法,將一年的12個月份分別對應于12個不同的存儲器塊,每個存儲器塊的地址范圍是固定的,每個存儲器塊中每條記錄的地址范圍也是固定的。FM24W256奇年和偶年測試記錄存儲格式如圖8所示。

圖8 奇/偶年FM24W256測試記錄存儲格式

(2)查詢索引號單元

奇/偶年的12個查詢索引號單元用于保存12個月的測試記錄總數,約定月測試記錄總數最大為40。奇/偶年碼存儲單元用于存放奇/偶測試年碼,每當寫測試數據時,先將測試年碼讀出,與RAM緩沖器中的測試數據奇/偶年碼存儲單元內容比較,若不同,則將12個索引號單元清零。然后將奇/偶測試年碼存入奇/偶年碼存儲單元。若相同,讀取奇/偶測試年對應月索引號單元中的內容,若小于40,進行加一回寫操作,若等于40,說明該月記錄已滿。

由此可見,滿足串行FRAM查詢的RAM加載存儲器容量下限值Sd為:

其中,Sb為FRAM的一個查詢存儲器塊容量。

最優的查詢機制是根據查詢日期,能快速定位相匹配的FRAM查詢存儲塊,讀出加載到查詢存儲塊內存緩沖器,再執行快速查詢算法就能以較少的軟件開銷,高效查詢到相匹配的測試記錄。

6 FRAM塊讀/寫與快速查詢算法

6.1 FRAM塊寫算法

將RAM緩沖器中的測試數據寫入FM24W256存儲器的塊寫算法步驟為:

(1)測試數據奇/偶年碼與從FM24W256奇/偶年號存儲單元讀出的年碼相比較,若相等,轉入步驟(2)。若不相等,表明測試數據年碼是新年碼,本

測試數據為欲寫的第1條記錄,則立即將新年碼寫入FM24W256的奇/偶年碼存儲單元,并將對應該年的12個月索引號單元清零,轉入步驟(3)。

(2)從FM24W256對應測試月索引號單元讀取月記錄號N,若N為0,表明該測試月尚無記錄被保存,轉入步驟(3)。若N=40,則說明當月記錄保存數已滿,則置本月記錄已滿標志為1,退出塊寫操作。若N(40,則轉入步驟(4)。

(3)將測試數據月記錄號存儲單元和日記錄號存儲單元均置1,由月記錄號N和日記錄號D,計算測試數據保存到FM24W256存儲單元首址Aorg的公式為:

其中,OEorg為寫測試記錄的FM24W256奇/偶年碼首地址;L為每條記錄的字節長度。以Aorg作為FM24W256塊寫子程序入口參數1,寫測試記錄RAM緩沖器首址作為入口參數2,記錄字節長度L作為入口參數3,調用FM24W256塊寫子程序,塊寫算法結束。

(4)從FM24W256對應測試月的上一條測試記錄的日存儲單元讀取日碼,與測試數據的日碼相比較,若相等,表明測試數據與上一條保存的測試記錄屬于同天測試,則再從FM24W256保存的上一條測試記錄的日記錄號單元讀取日記錄號,若該日記錄號=4,說明當日記錄保存數已滿,則立即置“本日記錄已滿”標志為1,退出塊寫操作。若該日記錄號(4,表明本條測試記錄可以寫入FM24W256,故將該日記錄號加1,回寫入RAM緩沖器測試數據的日記錄號單元,同時,從FM24W256保存的上一條測試記錄的月記錄號單元讀取月記錄號,將該月記錄號加1,回寫到RAM緩沖器測試數據中月記錄號單元,轉入步驟(5)。若不相等,表明待寫測試數據與上一條保存記錄不屬于同一天測試,則將RAM緩沖器測試數據的日記錄號存儲單元置1,同時,從FM24W256上一條測試記錄的月記錄號單元讀出月記錄號,將該月記錄號加1,回寫入RAM緩沖器測試數據的月記錄號單元,轉入步驟(5)。

(5)由式(3)計算Aorg,作為FM24W256塊寫子程序入口參數1,測試數據RAM緩沖器首址作為入口參數2,測試數據字節長度L作為入口參數3,調用FM24W256塊寫子程序。最后,把FM24W256對應測試月的月索引號單元內容讀出,加1再寫回,塊寫算法結束。

6.2 FRAM塊讀算法

為了降低查詢FM24W256存儲器數據的復雜度,把存放在FM24W256中對應查詢月的所有測試記錄,即1個查詢存儲器塊的全部測試記錄讀出加載到RAM查詢塊內存緩沖器,再進行日碼匹配查詢。故只須利用查詢年、月信息來計算FM24W256塊讀首地址,將塊長度為500H的存儲空間的內容順序讀出并順序加載到RAM指定查詢塊內存緩沖器。一個查詢存儲器塊讀出加載到RAM查詢塊內存緩沖器的塊讀算法步驟如下:

(1)查詢日期的年碼與從FM24W256年碼存儲單元讀出年碼相比較,若相等,轉入步驟(2)。若不相等,說明查詢的年碼不在存儲范圍,立即將無記錄標志位置1退出查詢,通知主程序報警顯示“無此年記錄”。

(2)從FM24W256對應查詢月的月索引號單元讀出索引號N,若N=0,說明本月無任何記錄,立即置無記錄標志位為1,退出查詢,通知主程序報警顯示“無此月記錄”。若N(0,轉入步驟(3)。

(3)由查詢月計算存放在FM24W256的查詢存儲器塊首址Borg的公式為:

以Borg作為FM24W256塊讀子程序的入口參數1,RAM查詢塊內存緩沖器首地址作為入口參數2,讀塊長度N×500H作為入口參數3,調用FM24W256塊讀子程序,塊讀算法結束。

6.3 內存映射快速查詢算法

由于每月抽檢測試的日期是不定的,每月測試記錄存儲空間第1個測試記錄存儲區可以存放任一日的測試記錄,這就使RAM查詢塊加載緩沖器的記錄查詢不能采用二分法等傳統快速縮小查詢區間的查詢法,只能用順序查詢。但可以利用月索引號N作為查詢次數計數器,大于N條記錄對應的緩沖器空間就不需要查詢,從而可以加快查詢速度。查詢存儲塊內存緩沖器快速查詢算法步驟如下:

(1)查詢指針初始化指向RAM查詢塊內存緩沖器第1條記錄的“日碼”存放單元首址,查詢月記錄計數器初始化初值為月索引號N。查詢結果指針初始化指向查詢結果匹配記錄指針表首址,查詢記錄匹配計數器始化初值為0。

(2)由查詢指針順序讀取每條記錄的“日、月、年”碼與鍵盤輸入需查詢記錄的“日、月、年”碼逐一相比較,若相等,轉入步驟(3)。若不相等,轉入步驟(4)。

(3)將查詢記錄匹配計數器加1,查詢指針存入查詢結果指針表中,查詢結果指針+2指向查詢結果匹配記錄指針表的下一個指針單元首址。判月記錄計數器當前值是否小于等于4,若小于等于4,則立即將月記錄計數器減1,轉入步驟(4)。若大于4,則立即將月記錄計數器置為3,轉入步驟(4),因為日測試記錄是順序存放的,而且協議規定一天只允許保存4條測試記錄,所以找到第1條日記錄,只要再

順序查詢3條記錄的存儲空間就可以快速結束查詢,實現了快速查詢。

(4)查詢指針+每條記錄長度,指向下一條記錄日碼存放單元首址,記錄計數器減1,判斷記錄計數器是否為0,若不等于0,轉到步驟(2),若等于0,轉到步驟(5)。

(5)查詢記錄匹配計數器的非零數字表示查詢到的某天測試記錄總數。查詢結果匹配記錄指針表存放每條匹配記錄的日碼存放單元首址,查詢算法結束。顯示程序就可以根據查詢結果來調用測試記錄顯示和打印。

6.4 RAM與FRAM數據一致性保護

若微處理器正在執行FRAM塊寫測試數據操作,突然發生電源掉電故障,就有可能導致RAM緩沖器測試數據寫入FRAM不完整。為了保障斷電瞬間RAM緩沖器的測試數據與FRAM保存的測試記錄一致,設計一個電源故障檢測電路,當電源電壓跌落到掉電故障電平以上某一預警值時,就立即向微處理器發出NMI(不可屏蔽中斷)或高優先級中斷請求,微處理器響應中斷后,立即判斷當前是否正在寫測試數據,若是,立即停止寫操作,并將RAM緩沖器測試數據立即保存到后備電池保護RAM中,以便電源故障解除后,根據重寫標志,恢復數據,重寫測試數據。一般來說,實時時鐘芯片電路都內嵌有后備電池保護RAM電路。設計的電源故障檢測電路如圖9所示。利用電源監視芯片MAX813L的電源電平監視功能,將電源故障輸入引腳PFI設置為單片機故障電平4.5 V以上的某一預警電平,例如4.65 V,當系統正常電源電壓+5 V因故障跌落到4.65 V時,MAX813L的電源故障輸出引腳PFO產生一個低電平脈沖,將PFO連接到微處理器的NMI (不可屏蔽中斷輸入)引腳或高優先級的可屏蔽中斷引腳上,觸發電源故障中斷請求。

圖9 電源故障檢測電路

7 結束語

針對串行FRAM存儲器占用I/O資源少、存取速度快、讀寫無限次等突出優點,本文提出采用串行FRAM存儲器構建嵌入式系統固態存儲器的實用方法。通過制定FRAM與系統RAM相結合的最優存儲協議,設計出串行FRAM存儲器快速查詢算法。電機驅動總成載重測試儀工業性實驗表明,FRAM存儲器保存的測試數據安全可靠,歷史查詢快速準確,滿足嵌入式系統長期保存大量數據和快速查詢的需要。

[1]劉 靜,王計元.24C系列串行EEPROM與單片機的接口設計及應用[J].上海電力學院學報,2011, 27(4):353-357.

[2]馬豐璽,楊 斌,衛洪春.非易失存儲器NAND Flash及其在嵌入式系統中的應用[J].計算機技術與發展, 2007,7(1):203-205,209.

[3]Ramtron International Corporation.FM24W256.pdf[EB/ OL].(2012-07-23).http://www.ramtron.com.

[4]朱 磊.CCS環境兩次編程實現DSP串行EEPROM自舉的方法[J].微計算機應用,2010,31(2):72-75.

[5]劉 晉,王政林,薛凱方.基于STC12C5A60S2單片機的LED顯示屏硬件設計[J].微型機與應用,2011, 30(22):24-27.

[6]袁春柱,朱莊生,孫 科.微小衛星星上數據存儲單元設計與實現[J].數據采集與處理,2010,25(z1): 110-115.

[7]陸 浩,王振占.高速大容量固態存儲器設計[J].計算機工程,2011,37(15):226-227,231.

[8]梁亞軍,劉培基.雙口RAM用于閃存實時數據存儲研究[J].青島大學學報:工程技術版,2008,33(2): 18-21.

[9]2013年Cypress(原RAMTRON)鐵電存儲器選型表[EB/OL].(2013-09-23).http://pan.baidu.com/ share/link shareid=4286959507&uk=4147947078&fid =4137793134.

[10]孫宇航,秦貴和,于新波,等.嵌入式Linux下的FRAM驅動程序設計[J].計算機工程,2011,37(11): 264-266.

[11]林春平,張興龍.鐵電存儲器在機艙油氣濃度數據記錄儀的應用[J].中國航海,2010,33(1):30-32,69.

[12]黃建軍,張志安,陳 俊,等.基于鐵電存儲器的彈載數據高速存儲系統研究[J].測試技術學報,2013, 27(1):50-55.

[13]Hufenbach W,B?2hm R,Thieme M,et al.Damage Monitoring in Pressure Vessels and Pipelines Based on Wireless Sensor Networks[J].Procedia Engineering, 2011,10:340-345.

[14]Cabero J M,Molina V,Urteaga I,et al.Acquisition of Human Traces with Bluetooth Technology:Challenges and Proposals[J].Ad Hoc Networks,2014,12:2-16.

[15]Tai Haijiang,Li Daoliang,Wang Cong,et al.Design and Characterization of a Smart Turbidity Transducer for Distributed MeasurementSystem[J].Sensorsand Actuators A Physical,2012 175:1-8.

[16]Yu Pengcheng,Li Changying,Rains G,et al.Development of the Berry Impact Recording Device Sensing System: Hardware Design and Calibration[J].Computers and Electronics in Agriculture,2011,79:103-111.

[17]Olivares A,Olivares G,Mula F,et al.Wagyromag: Wireless Sensor Network for Monitoring and Processing Humanbody Movement in Healthcare Applications[J].Journal of Systems Architecture,2011,57:905-915.

編輯 顧逸斐

Construction of Solid-state Memory Based on Serial FRAM

ZHANG Xiaoming,SONG Lei
(College of Information Science and Engineering,Changzhou University,Changzhou 213164,China)

In order to simplify the design complexity of using NAND flash storage to save mass data in embedded systems,a method of constructing solid state memory using Ferroelectric Random Access Memory(FRAM)to achieve fast and efficient access is presented.The optimal protocol of the combination of serial FRAM and RAM is developed.The concept of memory block query and fast query algorithm of serial FRAM data storage are proposed.The storage protocol of the combination of serial FRAM and RAM and the algorithm of block read/write are introduced.The design of motor drive system load tester based on 51 single chip microcomputer and industrial tests show that the solid state memory designed by ferroelectric memory has smaller software and hardware overhead,faster access speed,the realization of simple and reliable.It meets the long-term storage requirements of embedded systems.

solid state memory;Ferroelectric Random Access Memory(FRAM);storage protocol;I2C bus;data query; block read/write

張小鳴,宋 磊.基于串行FRAM的固態存儲器構建[J].計算機工程,2015,41(3):64-70.

英文引用格式:Zhang Xiaoming,Song Lei.Construction of Solid-state Memory Based on Serial FRAM[J].Computer Engineering,2015,41(3):64-70.

1000-3428(2015)03-0064-07

:A

:TP333

10.3969/j.issn.1000-3428.2015.03.012

張小鳴(1958-),男,教授、博士,主研方向:嵌入式系統;宋 磊,碩士研究生。

2014-03-10

:2014-05-27E-mail:xm0298@163.com

猜你喜歡
存儲單元緩沖器測試數據
一種28 nm工藝下抗單粒子翻轉SRAM的12T存儲單元設計
更正
重載貨車用緩沖器選型的研究及分析
測試數據管理系統設計與實現
數據在計算機內存中的存儲形式及實驗驗證
一種成本更低的全新靜態DRAM存儲單元
MiR-125a-5p is Upregulated in Plasma of Residents from An Electronic Waste Recycling Site
基于自適應粒子群優化算法的測試數據擴增方法
空間co-location挖掘模式在學生體能測試數據中的應用
面向TIA和緩沖器應用的毫微微安偏置電流運放可實現500MHz增益帶寬
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合