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