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

正文內(nèi)容

畢業(yè)設(shè)計-基于fpga串口通信系統(tǒng)設(shè)計(編輯修改稿)

2025-01-06 19:11 本頁面
 

【文章內(nèi)容簡介】 ”確定。 在數(shù)據(jù)輸出過程中, CPU 把要輸出的數(shù)據(jù)(并行地)送入“數(shù)據(jù)輸出寄存器”,“數(shù)據(jù)輸出寄存器”的內(nèi)容被傳輸?shù)健鞍l(fā) 送移位寄存器”,然后由“發(fā)送移位寄存器”通過移位操作,把數(shù)據(jù)一位一位地送到外設(shè)。“發(fā)送移位寄存器”的移位速度有“發(fā)送時鐘”確定。 “控制寄存器”用來保存與此接口有關(guān)的控制信息,這些控制信息決定接口的工作方式。 CPU 可以通過修改“控制寄存器”的內(nèi)容來控制串行通信接口的工作方式。 “狀態(tài)寄存器”的各位稱為“狀態(tài)位”,每一個狀態(tài)位都可以用來指示數(shù)據(jù)傳輸過程中的狀態(tài)或某種錯誤。例如,用狀態(tài)寄存器 D5位為“ 1”表示“數(shù)據(jù)輸出寄存器空”,用 D0位表示“數(shù)據(jù)輸入寄存器滿”,用 D2位表示“奇偶檢驗錯”等 UART 通信協(xié)議 在異步通信中,是以字符為單位傳送數(shù)據(jù),是從低位到高位逐位傳送,一個字符表示一幀信息。串行異步通信協(xié)議中字符代碼傳輸格式如圖 所示,通常 UART 的一幀西南科技大學(xué)城市學(xué)院本科生畢業(yè)論文 11 數(shù)據(jù)由四部分組成:一個起始位 S(一般邏輯為“ 0”),后面是數(shù)據(jù)長度可變的數(shù)據(jù)位D0~D7(一般為 6 位到 8 位之間可變,數(shù)據(jù)的低位在前 ),一個可選的校驗位 PB(可選奇校驗、偶檢驗或不需要檢驗),隨后是一定長度的停止位 P(可選 1 位、 位、或 2 位) ,停止位必須為邏輯“ 1”。在沒有數(shù)據(jù)被傳輸時,數(shù)據(jù)線會一直處于邏輯“ 1”狀態(tài)。 圖 23 UART 的字符幀格式 a,起始位:它是數(shù)據(jù)采樣的第一個點,當(dāng)接收模塊檢測串行輸入數(shù)據(jù)管腳上的電平從“ 1”到“ 0”的跳變來確定一個 UART 包的起始位。 起始位檢測 8 個連續(xù)脈沖的另一個更重要的原因是,采用 16 倍頻采樣的時鐘,第 8 個采樣脈沖所對應(yīng)的數(shù)據(jù)波形正好是該位數(shù)據(jù)位波形的正中點 (以時鐘上升沿采樣 ),在該處讀寫數(shù)據(jù)應(yīng)該是最安全點。 b,數(shù)據(jù)位:這是衡量通信中實際數(shù)據(jù)位的參數(shù)。當(dāng)計算機發(fā)送一個信息包,實際的數(shù)據(jù)不會是 8 位的,標(biāo)準(zhǔn)的值是 7 和 8 位。如何設(shè)置取決于你想傳 送的信息。比如,標(biāo)準(zhǔn)的 ASCII 碼是 0~ 127( 7 位)。擴展的 ASCII 碼是 0~ 255( 8 位)。如果數(shù)據(jù)使用簡單的文本(標(biāo)準(zhǔn) ASCII 碼),那么每個數(shù)據(jù)包使用 7 位數(shù)據(jù)。每個包是指一個字節(jié),包括開始 /停止位,數(shù)據(jù)位和奇偶校驗位。由于實際數(shù)據(jù)位取決于通信協(xié)議的選取,術(shù)語 “包 ”指任何通信的情況。 c,奇偶校驗位:在串口通信中一種簡單的檢錯方式。有四種檢錯方式:偶、奇、高和低。當(dāng)然沒有校驗位也是可以的。對于偶和奇校驗的情況,串口會設(shè)置校驗位(數(shù)據(jù)位后面的一位),用一個值確保傳輸?shù)臄?shù)據(jù)有偶 數(shù) 個或者奇 數(shù) 個邏輯高位。例 如,如果數(shù)據(jù)是 011,那么對于偶校驗,校驗位為 0,保證邏輯高的位數(shù)是偶數(shù)個。如果是奇校驗,校驗位位 1,這樣就有 3 個邏輯高位。高位和低位不 為 真正的檢查數(shù)據(jù),簡單置位邏輯高或者邏輯低校驗。這樣使得接收設(shè)備能夠知道一個位的狀態(tài),有機會判斷是否有噪聲干擾了通信或者是否傳輸和接收數(shù)據(jù)是否不同步。 d,停止位:用于表示單個包的最后一位。典型的值為 1, 和 2 位。由于數(shù)據(jù)是在傳輸線上定時的,并且每一個設(shè)備有其自己的時鐘,很可能在通信中兩臺設(shè)備間出現(xiàn)了小小的不同步。因此停止位不僅僅是表示傳輸?shù)慕Y(jié)束,并且提供計算機校正時鐘 同步的機會。適用于停止位的位數(shù)越多,不同時鐘同步的容忍程度越大,但是數(shù)據(jù)傳輸率同時也越慢。 S D0+0 D1 D2 D3 D4 D5 D6 D7 PB P 西南科技大學(xué)城市學(xué)院本科生畢業(yè)論文 12 在 UART 協(xié)議中,數(shù)據(jù)的發(fā)送者與接收者不共享時鐘信號,也就是說,在一次 UART通信過程中,并沒有一個時鐘信號從發(fā)送端傳輸?shù)浇邮斩?,因此,這個協(xié)議被稱為異步方式。 由于沒有共享時鐘信號,因此在進行數(shù)據(jù)傳輸之前,收發(fā)雙方必須協(xié)商好一個數(shù)據(jù) 傳輸?shù)牟ㄌ芈剩簿褪钦f, UART 接收端應(yīng)該知道發(fā)送端發(fā)送數(shù)據(jù)的波特率(相應(yīng)的發(fā)送端也需要知道接收端的波特率)。在大多數(shù)情況下,發(fā)送數(shù)據(jù)和接受數(shù)據(jù)的波特率是相同的。 UART 發(fā)送端按照低位 在前,高位在后的順序移位輸出數(shù)據(jù)。一旦在初始化過程中,雙方協(xié)商好了通信的波特率,收發(fā)雙方的內(nèi)部時鐘都設(shè)定在同一波特率(但時鐘的相位不同)。在一個 UART 包傳輸開始,接收端將它的內(nèi)部時鐘調(diào)整到與發(fā)送端同步。這樣接收端就可以在每一位的中心位置對數(shù)據(jù)位進行采樣,保證數(shù)據(jù)傳輸?shù)恼_性。 系統(tǒng)整體結(jié)構(gòu) 本設(shè)計以 FPGA 為基礎(chǔ)來實現(xiàn)異步通信,而 UART 模塊就為本設(shè)計關(guān)鍵所在,如圖 所示,該模塊主要有串行發(fā)送器、接收器以及波特率發(fā)生器三個模塊組成。 波特率發(fā)生器模塊:在異步通信中,發(fā)送方和接受方必須保持相同的 波特率才能實現(xiàn)正確的數(shù)據(jù)傳送。在本設(shè)計中,由于 RS232C 傳輸必定是工作在某種波特率下,為了便于和 RS232C 總線進行同步,需要產(chǎn)生符合 RS232C 傳輸波特率的時鐘。 圖 24 UART 系統(tǒng)框圖 本設(shè)計完整的工作流程可以間單的分為數(shù)據(jù)接收過程和發(fā)送過程兩部分。 西南科技大學(xué)城市學(xué)院本科生畢業(yè)論文 13 接收過程:當(dāng) UART 模塊檢測到有新數(shù)據(jù)( RS232C 總線傳輸線的起始位)就會觸發(fā)接收流程。首先 UART 模塊內(nèi)部會重置波特率發(fā)生器和移位寄存器,控制邏輯使移位寄存器的工作模式為波特率模式,以準(zhǔn)備數(shù)據(jù)接收,其次移位寄存器在波特率時鐘的驅(qū)動下工 作,不斷的讀取 RS232C 串行總線上的輸入數(shù)據(jù),一位一位的接收,并且將數(shù)據(jù)保存到內(nèi)部的數(shù)據(jù)寄存器內(nèi)。然后在進行串并轉(zhuǎn)換,在通過 CPU 內(nèi)部數(shù)據(jù)總線傳送到數(shù)據(jù) I/O 緩存器,最后被 CPU 內(nèi)部采用。 發(fā)送過程:當(dāng)要發(fā)送數(shù)據(jù)出去時,先把要發(fā)送的 CPU 內(nèi)部數(shù)據(jù)存儲到數(shù)據(jù) I/O 緩存器,傳送到數(shù)據(jù)寄存器,然后進行串并轉(zhuǎn)換。 UART 模塊內(nèi)部會重置波特率發(fā)生器控制邏輯控制移位寄存器進入 RS232C 串行發(fā)送的協(xié)議模式,并且使移位寄存器工作在波特率模式下,于是移位寄存器便在波特率時鐘的驅(qū)動下依次將數(shù)據(jù)寄存器的數(shù)據(jù)一位一位發(fā)送到 RS232C 的發(fā)送端 TXD,這樣就產(chǎn)生了 RS232C 的數(shù)據(jù)發(fā)送時序。 西南科技大學(xué)城市學(xué)院本科生畢業(yè)論文 14 第三章 UART 系統(tǒng)設(shè)計 UART 簡介 UART 是一種通用串行數(shù)據(jù)總線,用于異步通信。該總線雙向通信,可以實現(xiàn)全雙工傳輸和接收。在嵌入式設(shè)計中, UART 用來與 PC 進行通信,包括與監(jiān)控調(diào)試器和其它器件 因為計算機內(nèi)部采用并行數(shù)據(jù),不能直接直接把數(shù)據(jù)發(fā)到 Modem,必須經(jīng)過 UART 整理才能進行異步傳輸,其過程為: CPU 先把準(zhǔn)備寫入串行設(shè)備點的數(shù)據(jù)放到 UART 寄存器(臨時內(nèi)存塊)中,再通過 FIFO( First Input First Output,先入先出列隊)傳送到串行設(shè)備,若是沒有 FIFO,信息將變得雜亂無章,不可能傳送到 Modem。 它是用于控制計算機與串行設(shè)備的芯片。有一點要注意的是,它提供了 RS232C數(shù)據(jù)終端設(shè)備接口,這樣計算機就可以和調(diào)制解調(diào)器或其它使用 RS232C 接口的串行設(shè)備通信了。作為接口的一部分, UART 還提供以下功能:將由計算機內(nèi)部傳送過來的并行數(shù)據(jù)轉(zhuǎn)換為輸出的串行數(shù)據(jù)流。將計算機外部來的串行數(shù)據(jù)轉(zhuǎn)換為字節(jié),供計算機內(nèi)部使用并行數(shù)據(jù)的器件使用。在輸出的串行數(shù)據(jù)流中加入奇 偶校驗位,并對從外部接收的數(shù)據(jù)流進行奇偶校驗。在輸出數(shù)據(jù)流中加入啟停標(biāo)記,并從接收數(shù)據(jù)流中刪除啟停標(biāo)記。處理由鍵盤或鼠標(biāo)發(fā)出的中斷信號(鍵盤和鼠標(biāo)也是串行設(shè)備)??梢蕴幚碛嬎銠C與外部串行設(shè)備的同步管理問題。 一般而言 UART 和外界通信只需要兩條信號線 RXD 和 TXD,其中 RXD 是 UART的接收端, TXD 是 UART 的發(fā)送端,接收與發(fā)送是全雙工形式。由于可編程邏輯器件技術(shù)的快速發(fā)展, FPGA 的功能日益強大,其開發(fā)周期短、可重復(fù)編程的優(yōu)點也越來越明顯,本設(shè)計就是 在 FPGA 芯片上集成 UART 功能模塊并和其他模塊組合 來 實現(xiàn)一個能與其他設(shè)備進行串行通信的片上系統(tǒng)。 本系統(tǒng)設(shè)計硬件電路圖如圖 所示。 西南科技大學(xué)城市學(xué)院本科生畢業(yè)論文 15 圖 31 系統(tǒng)硬件電路圖 模塊名稱: uart_test 功能描述: uart 的測試頂層模塊 module uart_test( sys_clk, //系統(tǒng)時鐘 uart_dataH, uart_xmitH //uart 接收與發(fā)送引腳 )。 input sys_clk。 //系統(tǒng)時鐘 (48MHz) input uart_dataH。 //uart 接收引腳 RXD output uart_xmitH。 //uart 發(fā)送引腳 TXD reg[7:0] senddata。 //發(fā)送一個字節(jié)的數(shù)據(jù)緩存區(qū) reg WR_R1,WR_R2,WR_R3。 //控制產(chǎn)生一個發(fā)送的寫信號 wire [7:0]recdata。 //接收緩存區(qū) wire RI,TI,WR。 //接收、發(fā)送中斷以及寫控制信號 wire clksend,clkrec。 //發(fā)送和接收的時鐘頻率 西南科技大學(xué)城市學(xué)院本科生畢業(yè)論文 16 always@(posedge clksend) //通過 RI 接收中斷產(chǎn)生一個寫信號,維持時間為 1 個 Clk begin WR_R1 = RI。 WR_R2 = WR_R1。 WR_R3 = WR_R2。 end assign WR = (~WR_R3)amp。(WR_R2)amp。(WR_R1)。 //控制寫信號 always@(posedge RI) //當(dāng)接收了一個數(shù)據(jù)后 , 把數(shù)據(jù)加 1 后發(fā)回 PC 機 ,注意串口一個一個數(shù)據(jù)發(fā) begin senddata = recdata+839。d1。 end rec uart_rec( //調(diào)用一個 uart 接收模塊 sys_rst_1(sys_rst_1), sys_clk(uart_clk), uart_dataH(uart_REC_dataH), rec_dataH(rec_dataH), rec_readyH(rec_readyH), )。 send uart_xmit( //調(diào)用一個 uart 的發(fā)送模塊 sys_rst_1(sys_rst_1), sys_clk(uart_clk), uart_xmitH(uart_XMIT_dataH), ximtH(xmit_start_pulseH), xmit_dataH(reg_xmit_data), xmit_doneH(xmit_doneH) )。 Baud ( //調(diào)用波特率變換器 西南科技大學(xué)城市學(xué)院本科生畢業(yè)論文 17 sys_clk(uart_clk), sys_rst_1(sys_rst_1), baud_clk(uart_clk), baud_rate_div(baud_rate_div) )。 endmodule 接收模塊功能設(shè)計描述 接受模塊的主要功能是檢測起始位 S,對隨后的位流解串行化,檢測停止位 PB,并將數(shù)據(jù)準(zhǔn)備好 CPU 讀取。 圖 顯示了接受模塊的功能框圖,包括控制狀態(tài)機、解串行化器和相關(guān)邏輯。本設(shè)計僅包括最基本的功能,沒有錯誤檢測邏輯。 圖 32 接收模塊功能圖 Uart_clk 的頻率為波特率的 16 倍,它是由波特率變換模塊產(chǎn)生的。這個時鐘信號用來驅(qū)動接收模塊中的所有時鐘。 Uart_dataH 是一個輸入信號(就是 RXD) ,它在送入解串行 化器之前要經(jīng)過兩級同步器。注意:由于 Uart_dataH 上傳輸?shù)臄?shù)據(jù)是與發(fā)送端的時鐘信號是同步的,而不是與接收端的時鐘信號同步的,因此這個兩級同步器是必不可少的。 西南科技大學(xué)城市學(xué)院本科生畢業(yè)論文 18 解串行化器是一個簡單的串并轉(zhuǎn)換移位寄存器。它有一個來自狀態(tài)機的輸入 shiftH。當(dāng)這個信號為有效(高電平)時解串行化器進行一次移位。移位寄存器的默認寬度為 8位,需要主要的數(shù)據(jù)的低位先被移入。 已接收位計數(shù)器用來跟蹤記錄累計接收到的數(shù)據(jù)位的數(shù)目。當(dāng)計數(shù)器計數(shù)到預(yù)先設(shè)定的值( word_len)時,狀態(tài)機停止接收數(shù)據(jù)。計數(shù)器有兩個控制輸入端: countH 和rstcountH。當(dāng) countH 有效(高電平)時,計數(shù)器加 1;當(dāng) rstcountH 有效(高電平)時,計數(shù)器清零。它是一個同步計數(shù)器,計數(shù)器的默認寬度為 4 位。 位元計數(shù)器的作用是在 uart_clk 中產(chǎn)生一個延時(波特率周期 /16),這是一個由tr_resetH 信號控制的加計數(shù)器
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1