基于FPGA的數(shù)字通信實現(xiàn)多路數(shù)據(jù)時分復用和解復用系統(tǒng)系統(tǒng)_第1頁
基于FPGA的數(shù)字通信實現(xiàn)多路數(shù)據(jù)時分復用和解復用系統(tǒng)系統(tǒng)_第2頁
基于FPGA的數(shù)字通信實現(xiàn)多路數(shù)據(jù)時分復用和解復用系統(tǒng)系統(tǒng)_第3頁
基于FPGA的數(shù)字通信實現(xiàn)多路數(shù)據(jù)時分復用和解復用系統(tǒng)系統(tǒng)_第4頁
基于FPGA的數(shù)字通信實現(xiàn)多路數(shù)據(jù)時分復用和解復用系統(tǒng)系統(tǒng)_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、摘 要本設計實現(xiàn)多路數(shù)據(jù)時分復用和解復用系統(tǒng)。設計分為發(fā)端和收端,以FPGA作為主控核心。發(fā)端系統(tǒng)有三路并行數(shù)據(jù)輸入:A/D轉(zhuǎn)換數(shù)據(jù),撥碼開關1路和撥碼開關2路。這三路數(shù)據(jù)在FPGA的控制下作為串行碼分時輸出。發(fā)端FPGA包括分頻模塊、復用模塊和電壓顯示模塊。在收端,串行數(shù)據(jù)進入FPGA,并由FPGA提取位時鐘,識別幀同步并解復用發(fā)端打包的三路碼。收端的FPGA包括數(shù)字鎖相環(huán)模塊、解復用模塊和電壓顯示模塊。發(fā)端FPGA輸入有三路8-bit數(shù)據(jù):第一路為A/D數(shù)據(jù)、第二路和第三路是撥碼開關產(chǎn)生的數(shù)據(jù),另外插入一路巴克碼。這四路碼組成一幀,由FPGA對其時分復用。A/D輸入端的模擬信號的電壓值通過

2、FPGA處理,顯示在數(shù)碼管上。在收端,F(xiàn)PGA首先提取位同步,然后識別幀同步,一旦識別出幀同步,F(xiàn)PGA分別解復用三路數(shù)據(jù)。本文詳細闡述了此系統(tǒng)的設計方法,制作過程以及制作過程中的問題。設計者的工作包括:系統(tǒng)各部分電路元件的確定、確定系統(tǒng)框圖、畫出系統(tǒng)原理圖、根據(jù)原理圖設計FPGA的RTL代碼、綜合、仿真RTL代碼、設計PCB板和在線調(diào)試FPGA功能。關鍵字:數(shù)字鎖相環(huán);幀同步;時分復用;Verilog HDL語言;串行A/D變換;AbstractThe system is designed for data multiplexed and de-multiplexed. It is base

3、d on TDM. The system includes the transmitter and the receiver. They are implemented mainly by FPGA. There are three inputs in the transmission system: data from A/D converter, DIP1 and DIP2. The three channels are out serially and time-divisional under the FPGAs control. The FPGA in the transmitter

4、 is divided into four modules which are frequency divider, Barker generator, data multiplexer and voltage display. Voltage display is used for processing the data converted by ADC and sending it to the LED. The serial data are serial shifted into the FPGA in the receiver. Bit-synchronize and frame-s

5、ynchronize are both picked up, and then de-multiplex. The FPGA in the receiver is divided into three modules which are digital PLL, data de-multiplexer and voltage display. The transmitter will multiplex four ways of 8-bit parallel data. The first way is ADC data, the second and the third way is gen

6、erated by dip-key. The other is Barker code used for frame synchronizing. The receiver will maintain the bit synchronizing, recognize one frame and de-multiplex three ways data. The essay will discuss the design progress, the programming idea and some problems.Works have to be done by the designer a

7、re:Specify all system components, Make system specification, Draw system schematics, Write RTL code according the schematics, Synthesis and simulate the RTL code, Design the PCBs, Validate the functions of the FPGA on-line.Keywords:DPLL; Frame-synchronize; TDM; Verilog HDL; Serial A/D convert;目 錄引言1

8、1 數(shù)字復接系統(tǒng)簡介12 數(shù)字復接方法及方式22.1 數(shù)字復接的方法22.2 數(shù)字復接的方式23 系統(tǒng)原理和各模塊設計23.1 系統(tǒng)原理及框圖23.2 發(fā)端系統(tǒng)設計33.3 收端系統(tǒng)設計53.4 FPGA的設計流程73.4.1 設計輸入73.4.2 設計綜合83.4.3 仿真驗證83.4.4 設計實現(xiàn)83.4.5 時序分析83.5 發(fā)端FPGA設計93.5.1 分頻模塊103.5.2 復接模塊113.5.3 顯示模塊123.5.4 編譯與仿真143.6 收端FPGA設計153.6.1 數(shù)字鎖相模塊163.6.2 解復用模塊173.6.3 顯示模塊183.6.4 編譯與仿真183.7 數(shù)字鎖相環(huán)

9、原理及設計193.8 串行A/D工作原理213.9 并行D/A的工作原理223.10 Altera Flex10K10介紹234 系統(tǒng)調(diào)試285 QuartusII軟件及Verilog語言簡介285.1 QuartusII軟件簡介285.2 Verilog語言簡介306 結(jié)論31謝辭32參考文獻33附錄34引言數(shù)字復接、分接技術發(fā)展到80年代已經(jīng)趨于成熟,形成了完善的EI、TI系列。它使得多路低速信號可以在高速信道中傳輸,同時提高信道的利用率。PLD/FPGA是電子設計領域中最具活力和發(fā)展前途的一項技術,它的影響絲毫不亞于70年代單片機的發(fā)明和使用??梢院敛豢鋸埖闹v,PLD/FPGA能完成任何

