基于新型Cortex-M3內核STM32的三相多功能電能表解決方案
電能表作為電能計量的基本設備,受到國家電力部門的長期重視,電能表生產企業更是不遺余力地尋求設計與開發性能俱佳且成本更低的解決方案。目前國內的電能表設計已經走過了由8位MCU向通用DSP甚至專用DSP的變革,通用DSP的應用方案的劣勢在于DSP的專業應用和嵌入程度不夠深的問題,成本偏高;而專用DSP功能相對固定,這樣給電能表設計和生產廠家帶來功能差異化空間不足的困難。基于ARM的方案也已經出現,但是適合應用的ARM7 TDMI在性能上不盡人意,同時外設資源不足;而更高端的ARM9系統的復雜程度很高,成本也較高。選擇一顆合適且低成本的微處理器日益成為電能表行業的關鍵所在,直到意法半導體公司(STMicroelectronic公司,下稱ST)STM32的出現為電能表設計的專門化和定制化帶來了嶄新的機遇和空間。
一、關于CORTEX-M3與STM32
2005年ARM公司發布其最新一代ARM v7內核,命名為Cortex,同ARM7/9/10/11相比在架構上有了革命性突破,性能上更是本質的飛越,Cortex系列包含三個系列,-A/-R/-M。Cortex-M3特別針對功耗和價格敏感的嵌入應用領域,同時具備高性能,它采用高效的哈佛結構三級流水線,達到1.25DMIPS/MHz,在功耗上更是達到0.06mW/MHz。Cortex-M3使用Thumb-2指令集,自動16/32位混合排列,具有很高的代碼密度。單周期的32位乘法以及硬件除法器,保證Cortex-M3的運算能力有大幅提高,在一些對計算能力要求相對較低而嵌入式要求相對較高的場合,STM32就具有取代傳統DSP的潛力甚至優勢。Cortex-M3包含嵌套向量中斷控制器NVIC,中斷響應速度最快僅6周期,內部集成總線矩陣,支持DMA操作及位映射。
STM32是ST公司在業界最先推出的基于ARM Cortex-M3內核產品,繼承了Cortex-M3內核的優良血統,同時增加了ST高性能的外設資源,FLASH、SRAM存儲器,豐富的串行通信接口,如IIC、SPI、USART、CAN、USB等,以及12位的ADC和DAC模塊,支持外部存儲器訪問的靈活的靜態存儲器控制器FSMC。
二、基于STM32的電能表方案
根據電能表的功能和誤差精度的需求,我們選用了ST公司STM32的增強型系列STM32F103xx,最高工作頻率為72MHz。在程序設計上除了完成快速數據處理工作以外,還針對系統非線性失真進行了修正和補償。
電能表系統組成框圖如圖1所示:
(一)采集數據處理與計算
在實際應用中,電力信號通過互感器采集到電能表中,通過一個6通道16位模擬前端處理器(AD73360)進行A/D轉換,轉換成數字信號并傳輸到STM32中。AD73360是6通道同步采樣的Σ-ΔADC器件,它內置了基本型電壓基準及通道內置獨立的PGA(可編程增益放大器),非常適合三相電流電壓信號的同步采樣,在小信號的時候,通過調整通道PGA可以獲得合適的動態范圍從而保證微弱信號的計量精度。電能表數據采集框圖示于圖2。
電壓電流輸入信號首先需要RC濾波網絡濾波和數據采樣,然后進行A/D轉換。AD73360有獨立的時鐘源,可配置為自動數據采集與發送模式,通過SPI總線不斷的將數據傳向STM32。STM32內的Cortex-M3內核對輸入的數字信號進行處理,完成數字濾波,過零點檢測,得到基本的電流電壓數據,經過時間積分計算和轉換得到相應的電能計量。
(二)采樣電路和濾波網絡
由于被采樣信號為高電壓信號和大電流信號,我們需要對被采樣信號做高保真轉換為雙極性的電壓信號以便用AD電路離散化處理,而AD73360是單電源供電模擬前端,所以我們需要令輸入信號位于AD73360的動態范圍的正中。采用的方法是:定義ADC工作電壓為5伏(動態范圍0~5V),選擇參考電壓2.5伏,將AD差分輸入的負端直接接到參考電壓輸入,差分輸入的正端接被測信號。具體電路如圖3。
在實際電路中,相電流信號經CT變換為低電壓信號,相電壓則通過高精度電阻網絡分壓得到線性的低電壓信號,信號幅度范圍需保證在5V之內。
(三)AD73360與STM32的接口
因為AD73360產生的基礎數據總量龐大,為了盡量少的占用CPU時間,需要使用STM32內部的硬件SPI和DMA單元實現數據傳輸,而STM32的內核根據DMA的傳輸結果來批量獲取基礎數據并啟動數據處理程序。硬件連接關系如圖4所示。
由STM32的GPIO控制AD73360的SE和RESET,并用一個外部中斷輸入腳來監聽幀同步信號,這樣才可以用程序來保證數據幀內容的字節對應關系。
在STM32的硬件設置程序中,需要關閉SPI的所有中斷,設置SPI為從模式,并選取一個DMA通道與之協同工作,自動將SPI從模式收到的數據保存在指定的內存地址。為了令AD73360正確采集數據,還必須根據使用要求配置AD73360的內部寄存器,令AD73360處于數據模式并主動向STM32發送采樣數據。
三、主要電能參量的計算
AD73360是固定周期采集,我們使用的是150Hz或160Hz,即每周期采集150/160點,為此AD73360采用的時鐘是6.000MHz或16.384MHz,系統中對AD73360的配置為DMCLK分頻因子為2048。AD73360是差分采集,很方便進行過零點檢測和直流分量調節,以保證信號幅度對稱,從而減小系統誤差。
電壓測量(有效值)計算式:
式中:U-電壓有效值,n-每周期采樣點數, uk —電壓采樣值
電流測量(有效值)計算式:
式中:I-電流有效值,n-每周期采樣點數, ik-電流采樣值
在得到的電流電壓有效值基礎上計算出總功率S(即視在功率),通過對時間積分的電流電壓積得到有功功率P,無功功率Q是總功率S與有功功率P之差,功率因數是有功功率P與總功率S的比。
對于單器件和三相四線星形負載的有功功率和無功功率的計算匯總如下:
單元件有功功率計算式:
式中: P-單元件有功功率,n-每周期采樣點數, uk-元件上電壓采樣值, ik-元件上電流采樣值
單元件無功功率計算式:
式中:Q-單元件無功功率,n-每周期采樣點數, uk-元件上電壓采樣值, ik-元件上電流采樣值(90度移相后)
三相四線三元件有功功率計算式: PΣ=Pu+Pv+Pw
式中: PΣ-三相有功功率,Pk -(k=u,v,w)各相有功功率
三相四線三元件無功功率計算式: QΣ=Qu+Qv+Qw
式中: QΣ-三相無功功率,Qk -(k=u,v,w) 各相無功功率
四、非線性失真的補償與修正
電信號采集過程中可能存在的電磁元件(CT或PT)會造成采集信號和實際信號之間的相位失真以及線性失真。為了補償和修正這些失真帶來的誤差,還需要使用分段矯正和補償的方法。例如,根據CT(PT)的相移曲線選擇合適的兩個點將整個量程分為三段,在測量值分處不同的段時,分別調用不同的相移參數對測量值進行相位補償。
線性度補償參數和相位補償參數的獲取方法(校準過程)如下:
1、零偏校準:令所有通道輸入為零,分別記錄各通道零點位置。
2、電壓校準:令所有電壓通道輸入值為標準電壓值220V(RMS),記錄各相電壓校準參數。
3、電流校準:令所有電流通道輸入值為分界點電流,記錄各通道小電流測量段校準參數。再令所有電流通道輸入值為最大值,分別記錄各通道大電流測量段的校準參數。
4、相移校準:分別令電流電壓通道輸入相位相差60度感性,并且電流通道的電流值處于相位補償段的中間點,并根據有功電能誤差來求取該補償段的相位補償參數。
5、求取的全部補償參數存儲在非易失存儲器中,例如STM32的FLASH。
五、電能表配合電路
除了測量計量功能外,電能表還需要實現通訊,存儲以及時間管理功能,具體的程序和做法在此不再贅述,但為了實現完整的電能表功能,其周邊器件的選擇卻很關鍵。
實時時鐘電路:Intersil的ISL12022M是內置時鐘晶體的高可靠性全自動溫度補償RTC芯片。該RTC依靠工廠預校準,和全工業級溫度范圍的自動溫補來保障電子產品全生命周期的計時精度,免除了電表的時鐘校準的工藝過程,降低了生產成本。該RTC還具有電池狀態監測、上電/掉電時間戳記錄功能和內置數字溫度傳感器功能,更可以用在除電表外的綜合電力終端設備中。
電壓參考基準:Intersil的ISL21009系列是低噪聲,高穩定度的精密電壓基準,用于在AD73360內置基準的穩定度(50ppm)不夠的情況下,為測量系統補充提供更高穩定度(5ppm)的參考電壓。
電源管理電路:ON Semiconduction的NCP3063是低成本、高效率的DC/DC穩壓器,它對外圍電路要求簡單,輸入電壓范圍寬達40伏。而電能表往往工作在很寬的輸入電壓范圍條件下,因此,NCP3063非常適合用在電能表工頻變壓器后面做5伏或3.3伏的直流穩壓。
通信接口電路:Intersil的ISL3152E是全功能RS485接口芯片,該接口芯片擁有多項特別適合于電能表AMR系統的特性指標。其中包括,1/8標準負載驅動(256節點),正負16.5千伏ESD保護,熱插拔功能(節點電源變化不影響總線通信),20Mbps總線速率,支持星型拓撲網絡等等。
結語
基于CORTEX的STM32的三相電能表方案已經證明是當前的主流的最具優勢的方案,得到了業界的廣泛好評和認可。目前,本方案已成功應用在某大型電表生產企業0.5S電子式三相多功能電能表中。
評論
查看更多