姚成乾 永城職業學院
論如何應用FPGA實現傳感器數據采集系統
姚成乾 永城職業學院
FPGA是一種集成度高、靈活性強、可反復擦寫的半定制電路,現場可編程邏輯門陣列,相較于ASIC而言,其可實現的功能更為豐富,能夠有效彌補定制電路中存在的某些不足,完成時序和組合邏輯復雜的功能和人物。應用FPGA構建傳感器數據采集系統不僅可以滿足系統的大容量傳輸與處理需求,還能夠依照系統需求進行在線編程,實現功能的定制化。
FPGA 傳感器 數據采集 功能結構 設計流程
使用FPGA作為核心進行系統設計需要遵循自頂向下和模塊化的設計思想進行設計,即首先按照系統特點將大的系統劃分為多個相對獨立的基本單元,然后再對這些基本單元再進行細分,直到最后的層級達到EDA元件庫能夠將其實現為止。
FPGA的開發設計流程主要包括電路的仿真設計、設計驗證與行為仿真,電路圖布線及功能仿真、具體器件編程調試與功能驗證等。其中電路設計是依照所設計的系統進行功能規劃和接口定義;設計驗證是一種非底層的理想化狀態邏輯驗證;行為仿真是將高級描述轉化為低級描述,綜合考慮各元器件之間的延時對功能電路進行仿真;電路圖布線及功能仿真是依照設計方案對FPGA芯片進行配置然后構建實際邏輯連線系統,查看電路是否正確穩定;具體器件編程調試與功能驗證是整個流程的最后一步,用于下載可執行變成數據到FPGA中對整個電路系統進行功能驗證。
為實現數據采集與傳輸,系統應該包括上位機監控模塊、數據傳輸模塊以及傳感器網絡數據采集模塊等三部分,其中上位機以FPGA為核心搭建控制模塊,主要負責控制指令的下發以及數據顯示與處理;下位機以FPGA為核心搭建采集模塊,主要負責具體的數據采集任務并將采集到的信息通過數據接口發送給上位機;上位機與下位機之間的數據傳輸網絡可設計為局域網也可以設計為公共網絡,既可以通過無線收發模塊實現無線通信也可以直接使用數據傳輸線進行有線通信,只需要依照所選用的網絡制定好相應的協議即可。
為實現高速率高安全性的數據采集,系統傳感器網絡可采用分層設計結構:在數據采集部分,在保證采集數據可靠性的前提下為簡化系統難度可以使用分支采集與整體整合的設計思路;在數據安全控制部分,在保證系統安全性的前提下為增強系統的穩定性,避免局部故障對整個系統的影響可以采用分支緊急制動與全局緊急制動相結合的設計思路。
3.1 傳感器網絡協議控制器
依照傳感器網絡協議控制器功能實現可以將系統劃分為協議封裝模塊、數據收發與存儲隊列模塊、數據分析器、分支接收器以及與數據分析器相連接的全局緊急制動模塊等幾部分。系統實現時,各分支傳感器分別對數據進行采集,所采集到的數據被傳輸到分支數據接收器后經協議拆裝等還原為原始數據送入數據分析器進行數據分析與數據優先級排序。若系統運行正常,則數據分析器將預處理后的數據發送給FIFO進行發送數據緩沖與排序,若系統運行出現異常,則與其連接的全局緊急制動模塊啟動,以中斷響應或者其他方式將自身信息指令設置為最高優先級與上位機進行通信,匯報故障。FIFO模塊中的數據依照次序源源不斷的發送給協議封裝模塊,模塊依照所制定的協議對數據添加幀結構標簽、CRC校驗位等封裝為一個完成的數據幀,然后將該數據幀傳輸到上位機中,最終實現數據的采集與傳輸。
3.2 分支數據采集器功能及幀結構
依照數據采集特點,可以使用串行總線結構對分值數據采集器進行連接,正常情況下,采集模塊中的FPGA控制核心依次向各節點發送查詢指令,確認是否存在采集數據需要上傳,特殊情況下可以啟動分支緊急制動模塊對傳感器節點進行保護。
需要說明的是,分支數據采集器應該使用分支協議數據幀單元對所采集到的數據進行封裝與標注,以便于實現更好、更有效的數據管理與數據交換。幀結構大致可以分為控制碼與數據域兩部分,控制碼中應包含連續幀標識、節點制動措施啟動標識、新節點發現標識、節點類型標識等多個內容。
具體的FPGA傳感器數據采集系統分為為三個部分:數據封裝、分支數據采集以及傳感器節點電路等。
在網絡協議控制器設計方面可以直接調用Quartus開發環境下的DHLC軟IP核對現有協議進行修改設計,而FIFO隊列的設計可以調用LPM宏模塊將其設計為雙端口隊列。為保證系統運行效率可以采用多進程設計思路設計數據分析器,不同進程的安全等級不同,優先等級不同。分支數據接收機直接設計為寄存器即可滿足相應的功能需求。但是需要注意的是,由純硬件實現的FPGA控制系統在新節點感知方面存在缺陷,故需要為控制系統分配相應的動態資源進行新節點識別和適配。由于當前主流的傳感器功能集成度高,故對其進行設計時可直接使用FPGA測量傳感器信號線中的數據脈沖即可得到采集數據。
[1]任士彬,孟慶明.中國發展航空發動機FADEC技術的途徑[M].航空發動機,2010.36.3