10、數(shù)字器件的功能,上至高性能CPU,下至簡單的74電路,都可以用PLD/FPGA來實現(xiàn)。PLD/FPGA如同一張白紙或是一堆積木,工程師可以通過傳統(tǒng)的原理圖輸入法,或是硬件描述語言自由的設計一個數(shù)字系統(tǒng)。通過軟件仿真,我們可以事先驗證設計的正確性。在PCB完成以后,還可以利用PLD/FPGA的在線修改能力,隨時修改設計而不必改動硬件電路。使用PLD/FPGA來開發(fā)數(shù)字電路,可以大大縮短設計時間,減少PCB面積,提高系統(tǒng)的可靠性。PLD/FPGA的這些優(yōu)點使得PLD/FPGA技術在90年代以后得到飛速的發(fā)展,同時也大大推動了EDA軟件和硬件描述語言的進步。本設計主要利用了FPGA及Verilog

11、HDL語言來設計數(shù)字復、接分接系統(tǒng)。1 數(shù)字復接系統(tǒng)簡介在數(shù)字通信網(wǎng)中,為了擴大傳輸容量和提高傳輸效率常常需要把若干個低速數(shù)字信號合并成為一個高速數(shù)字信號,然后再通過高速信道傳輸,這就是所謂的數(shù)字復接技術。數(shù)字復接是一種已經(jīng)非常成熟的技術,廣泛地應用于無線通信、光通信和微波接力通信。圖1-1 數(shù)字復接系統(tǒng)方框圖如圖1-1所示,數(shù)字復接系統(tǒng)包括數(shù)字復接器(digital multiplexer)和數(shù)字分接器(digital de-multiplexer)兩部分。數(shù)字復接器是把兩個或多個低速的支路數(shù)字信號按照時分復用方式合并成為一路高速的合路數(shù)字信號的設備;數(shù)字分接器是把合路數(shù)字信號分解為原來的支

12、路數(shù)字信號的設備。數(shù)字復接器是由定時、調(diào)整和復接單元所組成;數(shù)字分接器是由同步、定時、分接和恢復單元所組成。定時單元給設備提供統(tǒng)一的基準時間信號,同步單元給分接器提供與復接器基準時間同步的時間信號,調(diào)整單元負責同步輸入的各支路信號?;謴蛦卧c調(diào)整單元相對,負責把分接出來的各支路信號復原。2 數(shù)字復接方法及方式2.1 數(shù)字復接的方法數(shù)字復接的方法主要有按位復接、按字復接和按幀復接三種。(1)按位復接按位復接的方法是每次只復接每一個支路的一位碼。復接后,碼序列中的第一位表示第一路中的第一位碼;第二位表示第二路的第一位碼;以此類推,第N位表示第N路的第一位碼。這N位碼形成第一時隙。同樣,第二時隙是有

13、每路的第二位碼復接而成。這種復接方法的特點是設備簡單、只需小容量存儲,易于實現(xiàn)。(2)按字復接按字復接就是每次復接支路的一個字或字節(jié)。復接后的碼順序是每個時隙為一路n位碼。它的特點是利于多路合成和處理,但要求有較大的存儲容量,使得電路較為復雜。(3)按幀復接這種方法是每次復接一個之路的一幀數(shù)碼,它的特點是復接時不破壞原來的幀結(jié)構(gòu),有利于交換,但要求有更大的存儲容量。2.2 數(shù)字復接的方式按照復接時各低速信號的情況,復接方式可分為同步復接、異步復接與準同步復接。(1)同步復接同步復接被復接的各個支路信號在時間上是完全同步的。在實際應用中,由于各個支路信號到達的時間不一樣,造成支路間的碼位相位不同

14、,使得信息不能被正確復接。因此需要對支路進行相位調(diào)整。在復接時,要插入幀同步碼及其它的業(yè)務碼。(2)異步復接將沒有統(tǒng)一標稱頻率的不同支路數(shù)字信號進行復接的方式成為異步復接。在數(shù)字通信中廣泛采用這種復接方式。(3)準同步復接準同步復接是指參與復接的各個低速信號使用各自的時鐘,但各支路的時鐘需要在一定的容差范圍內(nèi)。準同步復接實際上是在同步復接的基礎上增加了碼速調(diào)整功能。3 系統(tǒng)原理和各模塊設計3.1 系統(tǒng)原理及框圖首先介紹系統(tǒng)的工作過程。此數(shù)字通信系統(tǒng)分為發(fā)端和收端兩部分。在發(fā)端,F(xiàn)PGA對A/D變換數(shù)據(jù)、DIP1數(shù)據(jù)和DIP2數(shù)據(jù)插入幀同步碼,形成一幀,對此幀按位時分復用并串行發(fā)送出去。同時,A

15、/D輸入端的模擬電壓值將通過FPGA的處理,顯示在七段數(shù)碼管上。在收端,F(xiàn)PGA首先從串行碼中提取位時鐘,然后識別幀同步。當識別出幀同步后,F(xiàn)PGA解復用三路并行碼,分別將這三路并行碼送到后面的D/A變換器、LED1和LED2。同時,第一路并行碼通過FPGA的處理,顯示到七段數(shù)碼管上。傳輸幀結(jié)構(gòu)如圖3-1所示:圖3-1 傳輸幀結(jié)構(gòu)總系統(tǒng)框圖如圖3-2所示:圖3-2 總系統(tǒng)框圖3.2 發(fā)端系統(tǒng)設計圖3-3是發(fā)端系統(tǒng)方框圖圖3-3 發(fā)端系統(tǒng)方框圖如圖3-3所示,發(fā)端有三路信號:A/D變換信號、撥碼開關1和撥碼開關2產(chǎn)生的8位信碼。A/D變換的信碼經(jīng)過FPGA處理顯示到七段譯碼管上,它代表變換前模擬

