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

正文內(nèi)容

基于veriloghdl的串行通信設(shè)計(jì)-資料下載頁

2024-11-17 21:44本頁面

【導(dǎo)讀】集體已經(jīng)發(fā)表或撰寫過的作品成果。對本文的研究做出重要貢獻(xiàn)的個(gè)。人和集體均已在文中以明確方式標(biāo)明。本人完全意識到本聲明的法律。結(jié)果由本人承擔(dān)。總結(jié)歸納出設(shè)計(jì)任務(wù)、內(nèi)容與方案;系統(tǒng)硬件與軟件設(shè)計(jì);[1]劉樂善.微型計(jì)算機(jī)接口技術(shù)及應(yīng)用[M],武漢:華中科技大學(xué)出版社,2020,[5]羅朝霞,高書莉.CPLD/FPGA設(shè)計(jì)及應(yīng)用[M],北京:人民郵電出版社,2020,月月根據(jù)任務(wù)書查閱資料,寫好開題報(bào)告。月月對系統(tǒng)進(jìn)行仿真調(diào)試,完成畢業(yè)論文的撰寫。月完成論文修改并定稿,準(zhǔn)備答辯。所謂“串行通信”是指外設(shè)和計(jì)算機(jī)間使用一根數(shù)據(jù)信號線,確地將每一個(gè)字符接收下來。收端可使用廉價(jià)的、具有一般精度的時(shí)鐘來進(jìn)行數(shù)據(jù)通信。異步通信時(shí)不要求接收端時(shí)鐘和發(fā)送端。在設(shè)計(jì)過程中對Verilog有進(jìn)一步理解;嚴(yán)格遵照《湖南科技學(xué)院畢業(yè)論文(設(shè)計(jì))工作管理辦法》的指示精神,結(jié)合個(gè)人的實(shí)際情況,[6]李洪偉.基于QuartusII的FPGA/CPLD設(shè)計(jì)[M].北京:電子工業(yè)出版社.2020.92-101.

  

