www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > EDA > 電子設(shè)計自動化
[導(dǎo)讀]UART是廣泛使用的串行數(shù)據(jù)通訊電路。本設(shè)計包含UART發(fā)送器、接收器和波特率發(fā)生器。設(shè)計應(yīng)用EDA技術(shù),基于FPGA/CPLD器件設(shè)計與實現(xiàn)UART。

摘 要UART是廣泛使用的串行數(shù)據(jù)通訊電路。本設(shè)計包含UART發(fā)送器、接收器和波特率發(fā)生器。設(shè)計應(yīng)用EDA技術(shù),基于FPGA/CPLD器件設(shè)計與實現(xiàn)UART。
關(guān)鍵詞:FPGA/CPLD;UART;VHDL

---UART(即Universal Asynchronous Receiver Transmitter 通用異步收發(fā)器)是廣泛使用的串行數(shù)據(jù)傳輸協(xié)議。UART允許在串行鏈路上進行全雙工的通信。
---串行外設(shè)用到RS232-C異步串行接口,一般采用專用的集成電路即UART實現(xiàn)。如8250、8251、NS16450等芯片都是常見的UART器件,這類芯片已經(jīng)相當復(fù)雜,有的含有許多輔助的模塊(如FIFO),有時我們不需要使用完整的UART的功能和這些輔助功能?;蛘咴O(shè)計上用到了FPGA/CPLD器件,那么我們就可以將所需要的UART功能集成到FPGA內(nèi)部。使用VHDL將UART的核心功能集成,從而使整個設(shè)計更加緊湊、穩(wěn)定且可靠。本文應(yīng)用EDA技術(shù),基于FPGA/CPLD器件設(shè)計與實現(xiàn)UART。

一 UART簡介
1 UART結(jié)構(gòu)
---UART主要有由數(shù)據(jù)總線接口、控制邏輯、波特率發(fā)生器、發(fā)送部分和接收部分等組成。
---功能包括微處理器接口,發(fā)送緩沖器(tbr)、發(fā)送移位寄存器(tsr)、幀產(chǎn)生、奇偶校驗、并轉(zhuǎn)串、數(shù)據(jù)接收緩沖器(rbr)、接收移位寄存器(rsr)、幀產(chǎn)生、奇偶校驗、串轉(zhuǎn)并。
---圖1是UART的典型應(yīng)用。
2 UART的幀格式
---UART的幀格式如圖2所示。


---包括線路空閑狀態(tài)(idle,高電平)、起始位(start bit,低電平)、5~8位數(shù)據(jù)位(data bits)、校驗位(parity bit,可選)和停止位(stop bit,位數(shù)可為1、1.5、2位)。
---這種格式是由起始位和停止位來實現(xiàn)字符的同步。
---UART內(nèi)部一般有配置寄存器,可以配置數(shù)據(jù)位數(shù)(5~8位)、是否有校驗位和校驗的類型、停止位的位數(shù)(1,1.5,2)等設(shè)置。

二 UART的設(shè)計與實現(xiàn)
1 UART發(fā)送器
---發(fā)送器每隔16個CLK16時鐘周期輸出1位,次序遵循1位起始位、8位數(shù)據(jù)位(假定數(shù)據(jù)位為8位)、1位校驗位(可選)、1位停止位。
---CPU何時可以往發(fā)送緩沖器tbr寫入數(shù)據(jù),也就是說CPU要寫數(shù)據(jù)到tbr時必須判斷當前是否可寫,如果不判這個條件,發(fā)送的數(shù)據(jù)會出錯。
---數(shù)據(jù)的發(fā)送是由微處理器控制,微處理器給出wen信號,發(fā)送器根據(jù)此信號將并行數(shù)據(jù)din[7..0]鎖存進發(fā)送緩沖器tbr[7..0],并通過發(fā)送移位寄存器tsr[7..0]發(fā)送串行數(shù)據(jù)至串行數(shù)據(jù)輸出端dout。在數(shù)據(jù)發(fā)送過程中用輸出信號tre作為標志信號,當一幀數(shù)據(jù)發(fā)送完畢時,tre信號為1,通知CPU在下個時鐘裝入新數(shù)據(jù)。
---發(fā)送器端口信號如圖3所示。

---引入發(fā)送字符長度和發(fā)送次序計數(shù)器length_no,實現(xiàn)的部分VHDL程序如下。
---if std_logic_vector(length_no) = “0001” then
---tsr <= tbr ; --發(fā)送緩沖器tbr數(shù)據(jù)進入發(fā)送移位寄存器tsr
---tre <= '0' ; --發(fā)送移位寄存器空標志置“0”
---elsif std_logic_vector(length_no) = “0010” then
---dout <= '0' ; --發(fā)送起始位信號“0”
---elsif std_logic_vector(length_no) >= “0011” and std_logic_vector(length_no) <= “1010” then
---tsr <= '0' & tsr(7 downto 1); --從低位到高位進行移位輸出至串行輸出端dout
---dout <= tsr(0) ;
---parity <= parity xor tsr(0) ; --奇偶校驗
---elsif std_logic_vector(length_no) = “1011” then
---dout <= parity ; 校驗位輸出
---elsif std_logic_vector(length_no) = “1100” then
---dout <= '1' ; --停止位輸出
---tre <= '1' ; --發(fā)送完畢標志置“1”
---end if ;
---發(fā)送器仿真波形如圖4所示。