16、信號的電壓值。由于三路信號都是靜態(tài)信號,因此輸入不用進行碼速變換和碼速調(diào)整。輸出信號的碼速率為256Kbps。發(fā)端電路在做PCB時需要單層布線,因此將發(fā)端系統(tǒng)板做成三塊小板,分為三個圖,分別是發(fā)端主圖、A/D變換圖和LED顯示圖。發(fā)端主圖如3-4所示,以發(fā)端FPGA為核心,其它功能塊逐一實現(xiàn)。為了FPGA運行的穩(wěn)定,要在其周圍加入6個濾波電容,電容值為0.1uF。撥碼開關與排阻共同構(gòu)成八位信碼,分別接到FPGA的8個I/O端口。復位電路是系統(tǒng)正常運行的必要部分,它由按鍵開關,電解電容和電阻構(gòu)成。主圖板與AD變換板、LED顯示板之間用插針和電線連接。這些插針和電線將為A/D變換板和LED顯示板提

17、供電源和通信路徑。此外,F(xiàn)PGA還需要配置電路。配置電路在開機時將配置文件載入到FPGA中,F(xiàn)PGA才可以工作。配置電路由上拉電阻和插座組成,其中,五個端口接到FPGA五個配置引腳,他們是:DATA0、nSTATUS、nCONFIG、CONF_DONE與DCLK。圖3-4發(fā)端主圖原理圖A/D變換圖如圖3-5所示,要說明的是,這里沒有采用并行A/D,而是采用了串行A/D,這樣可以節(jié)省FPGA的管腳。我使用的ADC型號是TLC549。TLC549轉(zhuǎn)換輸入端模擬量為數(shù)字量,為FPGA提供串行數(shù)據(jù)。這塊板的電源由主圖板提供,電源端接到主圖板的電源端。TLC549需要一片0.1uF的陶瓷電容為芯片的電源

18、端濾波。在做PCB時,這片電容應靠近芯片的VCC與GND。TLC549的模擬輸入量有電位器分壓和外部輸入,通過單刀雙擲開關選擇。外部輸入的模擬量可以是信號源輸出,音頻輸入等。圖3-5 A/D變換圖LED顯示圖如圖3-6所示,我用五位LED顯示模擬電壓值。它可以提供0.0001的顯示精度。這五位LED由一位獨立LED和一個四LED組組成。這五個LED采用掃描方式顯示。掃描顯示是LED顯示的常用方法。通過五個PNP管控制五個LED分時發(fā)光,時隙為32ms。在此時隙下,人眼不會察覺到LED分別點亮,而是同時在亮。此法不僅節(jié)省七段譯碼驅(qū)動芯片和FPGA的管腳,而且節(jié)約電能。小數(shù)點的位置固定不變,因此只

19、需將獨立LED的小數(shù)點設計為常亮。LED數(shù)碼管采用共陽極,公共端接PNP發(fā)射極,PNP集電極接電源,PNP的導通由FPGA控制。七段譯碼芯片采用DM74LS47,它是一片驅(qū)動共陽極LED數(shù)碼管的芯片。同樣,在這片芯片的VCC與GND之間加入0.1uF陶瓷濾波電容。圖3-6 LED顯示圖3.3 收端系統(tǒng)設計收端系統(tǒng)框圖如圖3-7所示:圖3-7 收端系統(tǒng)框圖收端系統(tǒng)分為兩部分:收端主圖和D/A變換圖。收端主圖如圖3-8所示,與發(fā)端主圖有相似之處。收端FPGA同樣需要加入濾波電容,復位電路和配置電路。解復用后的第二路與第三路數(shù)據(jù)通過兩組8個LED燈反映出來。另外,為周邊板提供電源和數(shù)據(jù)接口的插針也要

20、設計出來。如果將各模塊直接用線連起來會很復雜,因此采用網(wǎng)標的連接方式。圖3-8 收端主圖D/A變換圖如圖3-9所示,采用的D/A芯片是DAC0830。它受控于FPGA的DAC_STROBE端口,負責將第一路碼轉(zhuǎn)換為模擬信號并輸出到外部接口。0.1uF的濾波電容也是必要的。圖3-9 D/A變換圖3.4 FPGA的設計流程電路的原理圖畫好后,便可以根據(jù)各模塊的特點,性能和限制條件來設計FPGA了。FPGA設計分為設計輸入、綜合、功能仿真(前仿真)、實現(xiàn)、時序仿真(后仿真)、配置下載等六個步驟,設計流程如圖3-10所示。圖3-10 FPGA設計流程下面分別介紹各個設計步驟。3.4.1 設計輸入設計輸

21、入包括使用硬件描述語言HDL、狀態(tài)圖與原理圖輸入三種方式。HDL設計方式是現(xiàn)今設計大規(guī)模數(shù)字集成電路的良好形式,除IEEE標準中VHDL與Verilog HDL兩種形式外,尚有各自FPGA廠家推出的專用語言,如Quartus下的AHDL。HDL語言描述在狀態(tài)機、控制邏輯、總線功能方面較強,使其描述的電路能特定綜合器(如Synopsys公司的FPGA Compiler II或FPGA Express)作用下以具體硬件單元較好地實現(xiàn);而原理圖輸入在頂層設計、數(shù)據(jù)通路邏輯、手工最優(yōu)化電路等方面具有圖形化強、單元節(jié)儉、功能明確等特點,另外,在Altera公司Quartus軟件環(huán)境下,可以使用Momor

22、y Editor對內(nèi)部memory進行直接編輯置入數(shù)據(jù)。常用方式是以HDL語言為主,原理圖為輔,進行混合設計以發(fā)揮二者各自特色。通常,F(xiàn)PGA廠商軟件與第三方軟件設有接口,可以把第三方設計文件導入進行處理。如Quartus與Foundation都可以把EDIF網(wǎng)表作為輸入網(wǎng)表而直接進行布局布線,布局布線后,可再將生成的相應文件交給第三方進行后續(xù)處理。3.4.2 設計綜合綜合,就是針對給定的電路實現(xiàn)功能和實現(xiàn)此電路的約束條件,如速度、功耗、成本及電路類型等,通過計算機進行優(yōu)化處理,獲得一個能滿足上述要求的電路設計方案。也就是是說,被綜合的文件是HDL文件(或相應文件等),綜合的依據(jù)是邏輯設計的描

