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

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

ID:37625547

大?。?89.25 KB

頁(yè)數(shù):12頁(yè)

時(shí)間:2019-05-26

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

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

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

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

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

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

5、取整為27。分頻器VerilogHDL語(yǔ)言代碼如下:moduleclkdiv(clk,clkout);inputclk;//系統(tǒng)時(shí)鐘outputclkout;//采樣時(shí)鐘輸出regclkout;reg[15:0]cnt;always@(posedgeclk)//分頻進(jìn)程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生成原理圖模塊。新建一個(gè)原理圖文件,在原理圖空白處雙擊,在彈出的Symbol對(duì)話框中選擇Project→clkidv模塊,單擊OK按鈕退出Symbol對(duì)話框。在原理圖的適當(dāng)位置放置clkdiv模塊,并添加輸入輸出模塊。保存原理圖為uartrxtx.bdf。編譯工程文件,編譯無(wú)誤后單擊Processing→GenerateFunctionalSimulationNetlist,產(chǎn)生功能仿真網(wǎng)表。新建波形仿真文件,加入輸入輸出信號(hào),設(shè)置系統(tǒng)時(shí)鐘信號(hào)clk的周期為20n

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

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

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

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