基于FPGA的RS232異步串行口IP核設(shè)計
2.5 接收模塊設(shè)計
接收模塊也分為空閑、檢測起始位、移位等3種模式。如圖4所示。首先捕捉起始位,在 mclkx16時鐘下不斷檢測從rx端輸入數(shù)據(jù)的起始位,當(dāng)檢測到起始位后,接收模塊由空閑模式轉(zhuǎn)換為移位模式,并且16分頻mclkx16產(chǎn)生 rxclk波特率時鐘。此時rxclk時鐘的上升沿位于串行數(shù)據(jù)每一位的中間,這樣接下來的數(shù)據(jù)在每一位的中點采樣。然后由rxclk控制在上升沿將數(shù)據(jù)位寫入移位寄存器rgr的rsr[7]位,并且rsr右移1位,依次將8位數(shù)據(jù)全部寫入rsr,并且停止產(chǎn)生rxclk波特率時鐘。判斷奇偶校驗、幀結(jié)構(gòu)和溢出標(biāo)志正確后,rsr寄存器中的數(shù)據(jù)寫入rhr數(shù)據(jù)鎖存寄存器中,最后由8位數(shù)據(jù)總線輸出轉(zhuǎn)換完成的數(shù)據(jù)。
接收模塊部分VHDL程序如下:
3 硬件電路設(shè)計
UART IP核設(shè)計完成后需要嵌入FPGA系統(tǒng)中才能運行,該系統(tǒng)選用Xilinx公司Spartan-IIE XC2S50型FPGA和與其配套的EPROM XC18V01組成,如圖5所示。該系統(tǒng)已實現(xiàn)設(shè)計要求的功能,實現(xiàn)IP核的驗證。
4 結(jié)果分析
程序經(jīng)仿真驗證后,須綜合生成IP核并嵌人FPGA中。使用Xilinx公司的Xilinx ISE工具綜合UART模塊,F(xiàn)PGA選用Xilinx公司Spartan-IIE XC2S50,系統(tǒng)時鐘40 MHz。經(jīng)Xil-inx ISE后,資源使用結(jié)果如表1所示。表明使用少量FPGA的Slice和LUT單元就可生成UART核,節(jié)省資源UART核可靈活分成接收和發(fā)送兩部分,可根據(jù)需要選擇使用。節(jié)省系統(tǒng)資源;一些控制標(biāo)志字也可根據(jù)需要自行刪減和擴充。最后將集成有UART核的FPGA數(shù)據(jù)采集系統(tǒng)與測試臺進(jìn)行異步串行通信實驗,檢測通信數(shù)據(jù)表明使用UART核傳輸數(shù)據(jù)穩(wěn)定可靠。
5 結(jié)束語
數(shù)據(jù)采集系統(tǒng)經(jīng)常采用UART異步串行通信接口作為系統(tǒng)的短距離串行通信。相對于傳統(tǒng)的UART器件來說,把具有UART功能的IP核集成在FPGA中的更有利于提高數(shù)據(jù)采集系統(tǒng)的可靠性和穩(wěn)定性,減小電路板面積。該系統(tǒng)設(shè)計的UART IP核通過仿真驗證,經(jīng)綜合、編譯、嵌入FPGA,成功實現(xiàn)系統(tǒng)通信。
評論