<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 網(wǎng)絡(luò)單片機(jī)PIC18F97J60的開發(fā)與應(yīng)用

          網(wǎng)絡(luò)單片機(jī)PIC18F97J60的開發(fā)與應(yīng)用

          作者: 時(shí)間:2009-01-14 來源:網(wǎng)絡(luò) 收藏

          2.5 MicrOChip HTTP服務(wù)器
          Microehip HTTP服務(wù)器以協(xié)同式任務(wù)處理方式實(shí)現(xiàn),它與Microchip TCP/IP協(xié)議棧以及用戶的主程序共存。這個(gè)服務(wù)器自身在源文件“HTTP.c”中實(shí)現(xiàn),使用一個(gè)用戶程序?qū)崿F(xiàn)2個(gè)回調(diào)函數(shù)。
          這里提供的HTTP服務(wù)器不會(huì)實(shí)現(xiàn)所有的HTTP功能,它是面向嵌入式系統(tǒng)的最小型服務(wù)器。用戶可以按需要方便地添加新功能。HTTP服務(wù)器主要功能包括:支持位于內(nèi)部程序存儲(chǔ)器或外部串行EEPROM中的網(wǎng)頁、簡(jiǎn)單文件系統(tǒng)(MPFS)、動(dòng)態(tài)網(wǎng)頁內(nèi)容生成和基于PC的程序,以及從給定目錄創(chuàng)建MPFS映像等。
          對(duì)于Microchip協(xié)議棧及其HTTP服務(wù)器,特定格式是MPFS。如果MPFS映像要存儲(chǔ)在外部EEPROM中,則可能需要在程序中包含編程方法。HTTP服務(wù)器使用文件“index.htm'’作為它的缺省網(wǎng)頁。這要求所有應(yīng)用程序都將名為“index.htm的文件作為它們MPFS映像的一部分。

          本文引用地址:http://www.ex-cimer.com/article/173912.htm

          3 系統(tǒng)過程
          3.1 動(dòng)態(tài)HTTP頁面生成

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


          上一頁 1 2 3 下一頁

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();