等精度數(shù)字頻率計的設(shè)計畢業(yè)設(shè)計(DOC畢業(yè)設(shè)計論文).doc_第1頁
等精度數(shù)字頻率計的設(shè)計畢業(yè)設(shè)計(DOC畢業(yè)設(shè)計論文).doc_第2頁
等精度數(shù)字頻率計的設(shè)計畢業(yè)設(shè)計(DOC畢業(yè)設(shè)計論文).doc_第3頁
等精度數(shù)字頻率計的設(shè)計畢業(yè)設(shè)計(DOC畢業(yè)設(shè)計論文).doc_第4頁
等精度數(shù)字頻率計的設(shè)計畢業(yè)設(shè)計(DOC畢業(yè)設(shè)計論文).doc_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

等精度數(shù)字頻率計的設(shè)計李艷秋摘 要基于傳統(tǒng)測頻原理的頻率計的測量精度將隨著被測信號頻率的下降而降低,在實用中有很大的局限性,而等精度頻率計不但有較高的測量精度,而且在整個測頻區(qū)域內(nèi)保持恒定的測試精度。運用等精度測量原理,結(jié)合單片機技術(shù)設(shè)計了一種數(shù)字頻率計,由于采用了屏蔽驅(qū)動電路及數(shù)字均值濾波等技術(shù)措施,因而能在較寬定的頻率范圍和幅度范圍內(nèi)對頻率,周期,脈寬,占空比等參數(shù)進行測量,并可通過調(diào)整閘門時間預(yù)置測量精度。選取的這種綜合測量法作為數(shù)字頻率計的測量算法,提出了基于FPGA 的數(shù)字頻率計的設(shè)計方案。給出了該設(shè)計方案的實際測量效果,證明該設(shè)計方案切實可行,能達到較高的頻率測量精度。 關(guān)鍵詞 等精度測量,單片機,頻率計,閘門時間,F(xiàn)PGAABSTRACTAlong with is measured based on the traditional frequency measurement principle frequency meter measuring accuracy the signalling frequency the drop but to reduce, in is practical has the very big limitation, but and so on the precision frequency meter not only has teaches the high measuring accuracy, moreover maintains the constant test precision in the entire frequency measurement region. Using and so on the precision survey principle, unified the monolithic integrated circuit technical design one kind of numeral frequency meter, because has used the shield actuation electric circuit and technical measure and so on digital average value filter, thus could in compared in the frequency range and the scope scope which the width decided to the frequency, the cycle, the pulse width, occupied parameter and so on spatial ratio carries on the survey, and might through the adjustment strobe time initialization measuring accuracy. Selection this kind of synthesis measured the mensuration took the digital frequency meter the survey algorithm, proposed based on the FPGA digital frequency meter design proposal. Has produced this design proposal actual survey effect, proved this design proposal is practical and feasible, can achieve the high frequency measurement precision Keywords Precision survey, microcontroller, frequency meter, strobe time,field programmable gate array 目 錄摘 要I ABSTRACTII 1 緒論1 2 系統(tǒng)設(shè)計方案2 2.1系統(tǒng)設(shè)計方案的選擇2 2.1.1 頻率測量模塊2 2.1.2 周期測量模塊42.1.3 脈寬測量模塊42.1.4 占空比測量模塊4 3 系統(tǒng)總體設(shè)計方案5 4 CPLD/FPGA測頻專用模塊的VHDL程序設(shè)計6 4.1 測頻模塊邏輯結(jié)構(gòu)6 4.2 各模塊功能和工作步驟如下:6 4.2.1 測頻/測周期的實現(xiàn)74.2.2 控制部件設(shè)計74.2.3 脈沖寬度測量和占空比測量模塊設(shè)計74.2.4 電路顯示模塊84.2.5 數(shù)碼管的編碼表105 單片機控制與運算程序的設(shè)計11 5.1 AT89C51RC單片機簡介11 5.2 軟件調(diào)試系統(tǒng)19 5.3具體試驗過程20 5.3.1 第一次測試205.3.2 第二次計算225.4 系統(tǒng)調(diào)試的方法23 5.4.1 調(diào)試的軟/硬件235.4.2 系統(tǒng)的仿真結(jié)果235.5 設(shè)計技巧分析24 5.6 系統(tǒng)擴展思路24 6 VHDL程序語言和FPGA簡介26 6.1 vhdl程序語言介紹:26 6.2 FPGA 簡介28 6.3 VHDL 在FPGA中的運用29 結(jié)論32附錄A:單片機程序和VHDL程序33參考文獻56致 謝57 1 緒論 測量頻率是電子測量技術(shù)中最常見的測量之一。不少物理量的測量, 如時間、速度等都涉及到或本身可轉(zhuǎn)化為頻率的測量。目前, 市場上有各種多功能、高精度、高頻率的數(shù)字頻率計, 但價格不菲。而在實際工程中, 并不是對所有信號的頻率測量都要求達到非常高的精度。目前, 有三種常用的數(shù)字頻率的測量方法: 直接測量法(以下稱M法) 、周期測量法(以下稱T法) 和綜合測量法(以下稱M /T法) 。M法是在給定的閘門時間內(nèi)測量被測信號的脈沖個數(shù), 進行換算得出被測信號的頻率。T法是通過測量被測信號一個周期時間計時信號的脈沖個數(shù), 然后換算出被測信號的頻率。這兩種測量法的精度都與被測信號有關(guān), 因而它們屬于非等精度測量法。而M /T法它通過測量被測信號數(shù)個周期的時間, 然后換算得出被測信號的頻率, 克服了測量精度對被測信號的依賴性。M /T法的核心思想是通過閘門信號與被測信號同步, 將閘門時間控制為被測信號周期長度的整數(shù)倍。測量時, 先打開預(yù)置閘門, 當檢測到被測信號脈沖沿到達時, 標準信號時鐘開始計數(shù)。預(yù)置閘門關(guān)閉時, 標準信號并不立即停止計數(shù), 而是等檢測到被測信號脈沖沿到達時才停止, 完成被測信號整數(shù)周期的測量。測量的實際閘門時間與預(yù)置閘門時間可能不完全相同, 但最大差值不超過被測信號的一個周期。2 系統(tǒng)設(shè)計方案2.1系統(tǒng)設(shè)計方案的選擇根據(jù)頻率計的設(shè)計要求,我們可將整個電路系統(tǒng)劃分為幾個模塊,頻率測量模塊,周期測量模塊,脈寬測量模塊,和占空比測量模塊。標準頻率發(fā)生電路采用高頻率穩(wěn)定度和高精度的晶鎮(zhèn)作為標準頻率發(fā)生器。如圖所示。各模塊的實現(xiàn)均有幾種不同的設(shè)計方案。 圖2.1 頻率計組成模塊框圖2.1.1 頻率測量模塊直接測頻法:把被測頻率信號經(jīng)脈沖整形電路處理后加到閘門的一個出入端,只有在閘門開通時間T(以秒計)內(nèi),被計數(shù)的脈沖送到十進制計數(shù)器進行計數(shù);設(shè)計數(shù)器的值為N,則可得到被測信號頻率為f=N/T,經(jīng)分析,本測量在低頻率的相對測量誤差較大,即在低頻段不能滿足本設(shè)計的要求。組合測頻法:這種方法可以在一定程度上彌補方法(1)中的不足,但是難以確定最佳分測點,且電路實現(xiàn)較復雜。倍頻法:是指把頻率測量范圍分成多個頻段,使用倍頻技術(shù),根據(jù)頻段設(shè)置倍頻系數(shù),將經(jīng)整形的低頻信號進行倍頻后在進行測量,對高頻段則直接進行測量。倍頻法較難實現(xiàn)。等精度測頻法:其實現(xiàn)方式可用圖2.2來說明。圖中,預(yù)置門控信號是寬度為TPR的一個脈沖,CNT1和CNT2是兩個可控計數(shù)器。標準頻率信號從CNT1的時鐘輸出端CLK輸入,其頻率為fs,經(jīng)整形后的被測信號從CNT2的時鐘輸入端CLK輸入,設(shè)其實際頻率為fx;當預(yù)置門控信號為高時,經(jīng)整形后的被測信號的上升沿通過D觸發(fā)器的Q端同時啟動計數(shù)器CNT1和CNT2。CNT1和CNT2分別對被測信號(頻率為fs)和標準頻率信號(頻率為fx)同時計數(shù)。當預(yù)置門信號為低時,隨后而至的被測信號的上升沿將兩個計數(shù)器同時關(guān)閉。設(shè)在一次預(yù)置門時間Tpr內(nèi)對被測信號的計數(shù)值為Nx,對標準信號的計數(shù)值為Ns。則下式成立:fx/Nx=fs/Ns由此推得:fx=fs*Nx/Ns圖2.2 等精度測頻法原理框圖若所測頻率值為fx,其真實值為fxe,標準頻率為fs,一次測量中,由于fx計數(shù)的起停時間都是該信號的上跳沿觸發(fā)的,因此在Tpr時間內(nèi)對fx的計數(shù)Nx無誤差,在此時間內(nèi)的計數(shù)Ns最多相差一個脈沖,即fx/Nx=fs/Ns,則下式成立: fxe/Nx=fs/Ns+et 可分別推得 fx=fs*Nx/Ns fxe=fs*Nx/Ns+et 根據(jù)相對誤差的公式有:fxe/fxe=fxe-fx/fxe 經(jīng)整理可得到:fxe/fxe=et/Ns因et1,故fxe/fxe1/Ns Ns=Tpr*fs根據(jù)以上分析,我們可知等精度測頻法具有三個特點:1,相對測量誤差與被測頻率的高低無關(guān);2,增大Tpr或fs可以增大Ns,減少測量誤差,提高測量精度;3,測量精度與預(yù)置門寬度和標準頻率有關(guān),與被測信號的頻率無關(guān),在預(yù)置門和常規(guī)測頻閘門時間相同而被測信號頻率不同的情況下,等精度測量法的測量精度不變; 經(jīng)過綜合考慮,結(jié)合設(shè)計需求,選用第種方案,即用等精度測頻法來實現(xiàn)本設(shè)計頻率測量。2.1.2 周期測量模塊直接周期測量法:用被測信號經(jīng)放大整形后形成的方波信號直接控制計數(shù)門控電路,使主門開放時間等于信號周期Tx,時標為Ts的脈沖在主門開放時間進入計數(shù)器。設(shè)在Tx期間計數(shù)值為N,可以根據(jù)以下公式來算得被測信號周期:Tx=N*Ts經(jīng)誤差分析,可得結(jié)論:用該測量法測量時,被測信號的頻率越高,測量誤差越大。等精度周期測量法:該方法在測量電路和測量精度上與等精度測量完全相同,只是在進行計算時公式不同,在周期1/T代換頻率f即可,其計算公式為Tx=Ts*Ns/Nx從降低電路的復雜度及提高精度(特別是高頻)上考慮,本設(shè)計擬采用方法測量被測信號的周期。2.1.3 脈寬測量模塊在進行脈沖寬度測量時,首先經(jīng)信號處理電路進行處理,限制只有信號的50%幅度及其以上部分才能輸入數(shù)字測量部分。脈沖邊沿被處理得非常陡峭,然后送入測量計數(shù)器進行測量。測量電路在檢測到脈沖信號的上升沿時打開計數(shù)器,在下降沿是關(guān)閉計數(shù)器,設(shè)脈沖寬度為Twx,計算公式為:Twx=Nx/fs。2.1.4 占空比測量模塊 測一次脈沖信號的脈寬,記錄其值為Twx1,然后將信號反相,再測一次脈寬并記錄起值為Twx2,通過下式計算占空比:占空比=Twx1/(Twx1+Twx2)*100%3 系統(tǒng)總體設(shè)計方案等精度數(shù)字頻率計涉及到的計算包括加,減,乘,除,耗用的資源比較大,用一般中小規(guī)模CPLD/FPGA芯片難以實現(xiàn)。因此,我們選擇單片機和CPLD/FPGA的結(jié)合來實現(xiàn)。電路系統(tǒng)原理框圖如圖所示,其中單片機完成整個測量電路的測試控制,數(shù)據(jù)處理和顯示輸出;CPLD/FPGA完成各種測試功能;鍵盤信號由AT89C51單片機進行處理,它從CPLD/FPGA讀回計數(shù)數(shù)據(jù)并進行運算,向顯示電路輸出測量結(jié)果;顯示器電路采用七段LED動態(tài)顯示,由8個芯片74LS164分別驅(qū)動數(shù)碼管。圖3.1 等精度數(shù)字頻率計電路系統(tǒng)原理框圖系統(tǒng)的基本工作方式如下:P0是單片機與FPGA的數(shù)據(jù)傳送通信口,P1口用于鍵盤掃描,實現(xiàn)各測試功能的轉(zhuǎn)換;P2口為雙向控制口。P3口為LED的串行顯示控制口;系統(tǒng)設(shè)置5個功能鍵:占空比,脈寬,周期,頻率,和復位。7個LED數(shù)碼管組成測量數(shù)據(jù)顯示器,另一個獨立的數(shù)碼管用于狀態(tài)顯示。BCLK 為測頻標準頻率為50MHz 信號輸入端,由晶體震蕩源電路提供。待測信號經(jīng)放大整形后輸入CPLD/FPGA 的TCLK。4 CPLD/FPGA測頻專用模塊的VHDL程序設(shè)計4.1測頻模塊邏輯結(jié)構(gòu)利用VHDL程序設(shè)計的測頻模塊邏輯結(jié)構(gòu)如圖所示,其中有關(guān)的接口信號規(guī)定如下:TP(P2.7):TF=0 時等精度測頻;TF=1 時測脈寬; CLR/TRIG(P2.6):當TF=0 時系統(tǒng)全清零功能;當TF=1 時CLRTRIG 的上跳沿將啟動CNT2 ,進行脈寬測試計數(shù); ENDD (P2.4):脈寬計數(shù)結(jié)束狀態(tài)信號,ENDD=1計數(shù)結(jié)束;CHOICE(P3.2):自校/測頻選擇,CHOICE=1 測頻;CHOICE=0自校; START(P2.5):當TF=0 時,作為預(yù)置門閘,門寬可通過鍵盤由單片機控制,START=1時預(yù)置門開;當TF=1時,START有第二功能,此時,當START=0時測負脈寬,當START=1時測正脈寬。利用此功能可分別獲得脈寬和占空比數(shù)據(jù)。 EEDN(P2.3):等精度測頻計數(shù)結(jié)束狀態(tài)信號,EEND=0時計數(shù)結(jié)束。 SELP2.2(P2.2,P2.1,P2.0):計數(shù)值讀出選通控制;當SEL2.0=“000”,“001”, “010”. “111”時,將CNT1,CNT2的計數(shù)值分8次,每次讀出8位,并傳達到單片機的P0口。圖4.1 測頻模塊邏輯圖4.2 各模塊功能和工作步驟如下:4.2.1 測頻/測周期的實現(xiàn)被測信號脈沖從CONTRL模塊的FIN端輸入,標準頻率信號從CONTRL 的FSD端輸入,CONTRL的CLR是此模塊電路的工作初始化信號輸入端。在進行頻率或周期測量時,其工作步驟如下: 令TF=0,選擇等精度測頻,然后再CONTRL的CLR端加一正脈沖信號以完成測試電路狀態(tài)的初始化。 由預(yù)置門控信號將CONTRL的START端置高電平,預(yù)置門開始定時,此時由被測信號的上沿打開計數(shù)器CNT1進行計數(shù),同時使標準頻率信號進入計數(shù)器CNT2。 預(yù)置門定時結(jié)束信號把CONTRL的START端置為低電平(由單片機來完成),在被測信號的下一次脈沖的上沿到來時,CNT1停止計數(shù),同時關(guān)斷CNT2對FS的計數(shù)。 計數(shù)結(jié)束后,CONTRL的EEND端將輸出低電平來指示測量計數(shù)結(jié)束,單片機得到此信號后,即可利用ADRC(P2.2),ADRB(P2.1),ADRA(P2.0)分別讀回CNT1 和CNT2的計數(shù)值,并根據(jù)精度測量公式進行運算,計算出被測信號的頻率或周期值。4.2.2 控制部件設(shè)計如圖所示,當D觸發(fā)器的輸入端START為高電平時,若FIN端來一個上升沿,則Q端變?yōu)楦唠娖?,導通FIN-CLK1和FSD-CLK2,同時EEND被置為高電平作為標志;當D觸發(fā)器的輸入端START為低電平時,若FIN端輸入一個脈沖上沿,則FIN-CLK1與FSD-CLK2的信號通道被切斷。圖4.2 測頻與測周期控制部分電路計數(shù)部件設(shè)計 圖中的計數(shù)器CNT1/CNT2是32位二進制計數(shù)器,通過DSEL模塊的控制,單片機可分4次將其32位數(shù)據(jù)全部讀數(shù)。4.2.3 脈沖寬度測量和占空比測量模塊設(shè)計 根據(jù)上述脈寬測量原理,設(shè)計如圖(CONTRL)所示的電路原理示意圖。該信號的上沿和下沿信號對應(yīng)于未經(jīng)處理時的被測信號50%幅度時的上沿和下沿.被測信號從FIN端輸入,CLR為初始化信號START為工作使能信號.CONTRL2模塊的PUL端與GATE的輸入端PUL連接.圖4.3 脈沖寬度測量原理圖測量脈沖寬度的工作步驟如下: 向CONTRL的CLR端送一個脈沖以便進行電路的工作狀態(tài)初始化. 將GATE的CNL端置高電平,表示開始脈沖寬度測量,這時CNT2的輸入信號為FSD. 在被測脈沖的上沿到來時,CONTRL2的PUL端輸出高電平,標準頻率信號進入計數(shù)器CNT2. 在被測脈沖的下沿到來時,CONTRL2的PUL端輸出低電平,計數(shù)器CNT2被關(guān)斷. 由單片機讀出計數(shù)器CNT2的結(jié)果,并通過上述測量原理公式計算出脈沖寬度.CONTRL2子模塊的主要特點是:電路的設(shè)計保證了只有CONTRL2被初始化后才能工作,否則PUL輸出始終為零.只有在先檢測到上沿后PUL才為高電平,然后在檢測到下沿時,PUL輸出為低電平:ENDD輸出高電平以便通知單片機測量計數(shù)已經(jīng)結(jié)束:如果先檢測到下沿,PUL并無變化;在檢測到上沿并緊接一個下沿后,CONTRL2不再發(fā)生變化直到下一個初始化信號到來.占空比的測量方法是通過測量脈沖寬度記錄CNT2的計數(shù)值N1,然后將輸入信號反相,再測量脈沖寬度,沒得CNT2計數(shù)值N2則可以計算出: 占空比=N1/(N1+N2)*100%4.2.4 電路顯示模塊系統(tǒng)硬件電路中,單片機MCU與FPGA進行數(shù)據(jù)交換占用了P0口、P1口和P3口,因此數(shù)據(jù)顯示電路的設(shè)計采用靜態(tài)顯示的方式,顯示電路由8個共陽極七段數(shù)碼管和8片1位串入8位并出的74LS164芯片組成。 圖4.4 顯示電路圖這種顯示方式不僅占用單片機端口少,而且充分利用了單片機的資源,容易掌握其編碼規(guī)律,簡化了軟件編程,在實驗過程中,也體現(xiàn)出較高的可靠性。數(shù)據(jù)顯示電路如圖4.4所示。74LS164是一種8位高速串入/并出的移位寄存器,隨著時鐘信號的高低變化,串行數(shù)據(jù)通過一個2輸入與門同步的送入,使用獨立于時鐘的主控復位端讓寄存器的輸出端變?yōu)榈碗娖?,并且采用肖特基鉗位電路以達到高速運行的目的。并且還具有以下的特點:典型的35MHZ移位頻率;異步主控復位;門控串行輸入;同步數(shù)據(jù)傳輸;采用鉗位二極管限制高速的終端;靜電放電值大于3500V。 在本系統(tǒng)中,74LS164的連接方式為:74LS164的輸出Q0Q7分別接LED數(shù)碼管的dp、g、f、e、d、c、b、a,并且Q7連接下一個74LS164的A,B端,時鐘CLK連接單片機的TXD端,第一片芯片的AB端連接單片機的RXD端,74LS164芯片的主控復位端接高電平VCC。在這種狀態(tài)下,數(shù)碼管的編碼如下表所示。 4.2.5 數(shù)碼管的編碼表顯示數(shù)碼段 碼顯示數(shù)碼段 碼00c0h880h10f9h990h20a4hA88h30b0hB83h499hC0c6h592hD0a1h682hE86h70f8hF8eh5 單片機控制與運算程序的設(shè)計5.1 AT89C51RC單片機簡介AT89C5lRC是在AT89C52基礎(chǔ)上開發(fā)的新型高檔單片機。它的主要特性是:片內(nèi)含有 32 KB的 Flash程序存儲器,擦寫周期為 1000次;片內(nèi)數(shù)據(jù)存儲器內(nèi)含512字節(jié)的RAM;具有可編程32線I/O口(P0,P1,P2和P3口);具有3個可編程定時器T0,T1和T2;中斷系統(tǒng)是具有8個中斷源、6個中斷矢量、2級中斷優(yōu)先權(quán)的中斷結(jié)構(gòu);具有一個全雙工 UART串行口;低功耗工作方式為空閑模式和掉電模式;具有雙數(shù)據(jù)指針DPTR0和DPTR1;具有3級程序鎖定位;具有硬件看門狗定時器WDT;AT89C51RC工作電源為4.05.5V(AT89LV51RC為2.75.5V);AT89C51RC最高工作頻率為33MHZ(AT89LV51RC為12MHZ);具有斷電標志POF與AT89C52相比,AT89C5lRC具有如下特點:程序存儲器由 8 KB增加到32 KB;片內(nèi)數(shù)據(jù)存儲器由256字節(jié)增加到512字節(jié);數(shù)據(jù)指針由1個增加到2個;增加了看門狗定時器,CPU在執(zhí)行程序過程中,由于瞬時的干擾使程序陷入死循環(huán)環(huán)狀態(tài),WDT(Watchdog Timer)是使CPU擺脫這種困境而自動恢復的一種方法;退出掉電方式由單純硬件復位方式增加到硬件復位和中斷兩種方式;新增加了斷電標志POF89C51RC的內(nèi)部框圖 圖5.1 89C51RC的內(nèi)部框圖 引腳排列及功能 AT89C51RC有3種封裝形式:PDIPPLCC和TQFPPDIP封裝的引腳排列如圖所示。圖5.2 AT89C51RC引腳圖口線 P0口8位、漏極開路的雙向 1O口。 當使用片外存儲器及外擴 IO口時,P0口作為低字節(jié)地址數(shù)據(jù)復用線。在編程時,P0口可用于接收指令代碼宇節(jié);在程序校驗時,P0口可輸出指令字節(jié)(這時需要加外部上拉電阻)。 P0口也可作通用I/O口使用但需加上拉電阻變?yōu)闇孰p向口。當作為普通輸入時,應(yīng)將 輸出鎖存器置1 PO口可驅(qū)動8個 TTL負載 P1口8位、準雙向IO口,具有內(nèi)部上拉電阻。P1口是為用戶準備的 1O雙向口。在編程和校驗時,可用做輸入低8位地址。用做輸入時,應(yīng)先將輸出鎖存器置1 P1口可驅(qū)動4個TTL負載。P1.0 P1.1替代功能引腳替代功能說明P1.0T2定時器2的外部事件輸入端;可編脈沖輸出端P1.1T2EX定時器 2的捕捉重裝觸發(fā)器輸入端定時器2的計數(shù)方向控制端P2口8位、準雙向 1O口具有內(nèi)部上位電阻 當使用片外存儲器或外擴1O口時P2口輸出高8位地址。在編程校驗時P2口可接收高字節(jié)地址和某些控制信號。 P2口也可作普通IO口使用。用做輸入時,應(yīng)先將輸出鎖存器置1 P2口可驅(qū)動4個TTL負載。 P3口8位、準雙向 1O口,具有內(nèi)部上拉電阻。 P3口可作為普通1O口。用做輸入時,應(yīng)先將輸出鎖存器置 1在編程校驗時P3口接收某些控制信號。它可驅(qū)動4個TTL負載。P3口還提供各種替代功能。P3口替代功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2(外部中斷0)P3.3(外部中斷1)P3.4T0(記時器0外部輸入)P3.5T1(記時器1外部輸入)P3.6(外部數(shù)據(jù)存儲器寫選通)P3.7(外部數(shù)據(jù)存儲器讀選通)2控制信號線 RST復位輸入信號,高電平有效。在振蕩器穩(wěn)定工作時,在RST腳施加兩個機器周期(即24個晶振周期)以上的高電平,將器件復位。 VPP外部程序存惜器訪問允許信號EA(External Access Enable)。 當信號接地時,對ROM的讀操作限定在外部程序存儲器,地址為0000HFFFFH;當接地時,對ROM的讀操作從內(nèi)部程序存儲器開始,并可延續(xù)至外部程序存儲器。 在編程時,該引腳可接編程電壓(AT89C51的VPP為5V或12V;AT89LV51的VPP為12 V)。在編程校驗時,該引腳可接VCC。 片外程序存儲器讀選通信號用PSEN(Program Store Enable),低電平有效。 在片外程序存儲器取指期間,當有效時,程序存儲器的內(nèi)容被送至 PO口(數(shù)據(jù)總線);在訪問外部RAM時,無效。 AIE/低字節(jié)地址鎖存信號 AlE(Address latch Enable)。 在系統(tǒng)擴展時,AlE的下降沿將PO口輸出的低8位地址鎖存在外接的地址鎖存器中,以實現(xiàn)低字節(jié)地址和數(shù)據(jù)的分時傳送。此外,ALE端連續(xù)輸出正脈沖頻率為晶振頻率的16,可用做外部定時脈沖使用。但要注意,每次訪問外RAM時要丟失一個ALE脈沖。在編程期間,該引腳輸入編程脈沖()。3電原線 VCC電源電壓輸入。GND接地。4.外部晶振引線 XTAL1片內(nèi)振蕩器反相放大器和時鐘發(fā)生線路的輸入端。使用片內(nèi)振蕩器時,連接外部石英晶體和微調(diào)電容。 XTAL2片內(nèi)振蕩器反相放大器的輸出端。當使用片內(nèi)振蕩器時,外接石英晶體 和微調(diào)電容。 當使用外部振蕩器時,引腳XTAL1接收外振蕩器信號,XTAIL2懸空。 AT89C5lRC有兩種低功耗節(jié)電模式:空閑模式和掉電模式。1空閑模式 應(yīng)用軟件使PCON中的IDLl,系統(tǒng)便可進入空閑模式由于PCON不可位尋址,進入空閑模式可采用如下指令: MOV A,PCON SETB ACC,0 ;IDL=l MOV PCON,A系統(tǒng)進入空閑模式后,CPU處于休眠狀態(tài)振蕩器和片內(nèi)外圍單元(中斷系統(tǒng)、定時器、IO口、串行口)仍然有效片內(nèi)RAM和SFR中的內(nèi)容保留不變。退出空閑模式有兩種方法:任何一個有效的中斷和便件復位退出空閑模式后,IDL由片內(nèi)硬件自動清0。2掉電模式 執(zhí)行一條指令,使PD=1,系統(tǒng)便進入掉電模式。進入掉電模式后,振蕩器停止工作掉電模式下片內(nèi)RAM和SPR中的內(nèi)容保持不變退出掉電模式有兩種方法:硬件復位和允許的外部低電平中斷(INT0和INT1)。硬件復位過程不改變片內(nèi)RAM的內(nèi)容,但要重新設(shè)量SFR的內(nèi)容僅當VCC恢復到正常操作值,且振蕩器達到穩(wěn)定后,復位有效復位退出掉電模式時,系統(tǒng)首先從斷點處恢復執(zhí)行程序,直到復位控制邏輯有效。這個過程長達2個機器周期。在復位有效之前,片內(nèi)有硬件控制電路防止寫入片內(nèi)RAM,即在復位過渡期間片內(nèi)RAM內(nèi)容受到保護,但并不保護SFR的內(nèi)容。因此,在進入掉電模式指令(使PD=l的指令)的后面,不要緊隨寫入1O端口或?qū)懭肫釸AM的指令。主要單片機控制與運算程序流程圖:圖5.3 測周期子程序流程圖 圖5.4 主程序流程圖圖5.5 顯示子程序流程圖圖5.6 頻率,周期計數(shù)子程序流程圖圖5.7 測頻率子程序流程圖圖5.8 脈寬,占空比計數(shù)子程序流程圖5.2 軟件調(diào)試系統(tǒng)支持CPLD和FPGA設(shè)計的軟件有很多種,這里我使用由ALTERA公司開發(fā)的MAX+PLUSII工具軟件,該軟件方便易用,功能全面,能滿足用戶各種各樣的設(shè)計需要,概括起來MAX+PLUSII開發(fā)系統(tǒng)具有如下幾個特點。1結(jié)構(gòu)無關(guān) MAX+PLUSII支持ALTERA公司的CLASSIC,ACEX1K,MAX3000,MAX5000,MAX7000,MAX9000,F(xiàn)LEX6000,F(xiàn)LEX8000和FLEX10K等系列可編程邏輯器件,門數(shù)為600250 000門,提供了業(yè)界真正與結(jié)構(gòu)無關(guān)的可編程邏輯設(shè)計環(huán)境。MAX+PLUSII的編譯器還提供了強大的邏輯綜合與優(yōu)化功能以減輕用戶的設(shè)計負擔。2集成化的界面 MAX+PLUSII提供了設(shè)計輸入,設(shè)計處理和仿真校驗等全集成化的開發(fā)工具,可以加快動態(tài)調(diào)試,縮短開發(fā)周期。3模塊組合式設(shè)計工具 設(shè)計者可從各種設(shè)計輸入,設(shè)計處理和設(shè)計校驗選項中進行選擇,從而使設(shè)計環(huán)境用戶化。需要時,還可以保留初始的工具,并增添新的性能。由于MAX+PLUSII支持各種器件系列,設(shè)計者用此工具即可支持新結(jié)構(gòu)。4支持多種HDL語言 MAX+PLUSII支持多種流行的HDL描述語言,包括VHDL,VERILOG HDL和AHDL。5良好的開放性和數(shù)據(jù)互換性 MAX+PLUSII可與其他工業(yè)標準的設(shè)計輸入,綜合與校驗工具連接。它與EDA工具的接口符合EDIF200和209標準,并提供了參數(shù)化的模塊庫(LPM)。設(shè)計者可以使用ALTERA或其他標準的EDA設(shè)計輸入工具去建立邏輯設(shè)計,使用MAX+PLUSII COMPLIER對設(shè)計進行編譯和綜合,然后進行仿真,也可使用其他EDA工具來仿真。6基于MAX+PLUSII的設(shè)計使用MAX+PLUSII軟件進行設(shè)計和開發(fā),主要包括以下幾個步驟:設(shè)計輸入:可以采用原理圖輸入,HDL語言描述,EDIF網(wǎng)表輸入及波形輸入等幾種方式。編譯:先根據(jù)設(shè)計要求設(shè)定編譯參數(shù)和編譯策略,如器件的選擇,邏輯綜合方式的選擇等;然后根據(jù)設(shè)定的參數(shù)和策略對設(shè)計項目進行網(wǎng)表提取,邏輯綜合和器件適配,并產(chǎn)生報告文件,延時信息文件及編程文件,供分析,仿真和編程使用。1 仿真:仿真包括功能仿真,時序仿真和定時分析,可以利用軟件的仿真功能來驗證設(shè)計項目的邏輯功能是否正確。2 編程與驗證:用經(jīng)過仿真確認后的編程文件通過編程電纜配置PLD,加入實際激勵,檢查是否完成預(yù)定功能。在設(shè)計過程中,如果出現(xiàn)錯誤,則需要重新回到設(shè)計輸入階段,改正錯誤或調(diào)整電路后重復上述過程。5.3具體試驗過程5.3.1 第一次測試 根據(jù)試驗箱的操作,分別用按鈕D12控制測頻/占空比的轉(zhuǎn)換,用D15控制清零,用D16 控制開始測量。最初的軟件調(diào)試工程,分別通過手動按鈕從0到7讀出顯示上的兩位十六進制數(shù),從零到三所讀出的4個十六進制數(shù)組合在一起是Ns,四到七讀出的數(shù)組合在一起時Nx,分別把組合的數(shù)據(jù)轉(zhuǎn)化成十進制進行計算,得到所測頻率。 根據(jù)Fx=Fs*Nx/Ns,得到所測數(shù)據(jù)。Fs=12mhz,f測=8hz。Ns02AE9F4501F785DB02C5826FNx0000001E000000160000001FFx= Fs*Nx/Ns8.00027218708.00027236578.0002726974Fs=12mhz,f測=4hzNs06cb715d02254c3701c9bf82Nx000000260000000c0000000aFx= Fs*Nx/Ns4.00013596954.00013611574284.0001362713Fs=12mhz,f測=64hzNs01b5b8bb022de16805a1e811Nx00000099000000c3000001f8Fx=Fs*Nx/Ns64.0002179764.0021776064.002177428Fs=12mhz,f測=12mhzNs017abb2800d28bb90196b4bfNx017ab04c00d286dc0196bbf4Fx= Fs*Nx/Ns11998655.9501199817.26011998986.720Fs=12mhz,f測=750khzNs0251af5001199160016f32f0Nx00251af5001199160016f32fFx=Fs*Nx/Ns750000750000750000 Fs=12mhz,f測=6mhzNs0124b1be0169c67601cb2bdbNx009258df00b4e33b00e595ebFx=Fs*Nx/Ns600000060000006000000Ns0144905800fb3aa800b67b38Nx0028920b001ec7550016cf67Fx= Fs*Nx/Ns150000015000001500000 Fs=12mhz,f測=1.5mhz5.3.2 第二次計算根據(jù)此計算結(jié)果,我們可以知道在實驗箱里的程序是可行的。但是需要用單片機來實現(xiàn)我們的計算過程和控制。所以我們進行了單片機程序的編寫,希望通過按健控制直接從數(shù)碼管上讀出數(shù)據(jù),但因為編寫匆忙,沒能設(shè)計小數(shù)點后面的顯示,對于小頻率的測試,誤差就相當大了。下面是再次測試的實現(xiàn)數(shù)據(jù)。 次數(shù)(HZ)被測頻率N1N2N3N411111444341616161616646464646425625525625625616384163841638416384163846553665535655356555365536750k749974749974749974749974150000014999461499949149994914999496000000599979659997965999792599979612000000119995921199958911999589119995925000000050000614500008075000079050000843 有上面的測試結(jié)果可見,測試頻率可以高達50mhz,看來我們的程序是可行的,對于粗略的測試還是比較準確的。但是因為沒有小數(shù)顯示,對于頻率較低的測試,誤差就大了。所以有待改進。5.4 系統(tǒng)調(diào)試的方法本系統(tǒng)既含有FPGA自編程硬件設(shè)計電路,又含有單片機控制電路,整個系統(tǒng)比較復雜,因此我們采用自底向上的調(diào)試方法,也就是先進行各個單元電路的軟件仿真和硬件調(diào)試,在各個單元電路調(diào)試好后再進行系統(tǒng)聯(lián)調(diào),最后進行硬件的編程固化及系統(tǒng)的組裝。5.4.1 調(diào)試的軟/硬件(1) 系統(tǒng)設(shè)計開發(fā)軟件:MAX+plus 10.0,偉福6000(WAVE 6000 for windows)。(2) 單片機及FPGA/CPLD調(diào)試設(shè)備:PIV計算機,偉福E6000L單片機仿真器及POD8X5XP仿真頭,GW48-CK EDA實驗開發(fā)系統(tǒng)及EPF10K20TC144-4FPGA適配板,GWDVPB電子設(shè)計開發(fā)板單片機最小系統(tǒng),煒煌WH-500B程序編寫加密器,GDS-820S數(shù)字存儲示波器。5.4.2 系統(tǒng)的仿真結(jié)果 FPGA測試模塊中頻率/周期測量仿真圖如下圖所示。5.4.3 系統(tǒng)的硬件驗證 單元電路的調(diào)試 FPGA/CPLD測頻專用電路的調(diào)試:使用MAX+plus 10.0,計算機,GW48-CK EDA實驗開發(fā)系統(tǒng)等軟件和設(shè)備,對FPGA/CPLD測控電路進行VHDL程序的調(diào)試,有關(guān)仿真以及編程下載,硬件測試等。統(tǒng)的聯(lián)合調(diào)試 在各個單元電路調(diào)試好后即可進行系統(tǒng)聯(lián)調(diào)。統(tǒng)的硬件驗證系統(tǒng)聯(lián)合調(diào)試成功后,可將單片機程序通過編程器固化到單片機中并插入EDA實驗開發(fā)系統(tǒng)中的單片機插座上,將VHDL設(shè)計經(jīng)過綜合適配后的網(wǎng)表對CPLD/FPGA進行編程下載,輸入相關(guān)的信號,并進行有關(guān)性能指標的測試,直到滿足系統(tǒng)的設(shè)計要求為止。本設(shè)計的具體硬件驗證說明如下:本系統(tǒng)的顯示電路共設(shè)置了8個數(shù)碼管,前7個為數(shù)字顯示,另一個是測量狀態(tài)顯示。(1) 當顯示為P. 時,是復位狀態(tài),此時數(shù)碼管全熄。(2) 當顯示為F時,是頻率測量狀態(tài),單位Hz,如果前面出現(xiàn)兩個小數(shù)點,則第二個小數(shù)點表示MHz。(3) 當顯示為P時,是周期測量狀態(tài),單位s。(4) 當顯示為A時,是脈寬測量狀態(tài),單位s。(5) 當顯示為B時,是占空比測量狀態(tài),單位%。 5.5 設(shè)計技巧分析(1) 在系統(tǒng)總體設(shè)計方面,充分利用單片機和FPGA/CPLD各自的優(yōu)勢,將測控的主體分配給FPGA/CPLD,既可滿足頻測對速度方面的要求和多I/O口的要求,同時利用單片機具有良好的人機接口和控制運算的功能,可以較簡單地實現(xiàn)鍵盤和顯示控制以及數(shù)據(jù)處理運算。(2) 在頻率測量方面,由于采用了等精度測頻法,使該系統(tǒng)具有以下特點: 相對測量誤差與被測頻率的高低無關(guān); 增大Tpr或fs可以增大Ns,減少測量誤差,提高測量精度; 測量精度與預(yù)置門寬度和標準頻率有關(guān),與被測信號的頻率無關(guān),預(yù)置門和常規(guī)測頻閘門時間相同而被測信號頻率不同的情況下,等精度測量法的測量精度不變。(3) 在顯示方面,首先采用串行動態(tài)顯示,節(jié)約了I/O口,簡化了驅(qū)動電路的設(shè)計。5.6系統(tǒng)擴展思路 (1) 設(shè)計并制作系統(tǒng)工作的外圍電路:系統(tǒng)用方波信號源、直流工作電源。(2) 系統(tǒng)聯(lián)合調(diào)試成功后,可將單片機程序通過編程器固化到單片機中,將VHDL設(shè)計經(jīng)過綜合適配后的網(wǎng)表對CPLD/FPGA進行編程下載,將整個系統(tǒng)的外圍電路設(shè)計制作印刷電路板。 6 VHDL程序語言和FPGA簡介6.1 VHDL程序語言介紹:硬件描述語言,是電子系統(tǒng)硬件行為描述,結(jié)構(gòu)描述,數(shù)據(jù)流描述語言。目前利用硬件描述語言可以進行數(shù)字電子系統(tǒng)的設(shè)計。VHDL語言描述能力強,覆蓋面廣,抽象能力強,可讀性好,既能被人容易讀懂又能被計算機識別。VHDL語言中設(shè)計實體,程序包,涉及庫,為設(shè)計人員重復利用別人的設(shè)計提供了技術(shù)手段。重復利用別人的ip模塊和軟核是VHDL的特色,許多設(shè)計不必個個從頭再來,只要在更高層次上把ip 模塊利用起來,就能達到事半功倍的效果。傳統(tǒng)的硬件電路設(shè)計方法是采用自下而上的設(shè)計方法,即根據(jù)系統(tǒng)對硬件的要求,詳細編制技術(shù)規(guī)格書,并畫出系統(tǒng)控制流圖;然后根據(jù)技術(shù)規(guī)格書和系統(tǒng)控制流圖,對系統(tǒng)的功能進行細化,合理地劃分功能模塊,并畫出系統(tǒng)的功能框圖;接著就進行各功能模塊的細化和電路設(shè)計;各功能模塊電路設(shè)計、調(diào)試完成后,將各功能模塊的硬件電路連接起來再進行系統(tǒng)的調(diào)試,最后完成整個系統(tǒng)的硬件設(shè)計。采用傳統(tǒng)方法設(shè)計數(shù)字系統(tǒng),特別是當電路系統(tǒng)非常龐大時,設(shè)計者必須具備較好的設(shè)計經(jīng)驗,而且繁雜多樣的原理圖的閱讀和修改也給設(shè)計者帶來諸多的不便。為了提高開發(fā)的效率,增加已有開發(fā)成果的可繼承性以及縮短開發(fā)周期,各ASIC研制和生產(chǎn)廠家相繼開發(fā)了具有自己特色的電路硬件描述語言(Hardware Description Language,簡稱HDL)。但這些硬件描述語言差異很大,各自只能在自己的特定設(shè)計環(huán)境中使用,這給設(shè)計者之間的相互交流帶來了極大的困難。因此,開發(fā)一種強大的、標準化的硬件描述語言作為可相互交流的設(shè)計環(huán)境已勢在必行。于是,美國于1981年提出了一種新的、標準化的HDL,稱之為VHSIC(Very High Speed Integrated Circuit) Hardware Description Language,簡稱VHDL。這是一種用形式化方法來描述數(shù)字電路和設(shè)計數(shù)字邏輯系統(tǒng)的語言。設(shè)計者可以利用這種語言來描述自己的設(shè)計思想,然后利用電子設(shè)計自動化工具進行仿真,再自動綜合到門級電路,最后用PLD實現(xiàn)其功能。綜合起來講,VHDL語言具有如下優(yōu)點:1 覆蓋面廣,描述能力強,是一個多層次的硬件描述語言。在VHDL語言中,設(shè)計的原始描述可以非常簡練,經(jīng)過層層加強后,最終可成為直接付諸生產(chǎn)的電路或版圖參數(shù)描述。2 具有良好的可讀性,即容易被計算機接受,也容易被讀者理解。3 使用期長,不會因工藝變化而使描述過時。因為VHDL的硬件描述與工藝無關(guān),當工藝改變時,只需修改相應(yīng)程序中的屬性參數(shù)即可。4 支持大規(guī)模設(shè)計的分解和已有設(shè)計的再利用。一個大規(guī)模的設(shè)計不可能由一個人獨立完成,必須由多人共同承擔,VHDL為設(shè)計的分解和設(shè)計的再利用提供了有力的支持。當電路系統(tǒng)采用VHDL語言設(shè)計其硬件時,與傳統(tǒng)的電路設(shè)計方法相比較,具有如下的特點:一 采用自上而下的設(shè)計方法。即從系統(tǒng)總體要求出發(fā),自上而下地逐步將設(shè)計的內(nèi)容細化,最后完成系統(tǒng)硬件的整體設(shè)計。在設(shè)計的過程中,對系統(tǒng)自上而下分成三個層次進行設(shè)計:第一層次是行為描述。所謂行為描述,實質(zhì)上就是對整個系統(tǒng)的數(shù)學模型的描述。一般來說,對系統(tǒng)進行行為描述的目的是試圖在系統(tǒng)設(shè)計的初始階段,通過對系統(tǒng)行為描述的仿真來發(fā)現(xiàn)設(shè)計中存在的問題。在行為描述階段,并不真正考慮其實際的操作和算法用何種方法來實現(xiàn),而是考慮系統(tǒng)的結(jié)構(gòu)及其工作的過程是否能到達系統(tǒng)設(shè)計的要求。第二層次是RTL方式描述。這一層次稱為寄存器傳輸描述(又稱數(shù)據(jù)流描述)。如前所述,用行為方式描述的系統(tǒng)結(jié)構(gòu)的程序,其抽象程度高,是很難直接映射到具體邏輯元件結(jié)構(gòu)的。要想得到硬件的具體實現(xiàn),必須將行為方式描述的VHDL語言程序改寫為RTL方式描述的VHDL語言程序。也就是說,系統(tǒng)采用RTL方式描述,才能導出系統(tǒng)的邏輯表達式,才能進行邏輯綜合。第三層次是邏輯綜合。即利用邏輯綜合工具,將RTL方式描述的程序轉(zhuǎn)換成用基本邏輯元件表示的文件(門級網(wǎng)絡(luò)表)。此時,如果需要,可將邏輯綜合的結(jié)果以邏輯原理圖的方式輸出。此后可對綜合的結(jié)果在門電路級上進行仿真,并檢查其時序關(guān)系。應(yīng)用邏輯綜合工具產(chǎn)生的門級網(wǎng)絡(luò)表,將其轉(zhuǎn)換成PLD的編程碼點,即可利用PLD實現(xiàn)硬件電路的設(shè)計。由自上而下的設(shè)計過程可知,從總體行為設(shè)計開始到最終的邏輯綜合,每一步都要進行仿真檢查,這樣有利于盡早發(fā)現(xiàn)設(shè)計中存在的問題,從而可以大大縮短系統(tǒng)的設(shè)計周期。二.系統(tǒng)可大量采用PLD芯片。由于目前眾多制造PLD芯片的廠家,其工具軟件均支持VHDL語言的編程。所以利用VHDL語言設(shè)計數(shù)字系統(tǒng)時,可以根據(jù)硬件電路的設(shè)計需要,自行利用PLD設(shè)計自用的ASIC芯片,而無須受通用元器件的限制。三.采用系統(tǒng)早期仿真。從自上而下的設(shè)計過程中可以看到,在系統(tǒng)設(shè)計過程中要進行三級仿真,即行為層次仿真、RTL層次仿真和門級層次仿真。這三級仿真貫穿系統(tǒng)設(shè)計的全過程,從而可以在系統(tǒng)設(shè)計的早期發(fā)現(xiàn)設(shè)計中存在的問題,大大縮短系

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論