基于fpga的串口通信_(tái)第1頁(yè)
基于fpga的串口通信_(tái)第2頁(yè)
基于fpga的串口通信_(tái)第3頁(yè)
基于fpga的串口通信_(tái)第4頁(yè)
基于fpga的串口通信_(tái)第5頁(yè)
已閱讀5頁(yè),還剩6頁(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、基于FPGA的串口通信設(shè)計(jì) 學(xué) 號(hào): 姓 名: 班 級(jí): 指導(dǎo)教師: 電子與控制工程學(xué)院一、串行通信系統(tǒng)1.1概述在計(jì)算機(jī)系統(tǒng)和微機(jī)網(wǎng)絡(luò)的快速發(fā)展領(lǐng)域里串行通信在數(shù)據(jù)通信及控制系統(tǒng)中得到廣泛的應(yīng)用。UART即Universal AsynchronousReceiver Transmitter 通用異步收發(fā)器協(xié)議是數(shù)據(jù)通信及控制系統(tǒng)中廣泛使用的一種全雙工串行數(shù)據(jù)傳輸協(xié)議在實(shí)際工業(yè)生產(chǎn)中有時(shí)并不使用UART的全部功能。只需將其核心功能集成即可。波特率發(fā)生器、接收器和發(fā)送器是UART的三個(gè)核心功能模塊利用Verilog-HDL語(yǔ)言對(duì)這三個(gè)功能模塊進(jìn)行描述并加以整合UART是廣泛使用的串行數(shù)據(jù)傳輸協(xié)議

2、。UART允許在串行鏈路上進(jìn)行全雙工的通信。串行外設(shè)用到RS232-C異步串行接口一般采用專用的集成電路即UART實(shí)現(xiàn)。如8250、8251、NS16450等芯片都是常見的UART器件這類芯片已經(jīng)相當(dāng)復(fù)雜有的含有許多輔助的模塊如FIFO有時(shí)我們不需要使用完整UART的功能和這些輔助功能?;蛘咴O(shè)計(jì)上用到了FPGA/CPLD器件那么我們就可以將所需要的UART功能集成到FPGA內(nèi)部。使用VHDL或Veriolog -HDL將UART的核心功能集成從而使整個(gè)設(shè)計(jì)更加緊湊、穩(wěn)定且可靠。本文應(yīng)用EDA技術(shù)基于FPGA/CPLD器件設(shè)計(jì)與實(shí)現(xiàn)UART。 通信指人與人或人與自然之間通過(guò)某種行為或媒介進(jìn)行的信

3、息交流與傳遞從廣義上指需要信息的雙方或多方在不違背各自意愿的情況下無(wú)論采用何種方法使用何種媒質(zhì)將信息從某方準(zhǔn)確安全傳送到另方。通信在不同的環(huán)境下有不同的解釋在出現(xiàn)電波傳遞通信后通信(Communication)被單一解釋為信息的傳遞是指由一地向另一地進(jìn)行信息的傳輸與交換其目的是傳輸消息。然而通信是在人類實(shí)踐過(guò)程中隨著社會(huì)生產(chǎn)力的發(fā)展對(duì)傳遞消息的要求不斷提升使得人類文明不斷進(jìn)步。在各種各樣的通信方式中利用“電”來(lái)傳遞消息的通信方法稱為電信(Telecommunication)這種通信具有迅速、準(zhǔn)確、可靠等特點(diǎn)且?guī)缀醪皇軙r(shí)間、地點(diǎn)、空間、距離的限制因而得到了飛速發(fā)展和廣泛應(yīng)用。 1.2串行通信簡(jiǎn)介

