1 引言
相位檢測是電力系統(tǒng)自動控制和諧波分析與控制的關(guān)鍵技術(shù)。傳統(tǒng)的相位測量是利用過零電路把輸入的兩路信號(電壓或電流)轉(zhuǎn)換為方波信號,,再利用邏輯電路和單片機(jī)技術(shù)對信號某一特殊區(qū)段計數(shù)和數(shù)學(xué)變換,,求得相位差。隨著可編程器件(FPGA,,CPLD)的快速發(fā)展,目前采用以MCU+FPGA/CPLD為核心的設(shè)計理念,。這種混合設(shè)汁方案利用CPLD在線修改的特點(diǎn),,實現(xiàn)各種復(fù)雜數(shù)字邏輯設(shè)計,結(jié)合單片機(jī)的控制功能,。簡化數(shù)字電路系統(tǒng)設(shè)計,,大大縮短系統(tǒng)研制開發(fā)周期。本文采用MCU+CPLD設(shè)計方法,,測量兩路信號的相對寬度,,充分利用CPLD速度快,單片機(jī)控制和數(shù)據(jù)處理能力強(qiáng)的優(yōu)勢,,完成頻率和相位差的測量和顯示,,大大簡化了硬件電路,并提高了測量精度和抗干擾能力,。
2頻率和相位測量原理
頻率測量可先測周期T,,然后根據(jù)公式f=1/T算出頻率,這種方法為間接測量,。根據(jù)測頻的誤差分析,,在f較低場合,f越低T越大,。計數(shù)器得數(shù)N也越大,,±1誤差對測量結(jié)果的影響減小。具體實現(xiàn)方法是被測信號(正弦)經(jīng)整形電路后成為方波,,用于控制主門的通斷,,在此期間(一個周期T)外部時標(biāo)信號TS通過主門,用計數(shù)器累計時標(biāo)脈沖個數(shù),。被測信號周期T=NTS,,其中TS為時標(biāo)脈沖周期,N為被測信號一個周期之內(nèi)累計時的標(biāo)脈沖個數(shù),。相位差△φ對應(yīng)的時間=N1TS,,則△φ=(△T/T)×360°。圖1給出f,、△φ測量系統(tǒng)框圖,。
兩個頻率相同而相位不同的正弦信號u1=Asinwt和u2=Asinw (t+△T)分別送人比較器整形后得到兩個方波信號X1,、X2。其中X2送入雙D觸發(fā)器的1CLK端,,得到圖2中的QB波形,;同理,利用X1可得到QA波形,。最后將QB和QA送人與門74LS11,,QB×QA相與得到時間差脈沖△T,△T與相位差對應(yīng)(△φ=w△T),。
3硬件電路設(shè)計
MCU與CPLD控制模塊連接如圖3所示,,MCU采用8位單片機(jī)AT89C51,CPLD選用Altera公司MAX7000S系列中的EPM7128SLC84-15,,該器件一共有84個引腳,,68個I/O端口,采用EEPROM技術(shù),,內(nèi)含2500個邏輯門,,128個宏單元。圖3中CPLD模塊的×1,、×2為整形后的被測信號輸入端,,inclk為外部時標(biāo)信號輸入端,t0,、t1端分別與單片機(jī)的定時/計數(shù)器T0,,T1相連,采用單片機(jī)內(nèi)部16位定時/計數(shù)器,,加上CPLD模塊內(nèi)的8位計數(shù)器,,可使計數(shù)器位數(shù)達(dá)到24位,以此提高分辨率,。P25與讀信號RD,、P26與RD分別控制兩個鎖存器74373的數(shù)據(jù)讀取,此外P24,、P15,、P16分別控制相位和周期的測量。P27與寫信號WR控制寫顯示器,,P10,、P11、P12,、P13,、P14用于鍵盤和顯示的控制。單片機(jī)P0端口用于從CPLD讀取8位計數(shù)器數(shù)據(jù),,另外還用于向顯示器寫顯示數(shù)據(jù),。
4軟件設(shè)計
4.1 CPLD控制模塊設(shè)計
CPLD控制模塊的底層沒計如圖4所示,,CPLD控制程序中的變量P2.4、p1.5,、×1,、×2、p2_6,、rd,、p2_7、wr的數(shù)據(jù)類型為IN STD_LOGIC,;變量p1_6,、t0、t1,、o1、pout的數(shù)據(jù)類型為OUT STD_LOGIC,;中間變量有f2,、f1、j1,、j2,、q1,q2,,其中f2,、f1分別與圖2中的波形QA、QB表示的端口一致,;j1,、j2的數(shù)據(jù)類型std_logic_vector,分別代表圖4中兩個8位計數(shù)器74393的輸出,;q1,,q2分別表示與門7403、7411的輸出,。根據(jù)頻率,、相位測量原理,測量部分將由CPLD完成,,測量結(jié)果經(jīng)單片機(jī)運(yùn)算后存LED上顯示,。由CPLD完成的相位測量部分程序以下給出相關(guān)程序代碼。
4.2 MCU程序設(shè)計
系統(tǒng)控制軟件采用C語言和匯編語言混合編寫,,采用模塊化設(shè)計,,各個功能子模塊獨(dú)立。整個軟件分為主程序,、頻率測量子程序,、相位差測量子程序,。圖5為相位差測量子程序流程圖。
5 CPLD仿真
系統(tǒng)CPLD仿真波形如圖6所示,,在×1,、×2端輸入周期T=40μs、相位差△φ=135°的兩路被測信號,,osc端為5 MHz的輸入時標(biāo)信號,。本系統(tǒng)設(shè)計實現(xiàn)f、△φ測量,,首先要是準(zhǔn)確判斷出被測信號的一個周期的起始與結(jié)束,,因此采用單片機(jī)P16、P24來完成周期判斷,。
結(jié)合圖4的CPLD設(shè)計的底層圖和圖6的CPLD仿真波形分析如下:首先P24=0,。使下面的雙D觸發(fā)器清零,即1Q=2Q=0,,而且P15=1對兩個計數(shù)器74393清零,,等待計數(shù)。P24由0→1后,,當(dāng)被測信號×2上升沿到來時1Q翻轉(zhuǎn),,1Q=1,打開與門7411和7408,,允許時標(biāo)脈沖計數(shù),,此時2Q仍為0;當(dāng)被測信號×2第二次上升沿到來時1Q再次翻轉(zhuǎn),,1Q=0,,同時2Q也翻轉(zhuǎn),2Q=1,。此時單片機(jī)查詢到P16=1,,完成一個周期的檢測。然后使P24=0,,關(guān)閉與門7411和7408,,停止計數(shù)。
計數(shù)完畢后,,當(dāng)P25為低電平且RD下降沿到來時,,單片機(jī)讀取第一個鎖存器74373的數(shù)據(jù)為[q28…q211]=01001011;當(dāng)P26為低電平且RD下降沿到來時,,單片機(jī)讀取第二個鎖存器74373的數(shù)據(jù)為[q28…q21]=11000111,,則△φ=(01001011/11000111)x360°=(75/199)×360°=135°??梢姴ㄐ畏抡骝炞C了系統(tǒng)設(shè)計的正確性,。
6結(jié)語
本文給出了一種采用CPLD器件EPM7128SLC84215實現(xiàn)相位差智能化測量儀的方案,。整個系統(tǒng)充分利用單片機(jī)CPLD可編程邏輯器件各自的優(yōu)勢,只需少量的外圍電路,,即可有效測量正弦波,、方波、三角波信號的相位差,,硬件電路簡單,,精度高,抗干擾能力強(qiáng),,性能指標(biāo)良好,。