版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> xxxx學(xué)院</b></p><p><b> 畢業(yè)設(shè)計(jì)論文</b></p><p> 題 目: 基于單片機(jī)和FPGA的位同步信號(hào)提取 </p><p> 專業(yè)班級(jí): 電子信息工程 </p><p> 學(xué)生姓名:
2、 學(xué) 號(hào): </p><p> 完成日期: </p><p> 指導(dǎo)教師: </p><p> 評(píng)閱教師: </p><p> 2006 年 6 月 </p
3、><p> 畢業(yè)設(shè)計(jì)(論文)任務(wù)書</p><p> 設(shè)計(jì)(論文)題目: 基于單片機(jī)和FPGA的位同步信號(hào)提取 </p><p> 姓名 專業(yè) 電子信息工程 班級(jí) 0281 </p>&
4、lt;p> 一、基本任務(wù)及要求: </p><p> 本課題是設(shè)計(jì)一具有通用性的輸入信號(hào)的位同步提取系統(tǒng),系統(tǒng)可以實(shí)現(xiàn)10HZ~1MHZ的信號(hào)同步。使用單片機(jī)進(jìn)行實(shí)時(shí)控制現(xiàn)場(chǎng)可編程邏輯門陣列FPGA完成位同步信號(hào)提取,通過理論和實(shí)驗(yàn)研究,完成硬件電路和軟件設(shè)計(jì)并試制樣機(jī),要求完成:
5、 </p><p> 1、單片機(jī)實(shí)時(shí)控制FPGA,完成實(shí)時(shí)頻率跟蹤測(cè)量和自動(dòng)鎖相; </p><p> 2、在FPGA 內(nèi)部,設(shè)計(jì)完成以下部分: </p><p> A、全數(shù)字鎖相環(huán)DPLL,主要包
6、含:數(shù)控振蕩器、鑒相器、可控模分頻器 </p><p> B、LED動(dòng)態(tài)掃描電路、FPGA和單片機(jī)的數(shù)字接口,以完成兩者之間的數(shù)字傳遞</p><p> 3、 設(shè)計(jì)輔助電路:鍵盤、LED; </p><p> 二、進(jìn)度安排及完成時(shí)間:
7、 </p><p> ?。?)第二周至第四周:查閱資料、撰寫文獻(xiàn)綜述和開題報(bào)告; </p><p> ?。?)第五周至第六周:畢業(yè)實(shí)習(xí);
8、 </p><p> (3)第六周至第七周:項(xiàng)目設(shè)計(jì)的總體框架:各個(gè)模塊以及各個(gè)模塊之間的關(guān)系確定,各個(gè)模塊的方案選擇與各個(gè)模塊的所用主要器件的確定; </p><p>
9、; (4)第八周至第十三周:各個(gè)模塊的主要器件熟悉及相關(guān)知識(shí)的熟悉;各個(gè)模塊的具體任務(wù)實(shí)現(xiàn):硬件電路、軟件編程; </p><p> (5)第十四周至第十五周:系統(tǒng)的總體仿真與調(diào)試 </p
10、><p> (6)第十六周至第十七周:撰寫設(shè)計(jì)說明書 ; </p><p> ?。?)第十八周:畢業(yè)設(shè)計(jì)答辯; </p><p><b
11、> 目 錄</b></p><p><b> 摘 要I</b></p><p> AbstractII</p><p><b> 引 言1</b></p><p> 第1章 緒 論2</p><p> 1.1 位同步技術(shù)當(dāng)前的發(fā)展
12、2</p><p> 1.2 EDA簡(jiǎn)介3</p><p> 1.3 8051型單片機(jī)4</p><p> 1.4 FPGA器件簡(jiǎn)介4</p><p> 1.4.1 FPGA器件的發(fā)展4</p><p> 1.4.2 FPGA器件的結(jié)構(gòu)5</p><p> 1.4
13、.3 Altera器件及EPM70647</p><p> 1.5 FPGA開發(fā)過程簡(jiǎn)介8</p><p> 1.6 C語(yǔ)言9</p><p> 1.7 VerilogHDL9</p><p> 1.8 MAX+PLUS II 概述10</p><p> 第2章 系統(tǒng)組成結(jié)構(gòu)11<
14、;/p><p> 2.1 單片機(jī)模塊11</p><p> 2.2 鍵盤模塊11</p><p> 2.3 測(cè)頻、輸出顯示模塊12</p><p> 2.4 數(shù)字鎖相環(huán)(DPLL)模塊13</p><p> 第3章 各模塊的具體設(shè)計(jì)及實(shí)現(xiàn)14</p><p> 3.1 單片機(jī)
15、模塊的設(shè)計(jì)與實(shí)現(xiàn)14</p><p> 3.2 鍵盤模塊的設(shè)計(jì)與實(shí)現(xiàn)15</p><p> 3.2.1 設(shè)計(jì)中問題和解決方法15</p><p> 3.2.2 鍵盤設(shè)計(jì)的軟件設(shè)計(jì)16</p><p> 3.3 測(cè)頻、輸出顯示模塊的設(shè)計(jì)與實(shí)現(xiàn)17</p><p> 3.3.1 測(cè)頻部分17</
16、p><p> 3.3.1.1 測(cè)頻電路的設(shè)計(jì)實(shí)現(xiàn)17</p><p> 3.3.1.2 測(cè)頻模塊的軟件設(shè)計(jì)17</p><p> 3.3.2 顯示部分18</p><p> 3.3.2.1 7448芯片介紹18</p><p> 3.4 鎖相環(huán)模塊的設(shè)計(jì)與實(shí)現(xiàn)21</p><p>
17、; 3.4.1 鑒相器的選擇21</p><p> 3.4.2 可編程K可逆計(jì)數(shù)器的設(shè)計(jì)22</p><p> 3.4.3 I/D線路的設(shè)計(jì)24</p><p> 3.4.4 可編程N(yùn)分頻器的設(shè)計(jì)25</p><p> 第4章 位同步信號(hào)提取系統(tǒng)整體測(cè)試28</p><p> 4.1 鎖相環(huán)的
18、仿真與測(cè)試28</p><p> 4.2 單片機(jī)軟件的測(cè)試29</p><p> 4.3 系統(tǒng)的整體測(cè)試31</p><p><b> 參考文獻(xiàn)33</b></p><p><b> 致 謝34</b></p><p> 附錄A 單片機(jī)軟件設(shè)計(jì)程序35
19、</p><p> 附錄B FPGA芯片內(nèi)部模塊的Verilog HDL設(shè)計(jì)58</p><p> 基于單片機(jī)和FPGA的位同步信號(hào)提取</p><p> 摘 要:本文所設(shè)計(jì)的位同步系統(tǒng)是使用單片機(jī)進(jìn)行實(shí)時(shí)控制現(xiàn)場(chǎng)可編程門陣列(FPGA)進(jìn)行同步的,在此設(shè)計(jì)中,本文主要做了以下內(nèi)容:</p><p> 1、單片機(jī)實(shí)時(shí)控制FPGA完
20、成實(shí)時(shí)頻率跟蹤測(cè)量和自動(dòng)鎖相。</p><p> 2、在FPGA內(nèi)部,設(shè)計(jì)有以下兩部分:</p><p> 全數(shù)字鎖相環(huán)(DPLL),主要包括數(shù)控振蕩器、鑒相器、可控模N分頻器。</p><p> LED動(dòng)態(tài)掃描電路、FPGA和單片機(jī)的數(shù)據(jù)接口,以完成兩者之間的數(shù)據(jù)傳遞。</p><p> 3、設(shè)計(jì)輔助電路:鍵盤、LED顯示、信號(hào)源等
21、。</p><p> 4、整體測(cè)試表明:系統(tǒng)可以實(shí)現(xiàn)10Hz到1MHz的信號(hào)同步,鍵盤及顯示電路工作正常。</p><p> 關(guān)鍵字:?jiǎn)纹瑱C(jī)、電子設(shè)計(jì)自動(dòng)化(EDA)、Verilog HDL、數(shù)字鎖相環(huán)</p><p> According To The MCU And FPGA The Bit Synchronous Signal Withdraw</
22、p><p> ABSTRACT:This text for designing the synchronous system is an usage MCU to control the Fileld Programmable Gate Array(FPGA) really.This design primarily completes missions as below.</p><p>
23、 The MCU complete solid hour measure frequency follow with auto lock the phase.</p><p> In the FPGA inner part ,the design have below two parts:</p><p> The Digital Phase Locked Loop(DPLL),pr
24、imarly include Digital Controled Oscillatory,Pahse Detector,N Divider.</p><p> The LED Dynamicly scan and display circuit,Interface circuit between MCU and FPGA.</p><p> Design assistant elect
25、ric circuit:The keyboard,LED shows,signal source etc.</p><p> 4、The whole test enunciation:the system can realize 10Hz to 1MHz signal is synchronous,keyboard electric circuit and manifestation electric circ
26、uit work is normal. </p><p> KEYWORDS:MCU EDA Verilog HDL DPLL</p><p><b> 引 言</b></p><p> 在科學(xué)飛速發(fā)展的今天,世界已進(jìn)入了數(shù)字化、信息化的時(shí)代。其中,通信技術(shù)的發(fā)展最為迅速。從第一代模擬移動(dòng)通信,到今年即將運(yùn)營(yíng)的3G移動(dòng)通信,僅僅
27、數(shù)年的時(shí)間。與此同時(shí),(微)電子技術(shù)也在以很快的速度進(jìn)步著,利用FPGA作原型設(shè)計(jì)及前期樣品生產(chǎn)的作法將會(huì)逐漸流行起來(lái)。通過使用FPGA/CPLD,可得到降低成本和上市時(shí)間快等的好處。數(shù)據(jù)通信的應(yīng)用需求量很大,我國(guó)路由器產(chǎn)品采用FPGA/CPLD起了很大作用。伴隨著微電子工業(yè)的發(fā)展,今天的FPGA已經(jīng)可以做系統(tǒng)級(jí)芯片了。技術(shù)的融合,使得各種科學(xué)技術(shù)不再獨(dú)立,而是聯(lián)合應(yīng)用在一起,發(fā)揮更大的功效。</p><p>
28、 本課題的目的是設(shè)計(jì)出一個(gè)具有通用性的輸入信號(hào)的位同步提取系統(tǒng),系統(tǒng)可以實(shí)現(xiàn)10Hz~1MHz的信號(hào)同步,使用單片機(jī)進(jìn)行實(shí)時(shí)控制現(xiàn)場(chǎng)可編程邏輯門陣列FPGA完成對(duì)同步信號(hào)的提取。該系統(tǒng)以FPGA器件作為控制的核心,配合單片機(jī)使整個(gè)系統(tǒng)顯得尤為精簡(jiǎn),能達(dá)到所要求的技術(shù)指標(biāo),具有靈活的現(xiàn)場(chǎng)更改性,還有高速、精確、可靠、抗干擾性強(qiáng)等優(yōu)點(diǎn)。最重要的一點(diǎn)便是它能實(shí)現(xiàn)對(duì)不同的位同步信號(hào)進(jìn)行提取,能夠滿足本課題的要求。</p><
29、p><b> 第1章 緒 論</b></p><p> 同步是通信系統(tǒng)中一個(gè)重要的實(shí)際問題。在通信系統(tǒng)中,同步具有相當(dāng)重要的地位。通信系統(tǒng)能否有效地、可靠地工作,很大程度上依賴于有無(wú)良好的同步系統(tǒng)。當(dāng)采用同步解調(diào)或相干檢測(cè)時(shí),接收端需要提供一個(gè)與發(fā)射端調(diào)制載波同步同頻同相的相干載波。獲得這個(gè)相干載波的過程稱為載波提取,或稱為載波同步。數(shù)字通信中,除了有載波同步的問題之外,還有位同
30、步的問題。</p><p> 由于本次設(shè)計(jì)主要是在現(xiàn)場(chǎng)可編程門陣列(Field Programmable Gate Array)技術(shù)為基礎(chǔ)來(lái)完成的,所以還在概念上介紹了FPGA的發(fā)展、芯片結(jié)構(gòu)、8051型單片機(jī)、以及簡(jiǎn)單介紹了FPGA的開發(fā)過程,EDA的使用和開發(fā)語(yǔ)言C語(yǔ)言和Verilog HDL。</p><p> 1.1 位同步技術(shù)當(dāng)前的發(fā)展</p><p>
31、; 數(shù)字通信中一個(gè)很重要的問題就是位同步問題,因?yàn)橄⑹且淮B續(xù)的信號(hào)碼元序列,解調(diào)時(shí)必須知道每個(gè)碼元的起止時(shí)刻。因此,接收端必須產(chǎn)生一個(gè)時(shí)鐘用作定時(shí)脈沖序列,它和接收的每一個(gè)碼元的起止時(shí)刻一一對(duì)齊。我們把在接收端產(chǎn)生于接收碼元的重復(fù)頻率和相位一致的定時(shí)脈沖序列的過程稱為碼元同步或位同步,而稱這個(gè)定時(shí)脈沖序列為碼元同步脈沖或位同步脈沖。</p><p> 數(shù)字通信中的消息數(shù)字流總是用若干碼元組成一個(gè)“字”,又
32、用若干“字”組成一“句”。因此,在接收這些數(shù)字流時(shí),同樣也必須知道這些“字”、“句”的起止時(shí)刻,在接收端產(chǎn)生與“字”、“句”起止時(shí)刻相一致的定時(shí)脈沖序列,統(tǒng)稱為群同步或幀同步。</p><p> 當(dāng)通信是在兩點(diǎn)之間進(jìn)行時(shí),完成了載波同步、位同步和幀同步之后,接收端不僅獲得了相干載波,而且通信雙方的時(shí)標(biāo)關(guān)系也解決了,這時(shí),接收端就能以較低的錯(cuò)誤概率恢復(fù)除數(shù)字信息。然而,隨著數(shù)字通信的發(fā)展,特別是計(jì)算機(jī)通信及計(jì)算網(wǎng)
33、絡(luò)的發(fā)展,通信系統(tǒng)也由點(diǎn)對(duì)點(diǎn)的通信發(fā)展到多點(diǎn)間的通信,顯然,為了保證通信網(wǎng)內(nèi)各用戶之間可靠的進(jìn)行數(shù)據(jù)交換,還必須實(shí)現(xiàn)網(wǎng)同步,即在通信網(wǎng)內(nèi)由一個(gè)統(tǒng)一的時(shí)間節(jié)拍標(biāo)準(zhǔn)。</p><p> 同步系統(tǒng)的性能的降低,會(huì)直接導(dǎo)致通信系統(tǒng)性能的降低,甚至使通信系統(tǒng)不能工作。可以說,在同步通信系統(tǒng)中,“同步”是消息傳輸?shù)那疤?,正是因?yàn)槿绱?,為了保證消息的可靠傳輸,要求同步系統(tǒng)應(yīng)有更高的可靠性。</p><p&
34、gt;<b> 1.2 EDA簡(jiǎn)介</b></p><p> 電子設(shè)計(jì)自動(dòng)化(EDA)技術(shù)研究的對(duì)象是電子設(shè)計(jì)的全過程,有系統(tǒng)級(jí)、電路級(jí)和物理級(jí)各個(gè)層次的設(shè)計(jì):涉及的電子系統(tǒng)從低頻、高頻到微波,從線性到非線性,從模擬到數(shù)字。從通用集成電路到專用集成電路構(gòu)造的電子系統(tǒng),因此EDA技術(shù)研究的范疇相當(dāng)廣泛。</p><p> 在電子設(shè)計(jì)技術(shù)領(lǐng)域,可編程邏輯器件的應(yīng)用,
35、已有了很好的普及,這些器件為數(shù)字系統(tǒng)的設(shè)計(jì)帶來(lái)極大的靈活性。由于該器件可以通過軟件編程而對(duì)其硬件的結(jié)構(gòu)和工作方式進(jìn)行重構(gòu),使得硬件的設(shè)計(jì)可以如同軟件設(shè)計(jì)那樣方便快捷。這一切極大地改變了傳統(tǒng)的數(shù)字系統(tǒng)設(shè)計(jì)方法、設(shè)計(jì)過程、乃至設(shè)計(jì)觀念??v觀可編程邏輯器件的發(fā)展史,它在結(jié)構(gòu)原理、集成規(guī)模、下載方式、邏輯設(shè)計(jì)手段等方面的每一次進(jìn)步都為現(xiàn)代電子設(shè)計(jì)技術(shù)的革命與發(fā)展提供了不可或缺的強(qiáng)大動(dòng)力。隨著可編程邏輯器件集成規(guī)模不斷擴(kuò)大,自身功能的不斷完善和計(jì)
36、算機(jī)輔助設(shè)計(jì)技術(shù)的提高,在現(xiàn)代電子系統(tǒng)設(shè)計(jì)領(lǐng)域中的EDA便應(yīng)運(yùn)而生了。傳統(tǒng)的數(shù)字電路設(shè)計(jì)模式,如利用卡諾圖等邏輯化簡(jiǎn)手段以及難懂的布爾方程表達(dá)方式和相應(yīng)的TTL或4000系列夸集成規(guī)模芯片的堆砌技術(shù)正在迅速地退出歷史舞臺(tái)。</p><p> 電子設(shè)計(jì)自動(dòng)化(EDA)是一種實(shí)現(xiàn)電子系統(tǒng)或電子產(chǎn)品自動(dòng)化設(shè)計(jì)的技術(shù)。它與電子技術(shù)、微電子技術(shù)的發(fā)展密切相關(guān)。它吸收了計(jì)算機(jī)科學(xué)領(lǐng)域的大多數(shù)最新研究成果,以高性能的計(jì)算機(jī)作
37、為工作平臺(tái),是20世紀(jì)90年代初從CAD(計(jì)算機(jī)輔助設(shè)計(jì)Computer Aided Design)、CAM(計(jì)算機(jī)輔助制造Computer Aided Manufacture)、CAT(計(jì)算機(jī)輔助測(cè)試Computer Aided Test)和CAE(計(jì)算機(jī)輔助工程Computer Aided Education)的概念發(fā)展而來(lái)的。EDA技術(shù)就是以計(jì)算機(jī)為工具,在EDA軟件平臺(tái)上。根據(jù)硬件描述語(yǔ)言HDL完成的設(shè)計(jì)文件。自動(dòng)地完成邏輯編譯
38、、化簡(jiǎn)、分割、綜合及優(yōu)化、布局線、仿真,直至對(duì)于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。設(shè)計(jì)者的工作僅限于利用軟件的方式來(lái)完成對(duì)系統(tǒng)硬件功能的描述,在EDA工具的幫助下和應(yīng)用相應(yīng)的FPGA/CPLD器件,就可以得到最后的設(shè)計(jì)結(jié)果。盡管,目標(biāo)系統(tǒng)是硬件.但整個(gè)設(shè)計(jì)和修改過程如同完成軟件設(shè)計(jì)一樣方便和高效。當(dāng)然,這里的所謂EDA主要是指數(shù)字系統(tǒng)的自動(dòng)化設(shè)計(jì),因?yàn)檫@一領(lǐng)域的軟硬件方</p><p> EDA
39、的實(shí)現(xiàn)是與CPLD/FPGA技術(shù)的迅速發(fā)展息息相關(guān)的。CPLD/FPGA是80年代中后期出現(xiàn)的,其特點(diǎn)是具有用戶可編程的特性。利用CPLD/FPGA,電子系統(tǒng)設(shè)計(jì)工程師可以在實(shí)驗(yàn)室中設(shè)計(jì)出專用IC,實(shí)現(xiàn)系統(tǒng)的集成,從而大大縮短了產(chǎn)品開發(fā)、上市的時(shí)間,降低了開發(fā)成本。此外,CPLD/FPGA還具有靜態(tài)可重復(fù)編程或在線動(dòng)態(tài)重構(gòu)的特性,使硬件的動(dòng)能可以像軟件一樣通過編程來(lái)修改,不僅使設(shè)計(jì)修改和產(chǎn)品升級(jí)變得十分方便,而且極大地提高了電子系統(tǒng)的靈
40、活性和通用能力。</p><p> 1.3 8051型單片機(jī)</p><p> 8051片內(nèi)有4KROM,無(wú)須外接存儲(chǔ)器和373,更能體現(xiàn)“單片”的簡(jiǎn)練。8051單片機(jī)的片內(nèi)結(jié)構(gòu)如圖1.1所示。如果按功能劃分,它由8個(gè)部件組成,即微處理器(CPU)、數(shù)據(jù)存儲(chǔ)器(RAM)、程序存儲(chǔ)器(ROM)、I/O口(P0口、P1口、P2口、P3口)、串行口、定時(shí)器/計(jì)數(shù)器、中斷系統(tǒng)及特殊功能寄存器(
41、SFR)。它們都是通過片內(nèi)單一總線連接而成,其基本結(jié)構(gòu)依然是采用CPU加上外圍芯片的傳統(tǒng)結(jié)構(gòu)模式。但對(duì)各功能部件的控制是采用特殊功能寄存器(SFR)的集中控制方式。</p><p> 圖1.1 8051單片機(jī)的片內(nèi)結(jié)構(gòu)</p><p> 1.4 FPGA器件簡(jiǎn)介</p><p> 1.4.1 FPGA器件的發(fā)展</p><p> FP
42、GA器件(Field Programmable Gate Array)----用戶現(xiàn)場(chǎng)可編程門陣列集成電路是20世紀(jì)80年代中期出現(xiàn)的一種新概念,是倍受現(xiàn)代數(shù)字系統(tǒng)設(shè)計(jì)工程師歡迎的最新一代系統(tǒng)設(shè)計(jì)積木塊。由于半導(dǎo)體技術(shù)的飛躍發(fā)展,數(shù)字系統(tǒng)應(yīng)用經(jīng)歷了分立元件、小規(guī)模集成電路(SSI)、中規(guī)模集成電路(MSI)和大規(guī)模集成電路(LSI)及超大規(guī)模集成電路(VLSI)的發(fā)展過程,數(shù)字系統(tǒng)應(yīng)用的基本特征也由中小規(guī)模集成度的標(biāo)準(zhǔn)通用集成電路向用戶
43、定制的專用集成電路(ASIC)過渡。20世紀(jì)80年代出現(xiàn)了可編程邏輯器件(PLD),在一定程度上,為數(shù)字系統(tǒng)設(shè)計(jì)工程師進(jìn)行快捷、靈活的設(shè)計(jì)提供了可能性,PLD器件的應(yīng)用使一系列功能強(qiáng)、速度高、靈活性大的積木式系統(tǒng)設(shè)計(jì)得以成功。但是,隨著現(xiàn)代數(shù)字系統(tǒng)設(shè)計(jì)的發(fā)展,PLD器件無(wú)論在集成容量、功耗、速度還是邏輯設(shè)計(jì)的靈活性上,均不能滿足現(xiàn)代數(shù)字系統(tǒng)的大容量、高速度、現(xiàn)場(chǎng)靈活可編程設(shè)計(jì)的要求。這類器件集成度還是達(dá)不到非常高,內(nèi)部資源和I/O管腳也
44、不夠多,在進(jìn)行大型系統(tǒng)設(shè)計(jì)時(shí),使用此類器件就顯得不夠理想了。FPGA器件的產(chǎn)生將半定制的門陣列電路的優(yōu)點(diǎn)和可編程邏輯</p><p> FPGA單片中的等效邏輯門一般有幾千甚至多達(dá)2萬(wàn),I/O引腳多達(dá)200以上,密度極大。用幾十片PAL、GAL或幾百片標(biāo)準(zhǔn)數(shù)字集成電路搭成的系統(tǒng)用一片F(xiàn)PGA就可以實(shí)現(xiàn)。FPGA的結(jié)構(gòu)靈活,它的邏輯單元、互連資源和I/O單元都可以由用戶編程,現(xiàn)任何邏輯功能,滿足各種設(shè)計(jì)要求。&l
45、t;/p><p> FPGA的開發(fā)工具十分先進(jìn)。在用FPGA進(jìn)行系統(tǒng)設(shè)計(jì)時(shí),用戶所做的工作僅僅是用計(jì)算機(jī)繪制出系統(tǒng)的電路原理圖,其余的工作都可以由開發(fā)系統(tǒng)來(lái)自動(dòng)完成。多數(shù)FPGA都既能重復(fù)編程,又可以重復(fù)使用,還可在開發(fā)系統(tǒng)中直接進(jìn)行仿真。所以,使用FPGA沒有前期投資風(fēng)險(xiǎn),也沒有工藝實(shí)現(xiàn)中的損耗。FPGA的特點(diǎn)是速度快,功耗低,通用性好,適應(yīng)性強(qiáng),它不僅可以代替?zhèn)鹘y(tǒng)的數(shù)字集成電路,而且還可以代替一般的PLD器件和
46、半定制的ASIC,特別適用于復(fù)雜系統(tǒng)的設(shè)計(jì)。使用FPGA可以非常大的減小硬件規(guī)模,降低設(shè)計(jì)成本,縮短設(shè)計(jì)周期,提高系統(tǒng)的可靠性、靈活性和保密性。</p><p> FPGA已經(jīng)成功地應(yīng)用于計(jì)算機(jī)硬件、工業(yè)控制、遙感遙測(cè)、雷達(dá)聲納、數(shù)據(jù)處理、智能儀表、廣播電視和醫(yī)療電子等多種領(lǐng)域中。在現(xiàn)代通信中,F(xiàn)PGA已經(jīng)成功地用作程控交換、數(shù)字復(fù)接、壓縮擴(kuò)張、編碼譯碼和調(diào)制解調(diào)等。</p><p>
47、 1.4.2 FPGA器件的結(jié)構(gòu)</p><p> FPGA現(xiàn)場(chǎng)可編程門陣列器件通常由布線資源圍繞的可編程單元(或宏單元)構(gòu)成陣列,又可由可編程I/O單元圍繞陣列構(gòu)成整個(gè)芯片,如圖1.2所示。排成陣列的邏輯單元由布線主道中的可編程連線連接起來(lái)實(shí)現(xiàn)一定的邏輯功能。一個(gè)FPGA可能包含有靜態(tài)存儲(chǔ)單元,它們?cè)试S內(nèi)部的模式在器件被制造以后再被加載或修改。</p><p> 圖1.2 FPGA
48、基本結(jié)構(gòu)</p><p> FPGA是由掩膜可編程門陣列和可編程邏輯器件演變而來(lái)的,將它們的特性結(jié)合在一起,使得FPGA既有門陣列的高邏輯密度和通用性,又有可編程邏輯器件的用戶可編程特性。目前FPGA的邏輯功能塊在規(guī)模和實(shí)現(xiàn)邏輯功能的能力上存在很大差別。有的邏輯功能塊規(guī)模十分小,僅含有只能實(shí)現(xiàn)倒相器的兩個(gè)晶體管;而有的邏輯功能塊規(guī)模比較大,可以實(shí)現(xiàn)任何五變量輸入邏輯函數(shù)的查找表結(jié)構(gòu)。據(jù)此可把FPGA分為兩大類,
49、即細(xì)粒度(fine-grain)和粗粒度(coarse-grain)。細(xì)粒度邏輯塊是與半定制門陣列的基本單元相同,它由可編程互連來(lái)連接少數(shù)晶體管組成,規(guī)模都較小,主要優(yōu)點(diǎn)是可用的功能塊可以完全被利用;缺點(diǎn)是采用它通常需要大量的連線和可編程開關(guān),使相對(duì)速度變慢。由于近年來(lái)工藝不斷改進(jìn),芯片集成度不斷提高,加上引入硬件描述語(yǔ)言(HDL)的設(shè)計(jì)方法,不少?gòu)S家開發(fā)出了具有更細(xì)粒度結(jié)構(gòu)的FPGA。例如,XILINX公司采用Micro Via技術(shù)的
50、一次編程反熔絲結(jié)構(gòu)的XC8100系列就是邏輯功能塊規(guī)模較小,細(xì)粒度結(jié)構(gòu)的FPGA。而粗粒度FPGA功能塊規(guī)模較大并且功能較強(qiáng)。從構(gòu)成它的可編程邏輯和可編程互連資源來(lái)看,主要有</p><p> 第一種是具有可編程內(nèi)連線的通道型門陣列。它采用分段互連線,利用不同長(zhǎng)度的多種金屬線經(jīng)傳輸管將各種邏輯單元連接起來(lái)。布線延時(shí)是累加的、可變的,并且與通道有關(guān)。</p><p> 第二種是具有類似P
51、LD可編程塊陣列的固定內(nèi)連布線,采用連續(xù)互連線,利用相同長(zhǎng)度的金屬線實(shí)現(xiàn)邏輯單元之間的互連,布線延時(shí)是固定的,并且可預(yù)測(cè)。</p><p> 1.4.3 Altera器件及EPM7064</p><p> 高密度PLDs在當(dāng)今的半導(dǎo)體工業(yè)中可謂是飛速發(fā)展。公司在提供解決方案的領(lǐng)域一直處于領(lǐng)先地位。Altera器件具有良好性能、極高的密度和非常大的靈活性,除了具有一般PLDs的特點(diǎn)之外,
52、還具有這些優(yōu)點(diǎn):先進(jìn)的處理技術(shù)、性能高、邏輯集成密度高、性價(jià)比高、開發(fā)周期短和在線可編程等。Altera公司生產(chǎn)的器件主要有Classic系列、MAX系列、Cyclone系列、Stratix系列、APEX系列、ACEX系列以及FLEX 10K系列。</p><p> MAX系列器件采用高性能的EPROM工藝實(shí)現(xiàn)了多陣列矩陣體系結(jié)構(gòu)。內(nèi)部主要有以下組成部分:</p><p> 邏輯陣列塊
53、(logic array blocks)</p><p> 宏單元(macrocells)</p><p> 擴(kuò)展乘積項(xiàng)(expanded product terms)</p><p> 可編程互聯(lián)陣列(programmable interconnect array)</p><p> 控制塊(I/O control blocks)&
54、lt;/p><p> MAX 7000芯片包含有4個(gè)專用的輸入管腳,可以用來(lái)作為普通的輸入管腳或者是作為每一個(gè)宏單元和I/O管腳的高速、全局控制信號(hào)(時(shí)鐘、清零和2個(gè)輸出使能)。如圖1.3所示為EPM7064器件的結(jié)構(gòu)。4個(gè)專用管腳分別為:INPUT/GCLKl,INPUT/GCLRn,INPUT/OEln和INPUT/OE2n。每一個(gè)邏輯陣列塊包含有16個(gè)宏單元,宏單元之間通過可編程互聯(lián)陣列傳遞信號(hào),專用輸入管腳
55、和邏輯陣列塊以及可編程互聯(lián)陣列相連接。</p><p> 圖1.3 EPM7064器件的結(jié)構(gòu)</p><p> 1.5 FPGA開發(fā)過程簡(jiǎn)介</p><p><b> 1、設(shè)計(jì)過程</b></p><p> 設(shè)計(jì)前期:將用戶要求轉(zhuǎn)換為用于設(shè)計(jì)的技術(shù)規(guī)范;</p><p> 設(shè)計(jì)過程:軟
56、/硬件劃分、電路設(shè)計(jì)與軟件開發(fā)、系統(tǒng)仿真、可靠性分析、制造和生產(chǎn)、系統(tǒng)測(cè)試。</p><p> 設(shè)計(jì)后期:為系統(tǒng)軟件和硬件的測(cè)試生產(chǎn)測(cè)試程序和測(cè)試矢量。</p><p><b> 2、設(shè)計(jì)方法:</b></p><p> 層次設(shè)計(jì)方法:系統(tǒng)級(jí)、寄存器傳輸級(jí)、門級(jí)、電路級(jí)和器件級(jí)。</p><p> Bottom-
57、up Design Method。</p><p> Up-down Design Method----高級(jí)綜合方法。</p><p> 3、FPGA開發(fā)流程如圖1.4所示:</p><p> 圖1.4 FPGA開發(fā)流程</p><p><b> 1.6 C語(yǔ)言</b></p><p>
58、 C語(yǔ)言是當(dāng)今世界最流行的語(yǔ)言之一,它集計(jì)算機(jī)語(yǔ)言的優(yōu)點(diǎn)于一身,成為具有較強(qiáng)生命力的程序設(shè)計(jì)語(yǔ)言。</p><p><b> C語(yǔ)言有如下特點(diǎn):</b></p><p> 1.是處于匯編語(yǔ)言和高級(jí)語(yǔ)言之間的一種語(yǔ)言。C語(yǔ)言較靠近硬件與系統(tǒng),與匯編語(yǔ)言較為接近。C語(yǔ)言既有面向硬件和系統(tǒng),像匯編語(yǔ)言那樣可以直接訪問硬件的功能。又有高級(jí)語(yǔ)言面向用戶、容易記憶、方便閱讀
59、和書寫的優(yōu)點(diǎn)。</p><p> 2.是一種可以進(jìn)行結(jié)構(gòu)化程序設(shè)計(jì)的程序語(yǔ)言,即可以用順序、選擇和循環(huán)三種基本結(jié)構(gòu)實(shí)現(xiàn)程序的邏輯結(jié)構(gòu)。C語(yǔ)言具有諸如if-else、switch-case、for、do-while、while等結(jié)構(gòu)化語(yǔ)句,十分便于采用自頂向下、逐步細(xì)化的結(jié)構(gòu)化程序設(shè)計(jì)技術(shù)。因此,用C語(yǔ)言編制的程序,具有易于理解、便于維護(hù)的優(yōu)點(diǎn)。 </p><p> 3.使用方便、靈活
60、,可以使程序簡(jiǎn)潔、緊湊。C語(yǔ)言只有32個(gè)標(biāo)準(zhǔn)的關(guān)鍵字、45個(gè)標(biāo)準(zhǔn)的運(yùn)算符以及9種控制語(yǔ)句。</p><p> 4.運(yùn)算符十分豐富,除一般語(yǔ)言使用的加、減、乘、除、取余、取反等算術(shù)運(yùn)算及與、或、非邏輯運(yùn)算功能外,還可以實(shí)現(xiàn)以二進(jìn)制位(bit)為單位的位與、或、非、異或以及移位等位運(yùn)算和單項(xiàng)運(yùn)算等復(fù)合運(yùn)算功能。除了具有基本的數(shù)據(jù)類型外還具有多種構(gòu)造數(shù)據(jù)類型,因此,C語(yǔ)言具有較強(qiáng)的數(shù)據(jù)處理能力。</p>
61、<p> 5.允許直接訪問物理地址,能實(shí)現(xiàn)二進(jìn)制位操作。能實(shí)現(xiàn)匯編語(yǔ)言的很多功能,可以直接對(duì)硬件進(jìn)行操作,這為編寫系統(tǒng)軟件提供了便利。</p><p> 1.7 VerilogHDL</p><p> Verilog HDL的特點(diǎn)是易學(xué)易用,如果有C語(yǔ)言的編程經(jīng)驗(yàn),可以在一個(gè)較短的時(shí)間內(nèi)很快的學(xué)習(xí)和掌握。它是由GDA(Gateway DesignAutomation)公司
62、的PlulMoorby在1983年末首創(chuàng)的,最初只設(shè)計(jì)了一個(gè)仿真與驗(yàn)證工具,之后又陸續(xù)開發(fā)了相關(guān)的故障模擬與時(shí)序分析工具。1985年Moorby推出它的第三個(gè)商用仿真器Verilog-XL,獲得了巨大的成功,從而使得Verilog HDL迅速得到推廣應(yīng)用。1989年CADENCE公司收購(gòu)了GDA公司,使得VerilogHDL成為了該公司的獨(dú)家專利。1990年CADENCE公司公開發(fā)表了VerilogHDL,并成立LVI組織以促進(jìn)Veri
63、log HDL成為IEEE標(biāo)準(zhǔn),即IEEE Standard 1364-1995。</p><p> 1.8 MAX+PLUS II 概述</p><p> MAX+PLUSII是Altera提供的FPGA/CPLD開發(fā)集成環(huán)境, MAX+PLUSII提供了一種與結(jié)構(gòu)無(wú)關(guān)的設(shè)計(jì)環(huán)境,是設(shè)計(jì)者能方便地進(jìn)行設(shè)計(jì)輸入、快速處理和器件編程。在 MAX + PLUS II軟件提供的設(shè)計(jì)環(huán)境中可以
64、完成設(shè)計(jì)輸入、設(shè)計(jì)編譯、設(shè)計(jì)仿真和器件編程四個(gè)設(shè)計(jì)階段。在設(shè)計(jì)輸入階段,用戶可以采用圖形輸入、文本輸入和波形輸入三種方式輸入設(shè)計(jì)文件,但波形輸入方式只能在工程設(shè)計(jì)的底層使用。在設(shè)計(jì)編譯階段,MAX + PLUS II編譯器依據(jù)設(shè)計(jì)輸入文件自動(dòng)生成用于器件編程、波形仿真及延時(shí)分析等所需的數(shù)據(jù)文件。在設(shè)計(jì)仿真階段,MAX + PLUS II仿真器和時(shí)延分析器利用編譯器產(chǎn)生的數(shù)據(jù)文件自動(dòng)完成邏輯功能仿真和時(shí)延特性仿真。并且可以在設(shè)計(jì)文件中加載
65、不同的激勵(lì),觀察中間結(jié)果以及輸出波形。必要時(shí),可以返回設(shè)計(jì)輸入階段,修改設(shè)計(jì)輸入,達(dá)到設(shè)計(jì)要求。在器件編程階段,MAX + PLUS II編程器將編譯器生成的編程文件下載到Altera器件實(shí)現(xiàn)對(duì)器件編程。此后,可以將實(shí)際信號(hào)送入該器件進(jìn)行時(shí)序驗(yàn)證。因?yàn)镃PLD/FPGA芯片能夠可重復(fù)編程,所以如果動(dòng)態(tài)時(shí)序驗(yàn)證的結(jié)果不能滿足用戶的</p><p> 圖1.5 MAX+PLUSII設(shè)計(jì)流程</p>&
66、lt;p> 第2章 系統(tǒng)組成結(jié)構(gòu)</p><p> 位同步信號(hào)的提取系統(tǒng),是對(duì)輸入信號(hào)進(jìn)行測(cè)量,進(jìn)而對(duì)其跟蹤、捕捉,最后將其顯示的數(shù)字系統(tǒng)。系統(tǒng)的組成如圖所示:</p><p> 圖2.1 系統(tǒng)組成框圖</p><p><b> 2.1 單片機(jī)模塊</b></p><p> 在此模塊中,單片機(jī)主要起到掃
67、描鍵盤、控制測(cè)頻模塊輸出顯示及控制鎖相環(huán)的功能。其中,掃描鍵盤的功能是:?jiǎn)纹瑱C(jī)通過掃描鍵盤,確定按鍵,然后根據(jù)不同的按鍵指令執(zhí)行相應(yīng)的功能,從而實(shí)現(xiàn)了人工對(duì)系統(tǒng)的控制??刂茰y(cè)頻模塊輸出顯示的功能是: 單片機(jī)根據(jù)按鍵的指示,如果在自動(dòng)等待狀態(tài),“確認(rèn)”后,單片機(jī)控制測(cè)頻部分,進(jìn)行對(duì)輸入信號(hào)的頻率測(cè)量,然后將測(cè)量結(jié)果以十進(jìn)制顯示出來(lái);若已知信號(hào)頻率,便可根據(jù)顯示結(jié)果來(lái)判斷系統(tǒng)的同步性。</p><p><b&g
68、t; 2.2鍵盤模塊</b></p><p> 鍵盤是本系統(tǒng)中人工控制的重要模塊。無(wú)論是編碼鍵盤還是非編碼鍵盤,都必須具備去抖動(dòng)、防串鍵、按鍵識(shí)別和產(chǎn)生鍵碼的功能。功能具體描述如下:</p><p> 去抖動(dòng):利用軟件延時(shí),待抖動(dòng)消失后按鍵。</p><p> 防串鍵:利用輪回技術(shù),按順序依次產(chǎn)生相應(yīng)的鍵碼。</p><p&g
69、t; 按鍵識(shí)別:由程序?qū)︽I盤進(jìn)行掃描,通過檢測(cè)列輸出狀態(tài)確定閉合鍵。輸入口輸出口各設(shè)置一個(gè)。</p><p> 產(chǎn)生鍵碼:當(dāng)時(shí)別到有鍵按下,通過行掃描碼和烈返回碼得到此碼。不同鍵碼實(shí)現(xiàn)不同功能。</p><p> 本次設(shè)計(jì)所使用的是44鍵盤,如圖2.2所示:</p><p> 圖2.2 44鍵盤</p><p> 各鍵功能如表2.
70、1所示:</p><p> 表2.1 44鍵盤按鍵功能表</p><p> 本次設(shè)計(jì)為節(jié)約成本,選擇非編碼鍵盤。</p><p> 2.3 測(cè)頻、輸出顯示模塊</p><p> 為了設(shè)計(jì)一個(gè)具有通用性的位同步系統(tǒng),就應(yīng)當(dāng)在鎖相之前,知道輸入信號(hào)的頻率,這個(gè)功能應(yīng)由系統(tǒng)自動(dòng)完成。因此,需加入測(cè)頻模塊。在數(shù)字鎖相環(huán)中,N分頻器的分頻決定
71、了其中心頻率,它是通過輸入信號(hào)的頻率經(jīng)過計(jì)算得到的,對(duì)鎖相環(huán)的穩(wěn)定有很重要的作用。因此,此模塊應(yīng)具備下述功能:</p><p> 第一,單片機(jī)發(fā)出清零脈沖,關(guān)閉輸入與門,使輸入信號(hào)與單片機(jī)T1腳斷開。</p><p> 第二,單片機(jī)發(fā)出啟動(dòng)脈沖,開啟輸入與門,使輸入信號(hào)與T1腳接通。</p><p> 第三,單片機(jī)定時(shí)結(jié)束,封鎖輸入與門。</p>
72、<p> 為了顯示出輸入信號(hào)的頻率,就得加入顯示模塊。在此,我采用動(dòng)態(tài)顯示,因?yàn)閯?dòng)態(tài)顯示比靜態(tài)顯示有成本低等優(yōu)點(diǎn)。動(dòng)態(tài)顯示的特點(diǎn)是,所有數(shù)碼管占用同一個(gè)通道,每一時(shí)刻只亮一個(gè)管,在不同的時(shí)刻,依次選中數(shù)碼管,從而實(shí)現(xiàn)動(dòng)態(tài)掃描的目的。由于人眼有視覺誤差的特點(diǎn),掃描速度到達(dá)一定程度是,人眼就會(huì)出現(xiàn)數(shù)碼管全亮的錯(cuò)覺。</p><p> 2.4 數(shù)字鎖相環(huán)(DPLL)模塊</p><p
73、> 隨著數(shù)字電路技術(shù)的發(fā)展,尤其是大規(guī)模集成電路及微處理機(jī)的廣泛應(yīng)用,使得通信與控制方面一些復(fù)雜的、靈敏的信號(hào)處理方法能在數(shù)字域付諸實(shí)施。鎖相環(huán)相干數(shù)字通信系統(tǒng)中的關(guān)鍵部件,為了與數(shù)字系統(tǒng)兼容,吸收數(shù)字電路固有的可靠性高、體積小、價(jià)格低等優(yōu)點(diǎn),人們?cè)诎l(fā)展模擬鎖相環(huán)的同時(shí),亦致力于發(fā)展數(shù)字鎖相環(huán)。數(shù)字鎖相環(huán)除具有數(shù)字電路的優(yōu)點(diǎn)外,還解決了若干模擬環(huán)遇到的難題,如直流零點(diǎn)漂移、部件飽和、必須進(jìn)行初始校準(zhǔn)等,此外還具有離散樣值的實(shí)時(shí)處
74、理能力。這些都表明,數(shù)字鎖相環(huán)的發(fā)展勢(shì)必然的。鎖相環(huán)是一個(gè)相位反饋控制系統(tǒng),在數(shù)字鎖相環(huán)中,由于誤差控制信號(hào)是離散的數(shù)字信號(hào)而不是模擬電壓,因而受控的輸出相位的改變是離散的而不是連續(xù)的;此外,環(huán)路組成部件也全用數(shù)字電路實(shí)現(xiàn),故而這種鎖相環(huán)就稱之為全數(shù)字鎖相環(huán)(簡(jiǎn)稱DPLL)。當(dāng)然,還有一類鎖相環(huán),部分環(huán)路部件為數(shù)字電路,但是環(huán)路控制仍是模擬形式,這類鎖相環(huán)只能是部分?jǐn)?shù)字環(huán)。</p><p> 全數(shù)字鎖相環(huán)組成如
75、圖2.3所示。它由數(shù)字鑒相器、數(shù)字濾波器與數(shù)字壓控振蕩器三個(gè)數(shù)字電路部件組成。(其中,數(shù)控振蕩器由脈沖加減電路和N分頻器構(gòu)成)</p><p> 圖2.3 數(shù)字鎖相環(huán)的組成</p><p> 第3章 各模塊的具體設(shè)計(jì)及實(shí)現(xiàn)</p><p> 在本章詳細(xì)介紹了位同步系統(tǒng)中各個(gè)模塊的實(shí)現(xiàn)方案及設(shè)計(jì)過程。并本著完整、可靠、有效和節(jié)約的方針,對(duì)系統(tǒng)進(jìn)行構(gòu)建。<
76、/p><p> 3.1 單片機(jī)模塊的設(shè)計(jì)與實(shí)現(xiàn)</p><p> 由于單片機(jī)要完成測(cè)頻以及對(duì)其他模塊的控制,因此,單片機(jī)設(shè)計(jì)的質(zhì)量直接影響到整個(gè)系統(tǒng)的性能。通過了解系統(tǒng)需求,選擇了8051型單片機(jī)。在編程方面,由于C語(yǔ)言較匯編語(yǔ)言有便于理解、記憶等優(yōu)點(diǎn),所以選用了C語(yǔ)言對(duì)單片機(jī)進(jìn)行編程。單片機(jī)的軟件分為五個(gè)狀態(tài):人工輸入等待狀態(tài)、自動(dòng)等待狀態(tài)、自動(dòng)測(cè)量狀態(tài)、捕捉狀態(tài)和同步狀態(tài)。系統(tǒng)狀態(tài)定義
77、表如表3.1所示:</p><p> 表3.1 系統(tǒng)狀態(tài)定義表</p><p> 單片機(jī)模塊主要使用了定時(shí)/計(jì)數(shù)器(T0和T1)及定時(shí)中斷。其中T0用作定時(shí)器,采用工作方式一,定時(shí)為50ms;T1用作計(jì)數(shù)器,用來(lái)測(cè)量輸入信號(hào)的頻率。在不執(zhí)行中斷程序時(shí),主程序檢測(cè)鍵盤是否按下。如有鍵按下,根據(jù)不同的按鍵,改變當(dāng)前的狀態(tài)利用中斷判斷當(dāng)前狀態(tài),執(zhí)行相應(yīng)的操作,就可以檢測(cè)鍵盤和控制其它模塊的工
78、作了。在T0的基礎(chǔ)上,T0中斷程序內(nèi)部使用一個(gè)減計(jì)數(shù)器,記錄中斷次數(shù)。通過判斷計(jì)數(shù)器是否為零,決定服務(wù)程序的執(zhí)行。</p><p> 在同步狀態(tài)下,單片機(jī)定時(shí)測(cè)量輸入信號(hào)的頻率,及時(shí)進(jìn)行跟蹤、捕捉和同步,實(shí)現(xiàn)控制鎖相環(huán)的目的。</p><p> 3.2 鍵盤模塊的設(shè)計(jì)與實(shí)現(xiàn)</p><p> 鍵盤的設(shè)計(jì)通常有兩種方法:鍵盤掃描法和鍵盤中斷法。在本設(shè)計(jì)中,采用了
79、另外一種設(shè)計(jì)方法,就是利用FPGA強(qiáng)大的邏輯單元,自己設(shè)計(jì)和調(diào)用所需的芯片。因?yàn)镸UX+PLUS II給FPGA設(shè)計(jì)帶來(lái)了很大的靈活性,并有著較強(qiáng)的混合設(shè)計(jì)方式。為實(shí)現(xiàn)不同的功能,它提供了大量的元器件和宏功能符號(hào)供設(shè)計(jì)人員使用。</p><p> 為了實(shí)時(shí)掃描鍵盤,必須為鍵盤制定一個(gè)和單片機(jī)可雙向傳輸?shù)慕涌冢喊裀0口作為抵制和數(shù)據(jù)的復(fù)用口,P1用于測(cè)頻控制,P3口用于中斷和計(jì)數(shù),P2口作為鍵盤的掃描口。連接情況
80、如表3.2所示:</p><p> 表3.2 鍵盤與單片機(jī)連接表</p><p> 3.2.1 設(shè)計(jì)中問題和解決方法</p><p> 在鍵盤的設(shè)計(jì)中,存在一些需要解決的問題。在本節(jié),將會(huì)給出這些問題的解決方法。</p><p> 1、查詢是否有鍵按下,首先單片機(jī)向行掃描P2.0~P2.3輸出全為“0”掃描碼FOH,然后從列檢查口P2
81、.4~P2.7輸出列掃描線好,只要有一列信號(hào)不為“1”,則表示有鍵按下。</p><p> 2、查詢按下鍵所在的位置。單片機(jī)將得到的信號(hào)去反,P2.4~P2.7中,為1的就是鍵所在的列;要確定鍵所在的行,就需要進(jìn)行逐行掃描。單片機(jī)首先使P2.0為“0”,P2.1~P2.7為“1”,即向P2口發(fā)送掃描碼FEH,接著輸入列檢查信號(hào),若全為“1”,表示不在第一行,接著使P2.1接地,其余為“1”,在讀入列信號(hào)……這樣
82、逐行發(fā)“0”掃描碼,直到找到按下鍵所在的行,將該掃描碼去反保留。</p><p> 3、對(duì)得到的列號(hào)和行號(hào)進(jìn)行譯碼,得到鍵值。</p><p> 4、當(dāng)用手按下一個(gè)鍵時(shí),往往會(huì)出現(xiàn)所按鍵在閉合位置和斷開位置之間跳動(dòng)幾下后才穩(wěn)定到閉合狀態(tài)的情況,這就是鍵的抖動(dòng)。在釋放一個(gè)鍵的時(shí)候,也會(huì)出現(xiàn)類似情況。這樣會(huì)引起對(duì)鍵的多次讀入。解決方法是當(dāng)單片機(jī)發(fā)現(xiàn)有鍵按下后,就立即停止逐行掃描,經(jīng)過延時(shí)(
83、約10ms)后在進(jìn)行。</p><p> 5、閉合鍵的多次讀入解決辦法??赡茉趯?shí)際操作中,為了防止“一次按鍵,多次掃描”的問題的發(fā)生,應(yīng)作如下處理:</p><p> a、應(yīng)設(shè)計(jì)存取區(qū)lastkey,以保存上一次的掃描鍵值。</p><p> b、掃描是否有鍵按下。如沒有,lastkey置零,表示此時(shí)鍵已松開或無(wú)鍵按下。</p><p>
84、; c、逐行掃描,得到鍵特征值。</p><p> d、將特征值與lastkey相比,若相等表示鍵松開,則重新掃描;否則,將特征值保存在lastkey中,作為下一次的比較對(duì)象。</p><p> e、根據(jù)得到的特征值,判斷按鍵執(zhí)行相應(yīng)的程序。</p><p> f、繼續(xù)掃描鍵盤有無(wú)鍵按下。</p><p> 3.2.2 鍵盤設(shè)計(jì)的軟
85、件設(shè)計(jì)</p><p> 通過對(duì)鍵盤模塊進(jìn)行具體描述后,下一步就應(yīng)當(dāng)用軟件編程來(lái)實(shí)現(xiàn)單片機(jī)鍵盤掃描的功能,掃描的程序如下(若無(wú)鍵按下,則返回值為(0):</p><p> uchar kbscan(void)</p><p> { uchar scode,record;</p><p><b> P2=0xF0;</b
86、></p><p> if ((P2&0xF0)!=0xF0)</p><p><b> { dlms();</b></p><p> if ((P2&0xF0)!=0xF0)</p><p> { scode=0xFE;</p><p> while((scode
87、&0x10)!=0</p><p> {P2=scode;</p><p> if ((P2&0xF0)!=0xF0)</p><p> { record=(P2&0xf0)|0xof;</p><p> ruturn((~scode)+(~record));</p><p><b
88、> }</b></p><p><b> else</b></p><p> scode=(scode<<1)|0x10;</p><p><b> }</b></p><p><b> }</b></p><p>
89、;<b> }</b></p><p> return(0);</p><p><b> }</b></p><p> 3.3 測(cè)頻、輸出顯示模塊的設(shè)計(jì)與實(shí)現(xiàn)</p><p> 在本節(jié)中,我們將測(cè)頻和輸出顯示模塊的設(shè)計(jì)與實(shí)現(xiàn)分開討論。</p><p> 3.3.1
90、 測(cè)頻部分</p><p> 測(cè)頻部分的設(shè)計(jì)和實(shí)現(xiàn)主要分為電路設(shè)計(jì)與軟件編程設(shè)計(jì)。</p><p> 3.3.1.1 測(cè)頻電路的設(shè)計(jì)實(shí)現(xiàn)</p><p> 根據(jù)單片機(jī)的原理,定時(shí)器/計(jì)數(shù)器在每個(gè)機(jī)器周期的S5P2期間采樣Tx腳輸入信號(hào),若一個(gè)機(jī)器周期的采樣值為1,下一個(gè)機(jī)器周期的采樣值為0,則計(jì)數(shù)器加1。由于識(shí)別一個(gè)高電平到低點(diǎn)平的跳變需要兩個(gè)機(jī)器周期,所以外
91、部計(jì)數(shù)脈沖的頻率應(yīng)小于fosc/24,且高電平與低電平的延續(xù)時(shí)間均不得小于一個(gè)機(jī)器周期。設(shè)計(jì)使用的單片機(jī),fosc=12MHz,所以測(cè)量頻率fin<fosc/24=500KHz。因此還要加入一個(gè)附加電路,起到一個(gè)二分頻的作用,這樣測(cè)量頻率就可達(dá)到1MHz。測(cè)頻電路和分頻電路如圖3.1所示:</p><p> 圖3.1 測(cè)頻電路和分頻電路</p><p> 3.3.1.2 測(cè)頻模塊
92、的軟件設(shè)計(jì)</p><p> 根據(jù)測(cè)頻電路的設(shè)計(jì)功能,對(duì)其進(jìn)行軟件那編程。</p><p> 首先,P16_ctrr發(fā)一個(gè)清零負(fù)脈沖,使U1、U2兩個(gè)D觸發(fā)器復(fù)位,其輸出封鎖與門G1和G2。接著由P17_ctrr發(fā)一個(gè)啟動(dòng)正脈沖,其有效上升沿使U1=1,門G1被開放。而后,被側(cè)脈沖上升通過G2送T1計(jì)數(shù);同時(shí)啟動(dòng)計(jì)時(shí)開始,直到定時(shí)結(jié)束,從P6_ctrr發(fā)一個(gè)負(fù)脈沖,清零U2,封鎖G2,
93、停止T/C1計(jì)數(shù),完成一次頻率采樣過程。</p><p> 測(cè)量T/C1定時(shí)時(shí)間為500ms,T/C0定時(shí)為100ms,程序5次中斷后的時(shí)間就是5100ms=500ms,中斷次數(shù)的計(jì)數(shù)值在precnt中。</p><p> T/C0定時(shí)的計(jì)數(shù)初值:03CB0H。計(jì)數(shù)1采用16位計(jì)數(shù)。設(shè)T/C0為高優(yōu)先級(jí),允許計(jì)數(shù)中斷過程定時(shí)中斷,即定時(shí)時(shí)間到就終止計(jì)數(shù)。</p><
94、p> 3.3.2 顯示部分</p><p> 為了讓使用者可以直觀的看到被跟蹤信號(hào)的頻率,所以在測(cè)頻后,加入了顯示模塊。由于顯示電路的數(shù)據(jù)由單片機(jī)提供,并且采用了動(dòng)態(tài)掃描方式進(jìn)行顯示,所以我們必須為單片機(jī)提供輸出鎖存器。并且在顯示電路的FPGA實(shí)現(xiàn)中,這里通過使用Verilog語(yǔ)言和圖形相結(jié)合的方法來(lái)設(shè)計(jì)實(shí)現(xiàn)現(xiàn)實(shí)模塊。</p><p> 在顯示電路中,我使用了MAX+PLUS
95、II軟件中的7448芯片,還根據(jù)實(shí)際需要設(shè)計(jì)掃描和數(shù)據(jù)鎖存口。</p><p> 3.3.2.1 7448芯片介紹</p><p> 7448芯片是一塊專用于7段數(shù)碼管的驅(qū)動(dòng)芯片,因?yàn)槠漭斎霝?421BCD碼,輸出為段顯示碼,所以被廣泛地應(yīng)用在顯示電路中。芯片模型如圖3.2所示:</p><p> 圖3.2 7448芯片模型</p><p
96、><b> 部分引腳功能如下:</b></p><p> 滅燈輸入BIN:BIN是特殊控制端,當(dāng)BI=0時(shí),無(wú)論其他輸入端是什么電平,所有各段輸出均為0。</p><p> 試燈輸入LTN:當(dāng)LT=0時(shí),無(wú)論其他輸入端是什么狀態(tài),所有各段輸出均為1,顯示為“8”。該端口主要用于測(cè)試數(shù)碼管的好壞。</p><p> 動(dòng)態(tài)滅零輸入RB
97、IN:當(dāng)LT=1,RBIN=0且輸入碼DCBA=0000時(shí),各段輸出均為低電平,與BCD碼對(duì)應(yīng)的字形熄零。</p><p> 由7448芯片組成的動(dòng)態(tài)掃描顯示原理圖如圖3.3所示。</p><p> 3.3.2.2 動(dòng)態(tài)掃描電路的軟件設(shè)計(jì)</p><p> 根據(jù)動(dòng)態(tài)掃描電路的功能與原理圖(圖3.3),下面對(duì)掃描顯示的外部電路進(jìn)行設(shè)計(jì)。電路圖如圖3.3 所試:&
98、lt;/p><p> 圖3.3 掃描顯示外部電路圖</p><p> 圖中l(wèi)adisplay模塊的輸入引腳分為以下兩部分:</p><p> 1、數(shù)據(jù)輸入控制部分:主要包括CS(片選)、WR(寫入)、ADD[2..0](內(nèi)部數(shù)據(jù)存儲(chǔ)器地址)、DATA[6..0](數(shù)據(jù)輸入)。</p><p> 2、掃描控制部分:主要包括clk(時(shí)鐘脈沖輸
99、入)、sel[7..0](數(shù)碼管選通)、bcdout[6..0](數(shù)碼管輸出)。</p><p> 根據(jù)本模塊的設(shè)計(jì)原理,需要在顯示部分開辟數(shù)據(jù)存儲(chǔ)區(qū),用來(lái)存放需要顯示的數(shù)據(jù)。根據(jù)計(jì)數(shù)器的值,選中所要亮的數(shù)碼管,然后將數(shù)據(jù)送到7448芯片的數(shù)據(jù)輸入端。設(shè)計(jì)程序如下:</p><p> always@(posedge wr)</p><p><b>
100、begin</b></p><p><b> if(!cs)</b></p><p><b> case(add)</b></p><p> ’d0:mymem[6:0]=data;</p><p> ’d1:mymem[13:7]=data;</p><p&
101、gt; ’d2:mymem[20:14]=data;</p><p> ’d3:mymem[27:21]=data;</p><p> ’d4:mymem[34:28]=data;</p><p> ’d5:mymem[41:35]=data;</p><p> ’d6:mymem[48:42]=data;</p>&
102、lt;p> ’d7:mymem[55:49]=data;</p><p><b> end case </b></p><p><b> end</b></p><p> always@(posedge clk)</p><p><b> begin</b>&l
103、t;/p><p><b> case(cnt)</b></p><p><b> ’d0:begin</b></p><p> qout=mymem[6:0];</p><p> sel=’b00000001;</p><p><b> end</b&g
104、t;</p><p><b> ’d1:begin</b></p><p> qout=mymem[13:7];</p><p> sel=’b00000010;</p><p><b> end</b></p><p><b> ’d2:begin<
105、;/b></p><p> qout=mymem[20:14];</p><p> sel=’b00000100;</p><p><b> end</b></p><p><b> ’d3:begin</b></p><p> qout=mymem[27:2
106、1];</p><p> sel=’b00001000;</p><p><b> end</b></p><p><b> ’d4:begin</b></p><p> qout=mymem[34:28];</p><p> sel=’b00010000;<
107、/p><p><b> end</b></p><p><b> ’d5:begin</b></p><p> qout=mymem[41:35];</p><p> sel=’b00100000;</p><p><b> end</b><
108、/p><p><b> ’d6:begin</b></p><p> qout=mymem[48:42];</p><p> sel=’b01000000;</p><p><b> end</b></p><p><b> ’d7:begin</b&g
109、t;</p><p> qout=mymem[55:49];</p><p> sel=’b10000000;</p><p><b> end</b></p><p><b> endcase</b></p><p> cnt=cnt+1;</p>
110、<p><b> end</b></p><p> 3.4鎖相環(huán)模塊的設(shè)計(jì)與實(shí)現(xiàn)</p><p> 鎖相環(huán)的基本結(jié)構(gòu)是由鑒相器、可編程K可逆計(jì)數(shù)器、脈沖加減電路和N分頻器四部分組成。可編程K可逆計(jì)數(shù)器和脈沖加減電路的時(shí)鐘分別為Mfc和2Nfc。這里的fc是環(huán)路中心頻率,一般情況下M和N都是2的整數(shù)冪。</p><p> 鑒相器
111、:在數(shù)字電子設(shè)計(jì)中,常用的鑒相器主要有異或門鑒相器(XORPD)和邊沿觸發(fā)式鑒相器(ECPD)。ECPD鑒相器的線性鑒相范圍為,線性增益或。XORPD檢相器的線性鑒相范圍為,線性增益或。兩者同時(shí)使用時(shí),可組成紋波抵消電路。在本設(shè)計(jì)中使用異或門鑒相器(XORPD)。</p><p> K變??赡嬗?jì)數(shù)器:此模塊中使用了一個(gè)可逆計(jì)數(shù)器Count,當(dāng)鑒相器的輸出信號(hào)DU為低時(shí),進(jìn)行加法運(yùn)算,達(dá)到預(yù)設(shè)模值則輸出進(jìn)位脈沖C
112、ARRY;為高時(shí),進(jìn)行減法運(yùn)算,為零時(shí),輸出錯(cuò)位脈沖BORROW。Count的模塊Ktop由輸入信號(hào)Kmode預(yù)設(shè),一般為2的整數(shù)冪,這里模塊的變化范圍是。模塊的大小決定了DPLL的跟蹤步長(zhǎng),模值越大,跟蹤步長(zhǎng)越小,鎖定時(shí)的相位誤差越小,但捕獲時(shí)間越長(zhǎng);模值越小,跟蹤步長(zhǎng)越大,鎖定時(shí)的相位誤差越大,但捕獲時(shí)間越短。</p><p> 脈沖加減電路(I/D線路):脈沖加減電路實(shí)現(xiàn)了對(duì)輸入信號(hào)頻率和相位的跟蹤和調(diào)整
113、,最終使輸出信號(hào)鎖定在輸入信號(hào)的頻率和信號(hào)上,從而達(dá)到同步的目的。</p><p> N分頻器:對(duì)脈沖加減電路的輸出IDOUT再進(jìn)行N分頻,得到整個(gè)環(huán)路的輸出信號(hào)Fout。同時(shí),因?yàn)閒c=IDCLOCK/2N,因此通過改變分頻值N可以得到不同的環(huán)路中心頻率fc。</p><p> 顯然,將I/D線路輸出接至外接的N分頻器,N次分頻后反饋至鑒相器輸入,其將是相位發(fā)生超前或滯后1/2N周期
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于fpga數(shù)字基帶信號(hào)設(shè)計(jì)
- 基于FPGA數(shù)字基帶信號(hào)設(shè)計(jì)初稿).docx
- 基于FPGA數(shù)字基帶信號(hào)設(shè)計(jì)定稿).docx
- 外文翻譯---基于fpga的數(shù)字基帶信號(hào)的矢量信號(hào)分析
- 外文翻譯---基于fpga的數(shù)字基帶信號(hào)的矢量信號(hào)分析
- 外文翻譯---基于fpga的數(shù)字基帶信號(hào)的矢量信號(hào)分析(譯文)
- 外文翻譯---基于fpga的數(shù)字基帶信號(hào)的矢量信號(hào)分析(英文)
- 基于單片機(jī)和fpga的位同步信號(hào)提?。ǜ匠绦颍井厴I(yè)設(shè)計(jì)論文】
- 基于FPGA數(shù)字基帶信號(hào)設(shè)計(jì)二稿).docx
- 畢業(yè)論文-基于fpga數(shù)字基帶信號(hào)設(shè)計(jì)【精校排版】
- 外文翻譯---基于FPGA的數(shù)字基帶信號(hào)的矢量信號(hào)分析(譯文).doc
- 外文翻譯---基于FPGA的數(shù)字基帶信號(hào)的矢量信號(hào)分析(譯文).doc
- 基于FPGA的基帶信號(hào)發(fā)生器的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 外文翻譯---基于FPGA的數(shù)字基帶信號(hào)的矢量信號(hào)分析(英文).pdf
- 外文翻譯---基于FPGA的數(shù)字基帶信號(hào)的矢量信號(hào)分析(英文).pdf
- 基于FPGA的UHF多協(xié)議RFID基帶信號(hào)處理.pdf
- 畢業(yè)設(shè)計(jì)-移動(dòng)通信系統(tǒng)中數(shù)字基帶信號(hào)的處理
- 北斗基帶信號(hào)的同步技術(shù)的研究.pdf
- OFDM基帶信號(hào)處理系統(tǒng)的FPGA實(shí)現(xiàn).pdf
- 基于FPGA的寬帶基帶信號(hào)高速濾波處理技術(shù)的研究.pdf
評(píng)論
0/150
提交評(píng)論