【正文】
圖如圖 11所示??傊?,單片機(jī)將向高 性能、高可靠性、低電壓、低功耗、低噪音、低成本的方向發(fā)展 [1]。 目前,單片機(jī)的主流仍然是 8位高性能單片機(jī)。 相位的數(shù)字測量方法基本分為硬件電路測量和 A/D采樣后利用軟件計(jì)算兩種。而數(shù)字化測量技術(shù)則已經(jīng)成為數(shù)字化制造技XX 大學(xué)本科生畢業(yè)設(shè)計(jì) 基于 FPGA 和 MCU的相位測量儀的設(shè)計(jì) 2 術(shù)的一個(gè)不可或缺的關(guān)鍵組成部分,采用適度先進(jìn)的信息化數(shù)字測量技術(shù)和產(chǎn)品來迅速提升我國裝備制造業(yè)水平,是當(dāng)前一個(gè)重要的發(fā)展方向。因此,如何準(zhǔn)確可靠地測量相位差是值得研究的課題 [1]。 在低頻范圍內(nèi),相位測量在電力、機(jī)械等部門有著尤其重要的意義,對(duì)于低頻相位的測量,用傳統(tǒng)的模擬指針式儀表顯然不能夠滿足所需的精度要求,隨著電子技術(shù)以及微機(jī)技術(shù)的發(fā)展,數(shù)字式儀表因其高精度的測量分辨率以及高度的智能化、直觀化 的特點(diǎn)得到越來越廣泛的應(yīng)用。 該設(shè)計(jì) 采用單片機(jī)與 FPGA 相結(jié)合的電路實(shí)現(xiàn)方案 ,很好地發(fā)揮了 FPGA 的 運(yùn)算速度快、資源豐富、編程方便的特點(diǎn) ,并利用了單片機(jī)的較強(qiáng)運(yùn)算、控制功能 ,使得整個(gè)系統(tǒng)模塊化、硬件電路簡單、使用操作方便 。 存檔日期: 存檔編號(hào): 本科生畢業(yè)設(shè)計(jì)(論文) 論 文 題 目: 基于 FPGA 和 MCU 的相位測量儀的設(shè)計(jì) 學(xué) 院: 電氣工程及自動(dòng)化學(xué)院 專 業(yè): 電氣工程及其自動(dòng)化 XX大學(xué)教務(wù)處印制 I 摘 要 隨著社會(huì)和歷史的不斷進(jìn)步, 相位測量技術(shù)廣泛應(yīng)用于國防、科研、生產(chǎn)等各個(gè)領(lǐng)域,對(duì)相位測量的要求也逐步向 高精度、高智能化方向發(fā)展,在低頻范圍內(nèi),數(shù)字式 相位測量儀 因其高精度的測量分辨率以及高度的智能化、直觀化的特點(diǎn)得到越來越廣泛的應(yīng)用。 文章主要介紹設(shè)計(jì)方 案的論證、系統(tǒng)硬件和軟件的設(shè)計(jì) ,給出了詳細(xì)的系統(tǒng)硬件電路圖和系統(tǒng)軟件主程序流程圖 。 相位差是工業(yè)測控領(lǐng)域經(jīng)常需要測量的參數(shù),如電力系統(tǒng)中功率因數(shù)的測量、鐵路系統(tǒng)中相敏軌道電路相位差的測量以及科氏質(zhì)量流量計(jì)中的相位差測量等等 。 相位測量儀的用途極為廣泛,可以測量兩電壓、兩電流及電壓電流之間的相位,是電力部門、工廠和礦山、石油化工、冶金系統(tǒng)正確把握電力使用情況的理想儀表。 傳統(tǒng)的測量方法很多,有示波器測量法, 可變延遲法,基于數(shù)據(jù)采集板的相位測量新方法, 將相位差轉(zhuǎn)化為時(shí)間間隔法,電壓測量法,示零法等。硬件法測量由于電路結(jié)構(gòu)比較復(fù)雜、易受外界干擾影響以及準(zhǔn)確度較差的缺點(diǎn),限制了它的進(jìn)一步發(fā)展。其發(fā)展具體體現(xiàn)在 CPU 功能的增強(qiáng),內(nèi)部資源的增多,引腳的多功能化、低電壓、低功耗等方面。 現(xiàn)在 采用單片機(jī) 與 FPGA 相結(jié)合的電路實(shí)現(xiàn)方案 ,很好地發(fā)揮了 FPGA 運(yùn)算速度快、資源豐富、編程方便的特點(diǎn) ,并利用了單片機(jī)較強(qiáng)的運(yùn)算、控制功能 ,使得整個(gè)系統(tǒng)模塊化、硬件電路簡單、使用操作方便 。 圖 11 相位測量儀示意圖 該 設(shè)計(jì) 要滿足的要求有: 頻率范圍: 20HZ— 20KHZ、 相位測量儀的輸入阻抗≥ 100ΚΩ 、允許兩路輸入正弦信號(hào)峰 峰值可分別在 1V— 5V 范圍內(nèi)變化 、 相位測量絕對(duì)誤差 ≤ 2176。 數(shù)字顯示 相位測量 A輸入 B輸入 XX 大學(xué)本科生畢業(yè)設(shè)計(jì) 基于 FPGA 和 MCU的相位測量儀的設(shè)計(jì) 4 2 設(shè)計(jì)方案論證 從功能 角度來看,相位測量儀要完成信號(hào)頻率的測量和相位差的測量。由此可以看出,相位差θ與 ?T 有一一對(duì)應(yīng)的關(guān)系 ,我們可以通過測量時(shí)間差 ?T 及信號(hào)周期 T 而計(jì)算出相位差θ,這就是相位差測量的基本原理。而 FPGA 具有集成度高, I/O資源豐富,穩(wěn)定可靠, 工作速度快, 可現(xiàn)場在線編程等優(yōu)點(diǎn) ,往往能滿足一些設(shè)計(jì)要求比較高的技術(shù)指標(biāo)。 MCU 對(duì)信號(hào)頻率的測量可以采用直接測量頻率法和測量周期法。 在對(duì)相位差進(jìn)行測量時(shí),我們采用的是測量信號(hào) Ⅰ 、 Ⅱ 相位差所對(duì)應(yīng)的時(shí)間差 ?T ,再根據(jù)公式 ??? T? ( 21) 通過計(jì)算求出相位差 θ 。 TMOD TCON T1 T0 1TF 1TR 0TF 0TR 1IE 1IT 0IE 0IT 圖 22 TMOD及 TCON的控制 ( 1) 若 GATE=0,則由 iTR 控制定時(shí)器 /計(jì)數(shù)器的啟動(dòng)和停止。 該方案實(shí)現(xiàn)的電路圖如圖 23所示,該電路由整形電路、門電路、單片機(jī)等部分組成,由定時(shí)器 /計(jì)數(shù)器 0T 、 1T 分別測量周期和時(shí)間差。 MCU 在處理數(shù)據(jù)(數(shù)字濾波、計(jì)算、數(shù)據(jù)顯示、鍵盤處理)期間,使用軟件停止定時(shí)器工作。子程序SUB1 完成的功能是:執(zhí)行 3次測量時(shí)間差和周期,并保存到內(nèi)存中,子程序 SUB1的流程圖如圖 25 所示??紤]到 FPGA 具有集成度高, I/O 資源豐富,穩(wěn)定可靠,可現(xiàn)場在線編程等優(yōu)點(diǎn),而單片機(jī)具有很好的人機(jī)接口和運(yùn)算控制功能,本設(shè)計(jì)擬用 FPGA 和單片機(jī)相結(jié)合, 來完成整個(gè)測控的主體部分 。信號(hào) A、 B 進(jìn)入 FPGA 后,經(jīng)過其處理獲得以二進(jìn)制形式表示的信號(hào)頻率以及相位差所對(duì)應(yīng)的時(shí)間差。為了兼顧 MCU 計(jì)算的方便和時(shí)標(biāo)信號(hào)獲得的方便,我們采用的是 sT ? ? ,即 MHzf 100 ? 的時(shí)鐘脈沖作為 時(shí)標(biāo)信號(hào)。一種是被測信號(hào)周期 T所對(duì)應(yīng)的二進(jìn)制數(shù)據(jù)(單位是 s? );另一種是兩個(gè)待測信號(hào)的相位差所對(duì)應(yīng)的時(shí)間差 ?T (單位是 s? )。 c. FEN=0 時(shí), FPGA 內(nèi)部電路不予理睬。但是,該系統(tǒng)不一定該設(shè)計(jì)所要求的技術(shù)指標(biāo)。 1μ S 。 ,其計(jì)算過程如下: ??? ??? :13 6 0:50 ss ( 22) 由公式( 22)可以推導(dǎo)出 ??????? )13 6 0( ss ??? ( 23) 同理,若外接晶振為 24MHZ 時(shí),相位差絕對(duì)誤差為 ??? ? 。 以 FPGA 和 MCU 相結(jié)合的設(shè)計(jì)方案中, 讓 FPGA 實(shí)現(xiàn) 兩 路 待測信號(hào) 的 相位差所對(duì)應(yīng)的時(shí)間差 的采集 ,而 MCU 則負(fù)責(zé)讀取 FPGA 采集到的數(shù)據(jù),并根據(jù)這些數(shù)據(jù)計(jì)算待測信號(hào)的相位差,同時(shí) 把得到的信號(hào)頻率和相位差送到 LED 數(shù)碼管顯示。 這種設(shè) 計(jì)方案發(fā)揮了 單片機(jī)控制運(yùn)算能力強(qiáng)的特點(diǎn),同時(shí)也充分的利用了FPGA 數(shù)據(jù)采樣速度快、資源豐富的特點(diǎn)。 XX 大學(xué)本科生畢業(yè)設(shè)計(jì) 基于 FPGA 和 MCU的相位測量儀的設(shè)計(jì) 13 3 系統(tǒng) 硬件設(shè)計(jì) 本設(shè)計(jì) 采用 FPGA 和 MCU 相結(jié)合的方案來完成低頻數(shù)字式相位測量儀的設(shè)計(jì)。 我們知道,通常情況下,輸入信號(hào)往往會(huì)含有干擾,這樣 單門限電壓比較器的整 形電路整形就不太準(zhǔn)確。為了避免被測輸入信號(hào)在過零點(diǎn)時(shí)多次觸發(fā)翻轉(zhuǎn)的現(xiàn)象,我們決定采用由施密特觸發(fā)器組成的整形電路。電路中使用兩個(gè)施密特觸發(fā)器對(duì)兩路被測輸入信號(hào)進(jìn)行整行,在圖中,比較器LM339 連接成施密特觸發(fā)器的形式,為了保證輸入電路在相位差測量的時(shí)候不會(huì)有誤差,必須保證兩個(gè)施密特觸發(fā)器的兩個(gè)門限電平對(duì)應(yīng)相等, 這可以通過調(diào)節(jié)電位器 8R 來使得兩個(gè)施密特觸發(fā)器的門限 電平對(duì)應(yīng)相等 [3]。本設(shè)計(jì)充分利用了 FPGA 可編程資源多、速度快、口線多、實(shí)時(shí)采樣性好等特點(diǎn)。 4. 時(shí)鐘鎖定和時(shí)鐘自舉 該器件為設(shè)計(jì)人員提供了可供選擇的時(shí)鐘鎖定( clock lock)和時(shí)鐘自舉(clock boost)電路。FPGA 電路的設(shè)計(jì)我們采用實(shí)驗(yàn)室已有的 FPGA 適配板來實(shí)現(xiàn),該適配板包含芯片EPF10K10LC84下載電路、 FPGA 配置存儲(chǔ)器、 FPGA 內(nèi)部所需電源模塊等。 FPGA 的時(shí)鐘信號(hào) clk 采用 40MHZ 四引腳石英晶體多謝振蕩器信號(hào)源,由 FPGA 內(nèi)部的分頻模塊對(duì) 40MHZ 信號(hào)進(jìn)行四分頻,得到 10MHZ 的數(shù)據(jù)采樣時(shí)標(biāo)信號(hào),采樣周期為 S。 該電路充分地利用了 單片機(jī) 的 較強(qiáng)的 運(yùn)算 能力和 控制能力 :使用單片機(jī)的 P0 口、 P2口以及 、 、 接受 FPGA 發(fā)送過來的對(duì)應(yīng)的被測輸入信號(hào)的周期和相位差的 19 位二進(jìn)制數(shù)據(jù),并且在單片機(jī)內(nèi)部完 成對(duì)這 19 位二進(jìn)制數(shù)據(jù)的處理和相關(guān)運(yùn)算。除此之外,在設(shè)計(jì)中還要用到單片機(jī)的串口 UART,將待顯示的信息送給顯示模塊顯示。 AT89C51 的主要特性有:片內(nèi)數(shù)據(jù)存儲(chǔ)器內(nèi)含有 128 字節(jié)的 RAM;與 MCS51相兼容;內(nèi)部集成有 4KB 的 FLASH 的存儲(chǔ)器;允許在線編程擦寫 1000 次;具有32根可編程 I/O 線;數(shù)據(jù)可保留 10年;具有兩個(gè) 16 位可編程定時(shí)器; 5個(gè)中斷源; 0— 24MHZ 全靜態(tài)工作方式;低功耗的閑置和掉電模式;片內(nèi)含振蕩器和時(shí)鐘電路;可編程串行通道;具有掉電狀態(tài)下的中斷回復(fù)模式 …… 基于以上特性, AT89C51 完全可以滿足本設(shè)計(jì)的需要。按下按鍵 S,電源對(duì) C充電,使 RESET端快速達(dá)到高電平,松開按鍵, C 向芯片的內(nèi)阻放電,恢復(fù)為低電平,從而使單片機(jī)可靠復(fù)位。 1 2 3 4 5 6ABCD654321DCBAT i t l eN um be r R e v i s i onS i z eBD a t e : 11 M a y 20 12 S he e t of F i l e : D : \ P r ot e l _9 9 _S E _c n\ E xa m pl e s \ M yD e s i gn 1 .dd b D r a w n B y :C130 P FC230 P FCR12 M H ZA T 89 C 5 1X1X2GND 圖 34 片內(nèi)震蕩電路輸出端 綜上所述, MCU 的 電路圖如圖 35 所示。 P0 口為雙向 8位 三態(tài) I/OXX 大學(xué)本科生畢業(yè)設(shè)計(jì) 基于 FPGA 和 MCU的相位測量儀的設(shè)計(jì) 19 口,它既可作為通用 I/O 口,又可作為外部擴(kuò)展時(shí)的數(shù)據(jù)總線及低 8位地址總線的分時(shí)復(fù)用口。 P2 口: 21 ~ 28 腳為 ~ 輸入 /輸出引腳。 它與地址總線高 8 位復(fù)用,一般作為外部擴(kuò)展時(shí)的高 8 位地址總線使用。 表 32 P3口 的 復(fù)用功能 端口引腳 復(fù)用功能 RXD:串行輸入口 TXD:串行輸出口 0INT (外部中斷 0中斷請(qǐng)求 輸入端) 1INT (外部中斷 1中斷請(qǐng)求輸入端) T0(定時(shí)器 0的外部輸入) T1(定時(shí)器 1的外部輸入) WR (外部數(shù)據(jù)存儲(chǔ)器寫選通) RD (外部數(shù)據(jù)存儲(chǔ)器 讀 選通) XX 大學(xué)本科生畢業(yè)設(shè)計(jì) 基于 FPGA 和 MCU的相位測量儀的設(shè)計(jì) 20 1 2 3 4 5 6ABCD654321DCBAT i t l eN um be r R e v i s i onS i z eBD a t e : 11 M a y 20 12 S he e t of F i l e : D : \ P r ot e l _9 9 _S E _c n\ E xa m pl e s \ M yD e s i gn 1 .dd b D r a w n B y :C130 P FC230 P FCR12 M H ZGNDR1R2C22 μ FSV C CGNDS1S2GND39 D 038 D 137 D 236 D 335 D 434 D 533 D 632 D 721 A 822 A 923 A 1024 A 1125 A 1226 A 1327 A 1428 A 1510 R X D11 T X D30 A L E123456789R P 2 10 k Ω 8123456