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