李錦明,劉夢欣,成乃朋,成雅麗
(中北大學(xué)儀器與電子學(xué)院,山西 太原 030051)
隨著工業(yè)、農(nóng)業(yè)、醫(yī)療、倉儲行業(yè)的不斷發(fā)展,需要監(jiān)測的數(shù)據(jù)對象逐漸增多[1]。數(shù)據(jù)采集是監(jiān)測控制系統(tǒng)的關(guān)鍵部分,也是最為核心的部分,如何有效獲取多路數(shù)據(jù)并進(jìn)行可靠地存儲傳輸成為關(guān)鍵的問題。
在實(shí)際應(yīng)用中,數(shù)據(jù)的多路采集一般采用模擬多路復(fù)用器配合AD轉(zhuǎn)換器實(shí)現(xiàn)[2-3],數(shù)據(jù)的可靠傳輸多采用串口、網(wǎng)口等有線傳輸方式實(shí)現(xiàn)。然而,對于煤礦、油井、海洋探測等特殊環(huán)境,有線傳輸已無法滿足數(shù)據(jù)通信的需求。
針對數(shù)據(jù)采集系統(tǒng)存在的有線傳輸局限性問題,本文設(shè)計(jì)一種基于FPGA的多路無線數(shù)據(jù)采集系統(tǒng),由FPGA控制模擬多路復(fù)用器與AD轉(zhuǎn)換器實(shí)現(xiàn)多路數(shù)據(jù)采集并完成數(shù)據(jù)的編幀處理,將處理后的數(shù)據(jù)存入Flash中,防止數(shù)據(jù)丟失,采用ZigBee無線通信技術(shù)實(shí)現(xiàn)采集數(shù)據(jù)的無線傳輸[4-5]。
本系統(tǒng)設(shè)計(jì)的無線傳感網(wǎng)絡(luò)節(jié)點(diǎn)電路主要由FPGA主控模塊、AD轉(zhuǎn)換電路、Flash存儲模塊、無線數(shù)據(jù)傳輸模塊、電源管理模塊等組成。系統(tǒng)總體設(shè)計(jì)框圖如圖1所示,以FPGA為控制單元,模擬多路復(fù)用器配合AD轉(zhuǎn)換器完成64路模擬信號的采樣量化,F(xiàn)PGA對數(shù)據(jù)進(jìn)行FIFO緩存和編幀操作,通過控制Flash模塊完成多路數(shù)據(jù)的存儲,由無線數(shù)據(jù)傳輸模塊實(shí)現(xiàn)數(shù)據(jù)的無線傳輸。
本設(shè)計(jì)以采集64路模擬信號為例,系統(tǒng)的工作過程如下:上位機(jī)發(fā)送有效指令,命令系統(tǒng)開始工作,該指令由無線數(shù)據(jù)傳輸模塊接收后發(fā)送至FPGA,F(xiàn)PGA通過對模擬開關(guān)相應(yīng)地址的選通信號及AD轉(zhuǎn)換器片選信號的控制,將調(diào)理電路處理后的多路待采樣信號由AD模塊轉(zhuǎn)換成數(shù)字信號并傳輸給FPGA,F(xiàn)PGA對采樣量化后的數(shù)據(jù)進(jìn)行編幀處理后存入寫FIFO中,待寫FIFO半滿標(biāo)志有效,將數(shù)據(jù)傳輸至Flash存儲模塊。當(dāng)讀數(shù)據(jù)信號有效,則在FPGA控制下將數(shù)據(jù)讀出至讀FIFO中并發(fā)送給無線數(shù)據(jù)傳輸模塊進(jìn)行傳輸,最后由上位機(jī)軟件對數(shù)據(jù)進(jìn)行處理和顯示。
數(shù)據(jù)采集模塊由模擬開關(guān)及AD轉(zhuǎn)換器組成,選用4片16通道模擬多路復(fù)用器ADG706,負(fù)責(zé)實(shí)現(xiàn)64路模擬信號地址切換,該芯片導(dǎo)通電阻小、切換速度快、切換時間僅為40 ns,符合AD7904的1 MS/s采樣要求,能夠滿足系統(tǒng)設(shè)計(jì)需要。AD芯片選用4通道的AD7904,該器件采樣率可達(dá)1 MS/s,采樣位數(shù)為8 bit,具有體積小、功耗低等優(yōu)點(diǎn)。
圖2為AD7904控制寄存器位功能圖,通過配置控制寄存器將AD7904設(shè)置為二進(jìn)制編碼格式,4通道循環(huán)采集,采集電壓范圍為0~2.5 V。
圖1 系統(tǒng)總體設(shè)計(jì)框圖
圖2 AD7904控制寄存器位功能圖
如圖3所示,AD7904的4個輸入通道分別與4片ADG706的輸出端相連,通過FPGA控制A3-A0實(shí)現(xiàn)模擬開關(guān)地址的選通。系統(tǒng)正常工作時,F(xiàn)PGA通過對AD7904的芯片設(shè)定及ADG706的地址切換控制,使其完成對應(yīng)地址下信號調(diào)理電路輸出電壓信號的循環(huán)采集,經(jīng)AD轉(zhuǎn)換后送至FPGA進(jìn)行編幀處理。
由于FPGA內(nèi)部FIFO資源有限,對于長時間、大數(shù)據(jù)量的存儲無法保證數(shù)據(jù)存儲的可靠性,故而在該系統(tǒng)中先將數(shù)據(jù)存儲至大容量Flash中,待系統(tǒng)收到有效的讀數(shù)據(jù)信號,再將數(shù)據(jù)讀取至FIFO中進(jìn)行無線傳輸。FPGA與Flash的連接電路如圖4所示。
近年來,無線通信技術(shù)發(fā)展迅速,常用的短距離無線通信技術(shù)包括紅外通信技術(shù)(IrDA)、藍(lán)牙通信技術(shù)(Bluetooth)、WiFi通信技術(shù)和ZigBee通信技術(shù)[6]。
圖3 ADG706與AD7904電路連接圖
圖4 Flash與FPGA的電路連接圖
通過表1對短距離無線通信技術(shù)參數(shù)及特點(diǎn)進(jìn)行比較,可發(fā)現(xiàn)WiFi通信技術(shù)與ZigBee通信技術(shù)都可實(shí)現(xiàn)本系統(tǒng)的無線傳輸模塊,但考慮到Wi-Fi通信技術(shù)抗干擾能力弱,且WiFi功耗高,故而本設(shè)計(jì)采用功耗低、時延短、容量大且安全性能高的ZigBee通信技術(shù)來實(shí)現(xiàn)無線數(shù)據(jù)傳輸。
無線數(shù)據(jù)傳輸網(wǎng)絡(luò)主要包括終端節(jié)點(diǎn)設(shè)備、路由器設(shè)備及協(xié)調(diào)器設(shè)備,數(shù)據(jù)由終端節(jié)點(diǎn)設(shè)備進(jìn)行發(fā)送,路由器設(shè)備進(jìn)行中繼轉(zhuǎn)發(fā),協(xié)調(diào)器設(shè)備傳輸至上位機(jī),三者協(xié)調(diào)工作實(shí)現(xiàn)無線數(shù)據(jù)傳遞。采用CC2530作為ZigBee無線通信的構(gòu)成芯片,該片上系統(tǒng)兼容IEEE 802.15.4,支持ZigBee、ZigBee PRO和ZigBeeRF4CE標(biāo)準(zhǔn),且功耗低、抗干擾能力強(qiáng),可通過Z-stack協(xié)議棧[7]完成芯片的配置與組網(wǎng)操作[8]。ZigBee協(xié)議具有更好的交互操作性、節(jié)點(diǎn)密度管理、支持網(wǎng)狀網(wǎng)絡(luò)、低功耗且具有較高的安全可靠性,使得節(jié)點(diǎn)通信距離更遠(yuǎn),組網(wǎng)性能穩(wěn)定[9-10]。該ZigBee模塊通過串口完成與FPGA的數(shù)據(jù)交互,通過配置,將其設(shè)置為終端節(jié)點(diǎn)數(shù)據(jù)發(fā)送模式[11-12],通過與FPGA的硬件連接組成無線數(shù)據(jù)傳輸模塊,如圖5所示。
在無線數(shù)據(jù)發(fā)送過程中,為保證ZigBee網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)臏?zhǔn)確性,降低系統(tǒng)誤碼率,采用蛇形天線進(jìn)行信號發(fā)射[13]。
系統(tǒng)軟件設(shè)計(jì)流程如圖6所示,其中系統(tǒng)初始化主要完成AD控制寄存器配置、FPGA初始化等操作。具體工作過程如下:系統(tǒng)開始工作,F(xiàn)PGA完成AD7904內(nèi)部控制寄存器數(shù)據(jù)參數(shù)配置后進(jìn)入等待觸發(fā)狀態(tài)。當(dāng)系統(tǒng)接收到有效觸發(fā)信號,開始啟動數(shù)據(jù)采集,通過FPGA控制ADG706確定傳送給AD轉(zhuǎn)換器的通道電壓信號。而后,對采集數(shù)據(jù)進(jìn)行編幀處理,并暫存于FPGA寫FIFO中,待寫FIFO半滿信號有效將數(shù)據(jù)傳輸至Flash。當(dāng)系統(tǒng)收到有效數(shù)據(jù)發(fā)送請求時,將Flash中數(shù)據(jù)讀取至讀FIFO中,并由無線傳輸模塊進(jìn)行傳輸。
為了測試系統(tǒng)的有效性和穩(wěn)定性,F(xiàn)PGA芯片選用Xilinx公司生產(chǎn)的Spantan-6系列XC6SLX25-2FTG256C芯片,該器件內(nèi)部集成24 051個邏輯單元,擁有936 kb的塊RAM與186個用戶定義I/O口。由信號發(fā)生器產(chǎn)生三路不同的信號,分別為正弦信號、方波信號和余弦信號,波形周期均為10 ms,幅值為5 V,其他通道均為0 V電壓信號,用于檢測系統(tǒng)傳輸?shù)姆€(wěn)定性和可靠性。
表1 常用短距離無線通信技術(shù)參數(shù)及特點(diǎn)
圖5 無線數(shù)據(jù)發(fā)送模塊
圖6 系統(tǒng)軟件設(shè)計(jì)流程圖
圖7為上位機(jī)軟件對接收數(shù)據(jù)進(jìn)行處理得到的相應(yīng)波形顯示。觀察可得,測試信號經(jīng)采集、存儲及無線傳輸后還原的信號波形穩(wěn)定,無毛刺,波形周期為9.8 ms,幅值為5 V,與信號發(fā)生器產(chǎn)生的待采集信號一致,且接收到的0 V電壓信號波形無紋波與毛刺,表明該系統(tǒng)傳輸穩(wěn)定、性能可靠,可實(shí)現(xiàn)預(yù)定的采集、存儲及無線傳輸功能。
圖7 上位機(jī)波形顯示
在具體的工程實(shí)踐應(yīng)用中為增大系統(tǒng)的抗干擾能力,可在數(shù)據(jù)進(jìn)行無線傳輸前進(jìn)行信道編碼處理,進(jìn)一步保證系統(tǒng)的可靠性和穩(wěn)定性。
本文通過FPGA與ZigBee的結(jié)合使用,實(shí)現(xiàn)多因素復(fù)雜區(qū)域的數(shù)據(jù)采集及無線傳輸。無線數(shù)據(jù)采集系統(tǒng)通過對三種不同波形信號的采集,驗(yàn)證了系統(tǒng)功能的有效性和穩(wěn)定性。系統(tǒng)體積小、功能模塊化,可根據(jù)測量環(huán)境選擇不同的模擬多路復(fù)用器并更改相關(guān)的控制程序,完成特定路數(shù)的數(shù)據(jù)采集,對于較遠(yuǎn)距離的無線采集,可增加中繼器的個數(shù)來實(shí)現(xiàn)。