新聞中心

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

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

作者: 時(shí)間:2011-12-22 來源:網(wǎng)絡(luò) 收藏

  Microchip公司生產(chǎn)的PICl8F97J60單片機(jī)將PIC18系列高端8位單片機(jī)與完整的以太網(wǎng)控制器集成在一起,并且包括了MAC、PHY和RAM收發(fā)緩沖器。利用這一64或100引腳封裝的系列器件享有的完善網(wǎng)絡(luò)連接功能,可以實(shí)現(xiàn)成本低、簡單易用的以太網(wǎng)應(yīng)用方案。此外,利用Microchip公司免費(fèi)提供的TCP/IP軟件棧,能夠大大縮短開發(fā)時(shí)間。

  1、PICl8F97J60網(wǎng)絡(luò)單片機(jī)

  1.1 網(wǎng)絡(luò)特性

  PICl8F97J60系列器件具有嵌入式以太網(wǎng)控制器模塊。這是一個(gè)完整的連接解決方案,完全實(shí)現(xiàn)了介質(zhì)訪問控制(Media Access Control,MAC)和物理層收發(fā)器(Physical Layer Transcei、ver,PHY)模塊,只需使用2個(gè)脈沖變壓器和一些無源元件就可以將單片機(jī)直接與以太網(wǎng)相連。以太網(wǎng)模塊符合IEEE 802.3中所有關(guān)于雙絞線網(wǎng)絡(luò)10Base—T連接的規(guī)定。它在內(nèi)部實(shí)現(xiàn)了一些數(shù)據(jù)包過濾機(jī)制,用于限制傳入的數(shù)據(jù)包。它提供了一個(gè)用于實(shí)現(xiàn)快速數(shù)據(jù)吞吐的內(nèi)置DMA模塊,以及硬件IP校驗(yàn)和計(jì)算;另外還提供了2個(gè)用于指示鏈路和網(wǎng)絡(luò)活動(dòng)的LED輸出。以太網(wǎng)模塊包含以下5個(gè)主要功能模塊:

  ①PHY收發(fā)器模塊——對傳輸雙絞線接口上的模擬數(shù)據(jù)進(jìn)行編碼和解碼,并通過網(wǎng)絡(luò)發(fā)送和接收;

  ②MAC模塊——實(shí)現(xiàn)了符合IEEE 802.3規(guī)范的MAC邏輯,并提供了用于控制PHY的MIIM(Media In—dependent Interface Management);

  ③獨(dú)立的8 KB RAM緩沖區(qū)——用于存儲(chǔ)已經(jīng)接收和將要發(fā)送的數(shù)據(jù)包;

 ?、芘袃?yōu)器——在單片機(jī)內(nèi)核、DMA、發(fā)送和接收模塊發(fā)出請求時(shí),控制對RAM緩沖區(qū)的訪問;

 ?、菁拇嫫鹘涌凇米饕蕴W(wǎng)模塊和單片機(jī)特殊功能寄存器(SFR)之間命令和內(nèi)部狀態(tài)信號的譯碼器。

  1.2 應(yīng)用實(shí)例

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

  圖1表明,基于互聯(lián)網(wǎng)的遠(yuǎn)程控制系統(tǒng)是由連接互聯(lián)網(wǎng)的主PC機(jī)和監(jiān)測裝置構(gòu)成的。其中,監(jiān)測裝置代表某個(gè)接入網(wǎng)絡(luò)的嵌入式系統(tǒng),它既可以是工控應(yīng)用中的溫度、壓力及流量等監(jiān)控設(shè)備,也可以是家庭應(yīng)用中的網(wǎng)絡(luò)家電等。網(wǎng)絡(luò)單片機(jī)為該監(jiān)測裝置的核心,其不僅可以采集和處理溫度或流量等傳感器數(shù)據(jù),還具有嵌入式網(wǎng)關(guān)的功能,可以實(shí)現(xiàn)監(jiān)測裝置的網(wǎng)絡(luò)接入?;ヂ?lián)網(wǎng)上的主PC機(jī)通過Web形式訪問監(jiān)測裝置,實(shí)現(xiàn)遠(yuǎn)程監(jiān)控。

  

  2、開發(fā)工具

  2.1 PICDEM.net2開發(fā)板

  PICDEM.net.2開發(fā)板除了包含PICl8F97J60核心器件外,與網(wǎng)絡(luò)接入有關(guān)的功能還包括:串行EEPROM提供256 Kb(32 KB)存儲(chǔ)空間,可以用來存儲(chǔ)網(wǎng)頁和一些配置信息;可以通過SPI接口編程;RJ一45(10Base一T)標(biāo)準(zhǔn)連接器,其J1連接到PICl8F97J60;RJ一1l(6線)標(biāo)準(zhǔn)連接器,用于通信和器件編程或調(diào)試的USB連接;串口RS232,可以用來配置芯片的IP和以太網(wǎng)地址,也可以用來下載新的網(wǎng)頁到EEPROM等。

  此外,開發(fā)板還提供了Mirochip公司的獨(dú)立以太網(wǎng)控制器ENC28J60,用來開發(fā)不帶以太網(wǎng)控制器的單片機(jī),可通過標(biāo)準(zhǔn)的SPI接口連接。開發(fā)板提供的其他設(shè)備包括LCD顯示器、LED指示燈、按鈕開關(guān)、溫度傳感器、用于連接擴(kuò)展卡的插座或邊緣連接器、實(shí)驗(yàn)用布線區(qū)(面包板)及電源等。

  通過PICDEM.net2開發(fā)板可以方便地開發(fā)各種定制的PICl8F97J60應(yīng)用系統(tǒng),經(jīng)裁剪或擴(kuò)充,完成應(yīng)用系統(tǒng)的硬件電路設(shè)計(jì)。

  2.2 在線調(diào)試器MPLAB ICD2

  選擇MPLAB ICD2作為在線調(diào)試器和燒寫器。Microchip公司提供的在線調(diào)試器MPIAB ICD2是一款功能強(qiáng)大而成本低的運(yùn)行時(shí)開發(fā)工具,通過RS232或高速USB接口與主PC機(jī)相連。與ICE相比,其仿真功能有一些限制,但有如下突出的優(yōu)點(diǎn):在產(chǎn)品量產(chǎn)后,只要保留6芯插針,就可直接與ICD2相連;ICD2可以在目標(biāo)應(yīng)用中對固件再編程,而不需要其他在線燒寫器設(shè)備。通信方式使用默認(rèn)的USB接口方式。為了避免目標(biāo)板負(fù)載過重對ICD2帶來損害,應(yīng)采用目標(biāo)板獨(dú)立供電。

  2.3 Microchip TCP/IP協(xié)議棧

  Microchip公司提供免費(fèi)的TCP/IP軟件棧,為應(yīng)用開發(fā)提供了便利。Microchip TCP/IP協(xié)議棧是一套程序,它服務(wù)于標(biāo)準(zhǔn)的、基于TCP/IP的應(yīng)用程序,或者應(yīng)用在定制的、基于TCP/IP的應(yīng)用程序中。本應(yīng)用系統(tǒng)使用的是該協(xié)議棧的4.02版本。

  類似于TCP/IP參考模型,Microchip TCP/IP協(xié)議棧將TCP/IP協(xié)議棧分為多層,如圖2所示。每層的實(shí)現(xiàn)代碼駐留在一個(gè)獨(dú)立的源文件中,而服務(wù)和應(yīng)用程序編程接口(API)是通過頭文件或包含文件定義的。與TCP/IP參考模型不同的是,Microchip TCP/IP協(xié)議棧中的許多層可以直接訪問在它下面的一層或多層。關(guān)于一個(gè)層是否繞過相鄰模塊來獲得所需的服務(wù),主要根據(jù)開銷的大小,以及服務(wù)是否需要智能處理后才能傳遞到下一層來決定。與傳統(tǒng)TCP/IP協(xié)議棧實(shí)現(xiàn)方法的不同之處是添加了2個(gè)新模塊:StackTask和ARPTask。Stackrrask管理協(xié)議棧及其所有模塊的操作,而ARPTask管理地址解析協(xié)議(Address ResohJtion Protocol,ARP)層的服務(wù)。Microchip TCP/IP協(xié)議棧使用了協(xié)同式多任務(wù)處理技術(shù)。在協(xié)同式多任務(wù)處理系統(tǒng)中,同時(shí)存在多個(gè)任務(wù),每個(gè)任務(wù)執(zhí)行自己的作業(yè)然后交回控制權(quán),這樣下一個(gè)任務(wù)才能夠執(zhí)行作業(yè)。StackTask和ARPTask都是協(xié)同式任務(wù)。Microchip TCP/IP協(xié)議棧盡管沒有實(shí)現(xiàn)通常TCP/IP協(xié)議棧中的所有模塊,但是在需要時(shí)可以將它們作為單獨(dú)的任務(wù)或模塊來實(shí)現(xiàn)。

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

  2.4 Stack Manager

  Microchip TCP/IP協(xié)議棧由多個(gè)模塊組成。在使用模塊之前,用戶必須查閱并了解它的用途和API。函數(shù)的語法、參數(shù)、返回值、前提條件等具體問題可以在編程時(shí)針對具體的問題單獨(dú)查閱。

  使用Microchip TCP/IP協(xié)議棧的任何應(yīng)用程序都必須執(zhí)行一定的步驟,以確保在適當(dāng)?shù)臅r(shí)間調(diào)用相應(yīng)的模塊(例如IP、TCP、UDP和ICMP)。無論主應(yīng)用程序邏輯如何,管理協(xié)議棧模塊的任務(wù)都始終相同。

  為了減輕主應(yīng)用程序管理各個(gè)模塊的負(fù)擔(dān),Micro—chip TCP/IP協(xié)議棧使用了一個(gè)特殊的應(yīng)用程序?qū)幽K,稱為“StackTask”或“Stack Manager”。Stack Manager以協(xié)同式任務(wù)處理方式來實(shí)現(xiàn)。被賦予處理時(shí)間后,它將輪詢MAC層是否存在有效的數(shù)據(jù)包。若接收到一個(gè)包,它將對其進(jìn)行解碼并路由到相應(yīng)的模塊做下一步的處理。

  Stack Manager。不是Mirochip TCP/IP協(xié)議棧的一部分,它與協(xié)議棧一起提供給用戶。這樣主應(yīng)用程序除了自己的工作以外,不需要管理協(xié)議棧模塊。執(zhí)行StackManager任務(wù)之前,必須通過調(diào)用StackInit()函數(shù)來對其進(jìn)行初始化。這個(gè)函數(shù)按正確的順序初始化Stack Man—ager變量和各個(gè)模塊。一旦調(diào)用Stacklnit(),主程序就必須定期調(diào)用StackTask()函數(shù),以確保及時(shí)處理所有進(jìn)入的包,以及所有的超時(shí)和錯(cuò)誤條件。

  2.5 MicrOChip HTTP服務(wù)器

  Microehip HTTP服務(wù)器以協(xié)同式任務(wù)處理方式實(shí)現(xiàn),它與Microchip TCP/IP協(xié)議棧以及用戶的主應(yīng)用程序共存。這個(gè)服務(wù)器自身在源文件“HTTP.c”中實(shí)現(xiàn),使用一個(gè)用戶應(yīng)用程序?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)頁、簡單文件系統(tǒng)(MPFS)、動(dòng)態(tài)網(wǎng)頁內(nèi)容生成和基于PC的程序,以及從給定目錄創(chuàng)建MPFS映像等。

  對于Microchip協(xié)議棧及其HTTP服務(wù)器,特定格式是MPFS。如果MPFS映像要存儲(chǔ)在外部EEPROM中,則可能需要在應(yīng)用程序中包含編程方法。HTTP服務(wù)器使用文件“index.htm’’作為它的缺省網(wǎng)頁。這要求所有應(yīng)用程序都將名為“index.htm"的文件作為它們MPFS映像的一部分。

  3、系統(tǒng)開發(fā)過程

  3.1 動(dòng)態(tài)HTTP頁面生成

  本應(yīng)用系統(tǒng)實(shí)例中服務(wù)器端網(wǎng)頁的設(shè)計(jì)涉及2項(xiàng)網(wǎng)頁開發(fā)技術(shù):AJAX和CGI。篇幅所限,網(wǎng)頁編程代碼略。AJAX全稱為“Asynchronoous JavaScript and XML”(異步JavaScript和XML),是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(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ā)出請求的客戶端機(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ù)采集等簡單應(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)行檢測程序,并等待客戶端的請求。通過編譯主程序生成.0結(jié)尾的目標(biāo)文件,連接生成.hex和.cof文件。最后,結(jié)合Microchip公司的編程工具ICD2將映像燒寫到單片機(jī)。

  Microchip HTTP服務(wù)器使用簡單文件系統(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。也可以利用超級終端,通過串口將MPFS映像傳送到EEPROM。

  此外,還要通過串口對單片機(jī)進(jìn)行IP地址的設(shè)定,這樣就完成了整個(gè)系統(tǒng)架構(gòu)的設(shè)計(jì)。打開主PC機(jī)瀏覽器,輸入遠(yuǎn)程單片機(jī)的IP地址,可以看到主控制監(jiān)測頁面,通過網(wǎng)頁即可實(shí)現(xiàn)對遠(yuǎn)程單片機(jī)監(jiān)測裝置的控制,以及對溫度、流量等信息的監(jiān)測等。



關(guān)鍵詞: PIC18F97J60

評論


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

關(guān)閉