日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > EDA > 電子設(shè)計自動化
[導(dǎo)讀]通用異步收發(fā)器(Universal Asynchronous Receiver Transmitter,UART)是數(shù)字通信領(lǐng)域流行和廣泛使用的一種接口設(shè)備,主要用來控制符合RS 232-C協(xié)議的計算機與串行設(shè)備間的通信。普通串行外設(shè)和計算機間的通信,一般使

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

1 UART通信原理

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

2 UART的FPGA實現(xiàn)

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

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

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

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

MODEM模塊 其作用是用來和外部的調(diào)制解調(diào)器或者其他的UART設(shè)備進行通信。

2.1 接收模塊

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

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

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

2.2 發(fā)送模塊

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

2.3 中斷仲裁模塊

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

2.4 MODEM控制器模塊

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

3 基于UART的FPGA設(shè)計驗證方法

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

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

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

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

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

4 結(jié) 語

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

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

英偉達9月20日的“春晚”GTC沒能力挽狂瀾。美東時間9月26日,英偉達收盤于122.28美元。一個月前的8月26日,英偉達開啟了本輪下行,從當(dāng)天開盤的178.57美元一路下探,至今已跌去超三成。

關(guān)鍵字: 算力 英偉達 計算機

中國超級計算機是如何實現(xiàn)從無到有,從大型機到巨型機進化的?1950年3月,中央人民廣播電臺播發(fā)了一封書信,信中說“梁園雖好,非久居之鄉(xiāng),歸去來兮。

關(guān)鍵字: 超級 計算機 進化史

隨著IT技術(shù)飛速發(fā)展,互聯(lián)網(wǎng)已經(jīng)進入了“物聯(lián)網(wǎng)”時代。物聯(lián)網(wǎng)中需要的大量設(shè)備不在依賴人與人之間的交互產(chǎn)生聯(lián)系,更多通過協(xié)議、通信、程序設(shè)計等方式連接到一處。即 “物聯(lián)網(wǎng)”的目的則是讓所有的物品都具有計算機的智能但并不以通...

關(guān)鍵字: 嵌入式 物聯(lián)網(wǎng) 計算機

現(xiàn)實生活中,我們聽到的聲音都是時間連續(xù)的,我們稱為這種信號叫模擬信號。模擬信號需要進行數(shù)字化以后才能在計算機中使用。

關(guān)鍵字: 模擬信號 數(shù)字化 計算機

最近為什么越來越多的研究開始利用FPGA作為CNN加速器?FPGA與CNN的相遇究竟能帶來什么神奇效果呢?原來,F(xiàn)PGA擁有大量的可編程邏輯資源,相對于GPU,它的可重構(gòu)性以及高功耗能效比的優(yōu)點,是GPU無法比擬的;同時...

關(guān)鍵字: FPGA 可編程邏輯資源 GPU

FPGA的應(yīng)用領(lǐng)域包羅萬象,我們今天來看看在音樂科技領(lǐng)域及醫(yī)療照護的智能巧思。

關(guān)鍵字: FPGA 科技領(lǐng)域 智能

強大的產(chǎn)品可降低信號噪音并提高分辨率與動態(tài)

關(guān)鍵字: Spectrum儀器 數(shù)字化儀 FPGA

最近某項目采用以太網(wǎng)通信,實踐起來有些奇怪,好像設(shè)計成只能應(yīng)答某類計算機的ICMP(ping)命令, 某類計算機指的是Windows特定系統(tǒng),其他系統(tǒng)發(fā)送ping都不能正確識別。

關(guān)鍵字: 嵌入式Linux FPGA 協(xié)議

近兩年,國外廠商的FPGA芯片價格飆升,由于價格,貨期,出口管制等多方面因素的影響,很多公司都在尋找FPGA國產(chǎn)化替代方案。我工作中正在使用的幾款芯片也面臨停產(chǎn)的風(fēng)險,用一片少一片,了解到國產(chǎn)FPGA發(fā)展的也不錯,完全自...

關(guān)鍵字: FPGA 芯片 EDA

萬物智聯(lián)時代,嵌入式技術(shù)及其應(yīng)用的形態(tài)將更加豐富和多元,同時也將日益呈現(xiàn)深度物理融合、混合架構(gòu)共存、群體智能協(xié)同、網(wǎng)絡(luò)安全攸關(guān)等諸多新的計算特性。顯然,經(jīng)典的嵌入式系統(tǒng)體系結(jié)構(gòu)、軟硬件技術(shù)和開發(fā)方法都已很難應(yīng)對新趨勢下的...

關(guān)鍵字: 嵌入式 物聯(lián)網(wǎng) 計算機

電子設(shè)計自動化

21319 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