摘要:針對測控系統(tǒng)中設(shè)備分散,檢測環(huán)境惡劣的情況,設(shè)計了一種基于SOPC的以太網(wǎng)遠程數(shù)據(jù)采集系統(tǒng)。系統(tǒng)采樣基于NiosⅡ軟核的SOPC架構(gòu),以μC/OS-Ⅱ嵌入式實時操作系統(tǒng)為軟件運行平臺,以LWIP為以太網(wǎng)通信協(xié)議,實現(xiàn)了遠程數(shù)據(jù)采集和以太網(wǎng)傳輸及控制。整個系統(tǒng)在CycloneⅡEP2C35開發(fā)板上實現(xiàn)并通過驗證,實驗結(jié)果滿足設(shè)計要求并具有較好的應(yīng)用前景。
在工業(yè)測控系統(tǒng)中,往往存在現(xiàn)場檢測環(huán)境惡劣,設(shè)備分散,需要檢測系統(tǒng)具有遠程分布式數(shù)據(jù)采集功能,以實現(xiàn)設(shè)備的遠程檢測與監(jiān)控。嵌入式以太網(wǎng)技術(shù)將以太網(wǎng)技術(shù)和嵌入式技術(shù)有機結(jié)合在一起,很好的滿足這種需求。Ethernet與傳統(tǒng)通訊接口相比,具有性價比高、傳輸距離遠、分布運行等特點;SOPC是基于FPGA解決方案的SOC,是MCU、DSP、FPGA的有機結(jié)合,具有體積小、功耗低、可靈活配置等優(yōu)點。利用SOPC以太網(wǎng)技術(shù)將SOPC嵌入式測量模塊接入網(wǎng)絡(luò)進行控制,使其實現(xiàn)PC機所具有的遠近程測量控制和信息發(fā)布各項功能,讓工作人員遠離現(xiàn)場,仍可以對測量設(shè)備進行控制并獲得測量數(shù)據(jù)。
1 系統(tǒng)總體設(shè)計
本系統(tǒng)采用FPGA+NiosⅡ的架構(gòu)進行設(shè)計。系統(tǒng)主要有數(shù)據(jù)采集模塊、FPGA模塊、存儲器模塊、網(wǎng)絡(luò)接口模塊組成,系統(tǒng)總體結(jié)構(gòu)如圖1所示。首先將待測量經(jīng)傳感器轉(zhuǎn)化為電信號,然后經(jīng)前端信號調(diào)理,A/D轉(zhuǎn)換寫入FPGA片上FIFO,然后FPGA讀出數(shù)據(jù)經(jīng)信號恢復(fù)、FIR數(shù)字濾波后存入RAM中,最后通過Ethernet傳輸?shù)缴衔粰C進行顯示、診斷等處理。本方案可作為單獨采集系統(tǒng)和一臺計算機組成檢測系統(tǒng);也可加入路由器,一個采集模塊與多臺計算機相連實現(xiàn)數(shù)據(jù)共享,或者一臺計算機與多個采集模塊相連,實現(xiàn)分布式檢測。
2 系統(tǒng)硬件設(shè)計
本設(shè)計采用的FPGA器件是Altera公司的Cyclone II系列EP2C35F672芯片。EP2C35內(nèi)置35個18×18的硬件乘法器,有105個M4K RAM塊,共483 840位。在FPGA基礎(chǔ)上構(gòu)建基于Nios II的SOPC系統(tǒng),使用軟硬件協(xié)同的方法對A/D轉(zhuǎn)換器和網(wǎng)絡(luò)傳輸芯片進行控制。存儲器模塊包括SRAM、SDRAM、Flash 3種類型的存儲器。一片IDT71V416S256Kx16bits的SRAM,用作FPGA的緩存使用,存放運行的程序;一片A3V64S40ETP4 Mx16 bits的SDRAM,用來存儲程序運行的中間數(shù)據(jù);一片AMD29LV128M123R 16 MB的FLASH存儲器,用來保存固化的程序和數(shù)據(jù)。為解決速率匹配、數(shù)據(jù)緩沖等問題,利用FPGA片上RAM資源設(shè)計8 k×16 bitsFIFO,將AD采樣的數(shù)據(jù)進行緩存。
2.1 數(shù)據(jù)采集模塊
數(shù)據(jù)采集模塊包括前端信號調(diào)理電路和A/D轉(zhuǎn)換電路。前端調(diào)理主要包括傳感器、調(diào)理電路。信號調(diào)理主要實現(xiàn)對模擬信號的緩沖、放大,以獲得ADC所滿足的輸入信號。
本設(shè)計采用的A/D轉(zhuǎn)化器為美國TI公司的ADS8364,ADS8364是高速、低功耗,六通道同步采樣16位并行輸出模數(shù)轉(zhuǎn)換器。采用+5 V工作電壓,當(dāng)工作頻率為5 MHz時,其同步采樣為250 kHz,轉(zhuǎn)換時間4μs。六路模擬輸入分為3組(A、B和C),每個輸入端都有一個保持信號來實現(xiàn)所有通道的同時采樣與轉(zhuǎn)換功能,適合于多路采集系統(tǒng)的需要。3個保持信號(/HOLDA,/HOLDB,/HOLDC)可以啟動指定通道的轉(zhuǎn)換,當(dāng)3條HOLD線均為低電平時,6個模擬輸入同時被采樣。A0、A1、A2均接高,A/D轉(zhuǎn)換結(jié)果輸出FIFO模式。A/D轉(zhuǎn)換結(jié)束后產(chǎn)生轉(zhuǎn)換結(jié)束信號EOC,產(chǎn)生中斷。在轉(zhuǎn)換結(jié)束后,將數(shù)據(jù)讀入FPGA的FIFO中。AD8364與FPGA的連接如圖2所示。
2.2 網(wǎng)絡(luò)接口模塊
本設(shè)計的網(wǎng)絡(luò)芯片采用DAVICOM公司的DM9000A,該芯片具有通用處理器接口、一個10/100M PHY和4 kbytes的SRAM,是一款低功耗高性能的網(wǎng)絡(luò)控制器。DM9000A支持8位和16位兩種數(shù)據(jù)接口,本設(shè)計采用16位模式。其接口電路原理圖如圖3所示。
2.3 SOPC設(shè)計
FPGA硬件設(shè)計基于Altera公司的SOPC開發(fā)環(huán)境SOPC Builder.Altera公司為SOPC工具提供了眾多的IP核支持,可以直接調(diào)用。本設(shè)計中AD控制器需要自定制,用Verilog HDL編寫控制時序與接口邏輯,采用摩爾狀態(tài)機來產(chǎn)生ADS8364的轉(zhuǎn)換控制信號以及FIFO讀入時鐘。其控制模塊仿真波形如圖4所示。DM900A控制器使用友晶公司的DE2開發(fā)系統(tǒng)中為我們提供了DM900A控制器核。
將NIOSII處理器、UART JTAG、SRAM控制、SDRAM控制器、CFI控制器、EPCS控制器、PLL及ADS8364控制器、DM900A控制器核添加到SOPC Builder中生成SOPC系統(tǒng),如圖5所示。點擊Generate生成NiosII系統(tǒng)。然后在QuartusⅡ添加PLL模塊,添加輸入輸出引腳,完成頂層模塊硬件接口的連接。最后分配引腳,編譯下載到FPGA中,就完成了FPGA硬件設(shè)計。
3 系統(tǒng)軟件設(shè)計
軟件設(shè)計主要是在NiosII IDE環(huán)境中,采用μC/OS-II嵌入式實時操作系統(tǒng),使用LWIP作為網(wǎng)絡(luò)協(xié)議棧。LWIP即Light WeightIP(輕量級IP),是瑞十計算機科學(xué)院的AdamDunkels等人開發(fā)的一套用于嵌入式系統(tǒng)的開放源碼的輕型TCP/IP協(xié)議棧。LWIP的主要目的是減少存儲器占用和代碼尺寸,使其適合應(yīng)用于小型、資源有限的嵌入式系統(tǒng)中。本設(shè)計使用標準的socket接口來實現(xiàn)TCP/IP操作。
軟件主要由3個任務(wù)組成:數(shù)據(jù)采集任務(wù)、FIR濾波任務(wù)、網(wǎng)絡(luò)傳輸任務(wù)。在程序中調(diào)用lwip_stack_init()函數(shù)和lwip_divice_init()函數(shù)分別完成協(xié)議棧和驅(qū)動程序的初始化,調(diào)用init_done_func()、get_mac_addr()和get_ip_addr()函數(shù)設(shè)置MAC和IP地址;然后由標準Sock et接口完成網(wǎng)絡(luò)操作。NIOSII開發(fā)包中有很多LWIP的編程實例,修改部分代碼即可使用。由μC/OS-Ⅱ的OSTaskCteate()函數(shù)創(chuàng)建數(shù)據(jù)采集任務(wù)DataAcquisition Task()和濾波任務(wù)FilterTask()。
數(shù)據(jù)采集任務(wù)負責(zé)從A/D輸出數(shù)據(jù)通過PIO口采集到片上FIFO中,通過調(diào)用IORD_ALTERA_AVALON_PIO_DATA()函數(shù)在每個采樣周期連續(xù)采樣10次,將采集的數(shù)據(jù)放入FIFO中,喚醒濾波任務(wù)。濾波任務(wù)采樣FIR濾波,利用Altera提供的DSP Builder在FPGA中建立一個FIR濾波器,對一個采樣周期的數(shù)據(jù)進行濾波,然后將濾波后的數(shù)據(jù)放入發(fā)送隊列。通過仿真FIR濾波器對高頻信號有很好的濾除效果。網(wǎng)絡(luò)傳輸任務(wù)從發(fā)送隊列取數(shù)據(jù)發(fā)送到上位機。取數(shù)據(jù)發(fā)送到上位機。軟件流程如圖6所示。
4 結(jié)束語
隨著計算機技術(shù)和互聯(lián)網(wǎng)技術(shù)的深入發(fā)展,數(shù)據(jù)采集處理技術(shù)廣泛應(yīng)用于工業(yè)、通信、測試測量等領(lǐng)域,越來越多的設(shè)備需要網(wǎng)絡(luò)接入功能,以實現(xiàn)設(shè)備的遠程監(jiān)控。本設(shè)計將嵌入式SOPC技術(shù)和成熟的以太網(wǎng)技術(shù)結(jié)合在一起組成遠程數(shù)據(jù)采集系統(tǒng),介紹了從底層硬件,到NiosⅡ應(yīng)用軟件的整個架構(gòu)的設(shè)計。最后在開發(fā)板上實現(xiàn)并通過實驗驗證,結(jié)果滿足設(shè)計要求,具有良好的性能。此數(shù)據(jù)采集系統(tǒng)可以根據(jù)
需要靈活配置,可以適應(yīng)不同的應(yīng)用場合。
作者:馬駿 尉廣軍 來源:電子設(shè)計工程