武漢理工大學(xué)FPGA神器第八章_第1頁(yè)
武漢理工大學(xué)FPGA神器第八章_第2頁(yè)
武漢理工大學(xué)FPGA神器第八章_第3頁(yè)
武漢理工大學(xué)FPGA神器第八章_第4頁(yè)
武漢理工大學(xué)FPGA神器第八章_第5頁(yè)
已閱讀5頁(yè),還剩148頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第八章第8章 FPGA設(shè)計(jì)實(shí)踐 內(nèi)容提要 n 本章介紹了Xilinx公司的Spartan IIE最小系統(tǒng)板和Altera公司的APEX DSP最小系統(tǒng)板,BGA封裝印制板設(shè)計(jì);n FPGA與LED、LCD顯示、與8位ADC、與8位DAC接口電路與VHDL控制程序,F(xiàn)PGA構(gòu)成的URAT接口電路與程序,ASK、FSK、PSK、MASK、MFSK、MPSK調(diào)制與解調(diào)程序;n 介紹了產(chǎn)生單極性歸零碼(RZ碼)、差分碼、分相碼(曼徹斯特碼)碼、交替極性碼(AMI)等碼形的基帶碼發(fā)生器程序;n 介紹了數(shù)字式頻率計(jì)、八音電子琴、電子時(shí)鐘、自動(dòng)售貨機(jī)、電梯控制器、出租車計(jì)價(jià)器、多功能波形發(fā)生器、步進(jìn)電機(jī)定位

2、控制系統(tǒng)設(shè)計(jì)要求、系統(tǒng)組成、模塊設(shè)計(jì)、VHDL程序與仿真。知識(shí)要點(diǎn)n FPGA最小系統(tǒng)板n 印制板設(shè)計(jì)n LED、LCD顯示n A/D與 D/A轉(zhuǎn)換器n 基帶碼發(fā)生器n 數(shù)字信號(hào)調(diào)制與解調(diào)n FPGA應(yīng)用教學(xué)建議n 本章的重點(diǎn)是掌握FPGA的設(shè)計(jì)與應(yīng)用。通過(guò)學(xué)習(xí)本章所提供的設(shè)計(jì)例,掌握FPGA開發(fā)軟件、設(shè)計(jì)方法和技巧。本章應(yīng)用實(shí)例的VHDL程序與仿真分析都在隨書提供的光盤中,可以作為學(xué)習(xí)的參考。建議學(xué)時(shí)數(shù)為26學(xué)時(shí)。注意:本章的內(nèi)容比較豐富,建議在前面章節(jié)教學(xué)時(shí),結(jié)合本章的實(shí)例進(jìn)行介紹,重點(diǎn)講解幾個(gè)設(shè)計(jì),剩余的設(shè)計(jì)例可以作為練習(xí)題,由學(xué)生自己完成。FPGA的設(shè)計(jì)應(yīng)用具有強(qiáng)的實(shí)踐性,紙上談兵是不

3、行的,必須通過(guò)大量的工程實(shí)踐才能夠了解。每個(gè)設(shè)計(jì)者的風(fēng)格不同,理解、使用VHDL語(yǔ)言的程度不同,所設(shè)計(jì)的VHDL程序是不同的。8.1 FPGA最小系統(tǒng)板設(shè)計(jì) Xilinx FPGA最小系統(tǒng)板設(shè)計(jì) n 為了方便用戶更快、更好使用FPGA器件,Xilinx和許多第3方公司針對(duì)不同系列的FPGA器件,開發(fā)了一系列的評(píng)估板,提供給用戶使用。n 下面以Jacyl Technology公司開發(fā)的Spartan IIE最小系統(tǒng)板(型號(hào):LT-50K)為例,介紹FPGA最小系統(tǒng)板的基本特性。 n Jacyl Technology公司開發(fā)的Spartan E最小系統(tǒng)板采用Xilinx Spartan E XC2

