亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于FPGA的UART設(shè)計(jì)實(shí)現(xiàn)及其驗(yàn)證方法

        2008-04-12 00:00:00葛利嘉
        現(xiàn)代電子技術(shù) 2008年17期

        摘 要:UART作為RS 232協(xié)議的控制接口得到了廣泛的應(yīng)用,基于FPGA實(shí)現(xiàn)的UART設(shè)計(jì)可以使系統(tǒng)更加緊湊、穩(wěn)定。系統(tǒng)結(jié)構(gòu)進(jìn)行了模塊化分解,使之適應(yīng)自頂向下(Top Down)的設(shè)計(jì)方法。核心部分采用有限狀態(tài)機(jī)(FSM)實(shí)現(xiàn),使控制邏輯直觀簡(jiǎn)單,提高了設(shè)計(jì)效率。通過(guò)與計(jì)算機(jī)間的數(shù)據(jù)通信對(duì)設(shè)計(jì)的功能進(jìn)行了驗(yàn)證,在此基礎(chǔ)上衍生出一種將UART模塊嵌入FPGA芯片與計(jì)算機(jī)互聯(lián)進(jìn)行功能驗(yàn)證和調(diào)試的新方法。

        關(guān)鍵詞:通用異步收發(fā)器;串口通信;現(xiàn)場(chǎng)可編程邏輯器件;有限狀態(tài)機(jī)

        中圖分類(lèi)號(hào):TP29 文獻(xiàn)標(biāo)識(shí)碼:B 文章編號(hào):1004373X(2008)1716203

        Design and Realization of UART and Its Verification Based on FPGA

        ZHAO Yan,GE Lijia,SHUANG Tao

        (Digital Communication and Signal Processing Lab.,Chongqing Communication College,Chongqing,400035,China)

        Abstract:UART is used widely as the interface of RS 232,and to design it in FPGA can make system more compact and stable.The structure of the system is divided in modularization to fit the design method Top-Down.The core of this system is implemented with Finite State Machine (FSM),it makes the logic of control briefness.An experiment of communicating between UART and computer is designed to verificate the function of this system.And a new method of debugging the FPGA design by implanting UART into it to connect with computer is derived from this.

        Keywords:uniersal asynchronous receiver transmitter;serial port communication;FPGA;finite state machine

        通用異步收發(fā)器(Universal Asynchronous Receiver Transmitter,UART)是數(shù)字通信領(lǐng)域流行和廣泛使用的一種接口設(shè)備,主要用來(lái)控制符合RS 232-C協(xié)議的計(jì)算機(jī)與串行設(shè)備間的通信。普通串行外設(shè)和計(jì)算機(jī)間的通信,一般使用通用的串行接口芯片,但是這種接口芯片存在體積較大、接口復(fù)雜以及成本較高的缺點(diǎn),會(huì)使得硬件設(shè)計(jì)更加復(fù)雜,并且結(jié)構(gòu)與功能相對(duì)固定,無(wú)法根據(jù)設(shè)計(jì)的需要對(duì)其邏輯控制進(jìn)行靈活的修改。而目前日趨成熟的SOC技術(shù)則要求將整個(gè)設(shè)計(jì)的功能集成在單片或幾塊芯片當(dāng)中,因此,將UART的功能集成在FPGA芯片當(dāng)中,可以使整個(gè)系統(tǒng)更為靈活、緊湊,性能也更加穩(wěn)定[1]。本文提出了一種使用VHDL語(yǔ)言開(kāi)發(fā)UART的方法,實(shí)現(xiàn)了FPGA與計(jì)算機(jī)之間的數(shù)據(jù)通信,并將其應(yīng)用于FPGA芯片開(kāi)發(fā)的功能驗(yàn)證當(dāng)中,從而衍生出了將UART嵌入到FPGA芯片,與計(jì)算機(jī)互聯(lián)的一種直觀的FPGA設(shè)計(jì)的驗(yàn)證和調(diào)試方法。

        1 UART通信原理

        UART采用通用的RS 232-C串行接口標(biāo)準(zhǔn),該協(xié)議的優(yōu)點(diǎn)是使用廣泛,幾乎所有計(jì)算機(jī)和串行外設(shè)當(dāng)中都置有這種接口,其傳輸距離可達(dá)15 m,并且實(shí)現(xiàn)較簡(jiǎn)單,用于雙向連接時(shí)最少只需要2條導(dǎo)線即可實(shí)現(xiàn)基本通信。UART的具體幀格式如圖1所示,每幀數(shù)據(jù)由開(kāi)始位、數(shù)據(jù)位、奇偶校驗(yàn)位和停止位四部分依次組成[2]。其中,開(kāi)始位為低電平;數(shù)據(jù)位長(zhǎng)度為5,6,7,8不等;奇偶校驗(yàn)的模式有無(wú)校驗(yàn)、奇校驗(yàn)、偶校驗(yàn)、粘附校驗(yàn)1和粘附校驗(yàn)0;停止位為高電平,具體長(zhǎng)度為1位、1.5位和2位不等,這些選項(xiàng)都通過(guò)UART內(nèi)部的線性控制寄存器來(lái)確定。當(dāng)沒(méi)有數(shù)據(jù)發(fā)送時(shí),發(fā)送和接收引腳都保持高電平。

        2 UART的FPGA實(shí)現(xiàn)

        本實(shí)現(xiàn)中,UART主要包括接收模塊、發(fā)送模塊、MODEM控制器和中斷仲裁4個(gè)部分。它們的具體功能如下:

        接收模塊 具體作用是接收從串行數(shù)據(jù)輸入端口SIN送來(lái)的異步數(shù)據(jù),并進(jìn)行串/并轉(zhuǎn)換,此外,接收模塊還包含模塊控制和模塊狀態(tài)配置功能,用來(lái)設(shè)置接收數(shù)據(jù)幀的屬性以及向中斷仲裁模塊輸出狀態(tài)信號(hào);

        發(fā)送模塊 其作用是對(duì)從CPU送來(lái)的并行數(shù)據(jù)進(jìn)行并/串轉(zhuǎn)換,將串行數(shù)據(jù)從SOUT輸出到串口,同接收模塊相同,該模塊也包含模塊控制和模塊狀態(tài)配置功能;

        中斷仲裁模塊 其作用是用來(lái)實(shí)現(xiàn)外部接口對(duì)內(nèi)部寄存器的操作以及中斷信號(hào)的仲裁操作,在UART的工作過(guò)程中,發(fā)送和接收模塊的狀態(tài)信號(hào)都送入該模塊的線性狀態(tài)寄存器中,經(jīng)過(guò)內(nèi)部的邏輯操作輸出相應(yīng)的中斷信號(hào),指示與UART相連的外部設(shè)備進(jìn)行相應(yīng)的讀寫(xiě)操作;

        MODEM模塊 其作用是用來(lái)和外部的調(diào)制解調(diào)器或者其他的UART設(shè)備進(jìn)行通信[3]

        2.1 接收模塊

        在接收的過(guò)程中,由于串行數(shù)據(jù)幀異步于接收時(shí)鐘,因此,當(dāng)檢測(cè)到SIN由高電平到低電平的變化將被認(rèn)為是一幀數(shù)據(jù)的開(kāi)始位。為避免由于噪聲引起的錯(cuò)誤數(shù)據(jù),本設(shè)計(jì)中實(shí)現(xiàn)了錯(cuò)誤開(kāi)始位檢測(cè)功能,即要求開(kāi)始位必須在收發(fā)波特率時(shí)鐘的50%以上為低電平。由于我們采用的內(nèi)部時(shí)鐘其頻率是波特率時(shí)鐘的16倍,因此開(kāi)始位至少在8個(gè)內(nèi)部時(shí)鐘周期內(nèi)為低電平才被認(rèn)為有效。一旦開(kāi)始位被確認(rèn),后面的數(shù)據(jù)比特和校驗(yàn)比特將會(huì)每16個(gè)內(nèi)部時(shí)鐘周期采樣一次。

        接收模塊包括一個(gè)數(shù)據(jù)緩沖寄存器和一個(gè)接收移位寄存器。當(dāng)檢測(cè)到開(kāi)始位有效時(shí),其后的數(shù)據(jù)比特將會(huì)依次存入數(shù)據(jù)移位寄存器,根據(jù)數(shù)據(jù)幀的配置,當(dāng)接收完所有數(shù)據(jù)比特后會(huì)根據(jù)奇偶校驗(yàn)是否被使能來(lái)判斷下一步進(jìn)行校驗(yàn)或停止接收,等待外部設(shè)備讀取接收到的數(shù)據(jù)。整個(gè)過(guò)程可通過(guò)狀態(tài)機(jī)方便的實(shí)現(xiàn),狀態(tài)轉(zhuǎn)移圖如圖2所示。

        由圖2不難看出,接收模塊的狀態(tài)機(jī)包含4個(gè)狀態(tài):空閑狀態(tài)(idle)、移位狀態(tài)(shift)、奇偶校驗(yàn)狀態(tài)(parity)和停止位狀態(tài)(stop)。其工作過(guò)程如下:當(dāng)系統(tǒng)復(fù)位時(shí),狀態(tài)機(jī)進(jìn)入idle狀態(tài),等待開(kāi)始位,SIN由高電平變?yōu)榈碗娖讲⒈淮_認(rèn)為有效的開(kāi)始位后,狀態(tài)機(jī)進(jìn)入shift狀態(tài);shift狀態(tài)中,接收模塊為每一個(gè)數(shù)據(jù)比特移入等待16個(gè)內(nèi)部時(shí)鐘周期,接收完一幀數(shù)據(jù)后,若奇偶校驗(yàn)使能有效,跳轉(zhuǎn)到parity狀態(tài),否則,進(jìn)入stop狀態(tài);在parity狀態(tài)中對(duì)奇偶校驗(yàn)比特進(jìn)行采樣,狀態(tài)機(jī)將跳轉(zhuǎn)到stop狀態(tài);狀態(tài)機(jī)進(jìn)入stop狀態(tài)后,等待16個(gè)內(nèi)部時(shí)鐘周期后將對(duì)停止位的長(zhǎng)度進(jìn)行采樣,而后進(jìn)入idle狀態(tài)。

        2.2 發(fā)送模塊

        在發(fā)送過(guò)程中,當(dāng)發(fā)送數(shù)據(jù)裝載到發(fā)送保持寄存器后,串行數(shù)據(jù)將自動(dòng)使能從而進(jìn)行數(shù)據(jù)傳輸。首先一個(gè)開(kāi)始位被發(fā)送出去,同時(shí)發(fā)送數(shù)據(jù)由發(fā)送保持寄存器裝載到發(fā)送移位寄存器中,而將數(shù)據(jù)以波特率時(shí)鐘逐位發(fā)送出去,并按照線性控制寄存器的要求加上奇偶校驗(yàn)位和停止位。其時(shí)鐘、幀結(jié)構(gòu)配置和工作過(guò)程與接收模塊類(lèi)似,因此,發(fā)送模塊也可以通過(guò)相似的狀態(tài)機(jī)實(shí)現(xiàn)。

        2.3 中斷仲裁模塊

        UART的中斷分為4個(gè)等級(jí),其對(duì)應(yīng)的中斷事件為:接收模塊線性狀態(tài)、接收數(shù)據(jù)準(zhǔn)備就緒、發(fā)送保持寄存器空和MODEM狀態(tài),它們記錄在中斷識(shí)別寄存器中。UART通過(guò)讀取中斷識(shí)別寄存器檢測(cè)所有的中斷信號(hào),然后指明優(yōu)先級(jí)最高的中斷給外部接口。該模塊使用狀態(tài)機(jī)實(shí)現(xiàn)時(shí),共分為5個(gè)狀態(tài),其中4個(gè)等級(jí)的中斷各為一個(gè)狀態(tài),外加一個(gè)空閑狀態(tài),根據(jù)每次讀取中段識(shí)別寄存器的結(jié)果確定應(yīng)進(jìn)入哪一狀態(tài),從而保證了各級(jí)中斷依次被響應(yīng)。

        2.4 MODEM控制器模塊

        在UART中,MODEM控制器模塊的作用是用來(lái)和外部的調(diào)制解調(diào)器或者其他的UART設(shè)備進(jìn)行通信,它主要通過(guò)MODEM控制器和MODEM狀態(tài)寄存器來(lái)進(jìn)行具體操作。MODEM控制器用來(lái)控制DTRn(Data Terminal Ready)和RTSn(Request To Send)的輸出狀態(tài)。DCDn(Data Carrier Detect)、CTSn(Clear To Send)、DSRn(Data Set Ready)和RIn(Ring Indicator)的線性狀態(tài)由MODEM控制模塊來(lái)監(jiān)控,同時(shí)存儲(chǔ)于MODEM狀態(tài)寄存器中。

        3 基于UART的FPGA設(shè)計(jì)驗(yàn)證方法

        對(duì)于大多數(shù)FPGA設(shè)計(jì)來(lái)講,UART也可以作為設(shè)計(jì)模塊與PC的接口嵌入到FPGA芯片當(dāng)中,通過(guò)RS 232接口連接到計(jì)算機(jī),使用相關(guān)的串口調(diào)試軟件即可在計(jì)算機(jī)上對(duì)FPGA進(jìn)行數(shù)據(jù)的輸入,并且在顯示器上直接觀察到其輸出的結(jié)果,這樣就衍生出一種針對(duì)FPGA設(shè)計(jì)功能驗(yàn)證的直觀有效的方法,即基于UART與串口調(diào)試軟件的功能驗(yàn)證方法。該方法的關(guān)鍵在于如何將UART嵌入待驗(yàn)證的模塊,本文以卷積編碼加交織模塊為例,詳細(xì)介紹其與UART的連接方法,連接示意圖如圖3所示。

        在本方案中,每次實(shí)驗(yàn)由鍵盤(pán)輸入26 b數(shù)據(jù),通過(guò)串口調(diào)試軟件和UART發(fā)送到FPGA芯片,經(jīng)碼率為1/2的卷積編碼后得到52 b數(shù)據(jù)進(jìn)行交織,交織后的數(shù)據(jù)分為4 b一組送到UART發(fā)送模塊,經(jīng)UART通過(guò)串口發(fā)送到計(jì)算機(jī)上,最終在屏幕上看到編碼和交織的結(jié)果。

        卷積編碼模塊采用Xilinx的IP核實(shí)現(xiàn),該模塊要求串行輸入,而UART接收模塊的輸出為8位并行數(shù)據(jù),故在他們之間加上并串轉(zhuǎn)換模塊。隨著每一次并行數(shù)據(jù)的寫(xiě)入,并串轉(zhuǎn)換模塊會(huì)接收到一個(gè)寫(xiě)入的指示信號(hào),同時(shí)開(kāi)始順序輸出8位串行數(shù)據(jù)到卷積編碼模塊。卷積編碼器的輸出是2位并行數(shù)據(jù),由于先前的接收模塊及串并轉(zhuǎn)換模塊每次處理8 b數(shù)據(jù)的關(guān)系,故可以認(rèn)為卷積編碼器每次連續(xù)輸出8個(gè)2位并行數(shù)據(jù),而我們的系統(tǒng)要求每26個(gè)輸入比特進(jìn)行一次卷積編碼和交織,所以在編碼和交織之間連接一個(gè)FIFO作為數(shù)據(jù)緩沖,累計(jì)到26 b數(shù)據(jù)后輸出一次,同時(shí)設(shè)置其輸入為2 b并行,輸出為串行,即實(shí)現(xiàn)了并串轉(zhuǎn)換的功能,滿(mǎn)足了交織器串行數(shù)據(jù)輸入的要求。最后發(fā)送回計(jì)算機(jī)的數(shù)據(jù)為52 b,所以對(duì)UART發(fā)送模塊作了簡(jiǎn)單的修改,使其每次發(fā)送4 b數(shù)據(jù),這樣就可以將52 b分13次發(fā)完,同時(shí)為了實(shí)現(xiàn)交織器輸出的連續(xù)數(shù)據(jù)與UART的銜接,我們?cè)诖颂幵偌右粋€(gè)FIFO作為緩沖以及串并轉(zhuǎn)換,將輸入的串行數(shù)據(jù)變?yōu)? b并行數(shù)據(jù)逐次發(fā)送。

        這些模塊的工作都由一些控制信號(hào)來(lái)指示,所以本例中采用了一個(gè)自己編寫(xiě)的控制信號(hào)模塊來(lái)生成這些指示信號(hào),比如每次UART接收到數(shù)據(jù)后即產(chǎn)生一個(gè)寫(xiě)入信號(hào)指示串并轉(zhuǎn)換模塊開(kāi)始工作,同時(shí)在其輸出有效時(shí)產(chǎn)生信號(hào)告訴編碼器開(kāi)始工作;同理,兩個(gè)FIFO何時(shí)接收數(shù)據(jù)、何時(shí)輸出數(shù)據(jù)以及交織器何時(shí)工作都受該模塊產(chǎn)生的信號(hào)控制,這樣,就能夠保證多個(gè)模塊協(xié)調(diào)統(tǒng)一的工作。

        將輸入數(shù)據(jù)1101 0101 0101 1101 0111 1111 0110 01通過(guò)計(jì)算機(jī)發(fā)送到UART,按照每幀8 b的要求將該26 b的數(shù)據(jù)補(bǔ)0至32位,得到數(shù)據(jù)1101 0101 0101 1101 0111 1111 0110 0100 0000,轉(zhuǎn)換成16進(jìn)制為D55D7F40,寫(xiě)入FPGA進(jìn)行編碼交織再經(jīng)由UART傳回計(jì)算機(jī)得數(shù)據(jù)0D 0E 06 0B 00 0C 0C 09 03 0C 04 0C 0D,如圖4所示。每8位數(shù)據(jù)取后4位得D E 6 B 0 C C 9 3 C 4 C D,轉(zhuǎn)換為二進(jìn)制得1101 1110 0110 1011 0000 1100 1100 1001 0011 1100 0100 1100 1101。通過(guò)Matlab進(jìn)行理論驗(yàn)證,確為我們采用的(2,1,7)卷積編碼(171,133)再經(jīng)交織后得到的輸出。同時(shí)該實(shí)驗(yàn)也驗(yàn)證了UART在實(shí)際應(yīng)用中的效果。

        4 結(jié) 語(yǔ)

        使用FPGA實(shí)現(xiàn)UART模塊的功能,可以減小系統(tǒng)面積,降低功耗,同時(shí)使得設(shè)計(jì)更加緊湊和穩(wěn)定。本文使用VHDL語(yǔ)言在Xilinx公司FPGA芯片Vertax II Pro上實(shí)現(xiàn)了標(biāo)準(zhǔn)UART模塊并加以驗(yàn)證[4],在某些具體應(yīng)用中,也可以將本實(shí)現(xiàn)中的發(fā)送和接收模塊單獨(dú)使用,進(jìn)一步體現(xiàn)了FPGA設(shè)計(jì)的靈活性。此外,本設(shè)計(jì)的驗(yàn)證方案也能夠用來(lái)驗(yàn)證FPGA設(shè)計(jì)的功能,只要將UART集成在需要驗(yàn)證的模塊上,就可以通過(guò)連接開(kāi)發(fā)系統(tǒng)與計(jì)算機(jī),在PC終端方便地觀察系統(tǒng)的輸入和輸出,為FPGA設(shè)計(jì)的功能驗(yàn)證提出了新的方法。

        參 考 文 獻(xiàn)

        [1]姜寧,范多旺.基于FPGA/CPLD的通用異步通信接口UART的設(shè)計(jì)[J].信息技術(shù)與信息化,2006(1):86-87.

        [2]黃智偉.FPGA系統(tǒng)設(shè)計(jì)與實(shí)踐[M].北京:電子工業(yè)出版社,2005.

        [3]趙鑫,蔣亮.VHDL與數(shù)字電路設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2005.

        [4]Xilinx.Virtex-Ⅱ Platform FPGA User Guide.http://www.Xilinx.com.

        [5]聶濤,許世宏.基于FPGA的UART設(shè)計(jì).現(xiàn)代電子技術(shù),2006,29(2):31-33,36.

        国产一区二区杨幂在线观看性色| 日韩精品免费在线视频| 免费a级毛片无码a∨男男 | 国产在线一区观看| 亚洲欧美乱日韩乱国产| av在线不卡免费中文网| 久久亚洲AV无码一区二区综合| 免费无码午夜福利片69| av无码精品一区二区三区| 国产三级在线观看不卡| 免费看一级a女人自慰免费| 人人妻人人澡人人爽精品欧美| 一边摸一边做爽的视频17国产| 日本午夜伦理享色视频| 国产未成女年一区二区| 免费精品无码av片在线观看| 精品国产第一国产综合精品| 国产在线av一区二区| 蜜桃视频在线免费观看完整版| 澳门毛片精品一区二区三区| 亚洲av大片在线免费观看| 亚洲国产cao| 亚洲综合久久成人a片| 女局长白白嫩嫩大屁股| 午夜被窝精品国产亚洲av香蕉| 久久人妻精品中文字幕一区二区| 国产亚洲精品综合一区| 久热在线播放中文字幕| 久久久国产精品免费a片3d| 久草中文在线这里只有精品| 97国产精品麻豆性色| 国精品无码一区二区三区在线看 | 国产乱子伦精品无码专区| 白白色最新福利视频二| 国产伦精品一区二区三区在线| 免费黄网站久久成人精品| 久久香蕉免费国产天天看| 老师脱了内裤让我进去| 国语对白做受xxxxx在| 亚洲综合天堂av网站在线观看 | 亚洲AV无码一区二区一二区教师|