畢業(yè)設(shè)計(jì)--FPGA的低頻數(shù)字相位設(shè)計(jì)_第1頁
畢業(yè)設(shè)計(jì)--FPGA的低頻數(shù)字相位設(shè)計(jì)_第2頁
畢業(yè)設(shè)計(jì)--FPGA的低頻數(shù)字相位設(shè)計(jì)_第3頁
畢業(yè)設(shè)計(jì)--FPGA的低頻數(shù)字相位設(shè)計(jì)_第4頁
畢業(yè)設(shè)計(jì)--FPGA的低頻數(shù)字相位設(shè)計(jì)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1 引言本設(shè)計(jì)采用單片機(jī)和FPGA相結(jié)合的電路實(shí)現(xiàn)方案??紤]到FPGA具有集成度高,I/O資源豐富,穩(wěn)定可靠,可現(xiàn)場(chǎng)在線編程等優(yōu)點(diǎn),而單片機(jī)具有很好的人機(jī)接口和運(yùn)算控制功能,所以采用FPGA和單片機(jī)相結(jié)合,構(gòu)成整個(gè)系統(tǒng)的測(cè)控主體。自1985年Xilinx公司推出第一片現(xiàn)場(chǎng)可編程邏輯陣列(FPGA)至今,F(xiàn)PGA已經(jīng)成為當(dāng)今電子設(shè)計(jì)應(yīng)用市場(chǎng)上首選的可編程邏輯器件之一。從航空航天到數(shù)字信號(hào)處理,再到汽車家電等消費(fèi)領(lǐng)域,無處不見FPGA的身影。而且,隨著微電子等工藝的進(jìn)步,F(xiàn)PGA器件本身的性能逐年在提高,使得FPGA器件與其他同類器件相比更有競(jìng)爭(zhēng)力。在這個(gè)各類電子設(shè)計(jì)器件百花齊放的時(shí)代,廣闊消費(fèi)者

2、需要對(duì)這些電子設(shè)計(jì)器件有個(gè)更深入地了解,從而為自己的科研學(xué)習(xí)或工業(yè)生產(chǎn)挑選到既能滿足各項(xiàng)性能指標(biāo)要求,又經(jīng)濟(jì)實(shí)惠的適宜的電子設(shè)計(jì)器件。因此,進(jìn)行FPGA器件的應(yīng)用研究并進(jìn)行各類電子設(shè)計(jì)產(chǎn)品的性能優(yōu)勢(shì)比照分析是一項(xiàng)很有價(jià)值和實(shí)際意義的工作。 隨著EDA技術(shù)的高速開展,電子系統(tǒng)的設(shè)計(jì)技術(shù)和工具發(fā)生了深刻的變化,大規(guī)??删幊踢壿嬈骷﨔PGA的出現(xiàn),給設(shè)計(jì)人員帶來了諸多方便。利用它進(jìn)行產(chǎn)品開發(fā),不僅本錢低、周期短、可靠性高,而且可以隨時(shí)在系統(tǒng)中修改其邏輯功能。FPGA器件的本錢越來越低,Actel公司發(fā)布第三代的基于Flash的可編程邏輯方案。這些新的FPGA芯片最低價(jià)將到達(dá)1.5美元,代表了全球最低

3、本錢的FPGA,并且相對(duì)于基于SRAM的FPGA來說具有保密的優(yōu)勢(shì)?;贔lash的FPGA可以提供加密、低功耗、上電工作、可重復(fù)編程的方案。目前生產(chǎn)FPGA的公司主要有Xilinx、Altera、Actel、Lattice、QuickLogic等,生產(chǎn)的FPGA品種和型號(hào)繁多。盡管這些FPGA的具體結(jié)構(gòu)和性能指標(biāo)各有特色,但它們都有 一個(gè)共同之處,即由邏輯功能塊排成陣列,并由可編程的互連資源連接這些邏輯功能塊,從而實(shí)現(xiàn)不同的設(shè)計(jì)。典型的FPGA通常包含三類根本資源:可編程邏輯功能塊、可編程輸入/輸出塊和可編程互連資源??删幊踢壿嫻δ軌K是實(shí)現(xiàn)用戶功能的根本單元,多個(gè)邏輯功能塊通常規(guī)那么地排成一

4、個(gè)陣列結(jié)構(gòu),分布于整個(gè)芯片;可編程輸入/輸出塊完成芯片內(nèi)部邏輯與外部管腳之間的接口,圍繞在邏輯單元陣列四周;可編程內(nèi)部互連資源包括各種長(zhǎng)度的連線線段和一些可編程連接開關(guān),它們將各個(gè)可編程邏輯塊或輸入/輸出塊連接起來,構(gòu)成特定功能的電路。用戶可以通過編程決定每個(gè)單元的功能以及它們的互連關(guān)系,從而實(shí)現(xiàn)所需的邏輯功能。不同廠家或不同型號(hào)的FPGA,在可編程邏輯塊的內(nèi)部結(jié)構(gòu)、規(guī)模、內(nèi)部互連的結(jié)構(gòu)等方面經(jīng)常存在較大的差異。除了上述構(gòu)成FPGA根本結(jié)構(gòu)的三種資源以外,隨著工藝的進(jìn)步和應(yīng)用系統(tǒng)需求的開展,一般在FPGA中還可能包含以下可選資源:存儲(chǔ)器資源塊RAM、分布式RAM;數(shù)字時(shí)鐘管理單元分頻/倍頻、數(shù)

5、字延遲、時(shí)鐘鎖定;算數(shù)運(yùn)算單元高速硬件乘法器、乘加器;多電平標(biāo)準(zhǔn)兼容的I/O接口;高速串行I/O接口;特殊功能模塊以太網(wǎng)MAC等硬IP核;微處理器PowerPC405等硬處理器IP核。下面介紹兩種FPGA的一般結(jié)構(gòu)。第一種包括5個(gè)可配置局部:1可配置邏輯塊,用于實(shí)現(xiàn)大局部邏輯功能;2在可配置邏輯塊的四周分布著可編程的輸入輸出塊Input/Output Blocks,提供封裝引腳與內(nèi)部邏輯之間的連接接口;3豐富的多層互連結(jié)構(gòu)的可編程連線;4片上的隨機(jī)存取塊狀RAM;5全數(shù)字式延遲鎖相環(huán)DLL時(shí)鐘控制塊,與每個(gè)全局時(shí)鐘輸入緩沖器相連,該閉環(huán)系統(tǒng)確保時(shí)鐘邊沿到達(dá)內(nèi)部觸發(fā)器與其到達(dá)輸入引腳同步,有效地

6、消除時(shí)鐘分配的延遲。另一種FPGA器件主要包括:1邏輯陣列,由多個(gè)邏輯陣列塊Logic Array Blocks排列而成,用于實(shí)現(xiàn)大局部邏輯功能;2在芯片四周分布著可編程的輸入輸出單元Input/Output Elements,提供封裝引腳與內(nèi)部邏輯之間的連接接口;3豐富的多層互連結(jié)構(gòu)的可編程連線;4片上的隨機(jī)存取塊狀RAM;5鎖相環(huán)PLL,用于時(shí)鐘的鎖定與同步、能夠?qū)崿F(xiàn)時(shí)鐘的倍頻和分頻;6高速的硬件乘法器,有助于實(shí)現(xiàn)高性能的DSP功能。目前絕大局部FPGA都采用查找表技術(shù),最根本邏輯單元都是由LUT和觸發(fā)器組成的。查找表簡(jiǎn)稱為L(zhǎng)UT,本質(zhì)上就是一個(gè)RAM。目前FPGA中多使用4輸入的LUT,

7、所以每一個(gè)LUT可以看成一個(gè)有4位地址線的16x1的RAM。當(dāng)用戶通過原理圖或VHDL語言描述了一個(gè)邏輯電路以后,F(xiàn)PGA開發(fā)軟件會(huì)自動(dòng)計(jì)算邏輯電路的所有可能的結(jié)果,并把結(jié)果事先寫入RAM。這樣,每輸入一個(gè)信號(hào)進(jìn)行邏輯運(yùn)算就等于輸入一個(gè)地址進(jìn)行查表,找出該地址對(duì)應(yīng)的內(nèi)容,然后輸出即可。由于LUT主要適合SRAM工藝生產(chǎn),所以目前大局部FPGA都是基于SRAM工藝的。而SRAM工藝的芯片在掉電后信息就會(huì)喪失,因此需要外加一片專用的配置芯片。在上電的時(shí)候,由這個(gè)專用配置芯片把數(shù)據(jù)加載到FPGA中,F(xiàn)PGA就可以正常工作。少數(shù)FPGA產(chǎn)品采用反熔絲或Flash工藝,掉電后配置信息不會(huì)喪失,因此這種F

