《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 業(yè)界動態(tài) > 基于以太網(wǎng)的信號發(fā)生與采集控制系統(tǒng)的研究

基于以太網(wǎng)的信號發(fā)生與采集控制系統(tǒng)的研究

2008-03-27
作者:邱維寶, 傅 星, 鄔 泳

  摘 要: 介紹了帶以太網(wǎng)接口功能的信號發(fā)生與采集控制系統(tǒng)" title="控制系統(tǒng)">控制系統(tǒng)的設計方法。其中,使用ARM移植LwIP協(xié)議棧" title="協(xié)議棧">協(xié)議棧實現(xiàn)TCP/IP" title="TCP/IP">TCP/IP協(xié)議完成以太網(wǎng)通訊。信號發(fā)生部分使用FPGA依據(jù)DDS原理產(chǎn)生可調(diào)的信號波形,同時,系統(tǒng)采用ARM內(nèi)置的A/D轉(zhuǎn)換器采集外部信號用于反饋控制。
  關鍵詞: 以太網(wǎng) TCP/IP協(xié)議 ARM FPGA DDS


  現(xiàn)階段,隨著電子技術的飛速發(fā)展,直接數(shù)字頻率合成(DDS)技術以其頻率轉(zhuǎn)換速度快、分辨率高、相位可控等優(yōu)點被廣泛用于任意波形發(fā)生系統(tǒng)當中,例如通訊系統(tǒng)、雷達及電子對抗系統(tǒng)等。而作為當今最受歡迎的局域網(wǎng)之一的以太網(wǎng),現(xiàn)已成為社會重要的基礎信息設施,是遠程網(wǎng)絡化控制的理想媒介。將兩者結合起來正是本系統(tǒng)設計的主要內(nèi)容。下面詳細介紹基于以太網(wǎng)的信號發(fā)生與采集控制系統(tǒng)的方案。
1 系統(tǒng)平臺
  系統(tǒng)在實現(xiàn)信號發(fā)生器的功能的同時要與上位機" title="上位機">上位機通過以太網(wǎng)交換數(shù)據(jù),因而系統(tǒng)的難點一是以太網(wǎng)的通訊,二是可任意調(diào)整的信號發(fā)生,即要能實現(xiàn)波形頻率的任意改變。
  目前以太網(wǎng)通訊的方案比較多,可以選用專用的以太網(wǎng)接口模塊,也可以移植協(xié)議?;蛘咦约壕帉憛f(xié)議棧,還可以嵌入帶有以太網(wǎng)接口的操作系統(tǒng)來完成通訊,例如μClinux、DSP/BIOS操作系統(tǒng)等。由于項目本身對成本的要求,故采用在軟件上實現(xiàn)TCP/IP的方案。由于TCP/IP協(xié)議比較復雜,在缺乏功能強大的操作系統(tǒng)支持的嵌入式設備上實現(xiàn)并非易事,對于特定的應用,嵌入式設備往往只需要TCP/IP協(xié)議中某一小部分即可,故考慮移植現(xiàn)有的開放源代碼的輕量級TCP/IP協(xié)議棧。目前這類協(xié)議棧有很多種,例如TinyTCP、uip、 LwIP等,其中,前兩個協(xié)議棧的設計目標是降低TCP/IP代碼的尺寸和內(nèi)存的消耗,同時也簡化了TCP/IP協(xié)議棧,比較適合對通訊協(xié)議要求不高且控制系統(tǒng)核心為單片機的場合。LwIP協(xié)議棧資源需求比較多,但功能相對齊全,并提供一套非常完善的內(nèi)存管理方法,很適合32位控制系統(tǒng)。目前隨著具有32位CPU的ARM的廣泛使用,其價格也低廉很多,且集成了豐富的外圍模塊,故本系統(tǒng)選擇ARM移植LwIP實現(xiàn)以太網(wǎng)通訊。
  可調(diào)信號的產(chǎn)生也有多種方案,比較常見的是使用DDS的方法實現(xiàn)。DDS技術已被廣泛地用于任意信號發(fā)生系統(tǒng)當中。目前市面上有很多DDS專用芯片,但價格都比較昂貴且可擴展性不高,故系統(tǒng)選用性價比很高的FPGA來實現(xiàn),這樣可以靈活地產(chǎn)生系統(tǒng)所需的控制信號,并提供了很大的擴展空間。系統(tǒng)在FPGA內(nèi)部專門開啟了一個RAM用于存儲系統(tǒng)所需信號的周期性數(shù)據(jù),用戶可根據(jù)要求存入數(shù)據(jù)并可實時地更改包括信號頻率、幅值和相位等的參數(shù)。
  因此,系統(tǒng)平臺選用基于ARM和FPGA兩個處理器來設計。其中,ARM作為整個系統(tǒng)的主控單元完成與以太網(wǎng)的通訊、控制系統(tǒng)的信號發(fā)生、輸入信號的采集、液晶顯示和鍵盤掃描以及數(shù)據(jù)存儲等功能。FPGA主要完成對ARM輸入的控制信號進行DDS轉(zhuǎn)換,完成DDS的核心部分并輸出可控的信號波形。
