鐵電存儲器FM3808在TMS320VC5402系統(tǒng)中的應(yīng)用
摘要:FM3808是Ramtrom公司生產(chǎn)的新型超低功耗非易失鐵電存儲器,該器件可支持對存儲區(qū)的高速讀寫,并可進(jìn)行近乎無限次的寫入。FM3808內(nèi)部除具有256kB的存儲陣列外還集成了實時時鐘和系統(tǒng)監(jiān)控模塊,因而功能十分強(qiáng)大。文中介紹了FM3808的性能特點、內(nèi)部結(jié)構(gòu)和工作原理,分析了TMS320VC5402 DSP的并行引導(dǎo)裝載模式。給出了DSP與FM3808組成的并行引導(dǎo)接口方案。
關(guān)鍵詞:鐵電存儲器 數(shù)字信號處理器 并行引導(dǎo)裝載模式 FM3808
1 引言
鐵電存儲器(FRAM)是Ramtron公司近年推出的一款掉電非易失性存儲器,它的核心技術(shù)是鐵電晶體材料。這一特殊材料的運(yùn)用使鐵電存儲器可以同時擁有隨機(jī)存儲記憶體(RAM)和非易失存儲器的綜合特性。與EEPROM相比,F(xiàn)RAM可以總線速度寫入數(shù)據(jù),且在寫入之后不需要任何延時等待。面EEPROM的慢速和大電流寫入使其需要用高出FRAM2500倍的能量去寫入每個字節(jié)。同時,F(xiàn)RAM有近乎無限次的寫入壽命,而且價格比相同容量的不揮發(fā)鋰電SRAM低很多,因此,F(xiàn)RAM特別適合那些對數(shù)據(jù)采集、寫入時間要求很高的場合。自FRAM問世以來,已憑借其各種優(yōu)點被廣泛應(yīng)用于測量和醫(yī)療儀表、航空航天、門禁系統(tǒng)和汽車黑匣子等系統(tǒng)之中。
2 主要特性有內(nèi)部結(jié)構(gòu)
FM3808是一款存儲容量為32k8bits的新型FRAM(減16字節(jié)),它具有高速讀寫、超低功耗和無限次讀寫等特性。其主要特點如下:
*采用327528位存儲結(jié)構(gòu);
*讀寫次數(shù)高達(dá)10 11次,具有10年的數(shù)據(jù)保存能力;
*最快并行讀取速度為70ns,寫入無延時;
*具有實時時鐘和日歷功能,時鐘寄存器在地址空間的最上16字節(jié)處;
*外部供給后備電源,提供32.768kHz的時間記錄晶振;
*具有可編程的實時、日歷時鐘和報警時間;
*可編程的看門狗定時器;
*可編程的電源監(jiān)控模塊。
FM3808芯片上集成了了三種不同的功能:32k8B的存儲單元、實時時鐘、日歷功能、系統(tǒng)監(jiān)控功能。其結(jié)構(gòu)框圖如圖1所示。
3 FM3808功能說明
3.1 FM3808實時時鐘操作
實時時鐘(RTC)由晶體振蕩器、時鐘分頻器和一個系統(tǒng)寄存器組成。晶體振蕩只有在控制寄存器器(7FF8h)的第7位設(shè)置為0時才能開始工作,時鐘分頻器將32.768kHz的信號分頻成1kHz,并以秒為單位來計數(shù),可以用標(biāo)志寄存器(7FF0h)并通過設(shè)置R和W來對各實時鐘寄存器進(jìn)行讀和寫。實時時鐘需要提供電源才能工作,當(dāng)供電電壓VDD下降到低于補(bǔ)給電壓VBAK時,實時時鐘電源由VBAK供給。對于FM3808來說,用戶可以選擇用電流做電源,也可以選擇用電容來完成供電。使用1000μF的電容時,其供電時間可達(dá)30分鐘,若使用0.4μF的電容,則供電時間可長達(dá)240小時。
當(dāng)標(biāo)志寄存器的第2位(CAL)設(shè)置成1時,實時時鐘進(jìn)入校準(zhǔn)模式。在校準(zhǔn)蟶希INT引腳將輸出512Hz的方波,用戶可以通過測量INT腳偏離512Hz的誤差來進(jìn)行時鐘校準(zhǔn),校準(zhǔn)誤差由用戶寫入到7FF8h單元。在進(jìn)行完時鐘校準(zhǔn)以后,在校準(zhǔn)溫度下每月的最大誤差為4.34ppm分,通過置CAL位為0可退出時鐘校準(zhǔn)模式。
3.2 FM3808監(jiān)控操作
系統(tǒng)監(jiān)控主要包括:報警功能、看門狗定時器、電源監(jiān)控器和系統(tǒng)中斷。
報警功能是把應(yīng)用編程寫入的時間值和系統(tǒng)相應(yīng)的值進(jìn)行對比,如果匹配,就通過INT產(chǎn)生中斷并設(shè)置相應(yīng)的標(biāo)志位AF為1。報警功能提供有四種匹配值,分別為秒、分、時、日,通過設(shè)置相應(yīng)的位為0可選擇對比位。
看門狗定時器由可裝載計數(shù)器和自由運(yùn)行的計數(shù)器組成,看門狗定時器的工作頻率為32Hz,此時晶振OSCEN必須設(shè)置為0。定時器溢出值存放在7FF7h。系統(tǒng)上電時會自動將溢出值加載到裝載寄存器,此時自由運(yùn)行計數(shù)器開始計時。當(dāng)計數(shù)器的值與裝載值之前,可以通過設(shè)置WDS位為1來重新裝載溢出值,而此時不會有中斷產(chǎn)生。
電源監(jiān)控功能是將VDD與三個門電壓相比比較。這三個門電壓分別為中斷門電壓VINT、存儲器停止門電壓VLO、外部供給電壓VBAK。當(dāng)VDD達(dá)到不同的電壓門限時,F(xiàn)M3808內(nèi)相應(yīng)的功能將停止工作。FM3808共可產(chǎn)生四個外部中斷:看門狗中斷、報警時鐘中斷、電源低電壓中斷和供給電源中斷。
3.3 FM3808存儲器操作
FM3808邏輯上可以分成327688位存儲結(jié)構(gòu),最上面的16字節(jié)分給了實地時鐘的寄存器。FM3808通過并行口與外部微處理器進(jìn)行接口,其操作與SRAM十分類似。FM3808半存儲單元分成32個塊,每塊由256行和4列即1k8的結(jié)構(gòu)組成。其中A0~A7為行選擇線,A8~A9為列選擇線,A10~A14為塊選擇線。FM3808芯片的CE不能接地,這與普通SRAM不同。FM3808的讀取過程是這樣的:在CE的下降沿,地址信號被鎖存,并啟動一個讀周期,此后即使CE發(fā)生變化也不會影響這個周期的完成。由于FM3808需要在CE的下降沿才能鎖存地址信號,所以不能被CE接地,有效讀時序如圖2所示。
在讀時間數(shù)據(jù)之前,需把7FF0.0設(shè)置為“1”,讀出時間數(shù)據(jù)后,應(yīng)將7FF0.0設(shè)置為“0”。在讀數(shù)據(jù)時,當(dāng)?shù)刂沸盘栨i存后,在OE允許的情況下,DQ0~DQ7輸出數(shù)據(jù)。FM3808共有兩種寫工作模式,一種是由WE來控制,另一種是由CE控制。由WE控制的寫時序如圖3所示。
雖然FM3808要求在CE下降之間,地址信號要存在5ns的時間,但實際應(yīng)用證明,同時輸出CE與地址信號的接法也是可以的。由于FRAM的讀寫過程會對內(nèi)部存儲單元造成改變,因此在一次讀或?qū)懞?,要很快對原有的?shù)據(jù)進(jìn)行“修補(bǔ)”。“修補(bǔ)”的過程在CE為高電平時進(jìn)行,所以在一次讀寫的操作中,CE為低的時間不能太長,否則FM3808將來不及“修補(bǔ)”原有數(shù)據(jù)而造成數(shù)據(jù)丟失。FM3808規(guī)定CE為低的時間不超過10μs。
4 與TMS320C5402的引導(dǎo)接口
TMS320C5402上電后將首先檢查MP/MC引腳的狀態(tài),若該腳為低電平,說明DSP被設(shè)置為微計算機(jī)模式,從片內(nèi)ROM的0FF80h地址開始執(zhí)行程序。在TMS320C5402的0FF80h地址處,存放著一條跳轉(zhuǎn)至0F800h處執(zhí)行DSP自引導(dǎo)裝載(Bootloader)程序的指令。當(dāng)TMS320C5402的Bootloader程序時,它將會按HPI裝載模式→串行EEPROM裝載程序→并行裝載模式→標(biāo)準(zhǔn)串行口裝模式→I/O口裝載模式的順序循環(huán)檢測,以決定執(zhí)行哪種啟動模式。
采用并行裝載模式對程序進(jìn)行加載國時,要根據(jù)并行裝載的格式來配置Flash的程序數(shù)據(jù)存儲空間??上仍贒SP對應(yīng)的數(shù)據(jù)空間FFFEH和FFFFH地址內(nèi)寫入要存放程序的地址,然后根據(jù)并行裝載的數(shù)據(jù)流,將標(biāo)識控制字、各個寄存器的初始化值、裝載后的起始運(yùn)行地址、程序段的大小和裝載地址依次寫入Flash存儲程序的地址中,電子最后寫入編寫的程序。
FM3808與TMS320C5402的并行接口設(shè)計如圖5所示,由于FM3808的工作電源為5V,因而系統(tǒng)中使用了SN74LVTH6244和SN74LVTH2245來完成接口設(shè)計。又由于TMS320C5402數(shù)據(jù)的尋址范圍最大為64k字,而在自己不編寫B(tài)ootloader程序的情況下,并行引導(dǎo)裝載模式最大只能裝載32k字的程序或數(shù)據(jù)。因此,若程序數(shù)據(jù)大于32k,就需要重新設(shè)計。
TMS320C5402上電復(fù)位裝載時,由于Bootloader程序已在初始化時將XF設(shè)置為高電平,因而在通過EPM3202總的邏輯后,TMS320C5402可以將FM3808 08000h-0FFFFh單元中的數(shù)據(jù)讀到TMS320C5402對應(yīng)于000h-3FFFh尋址區(qū)的片內(nèi)DARAM中。而在系統(tǒng)進(jìn)入并行引導(dǎo)裝載模式后,TMS320C5402會從數(shù)據(jù)尋址為0FFFFh的單元(A15=1,選中Flash)中讀取將要載入的程序存儲區(qū)首地址,然后從程序存儲首地址處將標(biāo)識控制字、各個寄存器的初始化值、裝載后的起始運(yùn)行地址、程序段的大小,裝載地址依次裝載到片內(nèi)DRAM中。
若程序較大,而系統(tǒng)中還要有其它數(shù)據(jù)存儲器來存放數(shù)據(jù),那么就需要讓出FM3808所占用的數(shù)據(jù)空間,此時可在EPM3202邏輯控制中使用XF。并可用主處理程序的第一條語句RSBX XF來置XF引腳為低電平,同時使CE片選無效,從而讓出數(shù)據(jù)空間。若程序較小,而FM3808還需做為數(shù)據(jù)存儲單元,那么可設(shè)置XF為高,然后通過CPLD中的邏輯程序來控制數(shù)據(jù)的寫入和讀出。CPLD的內(nèi)部邏輯如圖6所示。
5 設(shè)計中應(yīng)注意的問題
(1)該設(shè)計方案在TMS320C5402執(zhí)行Bootloader程序時所能尋址的并行接口FRAM的最大空間為32k字節(jié),如果脫機(jī)獨(dú)立運(yùn)行系統(tǒng)的程序超過了32k字節(jié),則只能采用另外的替代方法。
(2)FM3808中的程序數(shù)據(jù)流要嚴(yán)格按照并行裝載的數(shù)據(jù)流來編寫,以確保并行裝載的成功。對FM3808數(shù)據(jù)的寫入和讀出應(yīng)通過設(shè)置SN74LVTH2245的OE和DIR來共同完成,本系統(tǒng)就是通過CPLD來進(jìn)行邏輯控制的,實際上也可用VHDL語言來編寫邏輯。
(3)在設(shè)計過程中,可以利用FM3808中的看門狗電路來對系統(tǒng)運(yùn)行進(jìn)行監(jiān)控。系統(tǒng)必須使用FM3808的低電壓檢測功能,在檢測到掉電后,CPU應(yīng)立即把CS端的電平置“1”,以防止在上電或掉電時FM3808中的數(shù)據(jù)發(fā)生改變。
6 結(jié)語
FM3808是擁有高速讀寫,超低功耗和無限次寫入等特性的高性能并口存儲器,它內(nèi)部集成了實時時鐘和系統(tǒng)監(jiān)控功能,具有很強(qiáng)的實用性。通過FM3808與TMS320C540組成的硬件系統(tǒng),可完成證實系統(tǒng)的穩(wěn)定性和FM3808的性能優(yōu)勢。FRAM以其快速寫入、抗干擾、低功耗等優(yōu)點,必須成為一種頗具競爭力的存儲器。
評論