2 UART接收器
---串行數(shù)據(jù)幀和接收時鐘是異步的,發(fā)送來的數(shù)據(jù)由邏輯1變?yōu)檫壿?可以視為一個數(shù)據(jù)幀的開始。接收器先要捕捉起始位,確定rxd輸入由1到0,邏輯0要8個CLK16時鐘周期,才是正常的起始位,然后在每隔16個CLK16時鐘周期采樣接收數(shù)據(jù),移位輸入接收移位寄存器rsr,最后輸出數(shù)據(jù)dout。還要輸出一個數(shù)據(jù)接收標志信號標志數(shù)據(jù)接收完。
---接收器的端口信號如圖5所示。
---實現(xiàn)的部分VHDL程序如下。
---elsif clk1x'event and clk1x = '1' then
---if std_logic_vector(length_no) >= “0001” and std_logic_vector(length_no) <= “1001” then
-----數(shù)據(jù)幀數(shù)據(jù)由接收串行數(shù)據(jù)端移位入接收移位寄存器
---rsr(0) <= rxda ;
---rsr(7 downto 1) <= rsr(6 downto 0) ;
---parity <= parity xor rsr(7) ;
---elsif std_logic_vector(length_no) = “1010” then
---rbr <= rsr ; --接收移位寄存器數(shù)據(jù)進入接收緩沖器
---......
---end if ;
---接收器仿真波形如圖6所示。

3 波特率發(fā)生器
---UART的接收和發(fā)送是按照相同的波特率進行收發(fā)的。波特率發(fā)生器產(chǎn)生的時鐘頻率不是波特率時鐘頻率,而是波特率時鐘頻率的16倍,目的是為在接收時進行精確地采樣,以提出異步的串行數(shù)據(jù)。
---根據(jù)給定的晶振時鐘和要求的波特率算出波特率分頻數(shù)。
---波特率發(fā)生器仿真波形如圖7所示。

三 小結(jié)
---通過波特率發(fā)生器、發(fā)送器和接收器模塊的設(shè)計與仿真,能較容易地實現(xiàn)通用異步收發(fā)器總模塊,對于收發(fā)的數(shù)據(jù)幀和發(fā)生的波特率時鐘頻率能較靈活地改變,而且硬件實現(xiàn)不需要很多資源,尤其能較靈活地嵌入到FPGA/CPLD的開發(fā)中。在EDA技術(shù)平臺上進行設(shè)計、仿真與實現(xiàn)具有較好的優(yōu)越性。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

北京2025年4月11日 /美通社/ -- 全球領(lǐng)先的市場研究與咨詢公司益普索Ipsos于近期發(fā)布了AI眼動快速預(yù)測工具"睿視EyeLogic",該工具能夠在60秒內(nèi)對產(chǎn)品包裝、廣告KV及視頻素材進行...

關(guān)鍵字: LOGIC AI BSP 測試

UART(Universal Asynchronous Receiver/Transmitter,通用異步收發(fā)傳輸器)通信協(xié)議是嵌入式系統(tǒng)中廣泛應(yīng)用的通信協(xié)議之一。它以其簡單、可靠和靈活的特性,成為連接微控制器、傳感器、...

關(guān)鍵字: 嵌入式系統(tǒng) UART 通信協(xié)議

在嵌入式開發(fā)領(lǐng)域,UART、I2C、SPI等接口技術(shù)被廣泛使用,它們?yōu)槲⒖刂破髋c外部設(shè)備之間的通信提供了高效、可靠的途徑。本文將詳細介紹這三種常用的外設(shè)接口。

關(guān)鍵字: UART I2C

在現(xiàn)代嵌入式系統(tǒng)開發(fā)中,串行通信協(xié)議扮演著至關(guān)重要的角色。其中,UART(通用異步收發(fā)傳輸器)、I2C(Inter-Integrated Circuit)和SPI(Serial Peripheral Interface)...

關(guān)鍵字: UART I2C SPI 串行總線

串口全稱是串行接口(Serial Interface),串口通訊指僅用一對傳輸線就能將數(shù)據(jù)以比特位進行傳輸?shù)囊环N通訊方式。盡管串口通訊必按字節(jié)傳輸?shù)牟⑿型ㄐ怕?,但是串口可以在僅用兩根線的情況下完成數(shù)據(jù)傳輸,大大降低了成本...

關(guān)鍵字: 串口 UART

在嵌入式系統(tǒng)的開發(fā)過程中,調(diào)試是至關(guān)重要的一環(huán)。調(diào)試工具的選擇直接影響到開發(fā)效率、系統(tǒng)穩(wěn)定性以及后期的維護成本。在眾多通信協(xié)議中,UART(通用異步收發(fā)傳輸器)因其簡單性、靈活性以及廣泛的工具支持,成為嵌入式調(diào)試中的首選...

關(guān)鍵字: 嵌入式 UART SPI I2C

UART(Universal Asynchronous Receiver/Transmitter,通用異步收發(fā)器)是一種常用的串行通信協(xié)議,廣泛應(yīng)用于單片機或各種嵌入式設(shè)備之間的通信。

關(guān)鍵字: UART DMA

隨著單片機系統(tǒng)的廣泛應(yīng)用和計算機網(wǎng)絡(luò)技術(shù)的普及,單片機的通信功能愈來愈顯得重要。單片機通信是指單片機與計算機或單片機與單片機之間的信息交換。

關(guān)鍵字: 單片機系統(tǒng) UART

在嵌入式系統(tǒng)中,板上通信接口是指用于將各種集成電路與其他外圍設(shè)備交互連接的通信通路或總線。下面將逐一說明常用的板上通信接口。

關(guān)鍵字: UART 1-Wire接口 并行接口
關(guān)閉