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