2 硬件電路設計
  ARM采用三星公司的S3C44B0X,該芯片內(nèi)部集成了ARM7TDMI核,具有71個通用可編程I/O口,8個外部中斷源,可直接外接SDRAM擴大系統(tǒng)內(nèi)存,內(nèi)部具有日歷功能的RTC(實時時鐘)等模塊。以太網(wǎng)接口芯片選用集成MAC層和PHY層的RTL8019AS。FPGA采用Altera公司Cyclone系列的EP1C3TT144C8,此芯片有近3000個邏輯單元,13個M4K RAM塊,共59 904bits RAM可供使用。本系統(tǒng)中采用144管腳的TQFP封裝的芯片,共有104個用戶可用I/O口,在FPGA器件中是一款性價比很高的芯片。由于FPGA內(nèi)部有較大的RAM空間,故可根據(jù)系統(tǒng)DDS要求的分辨率開設相應空間的RAM空間作為DDS的周期數(shù)據(jù)存儲器。FPGA配置芯片選用Altera公司的EPC2,系統(tǒng)可采用JTAG模式燒寫FPGA和EPC2,上電后FPGA采用PS模式從EPC2導入程序。D/A" title="D/A">D/A轉(zhuǎn)換器選擇Maxim公司的MAX5856A,它是具有雙通道、8bits分辨率、200MSps采樣率的高速D/A轉(zhuǎn)換器,實際測試可以滿足系統(tǒng)的要求。濾波部分采用的是一個兩階巴特沃茲低通濾波電路。為提高系統(tǒng)的人性化控制,系統(tǒng)加入了液晶顯示和鍵盤控制,方便用戶使用。SDRAM用于擴充ARM內(nèi)存以供網(wǎng)絡協(xié)議棧。Flash用于存儲ARM的程序,NFlash存儲一些系統(tǒng)固化的信息,同時可存儲系統(tǒng)運行過程中所采集的數(shù)據(jù)和通過以太網(wǎng)收到的數(shù)據(jù)。系統(tǒng)固化的常用波形數(shù)據(jù)可脫離上位機獨立工作,增加了系統(tǒng)的應用場合。系統(tǒng)的硬件原理圖如圖1所示。


