基于新型多MCU系統(tǒng)的多功能電能表的設(shè)計(jì)
當(dāng)I2C 總線是多主器件總線時(shí),由于SDA和SCL信號(hào)線接上拉電阻,并且各個(gè)器件的輸出都為開(kāi)漏或開(kāi)集的形式,因而構(gòu)成“線與”的功能,就是說(shuō)只要有一個(gè)器件擔(dān)當(dāng)了主器件的角色,總線就處于忙的狀態(tài),這形成了良好有序的競(jìng)爭(zhēng)檢測(cè)機(jī)制,因而不會(huì)產(chǎn)生數(shù)據(jù)共享傳輸沖突。
1.2、鐵電存儲(chǔ)器結(jié)構(gòu)原理、特性及應(yīng)用
FM31256芯片是美國(guó)Ramtron公司的最新產(chǎn)品,集成了256Kb容量的鐵電存儲(chǔ)器(FRAM)、實(shí)時(shí)時(shí)鐘(RTC)、外部事件計(jì)數(shù)器、看門(mén)狗及掉電監(jiān)測(cè)復(fù)位等功能,其結(jié)構(gòu)原理如圖4示。 其中,鐵電存儲(chǔ)器(FRAM)同時(shí)具備隨機(jī)存取記憶體(RAM)和非易失性存儲(chǔ)器(ROM)的特點(diǎn),既可無(wú)限次讀寫(xiě)存取數(shù)據(jù),又能在斷電情況下保存數(shù)據(jù),并且沒(méi)有讀寫(xiě)延時(shí)可以總線速度存取數(shù)據(jù),具有即時(shí)讀寫(xiě)的優(yōu)點(diǎn)。與此相比,E2PROM在寫(xiě)入數(shù)據(jù)后一般要5~10ms的等待數(shù)據(jù)寫(xiě)入時(shí)間,而且寫(xiě)入壽命有限,通常讀寫(xiě)一百萬(wàn)次以后數(shù)據(jù)寫(xiě)入失效,因而并不適合做數(shù)據(jù)共享存儲(chǔ)器。
在這個(gè)集成了多個(gè)邏輯器件的芯片中,鐵電存儲(chǔ)器單元(FRAM)和實(shí)時(shí)時(shí)鐘單元(RTC)均符合I2C 總線標(biāo)準(zhǔn),最大可達(dá)到1MHz的總線頻率。由于集成在同一個(gè)芯片上,F(xiàn)RAM和RTC共用同一個(gè)I2C 總線接口,但是地址標(biāo)號(hào)(Slave ID)各自獨(dú)立,分別為1010XA1A0D和1101X A1A0D,其中D 是數(shù)據(jù)傳輸方向位用于標(biāo)志讀、寫(xiě)操作,A1A0用來(lái)選擇I2C 總線上的多個(gè)同類器件,最多可以從4個(gè)FRAM或RTC器件中進(jìn)行選擇,各個(gè)器件的A1A0值由芯片的外部引腳電平?jīng)Q定。編寫(xiě)通信軟件時(shí),在I2C 總線上首先給一個(gè)啟動(dòng)(Start)信號(hào),然后發(fā)送Slave ID(1010XA1A0D),再判斷Acknowledge信號(hào),如果有,則主控器件發(fā)送兩個(gè)字節(jié)的存儲(chǔ)器地址(MSB和LSB)對(duì)FRAM的32KByte存儲(chǔ)空間進(jìn)行尋址,之后進(jìn)行數(shù)據(jù)傳輸,每個(gè)數(shù)據(jù)字節(jié)跟隨一個(gè)Acknowledge(或者Non-Acknowledge)信號(hào),通信完畢以Stop信號(hào)結(jié)束操作。其中,MSB和LSB尋址字節(jié)可以用于單字節(jié)、多字節(jié)兩種形式的存取操作,當(dāng)多字節(jié)操作時(shí)MSB指示存儲(chǔ)頁(yè)面不變,LSB保存在內(nèi)部緩存器中,每存取一個(gè)字節(jié)單元的數(shù)據(jù)LSB自動(dòng)增加1以指向下一個(gè)存儲(chǔ)單元,當(dāng)達(dá)到存儲(chǔ)范圍末端時(shí)存儲(chǔ)器地址自動(dòng)回歸0000H。這在多MCU系統(tǒng)中對(duì)特定參數(shù)的數(shù)據(jù)共享操作十分方便。
由于FRAM的上述優(yōu)點(diǎn),特別適合于那些對(duì)數(shù)據(jù)采集、讀寫(xiě)時(shí)間要求很高的場(chǎng)合,而且由于不會(huì)出現(xiàn)數(shù)據(jù)丟失,其可靠的存儲(chǔ)能力足以讓我們放心的把一些重要數(shù)據(jù)存儲(chǔ)其中。其近乎無(wú)限次寫(xiě)入的使用壽命,使它很適合擔(dān)當(dāng)數(shù)據(jù)共享存儲(chǔ)體,用來(lái)在多功能電能表的MCU之間共享數(shù)據(jù),供各個(gè)子系統(tǒng)頻繁讀寫(xiě)。
2. 基于I2C總線的多MCU系統(tǒng)結(jié)構(gòu)及工作原理
I2C 總線接口電路簡(jiǎn)單,使用靈活,加上鐵電存儲(chǔ)器的讀寫(xiě)速度高、數(shù)據(jù)保護(hù)可靠、讀寫(xiě)壽命無(wú)限等優(yōu)點(diǎn),自然為我們提供了一種十分理想的基于I2C 總線的新型多MCU系統(tǒng)構(gòu)建方案,以FM31256芯片為例設(shè)計(jì)的系統(tǒng)結(jié)構(gòu)框圖如圖5所示。
每個(gè)MCU只需兩條I/O口線如P2.2、P2.3分別與SDA、SCL總線相連即可,MCU1和MCU2分別用做控制和計(jì)算的微控制器,通常用數(shù)字信號(hào)處理器(DSP)執(zhí)行復(fù)雜算法的計(jì)算,圖5中MCU2的P2.2、P2.3線僅代表普通I/O口。另外,為了更好的協(xié)調(diào)對(duì)I2C總線資源的使用,我們設(shè)計(jì)了兩條I/O口線P2.0、P2.1用來(lái)在兩個(gè)MCU之間傳遞I2C 總線的使用信息,以達(dá)到提高多個(gè)MCU之間數(shù)據(jù)共享效率的目的。MCU1作為I2C 總線的主器件時(shí),P2.0輸出高電平以通知MCU2此時(shí)I2C 總線正被占用,使用完畢將P2.0電平置低,此時(shí)MCU2的P2.1檢測(cè)到電平跳變則判斷出I2C 總線處于空閑可用狀態(tài)。同樣,MCU2作為I2C總線的主器件時(shí),也從P2.0輸出高電平來(lái)通知MCU1此時(shí)I2C 總線正被占用,使用完畢將其置低,由MCU1的P2.1引腳根據(jù)電平跳變決定何時(shí)可以使用I2C 總線。這樣,無(wú)論何時(shí)鐵電存儲(chǔ)器都可以處于被訪問(wèn)狀態(tài),充分發(fā)揮了無(wú)讀寫(xiě)延時(shí)的優(yōu)點(diǎn),很大程度上提高了數(shù)據(jù)采集單元和FFT運(yùn)算單元之間數(shù)據(jù)交換的實(shí)時(shí)性。
這種新型多MCU系統(tǒng)構(gòu)建方案與雙口RAM的多MCU系統(tǒng)相比,既沒(méi)有數(shù)據(jù)共享沖突,也沒(méi)有讀寫(xiě)延時(shí)的缺點(diǎn),而且接線簡(jiǎn)單,數(shù)據(jù)保護(hù)可靠,讀寫(xiě)效率高,器件數(shù)量少,從多方面提高了可靠性,尤其適用于對(duì)數(shù)據(jù)處理實(shí)時(shí)性和可靠性要求高的電能計(jì)量和質(zhì)量監(jiān)測(cè)裝置。
3. 基于新型多MCU系統(tǒng)的多功能電能表的硬件結(jié)構(gòu)設(shè)計(jì)
為了合理的對(duì)諧波污染源進(jìn)行考核和治理,有必要對(duì)基波電能和各次諧波電能及其傳遞方向進(jìn)行計(jì)量,那么具備電能計(jì)量和質(zhì)量監(jiān)測(cè)的多功能電能表必須能夠在進(jìn)行高速、實(shí)時(shí)數(shù)據(jù)采集同時(shí)執(zhí)行快速傅立葉變換,從而達(dá)到諧波分析的目的。要實(shí)現(xiàn)這些功能,通常采用多MCU系統(tǒng),把控制和數(shù)據(jù)處理的功能進(jìn)行分離,以充分發(fā)揮各個(gè)微處理器MCU的功能。在此,考慮到數(shù)據(jù)采集的實(shí)時(shí)性要求和運(yùn)算量大的需要,由MCU1負(fù)責(zé)對(duì)數(shù)據(jù)采集、濾波、A/D轉(zhuǎn)換、LCD顯示等單元進(jìn)行控制,以及遠(yuǎn)程抄表通信,采用
評(píng)論