freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

信息與通信]畢業(yè)論文“基于fpga的uart模塊設(shè)計(jì)”(參考版)

2024-11-15 00:44本頁面
  

【正文】 在此謹(jǐn)向潘老師致以最衷心的感謝和最誠摯的敬意。特別要感謝我的導(dǎo)師 —— 潘啟勇講師,潘老師在學(xué)業(yè)上悉心指導(dǎo)不僅傳授了豐富的理 論知識和實(shí)踐經(jīng)驗(yàn),還有科學(xué)的思維方法和嚴(yán)謹(jǐn)認(rèn)真的治學(xué)態(tài)度,使我受益匪淺。當(dāng)然,這只是一個想法,還沒有進(jìn)行實(shí)際設(shè)計(jì)和測試。當(dāng)長時(shí)間無數(shù)據(jù)交換時(shí),UART 工作時(shí)鐘掛起,只讓工作狀態(tài)檢測程序運(yùn)行,檢測起始位。 ,當(dāng)長時(shí)間沒有數(shù)據(jù)傳輸時(shí)仍工作在起始位檢測狀態(tài)下。為方便處理,分頻時(shí)候把分頻系數(shù)當(dāng)成整數(shù),雖然說相差不大,但是在功能仿真的時(shí)候還是有區(qū)別的。 ,要根據(jù)基準(zhǔn)時(shí)鐘 進(jìn)行分頻得到的。 設(shè)計(jì)完該系統(tǒng)以后,我覺得不足之處以及未來的工作展望有如下幾點(diǎn): ,沒有設(shè)計(jì) FIFO,這使得該 UART不能工作在高數(shù)據(jù)傳輸率上,同樣因沒有 FIFO數(shù)據(jù)緩沖寄存器, CPU處理數(shù)據(jù)時(shí)效率會降低。這僅僅是一 個簡單的通信接口,可根據(jù)不同系統(tǒng)的需要, 在設(shè)計(jì)的過程中可靈活更改設(shè)計(jì)要求而不需改變外部接口信號如 增加 FIFO、中斷控制等內(nèi)容。這一 UART接口部分僅消耗了很少的邏輯單元,對于 FPGA來說,這點(diǎn)資源實(shí)在是微不足道的,用如此少的資源就可以為系統(tǒng)增添一條新的數(shù)據(jù)通道,這是十分值得的。比如具有可編程波特率的模式、可變的有效數(shù)據(jù)位長度、奇偶校驗(yàn)?zāi)J?、錯誤檢測處理等等。然后利用 TopDown的設(shè)計(jì)方法對 UART整個系統(tǒng)進(jìn)行層次化的設(shè)計(jì),設(shè)計(jì)的模塊主要包括:頂層模塊、發(fā)送模塊、接收模塊、波特率發(fā)生器模塊。 常熟理工學(xué)院畢業(yè)設(shè)計(jì) (論文) 23 結(jié) 語 本課題是針對傳統(tǒng) UART芯片在現(xiàn)代設(shè)計(jì)電路時(shí)顯露出的不足以及基于現(xiàn)代 FPGA技術(shù)上的優(yōu)勢所設(shè)計(jì)的。 小節(jié) 本章介紹了該課題設(shè)計(jì)的功能仿真驗(yàn)證方案,給出了仿真和實(shí)物驗(yàn)證結(jié)果,對結(jié)果進(jìn)行了分析。第一幅圖: ACH+53H=255D;第二幅: 56H+A9H=255D。下面驗(yàn)證一下。由上面介紹計(jì)算機(jī)接受的數(shù)據(jù)應(yīng)為發(fā)送數(shù)據(jù)的取反,因數(shù)據(jù)位為 8位,故兩個數(shù)據(jù)之和十進(jìn)制值應(yīng)為 255。圖 為下載驗(yàn)證的效果圖。驗(yàn)證結(jié)果正是如此。假設(shè)要發(fā)送二進(jìn)制數(shù)“ 10010011”若以十六機(jī)制發(fā)送則發(fā)送 93H 該設(shè)計(jì)接收后受 receive_ok信號控制將數(shù)據(jù)取反為“ 01101100”十六機(jī)制為 6CH 后送給發(fā)送數(shù)據(jù)緩沖寄存器,按下transfer_cmd 按鍵將數(shù)據(jù)發(fā)送給計(jì)算機(jī)。 舉一例說明上述驗(yàn)證方法。為簡化驗(yàn)證流程,我對程序代碼作了一些簡單變化。若按下開發(fā)板上定義的 transfer_cmd 按鍵,即有數(shù)據(jù)發(fā)送給 PC 機(jī)顯示在串口控制程序界面上。 第四步 上述過程完成后即可進(jìn)行數(shù)據(jù)收發(fā)。一切就緒后對當(dāng)前芯片進(jìn)行配置。首先介紹一下驗(yàn)證流程: 第一步 修改程序方便簡化驗(yàn)證手續(xù),下面有所介紹??梢姲l(fā)送的結(jié)果符合時(shí)序要求, UART的發(fā)送功能完全正確。因該數(shù)據(jù)有偶數(shù)個 1故奇校驗(yàn)時(shí)校驗(yàn)位應(yīng)為 0,同理偶校驗(yàn)時(shí)校驗(yàn)常熟理工學(xué)院畢業(yè)設(shè)計(jì) (論文) 21 位應(yīng)為 1。待發(fā)數(shù)掘“ 10110010”裝載到 tsr中,從串行輸出端口 txd先低位后高位地發(fā)送。在發(fā)送控制信號 tra_cmd作用下,把數(shù)據(jù)裝載到發(fā)送移位寄存器 (tsr)中,然后模塊發(fā)送時(shí)自動在數(shù)據(jù)幀上面附加起始位,奇偶校驗(yàn)位以及停止位從 txd端口輸出。 具體的功能仿真圖形如圖 。由上述可知,接收模常熟理工學(xué)院畢業(yè)設(shè)計(jì) (論文) 20 塊的功能仿真正確。接收到的數(shù)據(jù)是10000101,和上述接受數(shù)據(jù)一樣。 第三張圖 (3)。接收模塊采用的是有效數(shù)據(jù)位字長為 8位,那么接收到的數(shù)據(jù)應(yīng)該是 10000101,和無奇偶校驗(yàn)時(shí)一樣。 第二張圖 (2)。 rec_buf是數(shù) 據(jù)接收總線,接收時(shí)數(shù)據(jù)低位在前,可以看到其最終得到的數(shù)據(jù)正是 10000101,并且在接收完成后 rec_ok端口會輸出一個脈寬的高電平作為提示。 我們來看圖 (1)。 rxd_rec信號從高電平轉(zhuǎn)到低電平的時(shí)候,就認(rèn)為是一個數(shù)據(jù)幀的開始,接收狀態(tài)機(jī)馬上進(jìn)入開始狀態(tài)。分頻以后的時(shí)鐘周期是 200ns,可見波特率發(fā)生器的工作完全滿足設(shè)計(jì)的要求,仿真結(jié)果正確。 波特率發(fā)生模塊仿真 為方便波特率發(fā)生器模塊仿真,便于觀察仿真的波形,把系統(tǒng)時(shí)鐘周期設(shè)置為 20ns,分頻系數(shù)設(shè)置為 10。 圖 節(jié)的 FPGA 開發(fā)版下載驗(yàn)證正是在此修改的基礎(chǔ)上,下載仿真的。由此可知,此設(shè)計(jì)仿真功能完全真確。發(fā)送模塊受 transfer_cmd 信號控制,發(fā)送數(shù)據(jù)給計(jì)算機(jī)。觀看圖 修改后的頂層模塊 RTL級圖可幫助理解。接收模塊接受到數(shù)據(jù)后,受 receive_ok 高電平控制將數(shù)據(jù)取反送給發(fā)送數(shù)據(jù)緩沖寄存器。本章的完成為下一章的功能仿真奠定了基礎(chǔ)。 小節(jié) 本章講述了 UART的設(shè)計(jì)細(xì)節(jié),首先分析了該設(shè)計(jì)實(shí)現(xiàn)功能要求,然后將 UART結(jié)構(gòu)的進(jìn)行模 塊劃分,詳細(xì)介紹了每個模塊實(shí)現(xiàn)的功能及設(shè)計(jì)思路。發(fā)送模塊狀態(tài)定義如下: type states is (tra_idle,tra_start,tra_wait,tra_shift,tra_stop)。狀態(tài)機(jī)送完停止位后 判斷 TRANSFER_CMD 信號,為 1 回到 TRA_IDLE 狀態(tài) .并等待另一個數(shù)據(jù)幀的發(fā)送命令。 5. 校驗(yàn)、停止位狀態(tài) TRA_STOP 當(dāng)數(shù)據(jù)幀發(fā)送完畢,狀態(tài)機(jī)轉(zhuǎn)入該狀態(tài)。 4. 移位狀態(tài) TRA_SHIFT 當(dāng)狀態(tài)機(jī)處于這一狀態(tài)時(shí),實(shí)現(xiàn)待發(fā)數(shù)據(jù)的并串轉(zhuǎn)換并發(fā)送。 TRA_CNT 是 bclk 的計(jì)數(shù)器。 2. 發(fā)送起始位狀態(tài) TRA_START 在這個狀態(tài)下, UART 的發(fā)送器發(fā)送一個 bclk 周期時(shí)間寬度的邏輯 0 信號至 TXD。 TRA_CMD 信號是對 TRANSFER_CMD 的處理, TRA_CMD 是一個短脈沖信號。 發(fā)送狀態(tài)機(jī)一共有 5個狀態(tài)如圖 所示: 常熟理工學(xué)院畢業(yè)設(shè)計(jì) (論文) 17 1. 空閑狀態(tài) TRA_IDLE 當(dāng) UART 被復(fù)位后,狀態(tài)機(jī)將立刻進(jìn)入這一狀態(tài)。在本設(shè)計(jì)中可選擇是否產(chǎn)生校驗(yàn)位,改變 Generic 參數(shù) FrameLent,可以改變數(shù)據(jù)長度,停止位是固定的 1 位格式。 UART 發(fā)送器的接口信號 如 圖 所示。 數(shù)據(jù)的發(fā)送是由微處理器控制,微處理器給出 tansfer_cmd 信號,發(fā)送器根據(jù)此信號將并行數(shù)據(jù) txdbuf(framleng1: 0)通過移位 操作 發(fā)送串行數(shù)據(jù)至串行數(shù)據(jù)輸出端 txd。 圖 接收模塊狀態(tài)機(jī) 發(fā)送 模塊設(shè)計(jì) 發(fā)送模塊的核心是狀態(tài)機(jī)。 常熟理工學(xué)院畢業(yè)設(shè)計(jì) (論文) 16 上述狀態(tài)定義如下: type states is (rec_start,rec_center,rec_wait,rec_sample,rec_stop)。若相同則表明接受的數(shù)據(jù)正確, rec_ok 出 ’ 1’ ,error 輸出 ’ 0’ ;不相同表明接受的數(shù)據(jù)有錯誤, rec_ok 輸出 ’ 0’ ,error 輸出 ’ 1’ 。 5. 停止位和奇偶校驗(yàn)接收狀態(tài) REC_STOP 無論停止位是 1 位還是 位,或是 2 位,狀態(tài)機(jī)在 REC_STOP 不具體檢測 RXD,在無奇偶校驗(yàn)時(shí)只是輸出幀接收完畢信號 (rec_ok=‘ 1’ ),停止位后狀態(tài)機(jī)轉(zhuǎn)回到REC_START 狀態(tài),等待下一個幀的起始位。在本設(shè)計(jì)中默認(rèn)為 8,即對應(yīng)的 UART 工作在 8位數(shù)據(jù)位,奇偶校驗(yàn)任選。 3. 等待采樣狀態(tài) REC_WAIT 當(dāng)狀態(tài)機(jī)處于這一狀態(tài),等待計(jì)滿 15 個 bclk,在第 16 個 bclk 是進(jìn)入 REC_SAMPLE狀態(tài)進(jìn)行數(shù)據(jù)位的采樣檢測,同時(shí)也判斷數(shù)據(jù)位長度是否已達(dá)到數(shù)據(jù)幀的長度(FrameLen),如果計(jì)數(shù)已滿,就說明停止位來臨了。另外,在 REC_START 狀態(tài)檢測到的起始位可能不是真正的起始位,可能是一個偶然出現(xiàn)的干擾尖脈沖 (負(fù)脈沖 )。本狀態(tài)就是通過對 bclk 的個數(shù)進(jìn)行計(jì)數(shù) (REC_CNT16)由起始位求出每位的中點(diǎn),但計(jì)數(shù)值要考慮得當(dāng),正確選擇。 RXD_SYNC 信號是 RXD 的同步信號,因?yàn)樵谶M(jìn)行邏輯 1 或邏輯 0 判斷時(shí),不希望檢測的信號是不穩(wěn)定的,所以不直接檢測 RXD 信號,而是檢測經(jīng)過同步后的RXD_SYNC 信號。此時(shí),接受狀態(tài)機(jī)一直在等待 RXD 的電平從邏輯 1 變?yōu)檫壿?0 的跳轉(zhuǎn),一旦確定了產(chǎn)生電平跳變,狀態(tài)機(jī)將轉(zhuǎn)入REC_CENTER 狀態(tài)。如果起始位的確是 16個 bclk 周期長,那么接下來的數(shù)據(jù)將在每個位的中點(diǎn)處被采樣。然而,為了避免信號干擾,得到正確的起始位信號,必須要求接收到的起始位在波特率時(shí)鐘采樣的過程中至少有一半都是屬于邏輯 0才可認(rèn)定接收到的是起始位。 UART 接收器接口信號如圖 。接收器先要捕捉起始位,確定 RXD_REC 輸入由 1 到 0,邏輯 0 要 8 個 bclk時(shí)鐘周期,才是正常的起始位,然后在每隔 16 個 bclk 時(shí)鐘周期采樣接收數(shù)據(jù),移位輸入接收移位寄存器 rec_buf,最后輸出數(shù)據(jù)。如果沒有錯誤,則將剩余的 8 位有用數(shù)據(jù)送入 RBR(Receive Buffer Register)接收緩沖寄存器,再由 RBR 送給 CPU。 接收 模塊設(shè)計(jì) 接收模塊是發(fā)送模塊功能的逆序執(zhí)行。假如要得到占空比為 50%的波特率時(shí)鐘 , 只要使計(jì)數(shù)器在計(jì)數(shù)到 260 50%=130時(shí)將輸出置為高電平 , 之后在計(jì)數(shù)到 260 時(shí)輸出低電平并重新計(jì)數(shù) , 就能得到和 9600 波特率同步的時(shí)鐘。 波特率發(fā)生器的功能是產(chǎn)生和 RS232 通信所采用的波特率同步的時(shí)鐘 ,實(shí)現(xiàn)波特率時(shí)鐘的基本思路就是設(shè)計(jì)一個計(jì)數(shù)器 ,該計(jì)數(shù)器工作在速度很高的系統(tǒng)時(shí)鐘下 , 當(dāng)計(jì)數(shù)到某數(shù)值時(shí)將輸出置為高電平 ,再計(jì)數(shù)一定數(shù)值后將輸出置為低電平 ,如此反復(fù)就能得到所需的波特率時(shí)鐘。 N 在硬件設(shè)計(jì)時(shí)已經(jīng)設(shè)定好,軟件不能改變。 頂層模塊 RTL級圖和頂層模塊 接口信號分別如 圖 、 圖 所示: 圖 頂層模塊的 RTL圖 圖 頂層模塊接口信號 波特率發(fā)生模塊設(shè)計(jì) 波特率是單位時(shí)間內(nèi)傳送的二進(jìn)制數(shù)據(jù)的位數(shù),以位 /秒 (b/s)表示,也稱為數(shù)據(jù)位率。波特率發(fā)生器就是專門產(chǎn)生一個遠(yuǎn)高于波特率的本地時(shí)鐘信號對輸入 RXD 不斷采樣,使接收器與發(fā)送器保持同步。 UART 發(fā)送器的用途是將準(zhǔn)備輸出的并行數(shù)據(jù)按照基本 UART 幀格式轉(zhuǎn)為 TXD 信號串行輸出。 UART 設(shè)計(jì)整體結(jié)構(gòu) 在了解 UART 的相關(guān)知識并結(jié)合 FPGA 的設(shè)計(jì)特點(diǎn)后,依據(jù) FPGA 的 TOPDOWN 設(shè)計(jì)方法將 UART 的 FPGA 設(shè)計(jì)分為 4個子模塊設(shè)計(jì):頂層模 塊設(shè)計(jì)、波特率發(fā)生模塊設(shè)計(jì)、接收模塊設(shè)計(jì)、發(fā)送模塊設(shè)計(jì)。 接收通道發(fā)生奇偶校驗(yàn) ; 能夠?qū)€路狀態(tài)以及錯誤開始位的檢測; 具有可編程串行接口特性 (如字符數(shù)據(jù)位數(shù)、奇偶校驗(yàn)?zāi)J?、通信速?); 本論文所設(shè)計(jì)的 UART具有通用 UART的基本功能,同時(shí)支持通用的異步串行通信協(xié)議。作為 RS232C數(shù)據(jù)終端設(shè)備接口, UART主要提供以下主要功能: 將 微機(jī)系統(tǒng)內(nèi)部傳送來的并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)流輸出;將微機(jī)系統(tǒng)外設(shè)發(fā)送來的串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù),供微機(jī)系統(tǒng)內(nèi)部器件處理。下面就如何設(shè)計(jì) UART模塊進(jìn)行重點(diǎn)分析。本章是理解下章的理論前提 。 在串行同步通信中,接收雙方的同步方法可以分為內(nèi)同步和外同步,內(nèi)同步法就是接收端從接收到的數(shù)據(jù)信息波形本身提取同步的方法;而外同步法是在發(fā)送數(shù)據(jù)之前向接收器發(fā)送一串時(shí)鐘脈沖,接收端按這個時(shí)鐘頻率調(diào)整自己的時(shí)序,使接收時(shí)鐘頻率鎖定在接收到的時(shí)鐘頻率上,并作為同步時(shí)鐘來接收數(shù)據(jù)。 串行同步通信 同步通信的基本特征是發(fā)送與接收時(shí)鐘始終保持嚴(yán)格的同步,傳送的信息流中每個二進(jìn)制位都需要時(shí)鐘同步。這種方法只能檢查傳輸數(shù)據(jù)幀的一位錯誤,兩位數(shù)據(jù)位以上的錯誤就無法檢查出來。如果整個信息位 1的個數(shù)為偶數(shù)的話稱為偶檢驗(yàn),為奇數(shù)的話則稱為為奇檢驗(yàn)。 常熟理工學(xué)院畢業(yè)設(shè)計(jì) (論文) 11 4. 奇偶校驗(yàn) 奇偶校驗(yàn)是最簡單也最常用的校驗(yàn)方法。有了起 /止位,傳輸數(shù)據(jù)時(shí)收發(fā)雙方對時(shí)鐘同步的要求就不需太高。當(dāng)起始位出現(xiàn)時(shí) (信號電平由高變低 ),告訴接收方新的 一幀已經(jīng)到達(dá),后面接著是數(shù)據(jù)位。這個頻率的倍數(shù)即為波特率因子,一般取1 32和 64。 圖 2. 發(fā)送和接收時(shí)鐘 在 UART通信協(xié)議中,發(fā)送模塊和接收模塊不使用共同的時(shí)鐘信號,所以稱作異步發(fā)送和接收器,也就是在串行通信時(shí)發(fā)送 /接受數(shù)據(jù)的兩個 UART接口不會共用一個時(shí)鐘信號 [13]。在傳送數(shù)據(jù)的時(shí)候,數(shù)據(jù)幀與幀之間如果有間隙的話,就在停止位之后附加空閑位 (用邏輯 l來表示 ),當(dāng)沒有空閑位的時(shí)候,傳送數(shù)據(jù)的效率是最高的。在奇偶校驗(yàn)位之后是標(biāo)志著一幀字符結(jié)束的停止位。在一幀信息傳 送之前,傳輸線邏輯上處于 1狀態(tài),在傳送字符信息的時(shí)候。由于要給每一位數(shù)據(jù)位加起始位、停止位,故傳送效率不及同步通信高,但對接收與發(fā)送時(shí)鐘的同步要求降低了。接收和發(fā)送雙方不使用共同的參考時(shí)鐘,但要求發(fā)送的每一位數(shù)據(jù)都必須經(jīng)過事前格式化。因此,為保證實(shí)現(xiàn)全雙工通信任務(wù), A和 B雙方的串行接口必須具備一套完全獨(dú)立的發(fā)送器和接收器。 3. 雙工方式 全雙工具有兩條獨(dú)立的通信線,一條專門用作發(fā)送,另一條為接收。但通信線只 有一條,因此在特定的時(shí)刻雙方只能有一個發(fā)送而另一個接收或一方接收,另一方發(fā)送。采用這種方式時(shí),就已經(jīng)確定了通信方式中的一方為接收端
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1