1. 引言
目前比較流行的電子電度表芯片如AD7750和AD7755(見《國外電子元器件》1999年第3期文章)存在著測量范圍小,與MPU連接復雜,功能簡單等缺點。CS5460是CRYSTAL公司最新推出的帶有串行接口的單相雙向功率/電能計量集成電路芯片,該芯片比AD7750和AD7755相比,具有結構簡單,功能齊全,性能優(yōu)良的特點,這些特點使其更便于與微處理器MPU接口并能方便地實現(xiàn)電壓電流!功率的測量和用電量累積等功能。用具有超低功耗,高集成度,高可靠性的MSP430單片機與其相連接可簡化電路設計,提高效能并廣泛應用于功率測量和電子電表的數(shù)據(jù)采集以及電能計量領域。
2 .MSP430單片機簡介
MSP430單片機是TI公司生產(chǎn)的超低功耗單片機。該系統(tǒng)將大量的外圍模塊整合到片內,也特別適合于設計片上系統(tǒng);它是一個16位的精簡指令構架,有大量的工作寄存器和數(shù)據(jù)存儲器。它有如下特點:具有超低功耗,強大的處理能力,高性能模擬技術及豐富的片上外圍模塊,系統(tǒng)工作穩(wěn)定,方便高效的開發(fā)環(huán)境。MSP40工作在1.8-3.6V電壓下,有正常工作模式(AM)和4種低功耗工作模式,在電源電壓為3V時,各種模式的工作電流分別不同。單片機可以方便的在各種工作模式之間切換。MSP430 單片機引腳圖如下。
圖1 MSP430X11X系列引腳圖
CS5460是CRYSTAL公司最新推出的帶有串行接口的單相雙向功率/電能計量集成電路芯片。CS5460增加了以下功能:(1)具有片內看門狗定時器(Watch Dog Timer)與內部電源監(jiān)視器;(2)具有瞬時電流、瞬時電壓、瞬時功率、電流有效值、電壓有效值、功率有效值測量及電能計量功能;(3)提供了外部復位引腳;(4)雙向串行接口與內部寄存器陣列可以方便地與微處理器相連接;(5)外部時鐘最高頻率可達20MHz;(6)具有功率方向輸出指示。這些增加的功能更加便于與微處理器(MPU)接口,并能方便地實現(xiàn)電壓、電流、功率的測量和用電量累積等功能。
3.1 CS5460的基本內部結構
CS5460內部集成了兩個△-∑A/D轉換器、高、低通數(shù)字濾波器、能量計算單元、串行接口、數(shù)字-頻率轉換器、寄存器陣列和看門狗定時器等模擬、數(shù)字信號處理單元,其內部結構框圖如圖2所示。
圖2 CS5460的基本內部結構
3.2 CS5460的引腳排列和功能
圖3 CS5460引腳圖
1腳XOUT:晶體振蕩器輸出;2腳CPUCLK:CPU時鐘輸出;3腳VD+:數(shù)字電路電源正極;4腳DGND:數(shù)字地;5腳SCLK:串行時鐘輸入;6腳SDO:串行數(shù)據(jù)輸出;7腳CS:片選;8腳NC:空腳;9腳VIN+:差分電壓正輸入端;10腳VIN-:差分電壓負輸入端;11腳VREFOUT:參考電壓輸出;12腳VREFIN:參考電壓輸入;13腳VA-:模擬地;14腳VA+:模擬電源正極;15腳IIN-:差分電流負輸入端;16腳IIN+:差分電流正輸入端;17腳PFMON:電源掉電監(jiān)視輸出;18腳NC:空腳;19腳REST:復位輸入;20腳INT:中斷輸出;21腳EOUT:電能脈沖輸出;22腳EDIR:功率方向指示輸出;23腳SDI:串行數(shù)據(jù)輸入;24腳XIN:晶體振蕩器輸入。
4 硬件設計
單片機MSP430通過和單相雙向功率/電能計量芯片CS5460集成電路芯片組成的硬件的電路。通過低壓差調節(jié)器LP2951ACM3.0 向MSP430單片機VCC引腳提供3.0V的工作電壓。引腳VSS接地。引腳REST,CS,SD1,SDO,SCLK,EDIR接P1.0—P1.5口,接受來自單片機的信號,INT接RST/NMI引腳使單片機MSP430接受來自芯片CS460的中斷。EOUT接XIN的晶體振蕩器連接,接受來自芯片CS5460的XIN引腳晶振的輸入。VREFIN,DGND,VREFOUT,VA-接電容C1為0.1uF,再接地。VIN-,VIN+,HN+,HN-接兩個變壓器為CS5460
芯片提供+5V的電壓,VD+,VA+接R3電阻接電容再接地。C1,R1,D1,D2和C2,R2,D3,C3組成的電路向CS5460芯片的模擬數(shù)字電源正極輸入+5V電壓。PFMON接R4再接R5與地接監(jiān)視模擬電源輸入是否低于閾值。
圖4硬件原理圖
5 軟件設計
CS5460的串行接口部分集成了一個帶有發(fā)送/接收緩沖器的狀態(tài)機,狀態(tài)機在SCLK上升沿解釋8位命令字。根據(jù)對命令的解碼,狀態(tài)機將執(zhí)行相應的操作,或者為把尋址的內部寄存器的數(shù)據(jù)傳送到發(fā)送緩沖區(qū),寫操作在數(shù)據(jù)傳輸前要等24個SCLK周期。通過寄存器讀/寫命令,數(shù)據(jù)可被寫入或從CS5460中讀出。數(shù)據(jù)的讀、寫通過向串口SDI引腳寫入相應的8位命令字(高位在前)來啟動。一些命令字在執(zhí)行時受周期計數(shù)寄存器和配置寄存器內容的影響,需要先對周期計數(shù)器和配置寄存器內容進行正確設置。寄存器寫指令后必須跟24位數(shù)據(jù),先寫命令字啟動寫操作,然后隨著24個連續(xù)的串行時鐘脈沖,CS5460將從串行輸入引腳SDI接收串行數(shù)據(jù),一旦收到數(shù)據(jù),狀態(tài)機便將數(shù)據(jù)寫入配置寄存器并返回到命令模式。通過SDI引腳寫入命今后,可從SDO引腳讀出數(shù)據(jù)。
圖五 讀寫時序
下面依照時序分別給出讀寫的基本C程序。
Main()
{ char cdata , didata;
Scanf(“%s,%s”,&cdata,&didata);
IC?_writeCS5460(cdata);
IC_ReadCS5460(didata);}
Void IC?_writeCS5460(unsigned char CData)
{ unsigned char i;
CS5460_SCLK_0; //時鐘置零
CS5460_CS_0; //片選置零
For(i=0;i<8;i++) //開始一個字節(jié)的CData
{ CS5460_SCLK_0; //時鐘置零
Delay_us(5); //相當于5個NOP
CS5460_SCLK_1; //時鐘置1
Delay_us(5); //相當于5個NOP
If ( CData&0x80)
{ CS5460_SDI_1;}
else { CS5460_SDI_0;} //判斷要寫入的內容最高位是否為1,是1寫1,
CData+=CData;} }不是寫0,再左移數(shù)據(jù),循環(huán)寫8次
Unsigned int IC_ReadCS5460(unsingned char DIDATA)
{ unsigned char i , j;
Unsigned int DATA; //要返回的內容
DATA=0; //要返回的內容先清零
IC_WriteCS5460(DIDATA); // 寫入程序狀態(tài)字
CS5460_SCLK_0; //時鐘置零
For(j=0;j<2;j++)
{ DATA+=DATA; // 2個字節(jié)的循環(huán),根據(jù)需要可以改成3個字節(jié)
For(i=0;i<7;i++) //先循環(huán)要返回的內容(左移一位)
{ CS5460_SDI_1;
CS5460_SCLK_0; //以下開始讀出一個字節(jié)的8b循環(huán)
Delay_us(5); //SDI口置1
If(PINC&(1<<PC2)) //時鐘置零
{ DATA=DATA+1; //延時5us
DATA+=DATA;}} //要讀的內容最高位為1,則寫1,否則寫0,再左移
CS5460_SDI_0; //SDI口置1
CS5460_SCLK_0; //時鐘置零
Delay_us(5); //延時5us
CS5460_SCLK_1; //時鐘置1
Delay_us(5); //延時5us
If(PINC&(1<<PC2))
{ DATA=DATA+1;} //讀一個字節(jié)最后一位時單獨處理,是1補1,不是則跳到CS5460_SCLK_0; // 下一步,回到上面左移1位,相當于補0
CS5460_SDI_1; //SDI口置1
Delay_us(2); //延時2us
CS5460_CS_1; } //片選置0
Return(DATA);} //返回要讀的內容
6. 結束語
以上介紹的是以單片機MSP430為核心基于CS5460芯片的應用。該系統(tǒng)具有低功耗,高集成度,高性能和高可靠性等特點。本系統(tǒng)實現(xiàn)了MSP430單片機和CS5460芯片的硬件設計在功率測量中的應用并且給出了單片機MSP430和CS5460讀寫的C程序。
7.參考文獻
1.CRYSTAL公司產(chǎn)品資料.1990.10.
2.沈金官.《電網(wǎng)監(jiān)控技術》中國電力出版社。1997.6.
3.王福瑞.<<單片微機測控系統(tǒng)設計大全》.北京航空航天大學出版社.1998.4
4.何立民.《單片機應用技術選編》1-7.北京航空航天大學出版社。
5.何立民.MCS 51 單片機應用系統(tǒng)設計[M] . 北京:北京航空航天大學出版社,1993.