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