馬 駿,尉廣軍
(軍械工程學院 導彈工程系,河北 石家莊 050003)
在工業測控系統中,往往存在現場檢測環境惡劣,設備分散,需要檢測系統具有遠程分布式數據采集功能,以實現設備的遠程檢測與監控。嵌入式以太網技術將以太網技術和嵌入式技術有機結合在一起,很好的滿足這種需求。Ethernet與傳統通訊接口相比,具有性價比高、傳輸距離遠、分布運行等特點[1];SOPC是基于 FPGA解決方案的SOC,是 MCU、DSP、FPGA的有機結合,具有體積小、功耗低、可靈活配置等優點[2-3]。利用SOPC以太網技術將SOPC嵌入式測量模塊接入網絡進行控制,使其實現PC機所具有的遠近程測量控制和信息發布各項功能,讓工作人員遠離現場,仍可以對測量設備進行控制并獲得測量數據。
本系統采用FPGA+Nios II的架構進行設計[4-5]。系統主要有數據采集模塊、FPGA模塊、存儲器模塊、網絡接口模塊組成,系統總體結構如圖1所示。首先將待測量經傳感器轉化為電信號,然后經前端信號調理,A/D轉換寫入FPGA片上FIFO,然后FPGA讀出數據經信號恢復、FIR數字濾波后存入RAM中,最后通過Ethernet傳輸到上位機進行顯示、診斷等處理。本方案可作為單獨采集系統和一臺計算機組成檢測系統;也可加入路由器,一個采集模塊與多臺計算機相連實現數據共享,或者一臺計算機與多個采集模塊相連,實現分布式檢測。
本設計采用的FPGA器件是Altera公司的Cyclone II系列EP2C35F672芯片。EP2C35內置35個18×18的硬件乘法器,有105個M4K RAM塊,共 483 840位[3]。在FPGA基礎上構建基于Nios II的SOPC系統,使用軟硬件協同的方法對A/D轉換器和網絡傳輸芯片進行控制。存儲器模塊包括SRAM、SDRAM、Flash 3種類型的存儲器。一片IDT71V416S256 K×16 bits的SRAM,用作FPGA的緩存使用,存放運行的程序;一片A3V64S40ETP 4 M×16 bits的SDRAM,用來存儲程序運行的中間數據;一片AMD29LV128M123R 16 MB的FLASH存儲器,用來保存固化的程序和數據。為解決速率匹配、數據緩沖等問題,利用FPGA片上RAM資源設計8 k×16 bits FIFO,將AD采樣的數據進行緩存。
數據采集模塊包括前端信號調理電路和A/D轉換電路。前端調理主要包括傳感器、調理電路。信號調理主要實現對模擬信號的緩沖、放大,以獲得ADC所滿足的輸入信號。
本設計采用的A/D轉化器為美國TI公司的ADS8364,ADS8364是高速、低功耗,六通道同步采樣16位并行輸出模數轉換器。采用+5 V工作電壓,當工作頻率為5 MHz時,其同步采樣為250 kHz,轉換時間4 μs。六路模擬輸入分為3組(A、B和C),每個輸入端都有一個保持信號來實現所有通道的同時采樣與轉換功能,適合于多路采集系統的需要。3個保持信號 (/HOLDA,/HOLDB,/HOLDC)可以啟動指定通道的轉換,當3條HOLD線均為低電平時,6個模擬輸入同時被采樣。A0、A1、A2均接高,A/D轉換結果輸出FIFO模式。A/D轉換結束后產生轉換結束信號EOC,產生中斷[6]。在轉換結束后,將數據讀入FPGA的FIFO中。AD8364與FPGA的連接如圖2所示.

圖1 系統總體結構框圖Fig.1 Overall design scheme of system
本設計的網絡芯片采用DAVICOM公司的DM9000A,該芯片具有通用處理器接口、一個10/100M PHY和4 kbytes的SRAM,是一款低功耗高性能的網絡控制器[3]。DM9000A支持8位和16位兩種數據接口,本設計采用16位模式。其接口電路原理圖如圖3所示。

圖2 AD8364電路原理圖Fig.2 Schematic circuit diagram of ADS8364

圖3 DM9000A接口電路原理圖Fig.3 Schematic circuit diagram of DM9000A interface
FPGA硬件設計基于Altera公司的SOPC開發環境SOPC Builder.Altera公司為SOPC工具提供了眾多的IP核支持,可以直接調用[2]。本設計中AD控制器需要自定制,用Verilog HDL編寫控制時序與接口邏輯,采用摩爾狀態機來產生ADS8364的轉換控制信號以及FIFO讀入時鐘。其控制模塊仿真波形如圖4所示。DM900A控制器使用友晶公司的DE2開發系統中為我們提供了DM900A控制器核[3]。
將 NIOS II處理器、UART JTAG、SRAM 控制、SDRAM 控制器、CFI控制器、EPCS控制器、PLL及 ADS8364控制器、DM900A控制器核添加到SOPC Builder中生成SOPC系統[1-8],如圖5所示。點擊Generate生成Nios II系統。然后在Quartus II添加PLL模塊,添加輸入輸出引腳,完成頂層模塊硬件接口的連接。最后分配引腳,編譯下載到FPGA中,就完成了FPGA硬件設計。

