<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 帶RTC的I2C總線鐵電存儲(chǔ)器FM31256

          帶RTC的I2C總線鐵電存儲(chǔ)器FM31256

          作者: 時(shí)間:2006-12-28 來源:網(wǎng)絡(luò) 收藏

          摘要 是一種基于總線、采用鐵電體技術(shù)的多功能存儲(chǔ)芯片。除了非易失存儲(chǔ)器外,該器件還具有實(shí)時(shí)時(shí)鐘、低電壓復(fù)位、看門狗計(jì)數(shù)器、非易失性事件計(jì)數(shù)器、可鎖定的串行數(shù)字標(biāo)識(shí)等多種功能。文章主要介紹了的基本功能、原理,并結(jié)合實(shí)例給出了其在電磁鑄軋電源控制裝置中的具體應(yīng)用方法。
          關(guān)鍵詞 總線 鐵電體技術(shù) MSP430F

            是由Ramtron公司推出的新一代多功能系統(tǒng)監(jiān)控和非易失性鐵電存儲(chǔ)芯片。與其他非易失性存儲(chǔ)器比較,它具有如下優(yōu)點(diǎn): 讀/寫速度快,沒有寫等待時(shí)間;功耗低,靜態(tài)電流小于1 mA,寫入電流小于150 mA;擦寫使用壽命長(zhǎng),芯片的擦寫次數(shù)為100億次,比一般的EEPROM存儲(chǔ)器高10萬倍,即使每秒讀/寫30次,也能用10年;讀/寫的無限性,芯片擦寫次數(shù)超過100億次后,還能和SRAM一樣讀/寫。

            鐵電存儲(chǔ)器(FRAM)的核心技術(shù)是鐵電晶體材料。這一特殊材料使鐵電存儲(chǔ)器同時(shí)擁有隨機(jī)存取存儲(chǔ)器(RAM)和非易失性存儲(chǔ)的特性。本文介紹了FM31256的主要功能,并具體給出了基于嵌入式C語言編寫的存儲(chǔ)器讀/寫程序。

          1 FM31256的基本結(jié)構(gòu)及原理

            FM31256由256 KB存儲(chǔ)器和處理器配套電路(processor companion)兩部分組成。與一般的采用備份電池保存數(shù)據(jù)不同,F(xiàn)M31256是真正意義上的非易失(truly nonvolatile)存儲(chǔ)器,并且用戶可以選擇對(duì)不同的存儲(chǔ)區(qū)域以軟件方式進(jìn)行寫保護(hù)。

            FM31256 器件將非易失FRAM與實(shí)時(shí)時(shí)鐘()、處理器監(jiān)控器、非易失性事件計(jì)數(shù)器、可編程可鎖定的64位ID號(hào)和通用比較器相結(jié)合。其中,通用比較器可提前在電源故障中斷(NMI)時(shí)發(fā)揮作用或?qū)崿F(xiàn)其他用途。采用先進(jìn)的0.35 μm制造工藝,這些功能通過一個(gè)通用接口嵌入到14個(gè)引腳的SOIC封裝中,從而取代系統(tǒng)板上的多個(gè)元件。存儲(chǔ)器的讀/寫以及其他控制功能都通過工業(yè)標(biāo)準(zhǔn)的總線來實(shí)現(xiàn)。

            圖1為FM31256的原理圖。其中,SDA和SCL引腳用于與CPU進(jìn)行數(shù)據(jù)交換和命令寫入,數(shù)據(jù)輸出部分均具有施密特觸發(fā)器,以提高抗干擾性能;同時(shí),SDA作為二線接口中的雙向信號(hào)線,集電極開路輸出,可與二線總線上其他器件進(jìn)行“線或”。A1~A0為器件地址選擇信號(hào),即總線上可同時(shí)使用4個(gè)同類器件。正常模式下,PFI引腳分別為比較器的輸入(不可懸空),CAL/PFO引腳輸出PFI引腳的輸入信號(hào)與1.2 V參考電壓之間的比較結(jié)果;校準(zhǔn)模式下,CAL/PFO引腳將輸出512 Hz的方波用于時(shí)鐘校準(zhǔn)。CNT2~CNT1是通過備份電池支持的事件計(jì)數(shù)器的兩路輸入端,通過邊沿觸發(fā)啟動(dòng)計(jì)數(shù)器,觸發(fā)沿由用戶自由選擇。

          圖1 FM31256原理圖

          2 FM31256功能及使用方法

            在FM31256中,有25個(gè)特殊功能寄存器(SFR)00H~18H。通過對(duì)這些功能寄存器進(jìn)行操作,可以實(shí)現(xiàn)各種功能。

          2.1 特殊功能寄存器

          (1) 實(shí)時(shí)時(shí)鐘和比較器

            實(shí)時(shí)時(shí)鐘包括晶體振蕩器、時(shí)鐘分頻器和寄存器系統(tǒng)。它分割32.768 Hz的時(shí)基信號(hào)以提供1 s(1 Hz)的分辨率,寄存器(02H~08H)以BCD格式提供秒、分、時(shí)、星期、日、月、年信息,用戶可對(duì)其進(jìn)行讀/寫訪問。啟動(dòng)時(shí)鐘前須將SFR中01H地址的OSCEN位(D7)置位,振蕩器起振;同時(shí)將00H地址的R位(D0)置位,可將時(shí)鐘數(shù)據(jù)寫入寄存器用于讀出。若此時(shí)正處于時(shí)鐘刷新階段,則由于刷新操作優(yōu)先于寫入寄存器的操作,因而保證了時(shí)鐘的準(zhǔn)確性。重新設(shè)置時(shí)鐘時(shí),只須設(shè)定00H地址的W位。

            FM31256的時(shí)鐘精度可通過軟件校準(zhǔn),將00H地址的CAL位(D2)置位,時(shí)鐘進(jìn)入校準(zhǔn)模式,比較器輸出512 Hz的頻率信號(hào),并可通過設(shè)置01H地址的CAL4~CAL0位(D4~D0)確定校準(zhǔn)值。當(dāng)00H地址的CAL位(D2)為0時(shí),進(jìn)入比較器模式。

          (2) 處理器伴侶

            處理器伴侶包括CPU通常需要的功能。系統(tǒng)監(jiān)測(cè)由低電平狀態(tài)或看門狗計(jì)數(shù)溢出的中斷輸出信號(hào)。

            當(dāng)系統(tǒng)電源電壓低于設(shè)定的閾值或看門狗計(jì)數(shù)器溢出時(shí),F(xiàn)M31256將輸出低電平復(fù)位脈沖,復(fù)位信號(hào)持續(xù)100 ms。改變0BH地址的VTP1~VTP0位(D1~D0),可以設(shè)定電平檢測(cè)的閾值;改變0AH地址的WDT4~WDT0位(D4~D0),看門狗的溢出時(shí)間可以在100 ms到3 s之間選擇,其中0AH地址的WDE位(D7),用于看門狗啟動(dòng)或停止;09H地址用于監(jiān)視復(fù)位信號(hào)來源(看門狗計(jì)數(shù)器、上電復(fù)位或后備電源電壓)以及控制看門狗計(jì)數(shù)器清零。系統(tǒng)軟件須在要求的時(shí)間周期內(nèi),向09H地址的WR3~WR0位(D3~D0)寫入1010,使計(jì)數(shù)器清零。

          (3) 事件計(jì)數(shù)器

            FM31256有2個(gè)獨(dú)立的后備電池支持的16位事件計(jì)數(shù)器CN1和CN2,位于寄存器0DH~10H中。若將SFR中0CH地址的CC位(D2)置位,則可以組成一個(gè)32位的計(jì)數(shù)器。CIN1和CIN2是事件計(jì)數(shù)器信號(hào)輸入端,在32位計(jì)數(shù)器模式下CIN2無效。計(jì)數(shù)采用可編程邊沿觸發(fā)方式,若0CH地址的C1P位(D0)置位,則CIN1采用上升沿觸發(fā),否則是下降沿觸發(fā);0CH地址的C2P位(D1)用于控制CIN2。

          (4) 串行數(shù)據(jù)標(biāo)識(shí)區(qū)

            FM31256的SFR中的11H~18H地址串行標(biāo)識(shí)區(qū)中可以保存8字節(jié)(64位)數(shù)據(jù)。該存儲(chǔ)區(qū)為非易失性存儲(chǔ)區(qū),可對(duì)其進(jìn)行無限次的讀/寫操作,但如果將0BH地址的SNL位(D7)置位,則不能再對(duì)該存儲(chǔ)區(qū)進(jìn)行操作,且這種操作是不可逆的。

          2.2 FM31256的讀/寫操作

            FM31256作為從機(jī),集成了兩個(gè)功能不同的部件,每個(gè)部件都可以被獨(dú)立訪問。一個(gè)是存儲(chǔ)器,訪問時(shí)從機(jī)地址的位7~4必須被設(shè)置為1010B;若要訪問實(shí)時(shí)時(shí)鐘/處理器伴侶,則從機(jī)地址的位7~4必須被設(shè)置為1101B。該器件采用二線制的I2C接口,二線協(xié)議由SDA和SCL兩個(gè)引腳的狀態(tài)確定。共有4種狀態(tài): 開始、停止、數(shù)據(jù)傳輸及應(yīng)答。其通信基本格式如圖2所示。

          圖2 I2C總線通信基本格式

            FM31256嚴(yán)格按I2C總線的時(shí)序和數(shù)據(jù)格式操作,其訪問操作過程可描述為如下步驟: 啟動(dòng)―從機(jī)地址―應(yīng)答―目標(biāo)地址―應(yīng)答―(啟動(dòng)―從機(jī)地址―應(yīng)答)―數(shù)據(jù)(單或多字節(jié))―應(yīng)答―停止(注: 從機(jī)地址中包含了讀寫命令;括號(hào)中的步驟為當(dāng)前地址讀和連續(xù)地址讀命令所特有的)。這里對(duì)應(yīng)答信號(hào)作些說明。應(yīng)答脈沖發(fā)生在第8個(gè)數(shù)據(jù)位傳送之后。在這個(gè)狀態(tài)下,發(fā)送方須釋放SDA讓接收方驅(qū)動(dòng);當(dāng)接收方發(fā)出低電平時(shí),表示正常應(yīng)答,當(dāng)發(fā)出高電平時(shí),表示無應(yīng)答。不應(yīng)答有兩種情況: 一是數(shù)據(jù)傳送出錯(cuò),無應(yīng)答使發(fā)送方終止當(dāng)前操作,以便重新尋址;二是接收方有意不作應(yīng)答,以結(jié)束當(dāng)前操作。

            在對(duì)SFR操作時(shí),首先發(fā)送的命令字節(jié)為“1 1 0 1 X A1 A0 R/W”,目標(biāo)地址為單字節(jié)范圍(00H~18H)。FM31256的32 KB存儲(chǔ)單元地址為0000H~7FFFH,對(duì)其進(jìn)行操作時(shí),首先發(fā)送的命令字節(jié)為“1 0 1 0 X A1 A0 R/W”,目標(biāo)地址長(zhǎng)度為雙字節(jié),即RAM區(qū)的尋址能力為0~65 535。FM31系列存儲(chǔ)器具有內(nèi)部地址鎖存和自動(dòng)累加功能,當(dāng)對(duì)連續(xù)地址區(qū)進(jìn)行讀/寫操作時(shí),只須發(fā)送存儲(chǔ)區(qū)首地址。

          3 FM31256在電磁鑄軋電源控制中的應(yīng)用

            將FM31256應(yīng)用在電磁鑄軋電源控制裝置當(dāng)中,實(shí)現(xiàn)主控系統(tǒng)的看門狗復(fù)位、給定參數(shù)、實(shí)時(shí)時(shí)鐘及故障記錄保存的功能。

            作為一種解決微處理器因干擾而死機(jī)問題的有效方法,看門狗的作用是必不可少的。針對(duì)控制對(duì)象,需要對(duì)A、B、C三相控制裝置進(jìn)行調(diào)節(jié),包括設(shè)定正弦波的頻率和幅值、反饋系數(shù)、PID參數(shù)、過流延時(shí)、開放延時(shí)和關(guān)斷延時(shí)等;將這些給定的參數(shù)及時(shí)寫入鐵電存儲(chǔ)器FM31256的存儲(chǔ)單元中,使之掉電后仍能保存。當(dāng)系統(tǒng)發(fā)生故障時(shí),例如控制裝置中晶閘管周圍溫度超過額定溫度,裝置就會(huì)發(fā)出報(bào)警信號(hào),并將發(fā)生故障的準(zhǔn)確時(shí)間、實(shí)際溫度值記錄在FM31256的存儲(chǔ)單元中,以便系統(tǒng)查詢;同時(shí),F(xiàn)M31256的事件計(jì)數(shù)器加1計(jì)數(shù)。同樣,利用串行標(biāo)識(shí)區(qū)可鎖定的功能,可將電磁鑄軋電源控制裝置的序列號(hào)寫入其中,非常安全可靠。

          3.1 硬件原理

            電磁鑄軋電源控制裝置應(yīng)用FM31256的硬件接口電路如圖3所示。從圖3中可以看出,系統(tǒng)以超低功耗MSP430系列芯片MSP430F149作為控制器;FM31256作為參數(shù)存儲(chǔ)單元,與處理器之間采用I2C總線進(jìn)行通信。由于MSP430F149沒有I2C總線接口,所以任取2個(gè)I/O口模擬。實(shí)時(shí)時(shí)鐘在VDD掉電以后自動(dòng)切換到后備電源VBAK。

          圖3 FM31256與MSP430F149的硬件接口電路

            32.768 kHz晶振等效于6 pF電容。若將SFR的01H單元對(duì)應(yīng)的OSCEN位設(shè)為0,同時(shí)置00H單元的CAL位為1,使CAL引腳輸出512 Hz的脈沖信號(hào),則可檢測(cè)晶振工作是否正常,因?yàn)?12 Hz是晶振頻率的64分頻。制PCB板時(shí)須注意: X1和X2晶振引腳均為高阻引腳,兩引腳之間的距離須小于5 mm;即使信號(hào)位于板內(nèi)層,也不允許信號(hào)線靠近X1和X2引腳。在晶振引腳周圍使用接地保護(hù)環(huán),內(nèi)部或板反面使用接地保護(hù)敷銅。

          3.2 存儲(chǔ)區(qū)訪問程序設(shè)計(jì)

            對(duì)FM31256存儲(chǔ)器訪問操作過程中,微處理器處于主機(jī)地位,器件始終處于從機(jī)地位。根據(jù)上述對(duì)FM31256的分析,可以把所有的通信過程歸納為3種類型: ① 單脈沖,如Start、Stop、Ack、Nack;② 字節(jié)發(fā)送,如從機(jī)地址、目標(biāo)地址和數(shù)據(jù)傳送;③ 字節(jié)接收,如讀操作中的數(shù)據(jù)傳送。因此只要把這些操作以子程序的形式編寫好,所有的通信操作就可通過調(diào)用這些子程序來完成。這里以MSP430F149微處理器的嵌入式C語言編寫。設(shè)微處理器端口P6.6為數(shù)據(jù)線(SDA);P5.4為時(shí)鐘線(SCL)。

            限于篇幅,本文不作詳細(xì)介紹,只給出模擬I2C總線及字節(jié)寫入、讀出的部分C語言程序:

            #define_SDABIT6
            #defineRTC_SCLBIT4
            void FM31256_Start(void) {/*FM31256啟動(dòng)程序*/
              P6OUT |=RTC_SDA;// SDA=1
              P5OUT |=RTC_SCL;// SCL=1
              delay(IIC_DELAY);
              P6OUT =~ RTC_SDA;// SDA=0
              delay(IIC_DELAY);
              P5OUT =~ RTC_SCL;// SCL=0}
            void FM31256_Stop( void ) {/*FM31256停止程序*/
              P6OUT =~ RTC_SDA;// SDA=0
              delay(IIC_DELAY);
              P5OUT |=RTC_SCL;// SCL=1
              delay(IIC_DELAY);
              P6OUT |=RTC_SDA;// SDA=1
              delay(IIC_DELAY);}
            void FM31256_Send_Ack( void ) {/*FM31256應(yīng)答程序*/
              P5OUT =~ RTC_SCL;// SCL=0
              P6OUT =~ RTC_SDA;// SDA=0
              P5OUT |=RTC_SCL;// SCL=1
              delay(IIC_DELAY);
              P5OUT =~ RTC_SCL;// SCL=0}
            void FM31256_Send_noAck( void ) {/*FM31256不應(yīng)答程序*/
              P5OUT |=RTC_SCL;// SCL=1
              delay(IIC_DELAY);
              P5OUT =~ RTC_SCL;// SCL=0}

            說明:SCL線是高電平時(shí),SDA線從高電平向低電平切換,表示起始條件;當(dāng)SCL是高電平時(shí),SDA線由低電平向高電平切換,表示停止條件。相關(guān)的確認(rèn)時(shí)鐘脈沖由主機(jī)產(chǎn)生,在確認(rèn)的時(shí)鐘脈沖器件發(fā)送方釋放SDA(高電平),在此期間接收方須將SDA拉低。

            void FM31256_transfByte_to_IIC( unsigned char tran_byte ) {/* CPU字節(jié)發(fā)送程序*/
              unsigned char i , current_bit =0x80;
              P5OUT =~ RTC_SCL;
              delay(IIC_DELAY);
              for( i=0; i =7; i++ ) {
                if ( tran_byte current_bit )
                P6OUT |= RTC_SDA;
              else
                P6OUT =~ RTC_SDA;
              current_bit >>=1;
              delay(IIC_DELAY);
              P5OUT |=RTC_SCL;//SCL=1
              delay(IIC_DELAY);
              P5OUT =~ RTC_SCL;//SCL=0
              delay(IIC_DELAY);
              }
            }
            unsigned char FM31256_receByte_from_IIC( void ){/*CPU字節(jié)接收程序*/
              unsigned char mvalue, i, rece_data =0;
              P6DIR =~ RTC_SDA;//設(shè)置為輸入方向
              P5OUT =~ RTC_SCL; //SCL=0
              delay(IIC_DELAY);
              for(i=0;i8;i++) {
                rece_data = rece_data1;
                P5OUT |=RTC_SCL;//SCL=1
                delay(IIC_DELAY);
                mvalue = P6IN RTC_SDA;//當(dāng)前位的值
                if( mvalue )//接收位為高
                  rece_data = rece_data | 0x01;
                else//接收位為低
                  rece_data = rece_data 0xFE;
                P5OUT =~ RTC_SCL;//SCL=0
                delay(IIC_DELAY);
              }
              P6DIR |=RTC_SDA;//P6.6輸出
              return(rece_data);//返回收到的字節(jié)
            }

            說明:發(fā)送到SDA線上的每個(gè)字節(jié)須為8位。tran_byte為CPU要發(fā)送的字節(jié),CPU讀入的數(shù)據(jù)存儲(chǔ)在rece_data中。對(duì)FM31256存儲(chǔ)器可以直接對(duì)當(dāng)前地址進(jìn)行“讀”操作,也可以連續(xù)“讀/寫”多個(gè)字節(jié)而無須逐一指定地址。依據(jù)上述一般步驟,對(duì)存儲(chǔ)器的訪問操作可歸納為3種基本操作: ① 設(shè)置當(dāng)前操作目標(biāo)地址; ② 寫入數(shù)據(jù); ③ 讀出數(shù)據(jù)。

            訪問存儲(chǔ)器操作有多種,如內(nèi)存“寫”、當(dāng)前地址或順序連續(xù)“讀”和隨機(jī)地址“讀”操作。在控制程序中,需要向FM31256內(nèi)存中寫入并讀出給定參數(shù)、故障信息等數(shù)據(jù)。內(nèi)存讀/寫的方法如下:

            內(nèi)存寫操作,首先由CPU發(fā)送從機(jī)地址,然后是內(nèi)存16位地址,主機(jī)通過設(shè)置從機(jī)地址字節(jié)的最低位為0聲明一個(gè)寫操作;接收應(yīng)答信號(hào)后,CPU向FM31256發(fā)送數(shù)據(jù)的每個(gè)字節(jié),之后器件又產(chǎn)生應(yīng)答信號(hào),任何數(shù)量的連續(xù)字節(jié)可以被寫入,以停止信號(hào)結(jié)束傳輸。有兩種類型的讀操作:當(dāng)前地址讀操作和隨機(jī)地址讀操作。讀操作同樣先由CPU發(fā)送從機(jī)地址,主機(jī)通過設(shè)置從機(jī)地址字節(jié)的最低位為1聲明一個(gè)讀操作。當(dāng)要進(jìn)行隨機(jī)讀操作時(shí),還要在讀取數(shù)據(jù)之前,發(fā)送16位內(nèi)存地址之后讀取任意個(gè)字節(jié),每個(gè)字節(jié)后應(yīng)跟隨應(yīng)答信號(hào),以停止信號(hào)結(jié)束傳輸。

            在電磁鑄軋電源控制裝置的主控程序中,還將調(diào)用時(shí)鐘刷新函數(shù)Flash_time()、時(shí)鐘寫入函數(shù)Write_time()、寄存器寫入函數(shù)Register_write()和寄存器讀出函數(shù)Register_read()。

            啟動(dòng)RTC和WatchDog的流程圖如圖4所示。

          圖4 啟動(dòng)RTC和WatchDog的流程圖

          結(jié)語

            將鐵電存儲(chǔ)器用于電磁鑄軋電源控制裝置中,與MSP430系列單片機(jī)相結(jié)合,充分發(fā)揮了其強(qiáng)大的功能;同時(shí)取代了傳統(tǒng)的EEPROM和實(shí)時(shí)時(shí)鐘芯片,既降低了硬件成本,又簡(jiǎn)化了軟件設(shè)計(jì)。實(shí)踐證明,F(xiàn)M31256具有良好的推廣應(yīng)用前景。

          參考文獻(xiàn)

          [1] Ramtron International Corporation. FM3104/16/64/256 Integrated Processor Companion with Memory.2002.
          [2] 胡大可.MSP430系列單片機(jī)C語言程序設(shè)計(jì)與開發(fā).北京:北京航空航天大學(xué)出版社,2003.
          [3] 孫樹印.鐵電存儲(chǔ)器原理及應(yīng)用比較.單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2004(9).

          分頻器相關(guān)文章:分頻器原理


          關(guān)鍵詞: 31256 RTC I2C FM

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();