基于MCU+CPLD的相位差和頻率的測量方法研究及實現(xiàn)
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在線修改的特點,實現(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ī)運算后存LED上顯示。由CPLD完成的相位測量部分程序以下給出相關(guān)程序代碼。
|
4.2 MCU程序設(shè)計
系統(tǒng)控制軟件采用C語言和匯編語言混合編寫,采用模塊化設(shè)計,各個功能子模塊獨立。整個軟件分為主程序、頻率測量子程序、相位差測量子程序。圖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)良好。