3 軟件設計
  系統(tǒng)的軟件主要包括在ARM上實現(xiàn)TCP/IP協(xié)議和與上位機通訊,液晶顯示與數(shù)據(jù)存儲,控制FPGA按照要求工作。在FPGA實現(xiàn)DDS的軟件部分,用Verilog語言編寫。其中,ARM的主要工作是移植輕量級的TCP/IP協(xié)議棧LwIP完成以太網(wǎng)通訊。
  LwIP是瑞士計算機科學院(Swedish Institute of Computer Science)的Adam Dunkels等開發(fā)的一套用于嵌入式系統(tǒng)的開放源代碼TCP/IP協(xié)議棧。LwIP既可以移植到操作系統(tǒng)上,又可以在無操作系統(tǒng)的情況下獨立運行。LwIP TCP/IP實現(xiàn)的重點是在保持TCP協(xié)議主要功能的基礎上減少對RAM的占用,一般它需要10KB的RAM和40KB左右的ROM就可以運行,這使LwIP協(xié)議??梢栽诘投饲度胧较到y(tǒng)中使用。
  LwIP的特性如下:支持多網(wǎng)絡接口下的IP轉(zhuǎn)發(fā),支持ICMP協(xié)議,包括實驗性擴展的UDP(用戶數(shù)據(jù)報協(xié)議)、阻塞控制、RTT估算、快速恢復和快速轉(zhuǎn)發(fā)的TCP,提供專門的內(nèi)部回調(diào)接口(Raw API)用于提高應用程序性能,可選擇Berkeley接口API(多線程情況下),在最新的版本中支持ppp,新版本中增加了IP fragment的支持,支持DHCP協(xié)議、動態(tài)分配IP地址等。
  由于系統(tǒng)所要傳輸?shù)臄?shù)據(jù)量并不大,對速度要求也不高,但對系統(tǒng)傳輸?shù)姆€(wěn)定性有很高的要求,所以采用TCP/IP協(xié)議棧的TCP協(xié)議建立可靠鏈接來保證數(shù)據(jù)的穩(wěn)定性。
  軟件設計的主要工作集中于以太網(wǎng)驅(qū)動程序的編寫和LwIP的移植以及TCP協(xié)議處理后的數(shù)據(jù)處理。系統(tǒng)底層的驅(qū)動由自己編寫,主要是控制RTL8019AS的收發(fā)數(shù)據(jù)控制。系統(tǒng)接收以太網(wǎng)數(shù)據(jù)采用查詢的方式,若RTL8019AS的緩存中收到數(shù)據(jù)則對數(shù)據(jù)進行處理。先將此次收到的數(shù)據(jù)全部讀入系統(tǒng)的內(nèi)存中,將其轉(zhuǎn)換為LwIP標準數(shù)據(jù)包格式之后移交給LwIP協(xié)議棧處理。在系統(tǒng)建立Pbuf Pool結構鏈,用來存儲接收數(shù)據(jù)包,為每個以太網(wǎng)鏈接建立一個netif以完成以太網(wǎng)的通訊。系統(tǒng)調(diào)試時借助于Spynet軟件對網(wǎng)絡通訊過程中的數(shù)據(jù)進行抓包,使調(diào)試更加便捷。圖2描述了系統(tǒng)對收到的以太網(wǎng)數(shù)據(jù)包處理的簡略的流程圖。其中,TCP部分比較復雜,通訊之前需與上位機進行三次握手之后才能正確地建立鏈接。詳細部分可查閱標準的TCP/IP協(xié)議棧說明書。

?


  信號發(fā)生部分采用DDS原理,由FPGA完成DDS的主要部分。其設計原理圖如圖3所示。其中,指令/數(shù)據(jù)控制模塊主要完成與ARM之間的數(shù)據(jù)交換,并按照系統(tǒng)要求給出相位控制字和頻率控制字來控制系統(tǒng)的波形產(chǎn)生。累加器和加法器完成對信號周期相位信號的產(chǎn)生,用以選通波形存儲器中的數(shù)據(jù)。波形存儲器由FPGA內(nèi)部的RAM塊組成,這里使用了雙口RAM,系統(tǒng)對信號輸出精度要求不高,故選用8位D/A轉(zhuǎn)換器,則DDS的數(shù)據(jù)存儲RAM大小設定為256個字節(jié),系統(tǒng)可以根據(jù)要求隨時寫入所要產(chǎn)生波形的周期數(shù)據(jù)。外部接8位高速D/A轉(zhuǎn)換器完成數(shù)/模轉(zhuǎn)換,并接濾波處理電路。由于系統(tǒng)所選D/A轉(zhuǎn)換器在開始工作之前需要配置一些參數(shù),且由FPGA數(shù)據(jù)線輸出,故在波形存儲器與D/A轉(zhuǎn)換器之間需要加一個轉(zhuǎn)換模塊,用于區(qū)分上電初始化和正常工作兩個過程。該方法在理論上可實現(xiàn)任意周期性信號波形的產(chǎn)生,在系統(tǒng)實際調(diào)試中,系統(tǒng)可輸出相位幅值可調(diào)的正余弦波、三角波等常見波形以及可用于演示雷達工作的線性調(diào)頻信號等,頻率可以達到1MHz。
  該信號發(fā)生與采集控制系統(tǒng)不僅實現(xiàn)了信號發(fā)生器的功能,還完成了與網(wǎng)絡鏈接,可用于需要網(wǎng)絡化控制的場合中。并且系統(tǒng)的成本低、功能全、人性化高,可實現(xiàn)反饋控制,具有廣闊的應用前景。
參考文獻
1 Dunkels A. Design and implementation of the lwIP TCP/IP stack. Swedish Institute of Computer Science, February,2001
2 Dunkels A. Minimal TCP/IP implementation with proxy support. SICS Technical Report, February 2001
3 Shanmugam R等著, 尹浩瓊等譯. TCP/IP詳解 = Special edition using TCP/IP.北京:電子工業(yè)出版社,2003
4 田 澤. 嵌入式系統(tǒng)開發(fā)與應用.北京:航空航天大學出版社,2005
5 Morelli D. Modulating direct digital synthesizer in a quick- Logic FPGA.http://www.quicklogic.com/2001

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權者。如涉及作品內(nèi)容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。