uart接收器源代碼_基于fpga設(shè)計與實現(xiàn)uart

uart接收器源代碼_基于fpga設(shè)計與實現(xiàn)uart

ID:12284857

大小:43.00 KB

頁數(shù):11頁

時間:2018-07-16

uart接收器源代碼_基于fpga設(shè)計與實現(xiàn)uart_第1頁
uart接收器源代碼_基于fpga設(shè)計與實現(xiàn)uart_第2頁
uart接收器源代碼_基于fpga設(shè)計與實現(xiàn)uart_第3頁
uart接收器源代碼_基于fpga設(shè)計與實現(xiàn)uart_第4頁
uart接收器源代碼_基于fpga設(shè)計與實現(xiàn)uart_第5頁
資源描述:

《uart接收器源代碼_基于fpga設(shè)計與實現(xiàn)uart》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫

1、uart接收器源代碼_基于FPGA設(shè)計與實現(xiàn)UART基于FPGA設(shè)計與實現(xiàn)UARTUART(即UniversalAsynchronousReceiverTransmitter通用異步收發(fā)器)是廣泛使用的串行數(shù)據(jù)傳輸協(xié)議。UART允許在串行鏈路上進行全雙工的通信。---串行外設(shè)用到RS-232異步串行接口,本實驗室平臺用的是MAXIM公司生產(chǎn)的MAX23。MAX232可以將串口設(shè)備需要發(fā)送的TTL/CMOS邏輯電平轉(zhuǎn)換為RS-232邏輯電平,同時也可以將要接收的RS-232邏輯電平轉(zhuǎn)換為TTL/CMOS邏輯電平。本實驗通過編寫VHD

2、L語言程序,實現(xiàn)數(shù)據(jù)在實驗平臺與PC之間通過串口進行收發(fā),基于FPGA器件設(shè)計與實現(xiàn)UART。一UART基本知識UART是通過串行傳送數(shù)據(jù)而實現(xiàn)通信的,它的幀格式如下:---包括線路空閑狀態(tài)(高電平)、起始位(低電平'0')、5~8位數(shù)據(jù)位、可選的校驗位和停止位(可為1、1.5、2位)。這種格式是由起始位和停止位來實現(xiàn)字符的同步。另外,UART在國際上有一標準的波特率系列,在本實驗中采用的波特率為9600HZ。二管腳鎖定及功能說明1、時鐘clk鎖定在4MHZ的頻率,是本實驗箱的28號管腳的第三個針腳;2、復(fù)位鍵reset鎖在105

3、號管腳,用來復(fù)位;3、數(shù)據(jù)輸入端口din[7..0]為117--124,實驗8位數(shù)據(jù)輸入;4、輸入使能口trans_lock為57,按一次輸入一位數(shù)據(jù);5、接收數(shù)據(jù)dout[7..0]顯示為85--96,顯示接收的數(shù)據(jù)6、接收出錯信號frame_erro鎖在74,為1則表示接收有誤;7、接收完畢f(xié)rame_end信號為75,為1表示接收完畢為0則表示正在接收,不允許發(fā)送;8、發(fā)送完畢信號trans_end為76,為1表示發(fā)送完畢,為0則表示正在發(fā)送,不允許接收。9、串行數(shù)據(jù)輸入口rxd鎖在97,串行數(shù)據(jù)輸出口txd鎖在98,分別用

4、來數(shù)據(jù)的輸入與輸出。三UART的設(shè)計與實現(xiàn)1、分頻計:由于本實驗采用的波特率為9600HZ,它每隔16個時鐘周期采樣一個數(shù)據(jù),因此實際輸入的頻率為9600HZ×16=153600HZ,實驗平臺上沒有合適的時鐘頻率,因此在本實驗中采用了4MHZ的時鐘輸入,對它進行了26分頻(4000k/153.6k=26.42),接近了實驗要求的時鐘頻率。它的源代碼如下:--GeneratedbyQuartusIIVersion4.0(BuildBuild1901/28/2004)--CreatedonSunNov2017:09:412005--文

5、件名:baud.vhd--功能:將外部輸入的4MHz的信號分成頻率為153600Hz=9600Hz×16的信號--26倍分頻計libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_ARITH.ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;entitybaudisPort(clkb,resetb:instd_logic;clk_out:outstd_logic);endbaud;architectureBehavioralofbaudisbeginp

6、rocess(clkb,resetb)variablediv:integerrange0to26;beginifresetb='1'then--復(fù)位div:=0;clk_out<='0';elsifclkb'eventandclkb='1'then--設(shè)置分頻系數(shù)div:=div+1;ifdiv=13then--一半的時候置0clk_out<='0';elsifdiv=26then--26的時候置1clk_out<='1';div:=0;endif;endif;endprocess;endBehavioral;2、UART接收器-

7、--串行數(shù)據(jù)幀和接收時鐘是異步的,發(fā)送來的數(shù)據(jù)由邏輯1變?yōu)檫壿?可以視為一個數(shù)據(jù)幀的開始。接收器先要捕捉起始位,確定rxd輸入由1到0,邏輯0要8個CLK16時鐘周期,才是正常的起始位,然后在每隔16個CLK16時鐘周期采樣接收數(shù)據(jù),移位輸入接收移位寄存器rbuf,最后輸出數(shù)據(jù)dout。接收完畢時,數(shù)據(jù)接收標志信號frame_end置1,標志數(shù)據(jù)接收完畢,接收過程中為0,防止發(fā)送沖突。如果接收的過程中發(fā)生錯誤,則接收出錯信號frame_error為1,平時此信號為0。接收器實現(xiàn)的源代碼如下:--GeneratedbyQuartus

8、IIVersion4.0(BuildBuild1901/28/2004)--CreatedonSunNov2017:09:412005--文件名:receive.vhd。--功能:UART接受器。libraryIEEE;useIEEE.STD_LO

當前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。