23、述和各種約束條件,綜合的結(jié)果則是一個硬件電路的實現(xiàn)方案,該方案必須同時滿足預期的功能和約束條件。對于綜合來說,滿足要求的方案可能有多個,綜合器將產(chǎn)生一個最優(yōu)的或接近最優(yōu)的結(jié)果。因此,綜合的過程也就是設計目標的優(yōu)化過程,最后獲得的結(jié)構(gòu)與綜合器的工作性能有關。3.4.3 仿真驗證從廣義上講,設計驗證包括功能與時序仿真和電路驗證。仿真是指使用設計軟件包對已實現(xiàn)的設計進行完整測試,模擬實際物理環(huán)境下的工作情況。前仿真是指僅對邏輯功能進行測試模擬,以了解其實現(xiàn)的功能否滿足原設計的要求,仿真過程沒有加入時序信息,不涉及具體器件的硬件特性,如延時特性;而在布局布線后,提取有關的器件延遲、連線延時等時序參數(shù),

24、并在此基礎上進行的仿真稱為后仿真,它是接近真實器件運行的仿真。3.4.4 設計實現(xiàn)實現(xiàn)可理解為利用實現(xiàn)工具把邏輯映射到目標器件結(jié)構(gòu)的資源中,決定邏輯的最佳布局,選擇邏輯與輸入輸出功能連接的布線通道進行連線,并產(chǎn)生相應文件(如配置文件與相關報告)。通??煞譃槿缦挛鍌€步驟:(1)轉(zhuǎn)換:將多個設計文件進行轉(zhuǎn)換并合并到一個設計庫文件中。(2)映射:將網(wǎng)表中邏輯門映射成物理元素,即把邏輯設計分割到構(gòu)成可編程邏輯陣列內(nèi)的可配置邏輯塊與輸入輸出塊及其它資源中的過程。 (3)布局與布線:布局是指從映射取出定義的邏輯和輸入輸出塊,并把它們分配到FPGA內(nèi)部的物理位置,通?;谀撤N先進的算法,如最小分割、模擬退火

25、和一般的受力方向張弛等來完成;布線是指利用自動布線軟件使用布線資源選擇路徑試著完成所有的邏輯連接。因最新的設計實現(xiàn)工具是時序驅(qū)動的,即在器件的布局布線期間對整個信號通道執(zhí)行時序分析,因此可以使用約束條件操作布線軟件,完成設計規(guī)定的性能要求。在布局布線過程中,可同時提取時序信息形成報靠。(4)時序提?。寒a(chǎn)生一反標文件,供給后續(xù)的時序仿真使用。(5)配置:產(chǎn)生FPGA配置時的需要的位流文件。在實現(xiàn)過程中可以進行選項設置。因其支持增量設計,可以使其重復多次布線,且每次布線利用上一次布線信息以使布線更優(yōu)或達到設計目標。在實現(xiàn)過程中應設置默認配置的下載形式,以使后續(xù)位流下載正常。3.4.5 時序分析在設

26、計實現(xiàn)過程中,在映射后需要對一個設計的實際功能塊的延時和估計的布線延時進行時序分析;而在布局布線后,也要對實際布局布線的功能塊延時和實際布線延時進行靜態(tài)時序分析。從某種程序來講,靜態(tài)時序分析可以說是整個FPGA設計中最重要的步驟,它允許設計者詳盡地分析所有關鍵路徑并得出一個有次序的報告,而且報告中含有其它調(diào)試信息,比如每個網(wǎng)絡節(jié)點的扇出或容性負載等。靜態(tài)時序分析器可以用來檢查設計的邏輯和時序,以便計算各通中性能,識別可靠的蹤跡,檢測建立和保持時間的配合,時序分析器不要求用戶產(chǎn)生輸入激勵或測試矢量。雖然Xilinx與Altera在FPGA開發(fā)套件上擁有時序分析工具,但在擁有第三方專門時序分析工具

27、的情況下,僅利用FPGA廠家設計工具進行布局布線,而使用第三方的專門時序分析工具進行時序分析,一般FPGA廠商在其設計環(huán)境下皆有與第三方時序分析工具的接口。Synopsys公司的PrimeTime是一個很好的時序分析工具,利用它可以達到更好的效果。將綜合后的網(wǎng)表文件保存為db格式,可在PrimeTime環(huán)境下打開。利用此軟件查看關鍵路徑或設計者感興趣的通路的時序,并對其進行分析,再次對原來的設計進行時序結(jié)束,可以提高工作主頻或減少關鍵路徑的延時。與綜合過程相似,靜態(tài)時序分析也是一個重復的過程,它與布局布線步驟緊密相連,這個操作通常要進行多次直到時序約束得到很好的滿足。在綜合與時序仿真過程中交互

28、使用PrimeTime進行時序分析,滿足設計要求后即可進行FPGA芯片投片前的最終物理驗證。3.4.6 下載驗證下載是在功能仿真與時序仿真正確的前提下,將綜合后形成的位流下載到具體的FPGA芯片中,也叫芯片配置。FPGA設計有兩種配置形式:直接由計算機經(jīng)過專用下載電纜進行配置;由外圍配置芯片進行上電時自動配置。因FPGA具有掉電信息丟失的性質(zhì),因此可在驗證初期使用電纜直接下載位流,如有必要再將燒錄配置芯片中(如Xilinx的XC18V系列,Altera的EPC2系列)。使用電纜下載時有多種直載方式,如對Xilinx公司的FPGA下載可以使用JTAG Programmer、Hardware Pr

