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