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

正文內容

畢業(yè)論文-基于fpga的uart設計說明書(已修改)

2024-12-02 18:45 本頁面
 

【正文】 1 第一章 設計要求 一、設計一個全雙工 UART 電路,具體要求如下: 1) 支持數據格式:起始位( 1bit)+數據( 8bit)+奇偶校驗位( 1bit)+終止位( 1bit) 2) 奇 /偶校驗可配置 3) 可配置支持 115200 以下的常見波特率 4) 支持 115200 以下的波特率自適應,自適應過程如下: a. 復位后, UART 首先接收輸入,不斷自動調整波特率,直到以一定波特率正確連續(xù)接收到 3 個 bytes 的0x55 b. 接著 UART 以此波特率連續(xù)發(fā)送 3個 bytes 0xaa c. 之后兩端以此波特率進行通信 d. 波特率自適應只在電路復位后進行一次,如欲再次自適 應波特率應對電路再次復位 e. 波特率自適應過程中不能對 UART 的波特率作任何設置,自適應完成后可以對波特率作設置 5) 自動計算校驗位用于發(fā)送數據;對接收到的校驗位和數據進行校驗,發(fā)現錯誤應設置錯誤標志,并丟棄數據 6) 對接收不正常數據(如無終止位、無校驗位、數據位數不正確等)應能自動識別并設置錯誤標志、丟棄 二、設計工具: 1)所有電路采用 VerilogHDL 或原理圖方法進行設計 2)在 QuartusII 下進行設計 3)綜合和仿真可以采用其他工具,如綜合可以采用 Synplify,仿真可以采用 ModelSim 4)目標器 件采用與實驗箱相同的器件 第二章 相關理論與技術 UART 相關內容簡介 復雜可編程邏輯器件 FPGA 簡介 FPGA( Field- Programmable Gate Array),即現場可編程門陣列,它是在 PAL、 GAL、 CPLD 等可編程器件的基礎上進一步發(fā)展的產物。它是作為 專用集成電路 ( ASIC)領域中的一種半定制電路而出現的,既解決了定制電路的不足,又克服了 原有可編程器件門電路數有限的缺點。 FPGA 采用了邏輯單元陣列 LCA( Logic Cell Array)這樣一個概念,內部包括可配置邏輯模塊 CLB( Configurable Logic Block)、輸出輸入模塊 IOB( Input Output Block)和內部連線( Interconnect)三個部分。 RS232 介紹 RS232 接口 ,就是普通電腦后面那個串口。一般為 9針的,也有 25 針的。是 1970 年由美國電子工業(yè)協會( EIA)聯合貝爾系統(tǒng)、調制解調器廠家及計算機終端生產廠家共同制定 的用于串行通訊的標準。它的全名是“數據終端設備( DTE)和數據通訊設備( DCE)之間串 行二進制數據交換接口技術標準” (RS232C,其中 C 表示此標準修改了三次 ).標準中包括了電氣和機械方面的規(guī)定 .該標準規(guī)定采用一個 25 個腳的 DB25 連接器,對連接器的每個引腳的信號內容加以規(guī)定,還對各種信號的電平加以規(guī)定 .后來隨著設備的不斷改進 ,成了目前大家普遍見到的 9 腳。 在不使用傳輸控制信號的情況下 ,用 3根線就可以傳輸了, 9芯的是 2收 3發(fā) 5地, 25 芯的是 2發(fā) 3收7 地。兩設備用 RS232 相連的時候為收 —— 發(fā),發(fā) —— 收 ,地 —— 地。 UART 處理的是并行數據轉為串行信號和串行數據轉為并行,但并不是簡單的轉換。分析 UART 的結構,可以看出 UART 主要由數據總線接口、控制邏輯接口、波特率發(fā)生器、發(fā)送邏輯和結束邏輯等部分組成,各部分間的關系如圖 1 所示。 2 圖 1 UART 通信接口結構圖 軟件設計 軟件采用 Altera 公司的 MAX+PLUSⅡ設計邏輯結構 ,設 計的內容包括通用 I/O 地址譯碼器、各個寄存器以及 UART 核。 UART 核主要包括 3 個部分 :波特率發(fā)生器、數據發(fā)送部分和數據接收部分。 I/O 地址譯碼器和 UART 核使用硬件描述語言 VHDL 來編寫實現。 軟件設計 軟件采用 Altera 公司的 MAX+PLUSⅡ設計邏輯結構 ,設計的內容包括通用 I/O 地址譯碼器、各個寄存器以及 UART 核。 UART 核主要包括 3 個部分 :波特率發(fā)生器、數據發(fā)送部分和數據接收部分。 I/O 地址譯碼器和 UART 核使用硬件描述語言 VHDL 來編寫實現。 地。 第三章 課題詳 細設計與實現 UART 的整體設計 一般 UART 通信通過兩條信號線完成數據的全雙工通信任務。其中, TxD 是 UART 發(fā)送端,為輸出; RxD是 UART接收端,為輸入。 波特率發(fā)生器、接收器和發(fā)送器是 UART 的三個核心功能模塊。我們所做的設計主要為數據接收模塊。如圖 3 所示的即為接收器的硬件連接示意圖,數據從計算機的串口 TxD端傳送給 FPGA 的 RxD端,最后由 LED 顯示出數據。 我們采用狀態(tài)機的方式來實現串口通訊功能,用一個接收狀態(tài)寄存器 state_rec 來表示當前狀態(tài)。空閑時state_rec=0,此時不斷監(jiān) 測接收端口的電平,如果低電平連續(xù)保持兩個時隙,則轉向接受數據狀態(tài),state_rec 的值從 18跳轉,接受 8bit 數據。如果低電平沒有保持兩個時隙,則重新回到空閑狀態(tài),state_rec=0。 當八位數據接收完畢,則跳轉到停止狀態(tài), state_rec=9,此時無論接收端口電平高低,均在下一個狀態(tài)周期跳轉回空閑狀態(tài),準備接受下一位數據。若在較復雜的環(huán)境下通訊,則可以考慮增加一個通訊失敗狀態(tài),若檢測到停止位為低電平,或者校驗位不滿足要求,則跳轉到失敗狀態(tài)。 時鐘 LED 計算機的串口 TxD CLK D11~D0 FPGA RxD 圖 3 硬 件連接示意圖 3 UART (Universal A synchronous Receiver Transmitter)協議是一種串行數據傳輸協議。 UART允許在串行鏈路上進行全雙工通信,在數據通信及控制系統(tǒng)中得到了廣泛的應用。 8250、 N S16450等芯片都是常見的 UART 器件,這類芯片具有多種功能,還有許多輔助模塊( FIFO),但在實際應用中有時只需要使用 UART的部分功能,因而會造成一定的資源浪費。 UART的核心功能集成到 FPGA/CPLD內部,就可以實現緊湊、穩(wěn)定且可靠的 UART 數據傳輸。 基本的 UART通信只需要兩條信號線 ( RxD ,TxD)就可以完成數據的全雙工通信任務。 TxD 是 UART發(fā)送端,為輸出; RxD是 UART接收端,為輸入。 UART的基本特點是:在信號線上共有兩種狀態(tài),分別用邏輯 1 (高電平 )和邏輯 0(低電平)來區(qū)分。例如,在發(fā)送器空閑時,數據線保持在邏輯高電平狀態(tài),發(fā)送器是通過發(fā)送起始位來開始一個數據幀的傳送,起始位使數據線處于邏輯 0狀態(tài),提示接收器數據傳輸即將開始 。接著發(fā)送數據位,數據位一般為 8位一個字節(jié)的數據 (也有 5位、 6位或 7位的情況 ) ,低位 (LSB ) 在前,高位( MSB)在后。然后發(fā)送校驗位 ,校驗 位一般用來判斷傳輸的數據位有無錯誤 ,一般是奇偶校驗。在使用中,該位常取消。停止位在最后 ,用以標識數據傳送的結束 ,它對應于邏輯 1狀態(tài) 。 UART的幀格式包括起始位( start bit,低電平、 5~ 8位數據位 (data bits)、校驗位 ( parity bit,可選 )和停止位 ( stopbit,位數可為 1. 2 位 )。這種格式是由起始位和停止位來實現字符的同步,如圖 1所示。 圖 4 UART的幀格式 UART 的實現 比較復雜的數字電子系統(tǒng)的設計往往采用自頂向下 ( Top Down)的方法 ,即首先把設計任務劃分成幾個模塊 ,然后分模塊進行設計。 本文所介紹的 UART串行通訊模塊由 3個子模塊組成:波特率發(fā)生器、接收模塊和發(fā)送模塊,如圖 2所示。所以對 UART 通訊模塊的實現就是對組成 UART的三個子模塊 (即:波特率發(fā)生器、接收模塊及發(fā)送模塊 ) 的實現。波特率發(fā)生器專門產生一個本地時鐘信號來控制 UART的接收與發(fā)送; UART接收模塊的用途是接收 RxD端的串行信號 ,并將其轉化為并行數據; UART發(fā)送模塊的用途是將準備輸出的并行數據按照基本 UART幀格式轉為串行數據從 TxD 端串行輸出 。 圖 5 UART 的三個子模塊 波特率發(fā)生器模塊的實現 。 波特率發(fā)生器實際上就是分頻器,可以根據給定的系統(tǒng)時鐘頻率 (晶振時鐘 ) 和要求的波特率算出波特率分頻因子 ,把算出的波特率分頻因子作為分頻器的分頻系數。假設系統(tǒng)的時 鐘頻率為 10MHz,而要求的波特率為 9600bp s, 因 此要設計分頻模塊 , 把 10MHz的時鐘脈沖變?yōu)?9600Hz的時鐘脈沖。故設要求的波特率因子為 M ,則 1042960010 ?? HZMHZM 。 波特率發(fā)生器模塊實現的流程如圖 6所示 。 波特率發(fā)生器模塊實現的源代碼 。 Module CNT (CLK, DIV_CLK, reset)。 input CLK, reset。 //輸入信號 :時鐘信號 CLK與復 位信號 reset reg [10: 0 ]H。 //計數器 H,用來記錄輸入時鐘信號的跳變數 reg num。 //寄存器 num ,用來存放將要輸出的電平信號 4 output DIV_CLK。 //輸出信號 always @ (posedge CLK or posedge reset) begin if ( reset) //復位信號到來 ,進行模塊初始化 begin H = 0。 Num=0。 End Else if (H = = 1041) / /當計數器計數值為 1041 時 ,計數器清 0,準備進行新一次的計數 H = 0。 else begin if (H 521) //當計數器的值小于 521時 ,輸出為低電平 num = 0。 else //當計數器的值大于 521時 ,輸出為高電平 num = 1。 H = H + 1。 end end assign DIV_CLK = num。 endmodule 。 波特率發(fā)生器模塊實現的仿真結果如圖 7所示 圖 6 波特率發(fā)生器模塊實現的流程 圖 7 現原理 UART通訊模塊是從 RxD端接收數據的, RxD端由邏輯 1跳變?yōu)檫壿?0可視為一個數據幀的開始,所以接收模塊首先要判斷起始位。當 UART接收模塊復位后,接收模塊一直在等待 RxD的電平跳轉。當 RxD電平從邏輯 1變?yōu)檫壿?0,即當起始位到來,就意味著新的 UART數據幀的開始,一旦檢測到起始位,就從起始位的下一位開始對 UART通訊所要求的波特率時鐘 DIV _CLK的上升沿,每計一次數就對 RxD進行一次采樣 ,把每次采樣獲得的邏輯電平值按先后順序存入寄存器 Q中,也就是確保接收了所有的數據位, 8位串行數據也被轉換 為 8位并行數據。 。 接收模塊實現的流程如圖 8所示 。 module UART ( N , CL K_10MHz, Q,reset)。 input CLK_10MHz, N , reset。 //輸入信號 :時鐘信號 CLK_10MHz, 輸入的串行信號 N ,復位信號 reset output [ 7: 0 ] Q。 //輸出的并行信號 reg [ 7: 0 ] P。
點擊復制文檔內容
畢業(yè)設計相關推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1