8、PGA芯片不需要外加的專用配置芯片。 單片機(jī)集成度高、功耗低、速度快、價(jià)格廉價(jià)、實(shí)用靈活、開發(fā)周期短。自從20世紀(jì)80年代單片機(jī)首次推出以來,一經(jīng)上市便顯示出強(qiáng)大的生命力,以其獨(dú)特的優(yōu)點(diǎn)迅速占領(lǐng)市場(chǎng)并獲得了廣泛使用,并且很快在全世界得到廣泛的推廣與應(yīng)用。一直到現(xiàn)在,單片機(jī)技術(shù)正日臻完善,國(guó)內(nèi)外的單片機(jī)熱更是經(jīng)久不衰,對(duì)于電子信息產(chǎn)業(yè)的開展更具有“倍增器的作用。因此新型單片機(jī)已成為21世紀(jì)極具開展?jié)摿陀绊懥Φ囊豁?xiàng)電子科技產(chǎn)品。目前,單片機(jī)正朝著兼容性、單片系統(tǒng)化、多功能和低功耗的方向開展。單片機(jī)與單片系統(tǒng)、智能傳感器、網(wǎng)絡(luò)通信等高新技術(shù)的融合必將成為21世紀(jì)新的經(jīng)濟(jì)增長(zhǎng)點(diǎn)。隨著微電子技術(shù)和計(jì)算

9、機(jī)技術(shù)的迅速開展,單片機(jī)升級(jí)換代的速度在不斷加快,涉及新型單片機(jī)原理、接口技術(shù)、外圍電路設(shè)計(jì)及應(yīng)用技術(shù)的知識(shí)也在不斷更新。該設(shè)計(jì)中系統(tǒng)實(shí)現(xiàn)的增益程控放大功能和增益程控衰減功能主要是通過單片機(jī)、單片機(jī)外圍電路、接口技術(shù)以及一些單片機(jī)原理來完成的,單片機(jī)成了整個(gè)電路中的“中心樞紐,在功能鍵的控制下,單片機(jī)來完成對(duì)各個(gè)模塊的控制。在整個(gè)過程中,單片機(jī)完成信號(hào)的接受、處理、傳出,在人為的操作下,控制著整個(gè)電路的工作狀態(tài)。隨著電子技術(shù)的高速開展,現(xiàn)在的電子系統(tǒng)逐漸實(shí)現(xiàn)了智能化、人性化、最優(yōu)化,并且富有了系統(tǒng)性、社會(huì)性。除了能夠滿足系統(tǒng)功能和性能指標(biāo)要求外,還具有很多優(yōu)點(diǎn):如電路簡(jiǎn)單、電磁兼容性好、可靠性

10、高、系統(tǒng)集成度高、調(diào)試簡(jiǎn)單方便、操作簡(jiǎn)便、性能價(jià)格比高。從系統(tǒng)的角度看,電子系統(tǒng)是能按特定的控制信號(hào),執(zhí)行所設(shè)想的功能,由一組元器件通常電子器件連成的一個(gè)整體。從單級(jí)放大器到最復(fù)雜的計(jì)算機(jī)等很多設(shè)備都可以稱為一個(gè)電子系統(tǒng)??梢詮暮芏嘣骷蔀橐粋€(gè)功能單元,再用假設(shè)干個(gè)功能單元去描述一個(gè)系統(tǒng)。一般來說,電子系統(tǒng)分為模擬型、數(shù)字型及兩者兼而有之的混合型三種,無論哪一種電子系統(tǒng),他們都是能夠完成某種任務(wù)的電子設(shè)備。通常把規(guī)模較小、功能單一的電子系統(tǒng)稱為單元電路,實(shí)際應(yīng)用中的電子系統(tǒng)由假設(shè)干單元電路組成。一般的電子系統(tǒng)由輸入、輸出、信息處理三大局部組成,用來實(shí)現(xiàn)對(duì)信息的采集處理、變換與傳輸功能。對(duì)于

11、模擬電子系統(tǒng),輸入電路主要起到系統(tǒng)與信號(hào)源的阻抗匹配,信號(hào)的輸入與輸出連接方式的轉(zhuǎn)換,信號(hào)的綜合等作用,輸出電路主要解決與負(fù)載或被控對(duì)象的匹配和輸出足夠大的功率去驅(qū)動(dòng)負(fù)載的問題。而對(duì)于數(shù)字電子系統(tǒng),輸入與輸出電路主要解決與現(xiàn)場(chǎng)信號(hào)和控制對(duì)象的接口問題,輸入電路往往由一些轉(zhuǎn)換器或鎖存器組成,而輸出電路也由一些對(duì)應(yīng)的轉(zhuǎn)換器和驅(qū)動(dòng)器組成。 在工業(yè)和民用場(chǎng)合,為了對(duì)各種低頻信號(hào)進(jìn)行測(cè)量分析,常常引入相位測(cè)量?jī)x。同頻信號(hào)間相位差的測(cè)量在電力系統(tǒng)、工業(yè)自動(dòng)化、智能控制及通信、電子、地球物理勘探等許多領(lǐng)域都有著廣泛的應(yīng)用。尤其在工業(yè)領(lǐng)域中,相位不僅是衡量平安的重要依據(jù),還可以為節(jié)約能源提供參考。因此,研究和

12、設(shè)計(jì)低頻數(shù)字相位測(cè)量?jī)x將會(huì)為國(guó)民經(jīng)濟(jì)的開展起到推動(dòng)和促進(jìn)作用。2 概述2.1 FLEX10KK簡(jiǎn)介 FLEX10K是工業(yè)界第一個(gè)嵌入式的可編程邏輯器件,采用可重構(gòu)的CMOS SRAM工藝,把連續(xù)的快速通道互連與獨(dú)特的嵌入式陣列結(jié)構(gòu)相結(jié)合,同時(shí)也結(jié)合了眾多可編程器件的優(yōu)點(diǎn)來完成普通門陣列的宏功能。FLEX10K的集成度已到達(dá)25萬門。它能讓設(shè)計(jì)人員輕松地開發(fā)出集存儲(chǔ)器、數(shù)字信號(hào)處理器及特殊邏輯包括32位多總線系統(tǒng)等強(qiáng)大功能于一身的芯片,已經(jīng)推出了FLEX10K、FLEX10KA、FLEX10KV、FLEX10KE等分支系列。其中EPF10K20是FLEX10K系列器件之一。 FLEX10K系列器

13、件主要由嵌入式陣列塊、邏輯陣列塊、快速通道FAST TRACK互連和I/O單元四局部組成。由于FPGA器件的基于SRAM結(jié)構(gòu),數(shù)據(jù)具有揮發(fā)性,所以每次上電使用時(shí)必須重新下載數(shù)據(jù)。對(duì)FPGA數(shù)據(jù)下載可通過下載電纜、專用配置芯片或微處理器等方式完成。在本設(shè)計(jì)中,采用配置芯片EPC1441來完成。EPC1441配置芯片屬于EPROM結(jié)構(gòu),而不具有可擦寫性。 HYPERLINK l _Toc24790 2.2 VHDL硬件描述語言 VHDL語言的開展?fàn)顩r1VHDL的英文全名是Very-High-Speed Integrated Circuit Hardware Description Language

14、,誕生于1982年。1987年底,VHDL被IEEEThe Institute of Electrical and Electronics Engineers)和美國(guó)國(guó)防部卻認(rèn)為標(biāo)準(zhǔn)硬件描述語言。自IEEE公布了VHDL的標(biāo)準(zhǔn)版本IEEE-1076)之后,各EDA公司相繼推出了自己的VHDL設(shè)計(jì)環(huán)境,或宣布自己的設(shè)計(jì)工具可以和VHDL 接口。此后VHDL在電子設(shè)計(jì)領(lǐng)域得到了廣泛的接收,并逐步取代了原有的非標(biāo)準(zhǔn)硬件描述語言。1933年,IEEE對(duì)VHDL進(jìn)行論文修訂,從更高的抽象層次和系統(tǒng)描述能力上擴(kuò)展VHDL的內(nèi)容,公布了新版本的VHDL,即IEEE標(biāo)準(zhǔn)的1076-1993版本。現(xiàn)在,VHDL

