1 網絡化智能傳感器簡介
網絡化智能傳感器使傳感器由單一功能、單一檢測向多功能和多點檢測發(fā)展;從被動檢測向主動進行信息處理方向發(fā)展;從就地測量向遠距離實時在線測控發(fā)展。網絡化使得傳感器可以就近接入網絡,傳感器與測控設備間再無需點對點連接,大大簡化了連接線路,易于系統的維護和擴充。網絡化智能傳感器一般由信號采集單元、數據處理單元和網絡接口單元組成。這3個單元可以是采用不同芯片構成合成式的,也可以是單片式結構。網絡化智能傳感器的核心便是嵌入式微處理器。嵌入式微處理器具有體積小、功耗低、可靠性高、可抗干擾能力強等特點。本系統就是采用嵌入式微處理器作為核心,使用數字式的溫度傳感器作為采集單元。系統設計中采用的是信息技術領域最新的B/S(Brower/Server,瀏覽器/服務器)結構,用瀏覽器作為統一的客戶端,無需安裝軟件,使用起來更加方便。
2 系統硬件設計
2.1 總體框架
采用的嵌入式微處理器LPC2210是基于一個支持實時仿真和嵌入式跟蹤的16/32位ARM7TDMI—S CPU的微控制器。功耗極低,具有多個32位定時器、8路10位ADC、PWM輸出以及多達9個外部中斷,特別適用于工業(yè)控制、醫(yī)療系統;由于內置了寬范圍的串行通信接口,也非常適合于通信網關、協議轉換器、嵌入式軟Modem以及其他類型的應用。
該嵌入式Web智能溫度傳感器系統設計的總體框架如圖1所示。
2.2 電源模塊
LPC2200系列ARM7微控制器均要使用2組電源,I/O口供電電源為3.3 V,內核及片內外設供電電源為1.8 V應用系統。如圖2所示,首先由CZl電源接口輸入9 V直流電源,二極管D1防止電源反接,經過C1和C2兩個電容進行濾波;然后,通過LM7805將電源穩(wěn)壓至5 V,再使用LDO芯片(低壓差電源芯片)穩(wěn)壓輸出3.3 V及1.8 V電壓。
2.3 溫度傳感器
溫度傳感器采用單線數字溫度傳感器DSl8820,該傳感器是Maxim公司生產的、屬于新一代適配微處理器的智能溫度傳感器。測溫范圍較廣,為一55~+125℃,固有測溫分辨率為O.5℃。其支持“一線總線”接口,即從DSl8820讀出信息或向DSl8820寫入信息僅需要一根口線(單線接口)。溫度變換功率來源于數據總線,總線本身也可以向所掛接的DSl8820供電,而無需額外電源。DSl8820集溫度測量、A/D轉換于一體,可根據實際要求通過簡單的編程實現9~12位的數字值讀數方式,具有體積小、接口方便、傳輸距離遠等特點。
DS18820與微處理器LPC2210的連接圖如圖3所示。注意,應加入一個阻值為5.1 kΩ的上拉電阻。
2.4 網絡接口
網絡接口采用的是目前比較常用的lO Mbps嵌入式以太網控制芯片RTL8019。它是一種高度集成的以太網控制芯片,內部集成了DMA控制器、ISA總線控制器、16 KB SRAM和網絡PHY收發(fā)器。用戶可以通過DMA方式把需要發(fā)送的數據寫入片內SRAM中,讓芯片自動將數據發(fā)送出去;而芯片在接收到數據后,用戶也可以通過DMA方式將其讀出。
RTL8019AS與LPC2210一般通過外部總線進行連接,其連接關系如表1所列。
由表1可知,RTL8019AS使用LPC2210外部存儲控制的Bank2部分,而RTL8019AS的I/O地址為0x00300~Ox0031F,所以RTL8019AS在SA8=l、SA5=O時選通,其數據地址為0x83400000~Ox83400001F。
NET_RST為LPC2210輸出引腳,RTL8019AS中斷信號為中斷輸入信號,且為外部中斷。RTL8019AS的SDO~SDl5串了一個470 Ω電阻連接到LPC2210的D0~D15。此外,該系統還加入了LCM接口,可以直接支持SMG240128A點陣圖形液晶模塊,便于通過液晶實時顯示傳感器所接收的溫度。
3 系統軟件分析
3.1 總體設計
系統開發(fā)采用的是ARM公司的ADS1.2作為開發(fā)編譯環(huán)境。移植了μC/OS—II操作系統,主要采用C語言編寫。將μC/OS—II移植到ARM處理器上,需要修改3個與ARM體系結構相關的文件:OS_CPU.H、0S_CPU_A.ASM、OS_CPU_C.C。具體移植請參考相關書籍。
程序首先調用OSinit()初始化μC/OS—II,完成對操作系統內部一些變量、數據結構和宏定義的初始化。在開始多任務之前,還需建立一個名為Task0()的任務,這一點是非常重要的,否則用戶的應用程序就會崩潰。主任務中首先調用TargeTInit()函數將目標板初始化,模板中包含這個初始化函數,它完成對板上硬件的一些初始化工作。之后啟動多任務環(huán)境,創(chuàng)建3個任務來實現系統最終的目標。這3個任務包括:傳感器對溫度的采集和處理;溫度比較與液晶顯示;建立Web服務器。下面對設計過程中比較關鍵問題進行詳細的闡述。
3.2 軟件設計中的關鍵技術問題
3.2.1 傳感器的溫度采集
在對傳感器數據采集的軟件編程中,采用的是單線總線協議。通過單線總線訪問DSl8820的協議包括:初始化DSl8820、ROM操作命令、存儲器操作命令和讀數據/處理數據。
根據DSl8820的初始化時序、寫時序和讀時序,分別編寫3個子程序:Init_DSl8820為初始化子程序;WriteOneChar為寫(命令或數據)子程序;ReadOneChar為讀數據子程序。所有的數據讀/寫均由最低位開始。
該系統的讀字節(jié)子程序的流程如圖4所示。
溫度傳感器采集的關鍵任務程序代碼如下:
3.2.2 Web服務器的建立
要在微處理器中建立Web服務器,主要需要實現TCP/IP協議棧的移植。設計中主要采用ZLG/IP軟件包,它是廣州周立功單片機發(fā)展有限公司開發(fā)的面向嵌入式系統開發(fā)的TCP/IP協議棧,是ZLG系列中間件的重要成員之一。ZLG/IP提供實現Internet網絡上IP接點的功能,是一種高性能的嵌入式TCP/IP協議棧軟件。它使用μC/OS—II實時操作系統的信號機制來實現一個多任務并行、可重入的協議棧,完全使用ANSI C編寫,可以像μC/OS—II那樣支持多種CPU。ZLG/IP還具有層次清晰、易于升級和修改等特點。該ZLG/IP軟件包具體可見參考文獻。
ZLG/IP采用模塊化層次結構設計,其結構如圖5所示。
圖5中,TCP/IP應用程序是用戶自己編寫的μC/OS—II任務,是ZLG/IP的使用者,位于整個程序的最高層。TCP/IP應用程序調用ZLG/IP提供的Socket API接口函數對網絡進行相應的操作。Socket API接口位于TCP/IP協議與應用程序之間,是用戶操作協議棧程序的工具,在應用程序中通過調用Socket API接口函數來對協議棧軟件進行操作。TCP、UDP處理模塊是協議棧程序中處理傳輸層協議的模塊,負責對傳輸層的數據進行封裝和解拆,保存?zhèn)鬏攲舆B接狀態(tài)。點劃線內部就是接收處理,包括IP報、ARP報、ICMP報的處理,及以太網層的數據接收驅動。接收驅動模塊在接收到數據后先進行分類,若是IP報就由IP處理模塊處理,若是ARP報就進行ARP協議處理。ARP請求報調用以太網發(fā)送模塊發(fā)送ARP應答報。IP處理模塊把數據分類,TCP或UDP報則轉由上層的傳輸層模塊處理,而ICMP協議處理模塊負責對IC—MP協議進行處理。IP發(fā)送模塊負責封裝IP報,并把封裝好的IP報傳送到下層發(fā)送模塊。IP發(fā)送模塊有4個上層模塊調用:分別是Socket API接口、UDP處理、TCP處理和ICMP處理。它們把相應的參數傳送給IP發(fā)送模塊,由IP發(fā)送模塊來封裝。Ethernet發(fā)送驅動模塊是屬于以太網層的處理模塊,負責封裝以太網報和數據的發(fā)送,調用它的模塊有ARP處理模塊和IP發(fā)送模塊。
由于使用的是B/S結構,則編程是采用的是TCP通信的Socket API。編寫TCP通信的任務時分為服務器方式和客戶機方式兩種。服務器方式是需要監(jiān)聽連接,只有在與客戶機建立連接后才能進行數據處理。客戶機方式是主動連接服務器,也是在連接成功后才能進行數據處理。圖6是TCP通信時服務器端和客戶機端通信的函數應用圖。
在編程時溫度傳感器有其唯一的一個IP地址,即192.168.O.174。子網掩碼是255.255.255.0,網關地址與IP地址相同。Web服務器建立在微處理器中,個人PC機為客戶端,當個人需要查詢溫度傳感器的值時,通過HTTP協議在瀏覽器中輸入該傳感器的IP地址(即ht—tp://192.168.O.174),便可進入該系統的網頁溫度瀏覽界面。
Web服務器任務程序代碼如下:
結 語
本系統已經過測試運行良好,能方便地通過瀏覽器實時查詢溫度傳感器所采集的溫度值。網絡化智能傳感器是如今傳感器技術發(fā)展的一個新的方向,本系統采用嵌入式技術實現了一個基本的基于網絡的智能化傳感器,其中設計的重點主要是對TCP/IP通信協議的實現,即將TCP/IP協議棧移植到系統中,然后調用相關的API函數實現網絡通信。而Web功能的實現主要采用了B/S模式,通過上層的HTTP協議實現了瀏覽器與嵌入式網絡傳感器的交互。實現傳感器的網絡化控制可以很好地應用在對家電設備的控制或工業(yè)現場的控制中,具有良好的應用前景。