基于FPGA的UART設計與實現

2 數據傳輸測試
隨著邏輯設計復雜性的不斷增加,僅依賴于軟件方式的仿真測試來了解系統的硬件功能有很多的局限性,應用QuartusⅡ集成開發環境中提供的SignalTapⅡ嵌入式邏輯分析儀,可以將測試信息隨設計文件下載于目標芯片中,用以捕獲目標芯片內部系統信號節點處的信息或總線上的數據流,而又不影響原硬件系統的正常工作。測試信息通過器件的JTAG端口傳出,并送入計算機進行顯示和分析,這是一種高效的硬件測試手段,并很好地結合了傳統的系統測試方法。
本設計在Altera Cyclone系列的EPlC6Q240C8芯片上進行了驗證,使用QuarltusⅡ軟件將編譯好的.pof格式文件以AS模式下載到配置芯片EPCS1中。在計算機端運行串口調試助手軟件,將數據從計算機送出,并利用FPGA上的UART模塊進行接收,將發送數據與SignalTapⅡ獲取的波形進行對比,經多次測試表明收發數據完全相同。本文引用地址:http://www.104case.com/article/191633.htm
以其中一次的測試為例進行說明,從PC上輸入ASCII碼的“6”,設定波特率發生器時鐘作為SignalTapⅡ的采樣時鐘,采樣波形如圖4所示,其中“recstart”表示開始接收數據幀標志;“divl6”表示16倍波特率時鐘;“cnt_rxd”表示數據位采樣計數器,一次完整的采樣計數從Oh~9h共10次采樣(1個起始位,8個數據位,1個停止位);“rxd”表示串口的接收端;“rxd_buf”表示移位寄存器,當數據停止位確認后,移位寄存器輸出收到的數據“36h”,表明了該UART工作穩定可靠。
應特別注意的是當利用SignalTapⅡ進行測試工作結束后,在生成最終產品前,應將SignalTapⅡ從芯片中除去,以免占用額外的資源,然后再重新編譯下載。全程編譯后報告消耗邏輯單元142個,只占芯片總資源的2%,沒有占用芯片的存儲單元和PLL單元,對于一個中大規模的FPGA芯片而言這是非常少的資源消耗。
3 結語
基于FPGA設計和實現UART,可以用片上很少的邏輯單元實現UART的基本功能。與傳統設計相比,能有效減少系統的PCB面積,降低系統的功耗,提高設計的穩定性和可靠性,并可方便地進行系統升級和移植。
本設計具有較大的靈活性,通過調整波特率發生器的分頻參數,就可以使其工作在不同的頻率。采用16倍波特率的采樣時鐘,可以實時有效探測數據的起始位,并可對數據位進行“對準”中央采樣,保證了所采樣數據的正確性。該模塊可以作為一個完整的IP核移植進各種FPGA中,在實際應用時可嵌入到其他系統中,很容易實現和遠端上位機的異步通信。
評論