15、和Verilog語言作為IEEE的工業(yè)標(biāo)準(zhǔn)硬件描述語言,又得到眾多EDA公司的支持,在電子工程領(lǐng)域,以成為事實(shí)上的通用硬件描述語言。有專家認(rèn)為,在新世紀(jì)中,VHDL語言將承當(dāng)起幾乎全部的數(shù)字系統(tǒng)設(shè)計(jì)任務(wù)。 VHDL的特點(diǎn)VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)、行為、功能和接口。除了含有許多具有硬件特征的語句外,VHDL的語言形式和描述風(fēng)格與句法十分類似于一般的計(jì)算機(jī)高級(jí)語言。VHDL的程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)工程設(shè)計(jì),或設(shè)計(jì)實(shí)體可以是一個(gè)元件、一個(gè)電路模塊或一個(gè)系統(tǒng)分成外部或稱可視局部,即端口和內(nèi)部或稱不可視局部,即設(shè)計(jì)實(shí)體的內(nèi)部功能和算法完成局部。在對(duì)一個(gè)設(shè)計(jì)實(shí)體定義了外部界面后,一旦內(nèi)部開發(fā)完成后

16、,其他的設(shè)計(jì)可以直接調(diào)用這個(gè)實(shí)體。這種將設(shè)計(jì)實(shí)體分成內(nèi)外局部的概念是VHDL系統(tǒng)設(shè)計(jì)的根本點(diǎn)。應(yīng)用VHDL進(jìn)行工程設(shè)計(jì)的優(yōu)點(diǎn)是多方面的,具體如下:與其它的硬件描述語言相比,VHDL具有更強(qiáng)的行為描述能力,從而決定了它成為系統(tǒng)設(shè)計(jì)領(lǐng)域最正確的硬件描述語言。強(qiáng)大的行為描述能力是避開具體的器件結(jié)構(gòu),從邏輯行為上描述和設(shè)計(jì)大規(guī)模電子系統(tǒng)的重要保證。就目前流行的EDA工具和VHDL綜合器而言,將基于抽象的行為描述風(fēng)格的VHDL程序綜合成為具體的FPGA和CPLD等目標(biāo)器件的網(wǎng)表文件已不成問題,只是在綜合與優(yōu)化效率上略有差異。VHDL最初是作為一種仿真標(biāo)準(zhǔn)格式出現(xiàn)的,因此VHDL既是一種硬件電路描述和設(shè)計(jì)

17、語言,也是一種標(biāo)準(zhǔn)的網(wǎng)表格式,還是一種仿真語言,其豐富的仿真語句和庫函數(shù),使得在任何大系統(tǒng)的設(shè)計(jì)早期,就能用于查驗(yàn)設(shè)計(jì)系統(tǒng)的功能可行性,隨時(shí)可對(duì)設(shè)計(jì)進(jìn)行仿真模擬。即在遠(yuǎn)離門級(jí)的高層次上進(jìn)行模擬,是設(shè)計(jì)者對(duì)整個(gè)工程設(shè)計(jì)的結(jié)構(gòu)和功能的可行性作出決策。VHDL語句的行為描述能力和程序結(jié)構(gòu)決定了它具有支持大規(guī)模設(shè)計(jì)的分解和已有設(shè)計(jì)的再利用功能,符合市場(chǎng)所需求的,大規(guī)模系統(tǒng)高效、高速的完成必須由多人甚至多個(gè)開發(fā)組共同并行工作才能實(shí)現(xiàn)的特點(diǎn)。VHDL中設(shè)計(jì)實(shí)體的概念、程序包的概念、設(shè)計(jì)庫的概念為設(shè)計(jì)的分解和并行工作提供了有利的支持。對(duì)于用VHDL完成的一個(gè)確定的設(shè)計(jì),可以利用EDA工具進(jìn)行邏輯綜合和優(yōu)化,

18、并自動(dòng)低把VHDL描述設(shè)計(jì)轉(zhuǎn)變成門級(jí)網(wǎng)表。這種方式突破了門級(jí)設(shè)計(jì)的瓶頸,極大地減少了電路設(shè)計(jì)的時(shí)間和可能發(fā)生的錯(cuò)誤,降低了開發(fā)本錢。應(yīng)用EDA工具的邏輯優(yōu)化功能,可以自動(dòng)地把一個(gè)綜合后的設(shè)計(jì)變成一個(gè)更高效、更高速的電路系統(tǒng)。反過來,設(shè)計(jì)者還可以容易地從綜合和優(yōu)化后的電路獲得設(shè)計(jì)信息,返回去更新修改VHDL設(shè)計(jì)描述,使之更為完善。VHDL對(duì)設(shè)計(jì)的描述具有相對(duì)獨(dú)立性,設(shè)計(jì)者可以不懂硬件的結(jié)構(gòu),也不必管最終設(shè)計(jì)實(shí)現(xiàn)的目標(biāo)器件是什么,而進(jìn)行獨(dú)立的設(shè)計(jì)。正因?yàn)閂HDL的硬件描述與具體的工藝技術(shù)和硬件結(jié)構(gòu)無關(guān),VHDL設(shè)計(jì)程序的硬件實(shí)現(xiàn)目標(biāo)器件有廣闊的選擇范圍,其中包括各系列的CPLD、FPGA及各種門陣

19、列實(shí)現(xiàn)目標(biāo)。由于VHDL具有類屬描述語句和子程序調(diào)用等功能,對(duì)于已完成的設(shè)計(jì),在不改變?cè)闯绦虻臈l件下,只需改變端口類屬參量或函數(shù),就能輕易地改變?cè)O(shè)計(jì)的規(guī)模和結(jié)構(gòu)。13 關(guān)于自頂向下的系統(tǒng)設(shè)計(jì)方法使用VHDL設(shè)計(jì)系統(tǒng)方法是自頂向下的系統(tǒng)設(shè)計(jì)方法,在設(shè)計(jì)過程中,首先是從整體上對(duì)系統(tǒng)設(shè)計(jì)作詳細(xì)的規(guī)劃,然后完成電路系統(tǒng)功能行為方面的設(shè)計(jì),其設(shè)計(jì)流程如圖。VHDL仿真器VHDL文本編輯時(shí)序與功能仿真器FPGA/CPLD適配器FPGA/CPLD器件和電路系統(tǒng)FPGA/CPLD編程下載器VHDL文本編輯圖2-1 VHDL設(shè)計(jì)流程圖 3 系統(tǒng)設(shè)計(jì)方案與論證 從功能角度來看,數(shù)字相位測(cè)量?jī)x以后簡(jiǎn)稱測(cè)量?jī)x需要完成

20、正弦信號(hào)的頻率測(cè)量,以及兩個(gè)同頻正弦信號(hào)相位差的測(cè)量。測(cè)量?jī)x有2路輸入被測(cè)信號(hào),他們是2個(gè)同頻率的正弦信號(hào),被測(cè)信號(hào)的頻率范圍為20Hz20kHz,幅度分別為Upp=(15)V,且兩者幅度不一定相等。不妨令被測(cè)信號(hào)周期為T,相位差為,相位差為對(duì)應(yīng)的時(shí)間差是T,那么有比例關(guān)系式 T:360=T: (1)由此式可以推導(dǎo)出 =TT*360 2式2說明,相位差與T有著一一對(duì)應(yīng)的關(guān)系,可以通過測(cè)量時(shí)間差T及信號(hào)周期T,計(jì)算得到相位差。相位差的測(cè)量本質(zhì)是時(shí)間差T及信號(hào)周期T的測(cè)量。時(shí)間的測(cè)量有多種方法,而設(shè)計(jì)任務(wù)關(guān)于測(cè)量?jī)x的技術(shù)指標(biāo)會(huì)影響設(shè)計(jì)方案的選擇。3.1 以MCU為核心的實(shí)現(xiàn)方案經(jīng)分析計(jì)算得知,以單

