版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> SOPC/EDA綜合課程設(shè)計報告</p><p> 設(shè)計題目: 等精度數(shù)字頻率計設(shè)計</p><p> 設(shè) 計 者: </p><p> 學(xué) 號: </p><p> 班 級: </p><p> 指導(dǎo)老師: </p>
2、<p><b> 完成時間: </b></p><p> 等精度數(shù)字頻率計的設(shè)計</p><p><b> 摘 要</b></p><p> 基于傳統(tǒng)測頻原理的頻率計的測量精度將隨著被測信號頻率的下降而降低,在實用中有很大的局限性,而等精度頻率計不但有較高的測量精度,而且在整個測頻區(qū)域內(nèi)保持恒定的測試
3、精度。運用等精度測量原理,結(jié)合單片機(jī)技術(shù)設(shè)計了一種數(shù)字頻率計,由于采用了屏蔽驅(qū)動電路及數(shù)字均值濾波等技術(shù)措施,因而能在較寬定的頻率范圍和幅度范圍內(nèi)對頻率,周期,脈寬,占空比等參數(shù)進(jìn)行測量,并可通過調(diào)整閘門時間預(yù)置測量精度。選取的這種綜合測量法作為數(shù)字頻率計的測量算法,提出了基于FPGA 的數(shù)字頻率計的設(shè)計方案。給出了該設(shè)計方案的實際測量效果,證明該設(shè)計方案切實可行,能達(dá)到較高的頻率測量精度。</p><p>
4、關(guān)鍵詞 等精度測量,單片機(jī),頻率計,閘門時間,F(xiàn)PGA</p><p><b> 目 錄</b></p><p><b> 1摘 要 </b></p><p><b> 2系統(tǒng)設(shè)計方案4</b></p><p> 2.1系統(tǒng)設(shè)計方案的選擇 5</p&
5、gt;<p> 2.1.1 頻率測量模塊5</p><p> 2.1.2 周期測量模塊6</p><p> 2.1.3 脈寬測量模塊6</p><p> 2.1.4 占空比測量模塊 7 </p><p> 3 系統(tǒng)總體設(shè)計方案8</p><p> 4 CPLD/FPGA測頻專用
6、模塊的VHDL程序設(shè)計9 </p><p> 4.1 測頻模塊邏輯結(jié)構(gòu) 10</p><p> 4.2 各模塊功能和工作步驟如下:11 </p><p> 4.2.1 測頻/測周期的實現(xiàn)12</p><p> 4.2.2 控制部件設(shè)計13 </p><p> 4.2.3 脈沖寬度測量和占空比測量模塊
7、設(shè)計14</p><p> 4.2.4 電路顯示模塊15</p><p> 4.2.5 數(shù)碼管的編碼表16</p><p> 5 單片機(jī)控制與運算程序的設(shè)計17 </p><p> 5.1 AT89C51RC單片機(jī)簡介18 </p><p> 5.2 軟件調(diào)試系統(tǒng)19 </p>&
8、lt;p> 5.3具體試驗過程20 </p><p> 5.3.1 第一次測試21</p><p> 5.3.2 第二次計算22</p><p> 5.4 系統(tǒng)調(diào)試的方法23 </p><p> 5.4.1 調(diào)試的軟/硬件24</p><p> 5.4.2 系統(tǒng)的仿真結(jié)果25</p&
9、gt;<p> 5.5 設(shè)計技巧分析26 </p><p> 5.6 系統(tǒng)擴(kuò)展思路27 </p><p><b> 參考文獻(xiàn)28</b></p><p><b> 致 謝29 </b></p><p><b> 2 系統(tǒng)設(shè)計方案</b><
10、/p><p> 2.1系統(tǒng)設(shè)計方案的選擇</p><p> 根據(jù)頻率計的設(shè)計要求,我們可將整個電路系統(tǒng)劃分為幾個模塊,頻率測量模塊,周期測量模塊,脈寬測量模塊,和占空比測量模塊。標(biāo)準(zhǔn)頻率發(fā)生電路采用高頻率穩(wěn)定度和高精度的晶鎮(zhèn)作為標(biāo)準(zhǔn)頻率發(fā)生器。如圖所示。各模塊的實現(xiàn)均有幾種不同的設(shè)計方案。</p><p> 圖2.1 頻率計組成模塊框圖</p>&
11、lt;p> 2.1.1 頻率測量模塊</p><p> ?、僦苯訙y頻法:把被測頻率信號經(jīng)脈沖整形電路處理后加到閘門的一個出入端,只有在閘門開通時間T(以秒計)內(nèi),被計數(shù)的脈沖送到十進(jìn)制計數(shù)器進(jìn)行計數(shù);設(shè)計數(shù)器的值為N,則可得到被測信號頻率為f=N/T,經(jīng)分析,本測量在低頻率的相對測量誤差較大,即在低頻段不能滿足本設(shè)計的要求。</p><p> ?、诮M合測頻法:這種方法可以在一定程度
12、上彌補(bǔ)方法(1)中的不足,但是難以確定最佳分測點,且電路實現(xiàn)較復(fù)雜。</p><p> ?、郾额l法:是指把頻率測量范圍分成多個頻段,使用倍頻技術(shù),根據(jù)頻段設(shè)置倍頻系數(shù),將經(jīng)整形的低頻信號進(jìn)行倍頻后在進(jìn)行測量,對高頻段則直接進(jìn)行測量。倍頻法較難實現(xiàn)。</p><p> ④等精度測頻法:其實現(xiàn)方式可用圖2.2來說明。圖中,預(yù)置門控信號是寬度為TPR的一個脈沖,CNT1和CNT2是兩個可控計數(shù)
13、器。標(biāo)準(zhǔn)頻率信號從CNT1的時鐘輸出端CLK輸入,其頻率為fs,經(jīng)整形后的被測信號從CNT2的時鐘輸入端CLK輸入,設(shè)其實際頻率為fx;當(dāng)預(yù)置門控信號為高時,經(jīng)整形后的被測信號的上升沿通過D觸發(fā)器的Q端同時啟動計數(shù)器CNT1和CNT2。CNT1和CNT2分別對被測信號(頻率為fs)和標(biāo)準(zhǔn)頻率信號(頻率為fx)同時計數(shù)。當(dāng)預(yù)置門信號為低時,隨后而至的被測信號的上升沿將兩個計數(shù)器同時關(guān)閉。設(shè)在一次預(yù)置門時間Tpr內(nèi)對被測信號的計數(shù)值為Nx,
14、對標(biāo)準(zhǔn)信號的計數(shù)值為Ns。則下式成立:</p><p> fx/Nx=fs/Ns</p><p> 由此推得:fx=fs*Nx/Ns</p><p> 圖2.2 等精度測頻法原理框圖</p><p> 若所測頻率值為fx,其真實值為fxe,標(biāo)準(zhǔn)頻率為fs,一次測量中,由于fx計數(shù)的起停時間都是該信號的上跳沿觸發(fā)的,因此在Tpr時間內(nèi)
15、對fx的計數(shù)Nx無誤差,在此時間內(nèi)的計數(shù)Ns最多相差一個脈沖,即fx/Nx=fs/Ns,則下式成立: fxe/Nx=fs/Ns+△et </p><p> 可分別推得 fx=fs*Nx/Ns fxe=fs*Nx/Ns+△et</p><p> 根據(jù)相對誤差的公式有:△fxe/fxe=fxe-fx/fxe </p><p> 經(jīng)整理可得到:
16、△fxe/fxe=△et/Ns</p><p> 因△et≤1,故△fxe/fxe≤1/Ns Ns=Tpr*fs</p><p> 根據(jù)以上分析,我們可知等精度測頻法具有三個特點:1,相對測量誤差與被測頻率的高低無關(guān);2,增大Tpr或fs可以增大Ns,減少測量誤差,提高測量精度;3,測量精度與預(yù)置門寬度和標(biāo)準(zhǔn)頻率有關(guān),與被測信號的頻率無關(guān),在預(yù)置門和常規(guī)測頻閘門時間相同
17、而被測信號頻率不同的情況下,等精度測量法的測量精度不變;</p><p> 經(jīng)過綜合考慮,結(jié)合設(shè)計需求,選用第④種方案,即用等精度測頻法來實現(xiàn)本設(shè)計頻率測量。</p><p> 2.1.2 周期測量模塊</p><p> ①直接周期測量法:用被測信號經(jīng)放大整形后形成的方波信號直接控制計數(shù)門控電路,使主門開放時間等于信號周期Tx,時標(biāo)為Ts的脈沖在主門開放時間進(jìn)
18、入計數(shù)器。設(shè)在Tx期間計數(shù)值為N,可以根據(jù)以下公式來算得被測信號周期:</p><p> Tx=N*Ts經(jīng)誤差分析,可得結(jié)論:用該測量法測量時,被測信號的頻率越高,測量誤差越大。</p><p> ?、诘染戎芷跍y量法:該方法在測量電路和測量精度上與等精度測量完</p><p> 全相同,只是在進(jìn)行計算時公式不同,在周期1/T代換頻率f即可,其計算公式為Tx=T
19、s*Ns/Nx從降低電路的復(fù)雜度及提高精度(特別是高頻)上考慮,本設(shè)計擬采用方法②測量被測信號的周期。</p><p> 2.1.3 脈寬測量模塊</p><p> 在進(jìn)行脈沖寬度測量時,首先經(jīng)信號處理電路進(jìn)行處理,限制只有信號的50%幅度及其以上部分才能輸入數(shù)字測量部分。脈沖邊沿被處理得非常陡峭,然后送入測量計數(shù)器進(jìn)行測量。</p><p> 測量電路在檢測
20、到脈沖信號的上升沿時打開計數(shù)器,在下降沿是關(guān)閉計數(shù)器,設(shè)脈沖寬度為Twx,計算公式為:Twx=Nx/fs。</p><p> 2.1.4 占空比測量模塊</p><p> 測一次脈沖信號的脈寬,記錄其值為Twx1,然后將信號反相,再測一次脈寬并記錄起值為Twx2,通過下式計算占空比:</p><p> 占空比=Twx1/(Twx1+Twx2)*100%<
21、/p><p> 3 系統(tǒng)總體設(shè)計方案</p><p> 等精度數(shù)字頻率計涉及到的計算包括加,減,乘,除,耗用的資源比較大,用一般中小規(guī)模CPLD/FPGA芯片難以實現(xiàn)。因此,我們選擇單片機(jī)和CPLD/FPGA的結(jié)合來實現(xiàn)。電路系統(tǒng)原理框圖如圖所示,其中單片機(jī)完成整個測量電路的測試控制,數(shù)據(jù)處理和顯示輸出;CPLD/FPGA完成各種測試功能;鍵盤信號由AT89C51單片機(jī)進(jìn)行處理,它從CP
22、LD/FPGA讀回計數(shù)數(shù)據(jù)并進(jìn)行運算,向顯示電路輸出測量結(jié)果;顯示器電路采用七段LED動態(tài)顯示,由8個芯片74LS164分別驅(qū)動數(shù)碼管。</p><p> 圖3.1 等精度數(shù)字頻率計電路系統(tǒng)原理框圖</p><p> 系統(tǒng)的基本工作方式如下:</p><p> ?、貾0是單片機(jī)與FPGA的數(shù)據(jù)傳送通信口,P1口用于鍵盤掃描,實現(xiàn)各測試功能的轉(zhuǎn)換;P2口為雙向控
23、制口。P3口為LED的串行顯示控制口;系統(tǒng)設(shè)置5個功能鍵:占空比,脈寬,周期,頻率,和復(fù)位。</p><p> ?、?個LED數(shù)碼管組成測量數(shù)據(jù)顯示器,另一個獨立的數(shù)碼管用于狀態(tài)顯示。</p><p> ③BCLK 為測頻標(biāo)準(zhǔn)頻率為50MHz 信號輸入端,由晶體震蕩源電路提供。</p><p> ?、艽郎y信號經(jīng)放大整形后輸入CPLD/FPGA 的TCLK。<
24、/p><p> 4 CPLD/FPGA測頻專用模塊的VHDL程序設(shè)計</p><p> 4.1測頻模塊邏輯結(jié)構(gòu)</p><p> 利用VHDL程序設(shè)計的測頻模塊邏輯結(jié)構(gòu)如圖所示,其中有關(guān)的接口信號規(guī)定如下:</p><p> ?、賂P(P2.7):TF=0 時等精度測頻;TF=1 時測脈寬;</p><p> ?、?/p>
25、CLR/TRIG(P2.6):當(dāng)TF=0 時系統(tǒng)全清零功能;當(dāng)TF=1 時CLRTRIG 的上跳沿將啟動CNT2 ,進(jìn)行脈寬測試計數(shù);</p><p> ③ENDD (P2.4):脈寬計數(shù)結(jié)束狀態(tài)信號,ENDD=1計數(shù)結(jié)束;</p><p> ?、蹸HOICE(P3.2):自校/測頻選擇,CHOICE=1 測頻;CHOICE=0自校;</p><p> ?、軸TA
26、RT(P2.5):當(dāng)TF=0 時,作為預(yù)置門閘,門寬可通過鍵盤由單片機(jī)控制,START=1時預(yù)置門開;當(dāng)TF=1時,START有第二功能,此時,當(dāng)START=0時測負(fù)脈寬,當(dāng)START=1時測正脈寬。利用此功能可分別獲得脈寬和占空比數(shù)據(jù)。</p><p> ?、轊EDN(P2.3):等精度測頻計數(shù)結(jié)束狀態(tài)信號,EEND=0時計數(shù)結(jié)束。</p><p> ?、逽EL[P2.2](P2.2,P
27、2.1,P2.0):計數(shù)值讀出選通控制;當(dāng)SEL[2.0]=“000”,“001”, “010”... “111”時,將CNT1,CNT2的計數(shù)值分8次,每次讀出8位,并傳達(dá)到單片機(jī)的P0口。</p><p> 圖4.1 測頻模塊邏輯圖</p><p> 4.2 各模塊功能和工作步驟如下:</p><p> 4.2.1 測頻/測周期的實現(xiàn)</p>
28、<p> 被測信號脈沖從CONTRL模塊的FIN端輸入,標(biāo)準(zhǔn)頻率信號從CONTRL 的FSD端輸入,CONTRL的CLR是此模塊電路的工作初始化信號輸入端。在進(jìn)行頻率或周期測量時,其工作步驟如下:</p><p> ?、倭頣F=0,選擇等精度測頻,然后再CONTRL的CLR端加一正脈沖信號以完成測試電路狀態(tài)的初始化。</p><p> ?、谟深A(yù)置門控信號將CONTRL的ST
29、ART端置高電平,預(yù)置門開始定時,此時由被測信號的上沿打開計數(shù)器CNT1進(jìn)行計數(shù),同時使標(biāo)準(zhǔn)頻率信號進(jìn)入計數(shù)器CNT2。</p><p> ③預(yù)置門定時結(jié)束信號把CONTRL的START端置為低電平(由單片機(jī)來完成),在被測信號的下一次脈沖的上沿到來時,CNT1停止計數(shù),同時關(guān)斷CNT2對FS的計數(shù)。</p><p> ?、苡嫈?shù)結(jié)束后,CONTRL的EEND端將輸出低電平來指示測量計數(shù)結(jié)
30、束,單片機(jī)得到此信號后,即可利用ADRC(P2.2),ADRB(P2.1),ADRA(P2.0)分別讀回CNT1 和CNT2的計數(shù)值,并根據(jù)精度測量公式進(jìn)行運算,計算出被測信號的頻率或周期值。</p><p> 4.2.2 控制部件設(shè)計</p><p> 如圖所示,當(dāng)D觸發(fā)器的輸入端START為高電平時,若FIN端來一個上升沿,則Q端變?yōu)楦唠娖?,?dǎo)通FIN-CLK1和FSD-CLK2,
31、同時EEND被置為高電平作為標(biāo)志;當(dāng)D觸發(fā)器的輸入端START為低電平時,若FIN端輸入一個脈沖上沿,則FIN-CLK1與FSD-CLK2的信號通道被切斷。</p><p> 圖4.2 測頻與測周期控制部分電路</p><p><b> 計數(shù)部件設(shè)計</b></p><p> 圖中的計數(shù)器CNT1/CNT2是32位二進(jìn)制計數(shù)器,通過DS
32、EL模塊的控制,單片機(jī)可分4次將其32位數(shù)據(jù)全部讀數(shù)。</p><p> 4.2.3 脈沖寬度測量和占空比測量模塊設(shè)計 </p><p> 根據(jù)上述脈寬測量原理,設(shè)計如圖(CONTRL)所示的電路原理示意圖。該信號的上沿和下沿信號對應(yīng)于未經(jīng)處理時的被測信號50%幅度時的上沿和下沿.被測信號從FIN端輸入,CLR為初始化信號<START為工作使能信號.CONTRL2模塊的PUL端與
33、GATE的輸入端PUL連接.</p><p> 圖4.3 脈沖寬度測量原理圖</p><p> 測量脈沖寬度的工作步驟如下:</p><p> 向CONTRL的CLR端送一個脈沖以便進(jìn)行電路的工作狀態(tài)初始化.</p><p> 將GATE的CNL端置高電平,表示開始脈沖寬度測量,這時CNT2的輸入信號為FSD.</p>
34、<p> 在被測脈沖的上沿到來時,CONTRL2的PUL端輸出高電平,標(biāo)準(zhǔn)頻率信號進(jìn)入計數(shù)器CNT2.</p><p> 在被測脈沖的下沿到來時,CONTRL2的PUL端輸出低電平,計數(shù)器CNT2被關(guān)斷.</p><p> 由單片機(jī)讀出計數(shù)器CNT2的結(jié)果,并通過上述測量原理公式計算出脈沖寬度.</p><p> CONTRL2子模塊的主要特點是
35、:電路的設(shè)計保證了只有CONTRL2被初始化后才能工作,否則PUL輸出始終為零.只有在先檢測到上沿后PUL才為高電平,然后在檢測到下沿時,PUL輸出為低電平:ENDD輸出高電平以便通知單片機(jī)測量計數(shù)已經(jīng)結(jié)束:如果先檢測到下沿,PUL并無變化;在檢測到上沿并緊接一個下沿后,CONTRL2不再發(fā)生變化直到下一個初始化信號到來.占空比的測量方法是通過測量脈沖寬度記錄CNT2的計數(shù)值N1,然后將輸入信號反相,再測量脈沖寬度,沒得CNT2計數(shù)值N
36、2則可以計算出:</p><p> 占空比=N1/(N1+N2)*100%</p><p> 4.2.4 電路顯示模塊</p><p> 系統(tǒng)硬件電路中,單片機(jī)MCU與FPGA進(jìn)行數(shù)據(jù)交換占用了P0口、P1口和P3口,因此數(shù)據(jù)顯示電路的設(shè)計采用靜態(tài)顯示的方式,顯示電路由8個共陽極七段數(shù)碼管和8片1位串入8位并出的74LS164芯片組成。</p>
37、<p> 圖4.4 顯示電路圖</p><p> 這種顯示方式不僅占用單片機(jī)端口少,而且充分利用了單片機(jī)的資源,容易掌握其編碼規(guī)律,簡化了軟件編程,在實驗過程中,也體現(xiàn)出較高的可靠性。數(shù)據(jù)顯示電路如圖4.4所示。</p><p> 74LS164是一種8位高速串入/并出的移位寄存器,隨著時鐘信號的高低變化,串行數(shù)據(jù)通過一個2輸入與門同步的送入,使用獨立于時鐘的主控復(fù)位端讓
38、寄存器的輸出端變?yōu)榈碗娖?,并且采用肖特基鉗位電路以達(dá)到高速運行的目的。并且還具有以下的特點:①典型的35MHZ移位頻率;②異步主控復(fù)位;③門控串行輸入;④同步數(shù)據(jù)傳輸;⑤采用鉗位二極管限制高速的終端;⑥靜電放電值大于3500V。</p><p> 在本系統(tǒng)中,74LS164的連接方式為:74LS164的輸出Q0~Q7分別接LED數(shù)碼管的dp、g、f、e、d、c、b、a,并且Q7連接下一個74LS164的A,B端
39、,時鐘CLK連接單片機(jī)的TXD端,第一片芯片的AB端連接單片機(jī)的RXD端,74LS164芯片的主控復(fù)位端接高電平VCC。在這種狀態(tài)下,數(shù)碼管的編碼如下表所示。 </p><p> 4.2.5 數(shù)碼管的編碼表</p><p> 5 單片機(jī)控制與運算程序的設(shè)計</p><p> 5.1 AT89C51RC單片機(jī)簡介</p><p>
40、AT89C5lRC是在AT89C52基礎(chǔ)上開發(fā)的新型高檔單片機(jī)。</p><p><b> 它的主要特性是:</b></p><p> 片內(nèi)含有 32 KB的 Flash程序存儲器,擦寫周期為 1000次;</p><p> 片內(nèi)數(shù)據(jù)存儲器內(nèi)含512字節(jié)的RAM;</p><p> 具有可編程32線I/O口(P0
41、,P1,P2和P3口);</p><p> 具有3個可編程定時器T0,T1和T2;</p><p> 中斷系統(tǒng)是具有8個中斷源、6個中斷矢量、2級中斷優(yōu)先權(quán)的中斷結(jié)構(gòu);</p><p> 具有一個全雙工 UART串行口;</p><p> 低功耗工作方式為空閑模式和掉電模式;</p><p> 具有雙數(shù)據(jù)指針
42、DPTR0和DPTR1;</p><p> 具有3級程序鎖定位;</p><p> 具有硬件看門狗定時器WDT;</p><p> AT89C51RC工作電源為4.0~5.5V(AT89LV51RC為2.7~5.5V);</p><p> AT89C51RC最高工作頻率為33MHZ(AT89LV51RC為12MHZ);</p&g
43、t;<p> 具有斷電標(biāo)志POF.</p><p> 與AT89C52相比,AT89C5lRC具有如下特點:</p><p> 程序存儲器由 8 KB增加到32 KB;</p><p> 片內(nèi)數(shù)據(jù)存儲器由256字節(jié)增加到512字節(jié);</p><p> 數(shù)據(jù)指針由1個增加到2個;</p><p>
44、 增加了看門狗定時器,CPU在執(zhí)行程序過程中,由于瞬時的干擾使程序陷入死循環(huán)環(huán)狀態(tài),WDT(Watchdog Timer)是使CPU擺脫這種困境而自動恢復(fù)的一種方法;</p><p> 退出掉電方式由單純硬件復(fù)位方式增加到硬件復(fù)位和中斷兩種方式;</p><p> 新增加了斷電標(biāo)志POF.</p><p> 89C51RC的內(nèi)部框圖</p>&
45、lt;p> 圖5.1 89C51RC的內(nèi)部框圖</p><p><b> 引腳排列及功能</b></p><p> AT89C51RC有3種封裝形式:PDIP.PLCC和TQFP.PDIP封裝的引腳排列如圖所示。</p><p> 圖5.2 AT89C51RC引腳圖</p><p><b>
46、?。薄。桑峡诰€</b></p><p> P0口——8位、漏極開路的雙向 1/O口。</p><p> 當(dāng)使用片外存儲器及外擴(kuò) I/O口時,P0口作為低字節(jié)地址/數(shù)據(jù)復(fù)用線。在編程時,P0口可用于接收指令代碼宇節(jié);在程序校驗時,P0口可輸出指令字節(jié)(這時需要加外部上拉電阻)。</p><p> P0口也可作通用I/O口使用.但需加上拉電阻.變?yōu)闇?zhǔn)
47、雙向口。當(dāng)作為普通輸入時,應(yīng)將 輸出鎖存器置1. PO口可驅(qū)動8個 TTL負(fù)載.</p><p> P1口——8位、準(zhǔn)雙向I/O口,具有內(nèi)部上拉電阻。</p><p> P1口是為用戶準(zhǔn)備的 1/O雙向口。在編程和校驗時,可用做輸入低8位地址。用做輸入時,應(yīng)先將輸出鎖存器置1. P1口可驅(qū)動4個TTL負(fù)載。</p><p> P1.0 P1.1替代功能<
48、/p><p> P2口——8位、準(zhǔn)雙向 1/O口.具有內(nèi)部上位電阻.</p><p> 當(dāng)使用片外存儲器或外擴(kuò)1/O口時.P2口輸出高8位地址。在編程/校驗時.P2口可接收高字節(jié)地址和某些控制信號。</p><p> P2口也可作普通I/O口使用。用做輸入時,應(yīng)先將輸出鎖存器置1. P2口可驅(qū)動4個TTL負(fù)載。</p><p> P3口—
49、—8位、準(zhǔn)雙向 1/O口,具有內(nèi)部上拉電阻。 </p><p> P3口可作為普通1/O口。用做輸入時,應(yīng)先將輸出鎖存器置 1.在編程/校驗時.P3口接收某些控制信號。它可驅(qū)動4個TTL負(fù)載。</p><p> P3口還提供各種替代功能。</p><p><b> P3口替代功能</b></p><p><
50、;b> 2.控制信號線</b></p><p> RST——復(fù)位輸入信號,高電平有效。在振蕩器穩(wěn)定工作時,在RST腳施加兩個機(jī)器周期(即24個晶振周期)以上的高電平,將器件復(fù)位。</p><p> EA/VPP——外部程序存惜器訪問允許信號EA(External Access Enable)。</p><p> 當(dāng)EA信號接地時,對ROM的
51、讀操作限定在外部程序存儲器,地址為0000H~FFFFH;當(dāng)EA接地時,對ROM的讀操作從內(nèi)部程序存儲器開始,并可延續(xù)至外部程序存儲器。</p><p> 在編程時,該引腳可接編程電壓(AT89C51的VPP為5V或12V;AT89LV51的VPP為12 V)。在編程校驗時,該引腳可接VCC。</p><p> PSEN——片外程序存儲器讀選通信號用PSEN(Program Store
52、 Enable),低電平有效。</p><p> 在片外程序存儲器取指期間,當(dāng)PSEN有效時,程序存儲器的內(nèi)容被送至 PO口(數(shù)據(jù)總線);在訪問外部RAM時,PSEN無效。</p><p> AIE/PROG——低字節(jié)地址鎖存信號 AlE(Address latch Enable)。</p><p> 在系統(tǒng)擴(kuò)展時,AlE的下降沿將PO口輸出的低8位地址鎖存在
53、外接的地址鎖存器中,以實現(xiàn)低字節(jié)地址和數(shù)據(jù)的分時傳送。此外,ALE端連續(xù)輸出正脈沖.頻率為晶振頻率的1/6,可用做外部定時脈沖使用。但要注意,每次訪問外RAM時要丟失一個ALE脈沖。在編程期間,該引腳輸入編程脈沖(PROG)。</p><p><b> 3.電原線</b></p><p> VCC——電源電壓輸入。</p><p><
54、b> GND——接地。</b></p><p><b> 4.外部晶振引線</b></p><p> XTAL1——片內(nèi)振蕩器反相放大器和時鐘發(fā)生線路的輸入端。使用片內(nèi)振蕩器時,連接外部石英晶體和微調(diào)電容。</p><p> XTAL2——片內(nèi)振蕩器反相放大器的輸出端。當(dāng)使用片內(nèi)振蕩器時,外接石英晶體 和微調(diào)電容。&l
55、t;/p><p> 當(dāng)使用外部振蕩器時,引腳XTAL1接收外振蕩器信號,XTAIL2懸空。</p><p> AT89C5lRC有兩種低功耗節(jié)電模式:空閑模式和掉電模式。</p><p><b> 1.空閑模式</b></p><p> 應(yīng)用軟件使PCON中的IDL=l,系統(tǒng)便可進(jìn)入空閑模式.由于PCON不可位尋址,
56、進(jìn)入空閑模式可采用如下指令:</p><p> MOV A,PCON</p><p> SETB ACC,0 ;IDL=l</p><p> MOV PCON,A</p><p> 系統(tǒng)進(jìn)入空閑模式后,CPU處于休眠狀態(tài).振蕩器和片內(nèi)外圍單元(中斷系統(tǒng)、定時器、I/O口、串行口)仍然有效.片內(nèi)RAM和SFR中的內(nèi)容保留不變。&
57、lt;/p><p> 退出空閑模式有兩種方法:任何一個有效的中斷和便件復(fù)位.退出空閑模式后,IDL由片內(nèi)硬件自動清0。</p><p><b> 2.掉電模式</b></p><p> 執(zhí)行一條指令,使PD=1,系統(tǒng)便進(jìn)入掉電模式。進(jìn)入掉電模式后,振蕩器停止工作.掉電模式下.片內(nèi)RAM和SPR中的內(nèi)容保持不變.</p><
58、p> 退出掉電模式有兩種方法:硬件復(fù)位和允許的外部低電平中斷(INT0和INT1)。硬件復(fù)位過程不改變片內(nèi)RAM的內(nèi)容,但要重新設(shè)量SFR的內(nèi)容.僅當(dāng)VCC恢復(fù)到正常操作值,且振蕩器達(dá)到穩(wěn)定后,復(fù)位有效.</p><p> 復(fù)位退出掉電模式時,系統(tǒng)首先從斷點處恢復(fù)執(zhí)行程序,直到復(fù)位控制邏輯有效。這個過程長達(dá)2個機(jī)器周期。在復(fù)位有效之前,片內(nèi)有硬件控制電路防止寫入片內(nèi)RAM,即在復(fù)位過渡期間片內(nèi)RAM內(nèi)容
59、受到保護(hù),但并不保護(hù)SFR的內(nèi)容。因此,在進(jìn)入掉電模式指令(使PD=l的指令)的后面,不要緊隨寫入1/O端口或?qū)懭肫釸AM的指令。</p><p> 主要單片機(jī)控制與運算程序流程圖:</p><p> 圖5.3 測周期子程序流程圖</p><p> 圖5.4 主程序流程圖</p><p> 圖5.5 顯示子程序流程圖</
60、p><p> 圖5.6 頻率,周期計數(shù)子程序流程圖</p><p> 圖5.7 測頻率子程序流程圖</p><p> 圖5.8 脈寬,占空比計數(shù)子程序流程圖</p><p> 5.2 軟件調(diào)試系統(tǒng)</p><p> 支持CPLD和FPGA設(shè)計的軟件有很多種,這里我使用由ALTERA公司開發(fā)的MAX+PLUSI
61、I工具軟件,該軟件方便易用,功能全面,能滿足用戶各種各樣的設(shè)計需要,概括起來MAX+PLUSII開發(fā)系統(tǒng)具有如下幾個特點。</p><p><b> 1.結(jié)構(gòu)無關(guān) </b></p><p> MAX+PLUSII支持ALTERA公司的CLASSIC,ACEX1K,MAX3000,MAX5000,MAX7000,MAX9000,F(xiàn)LEX6000,F(xiàn)LEX8000
62、和FLEX10K等系列可編程邏輯器件,門數(shù)為600~250 000門,提供了業(yè)界真正與結(jié)構(gòu)無關(guān)的可編程邏輯設(shè)計環(huán)境。MAX+PLUSII的編譯器還提供了強(qiáng)大的邏輯綜合與優(yōu)化功能以減輕用戶的設(shè)計負(fù)擔(dān)。</p><p> 2.集成化的界面 </p><p> MAX+PLUSII提供了設(shè)計輸入,設(shè)計處理和仿真校驗等全集成化的開發(fā)工具,可以加快動態(tài)調(diào)試,縮短開發(fā)周期。</p>
63、<p> 3.模塊組合式設(shè)計工具 </p><p> 設(shè)計者可從各種設(shè)計輸入,設(shè)計處理和設(shè)計校驗選項中進(jìn)行選擇,從而使設(shè)計環(huán)境用戶化。需要時,還可以保留初始的工具,并增添新的性能。由于MAX+PLUSII支持各種器件系列,設(shè)計者用此工具即可支持新結(jié)構(gòu)。</p><p> 4.支持多種HDL語言 </p><p> MAX+PLUSII支
64、持多種流行的HDL描述語言,包括VHDL,VERILOG HDL和AHDL。</p><p> 5.良好的開放性和數(shù)據(jù)互換性 </p><p> MAX+PLUSII可與其他工業(yè)標(biāo)準(zhǔn)的設(shè)計輸入,綜合與校驗工具連接。它與EDA工具的接口符合EDIF200和209標(biāo)準(zhǔn),并提供了參數(shù)化的模塊庫(LPM)。設(shè)計者可以使用ALTERA或其他標(biāo)準(zhǔn)的EDA設(shè)計輸入工具去建立邏輯設(shè)計,使用MAX+
65、PLUSII COMPLIER對設(shè)計進(jìn)行編譯和綜合,然后進(jìn)行仿真,也可使用其他EDA工具來仿真。</p><p> 6.基于MAX+PLUSII的設(shè)計</p><p> 使用MAX+PLUSII軟件進(jìn)行設(shè)計和開發(fā),主要包括以下幾個步驟:</p><p> 設(shè)計輸入:可以采用原理圖輸入,HDL語言描述,EDIF網(wǎng)表輸入及波形輸入等幾種方式。</p>
66、<p> 編譯:先根據(jù)設(shè)計要求設(shè)定編譯參數(shù)和編譯策略,如器件的選擇,邏輯綜合方式的選擇等;然后根據(jù)設(shè)定的參數(shù)和策略對設(shè)計項目進(jìn)行網(wǎng)表提取,邏輯綜合和器件適配,并產(chǎn)生報告文件,延時信息文件及編程文件,供分析,仿真和編程使用。</p><p> 仿真:仿真包括功能仿真,時序仿真和定時分析,可以利用軟件的仿真功能來驗證設(shè)計項目的邏輯功能是否正確。</p><p> 編程與驗證:
67、用經(jīng)過仿真確認(rèn)后的編程文件通過編程電纜配置PLD,加入實際激勵,檢查是否完成預(yù)定功能。</p><p> 在設(shè)計過程中,如果出現(xiàn)錯誤,則需要重新回到設(shè)計輸入階段,改正錯誤或調(diào)整電路后重復(fù)上述過程。</p><p><b> 5.3具體試驗過程</b></p><p> 5.3.1 第一次測試 </p><
68、p> 根據(jù)試驗箱的操作,分別用按鈕D12控制測頻/占空比的轉(zhuǎn)換,用D15控制清零,用D16 控制開始測量。最初的軟件調(diào)試工程,分別通過手動按鈕從0到7讀出顯示上的兩位十六進(jìn)制數(shù),從零到三所讀出的4個十六進(jìn)制數(shù)組合在一起是Ns,四到七讀出的數(shù)組合在一起時Nx,分別把組合的數(shù)據(jù)轉(zhuǎn)化成十進(jìn)制進(jìn)行計算,得到所測頻率。 </p><p> 根據(jù)Fx=Fs*Nx/Ns,得到所測數(shù)據(jù)。</p>
69、;<p> Fs=12mhz,f測=8hz。</p><p> Fs=12mhz,f測=4hz</p><p> Fs=12mhz,f測=64hz</p><p> Fs=12mhz,f測=12mhz</p><p> Fs=12mhz,f測=750khz</p><p> Fs=12mhz,
70、f測=6mhz</p><p> Fs=12mhz,f測=1.5mhz</p><p> 5.3.2 第二次計算</p><p> 根據(jù)此計算結(jié)果,我們可以知道在實驗箱里的程序是可行的。但是需要用單片機(jī)來實現(xiàn)我們的計算過程和控制。所以我們進(jìn)行了單片機(jī)程序的編寫,希望通過按健控制直接從數(shù)碼管上讀出數(shù)據(jù),但因為編寫匆忙,沒能設(shè)計小數(shù)點后面的</p>
71、<p> 顯示,對于小頻率的測試,誤差就相當(dāng)大了。下面是再次測試的實現(xiàn)數(shù)據(jù)。</p><p> 有上面的測試結(jié)果可見,測試頻率可以高達(dá)50mhz,看來我們的程序是可行的,對于粗略的測試還是比較準(zhǔn)確的。但是因為沒有小數(shù)顯示,對于頻率較低的測試,誤差就大了。所以有待改進(jìn)。</p><p> 5.4 系統(tǒng)調(diào)試的方法</p><p> 本系統(tǒng)既含有FPGA
72、自編程硬件設(shè)計電路,又含有單片機(jī)控制電路,整個系統(tǒng)比較復(fù)雜,因此我們采用自底向上的調(diào)試方法,也就是先進(jìn)行各個單元電路的軟件仿真和硬件調(diào)試,在各個單元電路調(diào)試好后再進(jìn)行系統(tǒng)聯(lián)調(diào),最后進(jìn)行硬件的編程固化及系統(tǒng)的組裝。</p><p> 5.4.1 調(diào)試的軟/硬件</p><p> (1) 系統(tǒng)設(shè)計開發(fā)軟件:MAX+plus Ⅱ 10.0,偉福6000(WAVE 6000 for windo
73、ws)。(2) 單片機(jī)及FPGA/CPLD調(diào)試設(shè)備:PIV計算機(jī),偉福E6000L單片機(jī)仿真器及POD—8X5XP仿真頭,GW48-CK EDA實驗開發(fā)系統(tǒng)及EPF10K20TC144-4FPGA適配板,GWDVPB電子設(shè)計開發(fā)板單片機(jī)最小系統(tǒng),煒煌WH-500B程序編寫加密器,GDS-820S數(shù)字存儲示波器。</p><p> 5.4.2 系統(tǒng)的仿真結(jié)果</p><p> FPGA測
74、試模塊中頻率/周期測量仿真圖如下圖所示。</p><p> 5.4.3 系統(tǒng)的硬件驗證 </p><p><b> ?、賳卧娐返恼{(diào)試 </b></p><p> FPGA/CPLD測頻專用電路的調(diào)試:使用MAX+plus Ⅱ 10.0,計算機(jī),GW48-CK EDA實驗開發(fā)系統(tǒng)等軟件和設(shè)備,對FPGA/CPLD測控電路進(jìn)行VHDL程序的
75、調(diào)試,有關(guān)仿真以及編程下載,硬件測試等。</p><p><b> ②統(tǒng)的聯(lián)合調(diào)試</b></p><p> 在各個單元電路調(diào)試好后即可進(jìn)行系統(tǒng)聯(lián)調(diào)。</p><p><b> ?、劢y(tǒng)的硬件驗證</b></p><p> 系統(tǒng)聯(lián)合調(diào)試成功后,可將單片機(jī)程序通過編程器固化到單片機(jī)中并插入EDA實
76、驗開發(fā)系統(tǒng)中的單片機(jī)插座上,將VHDL設(shè)計經(jīng)過綜合適配后的網(wǎng)表對CPLD/FPGA進(jìn)行編程下載,輸入相關(guān)的信號,并進(jìn)行有關(guān)性能指標(biāo)的測試,直到滿足系統(tǒng)的設(shè)計要求為止。</p><p> 本設(shè)計的具體硬件驗證說明如下:</p><p> 本系統(tǒng)的顯示電路共設(shè)置了8個數(shù)碼管,前7個為數(shù)字顯示,另一個是測量狀態(tài)顯示。</p><p> (1) 當(dāng)顯示為P. 時,是復(fù)
77、位狀態(tài),此時數(shù)碼管全熄。</p><p> (2) 當(dāng)顯示為F時,是頻率測量狀態(tài),單位Hz,如果前面出現(xiàn)兩個小數(shù)點,則第二個小數(shù)點表示MHz。</p><p> (3) 當(dāng)顯示為P時,是周期測量狀態(tài),單位μs。</p><p> (4) 當(dāng)顯示為A時,是脈寬測量狀態(tài),單位μs。</p><p> (5) 當(dāng)顯示為B時,是占空比測量狀態(tài)
78、,單位%。 </p><p> 5.5 設(shè)計技巧分析</p><p> (1) 在系統(tǒng)總體設(shè)計方面,充分利用單片機(jī)和FPGA/CPLD各自的優(yōu)勢,將測控的主體分配給FPGA/CPLD,既可滿足頻測對速度方面的要求和多I/O口的要求,同時利用單片機(jī)具有良好的人機(jī)接口和控制運算的功能,可以較簡單地實現(xiàn)鍵盤和顯示控制以及數(shù)據(jù)處理運算。</p><p> (2) 在頻
79、率測量方面,由于采用了等精度測頻法,使該系統(tǒng)具有以下特點:① 相對測量誤差與被測頻率的高低無關(guān);② 增大Tpr或fs可以增大Ns,減少測量誤差,提高測量精度;③ 測量精度與預(yù)置門寬度和標(biāo)準(zhǔn)頻率有關(guān),與被測信號的頻率無關(guān),預(yù)置門和常規(guī)測頻閘門時間相同而被測信號頻率不同的情況下,等精度測量法的測量精度不變。</p><p> (3) 在顯示方面,首先采用串行動態(tài)顯示,節(jié)約了I/O口,簡化了驅(qū)動電路的設(shè)計。</
80、p><p> 5.6系統(tǒng)擴(kuò)展思路 </p><p> (1) 設(shè)計并制作系統(tǒng)工作的外圍電路:系統(tǒng)用方波信號源、直流工作電源。</p><p> (2) 系統(tǒng)聯(lián)合調(diào)試成功后,可將單片機(jī)程序通過編程器固化到單片機(jī)中,將VHDL設(shè)計經(jīng)過綜合適配后的網(wǎng)表對CPLD/FPGA進(jìn)行編程下載,將整個系統(tǒng)的外圍電路設(shè)計制作印刷電路板</p><p><
81、;b> 參 考 文 獻(xiàn)</b></p><p> 譚會生,瞿遂春.EDA 技術(shù)綜合應(yīng)用實例與分析[M].西安:西安電子科技大學(xué)出版社,2004.</p><p> 徐志軍,徐光輝.CPLD/FPGA的開發(fā)與應(yīng)用[M].北京:電子工業(yè)出版社,2002.</p><p> Altera Corporation Altera Digital Li
82、brary[M]. Altera,2002.</p><p> 王金明,楊吉斌.?dāng)?shù)字系統(tǒng)設(shè)計與Verilog HDL[M].北京:電子工業(yè)出版社,2002.</p><p> Xilinx Inc.Data Book 2001.Xilinx[M],2001.</p><p> 譚會生.EDA 技術(shù)及應(yīng)用[M].株洲工學(xué)院學(xué)報,2001,5.</p>
83、<p> http://www.21IC.com\.....\ 21IC嵌入式系統(tǒng)的定義與發(fā)展[M].2003. </p><p> [8] 譚會生,張昌凡.EDA技術(shù)及應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2001.</p><p> [9] 張凱,林偉.VHDL實例剖析[M].北京:國防工業(yè)出版社,2004.</p><p> [1
84、0] 曾繁態(tài),陳美金VHDL程序設(shè)計[M].北京:清華大學(xué)出版社,2003.</p><p><b> 致 謝</b></p><p> 在這次論文的過程中,才感覺到對知識掌握的欠缺,需要認(rèn)真,細(xì)致,融會貫通才行,包括對word的使用。在這期間,非常感謝輔導(dǎo)老師范老師對我們耐心的指導(dǎo),不厭其煩的給我們解答,利用休息時間給我們做論題。找資料給我們分析軟件以及硬件方面
85、的東西。在范老師的輔導(dǎo)下,我們順利地完成了此次論文。同時也要感謝王忠鋒老師為我們答難解疑。</p><p> 同時也要感謝同組同學(xué)對我的幫助,在他們的協(xié)作下完成了顯示電路版的制作。在電子產(chǎn)品的制作中,每一項工作的完成都是大家齊心協(xié)力的結(jié)果,再共同完成的過程中,我們也體會到了互助的快樂。在此過程中也鍛煉了我們收集資料,處理資料,篩選資料的能力。</p><p> 當(dāng)然也要感謝閱讀論文的各
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 等精度數(shù)字測量數(shù)字頻率計的設(shè)計
- 等精度數(shù)字測量數(shù)字頻率計的設(shè)計
- 基于fpga的等精度數(shù)字頻率計設(shè)計
- 基于cpldfpga等精度數(shù)字頻率計的設(shè)計
- 數(shù)字頻率計課程設(shè)計
- 數(shù)字頻率計課程設(shè)計
- 課程設(shè)計--數(shù)字頻率計
- 課程設(shè)計——數(shù)字頻率計
- 數(shù)字頻率計課程設(shè)計
- 課程設(shè)計-數(shù)字頻率計
- 課程設(shè)計--數(shù)字頻率計
- 課程設(shè)計--數(shù)字頻率計
- 數(shù)字頻率計課程設(shè)計
- 數(shù)字頻率計課程設(shè)計
- 數(shù)字頻率計課程設(shè)計
- 基于fpga高精度數(shù)字頻率計設(shè)計
- 數(shù)字頻率計的課程設(shè)計
- 課程設(shè)計---數(shù)字頻率計的設(shè)計
- 基于fpga的高精度數(shù)字頻率計設(shè)計
- eda數(shù)字頻率計課程設(shè)計
評論
0/150
提交評論