29、ogrammer、PROM Programmer三種方式,而對Altera公司的FPGA可以選擇JTAG方式或Passive Serial方式。因FPGA大多支持IEEE的JTAG標準,所以使用芯片上的JTAG口是常用下載方式。將位流文件下載到FPGA器件內(nèi)部后進行實際器件的物理測試即為電路驗證,當?shù)玫秸_的驗證結(jié)果后就證明了設計的正確性。電路驗證對FPGA投片生產(chǎn)具有較大意義。下面將根據(jù)FPGA的設計流程來進行本設計。3.5 發(fā)端FPGA設計在原理圖做好之后。就可以設計FPGA了。我所使用的設計軟件是Altera 的QuartusII,所使用的FPGA是Altera的FLEX10K10。首先

30、,根據(jù)發(fā)端FPGA所要完成的功能將設計分為三個子模塊。它們是系統(tǒng)分頻模塊、復接模塊和顯示模塊。設計細分如圖3-11:如圖3-11 發(fā)端FPGA設計細分發(fā)端采用同步設計,所有觸發(fā)器均使用系統(tǒng)時鐘,分頻模塊輸出全部接到觸發(fā)器的使能端。這樣的設計可以避免使用行波時鐘。行波時鐘不能被時序分析器分析,將被排除出時序邏輯。行波時鐘還會使后續(xù)電路產(chǎn)生亞穩(wěn)態(tài)。因此應盡量避免使用行波時鐘。發(fā)端頂層如圖3-12所示,圖3-12 發(fā)端FPGA頂層下面將介紹各模塊的作用。3.5.1 分頻模塊分頻模塊的作用是將系統(tǒng)時鐘2.048MHz進行分頻,生成其它模塊所需要的時鐘,并將這些時鐘接到系統(tǒng)觸發(fā)器的使能端。在設計中,分頻

31、模塊輸出有“CLK_DIV_50P”、“EN”和“EN_SCAN” 。其中,“CLK_DIV_50P”用來作為串行A/D的控制信號,“EN”是時鐘頻率為256KHz的窄脈沖時鐘信號,它用來作復接時鐘?!癊N_SCAN”是用來做LED掃描控制的方波時鐘,頻率是32Hz。圖3-13是分頻器的寄存器傳輸級電路圖,圖3-13 分頻器傳輸級電路圖分頻模塊的設計思想實現(xiàn)計數(shù)器。計數(shù)器實現(xiàn)循環(huán)計數(shù),當達到某個計數(shù)值時,相應輸出寄存器改變邏輯狀態(tài)。模塊中的計數(shù)器有counter_q和counter1_q。當counter_q計滿時自動歸零,EN輸出變?yōu)椤?”,否則,EN為“0”。當counter1_q計滿數(shù)時

32、,自動歸零,EN_SCAN變?yōu)椤?”,否則EN_SCAN為“0”。CLK_DIV_50P的頻率與EN相同,不同的是CLK_DIV_50P是方波,而EN是窄脈沖。3.5.2 復接模塊復接模塊的作用是時分復用三路數(shù)據(jù)碼、插入幀同步碼。此模塊還有一個作用是控制串行A/D工作。復接模塊的寄存器傳輸級電路圖如圖3-14,圖3-14 復接模塊寄存器傳輸級電路圖復接模塊的核心也是自歸零計數(shù)器。每一個輸出都是在相對應的計數(shù)值下完成的,每一次串行A/D的控制是在計數(shù)器達到某些計數(shù)值時完成。因此,可以將計數(shù)器看成是復接模塊的控制中心。復用過程由模32定時計數(shù)器控制。當計數(shù)值在07時,串行輸出幀同步碼;計數(shù)值在81

33、5時,給A/D送CS控制信號和位時鐘信號,將串行A/D的數(shù)據(jù)鎖存并輸出,同時給顯示模塊送控制信號和鎖存后的A/D數(shù)據(jù);計數(shù)值在1623時,串行輸出第二路碼;計數(shù)值在2431時,串行輸出第三路碼。幀同步碼是11110010,它作為幀頭,其后跟著三路數(shù)據(jù)碼。3.5.3 顯示模塊顯示模塊用來將模擬信號的電壓顯示出來。它由分頻模塊和復接模塊共同控制。顯示模塊又分為三個子模塊:乘法模塊、二進制到BCD轉(zhuǎn)換模塊和顯示掃描模塊。顯示模塊頂層如圖3-15圖3-15 顯示模塊頂層乘法模塊作用是根據(jù)8位A/D轉(zhuǎn)換標度,一共256個量化值,值與值之間的步長是5/2560.0195,A/D所能顯示的最小電壓值是0.0

34、195伏的將其擴大10000倍并與A/D數(shù)據(jù)相乘得到16位的數(shù)據(jù)。乘法模塊的電路圖如圖3-16,圖3-16 乘法模塊電路圖二進制到BCD轉(zhuǎn)換模塊對乘法模塊產(chǎn)生的16位數(shù)據(jù)進行減法運算,對相應的寄存器進行累加運算,加法的最終結(jié)果就是BCD碼。此BCD碼的表示范圍是099999。因此A/D顯示精度可達0.0001。相比之下,另一種轉(zhuǎn)換方法是查表法。查表法是將范圍內(nèi)的所有二進制數(shù)的BCD碼一一列舉出來,二進制數(shù)相當于地址,而BCD數(shù)就是地址中的內(nèi)容。這兩種方法各有千秋。查表法速度快,只需要一個時鐘周期時間,但是程序冗長,編寫工作量大,同時占用大量的FPGA資源,是典型的面積換速度;計算法速度慢,數(shù)值

