【正文】
. 19 位的加 1 計數(shù)器完成對 clk 的計數(shù),以便分別得到待測信號的周期數(shù)據(jù)dataa 和相位差對應的時間差 數(shù)據(jù) datab。設置 Q 為輸出端口信號,滿足 Q=1 時,表示信號 A超前信號 B;反之,當 Q=0 時,信號 A滯后信號 B。 FPGA的工作時序 FPGA 的工作時序如圖 41所示 。這種顯示方式不僅 可以得到較為簡單的硬件電路,而且可以得到穩(wěn)定的數(shù)據(jù)輸出顯示。 P3 口 為 8 位準雙向 I/O口,內部具有上拉電阻,它是雙功能復用口,每個引腳可驅動 4個 TTL 負載。 P1口: 1~8 腳為 ~ 輸入 /輸出引腳。 XX 大學本科生畢業(yè)設計 基于 FPGA 和 MCU 的相位測量儀的設計 18 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 O T E L _9 9 _S E _C N \ E X A M P L E S \M yD e s i gn .dd bD r a w n B y :R1R2C22 μ FSR E S E T A T 89 C 5 1V C CGND 圖 33 上電 / 按鍵手動復位電路 片內振蕩電路 輸出端要接晶體振蕩器與電路構成的穩(wěn)定的自激振蕩器,最常見的接法如圖 34所示。 該器件采用 Atmel 高密度非易失存儲器制造技術,與工業(yè)標準的 MCS51 指令集和輸出管腳相兼容。 XX 大學本科生畢業(yè)設計 基于 FPGA 和 MCU 的相位測量儀的設計 16 圖 32 FPGA 與單片機的連接圖 從 FPGA 中獲得的數(shù)據(jù)要通過 19 位 數(shù)據(jù) 接口送到單片機中,其引腳端口對應的關系如表 31 所示 。時鐘自舉電路提供了一個時鐘乘法器,可以很容易的實現(xiàn)時域邏輯乘法,并減少資 源的使用。當輸入的正弦信號電壓大于NU 時,輸出電壓等于 ?TU ;當輸入的正弦信號電壓小于 NU 時,輸出電壓等于?TU 。 在相位差測量過程中,不允許兩路被測信號在整形后 發(fā)生相對相移,或者應該使得兩路被測信號在整形輸入電路中引起的附加相移是相同的。 由于單片機具有較強的運算、控制能力,因此,我們 使用單片機最小系統(tǒng)完成讀取 FPGA 的數(shù)據(jù),并根據(jù)所讀取的數(shù)據(jù)計算待測信號的頻率及兩路同頻信號之間的相位差,同時通過功能鍵切換,由顯示模塊可以顯示待測信號的頻率和相位差。的要求。 根據(jù)設計要求,輸入信號頻率范圍是 20HZ— 20KHZ, 相位測量絕對誤差≤ 2176。實際上, DSEL 和 FEN 是 MCU發(fā)給 FPGA 的控制信號,設置情況如下: a. DSEL=0 且 FEN=1 時, MCU 從 FPGA 中讀取 19 位的周期數(shù)據(jù)。設時標信號頻率為 0f ,時標信號周期為 0T ,對信號 A二分頻后的信號的高電平寬度就是信號周期 T,以此高電平寬度作為控制信號來控制計數(shù)器在時間T 內對 0f 進行計數(shù),則有 TfN ?01 / ( 24) 則被測信號的頻率為: 10 //1 NfTf ?? ( 25) 上式中 , 1N 是計數(shù)器的計數(shù)值,當 0f 一定時,它的大小表示信號頻率的大小。 XX 大學本科生畢業(yè)設計 基于 FPGA 和 MCU 的相位測量儀的設計 8 圖 24 主程序流程圖 圖 25 SUB1 流程圖 以 MCU 和 FPGA 相結合的實現(xiàn)方案 系統(tǒng)主要由現(xiàn)場可編程門陣列 FPGA 和 MCU 組成, 其原理框圖 如圖 26 所示。在引腳 的信號高電平期間 CPU 讀數(shù)據(jù)一次,標志位 用于保證在 =1 期間只讀一次數(shù)據(jù)。 MCU 芯片內部的硬件定時器 /計數(shù)器有 3個特點:定時器 /計數(shù)器可以與 CPU 并行工作;定時器 /計數(shù) 器可以采用中斷方式與系統(tǒng)協(xié)調工作;定時器 /計數(shù)器可以由軟件或硬件控制啟動或停止。 以 MCU 為核心的實現(xiàn)方案 以單片機為核心 的相位測量儀的原理框圖如圖 21 所示 。 不妨令兩個同頻率的正弦信號為)s i n()( )s i n()( 0222 0111 ?? ?? ?? ?? tAtA tAtA mm, 則相位差020xx201 )()( ??????? ?????? tt , 由此可以看出,相位差在數(shù)值上等于初相位之差, θ 是一個角度。 XX 大學本科生畢業(yè)設計 基于 FPGA 和 MCU 的相位測量儀的設計 3 課題設計任務 設計一個低頻數(shù)字式相位測量儀, 要具有頻率測量和 數(shù)字顯示功能,并且要求 能 提高測量、顯示精度和系統(tǒng)穩(wěn)定性,使顯示結果更加精確。 FPGA 是 20 世紀 90 年代發(fā)展起來的大規(guī)??删幊踢壿嬈骷?,隨著 EDA( 電子設計自動化 ) 技術和微電子技術的進步, FPGA 在超高速、 實時測控方面有非常廣闊的應用前景;并且 FPGA 具有高集成度、高可靠性, 幾乎可將整個設計系統(tǒng)下載于同一芯片中,從而大大縮小了電路的體積 [2]。 國內外發(fā)展動態(tài) 經(jīng)過幾十年,特別是近十幾年的建設與發(fā)展,我國儀器儀表行業(yè)已經(jīng)初步形成產(chǎn)品門類品種比較齊全,具有一定生產(chǎn)規(guī)模和開發(fā)能力的產(chǎn)業(yè)體系,成為亞洲除日本以外第二大儀器儀表生產(chǎn)國。 對相位測量的要求也逐步向高精度、高智能化方向發(fā)展 。 本文首先論述了相位測量技術的國內外發(fā)展概況,并根據(jù)現(xiàn)狀設計了此相位測量系統(tǒng)。 而相位差的測量又不同于傳統(tǒng)的電壓、電流信號或物位、溫度量的測量。 通常的測量方法是對兩路輸入信號進行處理,應用過零檢測的方法使其變換成兩個方波,然后對這兩個方波進行比較得到鑒相脈沖,即相位差脈寬。單片機的發(fā)展是為了滿足不斷增長的自動檢測、控制的要求,具體體現(xiàn)在傳感器的接口、各種工業(yè)對象的電氣接口、功率驅動接口、人機接口、通信網(wǎng)絡接口等。 、具有頻率測量及數(shù)字顯示功能、相位差數(shù)字顯示:相位讀數(shù)為 0— 176。因此,相位差的測量本質上就是時間的測量,而時間的測量就要用到電子計數(shù)器 [5]。當信號頻率較高時,我們一般采用直接測量頻率的方法,而信號頻率較低時,則采用測量周期的方法。 ( 2) 若 GATE=1, iTR =1,則由 iTNI 引腳的外部信號控制定時器 /計數(shù)器的啟動和停止。顯示部分采用 UART 方式 0 串行送數(shù)據(jù)給 74LS164,由 74LS164 驅動 LED 數(shù)碼管顯示,這樣可 以 減輕 CPU的負擔(相對動態(tài)掃描而言)。其中, 讓 FPGA 實現(xiàn) 兩個待測信號相位差所對應的時間差 的采集 ,而 MCU 則負責讀取 FPGA 采集到的數(shù)據(jù),并根據(jù)這些數(shù)據(jù)計算待測信號的相位差,同時 把得到的信號頻率和相位差送到 LED 數(shù)碼管顯示 [3]。 當選定 MHzf 100 ? 后,就可以確定 FPGA 采用的二進制數(shù)據(jù)的位數(shù)。 XX 大學本科生畢業(yè)設計 基于 FPGA 和 MCU 的相位測量儀的設計 11 MCU 要完成的任務有 3 個:一是從 FPGA 中獲得 19 位的二進制數(shù)據(jù),并控制FPGA 的工作;二 是對時所獲得的數(shù)據(jù)進行處理(完全由軟件實現(xiàn));三是將處理后的數(shù)據(jù)送給 LED 數(shù)碼管顯示。 當輸入信號頻率 kHzf 20? 時,輸入周期則為 sT ?50? ,可以認為定時器 /計數(shù)器 的計數(shù)誤差為 177。 FPGA 在采集相位差對應的時間差 ?T 時,至少要能分辨出 s? 的時間間隔。單片機與 FPGA 相結合的方案,將系統(tǒng)的硬件部分分為數(shù)據(jù)采樣處理和單片機最小系統(tǒng)兩部分。 施密特觸發(fā)器在單門限電壓比較器的 基礎上引入了正反饋網(wǎng)絡。該芯片特點 如下 [5]: 1. 高密度 典型門為 30000 個,可用門為 119000 個,邏輯單元為 1728 個,嵌入式陣列XX 大學本科生畢業(yè)設計 基于 FPGA 和 MCU 的相位測量儀的設計 15 塊( EAB)為 6個, 24576 個內部 RAM,可用 I/O 為 102 個。當FPGA 配置存儲器中下載配置文件后,該適配板只需要接入 +5V 電源就可以正常工作與用戶應用系統(tǒng)中。 P1 口的、 接入兩個輕觸按鍵,結合軟件編程 來實現(xiàn)頻率與相位差顯示切換功能。它要構成最小系統(tǒng)時只要將單片機接上外部的晶體 、時鐘電路和復位電路即可。該電路的工作原理是:單片機通過向 FPGA 發(fā)送數(shù)據(jù)傳送指令,使 FPGA 按照單片機的要求發(fā)送數(shù)據(jù),同時 通過單片機的串口,將待顯示的數(shù)據(jù)信息發(fā)送給顯示電路顯示。 P2 口為 8 位準雙向 I/O口,內部具有上拉電阻,可直接連接外部 I/O 設備,每個引腳可以驅動 4 個 TTL負載。應為它具有顯示清晰、亮度高、使用電壓低、壽命長等特點,所以被廣泛應用與各種顯示電路中。 XX 大學本科生畢業(yè)設計 基于 FPGA 和 MCU 的相位測量儀的設計 21 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 : 23 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 :Q0Q3Q2Q1Q4Q5Q6Q7A B C L K M R74 L S 16 4Q0Q3Q2Q1Q4Q5Q6Q7A B C L K M R74 L S 16 4Q0Q3Q2Q1Q4Q5Q6Q7A B C L K M R74 L S 16 4+ 5V + 5V+ 5V+ 5VR X DT X D . . . . . . . . . . . .RRRR8 2 K Ω 8 2 K Ω8 2 K ΩabfcgdeD P Y1234567abcdefg8dpdpLEDabfcgdeD P Y1234567abcdefg8dpdpLEDabfcgdeD P Y1234567abcdefg8dpdpLED 圖 36 顯示模塊電路圖 單片機 從 FPGA 中讀取信息并進行處理后,再將信號送到輸出端顯示出來。 其中時鐘信號分頻模塊的作用是 將輸入的信號分頻成我們所需的信號頻率;測量控制信號發(fā)生模塊的作用是根據(jù)兩路被測信號整形后的矩形波信號 產(chǎn)生有關測控信號,包括時間檢測使能信號 ENA,時間檢測清零信號等;被測信號有關時間檢測模塊的作用是 在控制信號 ENA 和 CLR 的控制下,對測控基準時鐘信號CLKF 進行計數(shù)和清零,以便于獲取有關的頻率和相位差數(shù)據(jù);數(shù)據(jù)寄存器模塊的作用是暫存 19 位數(shù)據(jù) dataa、 datab 和 data; 19 位的加 1計數(shù)器模塊的作用是完成對 clkf 的計數(shù),以便分別得到待測信號的周期數(shù)據(jù) dataa 和相位差對應的時間差數(shù)據(jù) datab;二選一數(shù)據(jù)選擇器模塊的做作用是有選擇的將數(shù)據(jù) dataa或 datab送到 FPGA的輸出端 data。 output q。 XX 大學本科生畢業(yè)設計 基于 FPGA 和 MCU 的相位測量儀的設計 23 input reset,clk。 input [18:0] in_data。 圖 46 2 選 1 數(shù)據(jù)選擇模塊 module mux2_1(data,dataa,datab,fen,dsel)。 end endmodule 6. 該模塊中還應該含有計數(shù)器清零信號、計數(shù)器使能信號和其它控制信號的外圍電路。 ,其程序流程框圖如圖 410 所示。 另外如果想讓本系統(tǒng)的精度更高,必須獲得更穩(wěn)定的使能信號 ena 和清零信號 clr,可以先利用施密特觸發(fā)電路產(chǎn)生 ena 送給 FPGA,再由 FPGA 內部 產(chǎn)生 clr