異步串行通信接收發(fā)送器(UART)的VHDL設計_第1頁
異步串行通信接收發(fā)送器(UART)的VHDL設計_第2頁
異步串行通信接收發(fā)送器(UART)的VHDL設計_第3頁
全文預覽已結束

下載本文檔

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

文檔簡介

異步串行通信接收發(fā)送器(UART)的VHDL設計異步串行通信接收發(fā)送器(UART)的VHDL設計

中圖分類號:TN702文獻標識碼:A文章編號:1009-914X〔2022〕15-0280-02

[Abstract]TheUniversalAsynchronousReceiver/Transmitter〔UART〕isoneofthekeycomponentsinmodernelectronsystems.Inthispaper,weuseVeryHigh-SpeedIntegratedCircuithardwareDescriptionLanguage〔VHDL〕todesigntheUART?circuitwhichcansatisfieddesignrequirement.Intheend,weusetheModelSimsoftwaretosimulate?and?test,toverifytheUARTsothatitcanmeetthecriterias.

[Keywords]UART,VHDL,ModelSim

1.引言

異步串行通信接收發(fā)送器是現代電子系統中的關鍵部件之一,其作為一種體積小、重量輕和可靠性高的混合集成電路〔MIC〕,在電子系統尤其是近代航天、航空技術中被廣泛使用。

本文采用VHDL語言進行UART的設計實現,首先VHDL描述UART系統,包括系統的頂層描述和串行輸入并行輸出、并行輸入串行輸出子系統描述;其次,使用ModelSim對設計進行功能仿真,為子系統編寫仿真程序來驗證其行為是否合乎設計要求;最后將程序下載到芯片,在演示板上進行設計功能的硬件驗證。

2.異步串行通信接收發(fā)送器〔UART〕的設計

2.1設計環(huán)境

一臺裝有Windows操作系統的計算機,安裝了XILINX公司設計軟件ISE6.2和ModelSim。

2.2UART電路主要功能和外部引腳圖

UART電路的主要功能為:

〔1〕當CS和WR有效時〔低電平時〕,從計算機接收8位并行數據到后在TXD端串行輸出。發(fā)送完畢后,INT0置“0〞,直到再次寫入一個數據為止。

〔2〕當接收端RXD檢測到由“1〞到“0〞的負跳變后,開始接收數據到移位存放器,接收完畢后,INT1置“0〞。當RD有效時,將緩沖區(qū)的數據送到輸出端D[0:7]。

2.3UART的設計

UART電路可以分為串行輸入并行輸出、并行輸入串行輸出兩個模塊,按照Top-Down設計辦法,首先作出系統的頂層描述,局部代碼如下:

componentpar_in_ser_out

port〔reset,clk16x,cs,wr:instd_logic;

din:instd_logic_vector〔7downto0〕;

txd:outstd_logic;

int0:outstd_logic〕;

endcomponent;

componentser_in_par_out

port〔reset,clk16x,rxd,rd:instd_logic;

dout:outstd_logic_vector〔7downto0〕;

int1:outstd_logic〕;

endcomponent;

上述程序表示了UART內兩個子系統的劃分,由2個元件,即par_in_ser_out和ser_in_par_out構成,其中clk16x是系統時鐘CLOCK。但上述程序未定義元件的具體實現。

下面是并入串出模塊par_in_ser_out的VHDL程序的局部代碼,定義了元件par_in_ser_out的具體實現。當CS和WR有效時〔低電平〕,將輸入口din的數據裝入緩沖區(qū)tbr,時鐘信號clk16x經16分頻后產生串行輸出時鐘clk1x。其中clk1x_enable當WR有效時為高電平。在時鐘clk1x的回升沿,移位存放器tsr依次左移,經TXD輸出,每移出一位,tsr的最低位補“0〞。

--16分頻局部

process〔reset,clk16x,clk1x_enable〕

begin

ifreset='1'then

clkdivelsifclk16x'eventandclk16x='1'then

ifclk1x_enable='1'then

clkdivendif;

endif;

endprocess;

clk1x--移位存放器移出數據到TXD局部

process〔reset,clk1x,clk1x_enable〕

begin

ifreset='1'orclk1x_enable='0'thensentelsifclk1x'eventandclk1x='1'then

ifclk1x_enable='1'then

sentendif;

endif;

endprocess;

process〔reset,clk1x,sent,tbr〕

begin

ifreset='1'then

txdtsrelsifclk1x'eventandclk1x='1'then

ifstd_logic_vector〔sent〕="0001"then

tsrelsifstd_logic_vector〔sent〕="0010"then

txdelsifstd_logic_vector〔sent〕>="0011"andstd_logic_vector〔sent〕tsrtxdendif;

endif;

endprocess;

串入并出模塊ser_in_par_out的時鐘16分頻局部、接收數據到移位存放器rsr局部與par_in_ser_out模塊類似,這里不再詳細解釋了。需要表明一下的是,ser_in_par_out模塊只有當RD有效時,才將緩沖區(qū)的數據送到輸出口dout。

3.ModelSim仿真測試及結果分析

3.1ModelSim仿真測試的結果

par_in_ser_out模塊的仿真程序及仿真結果如圖所示2所示:

tb:PROCESS

BEGIN

resetdincswrwait;--willwaitforever

ENDPROCESS;

ser_in_par_out模塊的仿真程序及仿真結果如圖所示3所示:

tb:PROCESS

BEGIN

resetrdrxdwait;--willwaitforever

ENDPROCESS;

由上可知,經ModelSim軟件仿真測試,采用VHDL生成的UART電路的串行輸入并行輸出、并行輸入串行輸出兩個模塊功能均正常實現。

3.2設計中可以改良的地方

在par_in_ser_out和ser_in_par_out模塊均可以設置奇偶校驗位,以便檢

溫馨提示

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

評論

0/150

提交評論