35、越大,轉(zhuǎn)換時間越長。但程序簡潔易懂,不占用太多資源。對于此設計系統(tǒng),系統(tǒng)時鐘為2.048MHz,計算速度已經(jīng)不是問題了,而電路面積是要考慮的。因此,我選擇應用計算法。二進制轉(zhuǎn)換為BCD碼的算法圖見圖3-17,圖3-17 二進制轉(zhuǎn)換為BCD碼的算法圖見輸入的二進制數(shù)不會超過萬位。先將它與10000比較。如果大于或等于10000,則將其減去10000并對寄存器組BCD_OUT19:16加一。每做一次這樣的運算需要一個時鐘周期。如此循環(huán)直到二進制數(shù)字小于一萬。之后,將二進制數(shù)與1000比較,過程與前面相同,累加的寄存器組為BCD_OUT15:12。依此類推,直到二進制數(shù)減為零。這時的寄存器組BCD_

36、OUT19:0的數(shù)值就是轉(zhuǎn)換后的BCD值。此值被輸出到顯示掃描模塊。顯示掃描模塊用來按時隙依次輸出四位BCD碼。由于設計一共用到5個LED七段譯碼管,因此控制字為5位,用來分時控制五個PNP三極管導通。在每個三極管導通時,將對應的四位BCD碼送出到74LS47譯碼??刂谱植捎玫碗娖接行?,通過一個5位的循環(huán)移位寄存器來控制。顯示掃描模塊的電路圖如圖3-18,圖3-18 顯示掃描模塊的電路圖3.5.4 編譯與仿真整個發(fā)端的FPGA就是由這些模塊組成的。設計結(jié)束后將代碼進行編譯。QuartusII中的編譯是整合式的,它將代碼編譯、芯片適配、布局布線和時間分析在一個工具中一并完成了,相當于完成了一次設

37、計迭代。這使得功能仿真和時序仿真可以出現(xiàn)在綜合和實現(xiàn)之后,有時功能仿真就變得不是那么重要了,而是直接進行時序仿真。這樣可以節(jié)省很多時間。發(fā)端FPGA的實現(xiàn)結(jié)果如下:+-+; Fitter Summary ;+-+-+; Fitter Status ; Successful - Tue May 17 12:55:07 2005 ; Quartus II Version ; 4.2 Build 157 12/07/2004 SJ Full Version ; Revision Name ; trans_top ; Top-level Entity Name ; trans_top ; Family

38、 ; FLEX10K ; Device ; EPF10K10LC84-4 ; Timing Models ; Final ; Total logic elements ; 404 / 576 ( 70 % ) ; Total pins ; 31 / 59 ( 52 % ) ; Total memory bits ; 0 / 6,144 ( 0 % ) ;+-+-+一旦編譯成功,就可以進入仿真階段了。由于設計的層次不復雜,模塊不多。因此直接在頂層進行時序仿真。仿真時序圖如圖3-19圖3-19 仿真時序圖這個時序圖描述了發(fā)端FPGA的工作情況。EN是256KHz的窄脈沖信號,它的每一個脈沖代表復接

39、計數(shù)器計數(shù)一次。圖中前八個脈沖所對應的輸出正好是幀同步碼,接下去SERIAL_A/D_IO輸出控制脈沖,每一個控制脈沖控制串行A/D輸出一個數(shù)據(jù)到輸出端。之后的八個脈沖控制第二路信號輸出,再后面的八個控制第三路。軟件仿真的缺點是仿真時間不能設置太長,否則會占用巨額的內(nèi)存,計算機性能急劇下降。用軟件仿真一些可測的功能后,應該用硬件進行全面的驗證。3.6 收端FPGA設計收端分為三個子模塊:數(shù)字鎖相模塊,解復用模塊和顯示模塊。其設計細分如圖3-20。在數(shù)字碼輸入FPGA后,首先通過數(shù)字鎖相模塊提取位時鐘,在位時鐘控制下,數(shù)碼被輸送到解復用模塊提取出幀同步并解復用出三路信碼。解復用模塊將第一路A/D

40、數(shù)據(jù)送到顯示模塊并控制外部DAC工作。圖3-20 收端FPGA設計細分收端FPGA頂層如圖3-21圖3-21 收端FPGA頂層下面對各模塊作出詳細介紹。3.6.1 數(shù)字鎖相模塊數(shù)字鎖相模塊是根據(jù)圖3-1全數(shù)字鎖相環(huán)結(jié)構(gòu)圖設計的,分為三個模塊:K模增減計數(shù)器、加減脈沖控制器和N分頻計數(shù)器。這個數(shù)字鎖相模塊是基于加減脈沖方法的,輸入信碼與鎖相輸出信碼進行異或,異或的結(jié)果作為相位誤差。如果異或結(jié)果為“1”,K模計數(shù)器減計數(shù),否則加計數(shù)。加計數(shù)或減計數(shù)會產(chǎn)生進位或借位,相應控制加減脈沖控制器加脈沖或減脈沖。脈沖又通過后面的N分頻計數(shù)器進行分頻,分頻輸出就是鎖相輸出結(jié)果,它是提取出來的位時鐘。N分頻計數(shù)

41、器的分頻值是可以設置的,它與系統(tǒng)時鐘和信碼位時鐘有關。一般,系統(tǒng)時鐘=2N*fc,fc是輸入信碼的中心頻率。我在接收端設計中用一片2.048MHz的有源晶振作系統(tǒng)時鐘,fc為256KHz,那么,N應該設置為4。K??赡嬗嫈?shù)器的模值K應大于M/4。因為M=2N,K應大于2。K值越大,捕捉帶越小,鎖定時間越長。值得指出的是,在環(huán)路鎖定狀態(tài)下,由于可逆計數(shù)器的連續(xù)計數(shù),或在噪聲的干擾下,會產(chǎn)生進位和借位脈沖。如果K值取得太小,則可逆計數(shù)器因頻繁地循環(huán)計數(shù)而產(chǎn)生進位或借位脈沖,這就導致了在環(huán)路的輸出端出現(xiàn)相位抖動。為了減少這種相位抖動,K值必須取大于M/4。由以上分析可知,模K的取值要適當。K取得大,