圖4 A/D控制模塊仿真波形圖Fig.4 Simulation waveform of A/D controlling module

圖5 SOPC系統配置Fig.5 System configuration of SOPC
軟件設計主要是在Nios II IDE環境中,采用μC/OS-II嵌入式實時操作系統,使用LWIP作為網絡協議棧。LWIP即Light Weight IP(輕量級IP),是瑞十計算機科學院的Adam Dunkels等人開發的一套用于嵌入式系統的開放源碼的輕型TCP/IP協議棧。LWIP的主要目的是減少存儲器占用和代碼尺寸,使其適合應用于小型、資源有限的嵌入式系統中[2-5]。本設計使用標準的socket接口來實現TCP/IP操作[7]。
軟件主要由3個任務組成:數據采集任務、FIR濾波任務、網絡傳輸任務。在程序中調用lwip_stack_init()函數和lwip_divice_init()函數分別完成協議棧和驅動程序的初始化,調用 init_done_func()、get_mac_addr()和 get_ip_addr()函數設置MAC和IP地址;然后由標準Socket接口完成網絡操作。NIOS II開發包中有很多LWIP的編程實例,修改部分代碼即可使用[8-9]。由 μC/OS-Ⅱ的 OSTaskCteate()函數創建數據采集任務 DataAcquisitionTask()和濾波任務 FilterTask()。
數據采集任務負責從A/D輸出數據通過PIO口采集到片上FIFO中,通過調用IORD_ALTERA_AVALON_PIO_DATA()函數在每個采樣周期連續采樣10次,將采集的數據放入FIFO中,喚醒濾波任務。濾波任務采樣FIR濾波,利用Altera提供的DSP Builder在FPGA中建立一個FIR濾波器,對一個采樣周期的數據進行濾波,然后將濾波后的數據放入發送隊列[10]。通過仿真FIR濾波器對高頻信號有很好的濾除效果。網絡傳輸任務從發送隊列取數據發送到上位機。取數據發送到上位機。軟件流程如圖6所示。
隨著計算機技術和互聯網技術的深入發展,數據采集處理技術廣泛應用于工業、通信、測試測量等領域,越來越多的設備需要網絡接入功能,以實現設備的遠程監控。本設計將嵌入式SOPC技術和成熟的以太網技術結合在一起組成遠程數據采集系統,介紹了從底層硬件,到NiosⅡ應用軟件的整個架構的設計。最后在開發板上實現并通過實驗驗證,結果滿足設計要求,具有良好的性能。此數據采集系統可以根據需要靈活配置,可以適應不同的應用場合。

圖6 軟件流程Fig.6 Flow of software
[1]劉巖.以太網分布式數據采集系統的實現 [D].石家莊:河北科技大學,2009.
[2]李蘭英.Nios II嵌入式軟核SOPC設計原理及應用 [M].北京:北京航空航天大學出版社,2009.
[3]張志剛.FPGA與SOPC設計教程—DE2實踐[M].西安:西安電子科技大學出版社,2007.
[4]潘宗樹.基于Nios II的SOPC系統設計與研究 [D].武漢:武漢科技大學,2007.
[5]梅大成,柴志勇.基于SOPC的以太網實時數據采集系統設計與實現[J].計算機應用,2009(29):108-109.
MEI Da-cheng,CHAI Zhi-yong.Design and implementation of ethernet real-time data acquisition system based on SOPC[J].Journal of Computer Applications,2009(29):108-109.
[6]ADS8364 datasheet[EB/OL].[2006-08].http//www.ti.com.
[7]李明.基于SOPC的網絡視頻監控系統的設計與實現[D].大連:大連理工大學,2006.
[8]趙宇亮.基于SOPC技術的USB及以太網接口設計[D].哈爾濱:哈爾濱工程大學,2010.
[9]陳長勝,李大鵬,王建宇.基于Altera SOPC技術的嵌入式以太網終端設計[J].航空計算技術,2008,38(5):81-84.
CHEN Chang-sheng,LI Da-peng,WANG Jian-yu.Design of embedded ethernet node based on Altera SOPC technology[J].Aeronautical Computing Technique,2008,38(5):81-84.
[10]彭澄宇.FIR濾波器的SOPC實現[D].重慶:重慶大學,2006.