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