uart串口通信設(shè)計實例

uart串口通信設(shè)計實例

ID:6591293

大?。?35.50 KB

頁數(shù):8頁

時間:2018-01-19

uart串口通信設(shè)計實例_第1頁
uart串口通信設(shè)計實例_第2頁
uart串口通信設(shè)計實例_第3頁
uart串口通信設(shè)計實例_第4頁
uart串口通信設(shè)計實例_第5頁
資源描述:

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

1、2.5??UART串口通信設(shè)計實例(1)接下來用剛才采用的方法設(shè)計一個典型實例。在一般的嵌入式開發(fā)和FPGA設(shè)計中,串口UART是使用非常頻繁的一種調(diào)試手段。下面我們將使用VerilogRTL編程設(shè)計一個串口收發(fā)模塊。這個實例雖然簡單,但是在后續(xù)的調(diào)試開發(fā)中,串口使用的次數(shù)比較多,這里闡明它的設(shè)計方案,不僅僅是為了講解RTL編程,而且為了后續(xù)使用兼容ARM9內(nèi)核實現(xiàn)嵌入式開發(fā)。串口在一般的臺式機(jī)上都會有。隨著筆記本電腦的使用,一般會采用USB轉(zhuǎn)串口的方案虛擬一個串口供筆記本使用。圖2-7為UART串口的結(jié)構(gòu)圖。串口具有9個引腳,但是真正連接入FPGA開發(fā)板的一般只

2、有兩個引腳。這兩個引腳是:發(fā)送引腳TxD和接收引腳RxD。由于是串行發(fā)送數(shù)據(jù),因此如果開發(fā)板發(fā)送數(shù)據(jù)的話,則要通過TxD線1bit接著1bit發(fā)送。在接收時,同樣通過RxD引腳1bit接著1bit接收。再看看串口發(fā)送/接收的數(shù)據(jù)格式(見圖2-8)。在TxD或RxD這樣的單線上,是從一個周期的低電平開始,以一個周期的高電平結(jié)束的。它中間包含8個周期的數(shù)據(jù)位和一個周期針對8位數(shù)據(jù)的奇偶校驗位。每次傳送一字節(jié)數(shù)據(jù),它包含的8位是由低位開始傳送,最后一位傳送的是第7位。?(點擊查看大圖)圖2-8??串口發(fā)送串行數(shù)據(jù)的格式示意圖上述格式只是發(fā)送串口數(shù)據(jù)最通常的格式。打開Wi

3、ndows自帶的串口收發(fā)軟件:超級終端,可以配置相關(guān)的選項。比如,每秒位數(shù),可以設(shè)定一個周期的長度:如果我們設(shè)定為9600,則上圖中1位持續(xù)的時間是:1/9600s。數(shù)據(jù)位也可以從5、6、7、8中選一位。奇偶校驗可以從偶校驗、奇校驗、無、標(biāo)記、空格中任選一個。停止位可以是:1、1.5、2。在這里,我們選擇最通常的配置,如圖2-9所示。?這個設(shè)計有兩個目的:一是從串口中接收數(shù)據(jù),發(fā)送到輸出端口。接收的時候是串行的,也就是一個接一個的;但是發(fā)送到輸出端口時,我們希望是8位放在一起,成為并行狀態(tài)(見圖2-10)。我們知道,串口中出現(xiàn)信號,是沒有先兆的。如果出現(xiàn)了串行數(shù)據(jù)

4、,則如何通知到輸出端口呢?我們引入“接收有效”端口?!敖邮沼行А倍丝谠谝话闱闆r下都是低電平,一旦有數(shù)據(jù)到來時,它就變成高電平。下一個模塊在得知“接收有效”信號為高電平時,它就明白:新到了一個字節(jié)的數(shù)據(jù),放在“接收字節(jié)”端口里面。?圖2-10??串口接收和發(fā)送數(shù)據(jù)時進(jìn)行串并轉(zhuǎn)換的示意圖二是發(fā)送數(shù)據(jù)到串口。發(fā)送數(shù)據(jù)的時候,我們也希望輸入端口能夠給出一個簡單的形式。我們引入“發(fā)送有效”信號,它為高電平,表示我們希望把“發(fā)送字節(jié)”送入TxD發(fā)送出去。但是“發(fā)送有效”信號是否生效是有限制的,也就是正在發(fā)送的時候,是不能接收新的數(shù)據(jù)并發(fā)送的。所以,我們引入一個“發(fā)送狀態(tài)”信號

5、,它標(biāo)識當(dāng)前的“發(fā)報機(jī)”是否處于忙碌狀態(tài)。如果“發(fā)報機(jī)”處于忙碌狀態(tài),則它拒絕“發(fā)送有效”信號,不予執(zhí)行。根據(jù)上面的分析,可以確定端口信號如下:1.module?rxtx?(?2.????????????????clk,?3.????????????????rst,?4.????????????????rx,?5.????????????????tx_vld,?6.????????????????tx_data,?7.?????????????????8.????????????????rx_vld,?9.????????????????rx_data,?10.?

6、???????????????tx,?11.????????????????txrdy?12.????????????????);?13.input???????????clk;?14.input???????????rst;?1.input???????????rx;?2.input???????????tx_vld;?3.input??[7:0]????tx_data;?4.?5.output?????????rx_vld;?6.output?[7:0]???rx_data;?7.output?????????tx;?8.output?????????txrd

7、y;?rx對應(yīng)RxD,tx對應(yīng)TxD。rx_vld就是“接收有效”信號,rx_data則是“接收字節(jié)”信號。tx_vld是“發(fā)送有效”信號,tx_data是“發(fā)送字節(jié)”信號。txrdy是“發(fā)送狀態(tài)”信號,它是低電平表示正處于發(fā)送狀態(tài),不接收新的字節(jié)而進(jìn)行發(fā)送。我們知道,串行數(shù)據(jù)的頻率是9600Hz,而FPGA開發(fā)板的頻率卻是非常高的。這里,我們假定FPGA的工作頻率是25MHz,則串口發(fā)送1位信息,則FPGA上的clk需要計數(shù):25000000/9600=2604次。我們知道rx一旦變化,不論是從0到1,還是從1到0,都表示1位信息的傳遞開始。因此,我們在設(shè)計一個

8、最大計數(shù)值

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

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

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