42、對抑制噪聲、減少相位抖動有利,但同時又加大了環(huán)路進入鎖定狀態(tài)的時間。反之,K取得小,可以加速環(huán)路的鎖定,而對噪聲的抑制能力卻隨之降低。在此設計中,K取7。圖3-22描述了鎖相模塊的仿真結(jié)果。圖3-22 鎖相模塊的仿真結(jié)果3.6.2 解復用模塊此模塊為同步設計,時鐘端接系統(tǒng)時鐘,使能端接鎖相模塊的位時鐘輸出。解復用模塊的作用是從信碼中提取幀同步,對三路碼解復用并控制D/A轉(zhuǎn)換器工作。模塊使能信號要求是系統(tǒng)時鐘寬度的脈沖,而鎖相模塊提供的是方波。此方波信號進入模塊后立即被微分,然后,接到后續(xù)觸發(fā)器。模塊中有一個8位的全局移位寄存器。它受控于系統(tǒng)時鐘和使能信號,工作于256KHz。它作為幀同步識別和

43、解復用的緩存。模塊中另外兩個核心是解復用允許寄存器和解復用計數(shù)器。解復用允許寄存器受控于使能信號、巴克碼識別信號和復用結(jié)束信號。當解復用寄存器為“1”時,解復用計數(shù)器開始計數(shù),在某個特定的計數(shù)值到來時,將全局移位寄存器中的8位碼送到相應的輸出端口或發(fā)D/A控制信號。計數(shù)器計到最后一個值時,即代表解復用結(jié)束,解復用允許寄存器清零,計數(shù)器歸零。解復用模塊的電路圖如圖3-23圖3-23 解復用模塊電路圖3.6.3 顯示模塊顯示模塊與發(fā)端的相同,在這里略去。3.6.4 編譯與仿真收端FPGA的實現(xiàn)結(jié)果如下:+-+; Fitter Summary ;+-+-+; Fitter Status ; Succ

44、essful - Fri May 20 14:58:27 2005 ; Quartus II Version ; 4.2 Build 157 12/07/2004 SJ Full Version ; Revision Name ; rcv_top ; Top-level Entity Name ; rcv_top ; Family ; FLEX10K ; Device ; EPF10K10LC84-4 ; Timing Models ; Final ; Total logic elements ; 464 / 576 ( 80 % ) ; Total pins ; 37 / 59 ( 62 %

45、 ) ; Total memory bits ; 0 / 6,144 ( 0 % ) ;+-+-+仿真圖如圖3-24,我們可以看出,三路數(shù)據(jù)被正確的解復用了。圖3-24 收端FPGA仿真圖3.7 數(shù)字鎖相環(huán)原理及設計本設計在接收端要實現(xiàn)位同步,我選用了數(shù)字鎖相環(huán)來實現(xiàn)這一功能??紤]到這是一個全數(shù)字部件,因此將它以RTL代碼的形式描述出來并整合到FPGA中。下面先介紹數(shù)字鎖相環(huán)的原理。全數(shù)字鎖相環(huán)路的結(jié)構(gòu)框圖如圖3-25所示圖3-25 全數(shù)字鎖相環(huán)結(jié)構(gòu)圖其中數(shù)字鑒相器由異或門構(gòu)成,數(shù)字環(huán)路濾波器由變模可逆計數(shù)器構(gòu)成,數(shù)控振蕩器由加/減脈沖控制器和除計數(shù)器組成??赡嬗嫈?shù)器和加/減脈沖控制器的時鐘頻

46、率分別為Mf0和2Nf0。這里f0是環(huán)路的中心頻率,一般情況下M和N為2的整數(shù)次冪。相應波形如圖3-26所示。圖3-26 異或門檢相器工作波形當環(huán)路瑣定時,u1和u2正交,鑒相器的輸出信號ud為50%占空比的方波,此時定義相位誤差為零。在這種情況下,可逆計數(shù)器加與減的周期相同,只要可逆計數(shù)器的k值足夠大(kM/4),其輸出端就不會產(chǎn)生進位或借位脈沖。這時,加/減脈沖控制器只對其時鐘2Nf0進行二分頻,使u1和u2的相位保持正交。在環(huán)路未鎖定的情況下,若ud0時,它使可逆計數(shù)器向上加計數(shù),并導致進位脈沖產(chǎn)生,進位脈沖作用到加/減脈沖控制器的加控制端i,該控制器便在二分頻過程中加入半個時鐘周期。反

47、之,若ud1,可逆計數(shù)器減計數(shù),并將發(fā)出借位脈沖到加/減脈沖控制器的減輸入端d,于是,該控制器便在二分頻的過程中減去半個周期。這個過程是連續(xù)發(fā)生的。加/減脈沖控制器的輸出經(jīng)過除計數(shù)器后,使得本地估算信號u2的相位受到調(diào)整控制,最終達到鎖定狀態(tài)。3.8 串行A/D工作原理發(fā)端系統(tǒng)的第一路信碼是串行A/D輸出的信號,這片8位串行A/D是Ti公司的TLC549。如圖圖3-27 TLC549串行A/D它基于CMOS工藝,最大轉(zhuǎn)換時間17us,每秒的訪問次數(shù)可達40000次,輸入電壓的范圍36V,功耗低于15mW。僅有兩個控制端,I/O CLOCK與CS同時控制數(shù)據(jù)的輸入,I/O CLOCK的最大輸入時

48、鐘為1.1MHz。在TLC549內(nèi)部有一個4MHz的時鐘,這個片上時鐘使得片內(nèi)電路的工作獨立于外部數(shù)據(jù)時鐘的時序,而且片內(nèi)時鐘與I/O CLOCK時鐘不要求有任何的相位同步。片內(nèi)時鐘與I/O CLOCK配合工作實現(xiàn)數(shù)據(jù)的高速傳輸與轉(zhuǎn)換。它的工作時序圖如圖3-28。首先,CS端口出現(xiàn)低電平并持續(xù)tsu時間,這時數(shù)據(jù)的最高位A7出現(xiàn)在數(shù)據(jù)端口,接著I/O CLOCK端輸入7個脈沖,將數(shù)據(jù)的A6到A0位串行輸出。tsu最小值等于ten為1.4us。CS高電平將啟動轉(zhuǎn)換,這時CS要保持17us確保轉(zhuǎn)換完成。這樣,一次轉(zhuǎn)換到全部數(shù)據(jù)輸出所用的時間為25us。需要注意的是,A7是在CS變低電平時輸出的,A

