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