基于FPGA與ARM的遙測數據網絡化采集
當用戶程序讀FPGA設備時,數據還未準備好,此時驅動程序應該阻塞該進程,將其置入睡眠狀態(tài)直到條件滿足。此時需要初始化一個等待隊列頭,對讀進程的休眠和喚醒時使用:
3.2.2 驅動程序控制接口Ioctl
Ioctl用來設置FPGA中幀同步器和模擬源的參數,部分設置命令如表1所示。本文引用地址:http://www.ex-cimer.com/article/190977.htm
flag為一個標志位,當flag被中斷函數設置為1時表示設備中有數據,此時讀進程可被換醒。
3.2.4 用戶程序及測試
設備驅動實現(xiàn)后,需編寫相應的用戶程序來進行測試驅動程序和實現(xiàn)數據的網絡轉發(fā)。在用戶程序中,讀/寫FPGA設備使用與普通文件一樣的操作函數。移植Linux時配置好網卡的地址,然后使用Socket編程實現(xiàn)數據的TCP/IP轉發(fā),用遙測軟件接收到的數據測試如圖7所示。
通過測試可以看到,同步碼FDB18450被正確識別,IRIG-B解碼為當前時間。
4 結語
在此,基于FPGA與ARM進行遙測數據的幀同步遙測數據的網絡轉發(fā),充分地利用了FPGA與ARM各自的特點,它可使FPGA+ARM在數據接收處理中得到廣泛應用。
評論