4、S50E-6PQ208 FPGA ,n 具有與PC/104 總線和IEEE 1149.1 JTAG完全兼容的接口, 可提供100個(gè)可編程的I/O接口,n 在最小板上具有100MHz的振蕩器可提供FPGA全局時(shí)鐘,具有2個(gè)用戶可定義的時(shí)鐘輸入端,n 使用Xilinx XC18V02串行在系統(tǒng)可編程配置PROM,2個(gè)用戶可定義的LED和開關(guān),可通過(guò)PC/104總線或者外部DC電源供電,由Xilinx公司免費(fèi)的Webpack 軟件支持,n 系統(tǒng)板尺寸3.55”3.775”,外部電源電壓5 14VDC(200mA)。 Jacyl Technology公司開發(fā)的Spartan E最小系統(tǒng)板的電路方框圖如

5、下圖所示圖8.1.1最小系統(tǒng)板的電路圖8.1.2元器件布局圖圖8.1.3 Spartan E 最小系統(tǒng)板的尺寸圖 圖8.1.4實(shí)物圖n 更詳細(xì)的內(nèi)容可登錄:.網(wǎng)站查詢。8.1.2 Altera FPGA最小系統(tǒng)板設(shè)計(jì)Altera FPGA最小系統(tǒng)板設(shè)計(jì)n Altera公司與Xilinx公司一樣,為了方便用戶更快、更好使用FPGA器件,Altera和許多第3方公司針對(duì)不同系列的FPGA器件,開發(fā)了一系列的評(píng)估板,提供給用戶使用。n 下面以Altera公司開發(fā)的APEX DSP最小系統(tǒng)板為例,介紹FPGA最小系統(tǒng)板的基本特性。 FPGA最小系統(tǒng)板的基本特性n Altera公司開發(fā)的APEX DSP

6、最小系統(tǒng)板采用652 BGA封裝的APEX EP20K200E-1X FPGA器件,n analog 公司的AD9203ARU(10-bit, 40-MSPS )A/D轉(zhuǎn)換器,n TI公司的THS5651AIPW( 10-bit, 100-MSPS )D/A 轉(zhuǎn)換器,n 具有2個(gè)10 ns 異步 64K16 SRAM(型號(hào)為IDT71V016SA), n 在板配置采用16 Mbit EPC16 flash配置器件,n 具有150個(gè)用戶I/O接口,RS232串行接口,n 使用ByteBlasterMV下載電纜下載配置數(shù)據(jù),調(diào)試通道使用3.3V邏輯分析儀,n 具有用戶可定義的7個(gè)開關(guān)和3個(gè)LED,

7、板上具有振蕩器,n 并具有外部振蕩器輸入引腳端,采用單5V電源供電圖8.1.5Altera公司開發(fā)的APEX DSP最小系統(tǒng)板電路方框圖元器件布局圖、尺寸圖、實(shí)物圖等更詳細(xì)的內(nèi)容可登錄 網(wǎng)站查詢。 8.1.3 BGA封裝印制板設(shè)計(jì)BGA封裝印制板設(shè)計(jì)n 球柵陣列封裝,簡(jiǎn)稱BGA(Ball Grid Array Package)。n BGA封裝技術(shù)可以增加I/O引腳數(shù),而不減小引腳間距,從而提高了組裝成品率;n 采用可控塌陷芯片法焊接,可以改善它的電熱性能,具有更加快速和有效的散熱途徑;n 厚度和重量都較TSOP等封裝技術(shù)有所減少;n 寄生參數(shù)減小,信號(hào)傳輸延遲小,使用頻率大大提高;n 組裝可用

8、共面焊接,可靠性高。n 但BGA封裝仍然存在著占用基板面積較大的問(wèn)題。n Xilinx公司的Spartan-、Spartan-E 、Virtex-、Virtex-Pro、Virtex-ProX系列FPGA器件,和Altera公司的FLEX、ACEX1K、APEX、Mercury、Excalibur、Stratix系列FPGA器件中的一些型號(hào)都采用BGA封裝。n 下面以Xilinx公司的產(chǎn)品為例介紹BGA封裝印制板設(shè)計(jì)。1.0 mm Fine-Pitch BGA引腳端分布 Xilinx 公司的fine-pitch BGA 封裝有FG1156, FG900, FG676, FG456, FG256

