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