4、計(jì)算機(jī)與計(jì)算機(jī),計(jì)算機(jī)與外部設(shè)備進(jìn)行數(shù)據(jù)交換也稱為通信,一般有兩種方式并行通信和串行通信。信息的各位數(shù)據(jù)被同時(shí)傳送的通信方法是并行通信并行通信依靠I/O接口來(lái)實(shí)現(xiàn)。并行通信中數(shù)據(jù)有多少位就需要多少條信號(hào)傳輸線。這種通信方式快,但由于傳輸線較多,所以成本較高,僅適合近距離通信通常傳送距離小于30米。當(dāng)距離大于30米時(shí)則多采用串行通信方式串行通信是指外部設(shè)備和計(jì)算機(jī)間使用一根數(shù)據(jù)線另外需要地線可能還需要控制線進(jìn)行數(shù)據(jù)傳輸?shù)姆绞健?shù)據(jù)在一根數(shù)據(jù)線上一位一位進(jìn)行傳輸每一位數(shù)據(jù)都占據(jù)一個(gè)固定的時(shí)間長(zhǎng)度。與并行通信方式相比有以下優(yōu)點(diǎn):1、傳輸距離長(zhǎng)可達(dá)數(shù)千公里。 2、長(zhǎng)距離內(nèi)串行數(shù)據(jù)傳送速率會(huì)比并行數(shù)據(jù)傳

5、送速率快串行通信的通信時(shí)鐘頻率比并行通信更容易提高。 3、抗干擾力強(qiáng)串行通信信號(hào)間的相互干擾完全可以忽略。 4、通信成本低。 5、傳輸線既傳輸數(shù)據(jù)又傳輸聯(lián)絡(luò)信息。 因此串行通信得到廣泛的應(yīng)用。 目前的串行通信常用UART實(shí)現(xiàn)數(shù)據(jù)的串/并轉(zhuǎn)換或并/串轉(zhuǎn)換。 UART(通用異步收發(fā)器)是一種串行通信協(xié)議,主要用于短距離,低速率,低成本的數(shù)據(jù)的計(jì)算機(jī)和外設(shè)之間的交流。是電腦硬件的一部分,具體實(shí)物表現(xiàn)為一塊并行輸入成為串行輸出的模塊化芯片。8250、8251、NS16450等芯片都是常見的UART器件。UART主要功能實(shí)現(xiàn)通信中的數(shù)據(jù)串并轉(zhuǎn)換,且能奇偶檢驗(yàn)。將計(jì)算機(jī)內(nèi)部傳送過(guò)來(lái)的并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)

6、流加入奇偶校驗(yàn)位后輸出。或者將計(jì)算機(jī)外部來(lái)的串行數(shù)據(jù)奇偶校驗(yàn)后轉(zhuǎn)換為字節(jié),供計(jì)算機(jī)內(nèi)部使用并行數(shù)據(jù)的器件使用。它的異步模式使芯片適應(yīng)性強(qiáng),對(duì)時(shí)鐘精度要求低(成本低)。隨著FPGA的廣泛應(yīng)用,經(jīng)常需要FPGA與其他數(shù)字系統(tǒng)進(jìn)行串行通信,專用的UART集成電路如8250,8251等是比較復(fù)雜的,因?yàn)閷S玫腢ART集成電路既要考慮異步的收發(fā)功能,又要兼容RS232接口設(shè)計(jì),在實(shí)際應(yīng)用中,往往只需要用到UART的基本功能,使用專用芯片會(huì)造成資源浪費(fèi)和成本提高。如果設(shè)計(jì)上用到FPGA /CPLD器件,可以將所需要的UART功能集成到FPGA內(nèi)部,實(shí)現(xiàn)FPGA與其他數(shù)字系統(tǒng)的直接通信,從而簡(jiǎn)化了整個(gè)系統(tǒng)電

