本文介紹由TI 公司的MSP430F435 單片機和SAMES 的SA9904B 電能測量集成芯片組合成三相電能表的無用功率和有用功率等參量的采集系統(tǒng)。 硬件部分 MSP430F435 T1 公司的MSP430 系列單片機是一種具有超低功耗的功能強大的單片機。新開發(fā)的F 系列具有Flash 存儲器,在系統(tǒng)設(shè)計,開發(fā)調(diào)試及實際應(yīng)用上比其他MCU 都有比較明顯的優(yōu)勢。 1、超低功耗 MSP430F 系列運行在1MHZ 時鐘的條件下時,工作模式不同為0.1~400uA,工作電壓為1.8~3.6V。 2、 超強處理能力 8MIPS 的CPU 內(nèi)核,16 位×16 位的硬件乘法器。 3、靈活的配置方法 MSP430 F 系列具有豐富的尋址方式,只需要27 條指令;片內(nèi)寄存器數(shù)多,可以實現(xiàn)多種運算;有高效的查表處理方法。這一切保證了可以編譯出高效的程序。許多中斷,可以嵌套,使用方便。 4、片上集成外圍功能模塊 MSP430 F 系列集成了較多的片上外圍設(shè)備。這些外圍設(shè)備功能相當強大:12 位A/D,精密模擬比較器,硬件乘法器,2組頻率可以達到8MHZ 的時鐘模塊,2 個帶有許多捕獲比較的16 位定時器,看門狗功能,2個可實現(xiàn)異步和同步及多址訪問的串行通信接口,數(shù)十個可實現(xiàn)方向的設(shè)置及中斷功能的并行輸入,輸出端口,擁有SPI 和UASRT 通訊端口。 5、高效的開發(fā)方式 MSP430FX 系列具有FLASH 存儲器,這一特點使得它的開發(fā)工具相當簡便。利用單片機自身帶有的JTAG 接口或片內(nèi)BOOTROM 內(nèi)固化的默認的加載程序載入器Bootstrap 可以進行串口或并口,通過UART 將程序代碼裝入Flash 存貯器中。可以在一臺PC及一個小JATAG 控制器的幫助下實現(xiàn)程序的下載,方便的完成在線程序調(diào)試。 圖1 三相電能表采樣簡圖 SA9904BSAMES 公司的SA9904B專用與電能測量的集成芯片,提供多功能電力測量參數(shù):功率因子有功率、無功功率、峰值電壓、峰值功率、電壓電流有效值等。SA9904B三相電路的各路電流和電壓完成采樣,有用功率和無用功率通過SA9904B的三路電流和三路電壓的乘積求得。在芯片內(nèi)部完成數(shù)模轉(zhuǎn)換和相位延遲的調(diào)整,各路瞬間功率的數(shù)字量值存儲在二十四位寄存器中,最大值為十六進制的FFFF,對應(yīng)于芯片的DO 端口其中對各路的寄存器的讀取,由各路地址存儲器的值確定,對應(yīng)與芯片的 DI 端口。這些都通過芯片的SPI接口以串行數(shù)據(jù)方式與MCU 端口進行數(shù)據(jù)通訊。MCU 通過對地址的選擇來完成對芯片的數(shù)據(jù)讀取。 SA9904B 的SPI 接口分為DI,DO,SCK,CS,F50 端口,其中這些端口按圖2 的時序與MCU進行數(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 是頻率寄存器寄存電壓的頻率和是否缺相和倒相。DI 上數(shù)據(jù)與SA9904B上的數(shù)據(jù)寄存器的地址一致,即高三位為110,四,五位或0 或1,后四位為選擇代碼。各端口的時間延時參看表一。 軟件部分 對于MSP430 單片機,由TI 公司自帶的嵌入式軟件開發(fā)平臺IAR EMBEDDED WORKBENCH。該軟件可對開發(fā)系統(tǒng)進行在線調(diào)試,帶有C 編譯器,可采用通用的C 語言編程。 通過MSP430 的P6.6—P6.3 端口對SA9904B 芯片進行同步數(shù)據(jù)傳遞,其中P6.3 端口用于 DI,P6.4 用于SCK,P6.5 用于CS,P6.6 用于DO,P1.0 用于F50。程序流程如圖3 所示。 第一、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ù)從高位到低位輸進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 } if (i>2){aa=aa<<8;} } //左移8 位。 return aa; } 其中cs,sck,so 等參量的定義如cs 第四、F50 寄存器數(shù)據(jù)處理 該端口的處理方式與上述的 DO 和SI 一樣,但是F50 的數(shù)據(jù)信息比較豐富,其包括電壓的頻率數(shù),是否有相序錯誤,是否有相位丟失,對電壓頻率的記數(shù),是在電壓的上升沿,該寄存器記一,以次累加。 以上針對單片機的SPI通訊方式,簡要介紹了程序設(shè)計過程。可以看出對于SA9904B的操作主要集中在數(shù)據(jù)的輸入和輸出,同時控制數(shù)據(jù)傳輸時序。數(shù)據(jù)從高位到低位傳輸?shù)拇涡颍仨氁晃灰晃坏淖x取或輸入。采集了這些數(shù)據(jù),還得對這些數(shù)據(jù)作相應(yīng)復(fù)雜處理。鑒于430單片機的端口特殊性,先選擇功能,然后選擇傳輸方向,最后確定數(shù)據(jù)讀取或輸入。 結(jié)束語 目前使用電能集成芯片和單片機組合用于測量電能有一些方案,但是大多數(shù)是基于通過數(shù)模轉(zhuǎn)換電路來實現(xiàn)數(shù)據(jù)的采集。測量電能的集成芯片有很多種,微處理器也有許多種,本文基于TI 的MSP430 單片機與SA9904B組合,設(shè)計出性價比很高的三相多費率多功能表。該系統(tǒng)模塊僅限于電能的有用功和無用功等電力參量的采集,有用功和無用功等電力參量的采集是電表的中一個十分重要部分。計量電能的三相多費率多功能表還涉及其他許多功能模塊,包括諸如數(shù)據(jù)處理、數(shù)據(jù)顯示,數(shù)據(jù)存儲,數(shù)據(jù)通訊等模塊。 作者:平川,蘇卡歐電子股份有限公司,Email:[email protected] |