9、等形式,信號(hào)引腳端為多行分布在周邊,電源和地引腳端成組分布,引腳端詳細(xì)分布情況 請(qǐng)登錄 www. X 網(wǎng)站查詢。圖8.1.6 Xilinx公司推薦的焊盤設(shè)計(jì)圖 Xilinx公司推薦的焊盤設(shè)計(jì)典型數(shù)值 印制板設(shè)計(jì)例 Xilinx 公司的fine-pitch BGA 封裝有FG1156, FG900, FG676, FG456, FG256等形式,印制板的設(shè)計(jì)布局也不同,印制板層數(shù)從2層板到6層板都有。 推薦的多層板的信號(hào)分布 采用FG900封裝的XCV1600E的6層板設(shè)計(jì)8.2 FPGA對(duì)LED顯示器的控制 LED數(shù)碼管的工作原理圖8.2.1數(shù)碼管LED數(shù)碼管用8段發(fā)光二極管來(lái)顯示數(shù)字,每一段

10、都是一個(gè)發(fā)光二極管,如圖8.2.1所示。一般把所有段的相同一端相連,連接到地(共陰極接法)或者是連接到電源(共陽(yáng)極接法)。 共陰LED數(shù)碼管的公共端連接到地,另一端分別接一個(gè)限流電阻后再接到控制電路的信號(hào)端,當(dāng)信號(hào)端為高電平時(shí),該段即被點(diǎn)亮,否則不亮。共陽(yáng)極接法則相反,公共端連接到電源,另一端分別接一個(gè)限流電阻后再接到控制電路的信號(hào)端,只有信號(hào)端為低電平時(shí)才被點(diǎn)亮,否則不亮。 n 在數(shù)字邏輯電路中,可用74LS48(共陽(yáng))/74LS49(共陰)譯碼驅(qū)動(dòng)電路來(lái)控制LED顯示。在FPGA中,用硬件描述語(yǔ)言設(shè)計(jì)一個(gè)譯碼驅(qū)動(dòng)器,例如進(jìn)行一個(gè)74LS48的功能設(shè)計(jì)。n 由于FPGA和硬件描述語(yǔ)言的靈活性

11、,可以設(shè)計(jì)出能顯示更多內(nèi)容的譯碼驅(qū)動(dòng)模塊。 FPGA實(shí)現(xiàn)LED靜態(tài)顯示控制圖8.2.2數(shù)碼管靜態(tài)顯示運(yùn)用硬件描述語(yǔ)言(如VHDL)設(shè)計(jì)一個(gè)顯示譯碼驅(qū)動(dòng)器,即將要顯示的字符譯成8段碼。由于FPGA有相當(dāng)多的引腳端資源,如果顯示的位數(shù)N較少,可以直接使用靜態(tài)顯示方式,即將每一個(gè)數(shù)碼管都分別連接到不同的8個(gè)引腳線上,共需要8N條引腳線控制,如圖8.2.2所示。 采用FPGA實(shí)現(xiàn)LED數(shù)碼管動(dòng)態(tài)顯示控制n N個(gè)LED數(shù)碼管以靜態(tài)方式顯示時(shí),需用到8N條引腳線。在較為復(fù)雜的系統(tǒng)中,F(xiàn)PGA的引腳端資源是有限的。因此對(duì)于多個(gè)LED數(shù)碼管顯示,可以采用掃描方式來(lái)實(shí)現(xiàn)LED數(shù)碼管動(dòng)態(tài)顯示。n 實(shí)現(xiàn)方法是依次點(diǎn)

