ARM7微型嵌入式Web服務(wù)器的設計與實(shí)現
1 引言
隨著(zhù)計算機、網(wǎng)絡(luò )通信和Internet技術(shù)的飛速發(fā)展和不斷進(jìn)步,嵌入式系統在家庭和工業(yè)應用廣泛。如何將嵌入式系統和工業(yè)控制系統接人Internet,綜合利用嵌入式系統資源,實(shí)現嵌入式系統的遠程管理和控制,已成為關(guān)注的研究課題,而實(shí)現嵌入式系統的網(wǎng)絡(luò )化則成為嵌入式系統的發(fā)展趨勢。
以太網(wǎng)以其成本低、速度快、應用普遍、有廣泛的硬件和軟件支持等優(yōu)點(diǎn)為實(shí)現管理控制網(wǎng)絡(luò )一體化提供可能,在現場(chǎng)設備內置WEB服務(wù)器,使現場(chǎng)設備具有網(wǎng)頁(yè)發(fā)布功能,將Internet技術(shù)直接引入現場(chǎng)設備。
本設計是基于A(yíng)RM7的微型嵌入式Web服務(wù)器。目前市場(chǎng)上大部分以太網(wǎng)控制器的封裝均超過(guò)80引腳,而ENC28J60是業(yè)界最小的以太網(wǎng)控制器,只有28引腳,這樣既能提供相應功能,又大大簡(jiǎn)化相關(guān)設計,減小空間,其標準的SPI串行接口只需4條總線(xiàn)即可實(shí)現與單片機連接,有利于在小型系統上實(shí)現以太網(wǎng)功能。在研究和分析TCP/IP協(xié)議的基礎上,合理簡(jiǎn)化TCP/IP協(xié)議,選擇實(shí)現ARP、IP、ICMP、TCP和HTTP協(xié)議。
2 系統硬件設計
ENC28J60的硬件連接如圖1所示。ENC28J60的硬件設計包括復位電路、時(shí)鐘振蕩器、網(wǎng)絡(luò )變壓器和其他外部元件以及LED配置單元模塊。
2.1復位電路
當ENC28J60的RESET引腳為低電平時(shí)ENC28J60工作在復位模式。RESET引腳內部有弱上拉電阻,應外接一只10 kΩ的上拉電阻。
2.2 時(shí)鐘振蕩器
ENC28J60工作頻率為25 MHz。在OSC1和OSC2引腳之間連接無(wú)源晶體振蕩器。ENC28J60要求使用平行切割的晶體。本設計采用連接至OSC1引腳的外部25 MHz有源晶體振蕩器驅動(dòng),此時(shí)3.3V的外部時(shí)鐘連接OSC1引腳,OSC2引腳可使用一只接地電阻或斷開(kāi)OSC2引腳以減少系統噪聲。
2.3 網(wǎng)絡(luò )變壓器和其他外部元件
實(shí)現以太網(wǎng)接口控制,還需多個(gè)標準外部元件:網(wǎng)絡(luò )變壓器、偏置電阻、儲能電容和去耦電容。
差分輸入引腳(TPIN+/TPIN-)需用一個(gè)變比為1:1的網(wǎng)絡(luò )變壓器實(shí)現10BASET。差分輸出引腳(TPOUT+/TPOUT-)需用一個(gè)變比為1:1、帶中心抽頭的脈沖變壓器實(shí)現。變壓器需具有2 kV或更高的隔離能力,以防止靜電干擾。本設計采用Pulse公司的集成以太網(wǎng)隔離變壓器H1102。
差分輸入/輸出引腳都需串聯(lián)2只49.7 Ω、精度為1%的電阻和1只0.01μF的電容,本設計采用并聯(lián)兩只100 Ω電阻獲得49.7 Ω、精度為1%的電阻。
所有的電源電壓引腳必須連接至外部同一個(gè)33 V電源。同理,所有的接地必須連接至同一外部地。每個(gè)電源電壓引腳和地之間應連接1只0.1μF的陶瓷去耦電容,該電容應盡可能地靠近電源電壓引腳放置。
2.4 LED配置
LEDA引腳和LEDB引腳在復位時(shí)支持極性自動(dòng)檢測,既可直接驅動(dòng)LED,又可灌電流驅動(dòng)。復位時(shí)ENC28J60檢測LED的連接,并按照PHLCON寄存器的默認設置驅動(dòng)。本設計LEDB采用拉電流的方式點(diǎn)亮LED。復位時(shí)該位清零且PHY默認在半雙工模式下工作。
3 系統軟件設計
3.1 SPI接口
ENC28J60與微控制器MCU的連接通過(guò)SPI接口實(shí)現,支持10 Mb/s。但ENC28J60只支持SPI模式00,即CPOL=0和CPHA=0。另外,在空閑狀態(tài)時(shí)SPI端口要求SCK為低電平,且不支持時(shí)鐘極性選擇。以下為SPI接口初始化的源代碼:
3.2 TCP/IP協(xié)議棧的實(shí)現
考慮到單片機RAM存儲空間的限制和具體應用要求,合理簡(jiǎn)化TCP/IP協(xié)議棧,選擇實(shí)現ARP、IP、ICMP、TCP和HTTP協(xié)議。圖2所示為精簡(jiǎn)的TCP/IP協(xié)議棧。
3.2.1 物理層接口的實(shí)現
物理層接口為ENC28J60的驅動(dòng)程序,硬件方面是用ENC28J60的電路實(shí)現電纜的物理鏈接、介質(zhì)訪(fǎng)問(wèn)控制、幀的發(fā)送與接收等功能,而與上層協(xié)議接口即為驅動(dòng)程序,實(shí)現發(fā)送與接收數據幀。以下是其兩個(gè)函數原型:
3.2.2 網(wǎng)絡(luò )層協(xié)議的實(shí)現
網(wǎng)絡(luò )層的協(xié)議包括ARP、IP、ICMP協(xié)議。網(wǎng)絡(luò )間連接需知雙方物理地址,而ARP協(xié)議是地址解析協(xié)議,實(shí)現IP地址到物理地址的轉化。網(wǎng)際協(xié)議(IP)負責將消息從一個(gè)主機傳送到另一個(gè)主機。ICMP協(xié)議是Internet控制消息協(xié)議,用于IP主機、路由器之間傳遞控制消息??刂葡⑹侵妇W(wǎng)絡(luò )是否暢通、主機是否可達、路由是否可用等網(wǎng)絡(luò )本身消息。圖3所示是ping命令測試遠程用戶(hù)和設計的微型嵌人式Web服務(wù)器后的響應情況。
3.2.3 TCP、HTTP協(xié)議的實(shí)現
傳輸控制協(xié)議(TCP)負責收集信息包,并且將其按適當的次序傳輸,接收端接收后再將其正確還原。傳輸協(xié)議同時(shí)保證了數據包在傳送中準確無(wú)誤。而HTTP是基于TCP協(xié)議的超文本傳輸協(xié)議,嵌人式Web服務(wù)器在與遠程用戶(hù)端建立TCP連接后發(fā)送網(wǎng)頁(yè)數據,在HTTP協(xié)議發(fā)送流程中,由于TCP報文數據字段有長(cháng)度限制,網(wǎng)頁(yè)資源一股被分成若干段進(jìn)行分段傳送。在遠程用戶(hù)端打開(kāi)IE瀏覽器,在地址欄輸入嵌人式Web服務(wù)器的地址。
評論