網(wǎng)絡單片機PIC18F97J60的開發(fā)與應用
2.5 MicrOChip HTTP服務器
Microehip HTTP服務器以協(xié)同式任務處理方式實現(xiàn),它與Microchip TCP/IP協(xié)議棧以及用戶的主應用程序共存。這個服務器自身在源文件“HTTP.c”中實現(xiàn),使用一個用戶應用程序實現(xiàn)2個回調(diào)函數(shù)。
這里提供的HTTP服務器不會實現(xiàn)所有的HTTP功能,它是面向嵌入式系統(tǒng)的最小型服務器。用戶可以按需要方便地添加新功能。HTTP服務器主要功能包括:支持位于內(nèi)部程序存儲器或外部串行EEPROM中的網(wǎng)頁、簡單文件系統(tǒng)(MPFS)、動態(tài)網(wǎng)頁內(nèi)容生成和基于PC的程序,以及從給定目錄創(chuàng)建MPFS映像等。
對于Microchip協(xié)議棧及其HTTP服務器,特定格式是MPFS。如果MPFS映像要存儲在外部EEPROM中,則可能需要在應用程序中包含編程方法。HTTP服務器使用文件“index.htm'’作為它的缺省網(wǎng)頁。這要求所有應用程序都將名為“index.htm的文件作為它們MPFS映像的一部分。
本文引用地址:http://m.butianyuan.cn/article/173912.htm
3 系統(tǒng)開發(fā)過程
3.1 動態(tài)HTTP頁面生成
本應用系統(tǒng)實例中服務器端網(wǎng)頁的設計涉及2項網(wǎng)頁開發(fā)技術:AJAX和CGI。篇幅所限,網(wǎng)頁編程代碼略。AJAX全稱為“Asynchronoous JavaScript and XML”(異步JavaScript和XML),是指一種創(chuàng)建交互式網(wǎng)頁應用的網(wǎng)頁開發(fā)技術。與傳統(tǒng)的Web應用不同,AJAX應用可以僅向服務器發(fā)送并取回必需的數(shù)據(jù),它使用SOAP或其他一些基于XML的web service接口,并在客戶端采用JavaScript處理來自服務器的響應。因為在服務器和瀏覽器之間交換的數(shù)據(jù)大量減少,因此就能看到響應更快的應用。同時,很多的處理工作可以在發(fā)出請求的客戶端機器上完成,所以web服務器的處理時間也縮短了。
CGI(Common Gate Interface,通用網(wǎng)關接口)是Web服務器與客戶端HTML頁面的接口。通俗地講,CGI就像是一座橋,把網(wǎng)頁和Web服務器中的執(zhí)行程序連接起來,把HTML接收的指令傳遞給服務器,同時把服務器執(zhí)行的結果返還給HTML頁。CGI可以實現(xiàn)處理表格、據(jù)庫查詢、送電子郵件等許多操作,常見的cGI就是計數(shù)器。CGI使網(wǎng)頁不再是靜態(tài)的,而變成是交互式的。
3.2 集成環(huán)境設計
MPLAB IDEv8.OO提供了一個編程環(huán)境,由于使用C語言編程,故下載并安裝了免費的C編譯器MPLAB―C18一Student Edition―v3_16.exe。MPLAB集成環(huán)境是Micro―chip公司為其所有的開發(fā)工具研發(fā)的,使用前需要選擇MPLAB ICD2。ICD2可以充當調(diào)試器和燒寫器,debug―ger和programmer在菜單中都可以進行選擇。在debug―ger模式下,Program按鈕表示把目標文件和監(jiān)控程序一起燒寫入待調(diào)試的MCU中。
MPLAB ICD2通過USB線連接主機,但不能使用默認的驅動。手動在MPLAB IDE軟件中找到ICD2_USB驅動。這個路徑包含1CD2W2K.INF、ICD2W2K.SYS、ICD2W2K L.SYS等文件。
運行MPLAB.exe后,選擇PICl8F97J60及MPLABICD2,則系統(tǒng)可下載配合該芯片使用的硬件操作系統(tǒng)。完成下載后,系統(tǒng)會檢查ICD2的連接情況。
建立工程項目包括下載安裝Microchip TCP/IP協(xié)議棧、修改編譯選項等。要將TCP/IP協(xié)議棧集成在主應用程序中,較容易實現(xiàn)且節(jié)省存儲空間的方法是調(diào)用堆棧文件。但是當集成很多的應用程序時,使用該專用協(xié)議??赡軙a(chǎn)生特殊問題。本系統(tǒng)應用只是進行數(shù)據(jù)采集等簡單應用,因此不必考慮此問題,只需要修改主應用程序MainDemo.c。這是Demo Application的核心文件,用來調(diào)用標準的Microehip TCP/IP堆棧文件。
主應用程序MainDemo.c是服務器端程序執(zhí)行的入口。它首先配置硬件,然后調(diào)用TCP/IP堆棧,運行檢測程序,并等待客戶端的請求。通過編譯主程序生成.0結尾的目標文件,連接生成.hex和.cof文件。最后,結合Microchip公司的編程工具ICD2將映像燒寫到單片機。
Microchip HTTP服務器使用簡單文件系統(tǒng)(Micro―chip文件系統(tǒng)或MPFS)來存儲網(wǎng)頁。MPFS映像可以存儲在片上程序存儲器或外部串行EEPROM中,它采用特殊的格式在給定的存儲介質上存儲多個文件。
Microchip提供了MPFS.exe程序將網(wǎng)頁轉換為MPFS映像。在創(chuàng)建MPFS映像之前,用戶必須先創(chuàng)建所有的網(wǎng)頁和相關文件,并保存在同一個目錄中。如果文件擴展名是“htm”,則Image Builder將去掉所有回車和換行字符來減小MPFS映像的大小。需要注意的是,生成的映像文件大小不要超過32 KB。接著需要把MpfsHan―Img.bin映像使用堆棧所提供的ftp服務上傳到EEP-
ROM。也可以利用超級終端,通過串口將MPFS映像傳送到EEPROM。
此外,還要通過串口對單片機進行IP地址的設定,這樣就完成了整個系統(tǒng)架構的設計。打開主PC機瀏覽器,輸入遠程單片機的IP地址,可以看到主控制監(jiān)測頁面,通過網(wǎng)頁即可實現(xiàn)對遠程單片機監(jiān)測裝置的控制,以及對溫度、流量等信息的監(jiān)測等。
評論