基于FPGA的通用異步收發(fā)器設(shè)計(jì)
2.3.2 接收模塊功能仿真
接收模塊功能仿真結(jié)果如圖5所示。二進(jìn)制數(shù)11101010從引腳RXD串行輸入,接收器先要捕捉起始位,在RDN信號(hào)為0條件下,啟動(dòng)接收程序,計(jì)數(shù)器開始計(jì)數(shù),數(shù)據(jù)從RXD[7..0]串行輸入,由接收移位寄存器RSR[7..0]逐位移位接收,并在接收完成時(shí)傳送給接收緩沖寄存器RBR[7..0],最后接收緩沖寄存器RBR[7..0]將接收的數(shù)據(jù)傳送至DOUT[7..0],由它并行輸出,同時(shí)輸出一個(gè)接收數(shù)據(jù)準(zhǔn)備好信號(hào)DATA _RE標(biāo)志數(shù)據(jù)接收完畢。本文引用地址:http://m.butianyuan.cn/article/191039.htm
2.4 波特率發(fā)生器模塊
2.4.1 波特率發(fā)生器模塊及其功能
波特率發(fā)生器模塊主要用于產(chǎn)生接收模塊和發(fā)送模塊的時(shí)鐘頻率,其實(shí)質(zhì)就是一個(gè)分頻器,可以根據(jù)給定的系統(tǒng)時(shí)鐘頻率和要求的波特率算出波特率分頻因子,作為分頻器的分頻數(shù)。波特率發(fā)生器產(chǎn)生的時(shí)鐘頻率CLK16X不是波特率時(shí)鐘頻率CLK,而是波特率時(shí)鐘頻率CLK的16倍。波特率發(fā)生器模塊的引腳如圖6所示,其功能如表3所示。
2.4.2 波特率發(fā)生器功能仿真
UART在發(fā)送或接收數(shù)據(jù)時(shí),使用的時(shí)鐘信號(hào)頻率f是波特率(b=9 600 b/s)的16倍,由外部系統(tǒng)時(shí)鐘進(jìn)行16分頻得到。UART每16個(gè)波特時(shí)鐘發(fā)送或接收一個(gè)二進(jìn)制位,設(shè)計(jì)中采用的晶振頻率c=25 MHz,那么波特率發(fā)生器輸出的時(shí)鐘信號(hào)周期為:
波特率發(fā)生器的功能仿真如圖7所示。
本設(shè)計(jì)用晶振為25 MHz,由公式可得出輸出波形的半個(gè)周期應(yīng)為k/2,即81倍的輸入時(shí)鐘周期,仿真結(jié)果驗(yàn)證了波特率發(fā)生器模塊的正確性。
3 結(jié)語
UlART是廣泛使用的串行數(shù)據(jù)通信電路,因其要求的傳輸線少,可靠性高,傳輸距離遠(yuǎn),所以系統(tǒng)間互聯(lián)常采用異步串行通信接口方式。本文用Verilog HDL語言,結(jié)合有限狀態(tài)機(jī)的設(shè)計(jì)方法實(shí)現(xiàn)了UART的功能,將其核心功能集成到FPGA上,使整體設(shè)計(jì)緊湊、小巧,實(shí)現(xiàn)的UART功能穩(wěn)定、可靠;同時(shí),利用有限狀態(tài)機(jī)的方法具有結(jié)構(gòu)模式直觀簡(jiǎn)單,設(shè)計(jì)流程短,程序?qū)哟畏置鳎拙C合,可靠性高等優(yōu)點(diǎn),必將在EDA技術(shù)中發(fā)揮重要作用。
評(píng)論