21、片機(jī)為核心的測(cè)量?jī)x,當(dāng)單片機(jī)的外接晶振為12MHz時(shí),計(jì)數(shù)器/定時(shí)器的計(jì)數(shù)誤差為正負(fù)一個(gè)機(jī)器周期,即1us,由此而產(chǎn)生的相位差絕對(duì)誤差為7.2,假設(shè)外接晶振為24MHz時(shí),相位差絕對(duì)誤差為=3.6.所以,以單片機(jī)為核心的設(shè)計(jì)方案當(dāng)被測(cè)頻率較高時(shí)很難滿足設(shè)計(jì)要求。3.2 以MCU與FPGA相結(jié)合的實(shí)現(xiàn)方案如圖3-1所示,系統(tǒng)主要由現(xiàn)場(chǎng)可編程門陣列FPGAfield programmable gate array和MCU組成。讓FPGA實(shí)現(xiàn)數(shù)據(jù)采集,即將被測(cè)信號(hào)的頻率f、相位差所對(duì)應(yīng)的時(shí)間差T分別轉(zhuǎn)換為二進(jìn)制數(shù)據(jù),并傳送給MCU。MCU從FPGA獲取數(shù)據(jù),并經(jīng)CPU計(jì)算、轉(zhuǎn)換等有關(guān)處理后,得到被測(cè)

22、信號(hào)的頻率和相位差并送LED數(shù)碼管顯示。整形電路整形電路FPGAMCU顯示器圖3-1 以MCU和FPGA相結(jié)合的實(shí)現(xiàn)方案框圖因?yàn)樵O(shè)計(jì)任務(wù)要求,相位差測(cè)量絕對(duì)誤差2,而用FPGA設(shè)計(jì)的計(jì)數(shù)器在測(cè)量T時(shí)有一個(gè)字的誤差,對(duì)被測(cè)信號(hào)頻率f=20kHz而言,下式成立: 2:T=360:50us那么有 T=0.278us這就是說,F(xiàn)PGA在采集相位差對(duì)應(yīng)的時(shí)間差T時(shí),至少要能分辨出0.278us的時(shí)間間隔,為了兼顧MCU計(jì)算和時(shí)標(biāo)信號(hào)獲得的方便,我們采用周期T=0.1us,即頻率f0=10MHz的時(shí)鐘脈沖作為時(shí)標(biāo)信號(hào)。中選定f0=10MHz后,就可以確定FPGA采用的二進(jìn)制數(shù)據(jù)位數(shù)。對(duì)于被測(cè)信號(hào)頻率f=2

23、0Hz而言,計(jì)數(shù)器的計(jì)數(shù)值N1對(duì)應(yīng)取最大值,因?yàn)閒=20Hz時(shí),周期T=50ms,在50ms內(nèi)對(duì)T0計(jì)數(shù),計(jì)數(shù)值為: N1=50ms/0.1us=500000然而 218=262144;219=524288,所以有 218500000219那么FPGA的二進(jìn)制數(shù)據(jù)位數(shù)確定為19bit。 MCU從FPGA要獲得兩種數(shù)據(jù),這兩種數(shù)據(jù)都是19bit無符號(hào)二進(jìn)制數(shù),一種是被測(cè)信號(hào)周期T對(duì)應(yīng)的二進(jìn)制數(shù)據(jù)單位是0.1us;另一種是兩個(gè)被測(cè)信號(hào)的相位差對(duì)應(yīng)的時(shí)間差T單位也是0.1us。這樣,MCU與FPGA之間需要有握手信號(hào),設(shè)置兩個(gè)握手信號(hào)RSEL、EN.實(shí)際上,RSEL和EN是MCU發(fā)給FPGA的控制信

24、號(hào),以便通過19根I/O線分時(shí)傳送兩個(gè)19bit數(shù)據(jù)。由此采用了MCU與FPGA相結(jié)合的方案。4 系統(tǒng)硬件電路設(shè)計(jì)4.1 信號(hào)整形電路的設(shè)計(jì)8最簡(jiǎn)單的信號(hào)整形電路就是一個(gè)單門限電壓比擬器(如圖4-1所示),當(dāng)輸入信號(hào)每通過一次零時(shí)觸發(fā)器的輸出就要產(chǎn)生一次突然的變化。當(dāng)輸入正弦波時(shí),每過一次零,比擬器的輸出端將產(chǎn)生一次電壓跳變,它的正負(fù)向幅度均受到供電電源的限制,因此輸出電壓波形是具有正負(fù)極性的方波,這樣就完成了電壓波形的整形工作。 圖4-1 采用單門限觸發(fā)器的整形電路 為了防止過零點(diǎn)屢次觸發(fā)的現(xiàn)象,我們使用施密特觸發(fā)器組成的整形電路。施密特觸發(fā)器在單門限電壓比擬器的根底上引入了正反應(yīng)網(wǎng)絡(luò)。由于

25、正反應(yīng)的作用,它的門限電壓隨著輸出電壓Uo的變化而改變,因此提高了抗干擾能力。電路圖如圖4-2所示。圖4-2 整形電路 4.2 FPGA數(shù)據(jù)采集電路的設(shè)計(jì)9 FPGA數(shù)據(jù)采集電路的功能就是實(shí)現(xiàn)將待測(cè)正弦信號(hào)的周期、相位差轉(zhuǎn)變?yōu)?9位的數(shù)字量。FPGA數(shù)據(jù)采集的硬件電路我們可采用FPGA下載板來實(shí)現(xiàn),該下載板包含F(xiàn)PGA芯片、下載電路和配置存儲(chǔ)器,其電路結(jié)構(gòu)可參見對(duì)應(yīng)的FPGA下載板說明書。本電路主要是進(jìn)行FPGA的硬件描述語言(VHDL)程序設(shè)計(jì)。 根據(jù)系統(tǒng)的總體設(shè)計(jì)方案,F(xiàn)PGA數(shù)據(jù)采集電路的輸入信號(hào)有:CLK系統(tǒng)工作用時(shí)鐘信號(hào)輸入端;CLKAA,CLKBB兩路被測(cè)信號(hào)輸入端;EN單片機(jī)發(fā)出

26、的傳送數(shù)據(jù)使能信號(hào),在EN的上升沿,F(xiàn)PGA向單片機(jī)傳送數(shù)據(jù);RSEL單片機(jī)發(fā)出的傳送數(shù)據(jù)類型信號(hào),當(dāng)RSEL=0時(shí),F(xiàn)PGA向單片機(jī)傳送被測(cè)信號(hào)頻率數(shù)據(jù),當(dāng)RSEL=1時(shí),F(xiàn)PGA向單片機(jī)傳送被測(cè)信號(hào)相位差數(shù)據(jù)。FPGA數(shù)據(jù)采集電路的輸出信號(hào)有:DATA18.0FPGA到單片機(jī)的數(shù)據(jù)輸出口,由輸出控制信號(hào)EN和RSEL控制。 本數(shù)字式相位測(cè)量?jī)x的要求是測(cè)試并顯示輸入信號(hào)頻率范圍在20 Hz20 kHz,測(cè)試并顯示信號(hào)a、b的相位差,相位差的變化范圍為0359.9,相位差的顯示分辨力為0.1,要求測(cè)量相位的絕對(duì)誤差2。由此可知: 本設(shè)計(jì)要求相位測(cè)量精度絕對(duì)誤差2,因此,在所測(cè)信號(hào)一個(gè)周期中,只

27、有計(jì)數(shù)數(shù)值超過180次時(shí)才能到達(dá)要求。對(duì)于被測(cè)信號(hào)頻率為20kHz時(shí),其周期為50s,在50s內(nèi)計(jì)數(shù)值為180次,由此可計(jì)算出時(shí)間基準(zhǔn)信號(hào)的頻率為20kHz180=3.6MHz,所以采用大于3.6MHz晶振作為時(shí)鐘基準(zhǔn)信號(hào)源,就完全可以滿足精度要求。圖4-3 FPGA數(shù)據(jù)采集電路結(jié)構(gòu)根據(jù)系統(tǒng)的總體設(shè)計(jì)方案,F(xiàn)PGA數(shù)據(jù)采集電路的輸入信號(hào)有:CLK系統(tǒng)工作用時(shí)鐘信號(hào)輸入端;CLKAA,CLKBB兩路被測(cè)信號(hào)輸入端;EN單片機(jī)發(fā)出的傳送數(shù)據(jù)使能信號(hào),在EN的上升沿,F(xiàn)PGA向單片機(jī)傳送數(shù)據(jù);RSEL單片機(jī)發(fā)出的傳送數(shù)據(jù)類型信號(hào),當(dāng)RSEL=0時(shí),F(xiàn)PGA向單片機(jī)傳送被測(cè)信號(hào)頻率數(shù)據(jù),當(dāng)RSEL=1

