基于FPGA的UART設計與實(shí)現

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