摘 要: 介紹了帶以太網接口功能的信號發生與采集控制系統" title="控制系統">控制系統的設計方法。其中,使用ARM移植LwIP協議棧" title="協議棧">協議棧實現TCP/IP" title="TCP/IP">TCP/IP協議完成以太網通訊。信號發生部分使用FPGA依據DDS原理產生可調的信號波形,同時,系統采用ARM內置的A/D轉換器采集外部信號用于反饋控制。
關鍵詞: 以太網 TCP/IP協議 ARM FPGA DDS
現階段,隨著電子技術的飛速發展,直接數字頻率合成(DDS)技術以其頻率轉換速度快、分辨率高、相位可控等優點被廣泛用于任意波形發生系統當中,例如通訊系統、雷達及電子對抗系統等。而作為當今最受歡迎的局域網之一的以太網,現已成為社會重要的基礎信息設施,是遠程網絡化控制的理想媒介。將兩者結合起來正是本系統設計的主要內容。下面詳細介紹基于以太網的信號發生與采集控制系統的方案。
1 系統平臺
系統在實現信號發生器的功能的同時要與上位機" title="上位機">上位機通過以太網交換數據,因而系統的難點一是以太網的通訊,二是可任意調整的信號發生,即要能實現波形頻率的任意改變。
目前以太網通訊的方案比較多,可以選用專用的以太網接口模塊,也可以移植協議棧或者自己編寫協議棧,還可以嵌入帶有以太網接口的操作系統來完成通訊,例如μClinux、DSP/BIOS操作系統等。由于項目本身對成本的要求,故采用在軟件上實現TCP/IP的方案。由于TCP/IP協議比較復雜,在缺乏功能強大的操作系統支持的嵌入式設備上實現并非易事,對于特定的應用,嵌入式設備往往只需要TCP/IP協議中某一小部分即可,故考慮移植現有的開放源代碼的輕量級TCP/IP協議棧。目前這類協議棧有很多種,例如TinyTCP、uip、 LwIP等,其中,前兩個協議棧的設計目標是降低TCP/IP代碼的尺寸和內存的消耗,同時也簡化了TCP/IP協議棧,比較適合對通訊協議要求不高且控制系統核心為單片機的場合。LwIP協議棧資源需求比較多,但功能相對齊全,并提供一套非常完善的內存管理方法,很適合32位控制系統。目前隨著具有32位CPU的ARM的廣泛使用,其價格也低廉很多,且集成了豐富的外圍模塊,故本系統選擇ARM移植LwIP實現以太網通訊。
可調信號的產生也有多種方案,比較常見的是使用DDS的方法實現。DDS技術已被廣泛地用于任意信號發生系統當中。目前市面上有很多DDS專用芯片,但價格都比較昂貴且可擴展性不高,故系統選用性價比很高的FPGA來實現,這樣可以靈活地產生系統所需的控制信號,并提供了很大的擴展空間。系統在FPGA內部專門開啟了一個RAM用于存儲系統所需信號的周期性數據,用戶可根據要求存入數據并可實時地更改包括信號頻率、幅值和相位等的參數。
因此,系統平臺選用基于ARM和FPGA兩個處理器來設計。其中,ARM作為整個系統的主控單元完成與以太網的通訊、控制系統的信號發生、輸入信號的采集、液晶顯示和鍵盤掃描以及數據存儲等功能。FPGA主要完成對ARM輸入的控制信號進行DDS轉換,完成DDS的核心部分并輸出可控的信號波形。
2 硬件電路設計
ARM采用三星公司的S3C44B0X,該芯片內部集成了ARM7TDMI核,具有71個通用可編程I/O口,8個外部中斷源,可直接外接SDRAM擴大系統內存,內部具有日歷功能的RTC(實時時鐘)等模塊。以太網接口芯片選用集成MAC層和PHY層的RTL8019AS。FPGA采用Altera公司Cyclone系列的EP1C3TT144C8,此芯片有近3000個邏輯單元,13個M4K RAM塊,共59 904bits RAM可供使用。本系統中采用144管腳的TQFP封裝的芯片,共有104個用戶可用I/O口,在FPGA器件中是一款性價比很高的芯片。由于FPGA內部有較大的RAM空間,故可根據系統DDS要求的分辨率開設相應空間的RAM空間作為DDS的周期數據存儲器。FPGA配置芯片選用Altera公司的EPC2,系統可采用JTAG模式燒寫FPGA和EPC2,上電后FPGA采用PS模式從EPC2導入程序。D/A" title="D/A">D/A轉換器選擇Maxim公司的MAX5856A,它是具有雙通道、8bits分辨率、200MSps采樣率的高速D/A轉換器,實際測試可以滿足系統的要求。濾波部分采用的是一個兩階巴特沃茲低通濾波電路。為提高系統的人性化控制,系統加入了液晶顯示和鍵盤控制,方便用戶使用。SDRAM用于擴充ARM內存以供網絡協議棧。Flash用于存儲ARM的程序,NFlash存儲一些系統固化的信息,同時可存儲系統運行過程中所采集的數據和通過以太網收到的數據。系統固化的常用波形數據可脫離上位機獨立工作,增加了系統的應用場合。系統的硬件原理圖如圖1所示。
3 軟件設計
系統的軟件主要包括在ARM上實現TCP/IP協議和與上位機通訊,液晶顯示與數據存儲,控制FPGA按照要求工作。在FPGA實現DDS的軟件部分,用Verilog語言編寫。其中,ARM的主要工作是移植輕量級的TCP/IP協議棧LwIP完成以太網通訊。
LwIP是瑞士計算機科學院(Swedish Institute of Computer Science)的Adam Dunkels等開發的一套用于嵌入式系統的開放源代碼TCP/IP協議棧。LwIP既可以移植到操作系統上,又可以在無操作系統的情況下獨立運行。LwIP TCP/IP實現的重點是在保持TCP協議主要功能的基礎上減少對RAM的占用,一般它需要10KB的RAM和40KB左右的ROM就可以運行,這使LwIP協議棧可以在低端嵌入式系統中使用。
LwIP的特性如下:支持多網絡接口下的IP轉發,支持ICMP協議,包括實驗性擴展的UDP(用戶數據報協議)、阻塞控制、RTT估算、快速恢復和快速轉發的TCP,提供專門的內部回調接口(Raw API)用于提高應用程序性能,可選擇Berkeley接口API(多線程情況下),在最新的版本中支持ppp,新版本中增加了IP fragment的支持,支持DHCP協議、動態分配IP地址等。
由于系統所要傳輸的數據量并不大,對速度要求也不高,但對系統傳輸的穩定性有很高的要求,所以采用TCP/IP協議棧的TCP協議建立可靠鏈接來保證數據的穩定性。
軟件設計的主要工作集中于以太網驅動程序的編寫和LwIP的移植以及TCP協議處理后的數據處理。系統底層的驅動由自己編寫,主要是控制RTL8019AS的收發數據控制。系統接收以太網數據采用查詢的方式,若RTL8019AS的緩存中收到數據則對數據進行處理。先將此次收到的數據全部讀入系統的內存中,將其轉換為LwIP標準數據包格式之后移交給LwIP協議棧處理。在系統建立Pbuf Pool結構鏈,用來存儲接收數據包,為每個以太網鏈接建立一個netif以完成以太網的通訊。系統調試時借助于Spynet軟件對網絡通訊過程中的數據進行抓包,使調試更加便捷。圖2描述了系統對收到的以太網數據包處理的簡略的流程圖。其中,TCP部分比較復雜,通訊之前需與上位機進行三次握手之后才能正確地建立鏈接。詳細部分可查閱標準的TCP/IP協議棧說明書。
?
信號發生部分采用DDS原理,由FPGA完成DDS的主要部分。其設計原理圖如圖3所示。其中,指令/數據控制模塊主要完成與ARM之間的數據交換,并按照系統要求給出相位控制字和頻率控制字來控制系統的波形產生。累加器和加法器完成對信號周期相位信號的產生,用以選通波形存儲器中的數據。波形存儲器由FPGA內部的RAM塊組成,這里使用了雙口RAM,系統對信號輸出精度要求不高,故選用8位D/A轉換器,則DDS的數據存儲RAM大小設定為256個字節,系統可以根據要求隨時寫入所要產生波形的周期數據。外部接8位高速D/A轉換器完成數/模轉換,并接濾波處理電路。由于系統所選D/A轉換器在開始工作之前需要配置一些參數,且由FPGA數據線輸出,故在波形存儲器與D/A轉換器之間需要加一個轉換模塊,用于區分上電初始化和正常工作兩個過程。該方法在理論上可實現任意周期性信號波形的產生,在系統實際調試中,系統可輸出相位幅值可調的正余弦波、三角波等常見波形以及可用于演示雷達工作的線性調頻信號等,頻率可以達到1MHz。
該信號發生與采集控制系統不僅實現了信號發生器的功能,還完成了與網絡鏈接,可用于需要網絡化控制的場合中。并且系統的成本低、功能全、人性化高,可實現反饋控制,具有廣闊的應用前景。
參考文獻
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.北京:電子工業出版社,2003
4 田 澤. 嵌入式系統開發與應用.北京:航空航天大學出版社,2005
5 Morelli D. Modulating direct digital synthesizer in a quick- Logic FPGA.http://www.quicklogic.com/2001