馬明濤
摘要:采用Philips公司的LPC2200 ARM7實驗平臺為中央處理器,移植非商業(yè)化的μC/OS-Ⅱ嵌入式操作系統(tǒng),構(gòu)建了網(wǎng)絡(luò)化大田溫度檢測系統(tǒng)。該系統(tǒng)使用DS18B20數(shù)字化溫度傳感器單總線方式將數(shù)字信號傳輸?shù)剑蹋校茫玻玻埃疤幚砥?,通過TCP/IP協(xié)議棧將數(shù)據(jù)上傳到Internet,達(dá)到了實時可靠穩(wěn)定的目的。
關(guān)鍵詞:LPC2200;μC/OS-Ⅱ;DS18B20;Web服務(wù)器
中圖分類號:S126文獻(xiàn)標(biāo)識碼:A文章編號:0439-8114(2012)16-3603-04
Networked Detection System for Field Temperature Based on ARM and μC/OS-Ⅱ
MA Ming-tao
(Jilin Agricultural Science and Technology College,Jilin 132101,Jilin,China)
Abstract:The networked detection system for field temperature was constructed by using LP2200 ARM7 test platform from Philips Corporation as CPU and transplanting non-commercialized embedded operating systems μC / OS-Ⅱ. In this system, the digital signal from digital temperature sensor DS18B20 was transmitted to the LPC2200 processor by single bus mode and then uploaded to the Internet through TCP / IP protocol stack to achieving the purpose of real-time, reliable and stable.
Key words: LPC2200; μC / OS-Ⅱ; DS18B20; Web server
溫度是農(nóng)業(yè)生產(chǎn)中最重要的因素,對溫度信息的收集和處理對農(nóng)作物生長起著至關(guān)重要的作用[1]。傳感器作為一種獲取信息的重要工具,隨著微處理器技術(shù)的迅猛發(fā)展以及測控系統(tǒng)自動化、智能化的發(fā)展,傳統(tǒng)的傳感器已與各種微處理器相結(jié)合,并連入網(wǎng)絡(luò),形成了帶有信息檢測、信號處理、邏輯思維等一系列功能的智能傳感器系統(tǒng)。本研究以體積小、功耗低、可靠性高、抗干擾能力強(qiáng)的嵌入式微處理器為核心,使用數(shù)字式的溫度傳感器作為采集單元,構(gòu)建網(wǎng)絡(luò)化大田溫度檢測系統(tǒng)。
1整體設(shè)計
本設(shè)計采用Philips公司的LPC2200 ARM7微處理器為核心,被測溫度經(jīng)數(shù)字化的傳感器DS18B20轉(zhuǎn)換成數(shù)字信號以“單總線”的方式傳入到LPC2200,經(jīng)過數(shù)據(jù)處理后根據(jù)TCP協(xié)議經(jīng)Internet網(wǎng)絡(luò)送到上位機(jī)顯示。以Philips公司的ARM核處理器LPC2200為核心來實現(xiàn)嵌入式Web服務(wù)器;網(wǎng)絡(luò)接口芯片采用Reahek公司的NE2000兼容芯片RTL8019AS,內(nèi)置10BASE-T收發(fā)器,通過HR901170A器件接入以太網(wǎng)[2]??傮w功能框圖如圖1所示。
2系統(tǒng)的硬件設(shè)計
2.1ARM7微處理器
電路板上的LPC2200微處理器[3]采用了Philips公司的ARM7 TDMI-S核。ARM7 TDMI-S處理器是ARM通用32位微處理器家族的成員之一。ARM處理器具有優(yōu)異的性能且功耗很低,其結(jié)構(gòu)是基于精簡指令集計算機(jī)(RISC)原理而設(shè)計的指令集和相關(guān)的譯碼機(jī)制,比復(fù)雜指令集計算機(jī)要簡單得多[4,5]。
2.2電源模塊
LPC2200系列ARM7微控制器均要使用2組電源,I/O口供電電源為3.3 V,內(nèi)核及片內(nèi)外設(shè)供電電源為1.8 V應(yīng)用系統(tǒng)。
2.3復(fù)位電路
由于ARM芯片的高速、低功耗和低工作電壓導(dǎo)致其噪聲容限較低,對電源的紋波、瞬態(tài)響應(yīng)性能、時鐘源的穩(wěn)定性和電源監(jiān)控可靠性等諸多方面也提出了更高的要求。該開發(fā)板的復(fù)位電路使用了專用微處理器電源監(jiān)控芯片,以提高系統(tǒng)的可靠性。
2.4系統(tǒng)時鐘電路
LPC2200系列ARM7微控制器可使用外部晶振或外部時鐘源,內(nèi)部PLL電路可調(diào)整系統(tǒng)設(shè)置,使系統(tǒng)運行速度更快(CPU最大時鐘頻率為60 MHz)。本平臺使用了外部11.059 MHz晶振,目的是使串口波特率更精確,同時能夠支持LPC2200系列ARM7微控制器芯片內(nèi)部的PLL功能和ISP功能。
2.5DS18B20應(yīng)用電路
DS18B20應(yīng)用電路是美國Dallas半導(dǎo)體公司的數(shù)字化溫度傳感器,是“一線總線”接口的溫度傳感器。在其內(nèi)部使用了在板(ON-BOARD)專利技術(shù)。測量范圍為-55~+125 ℃,精度為0.5 ℃。DS18B20可以程序設(shè)定9~12位的分辨率,它還支持多點組網(wǎng)功能,實現(xiàn)組網(wǎng)多點測溫。系統(tǒng)選用了外部電源供電方式,在外部電源供電方式下,DSl8B20工作電源由VDD引腳接入,此時I/O線不需要強(qiáng)上拉,也不存在電源電流不足的問題,可以保證轉(zhuǎn)換精度。同時理論上在總線上可以掛接任意多個DS18B20傳感器,組成多點測溫系統(tǒng)[6,7]。
2.6LED顯示電路
本系統(tǒng)采用LED顯示,使用ZLG7920芯片,ZLG7290與微控制器設(shè)計硬件電路連接只需要兩根信號線(一根數(shù)據(jù)線SDA,一根時鐘信號線SCL)。
2.7以太網(wǎng)接口電路
RTL8019AS是一種高度集成的全雙工即插即用的以太網(wǎng)控制芯片,它在一塊芯片上集成了RTL8019內(nèi)核和一個16 kB的SDRAM存儲器。能兼容RTL8019控制軟件和NE2000 8 bit或16 bit的傳輸。支持UTP、AUI、BNC和PNP自動檢測模式,其接口符合Ethernet2和IEEE802.3(10Base5、 10Base2、10BaseT)標(biāo)準(zhǔn)。RTL8019AS芯片內(nèi)部集成了DMA控制器、ISA總線控制器和集成16 kSRAM、網(wǎng)絡(luò)PHY收發(fā)器。用戶可以通過DMA方式把需要發(fā)送的數(shù)據(jù)寫入片內(nèi)SRAM中,讓芯片自動將數(shù)據(jù)發(fā)送出去;而芯片在接收到數(shù)據(jù)后,用戶也可以通過DMA方式將其讀出。RTL8019AS與LPC2200一般通過外部總線進(jìn)行連接。接口電路圖如圖2所示。
3系統(tǒng)的軟件設(shè)計
ADS集成開發(fā)環(huán)境是ARM公司推出的ARM核微控制器集成開發(fā)工具,ADS1.2支持ARM10之前所有ARM系列的微控制器,支持軟件調(diào)試及JTAG硬件仿真調(diào)試,支持匯編、C和C++源程序,具有編譯效率高、系統(tǒng)庫功能強(qiáng)等特點,可以在Windows98、 Windows2000、 WindowsXP以及RedHat Linux上運行。
3.1μC/OS-Ⅱ操作系統(tǒng)
μC/OS-Ⅱ的移植,系統(tǒng)開發(fā)采用ARM公司的ADS1.2作為開發(fā)編譯環(huán)境,移植了μC/OS—Ⅱ操作系統(tǒng),主要采用C語言編寫。將μC/OS—Ⅱ移植到ARM處理器上,需要修改3個與ARM體系結(jié)構(gòu)相關(guān)的文件:OS_CPU.H、OS_CPU_A.ASM、OS_CPU_ C.C。
3.2傳感器的溫度采集
在對傳感器數(shù)據(jù)采集的軟件編程中,采用的是單線總線協(xié)議。通過單線總線訪問DSl8B20的協(xié)議包括:初始化DS18B20、ROM操作命令、存儲器操作命令和讀數(shù)據(jù)/處理數(shù)據(jù)。根據(jù)DSl8B20的初始化時序、寫時序和讀時序,分別編寫3個子程序:Init_DS18B20為初始化子程序;WriteOneChar為寫(命令或數(shù)據(jù))子程序;ReadOneChar為讀數(shù)據(jù)子程序。所有的數(shù)據(jù)讀/寫均由最低位開始。
3.3Web服務(wù)器的建立
要在微處理器中建立Web服務(wù)器,主要需要實現(xiàn)TCP/IP協(xié)議棧的移植。設(shè)計中主要采用ZLG/IP軟件包,由廣州周立功單片機(jī)發(fā)展有限公司開發(fā)的面向嵌入式系統(tǒng)開發(fā)的TCP/IP協(xié)議棧是ZLG系列中間件的重要成員之一。ZLG/IP提供實現(xiàn)Internet網(wǎng)絡(luò)上IP接點的功能,是一種高性能的嵌入式TCP/IP協(xié)議棧軟件。它使用μC/OS-Ⅱ?qū)崟r操作系統(tǒng)的信號機(jī)制來實現(xiàn)一個多任務(wù)并行、可重入的協(xié)議棧,完全使用ANSI C編寫,可以像μC/OS-Ⅱ一樣支持多種CPU。ZLG/IP還具有層次清晰、易于升級和修改等特點[8,9]。
Web服務(wù)器關(guān)鍵部分程序:
void TaskE(void *pdata)
{
uint8 Temp=0;
uint16 TempLength;
int addrlen;
int ei;
unsigned charip_add[4]={192,168,0,1};
uint8 tempdata[400];
//uint8 err;
SOCKET s;
struct sockaddr servaddr,cliaddr;
Arp_Request(ip_add,0);
OSTimeDly(60);
servaddr.sin_family=0;
servaddr.sin_addr[0]=NetPort[0].My_Ip[0];
servaddr.sin_addr[1]=NetPort[0].My_Ip[1];
servaddr.sin_addr[2]=NetPort[0].My_Ip[2];
servaddr.sin_addr[3]=NetPort[0].My_Ip[3];
servaddr.sin_port=80;
s=*socket( 0, 0, 0);
ei=bind( (SOCKET * )&s;, (struct sockaddr*)&servaddr;,sizeof(servaddr));
ei=listen( (SOCKET * )&s;, 4 );
if(ei!=4)
while(1);
while (1)
{
Temp=accept( (SOCKET * )&s;, (struct sockaddr*)&cliaddr;,&addrlen; );
if(Temp!=0xff)
{
TempLength=recv( Temp,tempdata ,400, 0 );
if(tempdata[5]==‘ )
{
send( Temp,httpweb ,169, 0 );
//OSTimeDly(10);
send( Temp,web ,395, 0 );
}
else if(tempdata[5]==‘1)
{
send( Temp, httpgif,169, 0 );
//OSTimeDly(10);
send( Temp,bmp ,442, 0 );
}
memset(tempdata, 0,400);
OSTimeDly(20);
close(Temp);
}
}
}
3小結(jié)
系統(tǒng)經(jīng)過測試運行良好,能方便快捷地通過瀏覽器查詢溫度傳感器所采集的溫度值。本文主要介紹了系統(tǒng)硬件和μC/OS-Ⅱ的移植、TCP/IP協(xié)議棧的分析使用、溫度數(shù)據(jù)采集等設(shè)計,經(jīng)過測試,該嵌入式Web服務(wù)器可以在LPC 2000微處理器目標(biāo)板上穩(wěn)定運行且效率良好。本系統(tǒng)的大部分程序都采用標(biāo)準(zhǔn)C程序[10],在網(wǎng)絡(luò)接口上采用ZLG TCP/IP軟件包,具有很好的移植性,有良好的應(yīng)用前景,對農(nóng)業(yè)的現(xiàn)代化、智能化發(fā)展起到了一定的支撐作用。
參考文獻(xiàn):
[1] LABROSSE J J. 嵌入式實時操作系統(tǒng)μC/OS-Ⅱ[M].邵貝貝,譯.北京:北京航空航天大學(xué)出版社,2003.
[2] 何軒,夏應(yīng)清,李祥.基于ARM微處理器的嵌入式以太網(wǎng)接口[J].電氣時代,2005(1):119-120.
[3] 董靜薇,鞠麗麗.基于LPC2210的遠(yuǎn)程數(shù)據(jù)采集終端設(shè)計[J].工業(yè)控制計算機(jī),2007,20(12):33-34,37.
[4] 周立功.ARM嵌入式系統(tǒng)基礎(chǔ)教程[M].第二版.北京:北京航空航天大學(xué)出版社,2004.
[5] 周立功.ARM嵌入式軟件開發(fā)實例(一)[M].北京:北京航空航天大學(xué)出版社,2004.
[6] 郭兆正,王東.DS18B20在花棚溫度監(jiān)測中的應(yīng)用[J].渤海大學(xué)學(xué)報(自然科學(xué)版),2004,25(4):387-390.
[7] 余成波.傳感器與自動檢測技術(shù)[M].北京:高等教育出版社,2009.
[8] 李磊,楊柏林,胡維華. 嵌入式Web服務(wù)器軟件的設(shè)計和實現(xiàn)[J].計算機(jī)工程與設(shè)計,2003,24(10):100-102.
[9] 劉桂雄,馮云慶.基于IP傳感和網(wǎng)絡(luò)接口的環(huán)境測控平臺設(shè)計[J].傳感器技術(shù),2003,7(22):22-25.
[10] 申笑顏,許紅,曹偉平.基于嵌入式C實現(xiàn)檢測定制與數(shù)據(jù)處理[J].微計算機(jī)信息,2008,24(5):62-63.