28、時(shí),F(xiàn)PGA向單片機(jī)傳送被測(cè)信號(hào)相位差數(shù)據(jù)。FPGA數(shù)據(jù)采集電路的輸出信號(hào)有:DATA18.0FPGA到單片機(jī)的數(shù)據(jù)輸出口,由輸出控制信號(hào)EN和RSEL控制。 圖4-4 FPGA數(shù)據(jù)采集模塊數(shù)據(jù)采集電路圖如下列圖4-5所示: 圖4-5 數(shù)據(jù)采集電路4.3 單片機(jī)數(shù)據(jù)運(yùn)算控制電路的設(shè)計(jì)10單片機(jī)數(shù)據(jù)運(yùn)算控制電路的功能就是負(fù)責(zé)讀取FPGA采集到的數(shù)據(jù),并根據(jù)這些數(shù)據(jù)計(jì)算待測(cè)正弦信號(hào)的頻率及兩路同頻正弦信號(hào)之間的相位差,同時(shí)通過功能鍵切換,顯示出待測(cè)信號(hào)的頻率和相位差。單片機(jī)數(shù)據(jù)運(yùn)算控制電路的硬件可由單片機(jī)、晶振電路、按鍵及顯示接口電路等組成。在設(shè)計(jì)中考慮到,單片機(jī)具有較強(qiáng)的運(yùn)算能力和控制能力的特點(diǎn)

29、,因此使用單片機(jī)的P0口,P2口及P1.0、P1.1、P1.2、P1.3接收FPGA送來的對(duì)應(yīng)于正弦信號(hào)的周期、相位差的19位數(shù)據(jù)信號(hào),并在單片機(jī)內(nèi)部完成對(duì)這19bit二進(jìn)制數(shù)據(jù)的處理及相關(guān)運(yùn)算。P1口的P1.7、P1.6接入兩個(gè)輕觸按鍵,完成功能選擇與設(shè)置。P1.3、P1.5分別接EN、RSEL。該電路的工作原理是,單片機(jī)通過向FPGA發(fā)送數(shù)據(jù)傳送指令,使FPGA按照單片機(jī)的要求發(fā)送數(shù)據(jù),同時(shí)通過使用單片機(jī)的串口,將待顯示的數(shù)據(jù)信息送給數(shù)據(jù)顯示電路顯示。其原理圖如圖4-6所示。圖4-6 單片機(jī)數(shù)據(jù)運(yùn)算控制電路4.4 數(shù)據(jù)顯示電路設(shè)計(jì)5數(shù)字顯示電路通常由譯碼器、驅(qū)動(dòng)器和顯示器等局部組成。數(shù)碼顯

30、示器是用來顯示數(shù)字、文字或符號(hào)的器件,數(shù)碼管的顯示方式一般有三種:第一種是字形重疊式,它是將不同的電極重疊起來,要顯示某字符,只需使相應(yīng)的電極發(fā)亮即可,如輝光放電管、邊光顯示管等。第二種是分段式,數(shù)碼管是由一些按一定規(guī)律排列的顆發(fā)光的點(diǎn)陣所組成,利用光點(diǎn)的不同組便可以顯示不同的數(shù)碼。目前應(yīng)用最為廣泛的是七段數(shù)字顯示器,按發(fā)光物質(zhì)的不同數(shù)字顯示器可分為以下幾類:1半導(dǎo)體顯示器;2熒光數(shù)字顯示器;3液體數(shù)字顯示器;4氣體放電顯示器。LED顯示器的可靠性也非常好,單就可靠性,LED的半衰期(即光輸出量減少到最初值一半的時(shí)間)大概是1萬到10萬小時(shí)。相反,小型指示型白熾燈的半衰期(此處的半衰期指的是有

31、一半數(shù)量的燈失效的時(shí)間)典型值是10萬到數(shù)千小時(shí)不等,具體時(shí)間取決于燈的額定工作電流。單片機(jī)驅(qū)動(dòng)LED顯示有很多方法,按顯示方式可以分為靜態(tài)顯示和動(dòng)態(tài)顯示。靜態(tài)顯示就是顯示驅(qū)動(dòng)電路具有輸出鎖存功能,單片機(jī)將要顯示的數(shù)據(jù)送出后就不再控制LED,直到下一次顯示時(shí)再傳送一次新的數(shù)據(jù)。只要當(dāng)前顯示的數(shù)據(jù)沒有變化,就無須理睬數(shù)碼顯示管。靜態(tài)顯示的數(shù)據(jù)穩(wěn)定,占用的CPU時(shí)間少。靜態(tài)顯示中,每一個(gè)顯示器都要占用單獨(dú)具有瑣存功能的I/O口,該接口用于筆畫段字型代碼。這樣單片機(jī)只要把顯示的字型數(shù)據(jù)代碼發(fā)送到接口電路,該字段就可以顯示要發(fā)送的字型。要顯示新的數(shù)據(jù)時(shí),單片機(jī)再發(fā)送新的字型碼。另一種方法是動(dòng)態(tài)掃描顯示

32、。動(dòng)態(tài)掃描方法是用其接口電路把所有顯示器的8個(gè)筆畫字段ag和dp同名端連在一起,而每一個(gè)顯示器的公共極COM各自獨(dú)立接受I/O線控制。CPU向字段輸出端口輸出字型碼時(shí),所有顯示器接受相同的字型碼,但究竟使那一位那么由I/O線決定。動(dòng)態(tài)掃描用分時(shí)的方法輪流控制每個(gè)顯示器的COM端,使每個(gè)顯示器輪流電亮。在輪流點(diǎn)亮過程中,每位顯示器的點(diǎn)亮?xí)r間極為短暫,但由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù)。整個(gè)系統(tǒng)硬件電路中,單片機(jī)MCU與FPGA進(jìn)行數(shù)據(jù)交換占用了P0口、P1口和P3口,因此數(shù)據(jù)顯示電路的設(shè)計(jì)采用靜態(tài)顯示的方式,顯示電路由8個(gè)共陽極七段數(shù)碼管和8片1位串入

33、8位并出的74LS164芯片組成。這種顯示方式不僅可以得到較為簡(jiǎn)單的硬件電路,而且可以得到穩(wěn)定的數(shù)據(jù)輸出;這種連接方式不僅占用單片機(jī)端口少,而且充分利用了單片機(jī)的資源,容易掌握其編碼規(guī)律,簡(jiǎn)化了軟件編程,在實(shí)驗(yàn)過程中,也表達(dá)出較高的可靠性。數(shù)據(jù)顯示電路如圖4-7所示。 圖4-7 顯示電路當(dāng)com端接+Vcc時(shí)其二極管正常工作,其輸入端輸入低電平二極管被點(diǎn)亮,其輸入端輸入高電平二極管不被點(diǎn)亮。七段數(shù)碼管可分為共陰極和共陽極的數(shù)碼管,對(duì)于共陰極的數(shù)碼管只有當(dāng)其輸入端輸入高電平時(shí)二極管才會(huì)發(fā)光;而共陽極的數(shù)碼管只有當(dāng)輸入端輸入低電平時(shí)二極管才會(huì)發(fā)光。共陰極內(nèi)部每個(gè)發(fā)光二極管的陰極被接在一起,成為該各

34、段的公共選通線;發(fā)光二極管的陽極那么成為段選線。如果要顯示某個(gè)數(shù)字只需相應(yīng)選中對(duì)應(yīng)的段選線。對(duì)于共陽極數(shù)碼管,那么正好相反,內(nèi)部發(fā)光二極管的陽極接在一起,陰極成為段選線。這兩種數(shù)碼管的驅(qū)動(dòng)方式是不同的。當(dāng)需要點(diǎn)亮共陽極數(shù)碼管的一段時(shí),公共段需接高電平、該段的段選線接低電平,從而該段被點(diǎn)亮。當(dāng)需要點(diǎn)亮共陰極數(shù)碼管的一段時(shí),公共段需接低電平,該段的段選線接高電平,該段被點(diǎn)亮。74LS164是一種8位高速串入/并出的移位存放器,隨著時(shí)鐘信號(hào)的上下變化,串行數(shù)據(jù)通過一個(gè)2輸入與門同步的送入,使用獨(dú)立于時(shí)鐘的主控復(fù)位端讓存放器的輸出端變?yōu)榈碗娖?,并且采用肖特基鉗位電路以到達(dá)高速運(yùn)行的目的。并且還具有以下

