基于鐵電存儲(chǔ)器FM25640在電表數(shù)據(jù)存儲(chǔ)中的應(yīng)用
掃描二維碼
隨時(shí)隨地手機(jī)看文章
0 引言
在電子技術(shù)日新月異、新型多功能電能表層出不窮的今天,電能表中存儲(chǔ)器的選擇也是多種多樣,存儲(chǔ)器的好壞直接關(guān)系到電能表的正常使用和測(cè)量精度。目前應(yīng)用最多的方案仍是SRAM加后備電池、EEPROM、NVRAM這三種。但這三種方案均存在著缺陷。其中SRAM加后備電池的方法增加了硬件設(shè)計(jì)的復(fù)雜性,同時(shí)由于加了電池又降低了系統(tǒng)的可靠性;而EEPROM的可擦寫次數(shù)較少(約10萬次),且寫操作時(shí)間較長(約10 ms);而NVRAM的價(jià)格問題又限制了它的普及應(yīng)用。因此,工程人員在設(shè)計(jì)電能表的存儲(chǔ)模塊時(shí),往往要花很大的精力來完善方案,才能使電表數(shù)據(jù)準(zhǔn)確無誤的寫入存儲(chǔ)器中。鑒于以上情況,越來越多的設(shè)計(jì)者將目光投向了新型的非易失性鐵電存儲(chǔ)器(FRAM)。鐵電存儲(chǔ)器具有以下幾個(gè)突出的優(yōu)點(diǎn):
(1)讀寫速度快。串口FRAM的時(shí)鐘速度可達(dá)20 MHz,并口FRAM的訪問速度達(dá)70 ns,幾乎無須任何的寫入等待時(shí)間,可認(rèn)為是實(shí)時(shí)寫入,所以不用擔(dān)心掉電后數(shù)據(jù)會(huì)丟失;
(2)擦寫次數(shù)多。一般認(rèn)為FRAM的擦寫次數(shù)為100億次,而最新的鐵電存儲(chǔ)器的寫入次數(shù)可達(dá)一億億次,這幾乎可以認(rèn)為是無限次;
(3)超低功耗。FRAM的靜態(tài)工作電流小于10μA,讀寫電流小于150μA。
目前,鐵電存儲(chǔ)器的主要生產(chǎn)商Ramtron公司的FRAM主要包括串行FRAM和并行FRAM兩大類。而串行FRAM由于可節(jié)省大量的管腳而得到更為廣泛的應(yīng)用。實(shí)際上,串行接口FRAM又分為I2C和SPI兩種接口。經(jīng)過多方比較,本設(shè)計(jì)選擇帶有SPI接口的FM25640來進(jìn)行說明。
1 FM25640芯片介紹
1.1 FM25640的主要特性
FM25640為64Kb的非易失性鐵電存儲(chǔ)器,結(jié)構(gòu)容量為8192×8位,具有100億次的讀寫次數(shù),掉電數(shù)據(jù)可保持10年。該器件支持SPI的模式0&3,最大可達(dá)到5 MHz的總線速度,采用8腳SOP或DIP封裝。
1.2 引腳功能
FM25640的引腳圖如圖1所示。各引腳的具體功能如下:
500)this.style.width=500;" border="0" />
CS:片選,低電平有效。當(dāng)它為高電平時(shí),所有的輸出處于高阻態(tài),芯片忽略其它輸入;當(dāng)它為低電平時(shí),芯片功能開啟,并根據(jù)SCK的信號(hào)而動(dòng)作。
SO:串行輸出。數(shù)據(jù)輸出引腳。
WP:寫保護(hù),低電平有效時(shí),將阻止向狀態(tài)寄存器進(jìn)行寫操作。
VSS:電源地。
SI:串行輸入。數(shù)據(jù)輸入引腳。
SCK:串行時(shí)鐘。
HOLD:保持端口,低電平有效。當(dāng)SCK為低電平且該腳亦為低電平時(shí),暫停當(dāng)前的操作。而當(dāng)SCK為低電平而HOLD為高電平時(shí),則恢復(fù)被暫停的操作。
VDD:5 V引腳電源。
1.3 SPI接口
FM25640帶有高速SPI(Serial Peripheral Interface)接口。在通過它來進(jìn)行串行通信時(shí),其最大可以達(dá)到5 MHz的操作速度。
SPI接口是一種時(shí)鐘和數(shù)據(jù)同步的串行接口,應(yīng)使用SO、SI、SCK、CS四個(gè)引腳,可與任何具有SPI接口的MCU直接連接。對(duì)于沒有SPI接口的MCU,SPI可以與普通I/O口相連。然后用軟件模擬SPI接口,當(dāng)然,也可以選擇其它帶有I2C總線接口和并口的FRAM產(chǎn)品。
SPI有四種工作方式。分別為方式0、方式1、方式2和方式3,F(xiàn)M25640支持其中的方式0(CPOL=0,CPHA=0)和方式3(CPOL=1,CPHA=1),等兩種方式,數(shù)據(jù)可在時(shí)鐘的上升沿移進(jìn)FM25640,而且數(shù)據(jù)一般出現(xiàn)在CS有效后的第一個(gè)時(shí)鐘的上升沿。因此,如果時(shí)鐘從高電平開始,將不能產(chǎn)生第一個(gè)有效的上升沿而導(dǎo)致數(shù)據(jù)傳輸失敗。數(shù)據(jù)傳輸時(shí),所有移進(jìn)和移出FM25640的數(shù)據(jù)都是8位為一組,它們與時(shí)鐘信號(hào)同步,最高有效位(MSB)在前,串行數(shù)據(jù)在時(shí)鐘的上升沿移進(jìn),并在時(shí)鐘的下降沿移出。FM25640在SPI方式0和SPI方式3時(shí)的操作時(shí)序如圖2所示。
500)this.style.width=500;" border="0" />
SPI接口是通過操作指令來控制的,F(xiàn)M25640的操作指令集如表1所列,該指令集共有6條指令。當(dāng)有效后,第一個(gè)傳輸?shù)淖止?jié)就是操作指令,緊跟著操作指令之后的是兩字節(jié)的地址,該地址共16位,其中高三位不起作用,后13位則指定了一個(gè)唯一的地址。地址后面為所要寫入的數(shù)據(jù),若數(shù)據(jù)多于1個(gè),則第一個(gè)數(shù)據(jù)之后的數(shù)據(jù)存儲(chǔ)地址由FM25640自動(dòng)按順序增加。如果地址到達(dá)最高地址1FFFH,地址計(jì)數(shù)器將重新置為0000H。
2 FM25640在電表數(shù)據(jù)存儲(chǔ)中的應(yīng)用
2.1 FM25640與MCU的連接電路
本設(shè)計(jì)中的單片機(jī)選擇MOTOROLA公司的MC68HC908LJ12,這是一款適用于電表設(shè)計(jì)的MCU,內(nèi)含12KBFlash存儲(chǔ)器并可在線編程。同時(shí)還具有一個(gè)帶有紅外功能的串行通信接口SCI,一個(gè)高速SPI,8個(gè)鍵盤輸入中斷,以及內(nèi)部LCD驅(qū)動(dòng)模塊,因而節(jié)省了外掛液晶驅(qū)動(dòng)芯片。系統(tǒng)中的電能計(jì)量芯片則選擇美國ADI公司的三相電能計(jì)量芯片ADE7758,該芯片精確度高,可以提供有功功率、無功功率、視在功率、電壓有效值和電流有效值等多項(xiàng)數(shù)據(jù),具有兩路脈沖輸出,同時(shí)也帶有SPI串口。由于SPI接口可支持多個(gè)器件掛在同一個(gè)總線上,并可通過片選信號(hào)區(qū)分每一個(gè)器件,因此,將FM25640和ADE7758都通過SPI接口與單片機(jī)MC68HC908LJ12相連,并將MC68HC908LJ12的兩個(gè)I/O口PTA4、PTA5分別與FM25640和ADE7758的片選端CS相連接,就可以實(shí)現(xiàn)片選。其具體的連接電路如圖3所示。
500)this.style.width=500;" border="0" />
2.2 工作過程
本電表系統(tǒng)上電復(fù)位后,首先將進(jìn)行一系列的初始化操作,包括單片機(jī)MC68HC908LJ12的時(shí)鐘發(fā)生模塊CGM的寄存器設(shè)置、系統(tǒng)時(shí)鐘的選擇、I/O口輸入輸出的設(shè)置、SPI的兩個(gè)控制寄存器SPCR和SPSCR的初始化、以及開中斷允許等。然后再進(jìn)行ADE7758的模式設(shè)置。在這些初始化工作完成后,ADE7758便開始將檢測(cè)到的各個(gè)電能數(shù)據(jù)存放在相應(yīng)的內(nèi)部寄存器中。單片機(jī)通過I/O口PTA4給ADE7758的CS端一個(gè)低電平,即可選中ADE7758,之后再由ADE7758乎電能數(shù)據(jù)通過SPI接口傳輸?shù)絾纹瑱C(jī)MC68HC908LJ12的RAM中。單片機(jī)在對(duì)數(shù)據(jù)進(jìn)行處理后,再通過I/O口PTA5給FM25640的CS端一個(gè)低電平,以選中FM25640,同時(shí)調(diào)用FM25640寫數(shù)據(jù)子程序,并將數(shù)據(jù)存儲(chǔ)到FM25640中。然后每隔一分鐘,MC68HC908LJ12便發(fā)出一次更新數(shù)據(jù)的命令,并重復(fù)上述過程。由于每隔一分鐘更新一次數(shù)據(jù),這樣,一年365天的擦寫次數(shù)為1×60×24×365,即525600次,而FM25640的擦寫次數(shù)達(dá)100億次,這樣計(jì)算,F(xiàn)M25640可以工作的年數(shù)為19025年!因此,如果系統(tǒng)要求更高的實(shí)時(shí)性,則完全可以縮短更新數(shù)據(jù)的周期,而FM25640出色的擦寫性能完全可以滿足要求。另外,也不必?fù)?dān)心數(shù)據(jù)傳輸過程中掉電時(shí)數(shù)據(jù)的丟失,因?yàn)镕M25640幾乎可以認(rèn)為是實(shí)時(shí)寫入,無須任何等待時(shí)間,從而保證了系統(tǒng)具有很高的可靠性。
3 軟件設(shè)計(jì)
通過FM25640的硬件SPI接口可極大地方便其軟件程序的編寫。
在對(duì)FM25640寫數(shù)據(jù)時(shí)。首先需要送WREN指令,因?yàn)镕M25640上電后的初始狀態(tài)為禁止寫操作,故應(yīng)發(fā)送WREN指令以允許寫操作。下一個(gè)執(zhí)行的指令是WRITE指令,它包括指令碼、地址以及所要寫入的數(shù)據(jù)。對(duì)FM25640讀數(shù)據(jù)的過程與寫數(shù)據(jù)類似,只是在讀操作之前不需要再先送WREN指令。限于篇幅,這里只給出FM25640寫數(shù)據(jù)的子程序:
500)this.style.width=500;" /> |
500)this.style.width=500;" /> |
4 結(jié)束語
本文介紹了FM25640的主要特性和使用方法,著重討論了它在電表數(shù)據(jù)存儲(chǔ)中應(yīng)用。由于鐵電存儲(chǔ)器在數(shù)據(jù)存儲(chǔ)方面的出色性能,它不僅可以用于電表的數(shù)據(jù)存儲(chǔ),而且可以應(yīng)用在大量的現(xiàn)代儀器儀表中(如水表、煤氣表、門禁系統(tǒng)、醫(yī)療設(shè)備、自動(dòng)取款機(jī)、汽車記錄儀、工業(yè)儀器等等)。隨著時(shí)間的推移和鐵電存儲(chǔ)器自身的發(fā)展,我們完全有理由相信,這種存儲(chǔ)器必將得到越來越廣泛的應(yīng)用。