李錦明,劉夢欣,成乃朋,成雅麗
(中北大學儀器與電子學院,山西 太原 030051)
隨著工業、農業、醫療、倉儲行業的不斷發展,需要監測的數據對象逐漸增多[1]。數據采集是監測控制系統的關鍵部分,也是最為核心的部分,如何有效獲取多路數據并進行可靠地存儲傳輸成為關鍵的問題。
在實際應用中,數據的多路采集一般采用模擬多路復用器配合AD轉換器實現[2-3],數據的可靠傳輸多采用串口、網口等有線傳輸方式實現。然而,對于煤礦、油井、海洋探測等特殊環境,有線傳輸已無法滿足數據通信的需求。
針對數據采集系統存在的有線傳輸局限性問題,本文設計一種基于FPGA的多路無線數據采集系統,由FPGA控制模擬多路復用器與AD轉換器實現多路數據采集并完成數據的編幀處理,將處理后的數據存入Flash中,防止數據丟失,采用ZigBee無線通信技術實現采集數據的無線傳輸[4-5]。
本系統設計的無線傳感網絡節點電路主要由FPGA主控模塊、AD轉換電路、Flash存儲模塊、無線數據傳輸模塊、電源管理模塊等組成。系統總體設計框圖如圖1所示,以FPGA為控制單元,模擬多路復用器配合AD轉換器完成64路模擬信號的采樣量化,FPGA對數據進行FIFO緩存和編幀操作,通過控制Flash模塊完成多路數據的存儲,由無線數據傳輸模塊實現數據的無線傳輸。
本設計以采集64路模擬信號為例,系統的工作過程如下:上位機發送有效指令,命令系統開始工作,該指令由無線數據傳輸模塊接收后發送至FPGA,FPGA通過對模擬開關相應地址的選通信號及AD轉換器片選信號的控制,將調理電路處理后的多路待采樣信號由AD模塊轉換成數字信號并傳輸給FPGA,FPGA對采樣量化后的數據進行編幀處理后存入寫FIFO中,待寫FIFO半滿標志有效,將數據傳輸至Flash存儲模塊。當讀數據信號有效,則在FPGA控制下將數據讀出至讀FIFO中并發送給無線數據傳輸模塊進行傳輸,最后由上位機軟件對數據進行處理和顯示。
數據采集模塊由模擬開關及AD轉換器組成,選用4片16通道模擬多路復用器ADG706,負責實現64路模擬信號地址切換,該芯片導通電阻小、切換速度快、切換時間僅為40 ns,符合AD7904的1 MS/s采樣要求,能夠滿足系統設計需要。AD芯片選用4通道的AD7904,該器件采樣率可達1 MS/s,采樣位數為8 bit,具有體積小、功耗低等優點。
圖2為AD7904控制寄存器位功能圖,通過配置控制寄存器將AD7904設置為二進制編碼格式,4通道循環采集,采集電壓范圍為0~2.5 V。

圖1 系統總體設計框圖

圖2 AD7904控制寄存器位功能圖
如圖3所示,AD7904的4個輸入通道分別與4片ADG706的輸出端相連,通過FPGA控制A3-A0實現模擬開關地址的選通。系統正常工作時,FPGA通過對AD7904的芯片設定及ADG706的地址切換控制,使其完成對應地址下信號調理電路輸出電壓信號的循環采集,經AD轉換后送至FPGA進行編幀處理。
由于FPGA內部FIFO資源有限,對于長時間、大數據量的存儲無法保證數據存儲的可靠性,故而在該系統中先將數據存儲至大容量Flash中,待系統收到有效的讀數據信號,再將數據讀取至FIFO中進行無線傳輸。FPGA與Flash的連接電路如圖4所示。
近年來,無線通信技術發展迅速,常用的短距離無線通信技術包括紅外通信技術(IrDA)、藍牙通信技術(Bluetooth)、WiFi通信技術和ZigBee通信技術[6]。