35、的特點(diǎn):典型的35MHz移位頻率;異步主控復(fù)位;門控串行輸入;同步數(shù)據(jù)傳輸;采用鉗位二極管限制高速的終端;靜電放電值大于3500V。在本系統(tǒng)中,74LS164的連接方式為:74LS164的輸出Q0Q7分別接LED數(shù)碼管的dp、g、f、e、d、c、b、a,并且Q7連接下一個(gè)74LS164的A、B端,時(shí)鐘CLK連接單片機(jī)的TXD端,第一片芯片的AB端連接單片機(jī)的RXD端,74LS164芯片的主控復(fù)位端接高電平VCC。在這種狀態(tài)下,數(shù)碼管的編碼如表4-1所示。 表4-1 數(shù)碼管的編碼顯示數(shù)碼 斷 碼顯示數(shù)碼斷 碼 0 88H 8 08H 1 0EBH 9 09H 2 4CH A 0AH 3 49H

36、B 38H 4 2BH C 9CH 5 19H D 68H 6 18H E 1CH 7 0CBH F 1EH一般來說在一個(gè)字節(jié)中按照a、b、c、d、e、f、g的順序放置字型碼,比方在一個(gè)共陰極數(shù)碼管上要顯示“7,那么a、b、c段需被點(diǎn)亮。如果對(duì)于共陰極的那么a、b、c對(duì)應(yīng)于高電平;如果對(duì)于共陽極的那么a、b、c對(duì)應(yīng)于低電平。 4.5 直流穩(wěn)壓電源設(shè)計(jì)8根據(jù)本設(shè)計(jì)設(shè)計(jì)要求,所用的電源為220V、50HZ的交流電,整個(gè)系統(tǒng)必須在接通市電以后就可以使用,這樣使用更加方便簡(jiǎn)單。此設(shè)計(jì)中需要穩(wěn)定的直流電源供電,芯片所需要的供電電壓5V。單相交流電經(jīng)過電源變壓器、整流電路、濾波電路和穩(wěn)定電路轉(zhuǎn)換成穩(wěn)定的直

37、流電壓。整流電路將交流電壓變?yōu)槊}動(dòng)的直流電壓,濾波電路可減小脈動(dòng)使直流電壓平滑,穩(wěn)壓電路的作用是在電網(wǎng)電壓波動(dòng)或負(fù)載電流變化時(shí)保持輸出電壓根本不變。4.5.1 直流穩(wěn)壓源結(jié)構(gòu):電源變壓器、整流、濾波電路和穩(wěn)壓電路。1電源變壓器電源變壓器的作用是將來自電網(wǎng)的220V交流電壓u1變換為整流電路所需要的交流電壓u2。電源變壓器的效率為: 19其中:是變壓器副邊的功率,是變壓器原邊的功率。一般小型變壓器的效率如表4-2所示:表4-2變壓器的效率 副邊功率P210VA1030VA3080VA80200VA 效率0.60.70.80.85 因此,當(dāng)算出了副邊功率后,就可以根據(jù)上表算出原邊功率。2整流和濾波

38、電路在穩(wěn)壓電源中一般用四個(gè)二極管組成橋式整流電路,整流電路的作用是將交流電壓u2變換成脈動(dòng)的直流電壓u3,這里一般采用橋式整流電路來實(shí)現(xiàn),即可用四個(gè)二極管來組成,也可用整流橋堆來完成。濾波電路一般由電容組成,其作用是把脈動(dòng)直流電壓u3中的大局部紋波加以濾除,以得到較平滑的直流電壓UI,減小脈動(dòng),提高整流的效果。UI與交流電壓u2的有效值U2的關(guān)系為: 9在整流電路中,每只二極管所承受的最大反向電壓為: 流過每只二極管的平均電流為: 其中:R為整流濾波電路的負(fù)載電阻,它為電容C提供放電通路,放電時(shí)間常數(shù)RC應(yīng)滿足: 16其中:T=20ms是50Hz交流電壓的周期。 3穩(wěn)壓電路13由于輸入電壓u1

39、發(fā)生波動(dòng)、負(fù)載和溫度發(fā)生變化時(shí),濾波電路輸出的直流電壓UI會(huì)隨著變化。因此,為了維持輸出電壓UI穩(wěn)定不變,還需加一級(jí)穩(wěn)壓電路。穩(wěn)壓電路的作用是當(dāng)外界因素電網(wǎng)電壓、負(fù)載、環(huán)境溫度發(fā)生變化時(shí),能使輸出直流電壓不受影響,而維持穩(wěn)定的輸出。穩(wěn)壓電路一般采用集成穩(wěn)壓器和一些外圍元件所組成。采用集成穩(wěn)壓器設(shè)計(jì)的穩(wěn)壓電源具有性能穩(wěn)定、結(jié)構(gòu)簡(jiǎn)單等優(yōu)點(diǎn)。集成穩(wěn)壓器的類型很多,在小功率穩(wěn)壓電源中,普遍使用的是三端穩(wěn)壓器。按輸出電壓類型可分為固定式和可調(diào)式,此外又可分為正電壓輸出或負(fù)電壓輸出兩種類型。固定電壓輸出穩(wěn)壓器常見的有CW78LM78系列三端固定式正電壓輸出集成穩(wěn)壓器;CW79LM79系列三端固定式負(fù)電壓輸

40、出集成穩(wěn)壓器。三端是指穩(wěn)壓電路只有輸入、輸出和接地三個(gè)端子。型號(hào)中最后兩位數(shù)字表示輸出電壓的穩(wěn)定值,有5V、6V、9V、15V、18V和24V。穩(wěn)壓器使用時(shí),要求輸入電壓UI與輸出電壓Uo的電壓差UIUo2V。穩(wěn)壓器的靜態(tài)電流Io =8mA。當(dāng)Uo =518V時(shí),UI的最大值UImax=35V;當(dāng)Uo=1824V時(shí),UI的最大值UImax =40V。 可調(diào)式三端集成穩(wěn)壓器可調(diào)式三端集成穩(wěn)壓器是指輸出電壓可以連續(xù)調(diào)節(jié)的穩(wěn)壓器,有輸出正電壓的CW317系列LM317三端穩(wěn)壓器;有輸出負(fù)電壓的CW337系列LM337三端穩(wěn)壓器。在可調(diào)式三端集成穩(wěn)壓器中,穩(wěn)壓器的三個(gè)端是指輸入端、輸出端和調(diào)節(jié)端。穩(wěn)壓

41、器輸出電壓的可調(diào)范圍為Uo=1.237V,最大輸出電流Iomax =1.5A。輸入電壓與輸出電壓差的允許范圍為:UIUo =340V。4.5.2 電源輸入局部 系統(tǒng)電源需要用5V直流電源供電,其電路如圖4-8所示,把頻率為50Hz、有效值為220V的單相交流電壓轉(zhuǎn)換為幅值穩(wěn)定的5V直流電壓。其主要原理是把單相交流電經(jīng) 過電源變壓器、整流電路、濾波電路、穩(wěn)壓電路轉(zhuǎn)換成穩(wěn)定的直流電壓。由于輸入電壓為電網(wǎng)電壓,一般情況下所需直流電壓的數(shù)值和電網(wǎng)電壓的有效值相差較大,因而電源變壓器的作用顯現(xiàn)出來起到降壓作用。降壓后還是交流電壓,所以需要整流電路把交流電壓轉(zhuǎn)換成直流電壓。由于經(jīng)整流電路整流后的電壓含有較