【正文】 時(shí)鐘。收發(fā)雙方取得同步的方法是采用固定的串行數(shù)據(jù)格式,即在數(shù)據(jù)格式設(shè)置中分別加上起始位和停止位,來標(biāo)志一個(gè)數(shù)據(jù)幀的開始和結(jié)束 [9]。 其 UART的幀格式如圖 4。 L S B M S B 起 始 位數(shù) 據(jù) 位校驗(yàn)位停止位 圖 4 UART 的幀格式 包括線路空閑狀態(tài) (idle,高電平 )、起始位 (start bit,低電平 )、 5~8 位數(shù)據(jù)位(data bits)、校驗(yàn)位 (可選 )和停止位 (stop bit,位數(shù)可為 、 2 位 )。 UART 內(nèi)部有配置寄存器,可以配置數(shù)據(jù)位數(shù) (5~8 位 )、是否有校驗(yàn)位和校驗(yàn)的類型、停止位的位數(shù) (1, , 2)等。 通信接口 MAX485 采用單一電源 + V 工作,采用半雙工通信 方式 ,其管腳如圖 5所 示,各管腳功能如表 2 所示 。它完成將 TTL 電平轉(zhuǎn)換為 RS485 電平的功能 [10]。 12348765V C CBAG N D D ID ER ER O 圖 5 MAX485 管腳圖 9 表 2 MAX485 管腳定義 引腳 名稱 功能 1 RO 接收器輸出 2 RE 驅(qū)動(dòng)器輸出使能,為 0時(shí),允許驅(qū)動(dòng)器工作 3 DE 驅(qū)動(dòng)器輸出使能,為 1時(shí),允許驅(qū)動(dòng)器工作 4 DI 驅(qū)動(dòng)器輸入 5 GND 地 6 A 接收器非反相輸入和驅(qū)動(dòng)器非 反相輸出端 7 B 接收器反相輸入和驅(qū)動(dòng)器反相輸出 8 VCC 電源 MAX485 芯片的結(jié)構(gòu)和引腳都非常簡單,內(nèi)部含有一個(gè)驅(qū)動(dòng)器和接收器。RO 和 DI 端分別為接收器的輸出和驅(qū)動(dòng)器的輸入端,與單片機(jī)連接時(shí)只需分別與單片機(jī)的 RXD 和 TXD 相連即可; RE和 DE 端分別為接收和發(fā)送的使能端,當(dāng) RE為邏輯 0 時(shí),器件處于接收狀態(tài);當(dāng) DE 為邏輯 1 時(shí),器件處于發(fā)送狀態(tài),因?yàn)?MAX485 工作在半雙工狀態(tài),所以只需用單片機(jī)的一個(gè)管腳控制這兩個(gè)引腳即可; A 端和 B 端分別為接收和發(fā)送的差分信號端,當(dāng) A 引腳的電平高于 B時(shí),代表發(fā)送的數(shù)據(jù)為 1;當(dāng) A 的電平低于 B 端時(shí),代表發(fā)送的數(shù)據(jù)為 0。在與單片機(jī)連接時(shí)接線非常簡單,只需要一個(gè)信號控制 MAX485 的接收和發(fā)送即可。同時(shí)將 A 和 B 端之間加匹配電阻,一般可選 120Ω的電阻。 RS485 規(guī)定了自己的電氣標(biāo)準(zhǔn),即邏輯“ 0”: 6 V~ V;邏輯“ 1”: + V~+6 V。 而 TTL 電平:邏輯“ 0”: ;邏輯“ 1”: +3 V~+5 V 。因此, RS485不能和 TTL 電平直接相連,使用時(shí)必須進(jìn)行電平轉(zhuǎn)換,否則將使 TTL 電路燒壞。 本設(shè)計(jì)中,利用接口芯片將 RS232 接口轉(zhuǎn)換為 RS485 接口,然后采用 RS485進(jìn)行長距離、高速的串行異步通信。采用 MAX485 芯片便可以實(shí)現(xiàn)將 TTL電平轉(zhuǎn)換為 RS485 電平的功能。 串行通信 總體方案 由于 FPGA 與接口之間按并行方式傳輸,接口與外設(shè)之間按串行方式傳輸。因此,在串行接口中,必須要有接收移位寄存器 (串 — 并 )和發(fā)送移位寄存器 (并 —串 )。在數(shù)據(jù)輸入過程中,數(shù)據(jù)一位一位地從外設(shè)進(jìn)入接口的接收移位寄存器,當(dāng)接收移位寄存器中已接收完一個(gè)字符的各位后,數(shù)據(jù)就從接收移位寄存器進(jìn)入 10 數(shù)據(jù)輸入寄存器。 CPU 從接收移位寄存器進(jìn)入數(shù)據(jù)輸入寄存器。 CPU 從數(shù)據(jù)輸入寄存器中讀取接收到的字符,接收移位寄存器的移位速度由接收時(shí)鐘確定。在數(shù)據(jù)輸出過程中, CPU 把要輸出的字符 (并行地 )送入數(shù)據(jù)輸出寄存器,數(shù)據(jù)輸出寄存器的內(nèi)容傳輸?shù)桨l(fā)送移位寄存器,然后由發(fā)送移位寄存器移位,把數(shù)據(jù)一位一位地送到外設(shè)。發(fā)送移位寄存器的移位速度由發(fā)送時(shí)鐘確定。接口中的控制寄存器用來容納 CPU 送給此接口的各種控制信息。 狀 態(tài) 寄 存 器控 制 寄 存 器數(shù) 據(jù) 輸 入 緩 沖 區(qū)串 行 輸 入 / 并 行 輸 出并 行 輸 入 / 串 行 輸 出數(shù) 據(jù) 輸 出 緩 沖 區(qū)控 制串 行 輸 入 接 收 移 位 寄 存 器串 行 輸 出 發(fā) 送 移 位 寄 存 器數(shù) 據(jù) 總線 收 發(fā)器 D 7 ~ D 0數(shù) 據(jù)信 號邏 輯中 斷 請 求I N T R讀 R D寫 W R來 自 地 址 總 線 A 2 ~ A 0接 收 / 發(fā) 送 時(shí) 鐘圖 6 串行通信基本原理圖 基于本設(shè)計(jì)的要求, UART 的功能系統(tǒng)可大致劃分為三個(gè)模塊,分別為:波特率發(fā)生器模塊、接收模塊和發(fā)送模塊,各部分之間的關(guān)系如圖 6 所示 ,整體設(shè)計(jì)框架如圖 7 所示 。 11 接口模塊接口模塊D 7 ~ D 0D 7 ~ D 0A 2 ~ A 0A 2 ~ A 0r s tr s tw r i t e _ c m dw r i t e _ c m dr e a d _ c m dr e a d _ c m dc l kc l ku a r t _ d _ r e a d yu a r t _ d _ r e a d y發(fā) 送 緩 沖 區(qū)發(fā) 送 緩 沖 區(qū)接 收 緩 沖 區(qū)接 收 緩 沖 區(qū)發(fā) 送 模 塊發(fā) 送 模 塊接 收 模 塊接 收 模 塊波 特 率 發(fā) 生 器波 特 率 發(fā) 生 器 T X D T X D R X D R X D C L K C L K 圖 7 整體設(shè)計(jì)框架圖 12 3 UART 模塊的設(shè)計(jì)與實(shí)現(xiàn) UART 核心模塊的設(shè)計(jì) UART 傳輸?shù)幕緳C(jī)理是:當(dāng)沒有數(shù)據(jù)傳輸時(shí),串行傳輸線維持高電平狀態(tài)。一旦發(fā)現(xiàn)串行線由高變低, 接收器就認(rèn)為是個(gè)起始位,啟動(dòng)內(nèi)部電路對數(shù)據(jù)流進(jìn)行采樣 (16 倍的波特率 ),如果連續(xù)八次采樣都是低電平,則認(rèn)為是個(gè)正確的起始位 (第八次采樣時(shí),正好位于起始位中心 ),開始接收數(shù)據(jù)位。這樣每隔一個(gè)波特率時(shí)鐘,就在數(shù)據(jù)的中心采樣一次,低位在前,高位在后。數(shù)據(jù)位之后是奇偶校驗(yàn)位,用來判斷接收的數(shù)據(jù)位有無錯(cuò)誤,可以選擇是奇校驗(yàn)、偶校驗(yàn)或無校驗(yàn)位。最后是停止位,一般為高電平,表示一幀的結(jié)束。 根據(jù)上述 UART 基本原理,由此確定本設(shè)計(jì)中 UART 核心模塊的性能要求為:波特率發(fā)生器可編程,可以對主時(shí)鐘進(jìn)行分頻;發(fā)送與接收模塊全雙 工工作,接收與發(fā)送可同時(shí)進(jìn)行;接收與發(fā)送模塊分別集成 32Byte,提高數(shù)據(jù)傳輸?shù)男屎涂煽啃?;接收模塊可濾除噪聲、奇偶校驗(yàn)、幀檢測;數(shù)據(jù)位寬度可編程。 按此設(shè)計(jì)要求,采用層次結(jié)構(gòu)化的設(shè)計(jì)方法,分別對波特率發(fā)生器、發(fā)送模塊、接收模塊進(jìn)行設(shè)計(jì),最后將這幾個(gè)模塊映射到頂層模塊。本設(shè)計(jì)由 Verilog HDL 語言實(shí)現(xiàn),下面分別給出了各個(gè)模塊的實(shí)現(xiàn)方法。 波特率發(fā)生器 1. 波特率 在串行通信中,用“波特率”來描述數(shù)據(jù)的傳輸速率。所謂波特率,即每秒鐘傳送的二進(jìn)制位數(shù),其單位為 bps(bits per second)。它是衡量串行數(shù)據(jù)速度快慢的重要指標(biāo)。有時(shí)也用“位周期”來表示傳輸速率,位周期是波特率的倒數(shù)。國際上規(guī)定了一個(gè)標(biāo)準(zhǔn)波特率系列: 110bps、 300bps、 600bps、 1200bps、 1800bps、2400bps、 4800bps、 9600bps、 、 、 、 、 56Kbps。 例如: 9600bps,指每秒傳送 9600 位,包含字符的數(shù)位和其它必須的數(shù)位,如奇偶校驗(yàn)位等。大多數(shù)串行接口電路的接收波特率和發(fā)送波特率可以分別設(shè)置,但接收方的接收波特 率必須與發(fā)送方的發(fā)送波特率相同。通信線上所傳輸?shù)淖址麛?shù)據(jù) (代碼 )是逐位傳送的, 1 個(gè)字符由若干位組成,因此每秒鐘所傳輸?shù)淖址麛?shù) (字符速率 )和波特率是兩種概念。 在串行通信中,所說的傳輸速率是指波特率,而不是指字符速率,它們兩者的關(guān)系是:假如在異步串行通信中,傳送一個(gè)字符,包括 12 位 (其中有 2 個(gè)起始位, 8 個(gè)數(shù)據(jù)位, 2 個(gè)停止位 ),其傳輸速率是 1200b/s,每秒所能傳送的字符數(shù)是 1200/(1+8+1+2)=100 個(gè)。 波特率的描述如圖 8 所示。 13 D 1D 2 D 3D 4D 5D 6 D 7D 0波 特 率 =1TT 圖 8 波特率描述圖 2. 波特率因子 在波特率指定后,輸入移位寄存器 /輸出移位寄存器在接收時(shí)鐘 /發(fā)送時(shí)鐘控制下,按指定的波特率速度進(jìn)行移位。一般幾個(gè)時(shí)鐘脈沖移位一次。要求:接收時(shí)鐘 /發(fā)送時(shí)鐘是波特率的 1 32 或 64 倍。波特率因子就是發(fā)送 /接收 1 個(gè)數(shù)據(jù)(1 個(gè)數(shù)據(jù)位 )所需要的時(shí)鐘脈沖個(gè)數(shù),其單位是個(gè) /位。如波特率因子為 16,則16 個(gè)時(shí)鐘脈沖移位 1 次。例:波特率為 9600bps,波特率因子為 32,則接收時(shí)鐘和發(fā)送時(shí)鐘頻率為 9600 32=297200Hz。 3. 接收和發(fā)送時(shí)鐘 在串行傳輸過程中,二進(jìn)制數(shù)據(jù) 序列是以數(shù)字信號波形的形式出現(xiàn)的,如何對這些數(shù)字波形定時(shí)發(fā)送出去或接收進(jìn)來,以及如何對發(fā) /收雙方之間的數(shù)據(jù)傳輸進(jìn)行同步控制的問題就引出了發(fā)送 /接收時(shí)鐘的應(yīng)用。 在發(fā)送數(shù)據(jù)時(shí),發(fā)送器在發(fā)送時(shí)鐘 (下降沿 )作用下將發(fā)送移位寄存器的數(shù)據(jù)按串行移位輸出;在接收數(shù)據(jù)時(shí),接收器在接收時(shí)鐘 (上升沿 )作用下對來自通信線上串行數(shù)據(jù),按位串行移入移位寄存器。可見,發(fā)送 /接收時(shí)鐘是對數(shù)字波形的每一位進(jìn)行移位操作,因此,從這個(gè)意義上來講,發(fā)送 /接收時(shí)鐘又可叫做移位時(shí)鐘脈沖。另外,從數(shù)據(jù)傳輸過程中,收方進(jìn)行同步檢測的角度來看,接收時(shí)鐘 成為收方保證正確接收數(shù)據(jù)的重要工具。為此,接收器采用比波特率更高頻率的時(shí)鐘來提高定位采樣的分辨能力和抗干擾能力。 本設(shè)計(jì)中要求波特率發(fā)生器可編程,產(chǎn)生 UART 通信時(shí)所需時(shí)鐘 (16 倍于波特率 ),驅(qū)動(dòng)發(fā)送器邏輯和接收器邏輯。一般的分頻功能主要由 16 位二進(jìn)制除數(shù)鎖存器和 16 位計(jì)數(shù)器完成。除數(shù)鎖存器包括 8 位二進(jìn)制除數(shù)高字節(jié)鎖存器 (MSB) 和除數(shù)低字節(jié)鎖存器 (LSB),在地址選擇信號作用下,依次寫入計(jì)數(shù)器中。計(jì)數(shù)器每次計(jì)數(shù)至除數(shù)的一半時(shí),分頻輸出信號為高電平,計(jì)數(shù)溢出后變?yōu)榈碗娖?。通過除數(shù)的設(shè)置,可以對系統(tǒng)時(shí)鐘進(jìn)行 任意數(shù) (最大為 256 1)分頻,其中,除數(shù)=系統(tǒng)時(shí)鐘 /(16 倍波特率 )?;谶@種思想選波特率為 115200bps,系統(tǒng)時(shí)鐘選用40MHz,那么要產(chǎn)生 16 分頻,在軟件中是這樣實(shí)現(xiàn)的, 40MHz/115200=346,那么要進(jìn)行 16 分頻,就是要 346/16=21,把這兩個(gè)數(shù)值作為初始值,最終產(chǎn)生兩個(gè)使能信號 rs232_16xclk_en, rs232_1xclk_en,實(shí)現(xiàn) 16 分頻。通過程序的設(shè)置可以實(shí)現(xiàn)對系統(tǒng)時(shí)鐘的任意分頻。 14 串行數(shù)據(jù)接收模塊 串行數(shù)據(jù)接收模塊主要由移位寄存器、位計(jì)數(shù)器、 16 分 頻電路、起始位檢測電路和 FSM 組成,其結(jié)構(gòu)如圖 9 所示。移位寄存器實(shí)現(xiàn)數(shù)據(jù)的并 — 串轉(zhuǎn)換。位計(jì)數(shù)器用來記錄已經(jīng)接收的數(shù)據(jù)位的數(shù)目。起始位檢測電路檢測正確的起始位,濾除噪聲信號。 16 分頻電路用來產(chǎn)生數(shù)據(jù)接收的時(shí)鐘信號 (波特率頻率 ),其與發(fā)送時(shí)鐘之間的同步由內(nèi)部時(shí)鐘使能信號控制。 1 6 分 頻 電 路起 始 位 檢 測電 路位 計(jì) 數(shù) 器移 位 寄 存 器F S MC L K X 1 6R X D D _ O U T [ 7 ~ 0 ]u a r t _ d _ r e a d y 圖 9 接收模塊結(jié)構(gòu)圖 接收過程指的是當(dāng)起始位檢測電路檢測到有數(shù)據(jù)時(shí),順序讀取串行數(shù)據(jù)并且將其輸出給 CPU 的過程。當(dāng)信號監(jiān)測電路監(jiān)測到新的數(shù)據(jù) (RS232 輸入邏輯變?yōu)?,即 RS232 傳輸協(xié)議的起始位 )就會(huì)觸發(fā)接收過程,其流程圖如圖 10 所示。首先 UART 內(nèi)核會(huì)重置波特率發(fā)生器和移位寄存器,并且設(shè)置移位寄存器的工作模式為波特率模式,以準(zhǔn)備接收數(shù)據(jù)。其次,移位寄存器在波特率時(shí)鐘的驅(qū)動(dòng)下工作,不斷讀取 RS232 串行總線的輸入數(shù)據(jù),并且將數(shù)據(jù)保存在內(nèi)部的寄存器內(nèi)。接收完成后, UART 內(nèi)核會(huì)對已接收的數(shù)據(jù)進(jìn)行奇偶檢驗(yàn)并且輸出校驗(yàn)結(jié)果。最后, UART 內(nèi)核會(huì)重新啟動(dòng)信號檢測電路,以準(zhǔn)備進(jìn)行下一次數(shù)據(jù)接收。 15 啟 動(dòng)重 置 波 特 率 發(fā) 生 器 和 移位 寄 存 器 , 設(shè) 置 其 工 作模 式 為 波 特 率 模 式將 移 位 寄 存 器 移 位 , 讀取 串 行 輸 入 信 號 , 放 在移 位 寄 存 器 末 位全 部 數(shù) 據(jù) 已 讀 取 ?進(jìn) 行 奇 偶 校 驗(yàn)奇 偶 位 正 確 嗎 ?輸 出 錯(cuò) 誤 信 號 輸 出 接 收 完 成 信 號重 新 啟 動(dòng) 起 始 位 檢測 電 路返 回否是否 是 圖 10 接收數(shù)據(jù)流程圖 接收 數(shù)據(jù)的程序描述如下:當(dāng)編程初始化進(jìn)入允許接收和準(zhǔn)備好接收數(shù)據(jù)狀態(tài),監(jiān)視串行數(shù)據(jù)輸入線 din。在無字符傳送時(shí)數(shù)據(jù)輸入
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1