基于新型多MCU系統(tǒng)的多功能電能表的設計
0. 引言
隨著電力電子技術的快速發(fā)展,越來越多具有諧波源作用的非線性設備投入使用,電網電能質量日益惡化,現(xiàn)行的電能計量和考核方式不利于對諧波污染源的考核和治理。合理的解決辦法是分別計量基波電能和各次諧波電能,并分諧波電能的傳遞方向分別執(zhí)行懲罰性和補償性計費制度以提高電網的電能質量。實現(xiàn)這個準確、合理的電能計量和質量評估方案的關鍵,是研制能夠進行諧波分析的多功能電能計量監(jiān)測裝置,這樣的裝置必須能夠在高速、實時采集數據的同時對數據進行快速傅立葉變換分析和對各項電能指標進行計算、顯示,這要求用多MCU系統(tǒng)設計多功能電能表。
應用多MCU系統(tǒng)的電能計量、質量監(jiān)測裝置總體框圖如圖1所示。多MCU系統(tǒng)由兩個微處理器MCU1、MCU2及數據共享接口構成,微處理器MCU1負責外圍數據采集、濾波、A/D轉換單元模塊的控制、電能指標顯示和遠程抄表數據通信等功能,MCU2負責對采集到的數據進行FFT運算和對基波及各次諧波電能數據的分時計費計算,數據共享接口則承擔著微處理器MCU1和MCU2之間數據交換共享的作用,相當于多MCU系統(tǒng)數據中心。因此,數據共享接口性能的優(yōu)劣,將直接決定著多MCU系統(tǒng)工作效率的高低和和系統(tǒng)數據保護的可靠程度。
目前,多MCU系統(tǒng)多采用雙口RAM(如IDT7134芯片)或微控制器的串行接口作為多個微處理器MCU之間數據共享接口,如圖2a、b所示。雙口RAM是一個配備兩套獨立的地址、數據、控制線的存儲器,允許兩個獨立的MCU對數據進行存取共享。當發(fā)生兩個MCU同時訪問同一地址的存儲單元時,通過內部仲裁邏輯控制電路提供訪問允許和延緩保持的訪問控制機制。以速度等級是55ns級的雙口RAM為例,由于雙MCU之間的數據共享讀寫控制突,這樣的多MCU系統(tǒng)必定存在110ns的數據交換延時周期,而且數據存儲具有易失性,系統(tǒng)一旦掉電重要數據就會丟失。另外,每個MCU需要至少16條I/O口線作為地址、數據、控制線,MCU之間的接線比較復雜。這對于運算速度高、數據量大、MCU外圍模塊多的多功能電能表來講效果并不理想。與之相比,串行通信數據共享方案效率更低,難以滿足系統(tǒng)對實時性的要求。隨著符合I2C總線標準的鐵電存儲器(FRAM)的出現(xiàn),為用戶所熟悉的I2C總線技術將為我們解決多MCU系統(tǒng)數據共享的問題,提供了一種接線簡單、數據訪問高速、無讀寫時延和數據保護可靠性高的解決方案。本文采用Ramtron公司的FM31256芯片設計了一種應用于多功能電能表的基于I2C總線的新型多MCU系統(tǒng),該系統(tǒng)實時性高,數據保護可靠,接線簡單器件集成度高,裝置體積小。
1. 符合I2C總線標準的鐵電存儲器(FRAM)工作原理和特性
1.1、 I2C總線標準
I2C 總線是PHILIPS公司開發(fā)的一種簡單、雙向、二線制、同步串行總線,只需要兩條信號線即可在連接于總線上的器件之間傳送信息,具備多MCU系統(tǒng)所需要的裁決和高低速設備同步等功能,應用極為廣泛。
I2C 總線的信號線為數據線SDA ( Serial Data) 和時鐘線SCL (Serial Clock) ,都是雙向傳輸的。數據線SDA用于在器件之間串行的傳輸數據位、地址碼、應答、非應答信號,時鐘線SCL上傳輸由主控器件發(fā)出時鐘同步信號。根據向總線發(fā)送數據還是從總線接收數據將總線上器件的工作模式分為發(fā)送和接收。通常,在I2C總線上有一個控制總線的器件,稱為主器件(Master),負責為所有的通信操作產生時鐘信號,而受控制的器件稱為從器件( Slave),可以是任何符合I2C總線標準的器件,但是主器件只能由帶CPU的器件擔任。每一個主器件都可以工作于主發(fā)送模式或者主接收模式,每一個從器件都可以工作于從接收模式或者從發(fā)送模式,并且可以有多個主器件共存于一條I2C總線上,比如本文所設計的多MCU系統(tǒng)中MCU1和MCU2在I2C 總線上都作為主器件。
通常,掛在總線上的從器件都有唯一的地址標號,稱為從地址(Slave ID),主器件通過向總線發(fā)送從地址來呼叫某個要與之交換數據的器件,這種呼叫和數據交換以I2C 總線通信協(xié)議為規(guī)范進行,這種協(xié)議由SDA、SCL信號線上的啟動(Start)、數據位傳輸(Data Bit)、應答(Acknowledge)和停止(Stop)四種狀態(tài)的變換控制,圖3a說明了這四種狀態(tài)的信號組成。其中啟動和停止由主器件發(fā)送,數據位和應答位可以由主器件發(fā)送,也可以由從器件發(fā)送。當主器件發(fā)送數據位時,它工作于主發(fā)送模式,此時從器件工作于從接收模式并對每個收到的字節(jié)數據以一個應答位作為收到確認信號。與此相反,從器件向總線發(fā)送數據位,主器件負責對每一個收到的字節(jié)數據進行應答或者非應答(根據需要用于結束通信)。通常,通信由主器件發(fā)送一個啟動狀態(tài)開始,然后發(fā)送一個帶有讀、寫識別的從地址,這個從地址的高7位標識器件的ID號,最低位標識讀寫或數據傳輸方向,0為寫1為讀。寫數據時由主器件向從器件傳送數據,讀數時由從器件向主器件傳送數據。總線上所有器件都有內部邏輯,當檢測到啟動狀態(tài)后則進入電平比較狀態(tài),如果從地址與其ID標號相符則被選中并自動產生一個應答位,從而建立通信連接,否則不予應答。一旦建立通信連接,可根據需要由通信軟件控制主、從器件之間傳輸數據字節(jié)的長短。最后,通信結束時由主器件產生一個停止狀態(tài)(Stop)以結束這次通信。圖3b說明了I2C 總線的通信時序。
評論