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

正文內(nèi)容

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

2022-11-27 18:45:44 本頁面
 

【正文】 end else if (H = = 1041) / /當計數(shù)器 計數(shù)值為 1041 時 ,計數(shù)器清 0,準備進行新一次的計數(shù) H = 0。 //計數(shù)器 H,用來記錄輸入時鐘信號的跳變數(shù) reg num。 問題: 10 總程序: 波特率發(fā)生器模塊實現(xiàn)的源代碼 。 問題 2:在程序中使用 initial過程塊進行寄存器的初始化 ,會使源程序在下載到目標板的整合過程時 不能通過 。 NSend寄存器中存放的是發(fā)送時待發(fā)送的數(shù)據(jù) ,數(shù)據(jù)的值為 00110110,即“ 6”的 ASCII碼 ,QSend為發(fā)送輸出信號 ,可以看發(fā)送出去的串行數(shù)據(jù)依次為 00110110001,其中已經(jīng)包含了起始位 0,校驗位 0和停止位 1。 各子模塊的整合流程如圖 12所示 。 圖 11 準備發(fā)送的數(shù)據(jù)由高位到低位依次為 00110110,QSend為數(shù)據(jù)發(fā)送端 ,可以看到發(fā)送的串行位序列為00110110001,符合 UART幀格式的要求 。 end else 7 tt = 1。 tt = N Send [ iSend ]。 check = 0。 startB it = 0。 //計數(shù)器 iSend,用來記錄已經(jīng)發(fā)送的數(shù)據(jù)位的數(shù)目 reg tt。 //復位信號 output QSend。 3. 發(fā)送模塊實現(xiàn)的源代碼 。即當 UART發(fā)送模塊被復位信號復位以后 ,發(fā)送模塊將立刻進入準備發(fā)送狀態(tài) ,在該狀態(tài)下讀 8位并行數(shù)據(jù)到寄存器 [7:0] NSend中 ,之后輸出邏輯 0作為起始位 ,從起始位的下一位開始對 UART串行通訊所要求的波特率時鐘 DIV_CLK的上升沿計數(shù) ,每計一次數(shù)從寄存器 [7:0] NSend中按照由低位到高位的順序取出一位數(shù)據(jù)送到 TxD 端 ,當計數(shù)為 8時 ,也就是確保 發(fā)送了所有的數(shù)據(jù)位 ,同時也將 8位并行數(shù)據(jù)轉(zhuǎn)換為 8位串行數(shù)據(jù)。 圖 9 接收時的輸入信號為 N , 其輸入的位序列為 00110110001,此序列中已包含了起始位 0、校驗位 0和停止位 1。 //接收一位數(shù)據(jù) ,則計數(shù)器加 1 end else //如果接收到的數(shù)據(jù)位大于 8位 ,則停止接收數(shù)據(jù) k = 0。 圖 8接收模塊的流程圖 if ( a = = 0) //如果接收控制寄存器 a表明可以接收數(shù)據(jù) ,則開始接收數(shù)據(jù) begin if ( i 8 amp。 a = 1。 //計數(shù) 器 i,用來記錄接收到的數(shù)據(jù)位的數(shù)目 5 reg a。 input CLK_10MHz, N , reset。當 RxD電平從邏輯 1變?yōu)檫壿?0,即當起始位到來,就意味著新的 UART數(shù)據(jù)幀的開始,一旦檢測到起始位,就從起始位的下一位開始對 UART通訊所要求的波特率時鐘 DIV _CLK的上升沿,每計一次數(shù)就對 RxD進行一次采樣 ,把每次采樣獲得的邏輯電平值按先后順序存入寄存器 Q中,也就是確保接收了所有的數(shù)據(jù)位, 8位串行數(shù)據(jù)也被轉(zhuǎn)換 為 8位并行數(shù)據(jù)。 end end assign DIV_CLK = num。 End Else if (H = = 1041) / /當計數(shù)器計數(shù)值為 1041 時 ,計數(shù)器清 0,準備進行新一次的計數(shù) H = 0。 //計數(shù)器 H,用來記錄輸入時鐘信號的跳變數(shù) reg num。 波特率發(fā)生器模塊實現(xiàn)的源代碼 。 波特率發(fā)生器實際上就是分頻器,可以根據(jù)給定的系統(tǒng)時鐘頻率 (晶振時鐘 ) 和要求的波特率算出波特率分頻因子 ,把算出的波特率分頻因子作為分頻器的分頻系數(shù)。 本文所介紹的 UART串行通訊模塊由 3個子模塊組成:波特率發(fā)生器、接收模塊和發(fā)送模塊,如圖 2所示。停止位在最后 ,用以標識數(shù)據(jù)傳送的結(jié)束 ,它對應于邏輯 1狀態(tài) 。例如,在發(fā)送器空閑時,數(shù)據(jù)線保持在邏輯高電平狀態(tài),發(fā)送器是通過發(fā)送起始位來開始一個數(shù)據(jù)幀的傳送,起始位使數(shù)據(jù)線處于邏輯 0狀態(tài),提示接收器數(shù)據(jù)傳輸即將開始 。 UART的核心功能集成到 FPGA/CPLD內(nèi)部,就可以實現(xiàn)緊湊、穩(wěn)定且可靠的 UART 數(shù)據(jù)傳輸。若在較復雜的環(huán)境下通訊,則可以考慮增加一個通訊失敗狀態(tài),若檢測到停止位為低電平,或者校驗位不滿足要求,則跳轉(zhuǎn)到失敗狀態(tài)。 我們采用狀態(tài)機的方式來實現(xiàn)串口通訊功能,用一個接收狀態(tài)寄存器 state_rec 來表示當前狀態(tài)。其中, TxD 是 UART 發(fā)送端,為輸出; RxD是 UART接收端,為輸入。 UART 核主要包括 3 個部分 :波特率發(fā)生器、數(shù)據(jù)發(fā)送部分和數(shù)據(jù)接收部分。 2 圖 1 UART 通信接口結(jié)構(gòu)圖 軟件設計 軟件采用 Altera 公司的 MAX+PLUSⅡ設計邏輯結(jié)構(gòu) ,設 計的內(nèi)容包括通用 I/O 地址譯碼器、各個寄存器以及 UART 核。 在不使用傳輸控制信號的情況下 ,用 3根線就可以傳輸了, 9芯的是 2收 3發(fā) 5地, 25 芯的是 2發(fā) 3收7 地。 RS232 介紹 RS232 接口 ,就是普通電腦后面那個串口。 1 第一章 設計要求 一、設計一個全雙工 UART 電路,具體要求如下: 1) 支持數(shù)據(jù)格式:起始位( 1bit)+數(shù)據(jù)( 8bit)+奇偶校驗位( 1bit)+終止位( 1bit) 2) 奇 /偶校驗可配置 3) 可配置支持 115200 以下的常見波特率 4) 支持 115200 以下的波特率自適應,自適應過程如下: a. 復位后, UART 首先接收輸入,不斷自動調(diào)整波特率,直到以一定波特率正確連續(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)目標器 件采用與實驗箱相同的器件 第二章 相關(guān)理論與技術(shù) UART 相關(guān)內(nèi)容簡介 復雜可編程邏輯器件 FPGA 簡介 FPGA( Field- Programmable Gate Array),即現(xiàn)場可編程門陣列,它是在 PAL、 GAL、 CPLD 等可編程器件的基礎上進一步發(fā)展的產(chǎn)物。一般為 9針的,也有 25 針的。兩設備用 RS232 相連的時候為收 —— 發(fā),發(fā) —— 收 ,地 —— 地。 UART 核主要包括 3 個部分 :波特率發(fā)生器、數(shù)據(jù)發(fā)送部分和數(shù)據(jù)接收部分。 I/O 地址譯碼器和 UART 核使用硬件描述語言 VHDL 來編寫實現(xiàn)。 波特率發(fā)生器、接收器和發(fā)送器是 UART 的三個核心功能模塊??臻e時state_rec=0,此時不斷監(jiān) 測接收端口的電平,如果低電平連續(xù)保持兩個時隙,則轉(zhuǎn)向接受數(shù)據(jù)狀態(tài),state_rec 的值從 18跳轉(zhuǎn),接受 8bit 數(shù)據(jù)。 時鐘 LED 計算機的串口 TxD CLK D11~D0 FPGA RxD 圖 3 硬 件連接示意圖 3 UART (Universal A synchronous Receiver Transmitter)協(xié)議是一種串行數(shù)據(jù)傳輸協(xié)議。 基本的 UART通信只需要兩條信號線 ( RxD ,TxD)就可以完成數(shù)據(jù)的全雙工通信任務。接著發(fā)送數(shù)據(jù)位,數(shù)據(jù)位一般為 8位一個字節(jié)的數(shù)據(jù) (也有 5位、 6位或 7位的情況 ) ,低位 (LSB ) 在前,高位( MSB)在后。 UART的幀格式包括起始位( start bit,低電平、 5~ 8位數(shù)據(jù)位 (data bits)、校驗位 ( parity bit,可選 )和停止位 ( stopbit,位數(shù)可為 1. 2 位 )。所以對 UART 通訊模塊的實現(xiàn)就是對組成 UART的三個子模塊 (即:波特率發(fā)生器、接收模塊及發(fā)送模塊 ) 的實現(xiàn)。假設系統(tǒng)的時 鐘頻率為 10MHz,而要求的波特率為 9600bp s, 因 此要設計分頻模塊 , 把 10MHz的時鐘脈沖變?yōu)?9600Hz的時鐘脈沖。 Module CNT (CLK, DIV_CLK, reset)。 //寄存器 num ,用來存放將要輸出的電平信號 4 output DIV_CLK。 else begin if (H 521) //當計數(shù)器的值小于 521時 ,輸出為低電平 num = 0。 endmodule 。 。 //輸入信號 :時鐘信號 CLK_10MHz, 輸入的串行信號 N ,復位信號 reset output [ 7: 0 ] Q。 //寄存器 a,用來判斷是否開始接收數(shù)據(jù) reg k。 end if ( N = = 0 amp。amp。 end end assign Q = P。接收到的數(shù)據(jù)位存放到寄存器 [7: 0]Q中 ,可以看到圖中 Q 為接收到的數(shù)據(jù)位 ,此數(shù)據(jù)由高位到低位依次為00110110,正是 UART幀中的數(shù)據(jù)位部分。根據(jù) 8位數(shù)據(jù)位中邏輯 1的個數(shù)確定校驗位 ,然后輸出校驗位 ,最后輸出邏輯 1作為停止位。 module UART (CLK_10MHz, NSend, QSend, resetSend) 。 //輸出的串行信號 reg ack。//寄存器 tt,用來存放待發(fā)送的數(shù)據(jù)位 reg check。 end else begin if (ack = = 1) //如果模塊初始化完畢 ,則準備發(fā)送數(shù)據(jù) begin if (startB it = = 0) //如果沒有發(fā)送起始位 ,則發(fā)送起始位 begin tt = 0。 end else begin if ( startB it = = 1 amp。 iSend = iSend + 1。 //發(fā)送停止位 end end end end assign Q Send = tt。 3. 4 UART各子模塊的整合 1. 各子模塊的整合原理 。 各子模塊的整合仿真結(jié)果如圖 13所示 。 實驗結(jié)果: 引腳鎖定: 8 用 quartusп 仿真波形如下: 圖 11 接收模塊的時序仿真圖
點擊復制文檔內(nèi)容
畢業(yè)設計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1