基于MSP430的三相電能表SA9904B采集系統(tǒng)
作者EMAIL: pingchuan97@sohu.com 摘要 本文介紹由TI 公司的MSP430F435 單片機和SAMES 的SA9904B電能測量集成芯片組合成三相電能表的無用功率和有用功率等參量的采集系統(tǒng)。 關(guān)鍵詞 MSP430 SA9904B 采樣 1、前言 目前新型的電子式多功能電能表已逐漸取代老式電子電能表。由于模數(shù)轉(zhuǎn)換電路采樣精度,及微處理器的價格,軟件的開發(fā)難度,存在不少問題和難度。本文基于德州儀器的MSP430F435單片機,介紹采用SAMES的SA9904B高集成度的采樣芯片進(jìn)行三相電能的有用功和無用功等參量的采集,取代傳統(tǒng)的數(shù)模采樣電路。 三相電能表功率參量的采樣是一個十分重要的問題,其實現(xiàn)方式?jīng)Q定了電能表的測量精度及相應(yīng)軟件開發(fā)的難易程度,產(chǎn)品的整體開發(fā)成本的高低。 2、系統(tǒng)介紹 電能表的采樣方式及采用什么MCU有多種方案,不少已經(jīng)投入實際使用。但是基于MSP430 單片機采用高度集成的采集芯片SA9904B進(jìn)行電流和電壓采樣的電能表還沒有廣泛投產(chǎn)使用。盡管美國TI公司給出了電能表采樣方案,但是其采樣電路比較復(fù)雜,難于調(diào)試。沒有采用專用的電能表的采用芯片。 圖1是多功能三相電能表的采樣部分,合理的把TI 的MSP430單片機和SAMES的 SA9904B集合,發(fā)揮各自的優(yōu)勢,避開復(fù)雜的采樣電路的設(shè)計,采用現(xiàn)成的高精度采樣芯片。 2.1、硬件部分: MSP430F435 T1公司的MSP430系列單片機是一種具有超低功耗的功能強大的單片機。新開發(fā)的F系列具有Flash存儲器,在系統(tǒng)設(shè)計,開發(fā)調(diào)試及實際應(yīng)用上比其他MCU都有比較明顯的優(yōu)勢。 1、超低功耗 2、 超強處理能力 3、靈活的配置方法 4、片上集成外圍功能模塊 5、 高效的開發(fā)方式 可以在一臺PC及一個小JATAG控制器的幫助下實現(xiàn)程序的下載,方便的完成在線程序調(diào)試。 SA9904B SA9904B三相電路的各路電流和電壓完成采樣,有用功率和無用功率通過SA9904B的三路電流和三路電壓的乘積求得。在芯片內(nèi)部完成數(shù)模轉(zhuǎn)換和相位延遲的調(diào)整,各路瞬間功率的數(shù)字量值存儲在二十四位寄存器中,最大值為十六進(jìn)制的FFFF,對應(yīng)于芯片的DO端口,其中對各路的寄存器的讀取,由各路地址存儲器的值確定,對應(yīng)與芯片的 DI端口。這些都通過芯片的SPI接口以串行數(shù)據(jù)方式與MCU 端口進(jìn)行數(shù)據(jù)通訊。MCU通過對地址的選擇來完成對芯片的數(shù)據(jù)讀取。 SA9904B的SPI接口分為DI,DO,SCK,CS,F50端口,其中這些端口按圖2的時序與MCU進(jìn)行數(shù)據(jù)傳遞。在研究開發(fā)過程中在DI,DO的端口應(yīng)該加一些濾波電路,防止線路中尖峰電平。這可根據(jù)實際需要做些調(diào)整。其中各端口的輸出脈寬時間如表1所示。DI,DO上的數(shù)據(jù)只有在CS和SCK 為高電平時有效,DI 觸發(fā)與CS 的觸發(fā)同時,且DI上數(shù)據(jù)在SCK的高電平內(nèi)完成,DO 上數(shù)據(jù)必須在SCK高電平時觸發(fā),在下一個高電平階段內(nèi)完成。F50 是頻率寄存器 2.2、軟件部分 對于MSP430單片機,由TI 公司自帶的嵌入式軟件開發(fā)平臺IAR EMBEDDED WORKBENCH。該軟件可對開發(fā)系統(tǒng)進(jìn)行在線調(diào)試,帶有C 編譯器,可采用通用的C語言編程。 1、 軟件流程圖 通過MSP430的P6.6—P6.3端口對SA9904B芯片進(jìn)行同步數(shù)據(jù)傳遞,其中P6.3端口用于 DI,P6.4 用于SCK,P6.5用于CS,P6.6用于DO,P1.0用于F50。 程序流程如圖3所示。 1、 主控程序解析 在該控制采集系統(tǒng)中涉及到單片機的SPI 串行同步通訊接口,計時器TIME_A。 其中DI、DO、F50端口是SPI端口進(jìn)行串行數(shù)據(jù)通訊,接收SA9904B寄存器中的數(shù)據(jù),SCK、CS 是通過計時器TIME_A向SA9904B發(fā)出方波脈沖,觸發(fā)SA9904B工作。 第一、SCK、CS信號控制端口 MSP430單片機的P6.4發(fā)出方波,P6.5置成高電平,DI端口上寄存器地址數(shù)據(jù)才能有效,同時SA9904B中有功功率寄存器和無功寄存器的數(shù)據(jù)值才能輸出。這兩個端口選為單片機的I/O功能。 第二、DI口數(shù)據(jù)傳輸 選擇SPI,四線制方式通訊,MSP430的P6.6—P6.3端口,發(fā)送16位的地址數(shù)據(jù)流,以SCK為時間源,主動方式,向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端口上顯示有功和無功數(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=(unsigned char)(P6IN);//讀取P6IN寄存器中數(shù)值。 P6OUT = cs_1 +sck + 0; aa=(aa|(my_flag<<j)); //存儲數(shù)據(jù)。 my_flag=0x00; } if (i>2){aa=aa<<8;} } //左移8位。 return aa; } 其中cs,sck,so等參量的定義如cs:P6SEL |= 0x20 方式所示。 第四、F50寄存器數(shù)據(jù)處理 該端口的處理方式與上述的 DO和SI一樣,但是F50的數(shù)據(jù)信息比較豐富,其包括電壓的頻率數(shù),是否有相序錯誤,是否有相位丟失,對電壓頻率的記數(shù),是在電壓的上升沿,該寄存器記一,以次累加。 以上針對單片機的SPI通訊方式,簡要介紹了程序設(shè)計過程。可以看出對于SA9904B的操作主要集中在數(shù)據(jù)的輸入和輸出,同時控制數(shù)據(jù)傳輸時序。數(shù)據(jù)從高位到低位傳輸?shù)拇涡?,必須一位一位的讀取或輸入。采集了這些數(shù)據(jù),還得對這些數(shù)據(jù)作相應(yīng)復(fù)雜處理。鑒于430單片機的端口特殊性,先選擇功能,然后選擇傳輸方向,最后確定數(shù)據(jù)讀取或輸入。 2、 結(jié)語 目前使用電能集成芯片和單片機組合用于測量電能有一些方案,但是大多數(shù)是基于通過數(shù)模轉(zhuǎn)換電路來實現(xiàn)數(shù)據(jù)的采集。測量電能的集成芯片有很多種,微處理器也有許多種,本文基于TI 的MSP430 單片機與SA9904B組合,設(shè)計出性價比很高的三相多費率多功能表。該系統(tǒng)模塊僅限于電能的有用功和無用功等電力參量的采集,有用功和無用功等電力參量的采集是電表的中一個十分重要部分。計量電能的三相多費率多功能表還涉及其他許多功能模塊,包括諸如數(shù)據(jù)處理、數(shù)據(jù)顯示,數(shù)據(jù)存儲,數(shù)據(jù)通訊等模塊。 作者EMAIL: pingchuan97@sohu.com |