一種高可靠性的計算機與FPGA串行通信的實現(xiàn)
MSComm是VB對使用串口通信的用戶定制的控件,它提供了一系列標準通信屬性和方法,簡單編寫相關程序便可實現(xiàn)串行端口的連接。主要用到的屬性如表2所示。本文引用地址:http://2s4d.com/article/155412.htm
為驗證FPGA與PC的通信,需要編寫發(fā)送和接收程序,為簡化程序,部分屬性直接在注冊表中設定。如InPutMode設定為1即二進制方式讀取數(shù)據(jù);由于程序接收部分使用OnComm事件,所以這里把SThreshold屬性設定為1,而RThreshold屬性設定為發(fā)送數(shù)據(jù)的字節(jié)數(shù),即接收緩沖區(qū)接收到全部字節(jié)數(shù)后MSComm控件觸發(fā)OnComm事件,執(zhí)行相應的接收程序。InBufferSize和OutBufferSize均設置為1 024即1 KB緩沖空間。
如下是發(fā)送和接收子程序:
4 實驗驗證
實驗過程中串行數(shù)據(jù)的收、發(fā)等功能在Altera公司的CycloneⅡ系列EP2C5芯片下實現(xiàn),在VB 6.0中編寫相應的FPGA與PC通信的調試窗口,如圖7所示為數(shù)據(jù)傳輸率9 600 b/s的實驗結果。
打開應用程序,設置好通信端口、約定的通信速率、數(shù)據(jù)位等,在相應的輸入框輸入“FPGA與PC通信成功!”字符,點擊5次發(fā)送,從顯示區(qū)可以看到理想的結果,實驗結果表明FPGA與PC通信可靠。
5 結語
本文實現(xiàn)了計算機與FPGA的串口通信,結合上位機的VB程序驗證了通信的正確性。設計過程中FIFO部分運用了IP核使得程序更加簡潔,且外加了一位撥碼開關,實現(xiàn)了運行過程中兩種波特率的靈活選擇。實際運用中可以再相應地增加撥碼開關實現(xiàn)多波特率多數(shù)據(jù)位等的互調,不必為了適應不同的通信標準而重新編寫代碼、重新配置。FPGA部分的程序在QuartusⅡ9.1環(huán)境下編輯、調試,綜合結果顯示共占用
FPGA的144個邏輯單元、81個專用邏輯寄存器、32位存儲器和1個鎖相環(huán),相比百萬門大規(guī)模FPGA占用資源很少,可以作為IP核靈活移植到其他工程中實現(xiàn)與PC的串行通信,為今后的設計開發(fā)提供參考。
評論