FPGA與PC通信的UART串口設(shè)計(jì)
發(fā)布時(shí)間:2020-12-10 02:12
FPGA在數(shù)據(jù)采集、高速數(shù)字信號(hào)處理領(lǐng)域應(yīng)用中,通常需要與外設(shè)通過UART實(shí)現(xiàn)串行數(shù)據(jù)通信.介紹了一種基于FPGA的UART通信模塊,由任意頻率發(fā)生器產(chǎn)生精確的波特率時(shí)鐘,采用VerilogHDL語言實(shí)現(xiàn)了串口數(shù)據(jù)發(fā)送模塊和接收模塊.仿真測(cè)試驗(yàn)證可實(shí)現(xiàn)可靠的全雙工串口通信.
【文章來源】:蘭州工業(yè)學(xué)院學(xué)報(bào). 2020年05期 第56-61頁
【文章頁數(shù)】:6 頁
【部分圖文】:
任意頻率發(fā)生器原理
串口數(shù)據(jù)的接收相對(duì)于PC機(jī)而言,FPGA板卡扮演從機(jī)角色.在固定的波特率下,捕獲主機(jī)發(fā)送的數(shù)據(jù),根據(jù)UART串口發(fā)送時(shí)序(見圖2),串轉(zhuǎn)并得到發(fā)送的8位數(shù)據(jù).由圖2可知,在一定波特率下,UART數(shù)據(jù)采集步驟如下:
表1 UART接收狀態(tài)轉(zhuǎn)移 序號(hào) 狀態(tài) 描述 0 r_idle 初始化等待狀態(tài),等待UART數(shù)據(jù)的起始位到來,調(diào)到r_start狀態(tài). 1 r_start 判斷是否為起始位:是,等待起始位結(jié)束,跳入r_sample狀態(tài);否,回到r_idle等待狀態(tài). 2 r_sample 有低到高,串行接收數(shù)據(jù),串并轉(zhuǎn)換. 3 r_stop 判斷是否為停止位:是,等待停止位結(jié)束,跳入r_idle狀態(tài);否,直接回到r_idle等待狀態(tài).r_idle狀態(tài)在初始化狀態(tài)下,檢測(cè)數(shù)據(jù)起始位,來實(shí)現(xiàn)狀態(tài)的轉(zhuǎn)移.關(guān)鍵代碼如下:
本文編號(hào):2907896
【文章來源】:蘭州工業(yè)學(xué)院學(xué)報(bào). 2020年05期 第56-61頁
【文章頁數(shù)】:6 頁
【部分圖文】:
任意頻率發(fā)生器原理
串口數(shù)據(jù)的接收相對(duì)于PC機(jī)而言,FPGA板卡扮演從機(jī)角色.在固定的波特率下,捕獲主機(jī)發(fā)送的數(shù)據(jù),根據(jù)UART串口發(fā)送時(shí)序(見圖2),串轉(zhuǎn)并得到發(fā)送的8位數(shù)據(jù).由圖2可知,在一定波特率下,UART數(shù)據(jù)采集步驟如下:
表1 UART接收狀態(tài)轉(zhuǎn)移 序號(hào) 狀態(tài) 描述 0 r_idle 初始化等待狀態(tài),等待UART數(shù)據(jù)的起始位到來,調(diào)到r_start狀態(tài). 1 r_start 判斷是否為起始位:是,等待起始位結(jié)束,跳入r_sample狀態(tài);否,回到r_idle等待狀態(tài). 2 r_sample 有低到高,串行接收數(shù)據(jù),串并轉(zhuǎn)換. 3 r_stop 判斷是否為停止位:是,等待停止位結(jié)束,跳入r_idle狀態(tài);否,直接回到r_idle等待狀態(tài).r_idle狀態(tài)在初始化狀態(tài)下,檢測(cè)數(shù)據(jù)起始位,來實(shí)現(xiàn)狀態(tài)的轉(zhuǎn)移.關(guān)鍵代碼如下:
本文編號(hào):2907896
本文鏈接:http://sikaile.net/kejilunwen/wltx/2907896.html
最近更新
教材專著