12、亮各個(gè)LED數(shù)碼管,循環(huán)進(jìn)行顯示,即一個(gè)數(shù)碼管顯示之后另一個(gè)數(shù)碼管馬上顯示,利用人眼的視覺(jué)暫留特性,可以到多個(gè)數(shù)碼管同時(shí)顯示的效果。n 采用掃描方式來(lái)實(shí)現(xiàn)LED數(shù)碼管動(dòng)態(tài)顯示,控制好數(shù)碼管之間的延時(shí)是相當(dāng)重要。n 根據(jù)人眼視覺(jué)暫留原理,LED數(shù)碼管每秒的導(dǎo)通16次以上,人眼就無(wú)法分辨LED數(shù)碼管短暫的不亮,認(rèn)為是一直點(diǎn)亮的(其實(shí)LED數(shù)碼管是以一定頻率在閃動(dòng)的)。n 但是,延時(shí)(導(dǎo)通頻率)也不是越小越好,因?yàn)長(zhǎng)ED數(shù)碼管達(dá)到一定亮度需要一定時(shí)間。n 如果延時(shí)控制的不好則會(huì)出現(xiàn)閃動(dòng),或者亮度不夠。據(jù)經(jīng)驗(yàn),延時(shí)0.005秒可以達(dá)到滿意的效果。n 修改延時(shí),亦能得到更多的顯示效果,如加長(zhǎng)延時(shí),使得數(shù)

13、碼管顯示一小段時(shí)間,再點(diǎn)亮下一個(gè),即可得到數(shù)碼管逐個(gè)顯示的效果。n 另外,顯示的字符有變化時(shí),可在延時(shí)到達(dá)后送一個(gè)低電平(共陰極數(shù)碼管)讓LED數(shù)碼管先短暫熄滅,再顯示下一個(gè)字符,可使在視覺(jué)上字符的變化更清晰。 FPGA實(shí)現(xiàn)LED動(dòng)態(tài)方式顯示的控制電路圖8.2.3 FPGA實(shí)現(xiàn)LED動(dòng)態(tài)方式顯示的控制電路FPGA驅(qū)動(dòng)LED靜態(tài)顯示程序(1)n library IEEE;n use IEEE.STD_LOGIC_1164.ALL;n use IEEE.STD_LOGIC_ARITH.ALL;n use IEEE.STD_LOGIC_UNSIGNED.ALL;n entity decoder is

14、n Port (seg:in std_logic_vector(3 downto 0 ); -四位二進(jìn)制碼輸入n q3:out std_logic_vector(6 downto 0) ); -輸出LED七段碼n end decoder;n architecture Behavioral of decoder isn beginFPGA驅(qū)動(dòng)LED靜態(tài)顯示程序(1)n process(seg)n beginn case seg isn when 0000 = q3 q3 q3 q3 q3 q3 q3 q3 q3 q3 q3=1111111;n end case; end process; end

