摘要:本文詳細介紹了一種基于TMS320VC5509A DSP和W5100芯片的視覺傳感器的設計。提出了一種TCP/IP視覺傳感器的研究方案。并詳細分析了這一方案的硬件模塊設計,基于DSP/BIOS軟件模塊設計和實現。
關鍵詞:TCP/IP;DSP/BIOS;DSP;視覺傳感器;W5100
引言
檢測技術是現代工業生產的基礎技術之一,是保證產品質量的關鍵。機器視覺檢測采用了大量的自動化、智能化技術,整個檢測過程可以自動地完成。由于機器視覺高精度、非接觸性、高速性、自動化程度高等優點,使其在現代工業生產的檢測領域得到了廣泛的應用。而這一切都依賴于高性能的視覺傳感器的研究。
視覺傳感器的通信接口種類比較少,多為傳統的RS-232,RS485接口。數據交換速度慢,已經不能滿足日益增長的數據傳輸要求。然而基于Internet的遠程控制系統能夠通過Internet進行數據采集、遠程控制、快速的上傳/下載數據文件。從而極大的提高了視覺傳感器的性能。為此本文提出了一種基于W5100芯片的TCP/IP視覺傳感器設計方案,并給予了實現。

基于TCP/IP的視覺傳感器的設計
硬件模塊設計
TMSVC5509A是TI公司推出的一款高性能、低功耗定點DSP芯片。其最高時鐘可以達到200MHz,內部有兩個MAC和兩個ALU,使最快操作數達到400MIPS,具有一條32位程序數據總線,5條16位的數據總線和6條24位的程序和數據地址總線。在存儲空間上,TMSVC5509A具有128K×16的片上RAM和64K Bytes片上ROM。外部最大可擴展16M Bytes的SDRAM的存儲容量。TMSVC5509A的這些性能已經滿足了一般視覺傳感器的需求。
目前,我們常用的嵌入式TCP/IP基本上是采用軟件來實現TCP/IP協議棧。這種設計開發周期長,且比較消耗片上資源。為此筆者提出了一種直接采用TCP/IP硬件協議棧芯片W5100的設計方案。如圖1所示,系統由采集模塊、存儲模塊、DSP和通信模塊組成。采集模塊由CMOS、FIFO和CPLD組成。存儲模塊外擴了FLASH和SDRAM,而通信模塊主要是由串口和以太網組成。

本設計采用的是WIZnet公司最新推出的固件網絡芯片W5100,它是在W3150A+的基礎上,集成了以太網物理層RTL8201CP核,因此W5100集TCP/IP協議棧、以太網MAC和PHY為一體。W5100支持TCP,UDP,ICMP,IGMP,IPv4,ARP,PPPoE,Ethernet等網絡協議;支持4個獨立的Socket通信,最大通信速率可達25Mbps。
W5100具有Direct、Indirect BUS和SPI三種接口模式,用戶可以根據自己的實際情況選擇合適的模式。本系統針對系統的速度要求,采用的是Direct Bus模式與DSP系統的并行總線相連。系統連接框圖如圖2所示。由于5509A(LQFP)只有14條地址線,而W5100有15條地址線,所以需要地址線擴展,在本系統中采用GPIO線擴展地址線A14。
W5100與主MCU采用中斷的方式進行通信,以太網模塊被客戶端喚醒,接收到控制命令,則通過中斷觸發啟動對W5100的接收數據讀取和數據的發送。
以太網接口設計需要網絡隔離變壓器起信號傳輸、阻抗匹配、波形修復、雜波抑制以及高電壓隔離等作用,以保護系統的安全。傳統的設計將RX+/RX-、TX+/TX-接到網絡隔離變壓器上,再由變壓器引出相應信號連接到RJ45接口上,網絡模塊以標準RJ45接口與以太網相連。而在本系統的設計中采用的FGYDFNW2是一個帶有變壓器的RJ45,這樣又使設計變得更為小巧,使結構更緊湊。

軟件模塊設計
BIOS是DSP開發環境CCS(CodeComposer Studio)中的一個可裁剪的可搶占式實時操作內核,而且自帶許多分析工具,可以實現多線程(即多任務)間的通信和同步等問題。
在本系統中線程的選取如圖3,因為視覺傳感器主要用于生產線上的檢測和控制,所以對其通信時間要求較為嚴格,所以我們采用HWI(HardWare Interrupts)這一具有最高優先權的線程。由于當命令信號給圖像處理系統后,必須很快進入工作狀態,對時間的要求較為嚴格,故任務初始化模塊采用優先級僅次于HWI的SWI(SoftWareInterrupts)線程;而對圖像我們是周期性采集的,所以采用CLK(Clock)線程。CLK線程本質上是HMI線程;由于圖像處理部分的程序結構相對復雜一點,為簡化設計,圖像輸入模塊、圖像處理模塊、圖像輸出模塊均采用TSK(Task)線程,而且經實驗驗證,采用流水優化后,CPU還有余量,所以這樣的考慮是合理的。
在上述系統中,網絡模塊起著通信和數據傳輸的雙重作用。工作在服務器模式下的嵌入式系統,其編程流程圖如圖4所示:對W5100初始化,初始化SOCKET,打開SOCKET后進入監聽狀態;直到被客戶端喚醒即接收到連接信號,建立連接;并收到來自客戶端的命令,根據命令完成相應的操作,這一操作具有最高優先權。若為FIN斷開連接命令,則斷開由客戶端至服務器SOCKET的連接;若已經完成整個連接的命令,則發送斷開連接命令,斷開整個SOCKET的連接,得到確認信號,關閉SOCKET。
速度測試及其結果
我們采用抓包程序Ethereal對數據傳輸速度進行了測試。我們分別對發送數據量為100kbyte,200kbyte和300kbyte進行了測試,實驗結果如表1所示。對于本系統每幀640×480像素大小的圖像。這樣的速度可以達到約10幀/s。滿足系統對于實時數據傳輸要求。
結語
本系統屬于多任務調度和同步實時系統,DSP/BIOS多線程設計方案加快了設計開發,并達到了很好的性能;硬件TCP/IP協議棧芯片的使用,可以免除對大量底層TCP/IP協議細節的了解。可以很方便的實現開發系統的網絡化。