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