- 相關(guān)推薦
基于MSP430的三相電能表SA9904B采集系統(tǒng)
摘要本文介紹由TI公司的MSP430F435單片機(jī)和SAMES的SA9904B電能測(cè)量集成芯片組合成三相電能表的無(wú)用功率和有用功率等參量的采集系統(tǒng)。
關(guān)鍵詞
MSP430SA9904B采樣
1、前言
目前新型的電子式多功能電能表已逐漸取代老式電子電能表。由于模數(shù)轉(zhuǎn)換電路采樣精度,及微處理器的價(jià)格,軟件的開發(fā)難度,存在不少問題和難度。本文基于德州儀器的MSP430F435單片機(jī),介紹采用SAMES的SA9904B高集成度的采樣芯片進(jìn)行三相電能的有用功和無(wú)用功等參量的采集,取代傳統(tǒng)的數(shù)模采樣電路。
三相電能表功率參量的采樣是一個(gè)十分重要的問題,其實(shí)現(xiàn)方式?jīng)Q定了電能表的測(cè)量精度及相應(yīng)軟件開發(fā)的難易程度,產(chǎn)品的整體開發(fā)成本的高低。
2、系統(tǒng)介紹
電能表的采樣方式及采用什么MCU有多種方案,不少已經(jīng)投入實(shí)際使用。但是基于MSP430單片機(jī)采用高度集成的采集芯片SA9904B進(jìn)行電流和電壓采樣的電能表還沒有廣泛投產(chǎn)使用。盡管美國(guó)TI公司給出了電能表采樣方案,但是其采樣電路比較復(fù)雜,難于調(diào)試。沒有采用專用的電能表的采用芯片。
圖1是多功能三相電能表的采樣部分,合理的把TI的MSP430單片機(jī)和SAMES的SA9904B集合,發(fā)揮各自的優(yōu)勢(shì),避開復(fù)雜的采樣電路的設(shè)計(jì),采用現(xiàn)成的高精度采樣芯片。
2.1、硬件部分:
MSP430F435
T1公司的MSP430系列單片機(jī)是一種具有超低功耗的功能強(qiáng)大的單片機(jī)。新開發(fā)的F系列具有Flash存儲(chǔ)器,在系統(tǒng)設(shè)計(jì),開發(fā)調(diào)試及實(shí)際應(yīng)用上比其他MCU都有比較明顯的優(yōu)勢(shì)。
1、超低功耗
MSP430F系列運(yùn)行在1MHZ時(shí)鐘的條件下時(shí),工作模式不同為0.1~400uA,工作電壓為1.8~3.6V。
2、超強(qiáng)處理能力
8MIPS的CPU內(nèi)核,16位×16位的硬件乘法器。
3、靈活的配置方法
MSP430F系列具有豐富的尋址方式,只需要27條指令;片內(nèi)寄存器數(shù)多,可以實(shí)現(xiàn)多種運(yùn)算;有高效的查表處理方法。這一切保證了可以編譯出高效的程序。許多中斷,可以嵌套,使用方便。
4、片上集成外圍功能模塊
MSP430F系列集成了較多的片上外圍設(shè)備。這些外圍設(shè)備功能相當(dāng)強(qiáng)大:12位A/D,精密模擬比較器,硬件乘法器,2組頻率可以達(dá)到8MHZ的時(shí)鐘模塊,2個(gè)帶有許多捕獲比較的16位定時(shí)器,看門狗功能,2個(gè)可實(shí)現(xiàn)異步和同步及多址訪問的串行通信接口,數(shù)十個(gè)可實(shí)現(xiàn)方向的設(shè)置及中斷功能的并行輸入,輸出端口,擁有SPI和UASRT通訊端口。
5、高效的開發(fā)方式
MSP430FX系列具有FLASH存儲(chǔ)器,這一特點(diǎn)使得它的開發(fā)工具相當(dāng)簡(jiǎn)便。利用單片機(jī)自身帶有的JTAG接口或片內(nèi)BOOTROM內(nèi)固化的默認(rèn)的加載程序載入器Bootstrap可以進(jìn)行串口或并口,通過UART將程序代碼裝入Flash存貯器中。
可以在一臺(tái)PC及一個(gè)小JATAG控制器的幫助下實(shí)現(xiàn)程序的下載,方便的完成在線程序調(diào)試。
SA9904B
SAMES公司的SA9904B專用與電能測(cè)量的集成芯片,提供多功能電力測(cè)量參數(shù):功率因子、有功率、無(wú)功功率、峰值電壓、峰值功率、電壓電流有效值等。
SA9904B三相電路的各路電流和電壓完成采樣,有用功率和無(wú)用功率通過SA9904B的三路電流和三路電壓的乘積求得。在芯片內(nèi)部完成數(shù)模轉(zhuǎn)換和相位延遲的調(diào)整,各路瞬間功率的數(shù)字量值存儲(chǔ)在二十四位寄存器中,最大值為十六進(jìn)制的FFFF,對(duì)應(yīng)于芯片的DO端口,其中對(duì)各路的寄存器的讀取,由各路地址存儲(chǔ)器的值確定,對(duì)應(yīng)與芯片的DI端口。這些都通過芯片的SPI接口以串行數(shù)據(jù)方式與MCU端口進(jìn)行數(shù)據(jù)通訊。MCU通過對(duì)地址的選擇來完成對(duì)芯片的數(shù)據(jù)讀取。
SA9904B的SPI接口分為DI,DO,SCK,CS,F50端口,其中這些端口按圖2的時(shí)序與MCU進(jìn)行數(shù)據(jù)傳遞。在研究開發(fā)過程中在DI,DO的端口應(yīng)該加一些濾波電路,防止線路中尖峰電平。這可根據(jù)實(shí)際需要做些調(diào)整。其中各端口的輸出脈寬時(shí)間如表1所示。DI,DO上的數(shù)據(jù)只有在CS和SCK為高電平時(shí)有效,DI觸發(fā)與CS的觸發(fā)同時(shí),且DI上數(shù)據(jù)在SCK的高電平內(nèi)完成,DO上數(shù)據(jù)必須在SCK高電平時(shí)觸發(fā),在下一個(gè)高電平階段內(nèi)完成。F50是頻率寄存器
寄存電壓的頻率和是否缺相和倒相。DI上數(shù)據(jù)與SA9904B上的數(shù)據(jù)寄存器的地址一致,即高三位為110,四,五位或0或1,后四位為選擇代碼。各端口的時(shí)間延時(shí)參看表一。
2.2、軟件部分
對(duì)于MSP430單片機(jī),由TI公司自帶的嵌入式軟件開發(fā)平臺(tái)IAREMBEDDEDWORKBENCH。該軟件可對(duì)開發(fā)系統(tǒng)進(jìn)行在線調(diào)試,帶有C編譯器,可采用通用的C語(yǔ)言編程。
1、軟件流程圖
通過MSP430的P6.6—P6.3端口對(duì)SA9904B芯片進(jìn)行同步數(shù)據(jù)傳遞,其中P6.3端口用于DI,P6.4用于SCK,P6.5用于CS,P6.6用于DO,P1.0用于F50。
&nbs
p;程序流程如圖3所示。
1、主控程序解析
在該控制采集系統(tǒng)中涉及到單片機(jī)的SPI串行同步通訊接口,計(jì)時(shí)器TIME_A。
其中DI、DO、F50端口是SPI端口進(jìn)行串行數(shù)據(jù)通訊,接收SA9904B寄存器中的數(shù)據(jù),SCK、CS
是通過計(jì)時(shí)器TIME_A向SA9904B發(fā)出方波脈沖,觸發(fā)SA9904B工作。
第一、SCK、CS信號(hào)控制端口
MSP430單片機(jī)的P6.4發(fā)出方波,P6.5置成高電平,DI端口上寄存器地址數(shù)據(jù)才能有效,同時(shí)SA9904B中有功功率寄存器和無(wú)功寄存器的數(shù)據(jù)值才能輸出。這兩個(gè)端口選為單片機(jī)的I/O功能。
第二、DI口數(shù)據(jù)傳輸
選擇SPI,四線制方式通訊,MSP430的P6.6—P6.3端口,發(fā)送16位的地址數(shù)據(jù)流,以SCK為時(shí)間源,主動(dòng)方式,向SA9904B發(fā)送數(shù)據(jù)。
P6SEL=cs+sck+si_1;//選擇SCK,CS
為I/O功能,SI為模塊功能。
P6DIR=cs_1+sck_1+si_1;//選擇SCK,CS置高,SI為向外輸出。
my_flag1=tempadd0<<7;//左移7位
my_flag2=my_flag2&0x8000;//取最高位向SA9904B輸入數(shù)據(jù)。
if(my_flag2==0x8000)
{
P6OUT=cs_1+sck_1+si_1;
my_flag1=my_flag1<<1;
P6OUT=cs_1+0+si_1;}//輸入1,SCK置0
else
{P6OUT=cs+sck+si_1;
my_flag1=my_flag1<<1;
P6OUT=cs+0+si;}//
輸入0,SCK置0
my_flag2=my_flag1;
}
其中一些參量為定義量。
這樣的輸出過程循環(huán)9次,即把9位數(shù)據(jù)從高位到低位輸進(jìn)SA9904B地址寄存器。
第三、DO
口數(shù)據(jù)傳輸
與DI口數(shù)據(jù)傳輸相似,主要考慮的是在P6.6端口上顯示有功和無(wú)功數(shù)據(jù)寄存器中的數(shù)據(jù),24位數(shù)據(jù)按從高位到低位傳輸次序讀出。
for(i=4;i>1;i--)
{for(j=7;j>=0;j--)
{
P6SEL=cs+sck+so_1;//選擇SCK,CS為I/O功能,SO為模塊功能。
P6DIR=cs_1+sck_1+so;//選擇SCK,CS
向外,SO為向內(nèi)輸出。
P6OUT=cs_1+sck_1+0;//選擇SCK,CS置高。
my_flag=(unsignedchar)(P6IN);//讀取P6IN寄存器中數(shù)值。
P6OUT=cs_1+sck+0;
aa=(aa|(my_flag<<j));//存儲(chǔ)數(shù)據(jù)。
my_flag=0x00;
}
if(
i>2){aa=aa<<8;}}//左移8位。
returnaa;
}
其中cs,sck,so等參量的定義如cs:P6SEL|=0x20方式所示。
第四、F50寄存器數(shù)據(jù)處理
該端口的處理方式與上述的DO和SI
【基于MSP430的三相電能表SA9904B采集系統(tǒng)】相關(guān)文章:
基于MSP430的極低功耗系統(tǒng)設(shè)計(jì)08-06
基于StrongARM的視頻采集與處理系統(tǒng)08-06
基于USB接口的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)08-06
基于USB總線的高速數(shù)據(jù)采集系統(tǒng)08-06
基于DSP的USB口數(shù)據(jù)采集分析系統(tǒng)08-06
基于Verilog HDL設(shè)計(jì)的自動(dòng)數(shù)據(jù)采集系統(tǒng)04-12
基于DSP的 USB 口數(shù)據(jù)采集分析系統(tǒng)08-06