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