基于鐵電存儲器FM25640在電表數據存儲中的應用
發布時間:2008/8/12 0:00:00 訪問次數:760
在電子技術日新月異、新型多功能電能表層出不窮的今天,電能表中存儲器的選擇也是多種多樣,存儲器的好壞直接關系到電能表的正常使用和測量精度。目前應用最多的方案仍是sram加后備電池、eeprom、nvram這三種。但這三種方案均存在著缺陷。其中sram加后備電池的方法增加了硬件設計的復雜性,同時由于加了電池又降低了系統的可靠性;而eeprom的可擦寫次數較少(約10萬次),且寫操作時間較長(約10 ms);而nvram的價格問題又限制了它的普及應用。因此,工程人員在設計電能表的存儲模塊時,往往要花很大的精力來完善方案,才能使電表數據準確無誤的寫入存儲器中。鑒于以上情況,越來越多的設計者將目光投向了新型的非易失性鐵電存儲器(fram)。鐵電存儲器具有以下幾個突出的優點:
(1)讀寫速度快。串口fram的時鐘速度可達20 mhz,并口fram的訪問速度達70 ns,幾乎無須任何的寫入等待時間,可認為是實時寫入,所以不用擔心掉電后數據會丟失;
(2)擦寫次數多。一般認為fram的擦寫次數為100億次,而最新的鐵電存儲器的寫入次數可達一億億次,這幾乎可以認為是無限次;
(3)超低功耗。fram的靜態工作電流小于10μa,讀寫電流小于150μa。
目前,鐵電存儲器的主要生產商ramtron公司的fram主要包括串行fram和并行fram兩大類。而串行fram由于可節省大量的管腳而得到更為廣泛的應用。實際上,串行接口fram又分為i2c和spi兩種接口。經過多方比較,本設計選擇帶有spi接口的fm25640來進行說明。
1 fm25640芯片介紹
1.1 fm25640的主要特性
fm25640為64kb的非易失性鐵電存儲器,結構容量為8192×8位,具有100億次的讀寫次數,掉電數據可保持10年。該器件支持spi的模式0&3,最大可達到5 mhz的總線速度,采用8腳sop或dip封裝。
1.2 引腳功能
各引腳的具體功能如下:
cs:片選,低電平有效。當它為高電平時,所有的輸出處于高阻態,芯片忽略其它輸入;當它為低電平時,芯片功能開啟,并根據sck的信號而動作。
so:串行輸出。數據輸出引腳。
wp:寫保護,低電平有效時,將阻止向狀態寄存器進行寫操作。
vss:電源地。
si:串行輸入。數據輸入引腳。
sck:串行時鐘。
hold:保持端口,低電平有效。當sck為低電平且該腳亦為低電平時,暫停當前的操作。而當sck為低電平而hold為高電平時,則恢復被暫停的操作。
vdd:5 v引腳電源。
1.3 spi接口
fm25640帶有高速spi(serial peripheral interface)接口。在通過它來進行串行通信時,其最大可以達到5 mhz的操作速度。
spi接口是一種時鐘和數據同步的串行接口,應使用so、si、sck、cs四個引腳,可與任何具有spi接口的mcu直接連接。對于沒有spi接口的mcu,spi可以與普通i/o口相連。然后用軟件模擬spi接口,當然,也可以選擇其它帶有i2c總線接口和并口的fram產品。
spi有四種工作方式。分別為方式0、方式1、方式2和方式3,fm25640支持其中的方式0(cpol=0,cpha=0)和方式3(cpol=1,cpha=1),等兩種方式,數據可在時鐘的上升沿移進fm25640,而且數據一般出現在cs有效后的第一個時鐘的上升沿。因此,如果時鐘從高電平開始,將不能產生第一個有效的上升沿而導致數據傳輸失敗。數據傳輸時,所有移進和移出fm25640的數據都是8位為一組,它們與時鐘信號同步,最高有效位(msb)在前,串行數據在時鐘的上升沿移進,并在時鐘的下降沿移出。
spi接口是通過操作指令來控制的,fm25640的操作指令集如表1所列,該指令集共有6條指令。當有效后,第一個傳輸的字節就是操作指令,緊跟著操作指令之后的是兩字節的地址,該地址共16位,其中高三位不起作用,后13位則指定了一個唯一的地址。地址后面為所要寫入的數據,若數據多于1個,則第一個數據之后的數據存儲地址由fm25640自動按順序增加。如果地址到達最高地址1fffh,地址計數器將重新置為0000h。
2 fm25640在電表數據存儲中的應用
2.1 fm25640與mcu的連接電路
本設計中的單片機選擇motorola公司的mc68hc908lj12,這是一款適用于電表設計的mcu,內含12kbflash存儲器并可在線編程。同時還具有一個帶有紅外功能的串行通信接口sci,一個高速spi,8個鍵盤輸入中斷,以及內部lcd驅動模塊,因而節省了外掛液晶驅動芯片。系統中的電能計量芯片則選擇美國adi公司的三相電能計量芯片ade7758,該芯片精確度高,可以提供有功功率、無功功率、視在功率、電壓有效值和電流有效值等多項數據,具有兩路脈沖輸出,同時也帶有spi串口。由于spi接口可支持多個器件掛在同一個總線上,并可通過片選信號區分每一個器件,因此,將fm25640和ade7758都通過spi接口與單片機mc68hc908lj12相連,并將mc68hc908lj12的兩個i/o口pta4、pta5分別與fm25640和ade7758的片選端cs
在電子技術日新月異、新型多功能電能表層出不窮的今天,電能表中存儲器的選擇也是多種多樣,存儲器的好壞直接關系到電能表的正常使用和測量精度。目前應用最多的方案仍是sram加后備電池、eeprom、nvram這三種。但這三種方案均存在著缺陷。其中sram加后備電池的方法增加了硬件設計的復雜性,同時由于加了電池又降低了系統的可靠性;而eeprom的可擦寫次數較少(約10萬次),且寫操作時間較長(約10 ms);而nvram的價格問題又限制了它的普及應用。因此,工程人員在設計電能表的存儲模塊時,往往要花很大的精力來完善方案,才能使電表數據準確無誤的寫入存儲器中。鑒于以上情況,越來越多的設計者將目光投向了新型的非易失性鐵電存儲器(fram)。鐵電存儲器具有以下幾個突出的優點:
(1)讀寫速度快。串口fram的時鐘速度可達20 mhz,并口fram的訪問速度達70 ns,幾乎無須任何的寫入等待時間,可認為是實時寫入,所以不用擔心掉電后數據會丟失;
(2)擦寫次數多。一般認為fram的擦寫次數為100億次,而最新的鐵電存儲器的寫入次數可達一億億次,這幾乎可以認為是無限次;
(3)超低功耗。fram的靜態工作電流小于10μa,讀寫電流小于150μa。
目前,鐵電存儲器的主要生產商ramtron公司的fram主要包括串行fram和并行fram兩大類。而串行fram由于可節省大量的管腳而得到更為廣泛的應用。實際上,串行接口fram又分為i2c和spi兩種接口。經過多方比較,本設計選擇帶有spi接口的fm25640來進行說明。
1 fm25640芯片介紹
1.1 fm25640的主要特性
fm25640為64kb的非易失性鐵電存儲器,結構容量為8192×8位,具有100億次的讀寫次數,掉電數據可保持10年。該器件支持spi的模式0&3,最大可達到5 mhz的總線速度,采用8腳sop或dip封裝。
1.2 引腳功能
各引腳的具體功能如下:
cs:片選,低電平有效。當它為高電平時,所有的輸出處于高阻態,芯片忽略其它輸入;當它為低電平時,芯片功能開啟,并根據sck的信號而動作。
so:串行輸出。數據輸出引腳。
wp:寫保護,低電平有效時,將阻止向狀態寄存器進行寫操作。
vss:電源地。
si:串行輸入。數據輸入引腳。
sck:串行時鐘。
hold:保持端口,低電平有效。當sck為低電平且該腳亦為低電平時,暫停當前的操作。而當sck為低電平而hold為高電平時,則恢復被暫停的操作。
vdd:5 v引腳電源。
1.3 spi接口
fm25640帶有高速spi(serial peripheral interface)接口。在通過它來進行串行通信時,其最大可以達到5 mhz的操作速度。
spi接口是一種時鐘和數據同步的串行接口,應使用so、si、sck、cs四個引腳,可與任何具有spi接口的mcu直接連接。對于沒有spi接口的mcu,spi可以與普通i/o口相連。然后用軟件模擬spi接口,當然,也可以選擇其它帶有i2c總線接口和并口的fram產品。
spi有四種工作方式。分別為方式0、方式1、方式2和方式3,fm25640支持其中的方式0(cpol=0,cpha=0)和方式3(cpol=1,cpha=1),等兩種方式,數據可在時鐘的上升沿移進fm25640,而且數據一般出現在cs有效后的第一個時鐘的上升沿。因此,如果時鐘從高電平開始,將不能產生第一個有效的上升沿而導致數據傳輸失敗。數據傳輸時,所有移進和移出fm25640的數據都是8位為一組,它們與時鐘信號同步,最高有效位(msb)在前,串行數據在時鐘的上升沿移進,并在時鐘的下降沿移出。
spi接口是通過操作指令來控制的,fm25640的操作指令集如表1所列,該指令集共有6條指令。當有效后,第一個傳輸的字節就是操作指令,緊跟著操作指令之后的是兩字節的地址,該地址共16位,其中高三位不起作用,后13位則指定了一個唯一的地址。地址后面為所要寫入的數據,若數據多于1個,則第一個數據之后的數據存儲地址由fm25640自動按順序增加。如果地址到達最高地址1fffh,地址計數器將重新置為0000h。
2 fm25640在電表數據存儲中的應用
2.1 fm25640與mcu的連接電路
本設計中的單片機選擇motorola公司的mc68hc908lj12,這是一款適用于電表設計的mcu,內含12kbflash存儲器并可在線編程。同時還具有一個帶有紅外功能的串行通信接口sci,一個高速spi,8個鍵盤輸入中斷,以及內部lcd驅動模塊,因而節省了外掛液晶驅動芯片。系統中的電能計量芯片則選擇美國adi公司的三相電能計量芯片ade7758,該芯片精確度高,可以提供有功功率、無功功率、視在功率、電壓有效值和電流有效值等多項數據,具有兩路脈沖輸出,同時也帶有spi串口。由于spi接口可支持多個器件掛在同一個總線上,并可通過片選信號區分每一個器件,因此,將fm25640和ade7758都通過spi接口與單片機mc68hc908lj12相連,并將mc68hc908lj12的兩個i/o口pta4、pta5分別與fm25640和ade7758的片選端cs