15、 Behavioral;FPGA驅(qū)動(dòng)LED動(dòng)態(tài)顯示(4位)n entity dynamic isn Port ( clk,reset: in std_logic;n din1 : in std_logic_vector(6 downto 0);-譯碼后的數(shù)據(jù)信號(hào)1 n din2 : in std_logic_vector(6 downto 0); -譯碼后的數(shù)據(jù)信號(hào)2n din3 : in std_logic_vector(6 downto 0); -譯碼后的數(shù)據(jù)信號(hào)3n din4 : in std_logic_vector(6 downto 0); -譯碼后的數(shù)據(jù)信號(hào)4n shift: ou

16、t std_logic_vector(3 downto 0); -位選信號(hào)n bus4 : out std_logic_vector(6 downto 0); -數(shù)據(jù)信號(hào)n end dynamic;n architecture Behavioral of dynamic isn signal scan_clk:std_logic_vector(1 downto 0);n process(clk,scan_clk,reset) -分頻進(jìn)程n variable scan:std_logic_vector(17 downto 0);n beginn if reset=1 then scan:=000

17、000000000000000;n scan_clk=00;n elsif clkevent and clk=1then scan:=scan+1;n end if;n scan_clk bus4=din1;shiftbus4=din2;shiftbus4=din3;shiftbus4=din4;shift bus4=0000000;shiftnext_state=st1;ale=0;start=0;ennext_state=st2;ale=1;start=0;ennext_state=st3;ale=0;start=1;en ale=0;start=0;en=0; if eoc=1 then

18、 next_state=st3; -檢測(cè)EOC的下降沿 else next_state ale=0;start=0;en=0; if eoc=0 then next_state=st4; -檢測(cè)EOC的上升沿 else next_statenext_state=st6;ale=0;start=0;ennext_state=st0;ale=0;start=0;en=1;regl next_state=st0;ale=0;start=0;en=0;n end case;分頻模塊(clock)n clock:process(clk) -對(duì)系統(tǒng)時(shí)鐘進(jìn)行分頻,得到ADC0809轉(zhuǎn)換工作時(shí)鐘n begin

19、n if clkevent and clk=1 then qq=qq+1; -在clk1的上升沿,轉(zhuǎn)換至下一狀態(tài)n if QQ=01111111 THEN clk1=1; current_state =next_state; n elsif qq=01111111 then clk1=0;n end if; n end if;n end process;n q=regl; abc_out=abc_in; n end behav; 8.5 TLC5510接口電路及程序設(shè)計(jì) TLC5510與FPGA接口電路 n TLC5510是CMOS、8位、20MSPS模擬/數(shù)字轉(zhuǎn)換器(ADC),它利用了半閃速

20、結(jié)構(gòu)。TLC5510用單5V電源工作,消耗功率100mW(典型值),具有內(nèi)部采樣和保持電路,具有高阻抗方式的并行口以及內(nèi)部基準(zhǔn)電阻(內(nèi)部基準(zhǔn)電阻使用VDDA可以產(chǎn)生標(biāo)準(zhǔn)的2V滿度轉(zhuǎn)換范圍)。n 與閃速轉(zhuǎn)換器(flash converters)相比,半閃速結(jié)構(gòu)減少了功率損耗和晶片尺寸。通過(guò)在2步過(guò)程(2-step process)中實(shí)現(xiàn)轉(zhuǎn)換,可大大減少比較器的數(shù)目。轉(zhuǎn)換數(shù)據(jù)的等待時(shí)間為2.5個(gè)時(shí)鐘。 FPGA與TLC5510的接口電路圖圖8.5.1 FPGA與TLC5510的接口電路圖TLC5510與FPGA接口電路圖的注釋n FPGA_IO1提供TLC5510工作時(shí)鐘。n FPGA_IO29接

21、收TLC5510的采樣數(shù)據(jù)。n FPGA_IO10為TLC5510提供輸出使能信號(hào)OE,低電平有效。 TLC5510與FPGA接口應(yīng)用電路元器件 。TLC5510 VHDL采樣控制程序設(shè)計(jì) TLC5510時(shí)序圖 8.5.2 TLC5510時(shí)序圖 n TLC5510是以流水線的工作方式進(jìn)行工作的。n 它在每一個(gè)CLK(時(shí)鐘)周期都啟動(dòng)一次采樣,完成一次采樣;每次啟動(dòng)采樣是在CLK的下降沿進(jìn)行,不過(guò)采樣轉(zhuǎn)換結(jié)果的輸出卻在2.5CLK周期后,如果計(jì)算上輸出延時(shí)td(D),從采樣到輸出需經(jīng)2.5*CLK+ td(D)。對(duì)于需要設(shè)計(jì)的采樣控制器,可以認(rèn)為,每加一個(gè)采樣CLK周期,A/D就輸出一個(gè)采樣數(shù)據(jù)

22、。n 可以通過(guò)對(duì)FPGA系統(tǒng)時(shí)鐘進(jìn)行分頻得到一個(gè)與TLC5510的工作周期相一致的CLK1送入TLC5510,就可以對(duì)TLC5510實(shí)現(xiàn)控制 TLC5510 VHDL采樣控制程序 TLC5510采樣控制程序電路符號(hào) TLC5510 VHDL采樣控制程序n library ieee;n use ieee.std_logic_1164.all;n entity tlc5510 is n port(clk :in std_logic; -系統(tǒng)時(shí)鐘n oe :out std_logic; -TLC5510的輸出使能/OEn clk1:out std_logic; -TLC5510的轉(zhuǎn)換時(shí)鐘n din:

23、in std_logic_vector(7 downto 0); -來(lái)自TLC5510的采樣數(shù)據(jù)n dout:out std_logic_vector(7 downto 0);-FPGA數(shù)據(jù)輸出n end tlc5510;n architecture behav of tlc5510 isn signal q:integer range 3 downto 0;n beginn process(clk) -此進(jìn)程中,把CLK 進(jìn)行4分頻,得到TLC5510的轉(zhuǎn)換時(shí)鐘n beginn if clkevent and clk=1 then n if q=3 then q=0;n else q=2 t

24、hen clk1=1; -對(duì)系統(tǒng)CLK進(jìn)行4分頻n else clk1=0;n end if;n end process;n oe=0; -輸出使能賦低電平 n dout=din; -采樣數(shù)據(jù)輸出 n end behav;8.6 DAC0832接口電路及程序設(shè)計(jì)DAC0832 接口電路設(shè)計(jì) n DAC0832是采用CMOS/Si-Cr工藝實(shí)現(xiàn)的8位D/A轉(zhuǎn)換器。n 該芯片包含8位輸入寄存器、8位DAC寄存器、8位D/A轉(zhuǎn)換器。n DAC0832中有兩級(jí)鎖存器,第一級(jí)即輸入寄存器,第二級(jí)即DAC寄存器,可以工作在雙緩沖方式下。 FPGA與DAC0832接口電路原理圖圖8.6.1 FPGA與DAC

25、0832接口電路原理圖FPGA與DAC0832接口電路設(shè)計(jì)n FPGA_IO18向DAC0832的數(shù)據(jù)輸入口(DI0DI7)輸送數(shù)據(jù)。n FPGA_IO9提供DAC0832數(shù)據(jù)鎖存允許控制信號(hào)ILE,高電平有效。n FPGA_IO10提供DAC0832控制信號(hào)(CS:片選信號(hào);Xfer:數(shù)據(jù)傳輸控制信號(hào);WR1、WR2:DAC寄存器寫選通信號(hào)),低電平有效。n Iout1、Iout2、Rfb與運(yùn)算放大器LM324完成電流/電壓的轉(zhuǎn)換(DAC0832屬電流輸出型)。DAC0832 接口電路程序設(shè)計(jì)DAC0832 輸出控制時(shí)序圖 圖8.6.2 DAC0832 輸出控制時(shí)序圖DAC0832 時(shí)序 n

26、 根據(jù)DAC0832 輸出控制時(shí)序,利用接口電路圖,通過(guò)改變輸出數(shù)據(jù)設(shè)計(jì)一個(gè)鋸齒波發(fā)生器。DAC0832是8位的D/A轉(zhuǎn)換器,轉(zhuǎn)換周期為1s。鋸齒波形數(shù)據(jù)可以由256個(gè)點(diǎn)構(gòu)成,每個(gè)點(diǎn)的數(shù)據(jù)長(zhǎng)度為8位。又因?yàn)镕PGA的系統(tǒng)時(shí)鐘為50MHz,必須對(duì)其進(jìn)行分頻處理,這里進(jìn)行64分頻,得到的鋸齒波的頻率為762.9Hz。DAC0832接口電路輸出控制程序 DAC0832輸出控制接口電路程序符號(hào)圖 DAC0832 接口電路程序 n -文件名:DAC0832.VHDn -功能:產(chǎn)生頻率為762.9Hz的鋸齒波。n -最后修改日期:2004.3.18。n library ieee;n use ieee.st

27、d_logic_1164.all;n use ieee.std_logic_unsigned.all;n use ieee.std_logic_arith.all;n entity DAC0832 isn port(clk:in std_logic; -系統(tǒng)時(shí)鐘n rst:in std_logic; -復(fù)位信號(hào)n ile:out std_logic; -數(shù)據(jù)鎖存允許信號(hào)n cont:out std_logic; -控制信號(hào)(WR1、WR2、CS、Xfer)n data_out:out std_logic_vector(7 downto 0); -波形數(shù)據(jù)輸出n end DAC0832; n a

28、rchitecture behav of DAC0832 is n signal q:integer range 0 to 63; -計(jì)數(shù)器n signal data:std_logic_vector(7 downto 0); -波形數(shù)據(jù)n Beginn process(clk)n beginn if rst=1 then q=0; -復(fù)位,對(duì)計(jì)數(shù)器q清零n elsif clkevent and clk=1 thenn if q=63 then q=0; -此IF語(yǔ)句對(duì)系統(tǒng)時(shí)鐘進(jìn)行64分頻n if data=11111111 then data=00000000; -此IF語(yǔ)句產(chǎn)生鋸齒波波形數(shù)

29、據(jù)n else data=data+1;n end if;n else q=q+1;n end if;n end if;n end process;n ile=1;cont=0;data_out=data; -ile、cont賦值;波形數(shù)據(jù)輸出;n end behav;8.7 TLC7524接口電路及程序設(shè)計(jì)TLC7524接口電路設(shè)計(jì)n TLC5724是TI公司生產(chǎn)的8位D/A轉(zhuǎn)換器,轉(zhuǎn)換周期為100ns。TLC7524接口電路設(shè)計(jì)圖圖8.7.1 TLC7524接口電路設(shè)計(jì)圖n FPGA_IO18為TLC7524提供 8位并行數(shù)據(jù)。n TLC7524的CS、WR都是低電平有效,所以直接接地 T

30、LC7524接口電路程序設(shè)計(jì)TLC7524 時(shí)序圖 TLC7524輸出控制時(shí)序圖上圖所示。根據(jù)TLC7524輸出控制時(shí)序,利用接口電路圖,通過(guò)改變輸出數(shù)據(jù),設(shè)計(jì)一個(gè)正弦波發(fā)生器。TLC7524是8位的D/A轉(zhuǎn)換器,轉(zhuǎn)換周期為100ns,所以鋸齒波形數(shù)據(jù)由256個(gè)點(diǎn)構(gòu)成,每個(gè)點(diǎn)的數(shù)據(jù)長(zhǎng)度為8位。FPGA的系統(tǒng)時(shí)鐘為50MHz,必須對(duì)其進(jìn)行分頻處理,這里進(jìn)行5分頻,得到的正弦波的頻率為156.25KHz。 接口電路輸出控制程序電路符號(hào) TLC7524接口電路輸出控制程序n -文件名:TLC7524.VHDn -功能:產(chǎn)生156.25KHz的正弦波。n -最后修改日期:2004.3.18。n lib

31、rary ieee;n use ieee.std_logic_arith.all;n use ieee.std_logic_1164.all;n use ieee.std_logic_unsigned.all;n entity TLC7524 isn port( clk :in std_logic; -系統(tǒng)時(shí)鐘n rst :in std_logic; -復(fù)位信號(hào)n data_out:out std_logic_vector(7 downto 0); -波形數(shù)據(jù)n end TLC7524; n architecture behav of TLC7524 isn signal b:integer

32、range 0 to 63; -地址計(jì)數(shù)器n signal q:integer range 0 to 4; -計(jì)數(shù)器n signal d:integer range 0 to 255; -波形數(shù)據(jù)寄存器n beginn process(clk) -此進(jìn)程通過(guò)對(duì)系統(tǒng)時(shí)鐘的分頻,完成的地址計(jì)數(shù)器的循環(huán)計(jì)數(shù)n beginn if rst=1 then b=0; -復(fù)位時(shí),對(duì)地址寄存器清零 n elsif clkevent and clk=1 then n if q=4 then q=0; -此IF語(yǔ)句完成對(duì)系統(tǒng)時(shí)鐘的5分頻n if b=63 then b=0; -此IF語(yǔ)句完成對(duì)地址的循環(huán)計(jì)數(shù)n e

33、lse b=b+1;n end if;n else q d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d null;n end case;n end process;n data_out=conv_std_logic_vector(d,8); -正弦波波形數(shù)據(jù)輸出n end behav;8.8 FPGA通用異步收發(fā)器設(shè)計(jì) UART簡(jiǎn)介 n UART(Universal Asynchronou

34、s Receiver Transmitter通用異步收發(fā)器)是一種應(yīng)用廣泛的短距離串行傳輸接口。常常用于短距離、低速、低成本的通訊中。8250、8251、NS16450等芯片都是常見的UART器件。n 基本的UART通信只需要兩條信號(hào)線(RXD、TXD)就可以完成數(shù)據(jù)的相互通信,接收與發(fā)送是全雙工形式。TXD是UART發(fā)送端,為輸出;RXD是UART接收端,為輸入。UART的基本特點(diǎn)是:n (1)在信號(hào)線上共有兩種狀態(tài),可分別用邏輯1(高電平)和邏輯0(低電平)來(lái)區(qū)分。在發(fā)送器空閑時(shí),數(shù)據(jù)線應(yīng)該保持在邏輯高電平狀態(tài)。n (2)起始位(Start Bit):發(fā)送器是通過(guò)發(fā)送起始位而開始一個(gè)字符傳

35、送,起始位使數(shù)據(jù)線處于邏輯0狀態(tài),提示接受器數(shù)據(jù)傳輸即將開始。n (3)數(shù)據(jù)位(Data Bits):起始位之后就是傳送數(shù)據(jù)位。數(shù)據(jù)位一般為8位一個(gè)字節(jié)的數(shù)據(jù)(也有6位、7位的情況),低位(LSB)在前,高位(MSB)在后。n (4)校驗(yàn)位(parity Bit):可以認(rèn)為是一個(gè)特殊的數(shù)據(jù)位。校驗(yàn)位一般用來(lái)判斷接收的數(shù)據(jù)位有無(wú)錯(cuò)誤,一般是奇偶校驗(yàn)。在使用中,該位常常取消。n (5)停止位:停止位在最后,用以標(biāo)志一個(gè)字符傳送的結(jié)束,它對(duì)應(yīng)于邏輯1狀態(tài)。n (6)位時(shí)間:即每個(gè)位的時(shí)間寬度。起始位、數(shù)據(jù)位、校驗(yàn)位的位寬度是一致的,停止位有0.5位、1位、1.5位格式,一般為1位。n (7)幀:從起

36、始位開始到停止位結(jié)束的時(shí)間間隔稱之為一幀。n 8)波特率:UART的傳送速率,用于說(shuō)明數(shù)據(jù)傳送的快慢。在串行通信中,數(shù)據(jù)是按位進(jìn)行傳送的,因此傳送速率用每秒鐘傳送數(shù)據(jù)位的數(shù)目來(lái)表示,稱之為波特率。如波特率9600=9600bps(位/秒)。n UART的數(shù)據(jù)幀格式為:FPGA UART系統(tǒng)組成 n FPGA UART由三個(gè)子模塊組成:n (1)波特率發(fā)生器;n (2)接收模塊;n (3)發(fā)送模塊; 模塊設(shè)計(jì)n 1. 頂層模塊 n 2. 波特率發(fā)生器 n 3. UART接收器 n 4. UART發(fā)送器 1. 頂層模塊 n 異步收發(fā)器的頂層模塊由波特率發(fā)生器、UART接收器和UART發(fā)送器構(gòu)成。n

37、 UART發(fā)送器的用途是將準(zhǔn)備輸出的并行數(shù)據(jù)按照基本UART幀格式轉(zhuǎn)為TXD信號(hào)串行輸出。n UART接收器接收RXD串行信號(hào),并將其轉(zhuǎn)化為并行數(shù)據(jù)。n 波特率發(fā)生器就是專門產(chǎn)生一個(gè)遠(yuǎn)遠(yuǎn)高于波特率的本地時(shí)鐘信號(hào)對(duì)輸入RXD不斷采樣,使接收器與發(fā)送器保持同步。頂層模塊的電路圖 2. 波特率發(fā)生器 n 波特率發(fā)生器實(shí)際上就是一個(gè)分頻器。n 可以根據(jù)給定的系統(tǒng)時(shí)鐘頻率(晶振時(shí)鐘)和要求的波特率算出波特率分頻因子,算出的波特率分頻因子作為分頻器的分頻數(shù)。n 波特率分頻因子可以根據(jù)不同的應(yīng)用需要更改。 3.UART接收器 n 由于串行數(shù)據(jù)幀和接收時(shí)鐘是異步的,由邏輯1轉(zhuǎn)為邏輯0可以被視為一個(gè)數(shù)據(jù)幀的起始位。n 然而,為了避免毛刺影響,能夠得到正確的起始位信號(hào),必須要求接收到的起始位在波特率時(shí)鐘采樣的過(guò)程中至少有一半都是屬于邏輯0才可認(rèn)定接收到的是起始位。由于內(nèi)部采樣時(shí)鐘bclk

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論