通用異步收發器(Universal Asynchronous Receiver Transmitter,UART)是一種能同時支持短距離和長距離數據傳輸的串行通信接口,被廣泛應用于微機和外設之間的數據交換。像8251、NS8250、NS16550等都是常用的UART芯片,但是這些專用的串行接口芯片的缺點是數據傳輸速率比較慢,難以滿足高速率數據傳輸的場合,而更重要的就是它們都具有不可移植性,因此要利用這些芯片來實現PC機和FPGA芯片之間的通信,勢必會增加接口連線的復雜程度以及降低整個系統的穩定性和有效性。 本課題就是針對UART的特點以及FPGA設計具有可移植性的優勢,提出了一種基于FPGA芯片的嵌入式UART設計方法,其中主要包括狀態機的描述形式以及自頂向下的設計方法,利用硬件描述語言來編制UART的各個子功能模塊以及頂層模塊,之后將其集成到FPGA芯片的內部,這樣不僅能解決傳統UART芯片的缺點而且同時也使整個系統變得更加具有緊湊性以及可靠性。 本課題所設計的LIART支持標準的RS-232C傳輸協議,主要設計有發送模塊、接收模塊、線路控制與中斷仲裁模塊、Modem控制模塊以及兩個獨立的數據緩沖區FIFO模塊。該模塊具有可變的波特率、數據幀長度以及奇偶校驗方式,還有多種中斷源、中斷優先級、較強的抗干擾數據接收能力以及芯片內部自診斷的能力,模塊內分開的接收和發送數據緩沖寄存器能實現全雙工通信。除此之外最重要的是利用IP模塊復用技術設計數據緩沖區FIFO,采用兩種可選擇的數據緩沖模式。這樣既可以應用于高速的數據傳輸環境,也能適合低速的數據傳輸場合,因此可以達到資源利用的最大化。 在具體的設計過程中,利用Synplify Pro綜合工具、ModelSim仿真工具、ISE集成的軟件開發環境中對各個功能模塊進行綜合優化、仿真驗證以及下載實現。各項數據結果表明,本課題中所設計的UART滿足預期設計目標。
標簽:
FPGA
異步收發器
上傳時間:
2013-08-02
上傳用戶:rocketrevenge