摘 要:介紹基于W31OOA的嵌入式IP荷重傳感器結構廈其網絡化接口的幾種實現方式;著重探討基于TCP/IP協議棧芯片W3100A的網絡化接口及Web功能的實現;給出嵌入式IP荷重傳感器的一個應用實例。
關鍵詞:IP傳感器 網絡化接口 W31OOA 荷重傳感器
工業生產中,傳統測控系統已逐漸由集中式向分散式方向發展。分布在現場的傳感器和執行機構的智能越來越強,它們之間也越來越表現出對通信的迫切要求。隨著Intelnet的迅速發展,TCP/IP協議正逐漸成為一種世界通用的網絡通信協議標準。如果讓處于現場的傳感器實現TCP/IP協議,也就是把網絡連接功能嵌入到現場傳感器中,使傳統的傳感器真正成為一個獨立的網絡結點,數據采集、信息傳輸等都能直接在Intranet/Internet上以Web方式進行,既統一了標準,又達到了遠程控制和操作的目的。基于W3IOOA的嵌入式IP荷重傳感器正是為實現這種目的而設計的。
1 IP荷重傳感器結構
嵌入式IP荷重傳感器是在智能傳感器的基礎上發展起來的具有Internet功能的新型傳感器。其實質是在傳統傳感器的基礎上實現TCP/IP網絡通信協議接口,將傳感器作為網絡節點直接與計算機網絡通信。它的組成主要有:敏感單元、智能處理單元和TCP/IP通信協議接口。
圖l為嵌入式IP荷重傳感器的結構框圖。整個傳感器的工作原理如下:傳統的傳感器將被測荷重信號轉換為電信號,先通過A/D轉換器轉換為數字信號,再經過微處理器的數據處理(濾波、校準)將結果傳送給網絡;與網絡的數據交換由基于TCP/IP協議的網絡接口模塊完成。嵌入式IP荷重傳感器的內部存儲器存儲傳感器的物理特征,如偏移、靈敏度、校準參數等;微處理器實現數據的處理及輸出校準;TCP/IP協議實現傳感器的網絡連接。與傳統的傳感器相比,基于W3100A的嵌入式IP傳感器具有可靠、便宜、擴展性好的優點,而且可以在內部直接對原始數據加工、處理,并通過Intranet/Internet與外界進行數據交換,因而它具有微型化、網絡化和智能化的特點。由于傳感器可與Intranet/Internet互連,因而實現了資源共享。
2 TCP/lP協議棧的幾種實現方案
IP傳感器實現的關鍵在于網絡化接口的設計,而網絡化接口實現的關鍵在于TCP/IP通信協議的實現。目前,實現的方法有下面兩種:
①基于軟件來實現TCP/IP協議棧。通過將TCP/IP協議棧移植到系統中,然后調用相關的API函數實現網絡通信。或者不采用移植的方法,參照標準的TCP/IP協議精簡相應的協議層,編寫相關的API函數完成簡易的TCP/IP通信。但是這種方法需要有操作系統、高性能MCU及大容量存儲器的支持。
②直接采用TCP/IP協議棧芯片。這種方案的主要優點在于,應用系統的設計不必考慮任何網絡協議,只需要解釋并執行網絡芯片傳送過來的指令和數據就可以實現與Internet網絡連接,實現數據對網絡的傳送,且不需要操作系統的支持。本文基于W3IOOA芯片的嵌入式IP荷重傳感器就是采用這種方法實現的。
3 傳感器系統硬件設計
3.1 W3100A芯片簡介
W3100A是韓國Wiznet公司生產的一種TCP/1P協議棧芯片,其中包含的協議層有TCP(傳輸控制協議)、IP(網際協議)、UDP(用戶數據報協議)、ICMP(因持網控制報文協議)和協議的DLC(數據鏈路控制),以及MAC協議。該芯片提供2個接口給上層應用層——MCU接口和I2C接口,1個MII(Media Independent Interface)接口給底層物理層。芯片支持全雙工4 M~5 Mb/s的數據通信;內部帶有雙口RAM的數據緩沖器,64引腳LQFP封裝,內部結構如圖2所示。
芯片內部提供512 B的控制寄存器存儲空間和16 KB的數據存儲緩沖器。其中8 KB傳輸數據緩沖器供Mcu傳輸數據用,MCU只能寫而不能讀;8 KB接收數據緩沖器供MCU接收數據用,MCU只能讀而不能寫。芯片提供寄存器供MCU訪問,具體的寄存器分類如下;控制寄存器(命令、狀態及中斷);系統寄存器(網關地址、子網掩碼、IP地址等);用于數據收、發的指針寄存器;通道操作的通道寄存器。各寄存器功能和地址參閱文獻。
3.2 硬件接口及其數據傳輸
W3100A提供了并口和串口兩種方式實現與MCU的通信。圖3為基于12C的串口連接方式。其中MCU為傳感器中的處理器,以太網物理層設備選用RTIL8201芯片。W3100A提供MII接口與RTL820l相連,其中引腳RX_CLK、RXDV、RXD[3;O]以及COL用于數據的接收,而TX_CLK、TXE、TXD[3:O]用于數據的發送。MCU中提供模擬的I2C接口與W3lOOA通信。I2C是串行通信總線方式,由數據線SDA和時鐘線SCL配合完成通信。
TCP連接分主動連接(TCP客戶機模式)和被動連接(TCP服務器模式)。本文主要用到TCP被動連接方式,具體過程如圖4所示。首先,要完成芯片的TCP/IP初始化,初始化主要是對必要的寄存器進行相應的設置。這些寄存器包括GAR、SMR、SHAR以及SIPR等。
上述寄存器被設置后通過執行控制寄存器CO_CR的0位Sys_init激活芯片。其次,設置相應通道,如0通道,的協議選擇寄存器C0_SOPR為0X01,選擇TCP協議。執行通道O控制寄存器CO_CR中的Socket_Init,同時將C0_Tw_PR、C0_TR_PR及CO_TA_PR置成同一值。然后執行C0_CR的Connect和Listen命令位,TCP連接建立。
TCP數據傳送和接收要在連接建立后才能進行,通過設置RMSR和TMSR來規定數據緩沖器空間大小。TCP數據傳送過程是通過使用C0_TW_PR、CO_TA_PR來進行的,它們的初始值相同。然后MCU根據要傳送數據的多少增加C0_TW_PR的值。最后,C0_TW_PR、C0_TA_PR兩者之差為空閑數據緩沖器空間大小,執行傳送命令,同時增加C0_TA_PR的值,數據傳送完畢后它們的值又相同。
4 傳感器系統軟件設計
IP荷重傳感器的工作流程是:首先采集荷重信號,其次將信號進行A/D轉換后將結果存儲在EEPROM中,并可將信號和處理結果嵌入到存儲在EEPROM中的事先定制好的網頁中供客戶機通過Internet訪問,同時在本機LCD上顯示荷重信號的數據。W31130A的工作方式類似于Windows的Socket API,因此程序是在Cygnal公司的集成開發環境下,把儀器作為服務器,基于Socket API用C語言編寫的。對C8051F021而言,由于是用W3100A來完成TCP協議,其程序簡單了許多。通信主程序流程如圖5所示。
網絡配置文件預先存儲在EEPR()M中,對于儀器的本地IP地址設置為一個靜態IP地址,如果沒有一個靜態IP地址也可以采用動態主機配置協議(DHCP)來動態獲取一個IP地址。
5 應用實例
紅礬鈉是一種重要的無機化工原料。在紅礬鈉的生產中,配料是一個十分重要的工序。由于配料現場的環境惡劣,帶毒粉塵多,噪聲大,嚴重影響工人的身體健康[…。傳統的計算機配料系統由于其傳感器遠傳能力有限,對配料系統的遠距離監控往往力不從心,因此,開發具有web功能的IP傳感器十分必要。基于IP傳感器的紅礬鈉配料系統組成框圖如圖6所示。
系統中Web的工作基于C/S模型,傳感器由Web瀏覽器和Web服務器構成,兩者之間采用HTTP協議進行通信,因此在傳感器的上層協議應該采用HTTP協議。同時要實現瀏覽器與嵌入式Web傳感器交互,除了要解決上述TCP/IP通信協議接口外,在傳感器中應提供一個EEPROM存儲相應的網頁文件。交互時,HTTP通過統一資源定位器URL(Uniforrm Resource Locator)確定傳感器應該為瀏覽器提供哪些資源。為了節省空間,通過一種靈活的Hllsh算法實現。EEPROM的每一個文件都有一個不同的Hush值與之相對應,存取時可以很快計算出文件的地址。此外,它可以根據網頁中嵌入的特殊標志實現動態網頁,即顯示實時采集的數據并進行控制操作。