![UART數(shù)據(jù)通信(發(fā)送模塊部分)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/16/1946ffee-957d-450f-80e0-30f147f00af7/1946ffee-957d-450f-80e0-30f147f00af71.gif)
![UART數(shù)據(jù)通信(發(fā)送模塊部分)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/16/1946ffee-957d-450f-80e0-30f147f00af7/1946ffee-957d-450f-80e0-30f147f00af72.gif)
![UART數(shù)據(jù)通信(發(fā)送模塊部分)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/16/1946ffee-957d-450f-80e0-30f147f00af7/1946ffee-957d-450f-80e0-30f147f00af73.gif)
![UART數(shù)據(jù)通信(發(fā)送模塊部分)_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/16/1946ffee-957d-450f-80e0-30f147f00af7/1946ffee-957d-450f-80e0-30f147f00af74.gif)
![UART數(shù)據(jù)通信(發(fā)送模塊部分)_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/16/1946ffee-957d-450f-80e0-30f147f00af7/1946ffee-957d-450f-80e0-30f147f00af75.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、UART數(shù)據(jù)通信摘要:UART協(xié)議是數(shù)據(jù)通信及控制系統(tǒng)中廣泛使用的一種全雙工串行數(shù)據(jù)傳輸協(xié)議,在實際工業(yè)生產中有時并不使用 UART的全部功能,只需將其核心功能集成即可。波特率發(fā)生器、接收器和發(fā)送器是UART的三個核心功能模塊,本課程設計分成三部分,本人負責UART接受模塊的設計和仿真,其余部分由另兩位同學完成。本文使用Verilog語言對發(fā)送功能模塊進行描述并加以整合,并利用Xilinx ISE 軟件進行仿真,其結果完全符合UART協(xié)議的要求。1. UART 數(shù)據(jù)通信協(xié)議的介紹UART(即 Universal Asynchronous Receiver
2、;Transmitter通用異步收發(fā)器)是廣泛使用的串行數(shù)據(jù)傳輸協(xié)議。UART允許在串行鏈路上進行全雙工的通信。UART 通信接口簡單,只需要兩根線(本文只討論兩根線的情況,不涉及狀態(tài)控制等信號) : tx 是UART 數(shù)據(jù)發(fā)送信號, rx 是UART 數(shù)據(jù)接收信號。由于沒有時鐘信號作為采樣信號,因此在UART 的串行數(shù)據(jù)中需要增加一些額外的信息,這些信息連同數(shù)據(jù)組成UART 的數(shù)據(jù)幀格式。UART 的數(shù)據(jù)幀格式是:起始位(值為0) 、數(shù)據(jù)位(可根據(jù)需要設置成6 ,., 9 或其他位數(shù),數(shù)據(jù)位是低位在先、高位在后)、奇偶校驗位(可根據(jù)需要設置成奇校驗、偶校驗或無校驗,本章介紹的是無校驗)、停止
3、位(停止位可有1 ,., 2 位)0。UART 的具體數(shù)據(jù)幀格式如下圖所示。UART 數(shù)據(jù)幀格式起始位的意義是提醒接收方數(shù)據(jù)即將到來,請做好接收數(shù)據(jù)的準備。數(shù)據(jù)位是接收方需要接收的數(shù)據(jù)信息。奇偶校驗位的意義是給接收方提供一種校驗數(shù)據(jù)正確與否的方法和信息。這需要雙方事先約定好是奇校驗還是偶校驗或者無校驗。停止位是提醒接收方數(shù)據(jù)已發(fā)送完畢,如果接收方按照UART 協(xié)議沒有正常接收到停止位,則說明該幀數(shù)據(jù)不完整,可以判定數(shù)據(jù)無效。2. UART 數(shù)據(jù)發(fā)送模塊建模根據(jù)UART 數(shù)據(jù)通信協(xié)議, UART 數(shù)據(jù)發(fā)送模塊還是比較簡單的。實現(xiàn)過程描述如下:在空閑狀態(tài)接收發(fā)送數(shù)據(jù)的指令后,在裝載數(shù)據(jù)的同時,在數(shù)
4、據(jù)的低位加上1 位的開始位0 ,在數(shù)據(jù)的高位加上1 位的停止位1 ,接著在時鐘的節(jié)拍下把這10 位數(shù)據(jù)從低位到高位發(fā)送出去,最后恢復UART 數(shù)據(jù)發(fā)送模塊為空閑狀態(tài)。根據(jù)以上描述設計流程圖,如下圖所示。UART 數(shù)據(jù)發(fā)送流程圖3. UART 數(shù)據(jù)接受模塊UART 數(shù)據(jù)接收模塊相對UART 數(shù)據(jù)發(fā)送模塊來說更復雜些。下面簡單的介紹一下UART 數(shù)據(jù)接收的時序分析。因為UART是異步通信,在數(shù)據(jù)采樣上沒有同步時鐘作為參考點。結合UART 數(shù)據(jù)通信協(xié)議,UART 首先需要捕獲數(shù)據(jù)線上的起始信號,在起始位后連續(xù)接收8 位數(shù)據(jù),最后判斷停止位是否有效,如果有效則表示一幀UART 數(shù)據(jù)完整接收,否則表示U
5、ART 數(shù)據(jù)幀出錯(這里不考慮奇偶校驗位)。由于沒有傳送時鐘信號,所以接收方需要知道發(fā)送方發(fā)出數(shù)據(jù)的波特率。雖然知道了發(fā)送方的波特率,但由于接收方與發(fā)送方可能是兩個不同的時鐘源,所以時鐘頻率存在偏差。為了解決不同時鐘的偏差,UART在接收方對采樣時鐘做出規(guī)定,即采樣時鐘是數(shù)據(jù)波特率的16 倍。上面講到接收方接收一個數(shù)據(jù)需要采樣16 次,這16 次是這樣分配的:當捕獲到數(shù)據(jù)線上的下降沿時開始計數(shù),計數(shù)到第8 個采樣周期時的采樣數(shù)據(jù)作為接收到的數(shù)據(jù)。當計數(shù)到第16 個采樣周期時,計數(shù)器歸零重新計數(shù)。每計數(shù)到8 時進行數(shù)據(jù)采樣。這樣,只要發(fā)送方與接收方的時鐘信號的頻率不超過1 / 16 ,就可以正確
6、采樣數(shù)據(jù)了。4. UART分頻器假設數(shù)據(jù)的波特率為p,則所需時鐘的頻率為16*p。以波特率p為9600為例,系統(tǒng)時鐘為50MHz,則分頻系數(shù)為50000000/(16*9600) = 325.52,取整為326。分頻器Verilog HDL語言代碼如下:module clkdiv(clk, clkout);input clk; /系統(tǒng)時鐘output clkout; /采樣時鐘輸出reg clkout;reg 15:0 cnt;always (posedge clk) /分頻進程beginif(cnt = 16'd162)beginclkout <= 1'b1;cnt &
7、lt;= cnt + 16'd1;endelse if(cnt = 16'd325)beginclkout <= 1'b0;cnt <= 16'd0;endelsebegincnt <= cnt + 16'd1;endendEndmodule5. UART 數(shù)據(jù)發(fā)送模塊仿真下面使用Xilinx ISE Design Suite 12.4對UART 數(shù)據(jù)發(fā)送模塊進行仿真對工程文件進行“Simulate Behavioral Model”得到波形仿真圖。0-10ns,模塊復位信號r_rst_n,低電平有效(r_rst_n值為0)。(1) 波
8、形仿真圖時序分析1 0-443ns,數(shù)據(jù)接收信號w_uart_tx值為1,此時一直空閑,未發(fā)送數(shù)據(jù)。2 在443ns時刻,收到UART數(shù)據(jù)的發(fā)送指令(r_tx_order值為1),開始啟動UART數(shù)據(jù)發(fā)送流程:首先是發(fā)送起始位0,接著開始發(fā)送8位數(shù)據(jù),最后發(fā)送停止位1,然后又回到空閑狀態(tài)。其中每一位需32ns。3 在443ns475ns之間發(fā)送起始位0;4 在475ns731ns之間發(fā)送8個數(shù)據(jù)位,需發(fā)送的數(shù)據(jù)r_tx_data=0010 0100,發(fā)送時,先發(fā)送低位再發(fā)送高位,發(fā)送數(shù)據(jù)的值從左到右依次是: 0010 0100 5 在731ns763ns之間發(fā)送停止位1;6 因此在443ns7
9、63ns之間,w_uart_tx的值從左到右依次是:0 0010 0100 1 ;至此,一幀UART數(shù)據(jù)發(fā)送完畢。UART數(shù)據(jù)發(fā)送忙信號w_uart_tx_buys恢復為低。同理,當發(fā)送數(shù)據(jù)r_tx_data=0000 1001時,此時w_uart_tx的值從左到右依次是:0 1001 0000 1 。設計和仿真時碰到的問題主要有:(2) 主要問題及措施問題1:在仿真過程中經常遇到一些寄存器沒有被初始化,導致仿真結果不正確,這是因為if語句嵌套太復雜或循環(huán)語句使用不恰當使得寄存器初始化語句未能執(zhí)行。 措施:盡量減少if語句的嵌套層數(shù),這樣可以減少閱讀程序的復雜度和程序調試的復雜度,能夠更容易發(fā)
10、現(xiàn)錯誤以便及時尋找到解決方案。 問題2:在程序中使用initial過程塊進行寄存器的初始化,會使源程序在下載到目標板的整合過程時不能通過。 措施:可以外接一個輸入信號進行各寄存器的初始化,這樣做既可以使源程序順利下載到目標板中,又可以從通訊模塊的外部對通訊模塊進行控制。 問題3:在程序中如果在兩個always過程塊中對同一個變量進行賦值,程序將不能下載到目標板中,因為當兩個always過程塊中的敏感事件列表中的事件同時滿足時,就會引發(fā)在兩個always語句中對相同變量同時賦值而導致沖突。 措施:合并always語句塊,即把引發(fā)同一變量改變的過程敏感事件用or連接起來放在一個always語句塊中。6. 結束語Verilog HD
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2031年中國背景音樂廣播語音系統(tǒng)行業(yè)投資前景及策略咨詢研究報告
- 2025年電渦流緩速器控制器項目可行性研究報告
- 2025至2031年中國熱熔膠噴槍行業(yè)投資前景及策略咨詢研究報告
- 2025至2031年中國帶燈熒光筆行業(yè)投資前景及策略咨詢研究報告
- 2025年對焊加強管座項目可行性研究報告
- 2025年臺式移印打碼機項目可行性研究報告
- 2025年八針鏈式縫紉機項目可行性研究報告
- 2025至2030年中國面粉機磨輥數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年速溶乳化輕質硅酸鈉項目投資價值分析報告
- 2025至2030年納豆激酶項目投資價值分析報告
- AQ6111-2023個體防護裝備安全管理規(guī)范
- (正式版)JBT 9229-2024 剪叉式升降工作平臺
- 中國紅十字會救護員培訓理論考試試題及答案
- 空氣能熱泵安裝示意圖
- 建筑工程施工質量驗收規(guī)范檢驗批填寫全套表格示范填寫與說明
- 2020年中秋國慶假日文化旅游市場安全生產檢查表
- 昆明天大礦業(yè)有限公司尋甸縣金源磷礦老廠箐-小凹子礦段(擬設)采礦權出讓收益評估報告
- 心有榜樣行有力量 -從冬奧冠軍徐夢桃身上感受青春奮斗初中主題班會
- GB/T 3860-1995文獻敘詞標引規(guī)則
- 七年級英語下冊閱讀理解10篇
- 設計質量、進度保證措施
評論
0/150
提交評論