王小進(jìn),涂煜
?
基于AD7606的繼電保護(hù)數(shù)據(jù)處理設(shè)計(jì)
王小進(jìn),涂煜
(武漢船用電力推進(jìn)裝置研究所,武漢 430064)
AD7606是一種16位8通道自同步模數(shù)轉(zhuǎn)換器,具有性價比高、精度高、能耗低、轉(zhuǎn)換速度快等優(yōu)點(diǎn),尤其適合于繼電保護(hù)數(shù)據(jù)的測量。本文以繼電保護(hù)系統(tǒng)為例,提出了一種基于AD7606的數(shù)據(jù)處理設(shè)計(jì)方法,主要介紹了AD7606的主要特性、電路設(shè)計(jì)和數(shù)據(jù)處理實(shí)現(xiàn)。
AD7606 繼電保護(hù) AD采集 數(shù)據(jù)處理
隨著科學(xué)技術(shù)的迅速發(fā)展對繼電保護(hù)不斷提出新的要求,繼電保護(hù)裝置[1]不僅需要從網(wǎng)上獲取電力系統(tǒng)運(yùn)行和故障的任何信息和數(shù)據(jù),也要將所獲得的被保護(hù)元件的任何信息和數(shù)據(jù)傳送給網(wǎng)絡(luò)控制中心或任一終端。因此每個繼電保護(hù)裝置不但可完成繼電保護(hù)功能,而且在無故障正常運(yùn)行情況下完成測量、控制、數(shù)據(jù)通信功能,亦即實(shí)現(xiàn)保護(hù)、控制、測量、數(shù)據(jù)通信一體化。因此需要同時采集多路保護(hù)和測量數(shù)據(jù),而且信號處理的實(shí)時性要求很高,于是多通道、高精度同時采集尤為重要。
AD7606是一種16位8通道自同步模數(shù)轉(zhuǎn)換器,具有性價比高、精度高、能耗低、轉(zhuǎn)換速度快等優(yōu)點(diǎn),尤其適合繼電保護(hù)系統(tǒng)的數(shù)據(jù)采集和處理。本文主要介紹了AD7606的主要特性、電路設(shè)計(jì)和數(shù)據(jù)處理實(shí)現(xiàn)。
AD7606是一種逐次逼近(SAR)型的雙極性、多通道自同步模數(shù)轉(zhuǎn)換器(ADC),在保證數(shù)據(jù)轉(zhuǎn)換的速度和精度前提下,提高了性能,縮小封裝尺寸,降低了功耗,并且只需要很少的外接元器件,從而非常適合于對模擬信號進(jìn)行測量與控制的系統(tǒng)。例如:電能質(zhì)量監(jiān)控和繼電保護(hù)等領(lǐng)域。
其主要特性有:
1)雙極性模擬輸入;
2)可通過管腳或軟件方式選擇電壓輸入范圍(±10 V,±5 V);
3)最大吞吐率為200 ksps;
4)低功耗:在供電電壓為5 V,速率為200 ksps 時的功耗為100 mW,待命時是25 mW;
5)寬帶寬輸入:輸入頻率為50 Hz時的信噪比(SNR)為95.5 dB;
6)并行、串行和菊花鏈接接口模式;
7)與SPI/QSPI/uWire/DSP兼容的高速串行接口;
8)64引腳QFP。
AD7606包含了8個逐次逼近ADC,8個采集保持器,片外提供了5V基準(zhǔn)參考電壓和基準(zhǔn)緩沖器(芯片ADR421提供),高速的并行和串行接口。具體如圖1。
AD7606是高速低功耗、允許8路同時采集的逐次逼近式ADC,包括1個比較器、1個模數(shù)轉(zhuǎn)換器、1個逐次逼近寄存器(SAR)和1個邏輯控制單元。轉(zhuǎn)換中的逐次逼近是按對分原理有控制邏輯電路完成,其工作過程大致如下:啟動轉(zhuǎn)換后,控制邏輯電路首先把逐次逼近寄存器的最高位置1,其它置0,逐次逼近寄存器的內(nèi)容經(jīng)過模數(shù)轉(zhuǎn)換器轉(zhuǎn)換后得到電壓值。這個電壓值在比較器中與輸入信號進(jìn)行比較。比較器的輸出反饋到模數(shù)轉(zhuǎn)換器,并在下一次比較前進(jìn)行修正。在邏輯控制電路的時鐘驅(qū)動下,逐次逼近寄存器,不斷進(jìn)行比較和移位,直到完成最低有效位的轉(zhuǎn)換。
AD7606轉(zhuǎn)換是通過脈沖調(diào)制CONVSTx信號開始的,在CONVSTx的上升沿,被選中的ADC的跟蹤保持電路會被置為保持模式,轉(zhuǎn)換開始。在CONVSTx信號的上升沿后,BUSY信號會置1,這表示轉(zhuǎn)換正在進(jìn)行。轉(zhuǎn)換時鐘是由內(nèi)部產(chǎn)生的,轉(zhuǎn)換時間是從CONVSTx信號上升沿開始的3μs,當(dāng)BUSY信號變?yōu)榈碗娖?,表示轉(zhuǎn)換結(jié)束。在BUSY信號的下降沿,跟蹤保持電路返回跟蹤模式,數(shù)據(jù)通過并行或串行接口從輸出寄存器中被讀出。圖2為AD7606一次轉(zhuǎn)換后的數(shù)據(jù)讀取,在CONVSTx上升t5后再經(jīng)過t1時間后BUSY信號變?yōu)楦唠娖剑?jīng)過tCONV時間后表示轉(zhuǎn)換結(jié)束,t4時間后CS信號變?yōu)榈碗娖骄烷_始讀取數(shù)據(jù)了。
結(jié)合繼電保護(hù)的項(xiàng)目背景來闡述AD7606的電路設(shè)計(jì)。本項(xiàng)目CPU采用的DSP28335,由DSP28335通過GPIO引腳提供PWM信號給AD7606,作為轉(zhuǎn)換信號(CONVSTx)。由芯片ADR421給AD7606提供基準(zhǔn)參考電壓,具體如圖3所示。實(shí)際的波形圖如下圖4,通過下一節(jié)的數(shù)據(jù)處理可以得到高精度快速的數(shù)據(jù)值。示波器通道1為AD760的CS引腳信號,通道2為AD760的CONVSTx引腳信號,通道3為AD760的BUSY引腳信號。
DSP28335的GPIO0引腳配置PWM信號的簡要代碼如下
//總長度9.7 μs,高電平8.5μs,低電平1.2 μs,對應(yīng)的BUSY高電平4 μs,低電平6.8 μs
#define EPWM1_FULL_DUTY 90
#define EPWM1A_DUTY 80
#define EPWM1B_DUTY 10
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0;
//PWM1A related.
EPWM1A_MUX = EPWM_MUX; //select the corresponding pin pwm function.
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV4;
EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV4;
EPwm1Regs.TBCTL.bit.CTRMODE = 0; //up count mode.
EPwm1Regs.TBCTL.bit.PHSEN = 0; //don't load TBCTR from TBPHS.
EPwm1Regs.TBCTL.bit.SYNCOSEL = 0; //disable the synchronization.
EPwm1Regs.TBPRD = EPWM1_FULL_DUTY; //configure the pwm frequency 100Hz.
EPwm1Regs.TBCTR = 0; //clear the counter register.
EPwm1Regs.TBPHS.all = 0; //set the TBPHS register value as 0.
EPwm1Regs.CMPA.half.CMPA = EPWM1A_DUTY; //compare event trigger value.
EPwm1Regs.CMPCTL.bit.LOADAMODE = 0; //load CMP when TBCTR=ZERO;
EPwm1Regs.AQCTLA.bit.ZRO = AQ_SET; //set high when TBCTR=ZERO occurs.
EPwm1Regs.AQCTLA.bit.CAU = AQ_CLEAR; //set low when TBCTR=CPA occurs.
EPWM1B_MUX = EPWM_MUX;
EPwm1Regs.CMPB = EPWM1B_DUTY; //compare event trigger value.
EPwm1Regs.CMPCTL.bit.LOADBMODE = 0; //load CMP when TBCTR=ZERO;
EPwm1Regs.AQCTLB.bit.ZRO = AQ_SET; //set high when TBCTR=ZERO occurs.
EPwm1Regs.AQCTLB.bit.CBU = AQ_CLEAR; //set low when TBCTR=CPA occurs.
//enable the synchronization.
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1;
將AD7606的CS引腳鏈接到DSP28335的XZCS0n區(qū)域(0x4000),通過一個外部中斷來讀取XZCS0n區(qū)域采集過來的數(shù)據(jù)。外部中斷通過引腳(GPIO34)下降沿觸發(fā),這部分的GPIO配置簡要代碼如下:
//外部中斷程序初始化定義 GPIO34
GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 0;
//選擇GPIO口
GpioCtrlRegs.GPBDIR.bit.GPIO34 = 0;
//選擇輸入口
GpioCtrlRegs.GPBQSEL1.bit.GPIO34= 0;
//GPIO時鐘和系統(tǒng)時鐘一樣且支持GPIO
GpioIntRegs.GPIOXINT3SEL.bit.GPIOSEL = 34;
//中斷3選擇GPIO
XIntruptRegs.XINT3CR.bit.POLARITY= 0;
//觸發(fā)模式為下降沿觸發(fā)
XIntruptRegs.XINT3CR.bit.ENABLE = 1;
//使能中斷
定義外部中斷服務(wù)程序:
PieVectTable.XINT3 = &ISRExint; //外部中斷3
讀取數(shù)據(jù)代碼:
Vari.IO.ChannelAD.ProcessData[0][Vari.IO.ChannelAD.DataCount]= *(( int16 *)0x4000);
Vari.IO.ChannelAD.ProcessData [1][Vari.IO.ChannelAD.DataCount] = *(( int16 *)0x4000);
Vari.IO.ChannelAD.ProcessData[2][Vari.IO.ChannelAD.DataCount] = *(( int16 *)0x4000);
Vari.IO.ChannelAD.ProcessData[3][Vari.IO.ChannelAD.DataCount] = *(( int16 *)0x4000);
i1 = *(( int16 *)0x4000);
i2 = *(( int16 *)0x4000);
i3 = *(( int16 *)0x4000);
i4 = *(( int16 *)0x4000);
Vari.IO.ChannelAD.DataCount++;
再做濾波算法就可以得出需要的數(shù)據(jù),如下:
if(Vari.IO.ChannelAD.DataCount > 9) {
max[k] = Vari.IO.ChannelAD.ProcessData[k][0];
min[k] = Vari.IO.ChannelAD.ProcessData[k][0];
addtemp[k] = 0;
for(m=0;m<10;m++)
{
Vari.IO.ChannelAD.DataCount = 0;
for(k=0;k<4;k++)
{
if(max[k] < Vari.IO.ChannelAD.ProcessData[k][m])
{max[k] = Vari.IO.ChannelAD.ProcessData[k][m];}
if(min[k] > Vari.IO.ChannelAD.ProcessData[k][m])
{min[k] = Vari.IO.ChannelAD.ProcessData[k][m];}
addtemp[k] = addtemp[k] + Vari.IO.ChannelAD.ProcessData[k][m];
}
}
Vari.IO.ChannelAD.I_average = (addtemp [1]-max[1]-min[1]) >>3;
Vari.IO.ChannelAD.U_average = (addtemp [2]-max[2]-min[2]) >>3;
Vari.IO.ChannelAD.U15_average = (addtemp [3]-max[3]-min[3]) >>3;
基于AD7606設(shè)計(jì)的繼電保護(hù)數(shù)據(jù)處理可以同時完成8通道數(shù)據(jù)的采集處理,并且具有很高的精度,滿足繼電保護(hù)系統(tǒng)的實(shí)際要求,驗(yàn)證了該設(shè)計(jì)的可行性和有效性。
[1] 張文華. 淺談繼電保護(hù)技術(shù)的現(xiàn)狀與發(fā)展[M],北京:電氣與儀表安裝, 2012.
[2] 美國ADI公司.AD7606數(shù)據(jù)手冊[Z]. Norwood:ADI,2010.
Design of Data Transaction for Relay Protection Based on AD7606
Wang Xiaojin,Tu Yu
(Wuhan Institute of Marine Electric Propulsion, Wuhan 430064, China)
TM581
A
1003-4862(2014)09-0046-04
2014-07-15
國家科技支撐計(jì)劃項(xiàng)目(2012BAG03B01)
王小進(jìn)(1981-),男,高級工程師。研究方向:電力電子技術(shù)。