7、路,提高了可靠性、穩(wěn)定性和靈活性。二、 UART理論基礎(chǔ)2.1 接口技術(shù)簡(jiǎn)介接口是CPU與外界的連接部件,是CPU與外界交換信息的中轉(zhuǎn)站。一個(gè)接口的基本功能是在系統(tǒng)總線和I/O設(shè)備之間傳輸信號(hào),提供緩沖作用,以滿足接口兩邊的時(shí)序要求。如圖1, 圖1 接口功能主要的計(jì)算機(jī)接口技術(shù)有兩種:并行接口和串行接口。串行通信是把要傳輸數(shù)據(jù)中的各個(gè)二進(jìn)制碼置于同一條傳輸線上,從低位到高位、逐位地、順序地進(jìn)行傳送。所用傳輸線少,一個(gè)方向只需一條傳輸線,成本低。串行通信分為兩種類型:同步通信和異步通信。串行異步是計(jì)算機(jī)通信最常用的數(shù)據(jù)信息傳輸方式,接收和發(fā)送雙方不使用共同的參考時(shí)鐘,以字符為單位進(jìn)行傳輸,字符之

8、間的傳輸間隔任意,而每個(gè)字符的前后都要用一些位數(shù)來(lái)作為分隔位。2.2 UART基本結(jié)構(gòu)UART主要由UART內(nèi)核、信號(hào)檢測(cè)器、移位寄存器、波特率發(fā)生器和計(jì)數(shù)器組成,如圖2所示。 圖2 UART功能模塊從異步接收輸入信號(hào)RXD接收到的異步信號(hào)通過(guò)接收器完成串行并行的轉(zhuǎn)換,形成異步數(shù)據(jù)幀;發(fā)送器將CPU發(fā)出的8位數(shù)據(jù)進(jìn)行并行串行轉(zhuǎn)換,從TXD發(fā)送出去。2.3 UART數(shù)據(jù)幀格式基本的UART通信只需要兩條信號(hào)線(RXD,TXD)就可以完成數(shù)據(jù)的相互通信,接收與發(fā)送是全雙工形式,其中TXD是UART發(fā)送端,RXD是UART接收端。UART基本特點(diǎn)是:在信號(hào)線上有兩種狀態(tài),可分別用邏輯1(高電平)和邏

9、輯0(低電平)來(lái)區(qū)分。在發(fā)送器空閑時(shí),數(shù)據(jù)線應(yīng)保持在邏輯高電平狀態(tài)。發(fā)送器是通過(guò)發(fā)送起始比特而開始一個(gè)字符傳送,起始比特使數(shù)據(jù)線處于邏輯0狀態(tài),提示接收器數(shù)據(jù)傳輸即將開始。數(shù)據(jù)位一般為8位一個(gè)字節(jié)的數(shù)(也有6位7位的情況),低位(LSB)在前,高位(MSB)在后。校驗(yàn)位一般用來(lái)判斷接收的數(shù)據(jù)位有無(wú)錯(cuò)誤,一般是奇偶校驗(yàn)。停止位在最后,用以標(biāo)志UART一個(gè)字符傳送的結(jié)束,它對(duì)應(yīng)于邏輯1狀態(tài),UART數(shù)據(jù)幀格式如圖3所示。 圖3 UART數(shù)據(jù)幀格式一幀異步通信傳輸經(jīng)歷的步驟為:無(wú)傳輸:發(fā)送器處于空閑狀態(tài),數(shù)據(jù)線保持“1”狀態(tài)。起始傳輸:發(fā)送器發(fā)出一個(gè) “0”表示傳輸字符開始。而同時(shí),接收方收到空號(hào)后

10、,開始與發(fā)送方同步,并期望收到隨后的數(shù)據(jù)。數(shù)據(jù)傳輸:傳輸8位數(shù)據(jù)D0-D7。低位到高位傳輸。奇偶傳輸:在使用中,校驗(yàn)位常常取消。停止傳輸:一個(gè)字符數(shù)據(jù)的結(jié)束標(biāo)志??梢允?位、1.5位、2位的高電平“1”。3、 開發(fā)平臺(tái)1、 軟件平臺(tái)軟件設(shè)計(jì)工具采用Quartus II。Quartus II是Altera公司推出的CPLD/FPGA集成化開發(fā)軟件,可以完成設(shè)計(jì)輸入、邏輯綜合、布局與布線、仿真、時(shí)序分析、硬件配置完整的PLD設(shè)計(jì)流程。Quartus提供了多種設(shè)計(jì)輸入方式、快速的編譯和直接易懂的器件編程。具有友好的用戶界面, 快速的綜合速度和更優(yōu)化的綜合和適配功能。Quartus II自帶宏功能模塊

