基于FPGA的通用異步收發器設計
2.3.2 接收模塊功能仿真
接收模塊功能仿真結果如圖5所示。二進制數11101010從引腳RXD串行輸入,接收器先要捕捉起始位,在RDN信號為0條件下,啟動接收程序,計數器開始計數,數據從RXD[7..0]串行輸入,由接收移位寄存器RSR[7..0]逐位移位接收,并在接收完成時傳送給接收緩沖寄存器RBR[7..0],最后接收緩沖寄存器RBR[7..0]將接收的數據傳送至DOUT[7..0],由它并行輸出,同時輸出一個接收數據準備好信號DATA _RE標志數據接收完畢。本文引用地址:http://cqxgywz.com/article/191039.htm

2.4 波特率發生器模塊
2.4.1 波特率發生器模塊及其功能
波特率發生器模塊主要用于產生接收模塊和發送模塊的時鐘頻率,其實質就是一個分頻器,可以根據給定的系統時鐘頻率和要求的波特率算出波特率分頻因子,作為分頻器的分頻數。波特率發生器產生的時鐘頻率CLK16X不是波特率時鐘頻率CLK,而是波特率時鐘頻率CLK的16倍。波特率發生器模塊的引腳如圖6所示,其功能如表3所示。

2.4.2 波特率發生器功能仿真
UART在發送或接收數據時,使用的時鐘信號頻率f是波特率(b=9 600 b/s)的16倍,由外部系統時鐘進行16分頻得到。UART每16個波特時鐘發送或接收一個二進制位,設計中采用的晶振頻率c=25 MHz,那么波特率發生器輸出的時鐘信號周期為:
![]()
波特率發生器的功能仿真如圖7所示。

本設計用晶振為25 MHz,由公式可得出輸出波形的半個周期應為k/2,即81倍的輸入時鐘周期,仿真結果驗證了波特率發生器模塊的正確性。
3 結語
UlART是廣泛使用的串行數據通信電路,因其要求的傳輸線少,可靠性高,傳輸距離遠,所以系統間互聯常采用異步串行通信接口方式。本文用Verilog HDL語言,結合有限狀態機的設計方法實現了UART的功能,將其核心功能集成到FPGA上,使整體設計緊湊、小巧,實現的UART功能穩定、可靠;同時,利用有限狀態機的方法具有結構模式直觀簡單,設計流程短,程序層次分明,易綜合,可靠性高等優點,必將在EDA技術中發揮重要作用。














評論