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

正文內容

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

2024-12-02 18:45 本頁面
 

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