49、6、A5、A4和A3在前四個I/O CLOCK的下降沿輸出,這是A/D的訪問周期,A2、A1和A0在后三個I/O CLOCK的下降沿輸出,最后一個I/O CLOCK下降沿使A/D進入保持運行階段。保持階段將持續(xù)4個內(nèi)部時鐘,然后CS必須變高電平或者I/O CLOCK必須在之后的36個內(nèi)部時鐘(17us)時間內(nèi)保持低電平,否則A/D將與微控器失步。如果在轉(zhuǎn)換期間CS變低電平,這將取消本次轉(zhuǎn)換。圖3-28 TLC549的工作時序圖3.9 并行D/A的工作原理發(fā)端D/A的型號是DAC0830,它是一片8位并行D/A。它基于CMOS電流開關電路和控制邏輯,耗能極低,只有20mW,輸出兼容TTL電路。它

50、內(nèi)部有雙緩沖器結(jié)構(gòu),可以轉(zhuǎn)換一路信號的同時,鎖存另一路信號。這使得多個DAC0830可以時分復用。圖3-29 DAC0830DAC0830的雙緩沖工作原理很簡單,ILE保持高電平,XFER與CS同時變?yōu)榈碗娖?,接著WR1與WR2同時變?yōu)榈碗娖?,將?shù)據(jù)寫入雙緩沖器并轉(zhuǎn)換。如圖3-30 DAC電路圖,3-31時序圖。圖3-30 DAC電路圖圖3-31 DAC工作時序3.10 Altera Flex10K10介紹經(jīng)過十幾年的發(fā)展,許多公司都開發(fā)出了多種類型的可編程邏輯器件。所謂的復雜可編程邏輯器件(CPLD,即Complex Programmable Logic Device)是在PAL,GAL等邏

51、輯器件的基礎之上發(fā)展起來的。同以往的PAL、GAL等相比較,CPLD的規(guī)模比較大,適合于時序、組合邏輯電路應用場合,它可以替代幾十甚至上百塊通用IC芯片。這樣的CPLD實際上就是一個子系統(tǒng)部件。這種芯片具有可編程性和實現(xiàn)方案容易改動的特點。由于芯片內(nèi)部硬件連接關系的描述可以存在磁盤、ROM、EPROM、PROM中,因而在可編程門陣列芯片及外圍電路保持不動的情況下,換一塊EPROM芯片,就能實現(xiàn)一種新的功能。當今比較典型的有Xilinx公司的FPGA和Altera公司的CPLD期間系列。本設計所采用的就是Altera公司的EPF10K10LC84-4芯片。FLEX 10K是工業(yè)界第一個嵌入式的P

52、LD,由于其具有高密度、低成本、的功率等特點,所以脫穎而出成為當今Altera CPLD中應用前景最后的器件系列。到目前為止,F(xiàn)LEX 10K系列以推出了FLEX 10K、FLEX 10KA、FLEX 10KB、FLEX 10KV、FLEX 10KE等5中分支系列,其集成度也以達到了前所未有的250000門。FLEX 10K系列采用重復可找的CMOS SRAM工藝,把連續(xù)的快速通道互連與獨特的嵌入式陣列結(jié)構(gòu)相結(jié)合,同時也結(jié)合了眾多可編程器件的優(yōu)點來完成普通門陣列的宏功能。每個FLEX 10K器件還包括一個嵌入式陣列合一個邏輯陣列,它能讓設計人員情勢地開發(fā)出集存儲器、數(shù)字信號處理器及特殊強大功能

53、與一身地芯片。出外,F(xiàn)LEX 10K所具有的多電壓(Multivolt)功能可以全面支持以不同電壓工作的產(chǎn)品,同時它還備有多款封裝供設計者選擇,其中包括纖薄四方扁平封裝合球體柵格封裝等。該系列采用0.5mCMOSSRAM或0.25mCMOSSRAM(10K10E系列)集成電路制造工藝制造。 (1)特點:具有700031000個可用門、6144位RAM、720個觸發(fā)器和最大I/O數(shù)150在線可重配置可預測在線時間延遲的布線結(jié)構(gòu)實現(xiàn)加法器和計數(shù)器的專用進位通道3.3V和5V電源MAX+PLUS軟件支持自動布線和布局84到562個引腳的各種封裝(2)常用型號:EPF10K10,EPF10K20,EP

54、F10K30,EPF10K40,EPF10K50,EPF10K70,EPF10K100表3-1 FLEX10K10管腳采用ALTERA公司10K10PLCC84 腳器件。使用有源晶振增強線路板抗干擾性。一般稱呼上還是有講究的: 有源的那種應該稱為“晶振”,一般有4個管腳。無源的那種應該稱為“晶體”,一般有2個管腳。使用有源和無源形成震蕩電路各有優(yōu)缺點:有源晶振容易起振,接上電源和地就可以使用,但是體積一般較小。無源晶體震蕩電路中的輔助電容、起振反饋電阻、或反向器一旦出 現(xiàn)異常就會影響震蕩電路,所以常常會出現(xiàn)無法起振的問題, 但是一般體積小,頻率的精度高。采用三種不同的配置方式對 ALTERA 公司的 10K10 芯片進行配置,如:使用 JTAG 接口通過EDA 軟件下載到 10K10 器件中;使用 PS MODE 接口通過

溫馨提示

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

評論

0/150

提交評論