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