版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于單片機的多功能頻率計CPLD實現(xiàn) 第13頁,共13頁基于單片機的多功能頻率計CPLD實現(xiàn)摘要:本設(shè)計利用CPLD進行測頻計數(shù),單片機實施控制實現(xiàn)頻率計的設(shè)計。利用等精度的設(shè)計方法,克服了基于傳統(tǒng)測頻原理的頻率計測量精度隨被測信號頻率下降而降低的缺點,利用CPLD來實現(xiàn)頻率的測量計數(shù),利用單片機完成整個測量電路的測試控制、數(shù)據(jù)處理,顯示輸出部分也由單片機來完成。CPLD芯片邏輯采用VHDL語言設(shè)計,給出了系統(tǒng)的功能、結(jié)構(gòu)和設(shè)計方法。關(guān)鍵詞:CPLD,單片機,等精度,頻率計1、 引言數(shù)字化是電子設(shè)計的必由之路。從80年代單片機引入我國,單片機已廣泛地應(yīng)用于電子設(shè)計中,使智能化水平在廣度和深度上
2、產(chǎn)生了質(zhì)的飛躍然而,單片機的兩大突出缺點:串行工作特點決定了它的低速性和程序跑飛、不可靠復(fù)位決定了它的低可靠性。CPLD的出現(xiàn)以其高速、高可靠性、串并行工作方式等突出優(yōu)點在電子設(shè)計中廣泛應(yīng)用,并代表著未來EDA設(shè)計的方向。 CPLD的設(shè)計采用了高級語言(如VHDL語言),進一步打破了軟硬件之間的界限,加速了產(chǎn)品的開發(fā)過程。然而,單片機與CPLD在電子系統(tǒng)設(shè)計中有很強的互補性,單片機能實現(xiàn)靈活的邏輯控制功能,很強的數(shù)據(jù)處理能力,與CPLD的高速、高可靠性相結(jié)合在電子系統(tǒng)設(shè)計中將發(fā)揮更強的作用。本設(shè)計就是利用CPLD 進行測頻計數(shù),單片機實施控制實現(xiàn)頻率計的設(shè)計。利用等精度的設(shè)計方法,克服了基于傳
3、統(tǒng)測頻原理的頻率計測量精度隨被測信號頻率下降而降低的缺點。2、 工作原理及電路設(shè)計2.1、系統(tǒng)工作原理2.1.1、傳統(tǒng)測頻方案傳統(tǒng)頻率測量法的基本工作原理見圖1。在傳統(tǒng)頻率測量法中,參考晶振提供了測量的時間基準(zhǔn),分頻后通過控制電路去開啟與關(guān)閉時間閘門。閘門開啟時,計數(shù)器開始計數(shù),閘門關(guān)閉停止計數(shù)。若閘門開放時間為T,計數(shù)值為N,則被測頻率f=N/T。用這種頻率測量原理,對于頻率較低的被測信號來說,存在著測量實時性和測量精度之間的矛盾,不適用于低頻信號的測量。時間閘門計數(shù)器顯示控制過程分頻器(時基)晶體振蕩器圖1 傳統(tǒng)頻率測量基本工作原理2.1.2、等精度測頻工作原理傳統(tǒng)的頻率計測量精度將隨被測
4、信號頻率的下降而降低,而等精度頻率計在整個頻率區(qū)域保持恒定測試精度, 實現(xiàn)方式可以簡化為圖2。DQCENCLKCLROUT1CN1CENCLKCLROUT2CN2門控信號標(biāo)準(zhǔn)信號被測信號清零信號圖2 測頻模塊圖2中門控信號是寬度為的一個脈沖,CN1和CN2是兩個可控計數(shù)器,標(biāo)準(zhǔn)頻率信號從CN1的時鐘輸入端CLK輸入,被測信號從CN2的時鐘輸入端CLK輸人,設(shè)其實際頻率為, 測量頻率為。當(dāng)門控信號為高電平時,被測信號的上沿通過D觸發(fā)器的Q端同時啟動計數(shù)器CNl和CN2,對被測信號和標(biāo)準(zhǔn)頻率信號同時計數(shù)。當(dāng)門控信號為低電平時,隨后而至的被測信號的上沿將使這兩個計數(shù)器同時關(guān)閉。設(shè)在一次門控時間中對被
5、測信號計數(shù)值為。對標(biāo)準(zhǔn)頻率信號的計數(shù)值為,則得 設(shè)所測頻率值為,其真實值為,標(biāo)準(zhǔn)頻率為,在一次測量中由于計數(shù)的起停時間都是由該信號的上升沿觸發(fā)的,在時間內(nèi)的計數(shù)無誤差;此時內(nèi)的計數(shù)最多相差一個脈沖,即則: 由此推得: 根據(jù)相對誤差公式有: 可以得: 即 由此可知:1) 相對測量誤差與頻率無關(guān);2) 增大或提高,可以增大,減少測量誤差,提高測量精度;3) 標(biāo)準(zhǔn)頻率誤差為,由于晶體的穩(wěn)定度很高,標(biāo)準(zhǔn)頻率誤差可以進行校準(zhǔn);4) 等精度測頻方法測量精度與預(yù)置門寬度和標(biāo)準(zhǔn)頻率有關(guān),與被測信號的頻率無關(guān);在預(yù)置門時間和常規(guī)測頻閘門時間相同而被測信號頻率不同的情況下,等精度測量法的測量精度不變,而常規(guī)的直接
6、測頻法精度隨著被測信號頻率下降而下降。為了恒定測頻精度,可采用高頻率穩(wěn)定度和高精度的恒溫可微調(diào)的晶體振蕩器作標(biāo)準(zhǔn)頻率發(fā)生器。2.1.3、測頻模塊功能CPLD中各模塊用VHDL語言編寫,計數(shù)器控制模塊control程序見附2,CPLD 計數(shù)器模塊count程序見附3,經(jīng)Quartus編譯,組成頂層原理圖,如圖3所示。圖3 CPLD測評模塊被測信號從control的fs端輸入,標(biāo)準(zhǔn)頻率信號從control的fx端輸入,門控信號從control的gate端輸入,control端輸入的clr信號用于CPLD工作的初始化,在進行頻率測量時,步驟如下: 1. 令clr=1,使得CPLD系統(tǒng)初始化,此時,不
7、會對標(biāo)準(zhǔn)頻率和被測頻率記數(shù),計數(shù)值歸零并且記數(shù)模塊的輸出均為0。clr=0時允許記數(shù)測頻;2. 由門控信號將control的gate端置高電平, 預(yù)置門開始定時, 此時由被測信號fx的上升沿打開兩個計數(shù)器count分別對標(biāo)準(zhǔn)頻率和被測頻率進行計數(shù),count:inst6和count:inst7均是32位二進制計數(shù)器,輸出8位數(shù)據(jù)總線,單片機給地址BA來分4次將32位數(shù)據(jù)全部讀出。3. 預(yù)置門定時結(jié)束信號把control的gate端置為低電平(由單片機來完成),在被測信號的下一個脈沖的上升沿到來時,count停止對標(biāo)準(zhǔn)頻率和被測頻率的計數(shù)。4. 記數(shù)結(jié)束后,control的end_count端將
8、輸出一個低電平信號表示測量記數(shù)的結(jié)束,單片機得到此信號后,即可利用A,B分別讀回count:inst6和count:inst7的計數(shù)值,并根據(jù)等精度測量計算公式進行運算,計算出被測信號的頻率。2.2、系統(tǒng)總體設(shè)計硬件電路包括按鍵控制模塊、顯示模塊、以及單片機和CPLD主控模塊。設(shè)計器件采用Atmel公司的單片機AT89S52和Altera公司的EPM240T100C5N。按鍵控制模塊設(shè)置1個測頻開始按鍵;顯示模塊用8位共陰極數(shù)碼管,并且由74HC245驅(qū)動;CPLD模塊用于對標(biāo)準(zhǔn)頻率和被測信號頻率的記數(shù)并且把測得的數(shù)據(jù)反饋給單片機,CPLD標(biāo)準(zhǔn)頻率采用50MHz,被測信號頻率范圍為050MHz
9、;單片機模塊完成整個測量電路的測試控制、數(shù)據(jù)處理,顯示輸出部分也由單片機來完成。整個系統(tǒng)的系統(tǒng)框圖如圖4所示。被測頻率數(shù)碼管顯示電路CPLDMCU標(biāo)準(zhǔn)頻率按鍵控制電路圖4 系統(tǒng)框圖2.3、按鍵電路設(shè)計本系統(tǒng)對外只有一個,如圖5所示,此按鍵用于與單片機的人機交互,實現(xiàn)測頻的開始控制。圖5 按鍵電路2.4、顯示電路設(shè)計系統(tǒng)顯示采用8位共陰極LED數(shù)碼管,8位的位選端接74HC138的8位輸出端,74HC138的3位地址輸入端接單片機的3個I/O口;LED的段選端通過串聯(lián)一個330電阻和74HC245連接,以增強帶負(fù)載能力。具體電路如圖6所示。 圖6 顯示電路2.5、單片機小系統(tǒng)電路單片機選用Atm
10、el公司的AT89S52,AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器。使用Atmel公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得AT89S52在眾多嵌入式控制應(yīng)用系統(tǒng)中得到廣泛應(yīng)用。為使單片機能正常工作,單片機必須外接必要的晶振電路和復(fù)位電路,還有電源、數(shù)字地等,具體的電路連接如圖7所示。圖7 單片機小系統(tǒng)電路2.6、CPLD小系統(tǒng)電路CPLD選用Atmel公司的EPM240T100C5N。閃存
11、類型,具有192個宏單元,80個I/O口線,5.9ns傳播延時時間,頻率201.1MHz。如圖8所示。圖8 CPLD小系統(tǒng)電路EPM240T100C5N的系統(tǒng)電源是3.3V,而系統(tǒng)供電電源是5V,所以必須用LDO進行降壓穩(wěn)壓,如圖9所示。圖9 CPLD系統(tǒng)電源電路EPM240T100C5N通過JTAG接口進行程序下載及測試仿真,相關(guān)JTAG引腳的定義為:TCK為測試時鐘輸入;TDI為測試數(shù)據(jù)輸入,數(shù)據(jù)通過TDI引腳輸入JTAG接口;TDO為測試數(shù)據(jù)輸出,數(shù)據(jù)通過TDO引腳從JTAG接口輸出;TMS為測試模式選擇,TMS用來設(shè)置JTAG接口處于某種特定的測試模式。如圖10所示。圖10 CPLD系
12、統(tǒng)JTAG接口電路3、 軟件設(shè)計3.1、總體程序流程圖各種測試功能流程如下:系統(tǒng)初始化后,由鍵盤掃描子程序判斷按鍵是否按下。若按鍵按下則馬上跳轉(zhuǎn)到按鍵處理程序,處理完之后進行對CPLD數(shù)據(jù)的讀取,讀取之后進行相應(yīng)的公式運算,隨后將運算結(jié)果處理存入LED顯示的數(shù)據(jù)數(shù)組,最后進行LED顯示。總體程序流程圖如圖11所示。圖11 總體程序流程圖3.2、子程序流程圖按鍵處理子程序流程圖如圖12所示。按鍵處理子程序只要是對CPLD的控制,首先對CPLD初始化,計數(shù)器清零,然后給門控信號有效可以進行測頻記數(shù),最后判斷測頻記數(shù)是否結(jié)束,若CPLD沒有給單片機測頻結(jié)束的信號則單片機一直處于等待的狀態(tài)。圖12 子
13、程序流程圖4、 功能仿真結(jié)果分析CPLD的8位fs_count、fx_count計數(shù)輸出端分別與單片機的P0、P2口相連。當(dāng)單片機檢測到計數(shù)結(jié)束標(biāo)志end_count=0時產(chǎn)生地址信號B、A,并分時從CPLD讀取數(shù)據(jù), 單片機按測頻公式進行運算。CPLD模塊的功能仿真圖如圖13所示。在B,A取“00”,end_count=0時,在fs_count、fx_count端口有穩(wěn)定的數(shù)據(jù)輸出,并且可以看出輸出的計數(shù)值正是gate門控信號有效期間fs、fx信號的脈沖個數(shù),達到了預(yù)期的目的。圖13 CPLD功能仿真圖 5、 小結(jié)本設(shè)計以單片機為控制器件, 結(jié)合CPLD高速、高可靠性、可編程的特點,實現(xiàn)了由
14、單片機進行控制、CPLD完成各種測試功能的等精度頻率計的設(shè)計,克服了傳統(tǒng)頻率計測量精度隨被測信號頻率下降而降低的缺陷, 提供了等精度頻率的測量,測頻全域相對誤差為百萬分之一,仿真結(jié)果表明系統(tǒng)設(shè)計可行,可靠性高,完成了預(yù)定的技術(shù)指標(biāo)。參考文獻1 李斌,陳建輝,陳維,邱鵬,基于CPLD及C語言的等精度頻率計設(shè)計J,電測與儀表,2006年07期。2 毛智德,呂善偉,基于FPGA的等精度頻率計設(shè)計J,電子測量技術(shù),2006年04期。3 裴立云,朱靜,王守權(quán),基于單片微機控制的等精度頻率計設(shè)計制作J,電腦學(xué)習(xí),2007年01期。4 朱彬,孫海山,基于STC89C51的等精度頻率計研制J,中國儀器儀表,2
15、007年08期。5 李寶營,趙永生,祖龍起,牛悅苓,基于單片機的等精度頻率計設(shè)計J,微計算機信息,2007年26期。6 毛文宇,吳劍文,李偉斌,等精度頻率計的設(shè)計J,科技咨詢導(dǎo)報,2007年29期。7 魏景田,基于單片機和CPLD的等精度頻率計設(shè)計J,科技資訊,2007年34期。8 V. Yu. Teplov,A. V. Anisimov. Thermostatting System Using a Single-Chip Microcomputer and Thermoelectric Modules Based on the Peltier EffectJ ,20029 Yeager Br
16、ent.How to troubleshoot your electronic scaleJ.Powder and Bulk Engineering. 1995附1 單片機程序#includesbit gate_key=P10; /唯一的一個按鍵開關(guān)sbit gate=P11;/門控信號位sbit clr=P12;/對CPLD所有計數(shù)器清零信號位sbit B_add=P13;/讀數(shù)據(jù)時的高地址位sbit A_add=P14;/讀數(shù)據(jù)時的高地址位sbit eend=P15;/CPLD記數(shù)結(jié)束位sbit dis_add1=P14; /LED顯示的位選地址(外界38譯碼器)sbit dis_add2
17、=P16;sbit dis_add3=P17;#define duanxuan P3 /LED段選#define fs_buf P0 /P0接收標(biāo)準(zhǔn)頻率信號記數(shù)數(shù)值,分4次讀取32位二進制數(shù)值#define fx_buf P2 /P2接收被測信號記數(shù)數(shù)值,分4次讀取32位二進制數(shù)值unsigned long fs_data;/標(biāo)準(zhǔn)頻率信號記數(shù)數(shù)值寄存器unsigned long fx_data;/被測信號記數(shù)數(shù)值數(shù)值寄存器unsigned long fx;/被測信號頻率值unsigned long fs=50000000; /標(biāo)準(zhǔn)頻率為50MHzunsigned char dis8;/8位LE
18、D顯示的數(shù)值寄存數(shù)組unsigned char code smgduan=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /共陰極LED顯示數(shù)組表void delayms(unsigned int t); /毫秒級別的延時函數(shù)void main(void)gate=0; /初始化CPLD,門控信號清零clr=0; /讓CPLD計數(shù)器清零while(1)if(!gate_key)/按鍵按下時處理clr=1;/CPLD計數(shù)器清零delayms(1); /延時1ms給硬件反應(yīng)時間clr=0;/允許記數(shù)delayms(1);gate=1;/打開門控
19、信號,開始記數(shù)delayms(1500); /延時1.5sgate=0; /關(guān)閉門控信號while(eend); /等待CPLD給記數(shù)結(jié)束信號fs_data=0x00000000;/對數(shù)值寄存器清零,便于數(shù)值的接收,否則出錯fx_data=0x00000000;B_add=0;/根據(jù)B_add、A_add地址的不同分時讀取計數(shù)器的數(shù)值A(chǔ)_add=0;delayms(1);fs_data+=fs_buf;fx_data+=fx_buf;fs_data=8;fx_data=8;B_add=0;A_add=1;delayms(1);fs_data+=fs_buf;fx_data+=fx_buf;fs
20、_data=8;fx_data=8;B_add=1;A_add=0;delayms(1);fs_data+=fs_buf;fx_data+=fx_buf;fs_data=8;fx_data=8;B_add=1;A_add=1;delayms(1);fs_data+=fs_buf;fx_data+=fx_buf;fx=fs*fx_data/fs_data;/根據(jù)被測頻率計算公式計算被測信號頻率dis0=fx%10; /LED顯示的各位存入dis數(shù)組dis1=fx%100/10;dis2=fx%1000/100;dis3=fx%10000/1000;dis4=fx%100000/10000;dis
21、5=fx%1000000/100000;dis6=fx%10000000/1000000;dis7=fx/10000000;dis_add3=0;/給38譯碼器地址,送位選dis_add2=0;dis_add1=0;duanxuan=smgduan(dis0); /送段選delayms(2);duanxuan=0x00; /關(guān)閉LED顯示,消隱dis_add3=0;dis_add2=0;dis_add1=1;duanxuan=smgduan(dis1);delayms(2);duanxuan=0x00;dis_add3=0;dis_add2=1;dis_add1=0;duanxuan=smgd
22、uan(dis2);delayms(2);duanxuan=0x00;dis_add3=0;dis_add2=1;dis_add1=1;duanxuan=smgduan(dis3);delayms(2);duanxuan=0x00;dis_add3=1;dis_add2=0;dis_add1=0;duanxuan=smgduan(dis4);delayms(2);duanxuan=0x00;dis_add3=1;dis_add2=0;dis_add1=1;duanxuan=smgduan(dis5);delayms(2);duanxuan=0x00;dis_add3=1;dis_add2=1;
23、dis_add1=0;duanxuan=smgduan(dis6);delayms(2);duanxuan=0x00;dis_add3=1;dis_add2=1;dis_add1=1;duanxuan=smgduan(dis7);delayms(2);duanxuan=0x00; void delayms(unsigned int t)/毫秒級別的延時函數(shù)unsigned int i,j;for(i=0;it;i+) for(j=0;j123;j+) 附2 CPLD的計數(shù)器控制模塊VHDL程序library ieee;use ieee.std_logic_1164.all;entity con
24、trol isport(gate,fs,fx,clr:in std_logic; -gate門控信號,fs標(biāo)準(zhǔn)頻率信號,fx被測頻率out1,out2,eend:out std_logic); -計數(shù)器實際計數(shù)的是out1、out2信號end control;architecture one of control is signal Q:std_logic;begin process(gate,fx) beginif (fxevent and fx=1) thenQ=gate;end if; end process; process(fs,fx,clr) beginif clr=1 thenout1=0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年環(huán)境治理與生態(tài)保護合同項目內(nèi)容與責(zé)任分配
- 2024年社區(qū)商業(yè)中心物業(yè)全面管理與維護合同2篇
- 2024版國際技術(shù)貿(mào)易須知
- 2025年度新能源項目投資咨詢與市場分析協(xié)議3篇
- 2024年行動協(xié)調(diào)與信息共享協(xié)議3篇
- 2024年環(huán)保項目投資無息借款合同3篇
- 2024年簡化離婚合同書范例不含子女撫養(yǎng)版B版
- win003-server-pop3-smtp郵件服務(wù)器搭建詳細(xì)圖解教程
- 專題07-語法填空之名詞性從句專練-2023屆英語語法填空強化100題-原卷版
- 2024舞蹈賽事組織舞蹈教練聘請合同3篇
- GB/T 2317.1-2000電力金具機械試驗方法
- 供應(yīng)商ROHs審核表
- JESD22~B117A中文版完整詳細(xì)
- 五大發(fā)電公司及所屬電廠列表及分部精編版
- 小學(xué)數(shù)學(xué)聽課記錄 精選(范文20篇)
- 住宅工程公共區(qū)域精裝修施工組織設(shè)計(217頁)
- 冷卻塔技術(shù)要求及質(zhì)量標(biāo)準(zhǔn)介紹
- 光伏電站設(shè)備監(jiān)造與性能驗收
- 10kV架空線路施工方案
- 2018江蘇蘇州中考英語真題解析
- 10KV戶外封閉型噴射式熔斷器技術(shù)規(guī)范書
評論
0/150
提交評論