11、庫(kù),大大減輕了用戶的工作量,加快設(shè)計(jì)速度。Quartus II 內(nèi)置仿真器可以在工程中仿真任何設(shè)計(jì)。可進(jìn)行功能仿真、時(shí)序仿真來(lái)檢驗(yàn)設(shè)計(jì)的邏輯功能和計(jì)算設(shè)計(jì)的內(nèi)部定時(shí)是否符合設(shè)計(jì)。仿真器可以仿真整個(gè)設(shè)計(jì),或仿真設(shè)計(jì)的任何部分。支持可編程系統(tǒng)(SOPC)和大規(guī)模FPGA設(shè)計(jì)開發(fā),集系統(tǒng)級(jí)設(shè)計(jì)、嵌入式軟件開發(fā)、可編程邏輯設(shè)計(jì)于一體,是一種綜合性的開發(fā)平臺(tái)。該軟件支持Altera公司的Stratix 、Stratix GX、Stratix、MAX3000A、MAX 7000B、MAX 7000AE、MAX 、FLEX6000、FLEX10K系列、Cyclone、Cyclone 、APEX 、APEX2

12、0K和ACEX1K系列。2、 硬件平臺(tái)FPGA設(shè)計(jì)方法有“自頂向下”和“自下而上”,一般FPGA設(shè)計(jì)常選擇前者。所謂“自頂向下”的設(shè)計(jì)方法,就是把系統(tǒng)分成若干個(gè)基本單元,然后再把每個(gè)基本單元?jiǎng)澐譃橄乱粚哟蔚幕締卧?,一直這樣做下去,直到可以直接使用EDA元件庫(kù)為止。具體步驟為:按照“自頂向下”的設(shè)計(jì)方法進(jìn)行系統(tǒng)劃分,用硬件描述語(yǔ)言,將設(shè)計(jì)產(chǎn)品的功能描述出來(lái),將設(shè)計(jì)輸入編譯成標(biāo)準(zhǔn)文件;利用綜合器對(duì)源代碼進(jìn)行綜合優(yōu)化處理得到EDA工業(yè)標(biāo)準(zhǔn)文件;把設(shè)計(jì)好的邏輯安放到PLD/FPGA內(nèi) (布局布線);用仿真軟件驗(yàn)證電路的時(shí)序;無(wú)誤后將適配器產(chǎn)生的器件編程文件通過(guò)編程器或下載電纜載入到目標(biāo)芯片F(xiàn)PGA中

13、。目標(biāo)芯片為黑金CycloneIV開發(fā)板。4、 設(shè)計(jì)與實(shí)現(xiàn)該實(shí)驗(yàn)要實(shí)現(xiàn)的功能是 CPLD 實(shí)時(shí)監(jiān)測(cè) RS232_RX 信號(hào)是否有數(shù)據(jù),若接收到數(shù)據(jù), 則把接收到的數(shù)據(jù)通過(guò) RS232_TX 發(fā)回給對(duì)方。上位機(jī)用的是串口調(diào)試助手。 在代碼設(shè)計(jì)中,發(fā)送數(shù)據(jù)的波特率是可選的,可以是 9600bps,19200bps, 38400bps,57600bps 或 115200bps。這部分在模塊 speed_select 里,用戶可以根據(jù)需要進(jìn)行配置。發(fā)送的數(shù)據(jù)幀格式為:1bit 起始位(保持一個(gè)傳輸位周期 的低電平),8bit 數(shù)據(jù),無(wú)校驗(yàn)位,1bit 停止位。該設(shè)計(jì)分為 4 個(gè)模塊實(shí)現(xiàn)如圖四所示,4個(gè)

