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