UART收發(fā)器設(shè)計實例

UART收發(fā)器設(shè)計實例

ID:37625547

大?。?89.25 KB

頁數(shù):12頁

時間:2019-05-26

UART收發(fā)器設(shè)計實例_第1頁
UART收發(fā)器設(shè)計實例_第2頁
UART收發(fā)器設(shè)計實例_第3頁
UART收發(fā)器設(shè)計實例_第4頁
UART收發(fā)器設(shè)計實例_第5頁
資源描述:

《UART收發(fā)器設(shè)計實例》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、UART收發(fā)器設(shè)計實例UART(UniversalAsynchronousReceiverTransmitter,通用異步收發(fā)器)是廣泛使用的異步串行數(shù)據(jù)通信協(xié)議。下面首先介紹UART硬件接口及電平轉(zhuǎn)換電路,分析UART的傳輸時序并利用VerilogHDL語言進行建模與仿真,最后通過開發(fā)板與PC相連進行RS-232通信來測試UART收發(fā)器的正確性。UART界面介紹本節(jié)所介紹的UART即美國電子工業(yè)協(xié)會定義的RS-232C,簡稱RS-232。RS-232的接口一般有9針的DB9和25針的DB25,這里以9針為例,它的各個引腳的定義如表。DB9的引腳定義引腳功能縮寫1資料載波檢測DCD2數(shù)據(jù)

2、接收RXD3資料發(fā)送TXD4資料終端準備DTR5地GND6資料設(shè)備準備就緒DSR7發(fā)送請求RTS8清除發(fā)送CTS9地GND由于RS-232的電氣特性與FPGA引腳不相同,因此它們之間不能直接相連,對于RS-232的數(shù)據(jù)線,當為邏輯“1”時,對應(yīng)電平是-15V~-3V;當為邏輯“0”時,對應(yīng)電平是15V~3V。因此,與FPGA相連之前必須進行電平轉(zhuǎn)換,轉(zhuǎn)換原理圖如圖所示RS-232電平轉(zhuǎn)換原理圖UART傳輸時序UART傳輸時序如圖UART傳輸時序發(fā)送數(shù)據(jù)過程:空閑狀態(tài),線路處于高電位;當收到發(fā)送數(shù)據(jù)指令后,拉低線路一個數(shù)據(jù)位的時間T,接著數(shù)據(jù)按低位到高位依次發(fā)送,數(shù)據(jù)發(fā)送完畢后,接著發(fā)送奇

3、偶校驗位和停止位(停止位為高電位),一幀資料發(fā)送結(jié)束。接收數(shù)據(jù)過程:空閑狀態(tài),線路處于高電位;當檢測到線路的下降沿(線路電位由高電位變?yōu)榈碗娢唬r說明線路有數(shù)據(jù)傳輸,按照約定的波特率從低位到高位接收數(shù)據(jù),數(shù)據(jù)接收完畢后,接著接收并比較奇偶校驗位是否正確,如果正確則通知后續(xù)設(shè)備準備接收數(shù)據(jù)或存入緩存。由于UART是異步傳輸,沒有傳輸同步時鐘。為了能保證數(shù)據(jù)傳輸?shù)恼_性,UART采用16倍數(shù)據(jù)波特率的時鐘進行采樣。每個數(shù)據(jù)有16個時鐘采樣,取中間的采樣值,以保證采樣不會滑碼或誤碼。一般UART一幀的數(shù)據(jù)位數(shù)為8,這樣即使每個數(shù)據(jù)有一個時鐘的誤差,接收端也能正確地采樣到數(shù)據(jù)。UART的接收數(shù)據(jù)

4、時序為:當檢測到數(shù)據(jù)的下降沿時,表明線路上有數(shù)據(jù)進行傳輸,這時計數(shù)器CNT開始計數(shù),當計數(shù)器為24=16+8時,采樣的值為第0位數(shù)據(jù);當計數(shù)器的值為40時,采樣的值為第1位數(shù)據(jù),依此類推,進行后面6個數(shù)據(jù)的采樣。如果需要進行奇偶校驗,則當計數(shù)器的值為152時,采樣的值即為奇偶位;當計數(shù)器的值為168時,采樣的值為“1”表示停止位,一幀數(shù)據(jù)接收完成。本節(jié)章將按上面的算法進行VerilogHDL語言建模與仿真。UART分頻器假設(shè)數(shù)據(jù)的波特率為p,則所需時鐘的頻率為16*p。以波特率p為115200為例,系統(tǒng)時鐘為50MHz,則分頻系數(shù)為50000000/(16*115200)=27.127,

5、取整為27。分頻器VerilogHDL語言代碼如下:moduleclkdiv(clk,clkout);inputclk;//系統(tǒng)時鐘outputclkout;//采樣時鐘輸出regclkout;reg[15:0]cnt;always@(posedgeclk)//分頻進程beginif(cnt==16'd12)beginclkout<=1'b1;cnt<=cnt+16'd1;endelseif(cnt==16'd26)beginclkout<=1'b0;cnt<=16'd0;endelsebegincnt<=cnt+16'd1;endendendmodule保存文件為clkdiv.v,單擊

6、Files→Create/Update→CreateSymbolFilesforCurrentFile命令,為clkdiv.v生成原理圖模塊。新建一個原理圖文件,在原理圖空白處雙擊,在彈出的Symbol對話框中選擇Project→clkidv模塊,單擊OK按鈕退出Symbol對話框。在原理圖的適當位置放置clkdiv模塊,并添加輸入輸出模塊。保存原理圖為uartrxtx.bdf。編譯工程文件,編譯無誤后單擊Processing→GenerateFunctionalSimulationNetlist,產(chǎn)生功能仿真網(wǎng)表。新建波形仿真文件,加入輸入輸出信號,設(shè)置系統(tǒng)時鐘信號clk的周期為20n

7、s,保存波形文件為uartrxtx.vwf,單擊按鈕進行分頻器的波形仿真,波形仿真報告如圖所示。分頻器的波形仿真報告波形仿真報告說明:分頻時鐘輸出實現(xiàn)了所需的27分頻,分頻模塊得到正確驗證。UART發(fā)送模塊UART發(fā)送模塊的功能:接收到發(fā)送指令后,把數(shù)據(jù)按UART協(xié)議輸出,先輸出一個低電平的起始位,然后從低到高輸出8個數(shù)據(jù)位,接著是可選的奇偶校驗位,最后是高電平的停止位。VerilogHDL語言代碼如下:moduleuarttx(c

當前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。