基于PIC32的嵌入式Web服務(wù)器的物聯(lián)網(wǎng)實現(xiàn)
1前言
計算機和網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,引發(fā)了控制領(lǐng)域深刻的技術(shù)革命。控制系統(tǒng)結(jié)構(gòu)向網(wǎng)絡(luò)化、開放性方向發(fā)展將是控制系統(tǒng)技術(shù)發(fā)展的主要潮流。過去大量的浩如煙海的8/16位單片機的嵌入式設(shè)備,如儀器儀表、數(shù)據(jù)采集和顯示、過程控制、工業(yè)自動化、家庭自動化等的實時應(yīng)用,已經(jīng)到了享受網(wǎng)絡(luò)方便的時候了。它們將成為Internet 的發(fā)展沃土,順應(yīng)“網(wǎng)絡(luò)服務(wù)”向“網(wǎng)絡(luò)應(yīng)用”擴展的大潮。
目前大多數(shù)嵌入式系統(tǒng)還處于單獨應(yīng)用的階段,以單片機為核心,與一些控制設(shè)備配合實現(xiàn)一定的功能。如果嵌入式系統(tǒng)能夠連接到Internet 這個信息流通渠道,則可以方便、低廉地將信息送到世界上任何一個地方,這將形成集管理與控制于一體的分布式網(wǎng)絡(luò)系統(tǒng)。要做到這一點并不難,在電子技術(shù)、傳感技術(shù)已經(jīng)高度發(fā)達的今天,現(xiàn)場數(shù)據(jù)的取得,已經(jīng)不是難事,溫度、壓力、濕度、速度、加速度、電流、電壓這些數(shù)據(jù)只需要一個小小的嵌入式系統(tǒng)就可解決。另外,以太網(wǎng)(Ethernet)協(xié)議已經(jīng)廣泛地應(yīng)用于各種計算機網(wǎng)絡(luò),基于以太網(wǎng)的嵌入式系統(tǒng)也正在不斷向前發(fā)展。
另一方面,隨著網(wǎng)絡(luò)的發(fā)展和用戶對各種應(yīng)用需求,現(xiàn)在各種各樣的消費產(chǎn)品,例如,智能手機,數(shù)碼相機等,都提供無線或是有線的國際互聯(lián)網(wǎng)絡(luò)的接入功能。各種應(yīng)用都需要網(wǎng)絡(luò)的接入來提供各種娛樂功能。同時隨著物聯(lián)網(wǎng)技術(shù)發(fā)展,對于各種設(shè)備的網(wǎng)絡(luò)接入和訪問將變得越來越普遍。而且現(xiàn)在流行的智能家居系統(tǒng)的實現(xiàn)也需要網(wǎng)絡(luò)的接入來提供遠程控制,,因此開發(fā)基于MCU的嵌入式Web服務(wù)器是非常有意義和挑戰(zhàn)性的。
2需求與功能分析
系統(tǒng)目標
最終目的是實現(xiàn)一個基于PIC32位單片機的可移植并且高度可配置嵌入式Web服務(wù)器。嵌入式Web服務(wù)器可用于現(xiàn)在流行的物聯(lián)網(wǎng)的各個方面,例如,傳感器網(wǎng)絡(luò)監(jiān)控,工業(yè)機器監(jiān)控,小型Web服務(wù)器,遠程信息交互等應(yīng)用領(lǐng)域。
主要功能
實現(xiàn)一個嵌入式Web服務(wù)器,并且能夠提供用戶通過Internet 訪問并控制相關(guān)外設(shè)。基本要求如下所示:
1. 當上電或用戶復(fù)位后所有PIC32 位單片機配置能夠自動設(shè)置好,并正常工作;
2. 網(wǎng)絡(luò)連接通過板卡上的Ethernet 接口實現(xiàn),并且相關(guān)的IP地址,子網(wǎng)掩碼(Subnet mask),網(wǎng)關(guān)(Gateway)等網(wǎng)絡(luò)配置能夠通過DHCP(Dynamic Host Configuration Protocol)自動實現(xiàn)。
3. HTML源文件存放在外部SD存儲卡上,方便用戶修改。而且通過USB接口來實現(xiàn)讀寫。
4. 為了演示物聯(lián)網(wǎng)技術(shù)的基本結(jié)構(gòu)及其優(yōu)勢,提供相關(guān)外設(shè)(溫濕度傳感器及LED)供用戶遠程控制或操作。
5. 為方便使用,相關(guān)的網(wǎng)絡(luò)信息(如IP地址,網(wǎng)關(guān)(Gateway)等)及外設(shè)信息(如溫度,濕度等)顯示在LCD上。
相關(guān)技術(shù)和原理
TCP/IP 協(xié)議
USB 協(xié)議
3.系統(tǒng)設(shè)計與實現(xiàn)
系統(tǒng)總體結(jié)構(gòu)框圖如圖1所示:
圖1 系統(tǒng)總體結(jié)構(gòu)框圖
嵌入式Web服務(wù)器
從上面的框圖中我們可以清晰地了解整個硬件系統(tǒng)的結(jié)構(gòu)以及各部分的連接。首先最重要的部分是調(diào)用Microchip公司的TCP/IP庫來實現(xiàn)PIC32位單片機與Internet的通信,接受用戶的請求并根據(jù)Http Request()的返回值通過Http Response()來與用戶進行交互,例如顯示時間、溫度、濕度,或者控制LED燈的亮或滅。更進一步可以用按鍵來模仿嵌入式服務(wù)器側(cè)的各種外設(shè)的參數(shù)變化,使其實時的顯示到用戶的Web瀏覽器上。
下圖是簡化了的Web服務(wù)器原理圖,服務(wù)器的事物邏輯部分是嵌入式服務(wù)器的核心部分,它根據(jù)不同的Http Socket來讀取SD存取卡上的HTML源文件或其他外設(shè)的輸入值,來響應(yīng)用戶的請求,這是物聯(lián)網(wǎng)的基礎(chǔ)。
SD存取卡及文件系統(tǒng)
SD存取卡及文件系統(tǒng)是整個系統(tǒng)中僅次于嵌入式Web服務(wù)器的重要模塊,它主要用來存放Web服務(wù)器管理員編寫的HTML源文件,提供給Web服務(wù)器來響應(yīng)用戶的請求。SD卡的讀寫可以利用PIC32位單片機上的USB Host來方便的實現(xiàn)。并且Microchip 公司提供的文件系統(tǒng)的庫函數(shù)的支持,更加方便了SD存取卡及文件系統(tǒng)模塊的實現(xiàn)。
其示意性原理框圖如下所示:
LCD顯示部分
同時與PIC32 位單片機相連的LCD用來顯示嵌入式Web服務(wù)器的網(wǎng)絡(luò)連接信息以及傳感器的輸入值。嵌入式Web服務(wù)器的網(wǎng)絡(luò)連接信息不僅包括當前IP地址,網(wǎng)關(guān)等基本網(wǎng)絡(luò)信息,還包含了當前用戶連接數(shù),用戶的Web請求等。管理者可以根據(jù)這些基本的信息來判斷當前Web服務(wù)器的工作狀態(tài),以及系統(tǒng)錯誤的檢查。
LCD顯示內(nèi)容的總體布局如下圖所示:
4.傳感器模塊及LED控制模塊
傳感器主要用于測量當前系統(tǒng)所處環(huán)境的各種參數(shù),比如溫度,濕度等。測量的數(shù)據(jù)一方面送到LCD顯示;另一方面送到Web服務(wù)器的事物邏輯控制中心以響應(yīng)用戶的Web請求。而LED控制部分則接受來自Web服務(wù)器的控制信號以控制LED燈的亮或滅。
5.測試
1. 當上電或用戶復(fù)位后所有PIC32 位單片機配置自動設(shè)置好,并正常工作;
2. 網(wǎng)絡(luò)連接通過板卡上的Ethernet 接口實現(xiàn),相關(guān)的IP地址,子網(wǎng)掩碼(Subnet mask),網(wǎng)關(guān)(Gateway)等網(wǎng)絡(luò)配置能夠通過DHCP(Dynamic Host Configuration Protocol)自動實現(xiàn);
3. 相關(guān)外設(shè)(溫濕度傳感器及LED)正常工作。
評論