圖3 ADG706與AD7904電路連接圖

圖4 Flash與FPGA的電路連接圖
通過表1對短距離無線通信技術參數及特點進行比較,可發現WiFi通信技術與ZigBee通信技術都可實現本系統的無線傳輸模塊,但考慮到Wi-Fi通信技術抗干擾能力弱,且WiFi功耗高,故而本設計采用功耗低、時延短、容量大且安全性能高的ZigBee通信技術來實現無線數據傳輸。
無線數據傳輸網絡主要包括終端節點設備、路由器設備及協調器設備,數據由終端節點設備進行發送,路由器設備進行中繼轉發,協調器設備傳輸至上位機,三者協調工作實現無線數據傳遞。采用CC2530作為ZigBee無線通信的構成芯片,該片上系統兼容IEEE 802.15.4,支持ZigBee、ZigBee PRO和ZigBeeRF4CE標準,且功耗低、抗干擾能力強,可通過Z-stack協議棧[7]完成芯片的配置與組網操作[8]。ZigBee協議具有更好的交互操作性、節點密度管理、支持網狀網絡、低功耗且具有較高的安全可靠性,使得節點通信距離更遠,組網性能穩定[9-10]。該ZigBee模塊通過串口完成與FPGA的數據交互,通過配置,將其設置為終端節點數據發送模式[11-12],通過與FPGA的硬件連接組成無線數據傳輸模塊,如圖5所示。
在無線數據發送過程中,為保證ZigBee網絡數據傳輸的準確性,降低系統誤碼率,采用蛇形天線進行信號發射[13]。
系統軟件設計流程如圖6所示,其中系統初始化主要完成AD控制寄存器配置、FPGA初始化等操作。具體工作過程如下:系統開始工作,FPGA完成AD7904內部控制寄存器數據參數配置后進入等待觸發狀態。當系統接收到有效觸發信號,開始啟動數據采集,通過FPGA控制ADG706確定傳送給AD轉換器的通道電壓信號。而后,對采集數據進行編幀處理,并暫存于FPGA寫FIFO中,待寫FIFO半滿信號有效將數據傳輸至Flash。當系統收到有效數據發送請求時,將Flash中數據讀取至讀FIFO中,并由無線傳輸模塊進行傳輸。
為了測試系統的有效性和穩定性,FPGA芯片選用Xilinx公司生產的Spantan-6系列XC6SLX25-2FTG256C芯片,該器件內部集成24 051個邏輯單元,擁有936 kb的塊RAM與186個用戶定義I/O口。由信號發生器產生三路不同的信號,分別為正弦信號、方波信號和余弦信號,波形周期均為10 ms,幅值為5 V,其他通道均為0 V電壓信號,用于檢測系統傳輸的穩定性和可靠性。

表1 常用短距離無線通信技術參數及特點

圖5 無線數據發送模塊

圖6 系統軟件設計流程圖
圖7為上位機軟件對接收數據進行處理得到的相應波形顯示。觀察可得,測試信號經采集、存儲及無線傳輸后還原的信號波形穩定,無毛刺,波形周期為9.8 ms,幅值為5 V,與信號發生器產生的待采集信號一致,且接收到的0 V電壓信號波形無紋波與毛刺,表明該系統傳輸穩定、性能可靠,可實現預定的采集、存儲及無線傳輸功能。

圖7 上位機波形顯示
在具體的工程實踐應用中為增大系統的抗干擾能力,可在數據進行無線傳輸前進行信道編碼處理,進一步保證系統的可靠性和穩定性。
本文通過FPGA與ZigBee的結合使用,實現多因素復雜區域的數據采集及無線傳輸。無線數據采集系統通過對三種不同波形信號的采集,驗證了系統功能的有效性和穩定性。系統體積小、功能模塊化,可根據測量環境選擇不同的模擬多路復用器并更改相關的控制程序,完成特定路數的數據采集,對于較遠距離的無線采集,可增加中繼器的個數來實現。