42、大的交流分量,會(huì)影響到負(fù)載電路的正常工作。需通過低通濾波電路濾波,使輸出電壓平滑。穩(wěn)壓電路的功能是使輸出直流電壓根本不受電網(wǎng)電壓波動(dòng)和負(fù)載電阻變化的影響,從而獲得穩(wěn)定性足夠高的直流電壓。本電路使用集成穩(wěn)壓芯片7805解決了電源穩(wěn)壓?jiǎn)栴}。圖4-8 電源輸入電路原理圖5 系統(tǒng)軟件設(shè)計(jì) 5.1 系統(tǒng)程序結(jié)構(gòu)FPGA數(shù)據(jù)采集主程序模塊主要包括以下幾局部子程序:1信號(hào)分頻模塊子程序;2控制信號(hào)產(chǎn)生模塊子程序;3時(shí)間檢測(cè)模塊子程序;4數(shù)據(jù)鎖存模塊子程序;5輸出選擇模塊子程序。 FPGA數(shù)據(jù)采集模塊系統(tǒng)程序結(jié)構(gòu)如圖5-1所示。數(shù)據(jù)采集主程序 輸出選擇模塊子程序數(shù)據(jù)鎖存模塊子程序時(shí)間檢測(cè)模塊子程序控制信號(hào)產(chǎn)生

43、模塊子程序信號(hào)分頻模塊子程序圖5-1 系統(tǒng)程序結(jié)構(gòu)單片機(jī)數(shù)據(jù)運(yùn)算控制電路的軟件設(shè)計(jì)思路是,單片機(jī)不斷地從FPGA讀取信號(hào)的周期和a、b信號(hào)相位差所對(duì)應(yīng)的時(shí)間差,讀取數(shù)據(jù)后進(jìn)行有關(guān)計(jì)算,并通過轉(zhuǎn)換后,送出給顯示模塊,實(shí)現(xiàn)頻率和相位差的顯示。單片機(jī)主程序流程圖如圖5-2所示。 圖5-2 主程序流程圖單片機(jī)在獲取FPGA的數(shù)據(jù)時(shí),開始的是一般的讀取指令MOV指令,分別從單片機(jī)的P0口、P2口、P1口的低3位讀入數(shù)據(jù),組合為一個(gè)19位的二進(jìn)制數(shù)據(jù),通過控制口線P1.3、P1.5控制FPGA釋放數(shù)據(jù)。經(jīng)過屢次測(cè)試,采用這種方式獲得了比擬好的效果。單片機(jī)讀取FPGA數(shù)據(jù)的程序流程圖如圖5-3所示。圖5-3

44、讀FPGA數(shù)據(jù)程序流程圖單片機(jī)從FPGA讀取信息后,對(duì)信息進(jìn)行計(jì)算,算出信號(hào)a的頻率。其程序流程圖如圖5-4所示。圖5-4 計(jì)算a的頻率程序流程圖由于a、b信號(hào)是兩路頻率相同、相位不同的正弦波信號(hào),因此經(jīng)過整形電路后形成頻率相同,時(shí)間上不重合的兩路信號(hào),這樣,F(xiàn)PGA可以計(jì)數(shù)出兩路信號(hào)的時(shí)間差從而可以計(jì)算出a、b信號(hào)的相位差。其程序流程圖如圖5-5所示。圖5-5 計(jì)算a、b相位差的程序流程圖最后單片機(jī)需要將信號(hào)送到輸出端顯示出來,即單片機(jī)通過顯示子程序?qū)⑿畔⑺偷斤@示電路顯示出來,程序流程圖如圖5-6所示。 圖5-6顯示程序流程圖5.2 各模塊程序如下:5.2.1信號(hào)分頻模塊如圖5-7 圖5-7

45、 信號(hào)分頻模塊 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY FPQ ISPORT(CLK:IN STD_LOGIC;CLKFC:OUT STD_LOGIC);END ENTITY FPQ; ARCHITECTURE ART OF FPQ IS SIGNAL CLKF:STD_LOGIC;BEGINFPQ:BLOCK ISBEGIN PROCESS(CLK) IS VARIABLE TEMP:INTEGER RANGE 0 TO 4; VARIABLE CL:STD_LOGI