14、模塊的劃分主要是依據(jù)數(shù)據(jù)流的方向。my_uart_rx 模塊主要是完成數(shù)據(jù)的接收,speed_select(speed_rx) 模塊主要響應(yīng) my_uart_rx 模塊發(fā)出的使能信號(hào)進(jìn)行波特率計(jì)數(shù),并且回送一個(gè)數(shù)據(jù)采樣使能信號(hào)。my_uart_tx 模塊在 my_uart_rx 模塊接收好一個(gè)完整的數(shù)據(jù)。圖4 整體設(shè)計(jì)框圖4.1數(shù)據(jù)接收模塊接收模塊的作用是把收到的串行數(shù)據(jù)轉(zhuǎn)換成并行數(shù)據(jù)進(jìn)行輸出,并判斷收到的數(shù)據(jù)是否有錯(cuò)。接收模塊的引腳如圖5所示,圖5 數(shù)據(jù)接收模塊設(shè)計(jì)中接收器的工作頻率由前面的速度選擇器決定,頻率是9600bps的16倍,由輸入端輸入,在接收器工作時(shí),接收端一直以16背得波特率

15、的速率讀取線路狀態(tài),檢測(cè)線路上出現(xiàn)低電平的時(shí)刻。找到起始位以后,就開始接收數(shù)據(jù),用16倍波特率的時(shí)鐘作為接收時(shí)鐘,就是為了確保在位寬的中心時(shí)間對(duì)接收的位序列進(jìn)行可靠采樣,當(dāng)采樣計(jì)數(shù)器計(jì)數(shù)結(jié)束后所有數(shù)據(jù)位都已經(jīng)輸入完成。4.2數(shù)據(jù)發(fā)送模塊發(fā)送模塊主要實(shí)現(xiàn)對(duì)并行數(shù)據(jù)的緩存、并串轉(zhuǎn)換,并把串行數(shù)據(jù)按照既定數(shù)據(jù)幀格式進(jìn)行輸出。每隔一個(gè)固定發(fā)送周期發(fā)送符合數(shù)據(jù)幀格式要求的數(shù)據(jù)幀,發(fā)送時(shí)輸出起始位低電平,依次將數(shù)據(jù)位輸出,最后將起始位重新置為高??臻e時(shí)是高電平,收到一個(gè)發(fā)送指令后,將數(shù)據(jù)裝載進(jìn)來(lái),開始位拉低,然后移出數(shù)據(jù),停止位高電平意味著一幀傳輸結(jié)束。發(fā)送模塊的引腳如圖6所示,圖6 數(shù)據(jù)發(fā)送模塊4.3速

16、度選擇模塊需要說(shuō)明的是這兩個(gè)例化都是針對(duì)一個(gè)相同的模塊 speed_select,但是例化后的名字不同,分 別為 speed_rx 和 speed_tx。它們綜合后是兩個(gè)不同的模塊,相互獨(dú)立,不可以復(fù)用。speed_select speed_rx(.clk(clk), /波特率選擇模塊.rst_n(rst_n),.bps_start(bps_start1),.clk_bps(clk_bps1);speed_select speed_tx(.clk(clk), /波特率選擇模塊.rst_n(rst_n),.bps_start(bps_start2),.clk_bps(clk_bps2);4.4功能設(shè)計(jì)此設(shè)計(jì)前端與數(shù)字信號(hào)發(fā)生器相連接,將數(shù)字信號(hào)頻率發(fā)生器的數(shù)據(jù)進(jìn)行處理后接收,然后通過(guò)黑金開發(fā)板與上位機(jī)作用,返回到PC機(jī)上,查看接收收到的數(shù)據(jù),其最終實(shí)現(xiàn)的效果如圖7所示。圖7 實(shí)驗(yàn)結(jié)果五、 總結(jié)概括UART是廣泛使用的串行數(shù)據(jù)通信電路,因其要求的傳輸線少,可靠性高,傳輸距離遠(yuǎn),所以系統(tǒng)間互聯(lián)常采用異步串行通信接口方式。本文用VHDL語(yǔ)言,結(jié)合有限狀態(tài)機(jī)的設(shè)計(jì)方法實(shí)現(xiàn)了UART的功能,將其核

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論