46、C; BEGIN IF RISING_EDGE(CLK) THEN IF TEMP=3 THEN TEMP:=0;CL:=1; ELSE TEMP:=TEMP+1;CL:=0; END IF; END IF; CLKF=CL; CLKFC=CLKF; END PROCESS; END BLOCK FPQ;END ARCHITECTURE ART; 5.2.2時(shí)間檢測(cè)模塊如圖5-8 圖5-8 時(shí)間檢測(cè)模塊LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY SJJC ISPORT(CL

47、KFC:IN STD_LOGIC; ENAC:IN STD_LOGIC; CLRAC:IN STD_LOGIC; DAC:OUT STD_LOGIC_VECTOR(18 DOWNTO 0); END ENTITY SJJC; ARCHITECTURE ART OF SJJC IS SIGNAL CLKF:STD_LOGIC; SIGNAL DA:STD_LOGIC_VECTOR(18 DOWNTO 0); SIGNAL CLRA:STD_LOGIC; SIGNAL ENA:STD_LOGIC;BEGINSJJC:BLOCK IS BEGIN PROCESS(ENA,CLRA,CLKF) IS

48、BEGIN IF CLRA=1 THEN DA=0000000000000000000; ELSIF RISING_EDGE(CLKF) THEN IF ENA=1 THEN DA=DA+1; END IF; END IF;DAC=DA;-仿真觀測(cè)輸出用 END PROCESS; END BLOCK SJJC;END ARCHITECTURE ART;5.2.3 控制信號(hào)產(chǎn)生模塊如圖5-9 圖5-9 控制信號(hào)產(chǎn)生模塊 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY KZXY I

49、S PORT( CLKAA:IN STD_LOGIC;CLKBB:IN STD_LOGIC; EN,RSEL:IN STD_LOGIC; CLKAC,CLKBC:OUT STD_LOGIC; -仿真觀測(cè)輸出點(diǎn),調(diào)試好后應(yīng)去掉,以下同 CLAC,CLBC:OUT STD_LOGIC;-仿真觀測(cè)輸出用 CLRAC:OUT STD_LOGIC;-仿真觀測(cè)輸出用 ENAC:OUT STD_LOGIC;-仿真觀測(cè)輸出用 LOADAC:OUT STD_LOGIC;-仿真觀測(cè)輸出用 END ENTITY KZXY; ARCHITECTURE ART OF KZXY IS SIGNAL CLB:STD_LOG

50、IC; SIGNAL CLRA:STD_LOGIC; SIGNAL ENA:STD_LOGIC; SIGNAL LOADA:STD_LOGIC;BEGINKZXH:BLOCK IS SIGNAL CLKA,CLKB:STD_LOGIC; SIGNAL CLA:STD_LOGIC; BEGIN CLKA=NOT CLKAA; CLKB=NOT CLKBB; CLKAC=CLKA;-仿真觀測(cè)輸出用 CLKBC=CLKB;-仿真觀測(cè)輸出用 PROCESS(CLKA) IS BEGIN IF RISING_EDGE(CLKA) THEN CLA=NOT CLA; END IF; ENA=CLA;LOA

51、DA=NOT CLA; CLAC=CLA;-仿真觀測(cè)輸出用 ENAC=ENA;-仿真觀測(cè)輸出用 LOADAC=LOADA;-仿真觀測(cè)輸出用 END PROCESS; PROCESS(CLKB) IS BEGIN IF RISING_EDGE(CLKB) THEN CLB=NOT CLB; END IF; CLBC=CLB;END PROCESS; PROCESS(CLKA,CLA) IS BEGIN IF CLKA=0 AND CLA=0 THEN CLRA=1; ELSE CLRA=0; END IF; CLRAC=CLRA;-仿真觀測(cè)輸出用 END PROCESS; END BLOCK K

52、ZXH;5.2.4數(shù)據(jù)鎖存模塊如圖5-10 圖5-10 數(shù)據(jù)鎖存模塊LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY SJSC ISPORT(DATAAC:OUT STD_LOGIC_VECTOR(18 DOWNTO 0); -仿真觀測(cè)輸出用 DATABC:OUT STD_LOGIC_VECTOR(18 DOWNTO 0); -仿真觀測(cè)輸出用 DAC:IN STD_LOGIC_VECTOR(18 DOWNTO 0);LOADAC:IN STD_LOGIC; CLBC:IN STD

53、_LOGIC ); END ENTITY SJSC; ARCHITECTURE ART OF SJSC IS SIGNAL DA:STD_LOGIC_VECTOR(18 DOWNTO 0); SIGNAL DATAA:STD_LOGIC_VECTOR(18 DOWNTO 0); SIGNAL DATAB:STD_LOGIC_VECTOR(18 DOWNTO 0); SIGNAL CLB:STD_LOGIC; SIGNAL LOADA:STD_LOGIC;BEGINSJSC:BLOCK IS BEGIN PROCESS(CLB) IS -時(shí)間差數(shù)據(jù)進(jìn)程 BEGIN IF CLBEVENT AND

54、 CLB=0 THEN DATAB=DA; END IF;DATABC=DATAB;-仿真觀測(cè)輸出用 END PROCESS; PROCESS(LOADA) IS -提取周期數(shù)據(jù)進(jìn)程 BEGIN IF RISING_EDGE(LOADA) THEN DATAA=DA; END IF; DATAACDATADATANULL; END CASE; END IF; END PROCESS; END BLOCK SCXZ;END ARCHITECTURE ART;6 系統(tǒng)仿真、測(cè)試6.1 仿真生成模塊圖6-1 FPGA程序仿真生成模塊6.2 仿真結(jié)果圖6-2 FPGA數(shù)據(jù)采集時(shí)序仿真圖如圖6-2, F

55、PGA數(shù)據(jù)采集時(shí)序仿真圖所示,F(xiàn)PGA數(shù)據(jù)采集電路的輸入信號(hào)有:1CLK系統(tǒng)工作用時(shí)鐘信號(hào)輸入端;2CLKAA,CLKBB兩路被測(cè)信號(hào)輸入端;3EN單片機(jī)發(fā)出的傳送數(shù)據(jù)使能信號(hào),在EN的上升沿,F(xiàn)PGA向單片機(jī)傳送數(shù)據(jù);4RSEL單片機(jī)發(fā)出的傳送數(shù)據(jù)類型信號(hào),當(dāng)RSEL=0時(shí),F(xiàn)PGA向單片機(jī)傳送被測(cè)信號(hào)頻率數(shù)據(jù),當(dāng)RSEL=1時(shí),F(xiàn)PGA向單片機(jī)傳送被測(cè)信號(hào)相位差數(shù)據(jù)。FPGA數(shù)據(jù)采集電路的輸出信號(hào)是DATA18.0FPGA到單片機(jī)的數(shù)據(jù)輸出口,由輸出控制信號(hào)EN和RSEL控制。7 總結(jié) (1) 在系統(tǒng)的總體設(shè)計(jì)方面,考慮到FPGA具有集成度高,I/O資源豐富,穩(wěn)定可靠,可現(xiàn)場(chǎng)在線編程等優(yōu)點(diǎn)

56、,而單片機(jī)具有很好的人機(jī)接口和運(yùn)算控制功能,本系統(tǒng)利用FPGA和單片機(jī)相結(jié)合,構(gòu)成整個(gè)系統(tǒng)的測(cè)控主體,其中FPGA主要負(fù)責(zé)數(shù)據(jù)采集,而單片機(jī)那么負(fù)責(zé)讀取FPGA采集到的數(shù)據(jù)進(jìn)行有關(guān)計(jì)算處理,以及鍵盤和顯示的控制。 (2) 由于FPGA對(duì)脈沖信號(hào)比擬敏感,而被測(cè)信號(hào)是周期相同,相位不同的兩路正弦波信號(hào),為了準(zhǔn)確的測(cè)出兩路正弦波信號(hào)的相位差及其頻率,我們對(duì)輸入波形在送入FPGA進(jìn)行處理前先設(shè)置了一個(gè)具有正反應(yīng)功能的、由施密特觸發(fā)器組成的整形電路進(jìn)行整形,使正弦波變成方波信號(hào),提高了系統(tǒng)的抗干擾能力。(3) FPGA數(shù)據(jù)采集電路測(cè)量正弦波信號(hào)頻率的原理是:在正弦波信號(hào)整形后得到方波信號(hào)的一個(gè)周期內(nèi)對(duì)

57、周期為Tc秒的數(shù)據(jù)采樣信號(hào)進(jìn)行計(jì)數(shù),其計(jì)數(shù)結(jié)果乘以1/Tc,就是被測(cè)正弦波信號(hào)的頻率,單位為Hz。 (4) 在本系統(tǒng)的設(shè)計(jì)中,F(xiàn)PGA在10 MHz數(shù)據(jù)采集信號(hào)作用下對(duì)待測(cè)信號(hào)周期計(jì)數(shù),并對(duì)兩個(gè)同頻正弦信號(hào)的相位差所對(duì)應(yīng)的時(shí)間差進(jìn)行計(jì)數(shù),分別得到19位數(shù)字量,19位數(shù)字量的物理單位是0.1 s。 (5) 單片機(jī)數(shù)據(jù)運(yùn)算控制電路的軟件設(shè)計(jì)思路是,單片機(jī)不斷地從FPGA讀取信號(hào)的周期和a、b信號(hào)相位差所對(duì)應(yīng)的時(shí)間差,讀取數(shù)據(jù)后進(jìn)行有關(guān)計(jì)算,并通過轉(zhuǎn)換后,送出給顯示模塊實(shí)現(xiàn)頻率和相位差的顯示。(6) 整個(gè)系統(tǒng)硬件電路中,單片機(jī)MCU與FPGA進(jìn)行數(shù)據(jù)交換占用了P0口、P1口和P3口,因此我們數(shù)據(jù)顯示

58、電路的設(shè)計(jì)采用靜態(tài)顯示的方式,顯示電路由8個(gè)共陽極七段數(shù)碼管和8片1位串入8位并出的74LS164芯片組成。這種顯示方式不僅可以得到較為簡(jiǎn)單的硬件電路,而且可以得到穩(wěn)定的數(shù)據(jù)輸出,這種連接方式不僅占用單片機(jī)端口少,而且充分利用了單片機(jī)的資源,容易掌握其編碼規(guī)律,簡(jiǎn)化了軟件編程,在實(shí)驗(yàn)過程中,也表達(dá)出較高的可靠性。參考文獻(xiàn)1 潘松.VHDL使用教程M .成都:電子科技大學(xué)出版社.2000.2 徐志軍、許光芒.大規(guī)??删幊踢壿嬈骷捌鋺?yīng)用M.成都:電子科學(xué)出版社.2001. 3 蔣煥文、孫續(xù).電子學(xué)測(cè)量M.中國(guó)計(jì)量出版社.1988.4 潘永雄.新編單片機(jī)原理與應(yīng)用M.西安電子科技出版社 .2002

59、.5 何立民.單片機(jī)應(yīng)用技術(shù)選編6.北京:北京航空航天大學(xué)出版社,1998。6 唐競(jìng)新.數(shù)字電子電路 . 清華大學(xué)出版社,2003.09 7 趙新民,智能儀器原理及設(shè)計(jì).哈爾濱:哈爾濱工業(yè)大學(xué)出版社,1989.8 康華光,電子技術(shù)根底 模擬局部第四版.北京:高等教育出版社,2003.9 吳超英. 基于CPLD/FPGA技術(shù)的數(shù)字系統(tǒng)設(shè)計(jì)J安徽工業(yè)大學(xué)學(xué)報(bào), 2003,(01)(5-6)10 劉夫江.基于單片機(jī)和CPLD的等精度數(shù)字頻率計(jì)設(shè)計(jì)J. 山東大學(xué),2007:(4-9)11 張永艷. 基于復(fù)雜可編程邏輯器件及用VHDL語言編程的數(shù)字頻率計(jì)的設(shè)計(jì)J. 內(nèi)蒙古大學(xué), 2004:(10-15)

60、12 張永安. 基于CPLD的多功能等精度數(shù)字頻率計(jì)的設(shè)計(jì)J. 內(nèi)蒙古大學(xué), 2004:(21-27) 13 馬建國(guó). 電子系統(tǒng)設(shè)計(jì)M. 北京,高等教育出版社, 2005. 14 楊剛, 周群. 電子系統(tǒng)設(shè)計(jì)與實(shí)踐M. 北京,電子工業(yè)出版社, 2006. 15 謝自美. 電子線路設(shè)計(jì)實(shí)驗(yàn)測(cè)試M. 武漢,華中理工出版社, 2005.16 周志敏主編. 電源實(shí)用技術(shù)系列書M. 北京,機(jī)械工業(yè)出版社, 2006.17 徐愛鈞. 8051單片機(jī)實(shí)踐教程M. 北京,電子工業(yè)出版社, 2005. 18 王修才, 劉祖望. 單片機(jī)接口技術(shù)M. 上海,復(fù)旦大學(xué)出版社, 2000. 19 黃智偉. 全國(guó)大學(xué)生電

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論